PREME/G/MU710051

017133879437040502381687584549821479366649896271392614366248390951376567411722321650634664973763065221712536894516309263174757316654345962944470456379941553065632909609766208932534267150703960426330715770946497251731789456666727620882336793713587590261371322083275512009971117916141354644870041148037742215326523419523266049952460344707715401303551293235927453160113403469610387192973826537925398055863168361614338923843587667336270420818780915618834851825666571623672853781845047136183702018929468975002531318634273459459618323624807861855953192344580210892386125892975885936308598757102617032987432963389247100130781258266525112372026144900990581561777832139199235280393652025837253183331641246655792288700353022412783888256246295286125215978426596957296409734318639568273098144882107238919761235092000040130441322806099733498943072701831393121674727895600276790425183850342293267515543722389734905361913513871928687784045049574753813422084263956869804042923431740261454798319263986018931284209683937793556841679988409049958469221070154085385497763706240450667218614729600953018343085352515691986557066939765287123734794779577784884450910092841598900083927902214968978441020400884083708964458879371533556292902954220861174314305882899496341526115088124018621596477026615375987972401076430206075347372650288316385007177737952745925661338987202822077833103777832697348693883287400883288794159884205506140753449194078023638522261069200650607354223471422110830882216741593986217609885043916509028792036283506884459578275963450811022056930901937159187073112941436011647009606864025679186332567784467308407033528181700082939113980865094295856218045249265549573773272119104527950008715279885344613510265492430332507034478362259236062702822261677780868053680843463521490516815817862667163619614977990682532046676618904128517260423073876135542298472558933797212452972560294397854901880789136907558535473593246780436222955575547133607873721189762070510429730228592132018865453537411671732513837646835834476166639088632472946304133884906722637672650144134723758046056377924005148675655353696086634416011751971691857429783525204924958381682445260656448803336470355885404833678148504971245508157095981526930502272672597749421506065376694747649046785402440485720528055547649479403118136478430127370769858846262391094377600135267008135158752470008550682577854174527187789910669964168098722258757862879721431972025042480559016980166756899142001712775689507247881724771084118655317974075023770038963854564868951407241496228003999442800680894619726387475214607715058307677610432487041927052046254197654026045165007740003920170512164710768973944083495304121204436336217533830849229344109226250126286188181658868020674225635838531571796010376040987649319352088119107090085088646986590433810249236026050013057808368637920637858771756436711660068462110145470146219194651089197847430248722032097177051353884409619108365085527001691580691520155722869266474100882728443063743725393788331251807423756064902102743233431826239747848968026094857565492993199947219003072522596217649624114658768877933728111703792454381863009805709227864512798581484615839711763334561030199194693886945738179862467338593697147307048063716599224675969987137960345957620383759720621628814261989380866895943756281230273469759985035121239537910944872487557397256217247026741290416316943801500511088252653269877668115692005901753593036349621306373580838005992159029855431482414297120989969467471654801861274132258510224316836661403966197612710630128297349862199388534459625925618854647033200615140054743464009491992326316587138320807043166263610745356756753664832119359155195292128451414437881739668771374594806307303185519147799068315809225647042154459309111332722394531894529224818347644604733038910938970183539286652788753142915267416928586023396554920364583327774892580123357870594654945142174690504088346641793256414973761975232213736254159940853100662310035313119183481735591191794137963768891893802824266700476372986677457941192271214881136158889358692695751349543420350296802781651754789006684845638177304876473857541497584511288870660993117429378544056021366791063330320138294692714613317816061826030145088920594970120788050768092304168155830090659175322750329198225677610266084912540481998644716377379931763218415346076318900374343752980638255219271371521717982931610209310767256140310624949654833609765320271467695804804061390030928288889241183541025853831253728206941488925497483458808525502097044015477563261015293379539492520852378462232831657411176752172196087494919438943634155985337847695731964262642090241680611266078185938957169284248100429537304575466057994292541156808291806007201074591827436946457390588553901476573701236856502065096281787297168759814909755252695964420880239963253548773069041801416919679161844622159447270087092926538287266519922857046363025911656300090150609800924470145502415526544661653642814155592847630245546816428719094527002423089251535511549723235678089967716622093602327393820415412317660817286924643562101140169820556135414871697885497928642411524439716492806675750309338995188902282587894374249798731110953188355314819228349066176160098479846917420870557026356321085618500566154124017596980554723618139938936639879388007288780553165332877699863647784454597311773532241560132953387875278293777118026901325651132776038173959150999744780978986847267976466883684872966835345535120045632049384266276852887429125286408167942123111641346084158349023938265960206517187290056085136256044970074956287651401756761513166926302630376898638313461160726415757621150405540806048667222448519058463613304494322842324608323015398375856611388691230845466087530712955972768176385124343623821333265528015273927085149165183900990687833385969767094321328575554971867720419133710266018096052260507851952759247976428689473595131360036546924601792178900042734949249645182029040470487333534966683528006480532170871449679635826654733811339078138147024531803294850058802865651430528440091678300547221165992454662436749849703666951515181827444951608015730442204555803281149326842968673736261547388943563699701819609680925957638416425862730995967363864992640369791441144088797891588875878394848888373280994214236394099936388121534448267485372592785081678866596536738503979198856705841106022703451211905469746116013988742421028871940336426547574995516685478094582024497736493275837988724144574702978868850816116421691079586387607583465650866706428679140572330011615755137324221366105916418490129073558533546168337301055877831540114356707763079791020338116352983830060261727180532810280047447048738546513877348987449856019228623482130813454705099271949147150383146711964771465793999582171685058315951707724739295029606312711301268458488172261467854860286783342107055285272329523440150651295519885286356736838072977197558667614366336848049379560189199375570908999792646983906100891135886112274021918604522953914206756335095957032845207122535253889664446611408025690536695020284355449263632606759560864299312793200046574445943289114007423896962496311181527459858230857059697608952956038815312418954790785523396303535637342425684614523831105750099646931265912887730971231093879645211886147714303193359214527531442208374933588726250228224332561930483789693511356676398654171300397628491439267208728932710341415507993260733495782592951719441408894836423180615809792901429366846056774384329861288695317606873045444873963629976434917518912461372519167839625610211955366599458773991278866991408716369264395568228608737496349200603922759817420726683417094973078426326730123238640892568359712951613223396184352798570334810688687669174790429430166228562016645295398896493814848192327293241653913856062366130201985916217302934876611694901892048486023796692316617971219440319335106448249839466240657548243407448044152750213558530966759016284599696783059571550317648953573051568410041663805827747955083202508895081588073789864599627246482532551620831354448552185417461107334061978274811595082386113998318207351416162867193250806073522090500055356746052290383678782886467452144895597834929616669155930121485018283482414593010071394342192404210638266697881936481974920897278299065308974006991325610613730839587824612834007759292966116157940775303807134222660998861503611461355287823749124002870348033034839028374026802291212798781091103647718319726402680061727836305935701634013514249257018552248025976689440414561407607803680466458693958585210044137106314486003722975777392967109388237520881645794089198932609802558415788266586296666085849301791266626514962526513908525831032291991737202589470876804471204730811121498464334001520417496198993571558833201071662590304450161828278890652136482548283681607066375689095352904777068908363245627247020412408902744474490249452878821189329248452225687147806603700505747526513562340260771569947409359342965707420210348379057393444133934842200693517778253075521616874400036265613780698985422985844445240401920602935878116190694381226369220146359336913011214298761278915550759680507577764803707626498116470037273497837009575179002812676238955950943446077193170402717661215812017435646572821794198667074049965697922966108762586995702730827472651574617220600112355920477093633605737388750613490382497346106441057402810607993649908888238788033078747785431162165697140069852856767187198953646394582698003641747604172304063862510282576535988148245905202605731915664595429327448895877703395228380617545388982424307759955981018573268897550523949830746449275574354877233626251562766554300139920095124429952876445807530835675256303113383927923977396906933503597176703556871986549921984156387347740684711840624687891394463112517660837680327299868683693332122690311332236057624669901880781674554272776180095337464312829731693403459108693198166409008157789721171635720992062873156974174360530332003708034321205861000142949174331362369973877376250374839797275149683148158033024826512314981798896003296870108165282566871882700682738512778707959655650673780561326665736083008273249392882848307711025016883112332450518027199309251063084855946824386008290935166805277197621893283302172863627605610695045483494463198901041317955113311676250222143985412758957863060959275580567982351222815755236917125858155419950192538715643559731399389493659650934364103857014838760306112447131811547656060285267583793869711245590232811683937950087556073667603509234649607148958403890080491434189364528536617712714098279554997118114744154775694794270988202045255814942449880779008576404990619606942675401729050401913037946298290925970055913839786138869723216698372082016139355095738483159761191724776770001308121090331030268741348946499774001686974205529571033724528226191250637867571149147497522056759097583803102486106215581502285374520486052879052543875243849611309511148604817043535465248522151335914565146022672156430124101908074350010200390176917390325378861710842460342248424822308050988895824423962808592796260435355145383319462261406723510978666615773157344787348936243436115538239277496247767740513763480938901172521957238884909398812444161874269919389680074486326413341742673104285389605866022122698308775595482029691139827210157626121646514625683231026624759113069711428971225323654269379114248059109952874760785742957215674747778956150603945954028461509770127584762766992637739075365999173567000402869326054567926044970705975005804312259347755359553897645424906192814689417067505225473214833847076796635379114528535702021896790692455182562801551843259263360136486606778177880086567336559370371000185692065684419006804615482008830774975698777213232676177488926291805072207355169321635996964607450115440367853836230732063118053507908249844144734368592938286454659281111628408555240552313687174576224982630662175519801102129560376412606382126107179834998243058759896207440430285020643647580120784313556575279999048810197161149979859469353265618808252344274901000601039159547054676479694577606844979139861089562994088214717341848680707577837183451713956816677572885518304243212750230850732226639510238563830194159467697561011793984040254747840965031736616391306956325938356214463322576490630607785342841517770258698713310609733552473215810039332299581775000942500700796937194647129321145037935200523709617771537821925052359841268987013300083526858624385422623116316413966492622432046708374999203674088676753351552466338679054840821999679751547857267803860491204899111083890564222266391606169364701309654123626965023026523983805238333473599359038189164486087975814487813489738363020139337936430460521197757195203337257656039984161911764634005146920071868409854589657820045599282152332364569564372282166257302265802435513158898158473006074953178114293356917565293225079223308608783998808370206495124571601608612496180241331167019154753160291848288467660513972608837535864888955344998718799838522242339356993315212064559682154944555161725830540035980371881648537212753697191489736027986912236416855874917504675096048836097661583996412416029724099492047816922304690831592092711774812794802246930317803424346200903346995972478537106022562333820450747145144964562891463879477875879420566426344953154314404990031778539481850246459833368311904321331474149226869743252251680686565479704101447069376041762498183601759479940839297600110860999165352891216206804951295895088490615823127003519567782654131592883222595648922392239513233056392521491171733038060936825617219677550809331583031907100344982307421245536800962842745623085585826757580131523673886763839673014583015226125147372122951444510620212505925297373606130071580625194381519455020438348596121369885981570452830592032052648100735770993794642285688929867893455884733061928835393127100326925309781113186502317497527208300701248338361336819771284967123205572076436585867389305448812993830491994150644304592041121762071286232294581321181102586069283093495959640341491181422194864075110147095181065785171695447611907101003165328914719264406492912855379694948196776260403415051516333952087562170242792559100940046967260638131916443934554224079079140985163699000158720644730677674738281071394394241204095669662765530830320543267859527287209210648416466387342790988560119458336900497734753383155791154205536036139189493366497369098726381768469439909665698743539337897419319275852436705582401611036579320410173357499177491557885075401529922907337104155597436481370185543754252431785909538350731256085743984113325272359935522133817907731995322098304394065941161421857390246139020947156670131833950664957474164726284941152765713564973598634576983235757347454326539184822773197854878187727648695213724501488643998461803820996664827995506354621617679426353425942746262348615513837686923371693099699842660323257618003146741317412327833392498061463394281676280669107810708746938429722345856694982639220086825732548041016222714445666965451304441586701614164832217660258595836822588387682472820269312180454888860346722401811070288670844493580737036388517607233024938676487605569061110795099722122930267530379658873347770726013132662940631520343159252506942419140909130820779988823968939879960890349878839767143674485885370004974795898096484833747279676661643318124045196511923684599998194350772207344841817959766171835962248411717368811450954862165507485293267462641606492649677694003360419941064092261677037406581259848758356915625303894706678914679309947213076289712278028254884615525274431091230618925504313215263025760771021191670059967595633673740215132550459586412633322825441070201135826481882781785756424155571757605990420885116188263569212513446799901265784193329446907540759577166408192293399287454599313947581529609491222529927884503887169460745868337207705175035509905580282485673492480658917088753364212386010135665300687093305355769486165529370644660363750764551717306107549905840534855868705151690824620023375971483252362144833487002251079634091407743205677101595506039376121384202254024040753344441972515032089721057477249527155097295305312047623167199281115849356641885039745828951097809079373372090451702575953258278736412579670535674886273979116046162022676959901787978883096294152640785783094970342466566798990634036069123590928318756975698991569207568778087140950517772336613282483263222240359726619033013370193899755996807233544084588671687647293829783845882044666292828241232585042550035323198118379570019666034322295155078724318273660684535143586038537342779877260707655108287112339483605016817099729620677496840796318836069771613743146994261297546200811127330545401840597059350809494622996776495437723207160489603895381653898166636822028126992429277429651991815098016852570731487027290974124324388398431380265376264373783826835905394219498351626483990789856095230157301819634035472053082343592541051376554919757289795408822489951247713176691033462222029480111673648045025793274284132690190746271236008009910855045687647467614747917791157504954093089078452969367291706153139410630304340627811639030630112266795396396786213685381893066767145615871134480608643892677283792966800801432313175274478097327261023106486089915251452941006085083990158219588089688508204331042050930935658399653242739077967745865209500805911473418053134316475948047949049550560810096436848037675979491319884665588438350578230041201419683489916465075212469538662198438918092835287250880844793720700265396935042954385282317840675372239899709533849715159313596429908637320551198102775166524328707754562830123380460056642324542143332782206524535466688920008956961432088025407349247536667881760377322170449452638858540477581206244435088467413048444376911461588700877388332778977188251162002729385914564614143811617773881827060623954144622480600200185515759072090772001491881966791725061370917435341297993358707620399701069723990618560491620171372293577157760682075268947590274487544905012911370756914346349498513161234988513677205827979201348783169010755390444487748863260735690878063056693411994858028583182936019819208174343557219279056374136791298798426582350454406646533656558471421789951344489697843534095679898296637328841912572699419117457643526080095579297187849703548924013791918775414210498305794263708593851219541274221160791759458761824167177153687722359341289668254890716695861844598845640712559628248975276503741530558440644028306919348410196745486533937332760751076892672354959472030164928798774600899798539516126275739724277803827594616744542939659009766671727608613461576894142809522088017634336703146714422687187255661901369814968635508660919866558165646956866553970715232638270001757906012950135412854993421244288423072901415703474204332224708770534305863842770949309151025688040390944156608843106422387698832643524315512140608633423462933019481352955972108447845160334413265269999637330811518830989143298167188984143389819165881452843022867852390833059969520074588493113840876714533074478800029880563923704529214642712201159956766742754234497749862814323256476668738754131912041434341566843109196987347215418023053960962701144448598596674502555454817822017427648794145268227601873532833109671987169761109412929538334377367770708397083111645926799654528563819869055417036387233726133487831638869333343685434624977055852738985001555020467020677045459325693802520312943781616992285775450334610690885411336988021337101544307502241948418133614269167363849257905394801146118831561397778948282686095532417090154253188842527086945081740415931531639065742078239491470319918731604922624589251578587894478842069283014719008450094467753507105217442476439247652881435318203223622623036186794972113609347321034109375334085747124208662513776611644787323749826712656716130813162625475184514387683387725141375895600632718317652341831249758299358716224417668261650638287393649525642987214075992579849546752521065614235473137674942672432845840937893289673743170187335190637200340581578974026712675560303183871700490183558572035503817551858750591590903008891828109124916400266500028528719282164706385889139241564331377056458748218940461305926730293606371660802165651794898777993401409220003389511780907320858972131143558441907375058252785050854679528806609741523459173796894599187851941821362763527945319115647568070437154993314535770260331809350525295949178783280414592332621252606728109992966893973598628016457410396329147952565085450794457912610301491532385171785287431903665695661752560890163131887813241864895012772695256526560051551621815933003946821756700570323853114975276848412012990105238331811862937275696118178900713814551743488238548405170780335862487452411540050314571437580741269361916775013892145774150021220339081383436913997943160817212297600936530934698428656698651311848155654987613737449858257374983259087199353637460094532005424298936589842743665673914205064426457586131378780391006605424725452421633274066325920684444023727724358076771118374580589687350487790663753576380874260202215003104367879130330334591096905631550741991183159554257130801084379121661767027651199583754999606603195647347796673989494487700528778584768318759115424598566634919568258384288071850860493974474354378823047127595673611121031455493601302438097716903525017383891608728837719488931316959635747990242408544481022942575132268710839720087926824298601843990900990174926569801842298348578691058290500575943174920131282596987768032180188737375620116279802980518148821707577464732730042994944679935137517345708813184715440676427475815992595703332915656897789928103685317686307121910218397365456694817401202410247323765292969273297719435319910180593015138771162504003737603551866802016460683173246033560960917204877713116166531022968577991502682210692295667383425770439527702614426433840471617903483673017715132613763783048273575580272538256944496613203347534816889138350102161709604492962625941507737141674110437810211072737477071732742438875804432357345342480626172917695091947461327379320985426913295048138419707057116664766892757493810240828875153995410975647703508162459521432742705870111352857082027228719458300203075996023530134167397779041256340575797498461298492003200118304501031439029636107119150654621162771967768800653992857455314180892876955739257292052084781733872940261616483760620917850005504025894752415144277834832778900773439542345742020975830905431102344962490719027282897469714494472583088748892730263517061117074398138412520822079580425473382900456753088657990438040913412807276851959968281265334494478952264481341853901575933271544104057623810767288239320196847725989239969344701337675233978741295779991038108510775541786092933799514011264938701662229675256240785605245616559101451841943018004871986270684315674076337023563596261462611418309836828571245480486954687463067574049997570770989628455756397196979660868907631208338554589502269711681331856670611930264758621043592562127356750927945370627328387470814265669458644742772642619666740149548756852341879213118612756827420940508964833877684711682326192132976562409236334930279721067417909159786324523746897499983982818389974586760268055434687007822960143622406731787522552434469550725821111896830948319611949592116782410169528828664178110049715614734219829644319269906088077256945652105849302330751207747801835759865759301237106661300577837860802567014643664048870081557100839179463673240418281766830851002363392681380770188088210784961829419751305783518962445952953497810558107886852616493000752690453761199200941743015759612549004825945791814595330218365979892704896360576145197023747244870163024271007309862462238285126855420907058728390384428085133814218246812546299673725476037782710362583762432508042250427640393454453122346975309697182067780021647529827634241593755529001445440635350240505681662374657808129601097858277534764249712775311964881611503189292348780662255858695781640035558528860191492177140817559648474367864498161306287399825394358810042470507478684201070012374492133342198054580772607471753134865219863701869557833802244292034512710240725850034635663607215712639339578466635046848667020700171666338458115197205279753345427840051375494015075331032355368076336067855630627581051526378583183359811889240918616780364595723985184802444955938237197955574343233659820773954767604746286615643851871836633529292218298067784686148971022210812575589532903192037437749398709773541772944122955227186716900735427288478016486788131164011970234772004221900982042012280699171645093919791201500007562181388728262368308560228868979505603395336159854371861321968962243820340431354972625202691927074995609297794572587467847634365390065940260477045471455226608361400688249584879553968120200270370732139863352490636494151692706451421894604084142732556133991997911523146419107844404120350869615725851285780834598268173648520824287147250042721175913072133718084689016747814859472379738240419710564129499753646694006388928646030861349985979735508690956706379539162521521084643322882445784792835587196336969695220427271484341822307423483485494002124664928736659327759932645286799889126951289363640964116037231296227778075799549645158986857597462876791225114168986599597541324827168610037875673796598741130807067364263134424548080159637847769309461198050420323031035452668987879224977013474267404353272675020577283176416573611508173392997410694690742198463027002143896392551818218857736946967424585145886176095594345145615808424100711316985322270309725548878946768892254286623192211710601869514820206386302707996439284872326781278933139753776251363230999010574686011964753299671638347761930740978537476879526128591414925540663248200316219354085568742935832037859466048471427717069921597980148397438323532508383672340571519083380659986702109684529695258724482583303852210093464239700294964745818638831699953237844228772969536541456233007923629203378829474284324602559551717089182918123443722382283247964696220814023659979105105355178348024335717010127576775726610083756087986400257971673485564727330359023922910375041555234706287006440308133240529463717748967196898746090570158713183561301971568107972931895785224252071527095866418064789411205381078179395195365172876284307403456619912488730873908125166818866513016465962432442142883006774854583500377083851114036904207366588753376207054718580238129943636054759629911875105253960406331613478711359631895131198832417725742706361498214263139389443977142733909204144168372658065988757381775449236661529092490251402900293515913798553158133991709959834562192355915247908183064906432074699928552174013531043321288242083320133915901939235683158649878889109566512803419101024175656137720355992043807114364486867974617758879422695192048941991383257928161367563138943890395664813639180137822894471979881056443572892633836600491730384379170490040664647395756789581265842896917618409004129821367083110095421017105561497969815869670306593103067198540033551581568407336355907093657108598986560622517437104625209099640860257775114249140118949384507015893930441613678998351366763800606408175268736127115311121782529938420680881136416795890453548439661751187787941373762799964763686130577302809696964317035698900949305848646843006323979095883001801437164466057941038011452271819108473131971604992973229583815647919124230275793166078328699234074352435777806124302496598867052553817802646407612654541362620983210932452108333474861097555132011253882998473564619968091124333094697932264343859439903027937406793686488200590754037898246955452971656206493077669248752551548618406278845366231403325576725919490960072503043571407434176656854721312360930623544794022569450392380101006762981328473432566293700744800635900120355357321935226726578605174192112207845235199471605985559113749043701301054841834863208156169912090641236145041706733458951860571817169951724231733106003113097683248102063571873751612491305447271240123605481127078806528110498555623803635103927496130931953318783478041646589068613262932727919667092457893664927174977508380449444773863277199062752621976975523823883088213914449527407185788600177464757486934160915555879979414256789241064821293432661077305167723717123159656606032370344154139090718503874584783628053661147264382009344367811517690344930193916735302379886639870488195241981300697265630489309856917535392242332267203246767001414042517668257162551810895356361828507451001819230319114873600330545828295711176409204588803199790046383929279423429790655251325871343935012332106099068196864825382829548940696343341555674447881195951345904412729112361605951739812724558269030305839444658409172250052970904569801381640837610512006035816572440741845547675121021067575320474835097249680099187286835877049186912090546377851481543041188509302894456885353047873363722026069079157098713944537632592783811776814056495653734839390088580243126848769973953682639109474776845579952201767077792099206887770032020229602232609693784465733559470351243239003209578919072858707794190526963079968409471940264495448036802893520507644976151043592086957030022182817784428511696418993482754990323266005931639538588345913202383028320858091515111760862729490250307736175307045667749004884745575911011799003795632364229631102471613633274054508324439960039845067709044382867345977154307036324543639938849431743549030971189394285690024168838114278341598250633552581822213118234659318856191698635139730930995802178863061386664998329420534889079166686002164996876874139804283463952494283289794564384001479093836109634912577313068125230095715958490528437725239603349967221377781853009796231772921748959856007232708887837817317309604510105171136147856135826633530096869500397198342473948910924561647734649002333011789816083511865596930416729258314674644310353924065973866884559568478738431927956858204688561382395515536944856600310659095446736874275717113466238671974551808050641544076716046056243995149469978459211057581184488249329547015754214073862848256087658082530070542815923095778438195167037222741042145569575646645673847846350000911335029960748825597856205496360223958323281379966772751866854588042512781724290042134924527125553172293127037305539608184785536585564577542440651188149884192071718144886505614710568435911102291706092116336706680013558776792578176750617384562329702391235013358828974353191387048364544429409246161997768874091713221513310914777389925470241240848799105714695570441059022569398950124647974720570767778299747063081681660351524038122574276772906017733937040192663500972482065534558582120583225395774265823066666498744201689294218495041838213323293095435641052388048799490667504501079417188171621064093669373449640958651688331271848352774878590510688242532226651288236369851398522305970829980914770932306311262472058136292057787084703404360347238323977288794486288998544901651569281335229493772236236489385712396089495512448200076981788532930931841581620111599823883169889580939894005686422177495529926801226759438606313277188198333470835957690231604567607509313244202475835512131985025741653774123888891301616382813428404725003108081440624787235460732006801842304374607711243505854289807093861186949784050692130904787366144377900188144926786178398101484601024255871742006440127704180405420895840820008374560283686875474682260617536935518177885134155392057380133492694231715142887626185512091809014704978076058842310184617455393642718848162077081875127465899363511389323753956033999658323004454746546869387196416107593132433122616112237661745843467157910110385036601176264373606253755830338520578541981925109975277646578891205306794999807255872089959187574050012372872141633025611118374630249880786749830799647471082446659655206279516078129512770621341304046867172548617340537374064884698034511989833714415200273242016554210462149600978238140125395623914102131572731844204484949401607450169758624354994450092037666906265919823690836316900580518339001124868103087093353193378303075349920041665825298532767976548685074953408732567530028973427224366571846098915405825554675164892518783801727933206625641631648190606808518536811687115406384559269266187177405841695136565480107712233972246037985501190561480023453079451346328378135847715543864667345385744305952330552474804453233753665562070398544898716210876255926274108098477761246460022731997419070382051491912989637366238154333292343873106617252067714829106559786223462329288313089560681703028040772930278907572305258623745669202727010722592029386302141141246267186358844649954874392033620222204613329663482640514875546568711564133378184987162460209359257368193206688341229295002091939913022713836162209833865370510784574743304702830509011330553710942702560047370507882574854577952515516597893943432116189524422517194461629837217531618681368456323237060877994307142557506489879339460360695759054548193402261217590868736654980160125323726125018666474616512043909334175817111308367526310349364504944664492306265614540396517453632565411609669722246027074965464233893188635905850646499767747055916399309653697831298349286410448281501338788768480634601710308203067635249424100900294112942909435271116989586677706440623262714394225945263143973411050799121659933240988194203750208839571519678308644407051586165964422944525949121407461110285690520708114039788432681227545804969474687075175698655168893195813842043445298865931631870119244160587621804378687253688892816799310171249236577473204787807422240994072837206644574441710762007776456176611395663878466368565826311762999738231735579201880021827617605300927396478902567023798445459032343887497227550736317471291722741065194208824512697926523261164621976990397978948753682356537669871205067516445369744225403552923081552093064572899840017318736163239272699488323451279943903077593185712475854522767216122683501031998252066961753919793508300176132169679101959705193388108134099640203500962973626362802842746903145842742262702474595501462963274019990031325768974089168238049833759606845932452112052495350367417914027304815286819475352024569666505410544379984994063412821149712835313432620832918216767633409281510463391141531142585200334275323045153711392864655110355941908594449832575022354282913773629244003830042858165995955550670232501681914726562420052366250918284698757900019940552436504610024917267276951766733746348929501588643938443677274347610481835627740550442404043799757182373286762527221074256574097256166725335528956537179061603982546214816469717669615743848938067974892595454893959431439221671581464108276379987415456135355212974728675511902397170950605476947641659246179875101148477435642417608066712624410183916851841994785552821383957519685039638641659240033925595759970783917461938269324039092697211021211645801427994467423006958707013335746807991109733494210400531417150727107531519111953103711752117026746696798419741926743108386785069173333861550187501531297271648204101969273538007720381917291377974577298120617615125164331501257325437081733936925472993169617962837398429801912811059179473028826700699381751498384708900037533669074738908012948115867419815331192933564244905410645788006943242076988929704168044151294037081268037438715406377978349796058400601185524488861982586660767900903924886559855055138335936656456621563004800610170070083056027553052968466991073627687749303440995047828168592690496377488011805469535011372702802413384389713482949729259859454891109131991228296210221345955762610938742274965983114097555304846159097201109965983769921341452410287408806684765163666323716588017676407261143207403656064632775287523173626805974402426224017333389174463649065173269299978017123199614027246385628089190193456043881337259661939060426723386869525861571815141621267299173823335288112938580466268556574845211053707061960113860771574014109561049454549775810885574241669460058045667925791686005859481303831397462411595733124445104187431931317633184693587308640386576148257954928803650626373614149164058384344881836042981363528180998474724165114627141633199340837063571792887442203109839399867213931127493610624708716876075568859556189708296432886334289878546579148716494878852595640662075346017866139231847488302678660325360894615434914351805890296938839044438687301690384813600693284758498929584563036026682450693750193407296510037786689102466506467584956353256584294140670177083238563372099538712967669217001352720398563975360636369193396835461668313218169261024618662485470800121343427555888248344434270130371845999031926763790667035753547449700463448748163258427474475599306245766882721254981311155601579267074509764758294423369827737515283848449089168043554523846735052528105395925943188640885992898440046558475274796279920156214565545815030723040167514801044956637957083629730145052664407564976217707059155085916504182142394905109146465420223206404458540634678815782631094004129670360114975586045357249138052249464981328416102656283354176696348616364265262880613620301900429006019147187178781141950370201664967323097261179211551085945707107623842349209044068050788221015343468012424634402929668543973452058224977509024624020439532961834126530947530536394256923305289127154069934192670089605119553513634437107656273985770364612653436849394963735308860078630020958616652650056290200279375741154531984194079801081178523521002371115718054147591980316065989035381961029890245441647938362910051578460023781709541990701452823249375547636948872484035116126149432305404861008710997132565791339711033149042135471237473372165847836910866132011683344962028856807086901677746307370194495466272371412441089019497043350482331134332946814659884576464063395481961847651596968853185369443327595919553647544278304872941043550273825458702151318673062128427851077880405658587847200682629167433505274450963023609177935336249812624710088106507164437049456394407559571264688558239483690734546057883891327888167972724749605879708354456257067880586903864354415369130173864770551839480858330918181863426103819396487678118045044146556132376934089531720190861154875053366703631100779033131121212030581980448956029154748281765811568214901824496651695169114553972305091073851044648730329946898387166643076716527635278616919208244603181286157199107130794279448778249756743529949356741078488578421721382127560382414220893999989696279937881983365114095740951160427340353418184892837005324957374240421133970097841726756863425354394448423698458360778626261254645969482724253646466654034274586013628739336134385828338312684896475510198109048777175106646197189406351527979459546829197853530758070624590775544912829221021527049673168723379932215490398314097501577285407399364533537280170085900674441575404699965448667272226308658296458395233105962910923824514109163771372850276233991885246068205625307989591276103957314878316097200413792885289841389658523633743758924171358367488761402956137091854140860191889822179594924851689276053074536369652023757401866423107146479628839311895793572572000655717267527715368505213749005351116198133717081296729819178236108124282435705804751268625608344357583167195206114420737694215679417857398475475113311517901124122179941791468901838110769189603881442394090533382118396255587848727503831276054695301179199396982466607267353385404320875709267181835653307704271275379752211696663953928763271954027330961008740097193594943893286225406277280252243862491864074119745023728044641778408296573472516778062132911384046332692542023103096250372446751604395279104602436520754175206551383895865773796963296197114027783167866292511049038122653574995018792392906984308961613973928927574570435030216164207224728779873636929993883367558302362478614258201640786779941527679694025368392717255805296217489213944822399774015648663243141415046490857086672320393978278859102318640349572586452768809757098338910011255638582587732077129000172316716559757157792716888883102538366535142067902439589987455825134006918688599738005860457924830515716455094080573082885268170565626620816080352160523558984737904314585049701099522913935298674615662801758736995158271947143513328751441089104245975167581616181018785097835793958287050545360024861376017989801305394292089323255260041286730159367499251184499837836325606741311033903747586308778392238451462807832640237863560638927990248715530578639806959291001783610752471697252602478865531392972056756871094483883982743367240424446051478894373760266873118068268604208209646211499058387853903228302068664740808571771186891362465355289303214217961414157003418375171000936036863960829641641819639086675038605119444656068439214390995196699939927381929127253000075323882477763688065048306709144726042406387112372448617009255605767734833685988956432596792477236700413521188036652811462559935137494841813326284306336983524695318316578308758865139423551386125598404690597538103786258992362455338079706301822011896830106686112199203930243046022429899417202700756968201543668111866523021001523882095513967505934594213597311087993072433439828829484323578036006339887274166736332187902407414641684239544166077866722200905500528008337296724548767398423338000006716417822620243843315331936608435700460820266304948748167922670749623099071244498486178564001922844377898647176566281220747182647474387192613271597026428361836710082809065315449089989528721271492759180368431779834317344098084433122549042224544720300441620815948483640628448013828462296634063883154907641848791017883848691257309800969921106902624809875160510537417763999947225637484070793067282066123805195872171781670005216648606118607768002559711347401375188008946808259322256618823850015209676741748951423879663349289589047894491968792420189234619963719484214651745238107583966484199462008591307164028509648040342715479260673919366155127851383523594873368449966633299389582850237232862384169325183699984966220519162455627668298813123069086539689923000508575477915380267262584469963921921905311886530320769546814102589616595806328401902716436682047917917007283869228509551904862011475740480287056646385358573494987742518286253941843196911629073931398343915647926831077708139596432386261724076712696740467393784515757138372415556557762717903560056032272265034366169846321091892569110383027105482312998270206855935965023365842832071568055352652322588833340106336236907062321844102339063038062376489295278665042650405931364318962270652790721285322358527519582395575681694904221582622158227448881682650548667450226240905184783032204301702889154925621239608534534191143958616666104790943901980327561102815180284411600956785499612498017689372328709779438701898518403650447607499738454851045412014103475170006951913536140215654245263139173663573271970708490020565064392587914313494162102161915071860593997583337849688735413876494669097130648981748872632954272996817605055356970384863840360514617754254553022204946333210988154211755353597428306687589676636153901168558801335136524659347697268883683528511485314552969478363806092252089967673987279022049572819372545626452347244558267413060473958512602822650100602954971923579814041806656061158239737267201805613945041758174042837786526702142135210164092119490438906681877829302931022481325962136089295587523168178581804835070740554445771039827933409810176485016757934747451053578915288715839097046056549561329825049683982138119589986688121659776730637308927625222946189011852705621185773630746801334544830903851219745297281286238311939729096031610495643142764162717630041755731195407129337531186390127548401884506201476103803188977572218442755210935569541841257117195274088840072406832645582327554348721670108587933785430643139224192900322657402110562398090855393410557413286436552204680681134945015294191952544925161610442575072190290994879551704946816908360372284687163174450860533248654439039588438088317113184766441299542263762777699193538353684548014638774310689763801165095281967941175799089842771864888116153844307036172068911841859630091648673743795252552972844357261143038885867193085485068393641651015345961172268793568262664564869668376353850182331439519793764895432507287379126309306896577007001350534288267650899439093837281583360345364158076569977760899145983821865811288829937977587272301538050612643680815224394325320459719703405032132298637505159385541814599527434755725174696510469141802381861069591510404707360932793671663309665571046369292450512944418769070769491105027782805268493400117144378324670992071704463842505679645192779076885561636570525142581197088836900565572357146792202141397220051640948872652128974641069573735470778904913316482591592746954454157712573936632819952298767374322120029050045439618198901415120030085384933231930854079798487112823729508310681728298788554185379593992471505419956754216520364551529590736788328393650732369645937983683496131379984404681903414803968528170791487057589087523133764136901009524821692337796048865743846297203800546019437882136471230151335397833040364400904023722356020969695279385904324943343151778358582494911948044525480346650647786247067927174361230781913287083712888688607987329429012876769100390886031768068154862754485499005838594090684952196626435455601251621620658799054185782811275052654080435128327267557278206478313808479085477490941494337131358067104679624614988937715922802374403037659875052929934929389280127635412851823683315340289329045618196671665945422638123168653526331230564723415100012993009765676656566458527176687538095699257971648895215745643581729466653125530094511939615855574731091633423699476155196381852621858706857178812582510323487527115711126891605947271267963085279683174701420732471464116422428250634639918592127188316873444964830681860773455442761903520063501703214889363239062198465596349807289494795291401296893624976409288303223585932920490653887104053513835473892374960410448191614258690092997166871197645753222275665357652154006555784997112349814959350132820735359532473842990521711379844642994480277196256625569533601728995095029569593925857133604222132526763604874362950013943595753411565924254157534378968814276070986425719695537332018699543232231866239864470380197415431287826127144081392961884175341198277841653178261178204297129541003995427680119590739776803977140135416553445495299240532313292901658559196386810224998966274509828500552897691900465203302186748799311187182159897201726788971583786227453660435285046015311681205433407500296223430370709227970884435209554556456545787959613540226119104786527987664525467987915855112988193189843876338116642321882731172776734040253994540370925146139484718594922085120751094381361439662090360464781213820130519095838269598453429645109121470980931483617745809699612899478412637625293651351651296007674436723959765977656791382227585122520114732709828949566324132679680617772845623970359549559155069015847519443504957892326854785055946868310532656761921649006963383000808885132592800012117444696208581179991418660058221159870000986991978728054869606088516133864937390032079629966704163782581527790153090662531518776001786291334187398436876506252459289696247377998368328082323501063884451385202821459044633849795919784040391741074694942151335616636683473868733991910917247080693038711189871793094541724945844210354373067270950720812791082938052402125644818546466172260260422186494458818243150013878997999597045398451779347407576988772839622153935500469482750424441015689218604020423703548035273708303613141592244015810948679347785561203409077935295099814421700117644206541176684966577571377965171498165606175816583235445799845956282465164593638379242767818058421089713280178457744565174266510158577608903933629056484906327835180573557929551210787979202735722380474044183848469701941651628511463724813898665336968643058730588387563496385618324082476414039717976982068338895578539669673752187770962195996663854765388791772660644307574818046717314726001025020536065149297597451981490677084733454637108636949688601792350394786198036538910072094623094487468199151581435181083389490788261834968593667733789584195484832870585921561856460470026288789318943329539413726747370533534826745969997248221623825860632632781440296510616848632478116594332355545802592990558358752341860868560869527783728956938045561088717313869407482218401665582702442021932650028262730758641670642799326183645638341400568526918077276103086090316822775570847669377320990378916629573976443189207373306187935880948057629820053063404075481501486606421535412362758378938204949169772911320450999415082933300627234513356020310010772229640103537242201797551272850242431810760466674762084792602248902930747699129531317170386654968617596494496516396101639374792125074546838266057911378839717504004432357530281272702966321091937616587815896538041292182278683929050255726087633318195720256113884437545890034602075594549012355079769015418879768171044473933169716198812215895748723280057951505746693173109394626589755043943020671014844490316898809829063862182545518205523597907017383084681297586444935157933378984344422081553411257151802208896545836005156519197982106645955099859680677884920862270729139913114456398864205879444789693239896219609273338239750076197766668655848407076729955106095128494906266988290364942512510979488206808444705899892827994183430211700553095933412379783515031398321025108109624731947114525967643454879766982580386396860057994190257435281076781076197427148233757535488596217407023055444478507323735682518599621698992627253856019372489638414839729400301664714910015181055804800691204522336469880190952728731717106835745889052041728628571303247177034737456952079504083945566106594794904156510994311694802098544832258517532413078380350373180569448806510090547875808631630672840853351946224273758273384173044277747180103974486283025551605439227341533004825286916151143725010391512411689827258570353478475125938355059250112696146886629252229846379244499125116735767368235222878549996000864798897513687858500647368068067764983988250271229230142442782109216956965874602554884785306651090580903553921615986843485643477346212411870935503516593530756127544883665521417853933329639339563761351916145979649758938765940613482067966854846747912708197874071265857458683553628691009198329378857523223754608867911169511718132799304164363597374248993108955016326180627397120147620677652722937977196045307911498987131821632264593687002038189555837534847017089844621645745559331603454616138809819007056653390293768279346086984370806392430870004340524283844298125277637468127991655006074691745532529922996958301615466282948456076313051163357654604302144254303422795803333283860051040716210085742364070226845658971464436097620218310221180854231632678560689747064790938233025703773354111020321412427429918162205736630530237267809325939975144931274177270876953362716399041607471438764317400188739431470636127170651706918560142311909943361274537756272570240608961602309137447337437062062239504113536825537087455519192384476315000951382034449817636544044237285781102865700892757268201190576039506522693049258193501515087411078388519231455121397474567465791396539038365779809036180964802475731123919999823555029349592924919222991346940854532597347308347213339785702279352033554326483134164477897477388768426592086105538030833816820497688886003458086047910986011901077824465382439920346426202976076302633586497297396823927520346203897454229823498491682965222332832284873188432580935954096357706551550223258414195322691563296081894299945188602393626065379805198362281437052047339771850040843138257769159339532290243115972674291242037773182226752375208418104327966792429011696456149606507397911417901214111066647424407242613964868809238858604070357427399108276340530508204940586621339310946439053884016713711542090169527174550251960209410441098728624396674664404628590001846508679602585186734185830233151781231440897796821192739980158623157516256757252591753196058091898888302788602814914230298714014936004779275934717012475331929726142264172403057116471062420289725633956000578452346858394774262430232390424198679567612451347480697713622901605869361403725739042071435620870301617470867264311448965951205358134763663159313527561617276030584902936985742075560075235506400050909997558360504331297336965793414223859182243694631331829353771500979948789699251218001688871650619006783991166800538481736113432491893764860405590263232186433845960824641854360604423759134698528546373915542261237948953740175101652020972800917049378970072892826702504538948379169208215478581101534383799750770549191131829203457420583403503724379150091115423701891870095927817947539542466756437103772183035426229969617789521740942765221786292638547204158120421606847894706740466562722278331102964546149664523432561037059924882306730954414770413255176808608261996461880720925834607705131184055436181607197570311258364083809818125833118637523962969923262235426534430114293927731504343929140073981542514753191295389317405599356428101020171797105393420860666441154114897845453704553525187120478350367333072446239146689729158995468701397363152997876618978851876412656406072051091742800232373974608221132601432822485629037763297908474120877066226374843304992986148485266435781655374979722122662662899943100395796087082584455029555149657319241686171174529530996838359403113793802836313580567585826650539106293803261776405975072708325945527481297310985873357063634481430966594380158933574492828040566423862170798933062696486856541240373569640191124885307533295766162667829311714126598299168058590585516772043979866323438616041850495816505900415249854133095649366886774701808278193266243405011874201928853464920077114545863789668798113955804984051033872424337539342485793960623881068463821459829373556321266883154334288811520516803595861447762160194328819820628449714889183728453682036014826291438294454226514432812866108660069849199041221016710022262241730280084244477769512809678309634402332383377143823067253775141488837731633592566396283888086095674670409077507981372306724729547692629010015692229364049304868617474732657516029208033519391493044903211463717999165161437966144132161297717739526012215536708446852702245623962349998137991313554146236361580689569632076632442812733842659655462772561265267994448873727303718858959148623675420625985343221228137800430343903961080027970250784198305431071332059615605749231590444188751836401393010905741037907254973997290336425746703320962611639684294517572332872655770140430840705017534335705027304556886798938422833977984621103492441348643606265365199627933081501039801734513726813790359095171003807574915926241257590086974529266184565223486961698438710951016672851191675859696582273063400108623638867800408879263406917545543885045709171099901088266337988876156680090169393132723723075988978704933215096142553125439022315764223071663694125669001993547910282312919797292656174776753749890744453031017476125254906327340323917314194974871727783225277911108330003238556663777935051693253995594145098291984957020112350815350270064823541352028758844928961199595125116630394765610805020594016333312518469469126006761603441395522430144589389094835318676840547946840576681344309493108681395031784786432407017166868188591217323269934890104361593133574222694623803447971578431940518827839738249958103693488599714046854326904740888199992539084729144966307059567466834201613996109300662729777102742644525874248368255168190440829550938321619662718575049517377532999457762701781634151738521961710754510008033735202092596669356972688346408809620094802077824062033049479553911912771841318163292613864516044550916356011778048878607927896650028060579968400498039310398027663561622825400338968094334027754788506591891436249367678232689068237628025694846493909772232338120396570536731322444776400241408412622948498225785577214625874400398305058762659765302861578302892421142766513423991808691327350640376023041038367376728732046471862129279163982931781477103390412247828483336915634154050441326169613578146798978926859535877592794676142436327810523892011809440912274616812235476032525269719811972754376287798336136715305111382168814740249902490663396709705826826114215767040392142607714744230705178336985727532498392770795029559853808040959038951911260001936198469427660243727151776390879702998563985667259695992481503979844124815765938312848696282814031126614281846768501943958699182658372172789671478100852662960974157668918480465682618320317247077813903724842729336829285284943225328739427906505441676564894797684575698747217724034823553742719585635877519333558718890077834407851946522302283747194906159698266642242603298323364049728470818907808528060863173296475792269693260217556011382997431919153763275152260859798993283862784507164691140191003003886055914579865567737106521701921299500568099971643965025616444340405765668628816103208997110730903065435441196702919178663056965781647698821447376594904553321470891624186824643150543727906261292487112400898901162347577042018071274540654016859111565293395538482420356299979312645533040774500346098215519231012320429403377094914258857202724724726532550764886641783442490652710490952526916454556947461197103221924158510664158114049553108115159173874325856905936202031504912272564543860857822209607079930987732830821631980139612828811100232180322921917626589453932847399651310610235851933903300684323972438992555524497442470611022503610037742527682318915965065740648757519983817954484321962084422307123833853481874270277135073048902534827148939834734255860284424125426414953149992439041283857925454417258166619072659303978844549941163237017049232438547775518139780250621547926265110946609120306915021033432866625673114888326845193781418415528284981325461806538881836389798982899115164745999065389040393186397640049196746147320807095413811593550810481243757185968609588732866820389612342335570036053242118239783419386655484974657653016770002064036326173955093258490322731797439080745560804135178468769215316026903391843361134292188225410122692304674493438091119369817707088355995222006516348057824208679114812947584320633202874117820882444177412035379318609740161384148576461177932086194511314203650372219472474920574591607238178712200231465842431464914080597070824987021744430245191040418051652086303937976475619230876983561496512760641522672528264348831772105044136827937947833550007163642108728313689361886549485511595306445503169412999687516519890716793166727844553687953052478736007560312141969542514026925742768271655364061798146113911390216609772116680093873262475256750283183162561021673314103566780399962869858811831957938619141613393176216032441392204810816521454758047068630187535563254659994514956101149697526193849218725707802403041747366079036118768361913125472725270610194203035568478341349599860838430134803705386693173511684989386121453447671783899169584211796359108088743885996925229874207985814482170029938071744521067904748018119153440566509615233547892815253700965268572703339265507542452197886343352704830948734589270581937836049000265255902184278617357253602559757336321755792716622419794063751752731280800237206263010294729524980193617751337031414191886087526336773674748613785199403331810008649096632374581445346489945599772153607178871219994305222479718879479807287643092994884699247645569544335126056063936024370482199437723566847416111517237743665895148844473575240916579767193117287565962694776017577983773228824295350928559384329421700682927248932786243322277512459781729083552141086590471800863564390462728527009631837620162498816452118604643417489804630615476909323748592131467109071627311000912154886716734739825200370312378683760253612621240725348316253792871660865569661344552975319990214971923653976362719390007433613574352079266282135118929169569902481221567818186877951220683626361724746301361240592643804874741198769305686977289900591777012412492863185247945095474781851859088313622420932926919908806427401952427745493972692949320414848909586085039901801529449529644174336263041055545499525289264581873843595031348669811884244976269178948310850760766155250473063969108295942930513757363090739518746671861697436236159997006614996761538212041225408182094052954722270738162210045087472532336695807220311984763070764417227410345784408347269576883748063633817927475722804664750817196790320279886042818662054374451250782531625330659548024381260347102974017458168849865666866877949481495727474672134574539880773868802923853602906050932561384379071102526788700347892168293049235835654688850570560317744804770601743741123469424591781422258895020748697489830250907303764750655305907164417597497581138647501000103744236318750766215515497134410618718495059353663317592966184946131743954161148839855593564772292529691016392596577268147250330202992235767971770696231265488425990115624112639266653921009300264316134818722037299486383440723409410238985276801536293437314064247047747664085302818981788006807207840620831673955774686991360961542594879876113588493620660640407171116291924639034913774215939427943453822951726720751421763885362958115621428747508201109764825761181741524461740638823228815379004228268616409385804152651943600750992189859853366468659514875940936063111966752870513042369950785932707307705704582814600684482790373683695348423008008887009664234926574247334295126533311367700781819309901677650094718793915326251974341526899436661705287084047321392561532056284803167079798326774407061461896870116698288791054655804001017612758338886444361908616085599078980881347957696946832973419852175477758015536303725205177705817255974633103540168728529431944448811511481137558282021425217156116972877282670563657133845508204753854042361556403200605862124968970217507879826308815127701478692763866106158589890196493185914359625217724854805658355405731393880918266196658795670571176586270637505685588284476237525427020921559818159653831043948457312202879734439904637724929369497824553503520352047721941224168619769663388757097730146868269394287458368069974210828949496716873748570564572843692300485853571551687947840260313529664909592209266342691904625356926385899444129043130232295008764662233150712443202660525589502870111460259351173778288300072313552864188690449121617018956889316967461312048851264889675513203048198641326269560520839696051499980989658359670441931463633924467935278832240228709945532475612470160725009746013720828854761644625813769773890366912792263153384787833085421329348097610827022456590960881609958738691137284689079260323235452908814753546267578343389672553599634130789124388243961108860028539898820612409684321630811312151562328460826132501056030332238204351992420888036800924552172614523176745961478701139284413949419345682602799463172790939791498566826664578871655988930466895338080208402203886259227539513465794114857258820888620786512351399482021596617396567861270609796965939096900881909261557353364351623266268986176981084148727554678874442740673927736947327963275231633373621189499440947606325240840636645258480264265571086933899321267599852506393824580909843544021654999321823893282884408610955314517003640197488733614136000942627859783462841728258627684732328667077651893530827774449909285082998616269133579060568252171157661761200996499615898930243117569474440372203905404585657869113700106164925469370009189577220080353048982288867484260824744295871238660959023799808025669839857272616705500730770115576455619067609345396548814716933448239036115824211152998463128582919582064299564798174591367214363776036362204790096046034592212209142502933529594621420380919798069576812937471449254287201378305976903751314710863536527285845195928290651722376478650139252377864186678109333682992159818461041903594590918809986514431070212633127373020228919369486433657752197504205744202304560306277261912957055426106457596464974803976496191279781615445856341852176464383095635285821281226802706329832428090710743002202901356018410401425857458425814936802048054576091921142429835305934175271754194164284246460302889130908543840696394446922741051939927814613323709827093248515837182395858744114765186628054228659618740848068822144199066873554695064580225831260669510315894692579881074418028402797560671711634997514990991688097075597270752865013596199898314374133515868048014805124318479826975252767024310885699987459019564752213013082685035812321249530057639076926485408096133032568326691238261983539261103245071174642518861906062513492300831857649737356787891945918504214155735936758513630758263093826411851910236234027609893445511914711008383035469658134643869110461337318757317574604143349028854871817349380996826250522708583055692244157248552370437322409783645122740171196892962934153657369562706888749085864796183687534470814720182616540423272956734467513793948270192497938124803199072605937581118359058580318198720467761548910745507633778570762003084852232703812604986318220897226678292580850392909554029353045261068919934428348513725483077088539285108305172571298688029105081326734045315518925767094053894835782562117526013738085373639160416612222751891503477014993009606357944747227589457996881953497220661300174926267532064465636258708839449205755178653324903636330635842035383030823648283942801768571892603743274435900071970901502155450444646221494761897022390499138771979060759501567518310638940956933822113280014035092383176623355703518237801626256504900927938235036706709485884063164699923065767134960781528701273961479264353390284653385198287563807069615362158685068426315175478371890669963969107454056267547724593124298233071285069953122366212066015296931166274900567317970534199435877513576446021024973771041993388947930855864419973660552887508867205614071273661972469858847139320597418675217978406298582960589660451980900722276578344638570534281120867066276851961771402114086102941487154988084908765875806254328902360429366556909726245984983919527406212208667750349563837752586518113639666838546615509681254784235373542646122579783836360716575458348792981179769944618145966747638124142196184819404349420274189498016041174123080892957147058776415572435829334359318936511734677298322089730510724487352559598554711624764354715859864754549953166561011660375425346990612242655125770671816024337417867506240190970458515626300619587272724946286015326152696461979997593448799464183046920212210253912262835272242228698024963863183925809553664185043955032343212578505739512739441970731773151177025127232014573018511504832261300952997263963146339290444941669293353124815597732409228622658506719504658029215961216618907482972682494837341638679598317529712073079942587865071383003639585226824729239398834424248615828440283952881523081151511488307308084272979493479663164799878058086673279972446970044055868988099341519669645906736744990306010558548591012784602584248275699194997826980232064718009444852308466912808406134879252425783085749028548576659480972586972493415468445385630923442514393869771082254868854551790515568990869256774462898101048680416766146207483444822773141299374495492205828447905939590817744623600347536773630657412545691060805015985980890176830890120295839909433174772715721221323855338287063584152727601769901061867887986167957646090309265468597509310809184006188677125531355669729162338933930429289542919400666146812484092327833491783070805050878388398833850883684267780042907145748702696724782540429541481682478913261659415031375272523073185792755595934154160791434353256660099703894278194404793352354369780867974831844815410230528620351394426545781964261511680040468566734172736010517803126875723222861855021887419346455165545798889311377236524418335209794352875295656018385423228987984039469020927363009001782061893400018984119367646089677508127551695586767320872694274346346287314952117972066182780907474967603902370536121414042237595812085398112928473046013462296579432665773496526592308811872199854698831425939736900083344454362195950954106613140408078368046686865445627924270652655622400628035000976146223345893980987651705003769481769865687576523634561616949278931693171210517267693022416216333957172858295255618950597327400766285898371957088608290937271061153781421209384906585596489539512195827500175892292596543390634520503490755850839855535394583950695349038747750324510772513930915051813550394673145667940457914546156488139410727059593154702226846531376125141383335052422067783201766218249695821829662865592481606898798378552054266370970214749363270805110987564806421778577563664757380716338288687793705864981883693946387662038948494943428561864590505388528170190640139373181272543261886717053650590781456707735068813259597820535618921417905746932134308716606406645956760566618259026026029699862143042109470174691332149390162912675310491631229998689622973675450769778417231076759371150981584026836819451642863106984517891198926493517225179321891249104183703401029112672355787319846927043198947502863776177786300804719351195501203368625189693921491660829199027174461842810421152229718125100933822811140483598143084152366886608139002548492515334785283287929156784365685026542142816383015815832546964250486394580958148048745751760657034276075119355511066974347835040629666289741714233447050563645992758299287461049133449877785020028093110028373509181355204718550321660516068705865462451450067915371929472257760912326886253826558894352090781240076627766255152291436760389462655059554583630470003225553029896099612603533037743900690708259475524486271896020333824685608208820578008698011227683251445727021783896193309442365813450390489214496907938964046168754978229361562490695802763054231143430130903489912351465604519739763319888101113080754070136514553261080019694287942663414700903667820497627053592179832725994500310968800496409173505663253417302361224679342756794794737799762800333747117832719154529571521898727559081994413718815647533285269900695879030413461032634985686255152879659665852170473238866114869173656577939501069640391408821839803010067899904609826850913594001034651928697955907120245641643109656230322015793779436048668548808882734103267838370427162409193862946448400771760551596331270727003102868497121987290203499229320419855002255955555468768860271724608021667058060877485284256740638770199423461319269567885972922989931160472081778847021820086107606046201369430653290429017802372429254303540815219808804706227860230429060586745734041441441312746912711070027240581176646289948183066598923766656482270133446710794924038869572546363772525681623989520994833454897929579032152659333832380311053167140657999699177966865664200181796082115469031209693045078323197544187504471414889244275324065905436718086070258541490665947408210741397650297540197797097657490813128324808628712619801682306481621023074472210503604776889039285361428909970963044335276822894184376109702276490885740739005164175061194414685028557640415040867188516538895658694532183539736395273327345628870153320224820165867316284159613092024383438336381873715916397903639963256776848827017214400777057584255762917745837538419254315513585161522867729880197083084145087637750303284414538966320306846046626175117985081799579794720489577412919783546238336629876351684189882581572277183145609267288311584092116234246950690114864013787338882875418809773847381153376544736134624326764178494055371373141970960243681507239733296834482828017740805436538881301654611548120916046789145078266502247341776185588260825443591301436369950155322875091859038226744803482381888303415665065499875021823298040098481363688633678386992092966718273400723976550398285694863962292635985901213004706854945290469734973702039151655966789030816160413832833132168526848556288112514733059075602376350655128030519555431319945748239989087376478592304764658677463755964985077105717954879317616825039215559644005904020475408968624366848462147610956401044483180318706844738902001783143546402191113141393786933182785418667500546892004225992021760261370193956318457991389478358364094594171642738764414607286446961904027961302643361738370453243611033677201802158366133629732955262114245499224847712974374831715105417629194804557744698035722137667087493404631626287891387701565016752851786620881367363555243795521035188617299761940552079471556871338297840322903967755035517918052791805650324116695807638848799657078586267581371738725916811178956402692112738030141448326792724727447338437114509055824216079135591502244106502882393260757982973687208535922477740550189145989484366490702924652901839641619801875723040259381547184135042857827732163747109455966466393713036026099774560062717055013524976170259495439994401939162251970562945552433455850467302085431162450460562946278416998414137671694591116677874472573122722869344206660300528304101328487647382432759563973869176100699369894292011021534493898972741990933874241282145322792952960778947337976986455314063864886028815878710488775917893076631033921451070190572660482269336694703567795009908881182552325891549472900564344793093449138556580450597704214441157291593614335983521765429870731008090008606436386729028161377949228167890886654232245824898827163418276371040573598760787684182784130768148433055450536742097630218425391404558638828458211891166599382008287991355517333208257760400268938121930309810912360525545457837744413847292647954167019065953096096493439095887995667595970851123937698771451126494572317411389401654778403743569890163820997515480362463569219244065351207746773114014589422258361908495224154248350355196833198005183611707821337685669891590171337716405603476313969164041001606527056853982700598111090354411546695966071333844918290373705011925719176636258457578724676079913889701900714698457286503617733307126759311448153969171260498230909007538123101121993390350454794078508961263941636803940064705167429931946656115309853534600818981370810648049551386121287824638736905453430027920713765016067757407130909882761885398576139356249940043313609875580770238805992960589468690367750784689671303222988922509177351095449830255569804689594645876036280395139777808662939338640188216457354745510713491546669041537574965767493630329184010240100659932875155653265820636375624332357424903582100938214064306208952432475440288002529027322425519580054164110439382034950909862148186901105658058005378777422229288506450541726182085245501000713696647181815609766159605729474525606884085736903527736880037857386534458548749114737333911975135083386297413384389201590777007254658302729049468912191739985182570233640390525288256280750867433104757044719931611618675529899604216346373119834841600739154061889188104252114113894888110331381480371596041168103529774430073377654006754602513320597004779824393799768619633022409757208969535087650036895689345588384032037204292359031158186061897399882291785657570364134824398195359180693187827594408141539222918190412086370234054920288050508008284971278383576620550872828770654881745573193642336106223740599108987341404909017052009343296954612370362831081160746142028092885582607124993624846097815973898086842490341720746771563196226882332803958581502625305547447932869209803684241987564409191408387100282101781313689656476505959995710740602738972745458157894941557618897905779556582739731647030352083367454434338819342187526168369836440303942741958415252635322895281016327610279068184064428075297991817257430699676304760519258656087429529099038794204141576214414819027379425321652389508700856092139685281209564711467565577365570143557068475273598357923207641099522955627936901125213289804504670818330884380423185673692827650359821438091892433155179139645898212159833058408320981391012351487267390417157680061961138162012037190286182726281057835934120927525116642376409410706404109323743889179366112868113401980250795411953039896309558201117336880045829105856222684323222621731645399176674049020061746610345916380156190921515324922859332566666534050144974302789959873569040227278024970508089613343047622344269188452786095236936282755699089468750053602193270278199956380497128411826411520301165668232577122328559902045319615876963172845311376945897572665084610765865334171941199463710216391668972127762177950021852553940612362012035419661461133171894234019542080823349240612572970908994516486177696677619744531800626996500199710691721836030634692722014196664345817473842770003724947260628742980089241301193452254430844692068357697114548167636256948204995879966574691306495446453860766756170048387676901776387465080793857142638734160416011893930876347168570555949387730054495922671444957854431589019246962232745800932570629561261133099427157361311167042856204860297898529488584933129716450360622945258316808073416555471702472765529693215990986840741238934347018799963401017317579340169102395861264795690528111427832375081101136468186781195169999844647570987511952528510566659168900043949021312486823839151089279648697846630453076285063114093746570527928707208529188043606635571887025762005434110901331729205738852906780366275902381073439911778676871241949311578667716186849919320238999168768743318323376679471044237722078731338698266611975394604079638517136333809334279257495661280215164248183030171056722396779402792475364719099987855775070496541510553709944711824229744998773238584712427141127638454386165993457783925990568137867065418943029743006122140793491750368825139265313838398347656996747848928533532749178879363120135042955967516075800433585823533385403882829641488573934180249654814183593973853086852323675551932470318051996987526714964123055741417308753039054863087477336523978099553243340521806282290432494508768889828704567329458089405572420856252159920847874012965830925625531689114807599568981909684855759810615276847019853991093844410693099878046194967072367231298724669562832600551239331363703711688598677694333402229482319068709909462942490821978816093639663041539532281568231726320423074699299225387020623270954785423836485217844351000236493903043514995536479684867533611725024978960572417462918442041862596084178882445518245619599153833402683138408867445655454875536336037995642189349403747291349013322807883737663759550425914569777172298861349124526196660314304197367490527632591860859527539534746042810255502480835837175741994467814421058027098438576835528344119623920515067231015348968429128023719853120717204115444303151605682573521042324972921579763256093089793961001251689335955337395438702868284444773120488040452377629185210126762173931902111743068612923293755744423366359158290302777863956714642076047730447872201910232899831174785002736382202138471951578327766416500282619266673754223069022402595672614444664982967275071117836078424109308257092166927652577054167078320077645055505788669897779805466704483163555979931400830156747231299580230529226379310913542924766077488972350106433363373001011772214594874541212471392901924788310713647474723704884488904768200774902330276313243635381866612189532299655025829073468096659988222257774382729971571163263931483409750547307249746436679234950077606479477651040691065728329176864411755306591051920392033649611676120173757189756500954289043293091044686495824269269599612732909517084141142315545641595886467639335073503062499623114157280717168890626623502608572685292737431322057093023803841585410237530246219556203177869899168071887493284412532530122896495970523460517807093935023241065351092387235982688137749470310261862285087788682287713204476805952081833028015269705690849510757079762761982577359047144391238910716052757394010152952953763303044204171657714191938610289584243663298228317416357758771531420346687121261912310491664959283351272291538550476790556246191332998644901431657453927692152115552710801405886606372007633965229486320616952100101959227753322170013294812924915733728707649722253481386191818426576291434414330975023955926663285645519934660085762861577402761225439966999802325199585373613157118693033028523424203615259571013787442218578178760497693453419550789108500785907570874603726765122375231248876346170148072264611745828818371016764049693754915679551921062010848337397990454824284522176399180314276835148409609976015434313386641738313631394511648766633505908239010064493997521655543090894789296617649818066693876140036027789531276150013245693990769125579286348135027431565271502406369363073729803518437836559969127092486484439083106190234106060653921333540004990181796173665649688963515757459630804029804613023730136498431502559199801932749518616846227398989828085386218351573412902691309646887346649081862237623982504958378549157957884924288210003069656751183638802631227981136732098015546204059942455854560675534020674031690199643448713624649453449609696235737378814595627052918598048452422930706051870898699699657948206851943100293088788541942279079879100225408790775504017724380131814325209541791347555571730540818767623710192968313171177483693670285334606634152495727152180223234514669406716361728231518550279109735326592140292690081391589078029618215151757709014427395349538885542307299472486167954407181990885854227044237458634741313146040215193819412251616635185512542530777025370897106753767776274368150023551280780233856109077792029692982319143449715470454644722210941665122462571396777467831417522103324488978637266761231243261927424864103378016786552458095899827316891766918182814372771929551019939271950525764511884647257619793065279046837302307890396535369333942047866187721479625496280215360632687247616341336067176826841040475047283317333597810894893586318893776779293350440261893501378591506897515903320182245548298991093944612813780115588035209035168295145993453770008592948385715710263740094649080956029368457183695153243294490510942537625922539705743398092603630451916050145184169190111030531054497301118116412626856040057563279924553865125026558475485036330085766891023444411106369949861419935389208035428967087799635060698473317302668880428972120842697452244378420649628069597833335604468893511103927215078620709350463836726208367129983300516822446202275207224321785846479819567914041680612302393176030577462380140326596184611374742951487696832087761415185229791800739846152019651649570002519576422600206013650318701522190074572168816321366571116847191749430979953321251069195947620324497601158978110049979337389530649277355220485425896641878945521816618398449275507680885895974680887739806204697602868589328095566494401017886451491291442098779866757638413368503730756216064242324065352060707365526549682476931579910144169904964165750882933543375747101953034789338524035384292041319499832576009751339352836837657704008547213917104329693079148514848131521542510184836663490676219595248689233593035743269133198809082334647719534168094801414635331636670815953581669976718825232347258707925676542735197457737710744937064093204855318249694113281139728813419214728617522692881138417788330782128569969918283212867854708147082298114872015756670468550647952491265445748962392414363919062177444614931486393852276492439795871229916215975281248875680276379340434311699651008949633292551212265052666590954532016063085406232073573388151493855632095589567967510738937441843577224835375525257177156021410382527554773457011927820142821016140415684521924973802237621793854239931154487985185659090119287992667687195675596506836951423039779854690184847626514681648496858811246006813802474412688137188493576918845227319343017370123312916788914455109977726250294587501082435372364537719536163486055285037590051269080568283092766449106174420680073771555761926635248765953338126668232706428840807769426578809533201173909796665126533324237004741926021236424679464764228632100038220187716529014607117022370211972890136923568290633768981266049062996817721643647249023834669116232910386484639041646775490674727626842040059186479559954039626755150633213983068064062782469411885048687531763598832805028825393723210799785338039416447249649157034916261971244461862270624693007648977768658810145044943338533749677769225460217100600048385711639701280777560945025409004611012416132940968813757853811552311140774551178919368236301310728280534622389528452128757433888448326071634585253940007434551131418754640691174307467427878322758608913891195083903007159123491818567351549942052053699792868340283564491302143022360108289379806557636954726023378194450723003147313155328197203559956508314443359530469675762509561192873535341316212000332920854441824604764476513775097296124148107822816166516169113441715699807603697972720554111419423346267844819335413055228900468634016848672931608757314247400234428646230308976878075619269599256066048509286755592161868031781050214524823891446477793022179084604877693655424928657223431026060815504715787457603961617737108189736852322923299555262731431238390646253548620429228881971154723612598244098698242574915952031360665934670538102852730218738268551879489427955451660667491341406705679332404392294472396402371640127209051236178033016606984473281029457866486694617008405284033930161084693950343846317352648070876721772282542852521121951168294688489007531467528759621627947472792443396643383706165501047556624639940374879385363780368402524536956744058691143057011228204276521876262125858005095055220987676234483287038024899312452049800997991125616823489084886623519029365362853617299013215148211101097936633949706527337110019893377945159191421393238948258894867677255153981572081231277386375764322863383422327679991354935453263455723156893066784174193719657602861578924543448743917940664490955340165551071249571301794276828983719190913912409205905660516242461610317404775767572269884947175639735798329664124744511021897925778724650098304962668038623147711466453442472620790880865650587882958103640992318867872407777988959544527769123153728441344767496296799337642003883329210503731414945619650386420493327440220254237612123213430710603152744509764261639103937305489846477319775117932591047429387633361498744260552468178059432609474133781183167030309121153327349460936357343603445134449608718395284583565402897042000061648517247669851556294908142133881924968492393365299535174669965544957693322782255947846351074536826501407871634143676109874789522746272174575521836013477296106487152581151169533515717830731555955907411373238247880611507331847815151320965042023282092034788788086212603633928878738567388363076504984424827446047432229014056070156980959235227390542060924058066536374586062792681287465490627313334559914223022920965261910897964635623948630934022290511250215880790140430286617343873382275327125756404605819024018230228416517637767661572213391284597964045930929473526558407385915680317354920263349542321687816935389566661279996816545797642425910279008377455288970185056405742362946838740398188206822092243959294954133178277780072548266705946057104773691391881514209555530995208976986299462756741747003441676109241192924777401987105369217858546872186348851153006260689166769852317275126650450809141050358784295210876962823705928817997701197922283643343676208198004106531717558613423186255295332318173793550284557947649259444075678598203004883716174905442504878923026642848079846212383204872269182900267180631978420339336544833320848535037012924378899464908400460431272848458048454666565729172321863726276552144293425535087658549620449907398475618623724955503489127326814063813163619551425578695592416205519068530048205597428808792511293229230764005022364697372002439108458349345880412449301409318604828862534831050124061276245618491107306861838796088528441402079086774413318405739152732790481237957197101822941985836022963823293531723762331106765331737815166579879252482197453739849366047257524709625091675961719963085234190189649403065519762958001890741548623477068490628626302528839785874047357885260166233056554270993886243717273573045207623549572407206185709945489329957518793784438985044692345328758638459129136815077012323599536585722615696826301671816385873550428131093826960793566657287177780658154874329763786065759710307469894033238860163287173079471535965711141386908299782350359062972302068881378711979468747328404495000652156941193749187564063967732544306033424484856374410637986563911553946674425114605326626627087990356798451014225530474622439167276196912587410755593376873285719345247016197474283192846593350611488434175785303545478618539503297090380019602963348106162367967091552864241683492892731949608329860760731220364729929357040723014489779080928082607633123235948860685681408268917358389500095001074388624722346477577965821619347519567742280493100829555253365311040251264226327917686379720637172901494013878034204129624098338971738684541708036094419627501410661049070335888008593781532625615620214020409156136623627558252219365541610102233699185769333641609268719607428210525734883063402127323675717262798809972049775499892895330400249792514163982604505419155022491632780487174151499472049933959889293355828794368640639671182955315139662484339803006123184311309249009372396566445063476153770648590322007650876694701645700507009692157325363655134759698058258968128919012079592392862830319044626361466766538660689380725666282539368550167293004729753064924839567629722538240363164303513528637031652282749938621691323584900466422597361401462327091133954038603992637171767291870363984014949913977177766480813593600999657137411931430210538158168954425717921318753528385803739222299232498450390952605439570884360700889282268141020740705345515046071656984135510661115113745844330176406425017552017284825297138693841161700861818149506980143899907983831133949824010183034907675455450126206435088621523111169289330198933654932998958616844179014276917644739831967559702807885407052129157153049648139915292079402639063525020059949157795002588868386303527238430198418477543285274392392220274617513996237144590265216943958557478590455789728796624504151277330113299775122479877576436460905203607718365658795670518763193533679719922425874820959159955540172619737619904434587227239565275652283421839984018351637270841918711231196678903202061007079823857603430024022348584387843816591260440277917505071002660288383344614160634874812040588839491140707177166307329125079790154885016652874389444047611031003283364144523562165329921495673705531030835287853406184410342515219252876930994899069388131041677293065950590680437871026498863497265173318413758335959984610008974971901523045486237202748671356322758597139469619809543683509944626681437503744932996595641896498340269866954592614573931862636336690261805382178193173894456616015450670261024652773133539243209812413403274634759464045739363430283091778724574916567241305582571736661075447908589946860062913896955222289086019013476069893700030986325972993699028222463418455587438135844357155562397200349580135209337136428284238573248574267662207089199096781959581778431435232538345975329580467600534264770210554095342177013439882902160220932903715815519083348088821214192502115808013158053441517946224376511679345565591418348899579655065757089932588439201204806097685859905836538083968667619831121601796675597803411448751455036297111806718721387352186257857293943757475032958370422160372310911740368514911872940053354561560785560622964329489482358541853336546118555226812103886512140855487169379984957913743931378962553315340057822196713535192598750060590027080158230078701415525667611105257786428653463468483448241686933380359826709005869254867750165282625341546426698734483593168614157230912992655216817855005156750801495277007579803434730486274791146754750429780829792489606523428140088743739813481882513688841442330581845623423147200838840176912247091401075594880211332207257556748493676087250427751742278300748435418685682152158803262939734811052212134623452507386571596461445940065572216360178670715230608720143670543694198020966110206138430421833786960282285654037473350806916513579570758952185758902203003286797688733528679091322370841728543602536865411594220804377951245641807738628366956458147210771740294042746649672844035641724085177736228131069472804174588701934016559858396242845908328194038700993299546881022949682312004075983937765056439727292913640869226810266176680028866538398178443349363746405040611611580571954019114200943515703524577707700880992297593015354740248953382596709062098153815180190616478401775627807004831082901928722179968882600262345642722133390586531831490006483696938162675490158289309294771136028736742402967618746997633362314847983085925505268941795164204707376525429777607920170975170678418636647676298242893983820667210091546956478789693688747069881467936670875924287831876478607334519503922364093222225740973705307160146180048917504119904869870917097229613043760568701618199783848277330382257392938102175408078701129856165865223178053569692529877017518304028914822067396525050146783709407446092025361204009142093511283094131267885037104191095444004691885910557566954669726793023519170186172639502581801058403998435915842427900096518427860160702058629637252617938732442226737608984551129671700003174043366424694949765920212069682038579492003922624059017092982290086038503869477748713493313789655618742000217176179151375915686713606343750981888295132071486944541765141982723433893766369343377380434700678228069607937600166307384226885481500945097000044578368264081418162802952711147198182039316682876497361634176276689748775733736416729486502545591247913383357133680277422294790143736397964229487946821645129975511654502694089890896147337087378593407965313327528496931522965307458810383372905117195667433083130403304535655339432984825442157210916069302541047881432357216914597916000881096306365832577152476564815928596964147769181688806691649318419259878248120891152010622809999987519165527994267982319971100854980861382451960172890736709623493417529887910459716311896809356249592853702859701685887819712314720202755334961268731461728596374023743077245362648578561488443807351479748549708065269717658575514205637180197278352261960346043890455817463862459912920486057039220910399087035842594055011397880815203545610667372352008167702110951664008953598044705868893560301094976727263114775773277548677603227746318060881625125342613217930050545671467718829945731180460074414435147262148375048480223662409109872032764362481762638185706038841051347679391329456524214353980301388898999259164725114557957836863888727879823991545517487486502643002044936733507598407944180592143128691221851129752615867429002487952267111275092162469658760670019445604197540926979298991956688421329980863205082277284407572931329196074436951605035964057812873464785560221129561444564043307435948227026021563609904893539525828002374910756410577801369655552490349612811687161796699075822568807153611806384507391995931871604523615247786876409913555008386588944284466615122884463122392091614873080859038299408908075167507662484426446278531427112954188377272682619133282860846658677861778862580233118384159473592755652769007081237833541553213258969396792624903327295675514348911020782089716906231483858193632508924009073546820130246865152543585407829689004591610281967466376722500288256160386954261109828188526400593144498786144158584620998577542907260333834140773369155187512201765564942413423337886950652121585011867887160692903948006163789910345754673755570651075369121804272948814016375003050715570962017946174071309188318507880828550287515164194400609852896760414266295515380245820609333666263929986288058848634908786061089081933552304881392707810837802996909054641557728848208481082040065840222105798882473096166352854219722256378499045208489707544020744911141606562853613284084850461686090055407070499205770977740215680556219107579714591806520764121004212449161930965677742667730643065603482302757868858135403026627245770009554333814272484786014814955615082648018189331298447893223416951982976195071351624188663437532145461072315214938942950202524828715300745843253445470663849749166078908893842483908689573336049452634146521268019271554706613769788855221981330009752642829783724532916025102230411200428601317300473954098614072648445592992441435417224550521690949929147256468072747182069798708746660518626920909963359339049496640485830941620991068143013341253923331226533826422496373030073363085660133129906193034020151484557472574976964445045149006207999572343391225776476511237865529856048771732104788113472603537425671085204777017658349043088551581099676162222189866399812157057602719149110968976929623382124790203536143990881128560371376189372305748613303067786739986660782114442964246629801281041782427117731102662751960895935465393338668499415131813227464556093221431229896029601712502860082699573151160103900858371519370578795410148448420949024710632664706635190841745772529160960417830823616195327197720936526616165113393355903594803224064996803783761090164980129181530725573027794399785259883258402534849322653693953174104440819468263838117716494450993298165407048926218091310653565517121181650845189587938753521434294860193574769016819322302157694545326754121050395347141941397364233200634298820380740291151750368972069396017355697711080085931900224821581170711021418339358167811635380580853912318926676362203861668218177350566547443432719128214771801624287988799529821874111629442061948122292271348314752076026316340251562953483672416816565417699544315058664671698307374025965096432191288223865441698471926714400990167617163132701477691999825042100209768073910365489089645958129314129995940914096897898376550286900177963617977059487466117208414038927719053518776110573907800075458777846391225554266875061686698363863277283448786231657331294737461417271270487499670002776551846141064456590997489694693571153482450521736966612896453915024583499316139567760465040624953109539045883770179620869169471588628376194792276392439293214434105489509808601080429224335394965449690064081380836944432036093418714329440062925409218676518775219597491190038585953187173968322848581828951285393108887756461590429767952433810523732758641417076756461674557260053868444864378465105957561824241831465862597937038755745601566588955208150131661649696381675264241910925333551210700309056833305789383336807996441645041387618781117720041575464930325882540481911347663464208858696315310281941331600154795560679415345331501368139636736208522151809419266659006679832606251132817900571050289171869048893646339019174439155844650698463058182842188554383897874699554719379930841890317690288970938086085727568955227179486395502116055885476866147852872268107872519293295859371086726700501677986502058870432684073616559253212170673698382958270680314344894361532790881485827353223147694059094878025201889091260393498567907422400957825417136388107879050239713102991951191669517497951732533225514543365860410012242791747966414290011221289368441821520507926499398707329610240987683391505191153265984134440560076776047371593902784283543575355418284692329910805080659580057847701586926823927116604988398404319669386416683136158441550681844114512235855706300131152515990147769879747869757736143628836394077722601200501620888563120790950314329898775483327520770771220045000670470720856864987350481673173522441046404308418351235611143191434822086892885663496540345228553177378676175243811435325947567808068201898307221572994329942474096509884858898005835958874048775453710005942670670774364106940941263150246389739584096492577305113100123952878076473975597126092263453893491159713196002532151337223670071333307313681133174969053934656672355129185152207480669273815182412382578545561068354264550419240538779519637706284127276472493415234282131472788155709374930632062174145451754681985795637475466671301577573138573359662360432206958705815535155571872406749806072005014103510204709136778161028224180787829558367208502305117519974820590586313789820855608166788854563563686481475756484475692357624356028285073450520277251360184637193417998325023610013893256316657604029129466318997550608996983763137187655204131511217997167309930854010301907337142405090356724800195784438479653736864087940311069165857174374404980511125607023929576539786437981213057843302625047440490225929142411135443273568555980032444053046629280361805991732568082175002280581761026630391195880369944238093495270685174575720158346773229661639643795174408540963601635205205698987267391430032608286019256654499305428270639247206134491150882918408629202881028810016966575083285977025210336438152129736851306097084926800724835477676740326903727225384587960507911924116813555326843334451659874703132904615053401622428479703246032117768827713667608011878551543717160929871716831513031932819455458578148500559601393553832401204216912127223694265448535535465580771888552329042304955709489667762462181099588457885320242724235722332254796392022200370050665873226487353409400426200088275385779076639528336487700290965973850805087944706597227381513124540002902281998495757582453245203541364484928211866339073917687639124950133987987528490331587110864220857489228527707042475285505656777377092115962360644151130227078382020609871996514274452747921014542556473972423604091123716090548436361296594685967004390915359832141171386814952431446770091273176113870000630621524196360876195685813468244359724393032117058041044754341375534081894134068792419344365089890849688712939972179391728150069431614501911003602937518469266886487482752134049733688490834664118284150788556608390095698033868697999851797012548069067998313322117107197293843698893668547533806355542173300353812335525133406595555853868064466930877050546946190975400117356729922181591420031930025890904519971015602988973421005037334318056259502279461365180867913953157073150981082737512841729866548599615000741511941339582030943714979406331866709862560207040944264936821037413687948323047932263351997778891778922114642129327913566131505823951960516076720958676574187670378418907435371667935189566681222452742365059153953511760947718169030394656833470770351220181741137695631722926391192131783484882837500365606833060049625284386902492022261484424250468392456034908522088673588393624829975920780886384621320175390935438678618840562501707940030422505775263944642119186971385041237793879059882186066799964908921853111188889139301771177369306462075338134451944252343321303634049054910310785844388311913632083475778665721467559948975662410521458425576627715104698142416534260996314711201175054074495032088133152009154173756499574471867355348692245935125348664638078239879127708295369363786432128483670839062132565122348509945675353114390715359864481886317128060055675470310818501243601028819619172869941832851080756597741902987625130093337110144932438561475015602171281940330545635816467917067224910331797430655695061344466273679339583504641583604639689889929096700949006580167534583890942461570764558159719762301802763571452680436374371818860578726311947380665752609288633655737439504030003669537245342125985051572624247764206253229984884781817283537269078939032994715062588453673347533546938870758104888796529940797015366899223067895656190386423833561791764403265991656648429701605481041440469854342416778342974395189043556045883172362407275719813037598674043655352593436931007825321158099726164603371145022317676717974077182456916716666832171880260075181160633211440726602382492053176295302133025883454845435329907024480966112397297639340574982611748808620607182801454116673548186386833214969376017685175043274879147373808159600214164754744296904891942041467930414757047926708882354196742993268501578275750183416620854065515034623236959881192377367290527357021226270805488907357073723879329297438231086395231480899389217574648412659620212426801633312151235955094777015712080116469291759860925997941307222113733335401136239843879872981763311748922062821863816843432926269209816910016324332445615634811915062223449287882951748449990552655698534879705514566863521579610554986354028091115421616976771850907659026293189559036579708238801370282630983829104366567537035823498228582936744183292593206106323762604800864476060064300216677273677988082065131777779825416565243414239365815623352762527304899871386841423706588704584589016368161669861321905956328310704159878765060152768760657012559162007216913602382156016632804205844993726636823520293092674455334068124409377386274580985239133287998039500801789610841987534010624562604506776228825891535751962853710626620467135290927953596852367766577393999109083369152001515781862201240858092588237332363579990246763587032403486175698926313158602818643079255739103666227417191328177358611055742180560288613389250532259114588985543704548997912480213814945127352904952570567104787551884221131910848877580857026669349720115650799822129526364404646229221160195768224071890515387643508245124466407094514019029327818955751899868678461169422305732271002222515062608328800075588859552866837906716545136728022997065082629449667082754411965001366545120103881107995046579505581284625624787301314979044165509417181037952039202200062352421069004834935779685383244071148007449296363249526841896615374151676534061413977168031549922068520192592922306246694704521195563824546029231788271977561707397121779286701431477554803143767502957227186860690092031549684849578532829759970208846037895397677340261066201429257557028159398134546680453721584731539311481172592147707337043368895366777066396769734543688065857847143703903585924017489970783874969047808910540419950388398134611134140314467280670876986336318882427655838401133922992874059058963299050075753251313794850212093479455718282534424764387905032484792835587642382847370296189954565096926310003368020101832508547765022355669772111856900186549124323613036894905570420665356637000545355544406927558418480936017952529289112423929860477377342403126017947834067358200841449769845103482407380833183558259522209007406476425506126553101203358330018439071011435701190131165155394882414994376916993871019729455148975878195106795515960702517870896765925622250012540280134263124649918873557074901950681683158344445289566063088117603190745795011575074754350984149038274680057725302730058886617649426870891316682134094528170735436497664245440251370294444908395534783709819410973325773382716559785184204594432618908315726480517154000536802615758920941846412966507301768539872107576861493229772956223257721124696989235793618104892847159888128429835085556310985510600223942195807385288559004591174567435551737170533583639309132761235449919695921319559840576243519962551497968547681734106382795893503874520237979594887226624202653280986850097353466471152996847280122432359793956557542768104551821668555652868293807710184304902938882217332805452818258144576840579983688167385165859036020956758982150978030323668439675212238538208482848778521093528649912483543230200287915874541342527055638385673508023320015699494830376289169124049469986486829400920733181109211384716749366233707041480361505925529253319421727700219720467900266399884918962415642176829919002183441519918459762175858468148785746942215247918900419655622300821046487787855539924152911792437928283947940936982032835369146183812248135672407488780928199810772443799207204814919488276425598832993816971270672616335900692303257643632802592453890688532820440398194364699788256152077545565275108243788460202715315544952720688956728264199826191753602194223095450118435395068580485205039256392126701160739453416720710761860677392558194762318703851173449943587899079697279802005936085652346948565835800549598598178647433331888952301166928582346474206793030141880069856596894202796893202527268045884767591876476241880806057121673224977245145966720710610045758933660395557217239481731454357941986415874172618848492430717697032758296296476433296011906261667470018352877102844566277568393532488141176942943713939782785649773569891668402095935007350582967908604729504734487775356626554493034439562527242220164976498867628775550271619159667947792038041639035866641836389889013406286392996363615536011685613759209914332494390221016310462859184011549982265725482070147053077514255864379214005742363839192278504998163172253517115443805066633699606759877283361829849257060040398620334476108737338433571236043229207937608113808751269027138951241905379330906401094052160208998500740818774380502680916320569319523971099200962028698163727723428869871615220260863386944956643332850653216893404198860698121067754872955262740429089484375301861228737310842358173086404253881806515295484615697006296660878160970639504622181918683494033535925909447889148172596852950361290559709333378207748229932982945820331033479128642231157556478524778643098839012621206241366465060877466741117420427209308334030968592715386911050069559474506671600943757679596360206619367715578895562484414385637883255172155358503371941357271710677484097491749885736728389898014927525944534432669577329002984398188353812697185380272931592824051253637097044313170710652727783298456437013174780250570593042943340615798406754806890110998397337141259735015362431532202558174939432914664896781771453700946562701081125915618932933048397005739568564525739891663983863780277232817575487220743129997277357359032965830278522352613913653795421215473234325224764967634680720397618288014335593393389548208699823480710747521529566070953774777718951319388957531337940480848727229398948782993714003513611273883545575394281980218288146688975874377168277534510411439664331658426280771820111290248364497523239413262896703562656722436434079811229115649817043235055753557130472058495699825795097615917867044052952911643267618350549882893975218419471582582990367177035624249435771492955089546131376776922450253338916959277736537940679740134321375046771074132670156223461140174034340800883235710145614769165643373236088219467084618852139634979207554349203490631069264372777354651971696142400356439446963384676523901117898619347381971701252060467663497962312994836272420602149168767456055556584250385253583815900092731551239775142002649940619424519642041891455210818283636658521393464722777254737414938275876174632000972680449250898449093315392483793905880915780191662086144043223005818029473544872362795554463626772624870187783481427774185816066918612378623515195935081894450804150079653293553900018189892971680252154013407864117925690255960987216411436879123689387070761093550535337051415186916795622165135118029711122354102350914352318222271401151118209158189529364447402684594689346267951577141388953135261227176228210081158834346478436151822923859329300136005332372275141451755500802231676956781631213312226542707003001003343426265605355330047569306018506002709419680343768181982910464356997753301018409983962468677775444528082632029691773988089226560820556437847364919261723676877619641052434431457756316615824288267707675849441802825851585302708949218683957177720184220923613934413585696489577693676448920154548099538723656873312059898207719821057572362677980672396802920509066751561601545530185947468425974850396137265428994066699474390783655990050372397188957657300272984973748376658116623182314281266213984846961084334626838133450274640622755344690323206324818322845532643838096642306628153156190001550029087221313758023181467074378023931673517223286710233954711142494934043239501960118334790225738595240797289035209484483356696288241175496875041977352196029372177607195867094873716394793636626722622124735600592192441161262667864268213502784922327693604617646962032632410780042299484752357214367415728328506560048591721704773571278473677118819029939467485551127709074926691420179025402428128670182538398157290519067569433200780408744828213377725439658872985696477303333354762039766038271805205243620877697859382510125190799483755835706154086333606416200850880425609773129026615834396766145109250649491377785303412082952280420345605779127550755593108750196771684850545035906751295014229269252771543212265841500462640737624451816723404881483026743733123150798327923607890469256423927307350239442601989476151487236336602387744968648403848631671684542799498143823090569690784410508330395129824846169759818317017242526466526547619506490282816531664441063477381187315938318854100720273475924000977853886982856552379027872624120404183606358232904499245252456612920580786496249271486011595580421735314248962844821112147256540325271651263740157590414619565654454666605568024400140749837254493685402730057742932986033480415599090158323165693189574652347436567770670823168998426846199437301121527052663295306162189789196430181974717865405304575620824130939107610353172296114900022007480765863653099715851653842387175619880171120769601666393894319912164655824150722768699533081582168725680135624104175476701035827985496080681187578284599239096518745582220027586491470461741199285301853026240398602677794449161157792760893493986522195441537062774844141670255961409437686859967235478950241359612681740192884862216023052050378659621457079577210139804416005825691194379994088091029130024190998333499328447871132055201182413813951089184671881384836170483899891975700177189440295846653495520357355927130983292309854576697011473825171822194591067960684592407061630574529539027199138382682550033499089830938967557222512849148901422270784649576568822273843587820410328495783711644766026240303332334709336849271530461641390372189782779306604630955864366762478426365331705872706778958703468200600332430766794726173924856423028992541048699577359341231825633877672394465798445171223971370688333607852771264084540710764302551967745255843115789825458305666391143463161544295881998751493270955699963438832498788037517549858421035979466983995467733585724522668895443267292192908960405702909627142871507185929248147763508514270362866708801538270279697913391497018773048501728391318928981370673954885385457451541754339177595031978326601860324081518850898972850334964842553741191708383338474536567340310582239882883012430959467290478578216527205668012782653461987422163828857331386766788175846286137395446183424459665135392461715433407008038783196200871522998664482185607166757888407473345127888129019469272239422618409564318218147046619817978854048646219013861998765175420851732077413776016828631723004271075359939797823710074738093085779633892584607715973235943023226914000440760739984875834629575531207018720478675174650019690611159629875246118824029314047484873074279683582447053553873097526071202635599961511112818697328399656754927663177237002462385899995238384289062226010335807084220673042245830529008887193133476179101903652665720350918684836066853951098888762634947787500440736105226336691362471318361218320046360198378377343444698870872242028411364315967339724916448473756217679531134425975070618083069898610347301771469390255210175242564168394816971716357176591659359156318874593705310174093950270788210008916718344908385396375937876844017176735872029166168153968162664199459148491744483847853206568046407789914857196014424907635078590653059792847038057464342453619174164755411277406260253612993598690396860611359622374285473279663964964730920572721131301971416982891335196253359825617769715974735320781162618116808473760670051657518291330003051068946393170051230020251158486040997046449621455952788773699883250709349921900763617094367493480189814811063616782648829305973660716646050108551720334423770332458928116062934683117641053529464279343995794566732823729028516846648298965361530503497070958412662379182246012941796052559767526578571721143421008744584421628705118860267359389552708402063083912878122236922209175074486313104834421078832344933772817925895662369452657856335064564091553044862361409750389852864804916903542166153413165533947114791469556215112316021403851813822728477748517498172761529192338762267619326403813222021523393819415887220219597592749157635558258505462230802176318211515833320012945437056995618219862779743345770853856825801772102178057896206016645561970686019442372422688039065192947422312424857595250246621973761988186203053152972705263775374281999108847857659281419943711487088185044466313753636223208829975127712000266451014666474511691113737992613511011238911108990374959742000923405508531331785034912256656938987753895854258316898460509854207950054545734200302412393260271023710358881337095924439450505976966917511347314560221805024251968440421150083996749329316966802559295093742673213243782241953813419507077728571771795231619801441805629339496689348619867318907700140383142314629871376029823977139208941285844136958477468517906941066852398953582699814102104711012501271189355415459407933458135567430630409219988644015596209729142559682549770662386943085265419841972530788308607418379753651281596863397414955952523836540623400022008956191929661545747665821451021895707147385585696610172683153941900278430698736206535446513394552343925960375068561011730858105680119618251159005627985670012160395220241124176790843895599427701192546470992896489604590223146493962662041756147791573365183409226158186329915657642715238708620397276565721768698788841622345667260300304953936799844547241432300189183084853237876510908438524131891973300566446456834491015937638779574029196857728484282888360628084504935121109453285318583839071594595152399336535587994368283074659764007794733044481046845050724671789716812446005017721965384453790896943130457400106552587312901026157185065609201183941419803120955479217557222887819978308046015552782685292179749965204724452969377149386578842747702812048999371758059292431530946070978233931414603811308687481701301317420982942111853626610765481561912954485522791429587509181047317212299719855075290253192395680492396111520585347246041530214024115129272442872317584098964551936448433579567080039735937205683975563571050104629292692737445465729016722457188169106946521947876033343941193850373874538596490897061164184628494295679013107892803278917564516090326970763825401343062381178653593324211953993104486360589820873640204697723393391349575043892352957583557898712822877664894641370995812561806762755315404774037813386133367174686756091159471440205675600333354303979687780387620558772706229284042688973543320291379241988832558807497442444111445257603533370310014946874760542039954009924189384448144209385446123721995647782901343996297232527440669244489977657224212494864891026379152934204086392862707702866340418907084720333039259013745288563178464744976270871899063127514182803475105825094643255182004914387793441969399731842933612884200301026504296826745149729792014277114047945997312724508435611367085940845197648604865621159640391286949905360882993390077831870390727431161301434510798350428338867340566423695626300624770086092125625166632264477475513237809020841664520300988399091761303890397867515282916478042628407423911894562596937272593965981440021868308517382864110061506937123980696462638632119924657607540308289703614631411280435745106349296614097779463589344596843517806654021744820550043138258559290794677848422364640036574598141381208447792987903117190299111062350081218854734542306909496805984990694649420349462132387989308375436769970613768905300610254596352406165183338753849598089614800456701919960715057033256391976077191823697833562510111523439258869932804709732789551629037054252737005594250765717018883887878182383819057471804709175184931637033027687490828745424497147493348224663977360659733708862209059025347662735615076968221613483203853444748764653588235016335394430181281933526644711477611343264316438989221497973035510299918096353695621463518651567713967473188198819363503110473794115009211700342219607302572376577904816824748719997791400886819684781802699706794682776060015968847755950586757091363692269241908235469169033809004038597100252140443215984953798857619356666426860068261861218808764263282827679613999773563651176171501601233957828661543893886357748112519205607580972978159512325872628080863645477727646085672541775589375232002865314270362681602803567613902999404607771172690893680238730181094967575000901695135675289882383772041562979399059890658658997612467905003953369172140280363512079061161806559523691494941765684520969039715525149511634683272378039547172114042863008430093368548545168633096129318832662231870775002726159890895140097448950971960178717296832457900126694022069443927382000918615212676512881505828371183011884864793868185023503661390121039060492348360651921166120250030224301747236401210817552930541578477855440334593241741704943768990023369467091944858151340373445391515730341216827112966531004352885382013632182160717104925353458506347272827835641983833083595812443214481833135630424778444018025940928714849844871961473980606075493465214716297302981476028383181733824721527679736365999276479247457541354003823487415466952502604966088127666314551935821526310635897189712993583112194837217258950266611679769276458585603591049974685002961360283665301101743436705609436295738638733495502864926577468126161134079548229885731416564322531567235972640234514122751721007770551816391606669634374995766545680454657469465268468269964159205307102445279827374932643018808371474206919673010735095052621469245318745335137530842137282119732614933446736098915263306558183625012734904779889053859115150334082814766965164648575261190755721572479784822188569684700207657574389470259482472759298670468765838108867135806705527748494629857707136918765424870397207222065613812319987035893919030444723880643189293932880454668191854163506065753424631530936825200123774535979338201835742413997692572231984646866329623499747981841016131621498849766620852402772372685940977624086636670903630615122062791640928120634332078611528013610009598399273396070673514850096378706239106229975454682693030934324774066187755500838489550646916706940483262147949578739421035003655473989374679529236014035381249274435160922503263118925991000505897902376585568696901249417650330777795056431787584395184329402984329590993139274884025471083131343010957283413942245118904088593412727044467633871282041775851881445999701960730602329647220325100583301496282444650551303539631550221865029386592041570352508757967693331474238133734826584109480319659979275789754656899972855844995863218866838685968680091449274608531692719666087734105219736400018658286795823067181236591316164152546471462053047368916096793165442165096351897851110635984604591917437868227977163638964290734008107392968623027072720658664705299750474234101970786229947261485123829829536838625253764867366490653733287673599131809801893124713044965035733991541904335896302613294772196449416449879082435669205700137742455385769495496464185823979821144579218482248868791705560951016978284584074410089709301675543915851796258511446502356254085977840451533978427507350249781391572706681876162554096199543378865162628557177109725272367665947707386636300866282252950979298458340719282264655603033582503324660258472313833705352510968684188969341951787100326272905223263140622302953547483436154217399970958012725665369878236762298402006756349622263348240260394092711826342122969188398425981964272813073938015817710018928835257821512329813111730789698064781237461305339549315270385721866988820014034719529203256523688440588154332113833079315494658060623695970241461937905145690548488264262354038177243950596881542525733877692901193369432404103221784647470260438662876361967706699602999899024952246392910781221795529199358273737966291110347560276652994176051356148862171762194733996972673808610784964448352810767677633149299913231344945308673758514089263857168448418809788421666927593812619311811045168355997292356304620730172504280000734276628022687882795223192376745110130849664122261830643619905247853992342931022034803129386770043880257498732551459769918606760515489131396094040369108117783966856433289908164595893683680456626741299871559743727477552463527514759383965937281366932074185282304508825432811147934217285021307402683589774186748086534229168754712667997693101807666447942603035178016374168236989745204435100742333881434633688581423181518590742215606846071156339749236542417040455414106276119160110663315328696134492710033228654366938283431427232263786543124434762460090856434754245916683340615273952679402223098919535232867730575054641286787685087152111242939016112067816122084805990299956295585491642750264727910681093543653174527668410843588197617010614990499618442721766445668280683853755719022591933168570410151828726258503815439175157384404680517877110898713315026370383916226556215883564337084122521061407952977008814998616023305126715970983431055648582875279912380232748287147941724628063327522486559842818324755442001448039830870122602005644775075932171429110385911253195655292265577579598771543584929040226059768100532985510348888770611986483908747648282919839942261454734107499605921337029662715099064233548751189578524758435165032253149157234874063503851119186917453600153136588242316279046832910229511713795916844126924523948997176896692798577352750285456597901880066359412649158676942451488937635333106669050973929732664906567669652832878420395866353731916278237194947239302216171476295502690256302850206747380888922571991807180818277096552605444202085750813457067678537284829618207731321944501682653056872857006615463599426103656393022032100433690868291612608093889601864279289418436678662404701558532954861874300992915432419689348545765592615830925975756283327594189228816613078690041439206818546270166629755549275400007916134836206206444937752617691424163826145147025055961784909098877545462608835580794040617356264150354851564355131500738348290837157757461048025142030984739063803938613247872882855449342454557161293184298947221920361804741064691973074751210344229969614334477742741299112514853676351865531250369313374768229191635878203164317173185972202426295979073399955100766977551268125437018380308020599042383511870254601351615166488406568520930804732987476632347660047562951857403664384579984558511171985765685315792721557791932249914800396857708083914240535475910934357750779073331110631695021980821561869112216456100412378086583384624857555067892252898165744298465356058906183747411283529731147844442688966762198536884050112784959470059591439014804152632511552648019438911213312548135285873145597883842951380196967161470654615905456123054852226787565182066848143042547082822369207294661579425224821364827392739610058328680017567397130919769791862573444342201343952944394740616981480913747737161204443531990674026640568604854252620702539982985356149073134142347048127317652686266250539828434060278958427240855335422245066373947211981901402106192882119054074254435098384712918501261130416461150854424934543068545579148593414715031759806107792851485265793247389588636677200139957147098235017504064166216335052310095750378622557457848885841522899044744413454948682876632841444217009495912595283212066476641875439872522944595134246811065471665610195126317535726374402739407506968077430808720703536162883289308823025324849535360227392498287446449390915996589662025747861637462213710899217731896789553332378191291337820094659614749502526112017114033062535613519324536278015663210747228993450429858822676079140637478658161537181411017334952812603020747595502359486566825968151884707455819607531847397552331592963879827689804113402619937899875140215987622993408086273165870329046223210250776458179770717523895341354520285588462600226145100115094377915484775844166029220375695789473096287718472396242513694725596809696233913129469966805516071757098342832217438704107024867455113606360210662625274760456389321742185497365908491103679088982717524594290665549344530635621646248830876512779986802773467501763516728884909279654268516376109271718658745981071162721371889947017072010304132245408695612885514065555758303050146019043005972625599686676480034753404500871492537884675407241821876141427434195095324404544882348307994691688511413480487890130666874761517761357411905480638794104397478710903074550773023134609049900016435456015947722418445268470658158730506248412237300108025605032257495941172135732889481713607642232513221448846770733104631459540042337065686889322440662785305999481334601056047261995046392376984075145693684860859030559708425525377760199112289533516891014090913286331446113166741334334990562487303020684995761355934528580018214717273633073175242121481451491195021981240301658962024175686972085168570864955719894114716629236320538597062699027455869366454063496554504937654795526955787848127866822820971607598765016243795028406223098950412372533220182045939260279074845828132194395053000404662267727228138719180680006222914043765971068599529382870417645213259151866174880620846485187382090469695042681952852488558752613062397608156646668115148302100122438693324101227367648760559846886733674789202482259524015674654403222668485802512897349580358932150405908697264067361374127222966694737408498923421440451463422537242217726995447959372897352727930030334606373084499997671540229706813621375974331406889518981319338287332354807326150343084454998162355915834483388349935769085897094974662797581106535480896094568614212943534161068066095765413752978235281002607821498375157887747645182177305145599353227838910888052301166823063437256568123526550458423826009172701467908382422062211799410141840385816913833119690881782323409681533018335859121451802978928097795653623105017127775992549756761258707924535443100023104727675346414931967703969815431494191594943186403955007573316646455342863755309317916360880604139013141871072202111493169080140432269571468907977831133041320076589367475851236904917713007564403339452556287304974387888506809500462670173702881679368364843205926231603593549007020918780098844173450752690729337637319930946899535183926176695849368601862813702544401953584321682406996030905975760702050673940477544131769224732695214560750840053998268023310033500473104283495802406487552289449388955560555354626698395175595242996449420206680951642518801508576630324101158353727712812836886361475956882744538008442249075428291832602298098965451606905794218756324814582059416080727462903118342630949616182120548238233363709914953151473274133901809605695927539684384250227506882215030785485465789646311173958990358539850818291812581532430503825304659418726804612547934936795823216054461732460208312264271815584019173464633470460817825943848358234634859359136013611002306647829112177654321131747857486868045934476034982101505039724100250944617378209954608042246584446554719800408244796067318379897476824675785475392905437608939509915512443287108102736673105999581198995452521156367131272848609597680206004818469933655737529949865891920056270189642221134140392105393157507469254199755236918532209428338971023413201150905053045731882836622974247301264394612230534248978818718776204421142077578810741254096444659000606320219499508547622054600760275957802146978339395378883135297294933909943313649289712885330746567568625016020902058120543672116346899899399177341218472509460559025325753054507425702207269423180686512744560272294204391774313098600368420593447417492827491117262051780763279730755529932156007162235494056477928932142311873157930876589854956245265406739929801063987803490634332810929827991597078644806871866716163282019098806422173811425714286089309894605916038354657113139274726000027607151099666233346297525781698128673660040717830894489668099407781891348665724273511448584901270285045461357516628670539300254894247836174216539179696255676595471620180118913292058162212308510570920546157012920121972152746098516483242478902676349003158861761630511009407307646878717025472984500788651693623648485199627802026677858811978584608359652987172929093139581816326360060706249224649951103759262790914740818067993565778592416997436522762554695127841765578938247773177610711993654324038160381167145921517774254615883529431262446500598732475453647907109644873347829232737321750276825307767309165780087144989888922786132171859653666266541132140944111009109800929227152396279282894649550955874197172891588194407533780849232369389976985160216019444051273032933252217066434647556992745301433689852279988761693208096599978000530034213810183826208135875711558082370680897633866242798157932817180619768860570044947800137748682609146917034098779588639687840816611965814818888952816433880194963148425719180433365519317683683405753088523297103701873528449773145750570597984825660783245949820583332777149061859719745057186391394442308969782874348377743900657554513964339448181571048349086033446343880613956300853756023669889768852895177780415347436631341969118675206361868087204020047010105476289625281595363214915989876439184893280708983158095406459818510610802561733263097953906064714137523998713769887255304674857223848964365498851385151137946996154973159713177627981769539685545585391200550272549648387899846018269508912726319917989782219593541737091010030304493285951744510111339988396053515840724795885020682660399123405068577238040736942389687865234385470649751735915715557106266434140479884260821225311144104355006655685981482986656445872886220610594320958242541411704919657620636361543069696969421589465318863923830083776065907244210144770577012429718643204620272437240900939612868292944501709048012993817724030370618517751520648476129535396186320727474898806295715136111350873339197393097163437318818941342727725637822925849653817176402686481765723593678248600859381375429536478083090515588141034743846673356259195827634950541667621628493857909392664637261436133568236660455490911520168484241166046306035032099926506170679494555634895506142530031595275139595100650303885542862171311131851286216897114784039749064747768334540519540255318934639454887898310986263971595481199836860875248242264834955508545407036330821262642088285498100619842919050147276538316794586767389567915157405380341868224022551111373977676033165624356366775862397302386929902916181988921439965507287727850944825924163695815397399680273780613186355942568920469588311213791881025553762142999105918981662132250459430317053505392967298912208975509687589429292793578811787584903814323874242707757190635669270297844520149920992750764244471118089884767984813991603085469391099646231678893070207753366354062753715533946118437919133629340300342957366748923365694452970087925059286938125125921304049181696864444170206556369629666307335819486216346668331100088352894573088059129155541079661848260683394910433293852765897224507674288248721274724354234624991620905448136291385054204387432838766598039988721282929868662857114754364063517569261437594612489764913248253660663906812773254142698143610084945693870980544247865799496145644672064855770771218042830897409926952782598329269434328962415394498372109869941498848436095405484221208687551211758244010972724098494518666596769478580380940705685284665152920038175045907506010060144468096670008512903943754698250592744047620431404365954534570170115535108604056807462448941620136151190935748573083803570420370729707362626534951391575017528778687585767224077092522993053168710865556993035176834294848928782174438527878380737702708502189961423605114366310439796765152844844954277747793472102983419880671599146016007398168986146485262224540132202806237854933784848416615361687603085187079062865015799321784964883825091577990117120163032961600032454758079662669371595040071029860691974385290087544856956688768214947058603788128552086209231594599272207357497340721166788859955924698436601238096226262510914056246162041895353704329377462341433262397613373268967688701978077779295213512996518830780199622509268308927848780665590019099398738346590481214537244368405344779629645187716292363042835079529904720187683205703743555499371900366484086705103547433348519506738138340901809005353605779649970173773530028816671667655969418586414167271868359644389540600304553599690203530081990398003951101589262727714735498266719811154996411322739714444703459275621281321413296192002483773530995910526967483110138609142726343496113302970013072231986444683177983126936399853611166188895415607743259582744063351720729740664002538664257546830894734040373377954752587528259791552095676411553869916318044935081852332074423905890084803282141595905485105389893023007947788038255305633364921314962949083252298381588884936062175970595840753226200358550882907167011267363640091853450664090008628100365856534998277509722994101958304882510458054988164480366506967420834412082697002655986712941530369491061015876929099018260785720901640725026121306043690632534559103316459293229804068489425652509343412206435083352645356058680192007568288143798805041269836695616668729432705313210937934352606819546803178248777219938215172975769819202059794925804982065013745840799149280892109652985915839262894000006502948849584521092499771635278961655933495146729812601069818096774057120074333856557387749827780901112410563710857535587867470281944767378099439068686633293258082658547012377491359637573208625655436153722310889322593774546136789539703636413580197832589424878657625101660884574380626103565166622003396542229789489606028583675738892991086355708785163025023581624014678089370950277873566317115734762162028536203707959621318584063660091277112021834997025176926597694220231618415229079356264399817723902139860218921330084152710020922549216390666055124205576289297365262183633114778058324001356781781162909400728231087791388356143967402815384757040681711716416351517202763730227356316488508059684445310624550271832919621749839073580687307566643769867548292403932603635732051644270582759126156274139703173200368976470792808047379417003423197803944899471495959979683692309630997281549035083694372359151377505230623142980587106330810210094554311493032082482037984992456736477433602087611662412244878491135502227362456025639996684228483881710000182654639892298960426369422063502225904116391081633933147161048922450547736584591848034646015831443637846746961526237902114909296394931458207030613380541268470140036440376552859092296578657526151792422703265502011875187886049267404186271492620864004777257378872703669030772418545000459155600849226737843209782183704954301753006640279558448203024922376152673315515717999207250701544340596041067135456869105653191616746182941169514879676628025913723850294054632500824047969270756638508368271049432772040452178038228256474303317049539250761238430152271621015932970214933755040592536282854948797742551791493244370814051461200833329583853036596159642391433563084499350042533959844663489394066215063109286252779036323627002892971072473145701035831196674278483237626749551639984138356878044028871889794670358445923889846501972781679068542892274122946781086433191607878924270587902046941428641157837735404819328203619011729705247974535413305368292024339317791312110742575362118330335462399956984562324670742295731887877020980528886857232735765507961397944185657837423604370865425005109902617020976927140017854563708787921505460124932300488595845863647597784430517719419460363358492668299566327811500739719516256674776476030599756458585143883216003607963785176555952730504678505854389146365843379687690445990359032029335090550552796643027242714654864293167106868547635491005018721851274767504908900250618216774818252958237736649766831124791047109084676818284249774592783301443750051826053835262087797451521667421419675754342792648520117684505828529515304432491760698830934135597633289444603591632473163244483087454093471793380094880741826131109281488477225787331008101137035347620114796342879473787313702423095543184376012764226964624601943523929832137031067575947104629081158567027155058140930316038173860387467047491497367490133928849512866955903984036772088995643610849941681177902455803252163643723674302478649149142981762846840242180143164215633685684463790294209764802512277663608830964740654313053255045729204081636586570913463059137024081469001090585253236459774733785283646184349862464332689348550925392670671307462455303849114112267087495044210496651449392993378572949438140367465227152619791375125571446189596475969033646406950630584703445287852063397700404886499196903302578687928147977849847017865573769966731130828030141947013185144390672512964793076996254930052861660628071345531222357794612800948799388941101489920580441618854723864173660914937167087734080976399798466737513505373178813929603697006400155035372021051588954325695427961129882918817109709408534977597731390840701339396860685730718973826092729056276876365014503822483586481728720014352025050154662442349561418369911153300336490224617815630256940759831990362990207264719216684934921374123386238398934829339883528947572129922420550888996929135643302065257130893005564930554559881706784181451706332042459385111323039588830373139797081445435665204004499564657453629928553883224765394487607314353858735308641500415260495523951831474093968224830480444939426829107543762887200102761883697260724021000508543517613307669556326634641275596270452230138893297164071649656601851635563876543318737103084588886101037736193541609078111838998112127298594557191199354699366063470693827868936366374462070970394810703793147184516949639350258533622007597611323186819721672735946944969593559862637072368590681681974318625459640202821393639767022735262389908338215703648502485387749350383025767505365160452851818648788065819088693781232888636075522764476112431550707456040724335617998783462122022616055882213802102594062290810891295802599432866569477936099135223615488645844155568784901988744973820211818296755497730940593047998740914897990420242775867275044906527352003158759432407214219309662660679139698278753542971484392448333133798797041464582875124107343324969464678735627579627688916396094306608143017832835372479619595066637931472377446405969928257045370526303389760337206121594638810210251476670414880674886722302185704940217340920886847554450374373026693427545491353737619031280174827154252046084156218135275241144508681498271468829220068873766947228345865051142641374667942126453879203523738631566978143499636411565032033347230544249335593802432389041017927174438216295345766225714803729362723570445502748763865454585377945694624005189216743285108336223831409942775288976377030320234429205483361237738300732687776719780021180436589020808384869467792418899192727752213509837071165464933748811134179757618931837740091546983998169571795168156377446929737748734372950231524135507253928133016542544686032739316795972348091806263489842551755028198573746378139596289356354671973825568016953585125192295180681005898026318384233452751558055290387970397316355453715131231973184812303244502066310457910491534231221426076045961475670084080792743766171594818395525488008831839444558131805727479154645843696832720338445915711790905483307586510783689288953690060234897438772901776584042824313439708116492421750055294498508888129788321005259197753079473598238964295079376845117584438171568383474496137137297049643153799016910648188567094152702818640607717616164166139954357221583395422009137194811812221246387372193701832129031739300860685406412110332194370287114598733464563103164414849149218174629129745947855053206443391861581319645423709894779568010160227072955932189997179116409463284517138271139973889711212118542842484728526652776931689111633419233442625581132189967288623944861005340105858431223780164227105434709739587040991898830772529191905353093409158682687169388701691192944457994753974634357303732670068451795002266210403126605839986824982071822550731786355908886103711933030632889628737215230754285148565010995484304417723696515331578441027523105755228026894094851784156810674685885645719189079033488705305662076207521751701374559159062004254382646642988099167036519852023272108548624901461152625688317267245855661515700931605727596440307891699279934660824313121611629886864256093006023383401327684138339566478920942806137747841942386841770971520903142913685251670477838654378966248798963666361421708835168113236410063693654932031540953404117990487405137740577213737691783429661856792412357488371073905746489576486754513799952434072967917716982453855617363305465786073774155787490129663390129158000826434364565897011327865647624704338728801193869886531465451081443955335358027247288518987186240258089322883350614493488603567804638429794586710798324670182571184915611372149207940282202541486629525161826128762133129516666677509582423565514311350767002106366204432274377919150310956430026224707226952075149690193095525048262557357305093398362265373428236474300350520297319366979948344931417360976292812503109659210420943728922842159687170287141890050548659036917567640147629031108741339098883425735251784293542490219315400038834030181603254769747769860864134816705995571444041722911166243477238738349398096249925835139492739104428778741649776416187145651676482357161703687936879799692265754613047191122215278465222969952691777325356422980218218837591921497892711978216275392415905353051345565258062624131754769321168782968735509568033701217116144915842988075563646472566817239153896228739103752918223873503972718815618446442434994873864375015299120252071591924746650289094086644753913661186836756534052291459021728945780649473146516928845322441010730389503201107878305654895676454115923668830179577352122567501745925024957044613473510937083007322897887912800476302120936723240645802911737559677284882425603219799096576210480407883493640939166748756671097226911933546498942716397281952128267220614691739280928854872497603968205404498651275592899858096550837310563650548962230926054008312341105031155917212573814945005573802879818643490913030845775582162407407510338142380108410263845382107882026065341035027011601667383630561138529591666108470264687605552829461478992934070587527397116219972790064300174624139012809556387694673066985689956590183905451321383254483962965810281429353472510444038269390955052482436864587153619718081723299747291638305743170889942941033402486157583343638716751708151327742143515606229869960890824546897982803245004924400628789069400157118910032223580622514627665697537448497758444416551721767789610118998683016532026920780622803514933264937463453780029983598989740610019411490572369009465158320105334923260877740294867419666313507684969375122678178188150304539750467450243973015074033624676887423773141080062594378808219384394263572334546865797817503071405204938574373182124432626631031071109463422024977017482852218305043909447569261982138159293956715843538110303926371157746059343012136115845470370440652387354386066241787133003626792130597226560537181192628725229134582256890983809991042442335995810144458729558238378452320995062776295050188445220610841269463293189653958906314370174496446386678239697255623552254840088813577786246111476417764121723185009562142339779228427190480790723142477090899906567163165981429118068034620038082871507111737198852746944259508076529877096782481775840716708854004783060291688317271009096904640112739145932351182421034107465818425152638442565908859349061436344014784648873503309925823830768503488598347667501401659233260230158628520009588876242065415706835408156137802124902860652803872110309888436020602228423765059356318793883697069034586912487313567503025688381295649247158751985780320720536616598919088458103147405690183423683002830362921989352711178212668472972413999703416905823278969336307581126007062218896712038202635460287557589519804594072221875672582859302332606264880903070753385130980398069879959554930184598125218638101789858810171311087324956311053473783791425991270824322803089084009145348312540495214101320475029615230567594673746062291684078185866340137966326029957035646155322075994076636022966142226365502649255537993118440534466958771131620529080303166300021903133732759242175533929755200627036001319109508138343066075143525098383127954266258370564762284350834507430451270638665971383113223719559513916996276988664436752755285928751517331827327103770446401459342591625138673108056204889294322736313517379001437400217303912463856558965037488250931276919117249419917452610970105963227076751307199641688767315352003601477734302680976932510596663631493115808735967354123755337322098773871399383485306107576461482914113386975084565530483975209196719476793131775981745111134411555849094924538043059020252311789712768421139531462932699082528546559999845159447643020014719675811091499047269631128047029781160620114957712623768859558897312709567212631980304372296446775667522798828061994032564136078529983917565456436876467010915284838767904855191937814698119820657884201107376211682476765872010861461163235254830262938855351660835740809160883768983837209089895125780688107440858677955472707756400007173599492815849120908214717632882029145586543259670407158818872642087733645031408511755579536874273311429586179665044013831844091046129729423339394792352758076610027063258779756469661381388241959345022463333869874910388104039503244494289475104279528609467396697785803839108814516311170730624266817239791343309796711235820802071455687520866130578698917051406049816472276679828668648072447841777075903449938651317296003036288104703038097214681845278749640597028590588932826976917159389967918548862907182394947448728510030602693397117185445087887042778579483418963962883373370230002076618534285604797570851571841337885110020158453241560674535861950130726528493249872124864145115698692041859959079220879492045073985594529048912244742949850592340694609719468142175793877996802375306746086687506079161015929658404014928807847586508773605036206644931007352945272588494278382357060952814897348445642150455895493467232154729897995724951067968214880197190256689604096484766324808587810439550139652689738288425847828769674979162911026050492776793030041094443409027978844939882634929026828108858486284424996789344009256129758853253925856556167460169848356211300904959892379084164307866458301015802231214450208691099690367716096625624302927033655341560015764225278978383200386870950789827369984703220867132452919166295310174688046654958043269290495790343447010791498174121960474974029700530220044463573171211740321027700606789165766058943218901105332093295025926878253013928779409443602052053108616561898901427914235193559986415841361812924642754732735033881703680554884933548579910840377614022874260707587594126313008802115473166093319116465484373983261731700967832580820128391405998644468709597843886368370752207605994642124034818264024913135949772543617814957825556208080891668381519926390616124835293961800432346167328625062843991113108173395916919092421554490190717558354554721877710915997752849022979917710541340967063834204921910137428528507037569184167964190572198797070075053426917094877446026714371231762204925038943424730732364529101353846710870099409105288623257325912494824063013469544386552339333474350256972344650384505182982131456228183363297394833574919614050891106902745626009190757144445883916663457737281190996605976030819869975780860103247351073306127720872913140652205671555911046850601352017602553482207810642664360831954701002236361721914437896944078189671344798495374546376009979701284289371899735398457354467452498631285446786547543725949334515070898733714992322000424157357406073437115139288647498850086796722569440323497988456166423839280687038956117866361346287171231384310109680549382533648339962970684401140034965068706961949477341299993328678793673158181100898660178879971462181797120513177788302258980621468981013974568196272565421596941796753642885325525207568498577508252647909038997802136823075295783886905129846019257596572867407333040394302412374887755257223987677714075688421184510290870252173499361030456882236674888516367496764081652668772433099352042489710283724189130582631050173166182967160783380945842594808966395730291935021661621214268019907330623241780448082608098126062032184043533059277465399679835442941710136556501858910654629892190169691314172365198273376527055878979429687091731295484712907149117878412901962952905618572649618341507707716938056463233575888988980499616400919557718472682521497708117025451013984148535485355144122555388550234954052385527669871707476417940742151672473084953552207520584755587491557666903411056505695863616013143964632514796997625579516395341024682145543855475468044892102425247428897763029659417336905260977732401223541126441033721337477641106173347321999067116308680270995657123273806830701165096468140120538472243709103130302054898643566080582449124759920726959619967016494319295842133106983048259800460388719760724306289176036118422540774552310444950777148953881542027388157494434706985769473246506287024093962771377052298240409895904836412434059329947433810629248783006562042413432945465008377787636106907386283835534889028212000577527061574355755611610808252271711538186970167375343488538322060843761560466959301303440273973500205144567472076324863912785173179518818090643337542527721277659124712281033952575882487007190623524587300017509787573699692402275751667484951867363338486747181037855302138367473825439106190800634243112456801170553506471014679674789294790189638415276030348516095319357192481584870006312556282188844350300831946085307720803375417059642384343974055700628064700861935637590645312318516106364493799202925415142826291234506885097567187114782319866476536224025463009789059845951711470178923332780855106374316971697117905787505467126368970998821814533967445624833532329724707438805206618031442433159184592241882449779697043174316451184471481429234840655573621581572281425642362639793842360767609052906513129451881552662696634865883785176368354283441897648185961724064595135711131102710136064877117570773337995465591372905636788322250971917297736653064372170903039505347945498636609085804306588711203609597878261777920107450857728557139662292903986573558723051284372025498270969309347882881529007776459445942904091888222763250782694319322158596518493141838271753349106340694659391095418395288825559602192541360478092339307604571381771290527222767984815121769750449245918678135900059425730610004639799802710349684427577970680792947261304863722402417857299044584385518639069252931575226142563521107482076380738989179139157890391723325334520372213039118982875064995058199715668363245355606045912497905263691504795865565879895068938358733127974069368832006598588532795967692623898187287518269375846891629168565803287189753678456208203262012853643598838570727770422306759985905909349043347088464530152643048983087411967330883849610829606615974357117838499724844976113869003820294305481447543205827498481257446926625721317384884133459693129470627297769643138593137902291104209772919421538636315366035006198362020789787225078707879613811318913352694017401595514392949768275844351665278699278270124144472330264695438868468811437242319372072334677067767606972902867610277228406905914654505908171940382366578395008269445719127268678338062784429996810339330974249348544174905195031109224452800457495421615948709117072929466586642015230620803191503082746869718628701470861091176183157229378372856995488184720370708264196506880167648608193308216185929280416042533084403519883921174370866221689095018596421796908540130441209896891691945557941917958911951951229352366043897667038055769097067325902390764480744670855184060265905455023654626170075117063969480090864229651874571924533542989022853405232169388285741260976108117739698695327958077591815184626449798428468249889050166223178316046741699578433835414269799014870330100265250204170928798983983244144805770891859204169017662783521094559928013331485323083469803152364936900800343559970225405015866850530494138391660926124135208083282764869362870279054779824211476554575622152224961607511516703144692460356781938898966583695930973265406562696076115465781009152006206582003665845111067763490669073037629806483482474563228360870506452259102868873128859149287776349046863970137391333350590405871628359416937432350695740765659108184706583681609455838346618301671386312828975424545482345095895597587968458583365649732311164297639967997267459996290285942862216513413504362464467400986088952074898782642939022269071919737210022696265971066600805485157714372024202386643659890642139008338386067852606217482628518411461326625033279727549801803154613156211873450315409859947167545511132326265890954531289738241028655651315020670441621989557576900384902050418635861470804072192222788262918771856073802686371874760524375258711616688334271976015328031314691345813827535636188085432541037787321587027238875109476282435949541701018317209097425956043705583212718040587754303541685028335310145053246668913127015998617671724443757032499532489053500516222299573686743672124056326424242542091096598582077425425853460827364217394518725482253929955796179118325624489999384033759647389885370042936523229235357851349269731289726823298004544935620066649916389007251938168631942394937917411253612344269250261932885277086823097475420654342568517780390706597845128945453785899308982608260583284676178343528597024981075602488468121414575305747208741846785252785503548820725978168402295171086659199492124173177170425159715240773818732256668136506367992839837939810015030402002491039266714006357099758873928173733936849528677788770804438777719204470347450343082138488566230797494630935024608616689941539610924045309800518188258185650900354353771841914886738319518591716492653692477980788312154317967398296642517745449416623443598546567365673370895179864438937239126742473299420321519665693424088523057216496096570224886606774244685494126258841119310087302250100495360692892134462359488841890478131486073735760028070375248501052882971533816591235782931444354014814295857684843440524653119076469465760820118140171995084662665649975966482891041852534951710135536747382935015793508217900982647827733300908167447985394978199935615662502594509463010902027828300219107251533190869936650028627288373110051532230573707370161671798599697677095799085872323124891453877176798450932529296855296968603007133207024362599719075347823929020840767910959964094515881561288243648293591878650168495450823330977069231940740699833743074642475414521813605968278547366567334312636628366957811226249373429413068650453542071884250295755746381074858531118301626201167362795553873301580495442577858894037564766745227601331759833528799800663951274933372233621001661522127181477168701201703314649222045068480551800122977481269480228438524921391200308171207495654360726606553040375345198634740969707388572442636403242742491946218512859269864096939277622223935825689756938099393159132510727705547280012942201940327360189784636333292304698994545300903100511653165192217515461726281666581156133115478455472120706963371824942136138941847322803856411680390271989570572490331907446622215781733872141681970857582646266329814544557845746209381958956134572660651078823304436436984977375307291989715236185172597245705914982050562005686290753569755122826405125241930513003703793992267046210604303954572644218129460815748342330676228626161914250723009950906176217111236516226749094943226937433809834366181007296791143252193368611219047805357448577431908484030720824955663457495460781823071718466374686705774367449922522733703252259443149611294265250473931460276349237630567629747914512268996437856781597169562429367867815631038257952164518379605925897529028568865076804664240069546531929832561435086363091626747133181504321345726693307654174649443706289463310799752789867694660502110312124827429618520292967092560078823252889727843846249874966154218330904568233926550801203818200486825726988554566399992598316938434058830895818074035297539529218566751122201916440082515799148730543221311853294190358625552081339015609898608831347836733122322110182337268332751449830438103787970725906756545579518438069961046280845517722464957947771044225526682034769609925698281108418267958476827932204436317677964401148135704508408215726202317981900669453756328216273944500573032578268764420982601985084589193336285602864799837183705624717626729501852075438889387391815658331342559130841732957400125468307052090418648684516821005122239754706851265202753844040273113420242266187166509844046225926378308403819530367814765990115082299787915240564135458240186244317112060231232028234549353254887075584978586618279673233584829413617426477868922107512855080641124322503868721983123666617891273199783060394396805241331418042233066539695569032237720753672682538826115315701597377314947850411115368154735192196741413428511338958057921571253083328284600794540745152057948345195806855313484395245072803436119360845845634484148742119686747245435906922663222352077285098201698786531456594254887139100772258733411908024175615823244981608707469196679378236770052846531143850788901103657300471166718401427552193071816156557468153679086956118200916390298236136445717763167025185479052757691720070694758314840788939210577716286688032443310158432237525278287120439750901661855046893629476843687324275622022086899500723994637114030286111954673035638986259855998800003620449350554458035335447157101517249513340326926218773776836155484903990514403760479022238342179575813710201378891297622601033708647292654001183089140049700892415141471273405096680630244843854977448676511525134581324416957423840189992546970264734698954454134187854853118932569849779864570190499973510408222792384404253186816271329187876542963280409942990939451675825302921532487980604668236481044939907444829109656785315786517393535403420813933966233981344476993219159247456693587725890179301697274849261208908530110559975865374590307831847548822974625893377076674668253341888087884004780505129626437876542402179320989639501424261085014969605754735030236628942921274463812416744149515501272516263476455356884968157240002961489867526314473752073218694049072515620230651907215789445560499803753862606806506678358074634093362536134343929838272456766439412317862425208485020011668888007271985313725857172278008324321663662352478345134906012574657101432954280452967574828674712069224953104143231157764036000213735044057544168632792990114826399217088557650228003074934764281735519625418738341231013399243719379155217878879164240247270092485287683709784699513917479411077999766955350996823464673223801342669913689864903903206290819557692000837004000096710465381041149357533652279768299013169759843644832207369643252615403065703377753528330037011213407403339192043260809404039802251774702214115113347519638410361929323090585113337721065580361924359789482246372289689419012747227708471183009644072719611604388943338152065952288589383064490330441524120362362177411237209163827145055557727505984216905482505034665677464726862433349581389242329207700937648188900275283254665829188329839812493038711082049166167159484334982956179268250125413202265941080043069121633917303641424618110622120148579183059331571307410165876675304057142171618506375735804114324031435616093902953016332095821905922427532093939697016394335084863516808337937666379520063493045479093755316888676123810710056604665207254586566747857336412381998659034988678805114874850195051221372476821905059393721944536509065224395408503735324156474388678294354541492038684296044959059641325213416014633504635668956068285374577879872353857877347828646595395714473762851896171205852419848956262713004019803196192590160298452880019946968887696725762678641017837355093864226136255158225338907747619524854818234541766849668590693749475047941935225996310118596986152140542258008510570422319787757990513876581611457218574165725520209157343897199205586584938813969869870586940049376358315027563509150265349702156173349410629561355879334863073814708747510130282065471002238935666611224212353602096872782097729759123548326718132512857290264256860363679723231066850927473355983603702493427260375962981022636564259474493742551523866019121701806503672462989939078566750642434408729132437022946210072891587260667198365264373751473326031891752960380480140611013093050749491897942510008438134837949835502027342971466284536825337632274616547720329055415592487949606565906445036929690879483130623698965442776637076533943364466015834371575287771429451825105126662552979831530307998334524323500506919334942370262127221909834738329661186075265990346489865181616869298296810154490606526125513033543921289288132298609871510734825748915244981037837648774267797585040897604395679058732818892435167071707785434569719561010846031628442915142543912728661775377336410053187055683122420327579077442900471768026234491487368278707632157886968624036412308033094471192233924819836809701952776441920510339221603383863813137006964638373679199733513726585324023298244159603601374415494112210905175339866064335182025045127294685346000955867006527924779766405490433018366933026040193317927831909791226859670972811094263383398377864283161122210913155395780290195552573495203106787163306186869464987601115473553188568168021400168797477127664231478221052195742155645203178271407992573109354257241782195960825470250501188241498927168789449140675146930135447407087272571194015609080973193417375728278075681243698325113915490964025026906995913119931080546075020871947012421560365873373892147277377464001040402445448569987694605461598260783732598254803174994259962425121753443127818856935712702279203157115564808619888256482569441863390619567522477906486256032067779994712775726970285622759864219520852189703778280886251063992780859554885330989657169639892398445665636997559971440176024001223950194783286508700415918877274254070568361426214139127959536418149742544855308775543657723810672002272175356831028159028482452025128091205767605759975753072111263243971355623161826172689204076411678065451940095523939199039719250931503889373329177755559006592310644267745585506759811647252563178621204710294125080112103335404811062470794597382418158011904026086162965104022122977957307509788312206193847615292866202236317677168468282549967565828571260658383022164523004587136838546179012328186478374505471584492738376646373140117769276130340798566880252801672273428851042160947260352584683145625211907957580971006418214770543630695217142155388180098646838683706631045873800017646503595769561464076612723633108026278081845861118170174608930313395480584048979561393542946556638293686907334522227436439944684375291176649584059401003852467379005587765419959044614961786951982296949866175435191389988586429981378361611314783865068756967133022244772839927068471113817906929580692645419670188839248509778171254569070737702531344466059230718990783223094822184757550337887123301629962856678526956393020491961266786559810032952264136369619135370385072619315295202063350732364117595995160348670903210187899824004782812413335537826374081078338220029502236899562160223070136889774471042100209512226347499316538957509042601903448633877801147410585597799774201797074872371842872057691869041204831323100056109100718806191838063731813470304087750859959237788519218943363673562029343643826055959439868497327076073132567895472747043226904590456673600606975601038508692553909699052615479620723897861047321524091308767061047541084238592492567785522568770019867275632877348829684530669870043092432634369268606280087263636487371586692763552471574126332987675750998901939052423906589541220753460049057930425939058785726850942366271065334362400108163213100074162010967949798857797913748603809839414938397584300639723554779613718592652197785746767092436271629767979662945607499982696485170310216244558913582006974964429038744102906225911334213374959055177336457727787043416041470275417852652791327919972753401648303154053470300614055743128273286799718086099810343792115039595086007056461254857891926453601687061226128643213141178148254358979556843828981968547087720682084993459579979361811147853412017330494306874508681344707370027170911097604071824860009272363710062830989734444070386177763146477834873435206178052223417739188103335737707242626273315817424394267723444270958885958588244775745043884457157536353052980340141584527684028925857809238140270544777094047093258364438104864148080201641199708131950318746526503888051989041137673864616462724756242279258327733977708751089813374606328639303319588789653658559372653276386924405749890120592428789296825923220655996712682161096571301374803313836815464001936742557005093309774343712981332167644512041886177747799972246078849885962668086308671698584315396454774916208352005033014322622615130857275867830242838877986289776631255685877406477240006468499034277798674127197037522050354496954633324322712301328061476701954190551595010003722179500697007641056920324255828464396753303752088997560517644550416213820609509917323372062664618927100714319579354186708476931543235605688189696564522902029940355446156603342039826750779250731151726389682523003801727608311377501268681281631412095026415696036653244315073795890962335665996438993870025450631477108033797984367323831796693739271362210458983547247232035245213893760502084442290633892467625268927517636836461757316521569706954318782464322349025759974123494523770262192135855513812117261767969513201730889110068149810556921965246648269123401097638149590473335663162261217991900651262629717135499883712470825106930319093101402203725615343046482964647266360001914309371016698640447472919614877449320127110686919893187011038362037542437961268594109153058802812678600948969372645749726384516190976735173593234116006264180307618704463638208563866540737354138683944012677234161573815823096806669429937404781148690753308782501708585430774261320307798858508276910406272224966546384605622774414484636940911814327120534974245064266704195085042079213486720847851010676660885395809262294860818903472325016810187714411581980282448124964685802872501972944239076255036834157549454202238265078487835767046467777728625696453425284383826879669536100140729918864109027084178723973397700485045428496850612386820695031872769586953121101784309992361294867438608353862679229023697188940308966813310130855856682789876828715182176160068157826547075813280481015047478094700876704042463738589034096756887876343831030990112256094763485877263329543554563342717551209557511478474112119485846801386575914725190313234267065436793741427239618372802727021275039748390559390096251312383877763745862320765417530361475239901282091313447657099417207708469216145362106881340192121117488990452521723141672104077900288649650504238341352933085404658618079940949027000318819613855172786407941634093511111815635258911809179937805348995443937681437409490645902725186826279610571514760118780428794773411888571771490289742161164480490568338463175972256004354670920362934801999690397045522026960829082140874480020009043772671649021422471962432960717609952558282391811190103737926692192143914629256208727089918629458880222461929591815167977638384956217683347700663134921541653486639085290566867593102731734458334151056008849659470714556752220161877585974613371773035114731170424102552567516819352090728869723538455913073405865947834805127842572248322599233870675151490592552459579977669666420324955973201846652770905915935532792675698257464604603408610855688080635086555168933798793392643765756850449766330141435449243982741837045145027808869458908397811375758227751285990309272248463872679125900786113475652855093682513972939923252795287078569522007120410343505287118798752591504376897396630749791150350977630427830547957983123006065952416281226872314141723316639737640674399426040844507295142583188921754341530340511942523428955637669080570673902434042667831517025389948354361657309769697897983014025687670013498255585281501644859258163504968753396272413460956049002136369967881885059818028284886190354919752200144906983009160110529885114607287319004184882137606460127542502476645703879471369380686637879724370586601462851207721885192840711680836953834270517468266128692671633455142740548521180304544124064910504088768095895045092529775303509768028777941618725406048127381423198448805618691518560900899295254318242056887533072551225055904273239333057506655265582377785983573062573923307769180172873266879608631370249426748708298282815632259792482022063862394389505506932917216258492953173483372259716801453983898798391284582574472221601100859618341557203914072444185158683115666677657463487333382285108780770361463026741550289149812246168428460692801928853782827625227574771585233819168214964253951062244065988186487281897763874660893610238363104355754962788824593463540409879098492398089768246259207765363896980827731715827688588381707383441485713785614072326697135292319865982846191380452351483198186641248564439004989454577654718163219478225282817884413250614312278793794082638703429875977692809255824966339741452101955476076359814142718084446484632530191104810179104155274718621312452067148520467286737849836007392547392324706906919770824216346589154066553949176682447978910516996231624950681207055683645672426260773426974013510373359580188879421788077948200950476294641543927073458983387098536412521427999902751177402827677121680497175145229509741562442728292401070437665349453248909525350228055038021155630419624171236205939467305912202156057780913164096687334810049932525778910811942768042767232807026767723856291654981012156686446028017333473183903891649266366981674674786020198862871471494982237685153920036170535823230114347512770959386746161207696835978197812988042128435875779909902229686560361152252250325370961558424452096727113515920133440960197553654041312938352279439311906056169344370510309407090963859407364320372819865405822235001367061839669381627093644346369663927577090393863205303122965836719136521774462198927902382688565096598520563099431899275194066812762259794124938209596177232560297320131839487376012230665945041757218129214014059385651174168727377983366573143577647084405119076069315030372349036508281417828240020729842962771825013580925987124207500043286418493440501356216328789927064747948628693322173459225047347777977845428476561986936218892704579609425156860990532897649247982867259974235725711987086039429016750063819107002026848453266649634316531111410701957117441510170122020883306551829186324552379919763703197550138226212936133163420429910983704538255622562851883253167870233546841496580114950584892899505771876995951173210089691276099336256345734503426112940574549941774751109591558746273312736926599195677175866130227781180670221454958028509220189976639922292241709015756187389430829753752729191167071212543169711895943042406391699787943450789878335808576145949972580358050464417223823681540580708695276783288244559868178068709114027465499194215425305634473706314584429993336175010985279196120065534634341189657998808652861568449050100621193551367568683609666185074394065135967757218448114170158814769287015849691501752817497330819819295995473700517645974780259113616688543074539670760636412074590048929929035575039930260798517042506745879805706843053382640535386697668675208923834728743786265217594241485108668209403866104144632902982348196742522084061358874597930423594617906373290570238114796348147104679348081086743681885694772815401464771490084206433510427258221120741142151065891985791080197677877500752405059459422348847648482830338426719333030332406677428674255647959882798953895803605574258778244733446625651965767515868079280793459500330537703370037533957402341276358672098397379297545650383715505998458063025611360622052705617151900401259510489756945179635561336350083841487359070553555548547042464031359875185198235178949427698278384702928893607216948089148487177872528354567958719943029751454527122515745771137494702561691416796984446532766761127319323182545113732774390577244119429357912984613256479353051471354627282761880880989421399053449570469704690995663818441457887620543158225457558451069774658258613750049455333875611245247622356296981326372264857905767027375070920934058072600703303097217975773923185058605623388439606712078412238152818998145501979550893835344135806431386942047664097440664074079000901223044739547031751983129419084782010398247689466112238825185946919077442225696477562075625230465268038983127166457498539612130827665246803098203854058196534584144092672833654982054751795138136507018837340625768880899810675000497168315599912025036044691792650078579186739350015853493190129407584491635163156365348108641822523854573740443014863468014479926314863685434351855900115740338420532890928379079904035617440918589070272328414845431895523578379011509619623025808027703023992634217896292989297424889843499396707060990362288898462514356248152214288093037441909966602992314252938961267245057129423317299327458580434491193843297304594627786052504616995955817735069596173910460301364826645498340211856454870381072636884021146822726312437790957747169377702322711862836729446067612903631782880043939500987066848941930799654092384875299390200144972563368009755800005218267644589751101046055545467584691995988612340671973027946574825198369365110029181063288328981261543574484125340544475697469988614635252630759722506288444639134016361789013345063546879688811658137182828068375809783984044564428442925669389454606116260027130905703792080451791936140644705507673721063498252667775714543273026246326219969396608944945800887512709722074347173112327733839175986067070674977500972397516392928492774261831281706779696097476036145949689983359296986849819803601726474240089539328649807137674770870200028815741107441476014590299307787189031325113482925262913603926480192648832652689078205334451158408525355216772151902170403065718805476568409169679450556580321283739113470012999822546317912974375503544634648817439037373835233359758466490520279287334513424730377032702456672462780821913017973182000687980284387113063992636315883655637297781726292230152600028866167125680729475850013532826806438113520939319865231066388948191800988637309782417985199752000643356870608298572495439705297041180728340113221252501673563663911784673674612026288930253071173069841243772086759992415329326719658904981686008949177175380138186886836879837163910633014037726445841460309773518987902568575180594582505043104849435449388357569424401405969481683120207518078941848828746254222578008072493973655063119916318549374759219437222845134637330900062767465023548209036734185779068196664559372294615696364609175072301663825147581784737582170755111560651484263987284148578104804547396019433960704154275414063889225284374121793550902700257456374615428883039455865471037266144398915114463263213519040628286970017473406824693738222752589738203454053513805782267219572618387540523070266261183852342526343332936207213261373580661781614066782598308535621150052324637254585549636042958745382438330088839937074419418755993067283304413633227804249986747720260670727338608234491116381090351948595961063432995848721212687130913878806292993257405683166886042409724354254993510263499177007164399441625868381961450793558974805542880726072983156103716085792590022426877011151983202879240718594799655382971830831110402174917272768045503872885399610839533771783145120842013719682956580385854785468297555241009556432268783793084982208587395080060614485225982841117399304987503655749583033092780448292345873368285388462734910067153470454552403684882815374568132430605957124479379134040471486537881108006910386572549521598987618749372811959451854656881457063825019304728615773289999360876432302197471578158858820983257383825321579400475876051378773980906345887215828919097258743217913167129704166875983687191190065492862769920050067018740596132195798391006742002420087414150675381223165377040406711215543157986755226428568403583077655099924620116453681740921513871093910133720735147784073538290771795728486889919347773817088908205653376980353223374355498677974435849532090452374566453585393473890411634289827390945698613751444799392387872451812527614483827982307346774654490253801734186106099703257661089206265559336870871514280071385072359484442833872290925420325896265334460223263050502085110656296067703667097462072011695313095708049689346666561830891916445822023488608480367153548667083981725935659484020729452139099049999710957793514004465786461695252791745942116533749333712390617255638102525280532517611669828528681308732414195364480645814843338854604840478192072226268822477024315578085977443123555599349811967569545494889464089610833889285129748796178106079416597039412391644830313038344637335396398860173354047402037389507402264973891248893979919506003147070933534312656159616263425622068868985184966385606997575754210459504216202888575598142627424525726981840066208744668595801840250664535018947006419807338821281047422001437549185378560464150530671485943839073845197481274326723269793043390319980616521861070358177547001530758519632969553269264834355716328199057620431505577402640853703337810332920835425192422446817275525505213376626606228751445704511710346613012177546788910901844946867513480243246292819887372747385048910988667772228867352866585750813429886780112496409444863201412193517274163056738595787744938298300477842805312275986128707735288261231972698560029281560356972154006436161775098599020777519384374905372232690570702841956268516802618759493906353462722876567333683511226993767372240239860697450281614989016934546805279511321578046293979188851660928126363820516599196701692231729760632332459610869110987079135879565821811755697056891290879701517575964215312387827158754590736424242804154686834811093151780714851060457890480826807164888228902898478715452393686586403048578784659669046977615258745273439690632310990022747555529695762991165276105084863877584100517401852954416750312774284656761069193493128925207097629338875158445075338682981415291883998445739428565259542359316934306183258054566808296275135855569949754570072886366893766027852234855061811426975393325115318886478853990345022741901418285634403421946433659592472228655639910736610125819404658657980593205704587052165600192028619388666649778553330073082582986437845492094111484093893850198896161459042841902096266282693098018953433397752262509428858107675098578411058478646672344629663809803720642296303223945126232559242663849426268640231527714909388759888294513553786622235087057122401745075521563554726329269140560115032618591787030610726944780666425491121494735600925354564139536639458487539013743618123373608939058275508177092906255561585715777509631263954385945707465944654234145205619021948767970841997710115186428644616830368935218960573503466298312344579859338601788155988168633210630220851303129558247472073381767860041578790524157375645444989698081269401943994676899329434960983630053152671682443063928744656265846029963451329843074740539497497996829450270007547850554338354807620780442506654465331978544656894765217475863438012377728537802996251457099594612718014921283790254365847809948678625631995425552665494289608588516231387361168043061103049183368288884527537615219018775658663306745717889272783339717827885291101543606870904141275009610474382153088482305101998987589024473583156090017541188828459908595163527442689370816001747418871449835656657187043266934345381969516876853889929534456533415438540451052736080435115668123270967418848189013923534991910507488217434590858387783531450327807201375836934935087075560330582798287807462081079767741461587345136565231400524435007282909404197688606446286086023405230998708599776849970990926540691772921208580094860040546397454736395607285167262242698410242192085678703496722607761080075432190900615082155311405740670070762632500984305139079698062293211897574141655849057444890189572798738729185349397222571085951154651348551981532621874571351375312531821915686645195612642041605055337804511291288552363705398274181614263510321292753601583324998803240218435037977503886086922134948528190279041275363408279742623604763391553119993782825307401313431129946689323954842850711418533335255517196693697115047968347596588397449289505436538679186706408849709728078247113629804648731822193906652782302423494584793037694537314486839756592410648616643283240171926113481599899526214398741336828532052588406034208687006621605793824236149279415254207115400759139331072853760101604905827434399524498256139102250850810823030162660723352207849325732935766096258393290438726831298563376591134919338582014120979199150632189269472888261729639300544241558250413384298581280649786654696657122117671753521247249623234494390628793973535192230214242209305336522723669974039341246496638036331432650978576304721772535635492078482568007631548760256873033819878138570377368880054207322123074942799679034811223084361357567677116537455187078750088678437947876510842552935467829292702454097961987185209608661093232771985385600415703043611363680898479155693980835988833678270505265283131777287481126276881286862773851138515705985641190359555470252231433495355944280111555630356612543842195797458725714719509902075541829045224606676942612791683012776853329868697566233360190795789670626760885189104424241917273005655487717426896902979952489510587936172252533224295510560123828414118749923874846883747810597919641490055886172622590638182886090849069730083272651329533611757676762584556259387589863258028007241940926159674873903766010328610726292970841736223692406788930435933612323482787238471697956190439822030109938080194686190252266091449514027999703796221589178859946050745427662145551005011096881767951273849058597432974712306896670546354007845612752731979908208224022324885435206449558745604970456540715273812855806526974421363459141771068741125929779059177587337132659407226308535378307372137311898562426236183321103203284003836979164252123768410171501596464327038265003477865379883908882824534570183723667352155989281177405808319160727634373182585151124563734782146616013169545980401593093373891065402796484708878669640701690953649021103624778562203854262250210286797200276915553270762946817043727868711953881551480021563253931568937194384519286605782751373335214170772602481028708774925440840623231918451754745643269999773704451165500431230614498384059855621699035427161341274045991284361659916838941032914038290202101830066689969704070431184120679025010711935962658912470356795315291810667482977309483146119011318882982706620781459969691182293531340030025929426477423392357113549037301925649264503239332471314985987181872606771107383585023132910274982930568331469143163559881397215751016281502544009861848411003416636808862856971730314762948470838325117590725836043326897134898481609303355888975134831944786048675545035853400401846986580468058793377813633263399781954666366336312298492564353972989352816248413094785307532929762937487940695448300012449989813460474469287896768378351854132470969206599768166800574000406715128524593417555787504779144137721863431143002621979231762689041578683309180051135313521205728429380745884969532964135720150770523318405391176110331244091404700557662467743741654068926609763046113805339918272241092500617921919802433469338239740482580028318976201218297124140786770431030001640733978133467126869889937651582761613760104706286739680624275645750653806818396050816961292010480923494087465715603157519183249670797165192642446419554182356902952815562703604361150236193113525386374533996445052790721770184212747305736692607505973123354854447065857284894134907651790423506394253523734690128154901469899014857752851175432658718217841648596908302256640316470315037901806361264559960299099580809103128241548992693707114740496535174363119239165260479878358535961181046530977805367142550504982525723255192383778330044300220760780175507427985507968612220476655365304747832061833956823376747862876492888536276576478441887613906052562694202567087421263952164861208989257007932122557621155074995972674046546266200770537661232286118089821038329694474076839232297474823470729989677398401995712509205060604864333676401287768274205970071977377749468094355834337661492300749840089857114314495224606549597118443486709569142403173915084206421747349657223124776009673802135756375862381533965513933932990746384318179652322017730835766347000225226879713458911723792842040417613630425889858429010253574416447456490044455888797958863107916357661468042593913756205023233318513308200758440865843113901677963348390262007035061531771642441702810817335322438853336915077792522160544904101315683802253475269707561904900377072685696955696005795032069736238712941974386214162946589651044902434333544226435239767435546718568305833030055191876895244393634576199848924672854088719962426826663187416989330054816334889247939333555172183799500361940997659567790785440825597161622531301805726259911868796944818039101150170668780266380087346287955551820917063713446948529460731809634815011596705074469802690836333272771458243076300118478908375209655572735289237263432437269279914057180511102395768151379049044168073394233698665390822888582640208334071693024635811152713173650435784689940891284076684152133616605574693239320685719088836990234014323958897179453381137180813262143646460532719758866551065649341871477965171550614481513603234505945605856849155516610982261944552767993216620133377233636970756429805104877615381136584891324899742858992280989818854269025953061013378780931288287425636587877168171218788524455816640764152757783759666705188259799120763156246606876374463319587091267294185376657626540687263043225960304415924492356466773561550412574492576807605644099043959608448990105449360291134511357146828278114885618293769940819927794541999718583093648626631643533545729131300379703353667631516341628881819536683195784360234535615821572912802826213048682160014927284025996232077050145384590608703250267529585736160854415253037016514746375704713248910896089214524811581247062334009588603996874949036033491819873652352093855027884170332868483987808456032197973852239314654178214340845918470922257580765826546671490788282507766721087537411434317194051791285773571154568106309634561466640525065830233763228674279926266060173157444189736942500712540944105636868327474754561499822427624230297256815557797964160682004680769238997823911519922095829692335708991854162531300408028953572165706805216019183285302380832209801598861839495826099723416949105775721788171909221994039532324345385453237020994590918872743179806554140499938375545052770405571867761852415797146780286289389873438252863734811125270225969310292196674872027492430140551271861744972613564464620368551410198567605347532050977357129330916439204341596287701609082559000434753457191606653807833687463958799505005605936174632004376873773088123292187578236741919132157360620761703472768149333313984221649376401367718979373766194549944719671038771244340396321490198144889135401559973743019662991430527679084495981789999810028584522913429093295578323701314095217762163288549572626028221752302323070390571972788061588467394992918224239534680644147705362482045379718137356106580334028668215384206344843563077991994973662999145843841465775974217538258438125756549208568415644336006342430128679709728761816069158809940888523230276866814662476547014447559690891537740738849486465766470794187926073225129273429693249043228003143350175636726504287985380688344368579700452644025807846451648886405237038111957355885520521420175366446605240627542429651462461050997049460889266189050874743835511303979336713870460676674132006942803607782807355369512925925801606311472956157508609330081202760728926089014378601201089181858226441917484067053859250078849358320432838848981733003975111544892851934186873919160350518621573375451176234249981353790749456614282258966939914393474403419322098891490823808349790510718967972197972110448872666541662731257101405380639335526087065747445599431764672471035173010114076693941897587579334123216007753813962729613863265969364232828815621383022086688742619397626557980766955467665148822475134908293562088686399076093219545292576221016297341537015225908424518311872827681283937320832379025382704729980160408195301713408057703472150823668729415573476292115474964546597502470834816842805110147513761424195496285750417405845433403035166711192316898452776937513237373023326474387794548080927644044073721161607897636075903239941245732048019004603991869516518051854260140847394839529222031810526632151968256367277248642698450407063825279245009684721314968497042340805872966233514608736857125448975690186644776729729693021465036393351334632007039586181458425676252158763844959871169465821430514812329907540002292202743073525594639095646938928471502152917458379002910090691712013906010001108698048371938653180447994560716901285081125045705885738289453716704803181772369017920862004168424130291576201836232958220009921004543777962202328318416211697859726235524263367116840683538281742415199657834303194591159221065382104921065154243946192446217005706242004857930282491745857933573026303154001071585104966068911283978355033269024765785998396180289942087988331204432855032691882469992314769435449523661868623950101391706641100680117362460848179066093035479699568617680800405286048557906556291170736025081551737081544852032432386936791125119785491673138096843855675999360965105732606233042522620689012717995112456671571806958582746804945249764880968632390700235181330171624670991828365117794115321883426598451663619290474808327482437905806371526654282808659866743497432068831397549744598926373890244214550276917310977541129223047456010206045668027822554260875434942913356755422649271484825265821646914726874417411101190942671145493990768227480397614726524157804407739313094735835203662154823354015942190681017250976232074867892172177553234450182601027194122838458681140234239437702679088566353760891403996520106372056743744595783578641857758011128086682884188456912831851198346248398103385526027234512891264524732350077344833446972739367951082105447830552881059391259277595179096687790267561941493910713427389623393929179663932661917034388219261026495012609055060237474850363098017549785925534144991090987280472982852911273000118711056955769660694137658171093746958932644183057352999898013475360247379361548990580837893595880931519460527782310706565595411034485415368294922291139783564143924243316572161217468667744694043277878586299366677339950180286762710474211629044313465793596686465075158655923075327943426275758905803990092947174527465390704777154958894940507618585222391928880514447200618858371982361901865782206884124934523069201729395614212521404601021107706381993840486479116111780283015510141895835810331097132366884915721829550538073762306664094029635020854993660849792175001359839047284482158615367390018259367717557414375207675476828702114491603795636352003447885037435309648031965292774009191694843525319279896882022970428812497704475864462305621311403132978448353544241133960216257096098682595355463649942086561105956722072193937707363869747087466462268080673149479597392513170509493333856948025639925574838740577582146522988983895448204277224346416705529948441913599145471605609740071978072813515830082210217635656667088595739728025545685880091201871583890049883482637144334191298201509658044818584867090998482415020678174536507122307449535618476597784150070971999009222580249427190523954586699487502839440378501279517027006675840878437352228340645665937003257801758775091676961468777326582292776244388848872241951746075790626806831376474315163149851567393020654570372200592564286173196738635171471869596559779609761902838935075668361128901434534721946167298378210478042127063291205689236748397158111215752613544347274295259856253831439031039119195962081026421295375899388025410951990629122451019489863921809702848258734148239817984204663351017303599030549034093082266721481567251893949926894950579461153365323039646196404726395867324300802807245583327933762081745186970108079790688219150703239360537471756182169107940460215909333577887072629569781128330008136606917468171219493615565825841246784187983001859530412324348745579858398868778034069867692787466593196864362720943155309473415406090974969684148538015937207838205434352036391854679951282757407835637551152510286030164934252646273813502621651053863993523632088698921398618081817144591783345278234996756227981401425790909528920293710636215791170412355307066262309566174533337226829607327782580338224020947571796955929145808676143045114307578406699569050295070977896483207093283961756191129817042056086682453288123846941670760426666724029346438298499160301889957615178079951653060201782845321269224880612897627577653303522139758337734720611883280547467917680507284930795417740585352817695528702973420689634989350637966569174522940936375397369146181078848559301801907788793148072586677084329476957662968338807951031465165334707717702459601849970636533820630119030199727061127110213068515846553267853611767160152035598406802945721151564108943040393661245460357054202694176423912431433128592904554933461192742598212934284217278597369312862896651327202595368247305691263096890738379605108824973027385479974937583134455792657046911884882443960942907090101648963910087333302145478763959106380378516721427959063472211148540473701558148842673677753413558802438398842747013556427526192450460273065078312472586192300308226814616953193480711474232042546038163171180974585223904631991957758241336855159811437063994033090621357680543455647590975745440929051794169878737262010166459531763029174976080388840474488156009512615198118880973663294944624404440301473380074435768002771414762074469610340575562243893353464613049911277521907277792393192799803286468159931323757756456743596697664351492874196220713924563570014384789532430388510535703153786350575308762710372093763649089710193827677197512454019132670467029506722966228925841354686688176745520761488491714730177380134205912278505401887032598043264782131087962690132710847341191173229944256262122368509863174585324798631597685779988902296953194292244506597371327654060959628566993912265409681694521203551251896880460881140240240794456880721529422581100249706624717656307325683127050985603126087981762215093671278353277722749383041965610276636937529490105246836821915950875575971342571302899249599343938107934465977518773225868486356263029081879740780870258146526689503063806547762168779149480276655123902480150088255711845767679032208757167061070933207830210147463628958472185010675895053310200754458020360930258457395904655362479413770705196672144854877513864286363584689739431471672777158019499558700918156930717867924468351780593578991589506937722053731933033424133915214781505872286967099885722308117940289010262858478279899746415657906188719670591577371239580056362163775866401455002163289552506679406899099797243405448240486574504528545565303804354548512579256513373817832711102654253022737060237563169961317860659636956522541884554480084034791065219338220144898360121217931424746323969196620884779679448981899789054702011610465177223170315042136615067884640507950401712697914861799004347472071704582781804894836615629483680485894221974702392768037741875392403583462128088786179849589734461174207364154178891800708382518635158322423894756770951292433210050321057723887335492602753213849267379380974544870915293002447665846089100585219194975565699976445532705647623682742193753735132615160335284330752410155290625768634406764685131250824121399106832045213065155509935031902023178476383038326717329643938133015094046147348516072302935155581978052755001204618856389225623209664851566312002510301395022597118234090650800097541989449857230947651585127924628310842327091278765078698930105662142644133999259754199921800409415538916027693982467767415434873136880549090188404409870975144251370645122513381845800059210200042983165922742392197744948152343837335747178946818442297083850514354590886212888498115387577063506073767574321952855210079562130772674801857680298958211624513132243152800773898752898084457856546393454843828017004420025123518900444904900995765605679464083665477958599698517038326864743498299047493961912932209455859109723040492932825215021111154113998739684729445456914010568842396514195658193093776785072555440919112744822249982786427568219772489751209373561642142493893415644916717772852186438871741352598356046412301301197289438112757993352062459853645299952353485150238890131449375049572077219269066560830102756941140043998754243303799082449923363278929415142195306771910595860944218521864299670672489798021293824647480474982327185934753208291706440065443516867363720326564551770042042602042965776276301991125156610772335185867902413228732388600720499377446566847196507730166123548340656691648420705179967452635583654108518624782808301835567068427112640592889657755555905503678447264214401700765102807925701392229866645219037242487628813134950627971164215785591117778429871336061455586096895413399329610507196795752169513030969681790923948775799600076936298254496247557976789332999781931996830048978268988739379129586028745611519724185867321603547726486755402647168520529976269642253298496531874295998981816844636090868086472320017719432583485586314556115702677361620917073180551268480904138217814418631999813130091937662096263755245019967889844332942540987783414407246176910188898581653810278295535192807582255573609907517886583695201088577828665906153732602018401686739071135264865036118977693414560676829610474988899786281791424737591650454940001573023929013192001832356095228372355691073298421982245585206232446697919221674353692987858693609470628721526088521891468360316392300163446107116595652393740634194320223947446989368748341321019443348561383343695115114131836620118026999646617667492034123872668256026254125493636963176851171432256916492772604839443068639711595836419229690156793453962376464918365540461193869676546856344547456912326701010645941220222114963459295137381901101276988766873865578211695284150314335972504592988294456669364620461535259796634024414267360591171785070387538900424724140645331474532553904204026669902161283871580411751685320569215824859548812870482513101813727453660019754715385025793704091479107116003874957377535798416381776410165373072679213127134941911443972898723000172638303719954568434267063188842825528309451478699350350919863820810012674536884413425028001014073709483401133315049282584363063992643354305748884930892173339828307251794517742486810951512910373056898212834158643175731972411121238629414908728730134949758106238027291537630631873226418735982128492142404252116926809184943731074153613782630094958997180454779174525187421577896004580201025123679361910917164473789098729477053605491235572843701499927199791963503479672780875923827063115716762138832528174811594068951383874056127354355193041487716582498737382350723988349295949068520313676990921895353015122867810030071332084033953405400159725521290764376324734676155468150533690882366392894415879604472051825164884942186769392923277786439335454098659698414846274836199921526536822044392029484034634006470437612385775681384843542171040571503946244451453346291560420267868232973718067140337076256517678209735535589122091227833611582161291799782861338119684140341397984953514457573054560995181769613348775302427355772333328605256644418648506342399972836357876702868863714072860737378073189925028877894063684532089980364472192760048350911239046937835119494060899592826918627773952193191118120067344116194820761777715409018641597312921578186426925324859336527792129618988502508080603098485471397121266682062374267836829594508290216612458288463816973229404344478627661770522563004690204860964285139688299196151450937294506844730875152815791175879187504636247616710781001422655996540041051421608032068360974379382518895013364856027015257452822096092685203079230470335016178152864775957716373112044293391909909862250107394814749575844760637903208082011219575986960065379353853378820716945668230453055270197797012385750455455679063605536429210461557505118604309566520012794895015902938543099149183336820200273957123428259361067074537525513306143441669328769101142076159654112516836978534469716937154173744767397960192589389320849830864864137585148647719829729988833273644947388705003991604446997624649032338069107832132599826105348387491734726679620948475426006534347838004649541867170610785848836009761900847648338990395913264883721106623115836786166236359433984670762560111722920913254453900467596485660313191563191230328232312008122804974766234786773331529647361903444359146767994354070709803118410972255361489064516520373261294880546866027022558144133531166098633482104425288103508751889537119421689216048006534049069248375889136896740749251997881698466309390070738553332386095363810403953307898824825557927311989873580573833687565606457201042048530159696088238353830033826551635512491412873920547494555881123098268143192751272970711767328983601581456700463059830837275150801722547603120520772269579185812826293407782452138305709469504648623617263571347046593293336997721500936533938364755798094389329400146791895279036300886499711937627245118256603968983826203473961756142999921087879764650970063780302618062601928783221953449523466286581313859981152979488132711781213008122600561851527212847994238518811647043938009076993377638701639375573358895083657225217354685783472569906142081395343083148390794248693984031256610382577819144821961046456760900200709428620808779087099628296191073831526457799304436596401530475491452595459215692882670941870883911063494595566779471939192566323901631437434796975681722403762143360392465143165547619666808023618662428656672888282241876590501866988876837601355484724389308886716491786217640031623260561910695358627319017319498747000729060544674578856941158206646877646783086194203169542952083781012053793554529896908687575474000925596284588370919350074190809498172403772286015857407360650126857303697643590146988701275958832709605986191140972577636756869006032473965116319465753395002791930106990199174712939276660111751205862838687053052677916715862976008672835686134949595924096615341415372211545175832516411003738275555659552971325008343700901543739595625349189826970436729880671030657753177159902474127443371635128274510420189331735950498492807961639906648116645572720418142860814040134888082685901598046074180387970189788844178479526806108458012584375951655327960787283214879522334070659939287342520443189905360186717865700341779740117065410047627589378232239711345411605258446162113168446063000086929270831481882182048823348543398683504865036719695540566501895496116047005625778997147108809567533328073695904255542718150762670317331743191240514821527154790232129952375815662725951378332625799522211830399738783823513833997319217533137001823931045035136279918872389163700013180483158381760393872234890250738285314903401331354609153784874209933090756710548849090701800671488254162476724262774438503193790737814911197613022990825405711301294211369759156227431851571536894496204507253558382351380604116139223216897067526478102058990075177381771982480555400343550393186447717453731727174236430640081751983276846890415132356905648826611463388483777657448714532624087054309548682838909826980450167678456150676114872970692340240190527822640470512311695976745152017160401911160842571456592707648267638715484482551589736073382982964783639152086000793252169228592868635968481284683432541855317014082584697784646865389722174314042123095280251448808943888949642082531391352785234031338911318463657082830648901176972722136080683056572035534732874981599267479228200515453814504846666958899197752859791125436878228318067048050196814733326560949613101958637127217243625743161223982501345865886063557272364338840832427522199102952443142229339915781260161556093361637186920780992163545018261540548176695206556011485176697714661552135272936972615308049850451352598828546383636391493381047030893535342254681121822342781557580450760294475236368051183798958331362026955589409146392913420880224943676469315448662355472356714181998400137462870798919792186017668647689116498909594669948171285898584756101121740260249512032834048421305043241348970603204960169109871031866619077453545365008327083458726566334456672836460747093683567186504393711580096969506604394104922367499655735912791779674056862360058721645948139080169947504904498414941062157755746224279212982135785440158183551978048116192483065086981281999387090840538765357918395465570522407505700735234214084436870514556815694993304489699366532839910543177920643845473494614144736562621915511569916856299391004854192513045726242444611575074094113610940668822162714670200931498937561397583247221524029396527182326653995631102161866784548766269201596828236470520043542229359968935731221207096743255175800693568412428060732088015492136538838254750667469156773757644180953066877215520279796709474102052054588088073500392843244359635553117188404104900652856123105147377303940197380789211583542709719132316409901825039668234810985347091625507798938604657871077983890650683988606255842776398274031364881687370667561894525509639843157352501648422994592295024589535831826023401709709863965285589554393418891278836796655335438862462914841308414623587923967338427946393534651260636384413664568967344154215874085472954365357997104666080252776750429540636938381626963961505873040895289688615151377699384188879885669010130829140010438466503390761743639609488412136642117498001283661461771485704952338523865579827255883001012271960354309970586318499653940315532804675375267105825668610400212961364474575644642310327381950860307620764146501402873470355316504369880291162439577351124805631896236678433182440463102377417440920001374194050550605746492861355997310429769532329344234038520489812782975344970257664871822062867237710547778813810209861188847559686060702331453510574079304026922711376896576547015670562507381268576638322314653516956956644153333336980717680459718536241163843277674992039770974851823010578470739138075287456241005070917862795064524567810761052435181504532490761525876312382257594504964464494635324729710116196310210046018547595548080064268014788937569936193250246608923587361491037608309596860785391962481492763925084322504218258796153627538699398178732176039229165495825538231591069599468095341066707747988673526883586871884556501005923267759866397667135617354637002773985897283982271842548850958405830416480627896114309604625122187612353490931234659065865670917928845303691529311269425443563414298148400830330187772719952224878042608584762819336569053928432176591627252177245555158093523316792566623544627869379290987505777918457352501240836972542742378125043022922613850292033868437123362581537667277447440951386994251946272209371029350901107547342367284218322052527297696112313345485487204571892207443212430172532763359495774179582568246601334133125886041227759351771018688614309334917339548960725732806672395889716569365424306804982588019636575569207041170068485953555706121952838904561838157746869449059077236043883364895926453154323631017344905439701490011957784736955665684188946103236126641608610780427425483188352279865067329605372756898463679795059230098070277304022212133759523021787364848530822079551006013683673932071152431776363958929442712530962450601675174429523576406174038629850586470317278341113057188602307965024793920538281141573934558140144068555162044062787827572720833860359911940303064728932832101526961549667902787287547986290435663751365636011814946902395445483551877176930576601966321521981698621760464787829787128236334093222090933841175670255015651957466011791409173672623631855897591033412928502574762716681174152684610362510575853300119418657809765040670504991189812566326988647036769409495125749991387935342690896658855454019913215792452176558798168060306035137037632737275974984421293633213546006568215575442331009157495424113963791460232251665910240600901133622542560367764917476632913804430791503654017075407023508879525718031624461472510152325495527858526106836296841565877300845229017878816892446182165558840394716266604548096197993165133045700875880921527671515623654061602396474801900603785284022354684784522918610075057151535938286877579266206972402753773308789429317660777744433945205847827854079015621922680756058471884635707617559565630884359249685435598244492606115018799922760412075969963238721362237460607956285432697654534922054197840645304590296355992880657518304245422620337838796021588408083827602526929662642330579739244270012474720283183140896622791153489035450263576147790368174428149618104706825932543233406775537927926168415189162164199007831714176633512723554862015646642727161618789590217653079995132585279320651587430829342115293140790040947950121685288915459663658377294859034784394602346578679702894775697212702398813461628395866440370627336663619625659204935301425303332560712322529280801887172381549299435549197793955481767651013438511178996445519780984668566107829149659863315452683802368476460485572739822819626980017138754449629313810139205829858584334329377665783438960804872933063608455081791393051698283136317336322145165160764868577380306572106123832924947612321873341997464115381572534859679946250322848009941281894730001893997904801898768214172010994131869577945118733857207501921471926452841285426203724285356726914193934727220684042675678917566298172709504071624480895552285568237408975905747889008085662544138797513330880712912958267886708068453083245781714134201770085527937838838758886346042486885343730186466448410925555195305057583968748549628934796127991128597979792572284158408057095327084625405380599807136125942995911167091490669536091435316293818423139889895123710772118009090754652387468153153521424049343264160687770959987670685389559546874295887851319581675729661522723882110440872960505349557129145580696483999391926446818071032421853875881823965013278136918321357128054482680912693475885963102646082560291782742203934414669754755340769499260899014895348799945032660534636259583749832010905103646621171329730487998269841184509869201971362821871584277741869241017389376042493792372793815464171799185987052992041929788891545756250637322136192825996929552482929274676865754111352659782253413070565597270157932406409553237575606600198233437634460932759677893590927482463137610848365905859938574150997684413864210949140166892355717129384091896297999908517316586610170875577223205519731431258309090906076568912088180784512429552429202702038907794177190200824319100923518727849692776944162509366200745998652732752291454060028760377539724244763366199204272434489212936695757240139663163836322449978091197665697674472796435060251441555824150789984707463433055742310369101602725517164377385131619270653368030468073733934997231241352910594134987627282252650511876288216818717612741424255461689577430683030813391996539200226755055598380548498303659626933741413159016494813000120986320686812761375337218749305469045697481707775028035130162109853569213695100810599644754690772159964484073245274809210164924821239597445857760733736794557829836296525293907487961050792041892013640820376346668917005395839145207917404874244803946898018904484464811460520854144118453338859550421671350811369617579688298231215346769720926668439149144186354803584136187266469148102982216233787477022421438693619948186100745248693502756013439576955600507538464230321121085235900776281339932813934890321301280054755413990224641223482005603136868555148172741998793430405040613873517807910228100763431306876484205294736826141944490368595660863840314302802562395529150631036869690385455668503088734974422061370884262819218877093929787385855204343141100520520231561131663012935890894122535724612896932318116202901776297372414574967309094616666225112396343271989151198254019980724350714173246021149608880150987378772234272234550598405239084168829301573689990845326257251501547438472355458854449206415599478447183745729713775171438366808798619240548082174239351750922191641326512529225481867072263788623616703403347951736647635624438083607494944166695769924025568588035353036025767676403852232198296408883918324984192837008511039380136695351607432327073913152602275061739082625969792021326484438465061734080680008318581112956978014300263854366660984429843731198429228713888158304533070643593248214414753937932588209013549944206144322027051346750525345844097253571196553249677033062660017559242359299675419478190916995522385540610986192837188246322198823167768497682159548512998746559689235915226055066650393209692193742313986280785251699143062371411794403720753091325208541414834785512186985211074348602673475869909838521263672832254562574911868617588806473905204626472954488127367323566745932919707160302732705962543800878045744881531307612072030486346933188930160814257959523329041316277399665855861825512162581045119114522438022609941189671575321789808260131319183560839519677856198141669934551835583787959909020185441829081555712345857646955233723435466972289457555080993513964383055761791672735295740216803605256273846936063201427662332529653178196019262339174527182525817492644319441924047484299531790709226655697174475530218571544127390875122506719775793687213243149999112712855416592017619088980360175908968784829904431970903841644969636401960553171744764600998383592296628447515833652666754658490641394271204891852341393332863338841919562918691581193759899938117422374106548107369595404876515368252581496379039019848788367255513790228746104025385237219928224786521670995857650305511428706352344142349692347426491841251702453180808953793765234409301108035773402578284213634492004888730694880923136254609003855077919489957052450474794595461951940710933676983434579902242448796543148535103817653154046680355853663178821602931458834715029451919116308904482958246594888113147240022270514519418371325425920078669195182161434514680515592953978664225483399239196276057336662077387496263679923542089496705894779888769606195777016400611128779510906070609514975628199172721922985482107232615503256250580485806691746320764321806393458833108841286588138066427558549052504813261963856124353562244253347730974256219994950236278163941142484658085254159092418944844873102713612417732612911379200593251596772257438894463120611959552477540604398121025011792339701354183296560343595586155290170242425228217976442081799400053745973858983357028644834774877416536699842218919066349146396846188368646671976354559354036301460468897090000163149827638737779755667671862969399682705144531362165201890424775310525146024991166732730003349439654154236871537514001053153825154801395606021453136855533919905411607087804513594795530782779683303225294909377954583413234563855725827302962839986453842050894707587993033879846728909250785690316959540714252082201210789388468323121013031729831606312961210981437512822959248389737764840689222953829726808505474672271467941870106553355140200818018111991578951083592546675239590922166036110829280623892257434792480189813294239977843483214088197698406435829080399292858889697590320109529572236931329513537788989100321997260426914748053432389209299515745241547768054054788692443378796911340994839615206710809334536454359757708487531892850539026155941136371301268018603886226847557498920329104406373782158966629363478315919245178314793385040502358178536700243250351438369272281385714370634075249482771656121283928151567800609213807027553653815927661336963949591006356754922116607975748554427088193400718246917201311164851700465855420534234623292540338495447522950923228248818533265264501358143995277924493187259384378453732485076749131429145417639627751179881428495038657339151483663148422481319111927656788427557492608917356190838590349003456979256289119941548180029817025666288689936786600575759857406181724387468338606070218356577388287634773391102049048120905646707797485561124601528590101052275773924692036142303709203345606853274789308511019513840435136598929559532619718358788768777851729714692507414217406651618117275489390391782177261684555866518387154230278940747639919274125056770182326792497205187984660681854965021612962965011575146523723783187662013586511568019417761005745624140900653800085368838089698462918765000491424372821009723813007044853061042748265987649247334403115178049905465219002862546086055938634145755757934920703024332112020769836737947637775058128533147302699457846067520385532732790414549362696561602868620830566092524444722286484299957189531892381791815664937673765259412712118532190261899376105571813828502798981531834857657130747428460467398657444868379696110836028417994736287401632484704481515252412346867616921133995509108301148359640129729686732284701527444592212184754748817688537628897502176781469375426847121177315185752094457067868719665300061819351165251945672859093950285766416940143659269743755263518368085626575851616813273385673270886215659991950250864657621302258769276207292923361028472941139677705827473495915169667914522580210239600437904162622022615458728195629499198564120245825350784985596320934758483992342723954372522954941863472244134038034544011546011326674914346576883490948652607587221979039317923483479136026666550455136398687500381571579344052841890216426867593304002420763248709419680145399308642635033342659767065692932313394012630518624541418962277195942974570097259912208468541452567470985927061318505882467314207218628928306643583553382737756501088349829366017271976617774716511222370363242957037313668958475105341424852057903439899681506293320981805138645574011264947353068042158738877346849822394799477764028323789845503197099361765662962029568246117531881777493400390518580052919647513811069469271064476182861392250016680568411960181892838070585152066872687611829325857250258220098175237893233143017046418405972137380675822697062789812291588675006244110366258831338837779790744763232746955597180818380252068431278840186404986933013049157783144027108893141437481293147387853138362305404853603492183971232867933652055866442100682982483848043544842729849311905516243188404144836980607258838681267906397078941453536181719705595894999229458247998665258613650536918690490169411574727859042362009086519131496405110971599667648896407375169565236473241294979098944034227777052492925389208249685631006050366135842778085448741707772993634732371354553054332855971393703643302332653335119240319155285566098223467940980907285572498455577749149070315147471640005446183120605429554344706510938769839219275853418330745469391469686311475272230522536019665710425704588731597885192273567971644721338424811371482387917334629957826178085537292888860879150060448430454578974776122738795654312497347299554967268116374889211267769758454295470537094873461384538004658534155633799446761866217008770131556502217361476569637051876123770100727251357110289971871868921352958801255171965735678576297335587732298821183270047166463724880856007884022716243688773559636067009265391913227847561466819932845105711646972462558971975787726034262623974844219034828908775458278233360807228781746821309214560057431469174522982678383857988755994829421273161974018912383226249935907745157969554047383535443053265073674834642925981262679256054195920045517136030717698150518743554242784416653876239958990553494881995545850953773970821166409143610684099967809630443083668579684887607343322692124886562731685495819642506466153847825968468787583070092775012069364661307800913008410955713855803044559819721234336622688687976439160038460175835426158483375694330854318000273956367446732550777768616520043945675901646169023111076220266579798346446671679332210958620274143971343429474696561236861215431448769461604881070532562173220241206226024749504306965776458014609068853089038294016566156939998620739698200440205336789276855917251317033188856714341108688028535104914377263188954014499219208741462713896856545252897373063638872906368163637025479487851883090523666332804823062331545454012323896404529115559106533449600873122583400225045103559830268362163311826970993230354675652756662387573377280365881695075831506431878357314788332595217638425700655992328982136492320696701777855109728966550148344194229247960649966230060461431891015213654984006934350673999664606559080242548121626371760146046149183680009396773592010021979003134845437870370909953876272894947816198689991650708408582325411389422491477667439042167806101524984521580995232249478554328111196970237419544134181505540334173930200432289237812028566647044181062347144619698653202717728810396035293024166431307993273864642663332876006991122943359942411684179250611662624273990712108175634145956260587400372710406302918312342667408152869226089207249922942978590732325599561443263939917071144138309331119901495352543376430061513374380327631536625131696650082225521706022887638947057956355323026236425424854516463800247760437532795146857557377099529716570409885306570368856502750591047570940402665933506103859768902843003199801875533961760036063523778128089688734469093882407220199001074945140952080396562277496174486796984228034424750578541715339783686025813102561617551240380564039907995254471424885046516253928218579976841713976408951168386702581935079176787604250695065811348465605790953385401840294994281423116786669870774866778126492268375489504184250363634723082130038260455626826280313247278405630643354143282269740892819388514565589758053856562495801997641679321680173884064050719510395190968308944944438356778825267789800063465489301583041433057888446142723600279757108279788297524992994035222391795384489145252654193434742815829109807002667129819924081574774871546593054961214681299117198437112600084108994855877816732645540765154916541074295183254703891728428724212992732978706513092691900009707869464818787162733650959368520639719323245185467863935665950087852571526919034859195066525221734834627947016283412222317510988024411469998383582057471541446198050473940673369579086819148575674198695601462389268077094442961752315853664930882492697520423952275334134350747097328956115628668389381863485790539420726195017159351319817163434286232063102285169652787475487170391718466685729419705960807632397988174010608441838776083610366474581769808420142390068010296687803110760960262065696054594027460960462025899696388720111767425229447991525309585554383914457263515464812325809829412539753045591786208875626918132010408110662435326387972993496526521954128416210255631130272337255296596154406726097336446028166266598112108934630488562990628722775335421345295000361671645583624251151098817412256089551195416781767437354569205437566746283913695896925289378275277980253084225992866888961613009599627339448728622464259834325068966522176491916936436908992411807798774002058409669689175745337563595483311038738641185446733007780075388902420385859951599790075114105419296836041139344184578704584152546770284789443510480094701311366755971931945471559543144609687154822620972434761098937488250244584063609130878800404033851793455137512295590913816802275243776435148160648909863410122706134382366029765732196230870246736643792936031215910105948598622315128954539919484217134500930840804473825524807528348362611607869064106508790953587444336656879241384048636901630399976683263429764714777350062937542288127012268490962937385091672617485891889070929602876488376275049128277910892250402236562570413533356145581677193793783666103952320523354777223364727728665945752016022011192313727682353086379522955324297159965041030397048768541218110038266627045118133332431341616871074413442113700843903900675083777767629165258827696944556391419597842127410050121782558129950659715615064892976143699226079022297051424053863655813109371260945570356419131587737282555658398971278308642614707047384001751705101851413331126278056416703343135427509726692138821905389661177190145580071388760397729732601284205426798219031912889558374410457095960886413137655442881642202161231491770777152708070831685226118525919430543976711542872882624641134481893644498593533441791886453025663164906885459713168657007111981682012831120890323452416994554995086507610366599186460629083102393725540551211704775788670922391542292638428966666844359933773330807019077419193022017087971457249434865455767669132259073218375279557656199785645217678074201315004952937536880550516307795796581221017082918206657830232205415374150839296818763317021277458822993642556304386428721527157999258680157046551736121236169908470198666195704370657099953703134925377188643666466333427083959390970069346225409092158499571788964797269379012710214996371036302108408239351959572025869283226602929482965526737576325474960148791280174574951989983673577258653686193598066805246119244142319986944997829711780716092275926562901590812108236802263453513411434872965846754724577283612391233180083413021813886899874706780623223908285555022951985324478604642868645562973900733692159515146989505158412519525738112429260665803089867986469340939220438751036007727100854049787658581820795523170267035720850939583303602646021827695918702280957782555548960113960451407606815390249281169046085270065898596001152158859054182336802515805599663010626994148635584910153416489070535851248053143529648128425529662042630791097740630409506808975035492179904362012780663596407678864273432063639383183157193309024120591852454619139595041308770234659436464254484240972111040153685524151275044608491198323317815915184962397837325731310573678522628878862460815276083180678977108226708550014675846734767852238074689212189647587787190999281344182283652791703412807979129684663552155602629987351389429633712760161139644753347072607394135273307135477083157246242405763760853785624905523121247198874664875408861586022767972809500354052751057089826117449328814578095115435362807427004736768544589075160412295608991138173124712119659495772692843369511072464163501768266516053566487673180966891138862657077894368386412683926127261794491040258878288295900356550759727582534924390827284027580721325055557491071747057049444537225538730420443218180993942504794394558478909161537557319888184332703610689901454223268044802294436532680822094737828583572915501581299600171625346272777071599802234513306667103939919751273884189457941971754879347681245814967803149072349499127041951297456930070190235394313842599843775671524466263995947818252659607490629702345023129932711285025353819703176685707130374232138281186725367564599666221101378134078474230303692824952654686181446477406788537341208509376331415429879185563141579425434803459474210146040660260589143811430357968829948549772630045969450957409033666129576184257967609560097107415171566587778128588283136681825819119225374364241408241062090919452202665411716136467697319915117937151757212094558683796972211811372834451735408784805546366016540370142000709910636024068639963159362251004202033222679923337089478691673878351129971239992951854677109697366201390928790664746702619457919760790624618678161284374245576595803093557700024170714508358279168018243825995065113354938984347275654777433534251131392414106732008080438913091389849790409738156110599124703430296626432537511179037386908402516975873337998436434484054820189785334858443487595429210228745287431749052542891362107161535094426934857346975258375986644049150676506508233890383036763420404879039754683843146876031097769843337504030499120757373165224075339558424194018984048580689790050207130830962882528862610209447275007792268569418447472695369241754668897224295538669981327097982502748407983474451934047367213988830885978107980272497029979100661920279974574329352741451001941569082615324042131208454756486541703774537042968495686025349750799072781131814261026231415877519002635989176016698771434810578371064573780956035656033207361596128345755054790203870321241877133414750731610663882016823336696070701861906279320344325923033651146644086784156687399812163570004150107118607205643891703734014730726609786364194220221275326470621201164217502823758375465388239565669661863230454449748588163743609586288054411557265423958339564061062638429701971422142801098278943611574420074468091803655253691506307150055316390002225846107315488266573482657642134142851903280004153092322248224479128087728416619221517956753485894221050544086237430891917682164955790837366287306706171918276946385704229857313754724374432366324999220138695326882919620051456518931801625263549558961953918336081065060309475049688188686036701556351340250532004931031346371773833113312538708636236956834730024708645981352106176113196443320828864312947808441848404471223009193281024229802153727964653893238717653794821328700930815347576250833133119511354517127034616348747411682962338962479594221798134152019816691504177178167586252577931099942785699263603099649029915860066229214591171687188512937940396363849125140290430374251783970541648946521939150365514939405992491168878833222990420389904334169181458959583805085094357565645819484666400407312503805176730753431763796274585204316643650544069677792856886680787701839913185540387159622212246475727885795397195259446235752974785388815130958419091579974215676421283868455269701046103772821396724949235372969215982819839744166535751740038466849970282916568088161962169659514126967063491382116865912139413336498611660405299524669311501191800813191662405111238709880281569100124963186925154443823148082279628292107145282558285860649322385090641253490920096001120439474549308232615489385855097940683805851042192759013936127173080703349556221742163495196472064734060565500211045331080691056961342115792001402766349187776392275057720069619886821287491459465956858173454036247465359236192598947148195947125260661443710667630049413953079385288427873591273516838160359430833090608413860361114093662107102491455339397862537453815187389400138014060898132592087135885302299904126057341482335379439322578299131369112414503992176966096443218994733754650790527163643342263597511863853786851570524236259261251195084989978282220643080652115236988362945398936452465204650139497228803719246441844145997017422170838572381943169976187391928896363920133854454537836145123989248732110625349875114343177680748818835847943597636491000248712655662856619769162670772175007183422768238246368880507262447012741401686113241382322579482977393559680736940936506165986318893144820045784519082245164526736142237842927566689725048412838825338168774372131096145263891696539541244422274534056856327123878293874478188831576912458863973110557496597332537665854122075003912880014289661417464291143299745406081293564810199204498963870847353551664335763522699945620474483591569663212765011220452766483090297421447349855020874713882849237379962077228905604911453980852805658453330279853610808816407093530060608557097640855210191945660395031076208358526417236799407378462421258407021449496070588996073757476562761391915623631732477742760511748523801725830336647558607901250493467879489948554006810632633612613650532852915833601199367668975463548336886024758035071994961063650122755226669126909459815428307937730299308897419985241927941447945064728658788405708047756270398862318994676073018330277016527287897994948995293606828098291335653173457056916692398124306548484385495777316379704515886174970298475296640066371921900317851264733036348495955918295478151116613832131861800841073686821782233546480019922627530784504133345473024909992693234680882594546570122006125350305419093275742823831887182606261708994874428356890102242285787986714576302657636155399285775044176904735688751729985569281829932589064439302113751860719181448397689574253879264900169692309068238672997995387167684425421229083604546013788185849030716009110337462937898467451861195961037447862663171411113922699391409606164451679127389861431303967015850026991786466156095814910413432190877796878990406707876440137204726937212739114160704089436042387449982799051630019295167264746754846398293836469100136999266153264512684231417266153357079299618636534769292787129417439516393000050197278551123825899670208401324653958514255710763805686669329208030086083008948790282811043361150401387539342182406128000296580904564086405150630554005456738487874026802233139611177675928533439249481315674126484129304280679925579657762469596133478003925538928315389572723432654180244903879730975943890178624767007330047854096555459919927341236634811936760212374451326069737580240408861534765518430133142694256154580400289236030676643003064394870376296210674991069570159748012686125249828412990177229452708887429949801842254694804675174457683268186097108012958652954788865006117605953230208753617686919872522155299405032626236779854813857594261799341275089093098364198019222825322443808635277081447169583662921177959062536119440540789194110309744376157786353050868751614913360992611908902686026256828646520227631529054437381538291753865510003308711451916058650014786316299950255917022802978435139909160061334581196501949651364260330347493678924917222722274616327023648759845819910462567366074473267196823208599211076961894077001729563489324193108165956646566939748284808000948042998942077992677187994321018063203489870936919580490103604070334324663794905052701163005377900515829510235415382370707629561532483544347337274458884450942807629156802848870577084742044932242162158229639534655811481733203057162704731284338945064707233497194317073905025977480560675417694831497331588354278787655998886065059463038567816734646447638839002248259951904923103892328096098823632874061341616144133155630399718324715796882654136818461726276544763895312069012598406409162365075256007139911997175159904327763005397079809590103409227580470431862781993827858620669218170539325125243685485910505141630101138025459676969698744931448778116758269624184242898507205223271895518495959660394328561701602932160272642497406570534903788210486601959372012432450948828019613955356882834496279317009463141350246293138694953803654189810783232749481602424816757400002415868380983355851513583879177826750591246752797167378829967715741576392038059003782577066393273078680408516349395628296272719395161612686167576285015894546684150713319752944649325548261851371832415741854073837077217260307306168151995890264547579930935958812456792436920162971720207939170250787170029833665038714686185418748052008185400054888897529614422172350593542228602785713974025146424905946045893165312437290577649335368564293405063038380547354242294141266725909018464630359399338046591459717958421011618054335852403637341383538863409103433934215950660896102189720451255952068223805039278185828331270436625604654102689062273891065214033815322294644694438329979658672510156230328608418642180750763906753860241251488147987901537618638232340500275820766548171548718635346856549120913304252036224558445006045703416183990673305417676455127423777629511782720528180263688812171682688197113092230222702796295287235129951637518049728599579931569332288833107770017906996592917189107549668017210899355777878903374650812933562463873272434112341996762911167203392196559119074088422676458552435304347231552388287179453618621644004143971145601488060421421145767267596886954234437232774571114162280655260121307188163708496712297486317703232732507368190700965001996309495488163670207226385598063600102802037825036016668134534000953253762784298280593220124621734275408862781539789631839494798323421974763032135050796385615663991861985431196034951924516658394623505443338067428230102175835670250049707845439407329001815599839843539580152065546432263162735541623265470978230906756897287673972509140602101085417400764016196293037177055819188218725651889606223498157964015602414010007318225896594745930448386670216276384085101112923804682276514515972757376699100018982961575068829771207588018915177556382551766402636769030953349057548582225714644232690720159501893138575299681993358677970780367744694889122823730126743026164673904471070786532339489475540554298547943121282300412009237038577472355574464608468691963683827650549243756973204195293799633943517458631967639182496555757818000981056856244271818603835836708790233267627081105596636786761072827581054978882182895656177084223007775138142337780949812106200035088375001850241433325040694123117678088326914925828970134610785406627052433521861609077102218868113618840439410660211182133002455726328856363212620382355128179680347519932974974685246067471077697487168436397643467531462100150127141597970684165512740173377267119016683118314152836441108506778170903164409604745655855137744065570546223090283384515817127629391282902408635017777374697619676662796949348424195566508977298108503705682996459833254643945647531907709645091725159300393988222178843605806741073893694870727015300215669302695154604676451477486022715421975433492022025277383525385972718595584191737682497396757987873150128408356471036924289072820005005044157270753972035073052405657982275876747224466024590125094680634831549659444571273113969082682847912465375000725982806974360403259094874197328669978034302692373343216944891228857400423990152614421840320601946230190485200928969794124903590257539545902936136611473803638665276286451116276971240601242427515333206692402974558768556574562476607513055479814938006186715517724808327412269834500924057581812629482035233569361817074580290645744014417631095509843789998129735488592625476170768574669990650795269904982286940333628749482981576184052199484826411742941586813946475592709967346617662878222408432223772217670103872191910661670410668671116746716297573880620718859787070501672663831300379121680725729329530697541011045515187184511570250706047209387934926395760193260670786118696393283471355410114063587856451316452636214144692548625470331555798725879895003667263244709323260005211013107557036486250205278168784329961102585111010051384254640858057157594350030313300193617854595926634102544075920345335435716501397471293608077676200570758236387148171376225724002843594459203112047879796115068549125784187868627505933964962889414495686478421987930903990267727059478592458761236639960146002985251140802161104095967666699342570464949825675767347741593904367047648142122253144872735968690523391557510728522343284530972288561367188523795928838035334713870444200498553156678329805496055152153901721420359409616960345624971229233801880546766122386977399927837982502332772126682634495880097360415437005859262332117683158553946871711856588185900532263632010313437553200094298361843431045280296571534277566486212239931244974506463876193255479698022052454822636301395042526939102730857239611924785100409229395819768106466559242051192458440392676947649052267266009335743079597265851741704437336732097850554197247722644952240120820956801547377718574635129271781925604171127417714610421548174403259498695322571421206328640898300190778718977759614904389581704690775637644728334631614520297838513315098298944128042133124189429728625263274012603129850989730159284941548703645250071406001346206593287024802464568615902375377077396720559410025876145099649173491656120442308027391269586473212013678816507842875109227370404251522667465866585211708398358872674773850313262045210425228727131893967857594362652642370672166754220389976219162935054273509614979527016335507248915601632940440588481730051631629294457975659147569910303604897354567027630159622152796268026704406549287886362952699931216401928985874402110016558867907307231771497313374786755593275523895153137211312348895145118281836288256975866929631035197925474628762826483289719910988928775610559003879564351778157275695095317401835794359270896524515409036092897077929083902839048249088624863636960278801154035900256747856287752224378757470981304783636007177479368025179877954403940657362691986375479082080079108474987507037551714622381654118927808023715527470213797556054087334891020691159500770535503288983703867839234689823881237681002483523244498853074205295563346497621296340112173201137644449530552994151112320880302866410529657119899008317726469874390605133006806819241166857749648340151960920193236467894943182021990017652467550506567873921649213773352595330524432387046219318440463128902578724885842201272225409270159770923347315917278909739810312997216279902781399115958843065284236812827801001701470146899326544897505467522411431358147545655649159065631031131048675187851600548293430962724915497449252896180562136611494377370602942818872932982914371920203542959956715542617803039499428682410786949481652895851892196660168675084921801434365369343779208529477017728294636888591258620121645333836051408120577131501144007196140169917057676997074776052096670199412585744583241245098560482909703821576411621245610029676626260412294919980414126891613975482158460991256292873170478072114608757731772098709297875359777018212389717812092187868016333408566684908940034782071249905882324397116641742954429889424712505201848146368539379207434200287437543359684451668632909194957097602836827674955955420326234158130305597229170128011684850385040269035978876657738141951545342690784084599812203577889307872636513784361222577559030157773390015486718909773980335495193954699275756248208063468708563139447944712877697325458479410550481605380237811696567784520266510068471171583163056094946037495585620044231716333737297965707664500622763593696256087446662292650922473558733909548799716607862109708977076989179363454675833302263223361798996488770858787585615002515341900206825183635168547073614759677554100923982827212178363043952447502799662295587644360754097924666313487051339866172180155733865209942124118376529442472597051350771766434967139116010199523643380119518647419245550916316859239683963288902426061740252183811336189807091012505686142379465609576907663592121346737009459170735274188548055622458857128648689754840539061769023692438917002903738763592984354712884861048865812920947197732761488737742186054651454827018121536025833127243343616912375847724015141939918937007536232108466478067242591428692536527085088507091971805950078851826911764019997240113540430139606311330823106121305966929336904998316401923356016068315786969807756576701846188916090482526213001745171297898989781709216382908663769446566735893080523129966592775294568197107562384197599425455561716347296504731638467216494891008235600723445417584023714134472089415395388505806692722221050747632347667731748442016402154955398392972531666571196014848137461784711076952689705692672833185798527007002097041181065451967704010962446168025499013587001389841430617532272620871890390922048096286399705310756021629064931283308917092644802225904527194336832636043625040068157526637929644329489817474539894848304967546644055123737711992642027119688976610555731060711607836155878485817705698436975908727904748694056815426911323242170370157048070679360194427809447109040778449776370435523562215590307505485673755956771602367331776300038186792098356135138001351703794606600925343503426805026715295192873579429988492436829848521889208364387491809086638032118984153914661980849185711880326451578927651061544465138592050105347813892988560753518342933754754188997779570139297585186159610436643824909792966734897290264674716738507557354537137488272636382930032296381546863585388191042306814638455513292416188279934951810159725775705346839739283851394287054335272165690613214364514648541692157632334059068999957275289830982260200670567236398079503766279217530070906876844901575026473751871513464545561857874155959233096605440950157985915767132365435283766329488622289352930302424882314603142534529298566837397680390787391082195583275121573084579934721264248863277323294770089438845203490969392005156011522581176476339340320026453801096586355642995098959894567564890174590172736369951194046616044591620794026751161534428572441911190514502315901805233905378315930054624233520159864902373590694569108368503493869490266279128189079400468941719723930090121608588932679056869270230482514352470439834834726559864656021738139012409780125586004407586487714802191763677537617317597096179468893587301417619242031102201308394151747649326217220752047022899569059320463130606519891697962378963845567541804179372494852988236777834451286555704769981834512545661359338423486218857184286396954181974978776596766553632990115831603389435662091947267000178698786849129637684750891616348611219636344865315382899915966231497166180803303472845759762887452273829368970474014650390808622059154537448117679688279959622234891993771031037453112031298453554630564558765870248855666599698431511328766495829150608882809024011491550351052107301269306891936432694439097043782270089912695482337593963050175756413565114474567677930686718103204424088876427816541831538852825715783244011423175706514499278446313346038676456379052177001673659438722803551363217289167416673794293319053582352366310687962861843288933990952443804325072325373545777631744676315472896068500090938453569474768252074172451331199711910975265125465549868342012066845910509961662152213602819059740793669141330968106145642154532845355748080560530303921290844812191526540937833875524208290636903339694730241178735262498043938202368772806255061691088676664215866316029080158501815687825626660457939595888943659829010676520128532516752842138435934785380235058788745200568133677805850456232728506644081093066717696149300444076776013012024523061477545600890404742133588743296495120824418661765691011375612759928858762275570624603150356458076265068412700331769901962985206128068907074108542132592966896450657587671033247340277975625508185620635113027854224358917497170333613781388897317185729728202799460882037215316609647688148419906491040753805120834244048081327173380313136309619320175901447350879271020767532458624497775931247037136630786945404001364628351370078196818122123198174495729738441100486002252662365552961718132017839824592090698372132597854859600740604355661501812089900346754278811291114695763744892567387992690045366246345909524790758935633387722825972496502078694609836619677290665251444321999296618049451138311672541546800112890182726575860417163628398880031844583466089781323690447632613653391360684217410781713241565235828102262477848653812095833225202749037143716120732900580403012449319962971994141919458286781811207221988490417758840265662881531598436568658034438089076266651770237809982270509465030019495226491907102498051573334314527372233362429988246628245763490123333407647550174057700759451785635862935544675985274048927603704214887166698108173897476227887053632840856669759191264362619897210595390116346324171777297863534248126982841430716647384612277496712462102499323310678625814719124512164146659221175923269042130960262753467790338586221563882948303537979176903950662922614014393337072552883324894349608182688107629711050210538226758793948653573630627832270325333919305669615883354675591640829646623046859246442562185739668423204358189533615005119806193922505524350792266033336311224487765387344974351516807485796534183929786492841286897013422005984501361318204481505962974623955818003756018885965893128031561903901502735485565362735719603866549878147565434594565949361319872247151593811985776650813689356493204528524682616980537354083088641556474621748995664717393653329193060831239358950461948351478377586803019189905235137811339484463894438987872156383004537722650181993343955105799241956203400421474714038238070480039389785808360612255765996706745917325990734851809911330281337357098001654329407563980607856702369049855889514026307286699718072054657991676809122374179292380511233008195405477835659449714162621111114806608255924884397754002671780142965982296945371435652453689115094973254501830933047965439682487624880615865083557734524283382877288726492331840931336655571256207991380528608623019115495320603710630281620160331952477288427704676351692525826458167974244414066462218583511565038887363127047824528561289914554171598476420010641787806794944390470782730593475511517815321261555430768352545624712765134581388691034723547794416441199847877671949929419305276563706908343531009997358679564603174007565469927756501394905436288056235910691773620290595380065093190842782946681787363454555054564600114238112371671351977402257476470718637221400872370184787693235369876005173626711910193047285464263728887519911410577378867239308257737337004917156447006766417049567561649508755689429667947903783509659134290433451283374223696900274242514301696533536812453448023267283239809388810447015718249375207796202624016245501410987773515593091150701724532033862807258440174459501070375356468701405610992024093743957637758201549747323022440794802063087943122788164368639875362106379386980847599576879953850328341944256765780632001980012875070774515065326552029928043881142156328263694924190066284929950569744751730283033866292399411521186181363065987064544873092807506322273922109585278688618376504443352086804622510847298609425907363830107644250629377235838760419687484649659748688655318886566265928015415377106755567077792375955979903195097463644529782752811912567767964165346126510081758855033368819839650488886144548566248619946004281275888624328019044345957386632436132507586249794143372676087221051473031312992241128471950652367768004494916241181081353831333997295265115308926751242096355090862400508019449717803911197758422465580421372370811912076396746553774551139634880933284223819921441615174873667411297838256529374726762674047659249179086739182551516680513323149213208479871995727964660860418439381091767135877478730272383322219009994597777351997920054239088498435275499719477122838682828563599174701544499868124746051865909084262760995476317933005944452055252576166384589824932209016307689090467785556706572268386293710191261388827877804934242035579270472645049188292366221103659200857828088534979622547811181726338549431699798249199781423709271722578699197439388203391401792728883771160453541335566986221829292702797201206652584839002127907672411462846507805672277667759245992511988437709922609261107995657069504078383750720802535807734019085648769957010879938049385890732347840899286296503654194590088605300544003666837882238987934150922000445753226257218558705504439382048898050419980525448066795085306901293736480835110675889940775011629974210776151784160408061719451960291757212266942206780091675470503658242046650146075371482503934396325456850225646416017578864504526477714550895749328239614987145000475168358528375896732700640538467090666941443966753076872220496667147037565231676090418579800275999614793898774985461007035996199405805169855328703929037373184884393949142688337684159328328903715845972266667532094128721189867028294079865960829954109943568106166423768796300219627689528515028806984925732851391895010577567700848874603916643576885095184225425272029562419994596192251375452451161262487173563484748677650113262319275380791452944139179636987581764435571067592583753941824448689755609426273374260268566519439161702667491910608337688984229413278882127467968254659587611790921882846586709166683050221694332228088070457510355745811211367736912637314696764679307134515753686945583797712615241294247484554706667834074514778596789926429293945056674443260764190363942428124373728089084506828569259210291716002634109876943320150657209408843803559938195502424154761523854413320788838112291289673102659822428967635880105157999074648661952900862296950505425739863672455509821855782890609075040041424755872997916257033075233216227838482306562836988649633306072054028871117133445883308813658071378506147385215399148493883989345707584937927588041946618362950361367986241080295795369942064825256317706379781782780696787526997169641618401008470485255195115676954969519421940231462733529552016489968404867722877991683805001631278448797123759369338710408921038119700390637365150155965899874434448466142202281833550121442193688391675743456543609800604137519930329983683774855204414467562421762533398017341747287029323076851623310498499664252566375680678324110844992065237931320144474873500960761397742911749139868938154227060843246073309664048241509522606781638973112888886787802175159854771716639022650129696957648238569333512625503881026475801782723415585825844700463641792284060794455438495982615435024033218044212069422287665804844165376812289005248640313787614439479676474235044620570220903723407082645238957117912057761332722764252863140677399356017525090029011608614944569527167660594085681846379240303249095655713093265277007116781020174394419604974231213314443445650285776963695447633869572934690627142028385858509046268130388410978050379368585378402896725108565853112500178167151286631570382309024628656086181828697519630788424073840483745092621894699153978602466323886602939059954255705873332945119641875743959775609343029597992149025563768752236542704046239328644345881102161561520643907188304241285699556888366319829794616699652554991434744788390958293611917808281044852656554229188713438921044365180358565582875873916934137458210212001267265578353690659439820674993488970913247312603074753468083690677959074402377446375802190893291934091594018380355817661363080550792768145502749202585530987532715233051637885445077308469508226160146058616689037071958202591292505895830939464463820962339068720604746793978441533094526719487392581463850878264912561254405957274868612314775509041287881785621262238840336348724714497706489340443634019176871502945142258359170007268884045334434548346524351455183185711191735449728149720549759528653397262486737735211650107885207591169779997625646684928563423678181076662551272356439015777090587421412710569773572375927378590843072135593755222189842442698868298987871970199976016488091607537259871683735270560081134468169010533906220665073585104761651898458865634152773358442709116778627402454895736497297978483336038923184128472067606788193385375446137933358808252530631876053022750050964866767837638509793470027552292540195363173131782747665425422325739452860231585802873270293513613007429877649328974157571924462424731576425051249274307999327534493503472062481229641118132856335830905912081663198475737923083146564814304820219911517386702313011769548133325444822914803584542818925506251170952232488801460155462759607008365850084655626548153344136445543680422041867211802947115348974056875663892858681080481090575443865783059908567545679914159998437451676278211514995095301509628003019103675109118999758731118467582649417435325629847127234703569995897635776178921365965622969438833101198267943389463302959534372044295472531437150094185288138462230877503200692440412680566545679793480969916939209010732820734785758401806145319768616697989399420222361024320788207455080557182962611564684082408594333229180265632706444382642910222888722268834310645959563847623654682049435027273379884639097778094552688598761160384423850248676290150586405401342263477596228347014965308690056364394471161329807321554254163088624713427297917923549403111494976194097561178160130205689805726062705093416837352034929118515321685078533684879663133346511673742988555467085999235180167049105897211134523589860631550536583941728469537217571330586675200758148006671027955068166932545552517897388200438107387660394377430514715111073143224545744042131445897227095008246989840715160173117158482112994264456895174187641409595854530726096372691266193103498455016767370231299501254319330046435872105593072760222748409198251343945913506071500790927378993201601636974385673383407630905355631303438353605822211761909188249654512118521091635603818875622363841697959240608046157181909558198429335105827771343129439128532607206138500686250863444987941835265058386282124537252399897482095620073877094034088476176597586251449137585292089140644240320592408131178814106795942297554557167206863074417106118787180502781675065591746238113223122454690227036169360911784729191873740564454871487837695294942296060447104543379490223381728542954045312625778619476234909753255641833782377328459954744500506422742902349404256836015413083147490105208090910233745392500212860660023887203309906995160033551787801294828468098658515930604169309466936447754646901318542113904155781056725738935565553969955617316274911564443739724940304322534832618317921838195644048610342612189917248584974732282630059461644325905656887809840671479036565192183234915870561769076519624510893645945585928017730716401715622093593329243137737118948173699820819441952468519334593322253124010544228375778315862865147726594687681951251015928067131018229994104093846751440373306091845316964533938241598536285901155907758529544060415352587306934392114901245132169690880760191272247908478670208181648358807325484975324688781269180029594841434612960839243761655977818329684596004010963766738916297596670162815470119978493210688467425753125749091226378672705144489287670004393550211657833690044258667863879667542682950425541877851015966858082482857784075523505577195999366446773738392178685244360222155482907312054021491475563281890669277438826143355744292703694021728827994176889555207158773376815462625481610278805242461160761217773326723348636318152614720072201689605288547213910653054320241635668737269338502415201942215093263797979307193477873621807572691810608687164932191406995152738809300911125427323716494496436547829674466779129375220815649518849890234717859820592165329209487059077764353497127075881571471152228963668183349958697376152543684370731723837897352574211992872696442936715053415036371351064033973284338643940165025291275018712241988634853320816106167999346124776439826291371805418526905359695426388073172054120390313600991476762077188829284465778848302282884532998085402635313960412227483482209437995921826055512917416962393971250928060535495493008117569373270510833270101846584757077943762880286304954278968969328089666651807001180012037580105164809737025823518257981725474902772417626394377278141695390829571281426178918256701872035432251294785627811262461783314936775674878500709078129036688527106116443104089764952808216859146554384922746246091404965977586478433762630338051284486722612868701927580188631032516353474883295279605852870711939914407604354983673105988072007848970306590358258663803069727199690455381544953328022343151001425614399452944680166089921385464062083235929587528569326308059178128776090633688286028279757434250494059062557107485135843991618457480924698664722794382590474424987069696739414910702655944401648850812707539947188654302924893498029712303975529285810977550354495759589849852376293795525476199866618596093812302223936706182148651425029961931036785357858773522907904745687992534549306444289478301341128431355409275148200306660314496303380974292099204031708872157444819506398242283338211366556633897030360663571781184949221732519083973553426923987041750714120630589108159620183124776836596282707181051885343730576954038747652600253199627514596215988764831270870320492222856567781413411281553218161622475006148306611275149502717373720820360559800016660834450959605669644357846150374622571898957800065971249638786417855790433318510945494253541524750723799307260899152391785240149784774720857565442065702147278943815990296277003461445290070364561863918805791315945669438011383685679201125680933985269384360315414149035864131253846339999524552654489151388096001675364035912980843663039909065481519998091008103678036496265582320840173644809804235306701786652122589874490784932341103330665967958783635394838438167492823139490970679249062943601140948585017860987502016653038337518102286804227183764463055264888914399774928316083403753845683925043091823393946571855927883404063231219437021644395951505551956089866797162100231488263061236941586531222730690402927191843580451940286038580210435876228288677441076958413930001482556710553442879244835239636346647565751916729525718053556066710538733668775530933482227309770287573200719786914460322463785970865539766619564975459484884079119295754493990197557545859820526858976522526698044218410281074669429149604330755727101709471190451298062065221735605414563632784545554836943274297151223806394955635728116921635703119983704571477986948368835498080734903852369917164078952249392025182525153961652287350983228486822177788439918897583743116266223787030405138096792003073548356172320277700456700269136622769261508719144089915205864994936469529527945705393627985900318314854818855861545685559354718316625484398397250538228072457186628642434542554991405038112483707469993618147661015889253134444088010708460577933347896142643964413081193522494695304109831874455878607924049014302405519782204168118998288152553578004792045159037515005339502125692098495202389587130841623675903322890075043208690370948738670231849649262814262890197231454793356862016771683400722089742939449987941331050092726882056619452981046659672350102887205152371370913836541041632531465477503185981912448159967681241193877236092614757201863641414394017311431533105837209701363967827999791845346362140401637800542892574416191733434086050102427874153482479715772289507199817453615070405315762114910062135590466144873465091034983279737662935241380392060100400231832996526390550747829327200183458146131927755238838600321011136415683137567721442135625842435077994599198217859811801151303651525446138292816539259752597528767192024540506144157513930244431051491215855748449757017519488410310004799494827456692215471471194334353901396909315879196662627020063100416400028495873220148352578064169606831561014317414144305295469985387069526554629816184195599828708104566201199842983117280963214960990853654594299787115482395023419354736783235703809163076727833944671376514724562768068768631699263574296462607591719155134859890278116393024841896767097720964745904211857409897493971566641090602709529495181894261149331423353630159841127774329456819843615434587110345850765087406872958321583108356646390310869652520005143530217221819810910695279049787782643232102774324366222987560725497377018936607759013342697682174678866931385047156116243283675091674873764777698441581198516249349226671784810932810485875484757047753212843162427773645392900907189191300599295294146853604353279017339844186940526394226289045862842186078918020176827764442260592784043772440442000821970935401787685586991935399411494487490672256586169680420796371830224928327731161820760204954365626603427804141943870175164761289509651519023425484827908920424656339009079425423207927438577524199363573541907196361807400206295417585372833356561535605507331369164822118469503179390579156284492766088629621413328299823475888386609224151325345586816759748162783352644532748063934779110811180065097184587018257413915013451244171820803874907724519972829885571863417264940959034612397847715838175544011637244041001034095395938484477636751518753120707459596986497675769269965920146519171172664316656662762684758054147624429646793430397460655201486246480963979965800719305829751075031758452628680275539522930539813668924146105686480988638701971796542045842418589796758099957072372014195621278387275773222708806229599634362014047577441748769394691437631251784502357761396237488508336424942617032253765796018664495894032880111739769628194036756797415511985007684684037478288559317977758625845672527834270047412002150074281194577734026253628375189155259624472272728416009868159916099334415728693369402426948603542924979531532042178356793385574714976489690391302391433390770230342301706106263697339091444740394067279176061288221429030266168967368932568644212700537917258694776185357224294117978348798691127420090363811208076521095068674982251094616862280228382221604065587585267538410789302330969281952852235893873352329260850787505135621987295353216884862197188101869690766404891046326733606448357373928643910395128650129418209843610747534896892584619865530218106522431233983548729782988143287039411658723531748374774339972453208918873544163113455198923055841758392702240333077236789992166859758118207969347790734567036096742957884983719607974214846198324547878006393412036727464227881265672895731222797154849816439564546823137269386109474873470444857675894174912458386807801768614860352177923567638378693919478453437280203116946560498364880568969387646569800567925747101982183066261699412952912084569543149547465754124704234835464787563140016938382048463294072612829058103506945521586628806008332176966108397375588025209779750764770584401386842439913858512642333050567614186746343081660163601475591169570935515730536256029508634978919357943170875664692995172578740483855198606279025371357665927349660786405153094758200850189157653246860970201758186320733173668515724329266201950417826930351379233135538688136743467806296969219118821392815854030568954578553660404108108487046742001182032142390285242780990389281089496538891444529716582590100629229953215875982546102439157909112715255960795675446252136375094657379206728165608925163075686382236688929733324797925359357545418534894214656495389086508178877598450281014382785603963970531512283009770451351477071164393605244832129217014867839724174025239262067068696385324060282785343744980952777182997214465290276287552619992732013178721221229080564780448854725896272905748588002952242320610922362824999097068553632047805962943577855853690800635852949427179114988300920552572691845055862848560268716750977453665883778470518585925196189942084591240230497526485208255302719593189516070319014908496012128459052809969883053225231640691373186691979168511934014801374902127800706219488860197595969717958403392134272712482496138603504289472574051839607560071613093891407482825960034448507741986934402255241991601137987179075838260570157131887454590951997741652536727217798424033079800765560225927384663315842608305065749320489794386506873948274583698765689704483766723519942419211218918681930933818071491954299819510543429660303898781494672982003965373940288507116153405850935306786484488376124121229738994127809068521492396432723389446115077350602416125995052757189067123654254797892076036445309106087390538019467007119573278586154734307165460214773972371289083332226366545766714874907505381403305289127061970917109868044139944849401808175480685682089665288725624123253465624881464745247551041350100914922215456654781577212405811448484130992923735652843110172899051416894155824924167282710992748515292536277959636140606273867290752959975063476342810893585621357317759413743470985288625752481314654498288682148644335127621209740061230818660751215156919457912079737782519843596682753848292852991036995699917772288495684950257904449610620134570629446587477211478521052334327434451514102948665517995014546940240188485192556378316013097010288630230391722923784072684939425609743894774405110636162890146598283420930497440075864857636445001770491424105426193782501329460603932707489427117019990328534303306261899513851375032033424019401443833402448539370515283751634160045060047317026500501791202868603796310739087910741844110287004698790972210023317632019706461879920673980859996808380320745346241490623536813385457205337645091054353890053978728945476497172880394698956684839924874349077270784278305150527195251938625247958938212370785532190499539906485274166552125515735797472123159795405628928854938662761017946742197783567827189707057800605269056722259799996460958148187512156915663995520500905114630534737146262686726811339439478978641774856759412269815958515622398455424252143849676601014217961162680216451164003617547494242936514654953355716918950237613194144000951997297160878436581180112357554621992439840887682297227513487480932813215027134127304821361581696312137372765132575282566938799914747560709126305117315537625131824461254974626936272189088027308338428507950955710773907169978728362940795884523592026397854791954646597237270507524844348256513645190416368150886924816600538139078189873376434626878365182922941605096342307626104322217334551952316477967242518239796730826756342533225722946551012828826704445105337398642527355966080910483791029089112125227029851617694502352467639370030121584084423832908097603397668373259782493713545193784831836796544766307466131422626035545965781969122175289963582872909525110254256749423012732561949931074750207363353547453922269702074471892354893959213876332721669251047961403532674360624638062976180027703461416475146204511318914062639478992246370267328743360191403689210640148562730134658889436936738855809944190600203137463376706718450706073377171077214508970464227644159507983593155720083914207396367179968738319034312052291989799877573193001874170659989504168525518338745633312882322148827341530675927107701525196150592686453058907104881310769660059718794817931153276281426604633300037306411425807068966194006113711963046714467915271430580263555706644080088797192160443480897204856266738593812297477607953555370946341896858913317479897303765939827368221870408224654471780740270829377732215231000981367686670594288820590854624794426508423543474735457964657323826934600590990891006597300454179692537898301254823682107843953287766230962674312117691756134317756705645685396799817971192150204018301028884380272360795345681217426914668905098353122062711944819229740244799564370934540341414985306781782501797777661254230328698118211517043068780559805716947951484245540846536227687048706383154479496846808809580047088105042233117932493897746467102134254530722177069004134924879567754194618868875967845673884289965991994402095788911185881400176348037543269325418605118878007736254573158482120644917996010644817906530529701294810566923233353310047019702458609193031509686345609076577739758326428747261521535915293850371989225409598659779880041443974653486391978093421923441055398949068960740998510461149424456840266471622625913468878688696906202763486581791402630785834843889196563760837649054541717604269795639152639265650524904195707915483803522750300386285575843060993080453699360865715621167435723328723600585062432519479237012605279514517951323360618170845871069339253083465725556856356764486348936771752857042477098284431676254479150449564045997815861471178529715133738199408807438745899997616157480019909077216187001515065927118965757126555590427420089716944973553774802390176182937457230631083937545739816933203961777524823759903154677336534161285504852892792759541527401375115997006652714315396255992464785333136213731665995735903572407538011158999280623435796938283969870929778660587917510622529725186604970875400912642591398082990058263767000964699065273242944857913888414226688543732090449678366851547856571813238649583375771894022887866725067483577962159967209403095598461627710080433762637677765963536372895149394491267425957690368751523702607513610637256643978079835239886586620493298306553544772541089577997671423914158212233281385296893219718052227352490519036915739091673510047902085949403711490070307467620026992970983110882439983308748244106187414360488045366729309813295094330119424086108227933965057149082667918984833366203846982887389623869854703473248207531290190715431049210028009568655106499949883444346872586137940590178913068831643867925619618832449797399089089739918833692797941866638644974845418274228840279503968335174137496209938357494571786175451538113450361693873601241023530325925605440772388286040384689176424291132351810041899121935688676900439080793660916930551989666883638554211798590669652583936851212132373500348121202468372672911293369179823579686879928095030424220814206988464902930731156365115871127142552141897623050889434499165655033198409495020799092416015568864495003841999653524330539474103841469277807376414502230939250464382790981147157953231414472715416715822840928971803495528638209124609017181084475133187298655964124614499308706550558971560943018887597279064010065683198900355216213049006909362759260586386250453845555326808097368643738262208892102386757194826356621261532791119513165262387954937511756932335274651016543758454271440921362662768763862152050676559863748992091054523117368825762852312156933845436496995849494355819668636765333933133494067491162825513358185072026245367144170189660984861065961232749814837581997869134935590213795985940074733009362125528189632446364038038767335425258247150764180442084736499944047320793225918141611535212536534093743733065450678402874583478491224258435743861444572110627553331753553879596770793491603666109483766121331990458691889219041035416248423248345771531203723657736521457952734312843771083685050890688338595715320832856788639798298434197541995397726564706809286293321740902762149079562779812768812905403699402051258014212991529492052311775537729599681312040431449750563500886806281933963727231457068239087009012980277623643898286726422917241443635232488401254603049049963537824119618705299708870738093715618743219935627616084460028913282716734673253266789236663876310642292049164054972841232965481047158241717439499917012327376218220512931509093187705619261912006389925234195120371945700987292247692676375394440750467737279641392532124218611285044291114426490560308887105973757580813454709713503505119450194004984599280900203190213753857278167560948715601962728862749146374506598882808193326926591913419814890831021207193572164139252687706391120268388735312645000921421704109243864005125288877893886018978299097310610810446802198865850906949435325876670909059771383409800588034903934250144671208140182274797916793004053244148879208247708756642177065576526685909090492926788230368428618894320633275028290831373061675997512200531645145498542235232759489584944710113124266509098643970030800715640361078843576218569546624299421255859253667766139032830134129428062862533500903194041138725023558161056905598066130550462286435108423701006042693189615801061814873377955320952955313359583016884781233760503635539157481875264275127185912859481794560775097452728704071202443147113303230237896653417952905515826918005831897205677263894808694827807555796643017399947479183982517483911815064282036738768319506561693508234838408871185462478028470580529815309432862774011856615511291731705268841254858050437657945210781404623587818880279741467554736237538345174697984161151683426990588144128261439441415412044409665678568903618652643137626720201722136780454791366422862141814954515019762122801110701402715987011589727972911929626472972400004225026247584776644748790843829809146984141942855098460375840648722722913850104094036837352495809634630985916807911720636182512268410381494241649974522123588666984578431859232645238965500403112140647639865520175865850717899958567035527671140008502288113911761513397961712753098037879318246343726857474701423024935847578042712096137694433005870995186830908756959586065940609129101033449395470077173734544092606553181704682564809439577737321749450837711889154153831621663825530195696241160921815019038167303077231407404251818185477790826901751386938668520022066993446178210314765173989513981144402987067516397110085714039748342045337201884788459348064514576464931286999409466531593447400339933251679049584375339626663806484420735535846984265624327098310817022266855231384087163199812858481481388561744285260440966255706058262952041789557286098774894076904675150594365639570126293953040139650052003449392824345416953430481898213633074335976055546964562136289304404877362350425314370922172925435891585025193409444411383017409409271958941053488742317618165978526069268413032678664188779325189590885480522489972245948149702055819283411682657856168968091136874790698552157420597949892738475922853891506261156473409445763423677760268692455621422420970268557580593509810478496143865906589362328485890301521262882407254405115224719421824972980066999837340402852419654373859839323061219368875899067988318636130938482858619792859557045198770784312290309629938881478526032503622616861603880413168846107329550414788993788297626510764419009394004819246917693784904295407557988363384970946399821788031547940325939482930340334055253482083216992399405174616138592304960408481550156633224420587682139005731785116842084283429212686220416521896062392671833184767882307596753008559818523855635302733664111014333812269093887282981103061780208192987257822094528539848799653557967349123923325402361213283944518309317438042192140221203132426511637260770109665597507644559582463916056833129723748747720338971084115336767888786248205234197017342587187175303987608665267336448841936478808402371245782524538010569079920887240120005455775038756490752957200013074522455546689363956640531152420272850642444453055458324336777835723075580188784602536730669250132967588732835781655523537617278899781616253174085154714147774819966438508813858360672838727632149732987463564077320342965127778708315734011604977367417462006006811549226898515869642877721443209961026150255079053861309762989960725957738470672237702910420171694804873903435670817029380683368325690478445323264017976513475524150591968260006165686495778367640691443330507916409935729433892801883792865896487018063430021531076300901783678670721799419967137039599916608105309098824359248364097264743626555186111449829097800286381527985826199471396403378324594721224054123849835136526965977682583430735665304643245955419678990556084592385906792743769207260600644381006272346716623288860794610960478957167558858122785239636173666157807809207419300646072103445319753480190599442154835822872432972363811098330014636812220666930228675586582785123200661890142432449895233745073824807746304032291843242582048814739208605391724151432446204419894143645612053549055907862250241652517195024811910815306299968978090799926903857548245401338349486224178598057618799733092133203142748951233160737984582997937055787138735857213404904865102478730203705345216280519912515640212464150032062220933479520626253471739335734403035973223654097488516575535253508553481957155974105567440562695284912257441411010514784040416072836854860124015176073721852148129010852772747714416673952674040077557564933748742675374027320838211018705190873517613470600870338859747493993837135623265474940647733973219959660690887344195195703818399327460258853526439738379160814271229092960253646858440564371562375764086882307132338293194586181536521098800136205419194956421321463418503330993908206956531739960033218708890514422398485289135061801020602565495438570249498016920501816545013505610178647707253423503902757236371670024264934222788911991359564450855349959625996738872512511279580906807820496789194919195488412753888276110339562288053156598797190047517218206514929324960160583621266401417860673767306138848432587734494559051853670154481397099779781326306273401703539307681880784533317324870575751176176386774582324396256998944326846960976573040360532167017031910883525049476410609842737449512982222620475777659755961745182091304618765513895267281008816222602838437706168519072113601374311430823640630572565411923622844437065840168998311473519796245093269693121624770738287218210237529503119239176840654737733744607461634351143938727676591685090947284417412747695098284472648457647145188134074339873974366568401469260937728575089223620477903846516795266147753990980252215537715683622722276676758056347504185929169081574703486849526363462866011597081790956695709895838304750228312714838690631790572889967018064196973566160563241605965404308078720753168388227992639050809671897679864689043718494172200536878483310996444185736062673888403513835474955951719711230270984729092804719278893557688970532469655309907054022271605090390388975200169590917623318318482705772420467778533310281088596680977051695187255367073287855372357794346740585276883978089126216645174969493710956353401515430922185976682580444764152022568877052772004527770360473849779413485955172835659404102680387477259367677753617232315809461336225678134752478211918065167233596154649379584561247742879002886194288780246201104321062272345771102655655034839199769806915148986828019914439434377352233673799626330068205468756813634360191844267652378587543323230217542846715597555152028113677523470174286382370808196204533475047174078402357233911209795370177171153141844428992738509728527188123382672205779122415459897195262497973387254880740073089713817276776227157902227645832799148113334469160002287004387117369505996840876209561795443332039616869791389440886788511826787400660809549792615722926027827964930351448441862510309293356414320564047794748955463892627040896575100197931570709039077519582215592500063575302989572563633464751562851014538299359856589249671536072092738122758389853588135225759392692123425130841310196707334558245734734387368496201820693497645717052965443448097293811128921501709440839340048000926221288543742847154074034784124126742765227477551968469652566122245908977944936452272377123322808448203026157476612890101065122344813021660167910052650862433624266635945154886623287564847783552503423124726030798141267076962885377964456580871936399278499338815744632760773869672429983477943058190682286006709486548930483196864811755048918385129586319204475922213909275192928617388268489458424118316919452137636284801681345236461236634821759688522691769482131878915115609830601320951814129871258153914217514421190302195976443985830852507011513487221934284651933302595901942641331124004840023369131574365359079451760902764532418069011993298001882912886709346999942287978980234807571064816917636675413103864046169328461159695152496028264522886959908239081711182517212196685784980818564453054668641504494154767625823029239229959028419492324493867274335495488846503841911106966764512770796213583425900339010087111841123170235834795026241079454457741738827930108314689676584656435055669577905986511375391984851128583295848575301925700958904960281723749832829169329210777371296501101642078088015856061119345973272343026785190010598279265824022733257254163970658393004351290451126646584504060081009075859087969827073153463801154072256439011613735357177287307200223348511990921127650470180536742457794610920953461262240131621980892801115502487060150967955397936581731779444415675897343705670440699583898138076147635307829842434451123909495758120175410849158277534979423125007991879131137591134928894085771075334716007182623137107613392085542229979761868149309218591771450846761722784803650728169573479434667269117113277806611844453600705190287742068883388229922562274839720284348757337519216266883012066987854920561360374195926379067255600538156493198016403846475544224950717562637766252283425628867773834084380998451028740274921360962279569303072820876699060184326867736606085941357342595624214346524577546584587358567628300799399322362088744831323215933078379227505675194097021757017601117915935399229631626818844452464936052882037937974439084640532919878974403850089894328995933226449521251499377632935220185381691390329329756983603832133499506275723529343662832192987687912713865799965493746135498565997009839655805704624963980230038780394891886466671982035958520515087730360214635319264859091824926656342471495657118850593704261160089161026241583766099079639685509354645446291852454379264289413731650622757232271566573416700405368527406756894874673278878130360079146311249062300502368754559250337610248486754279301486040468631108494920917847368602340633763479386507599820359376384350223456707056936768332558411226548759733997415310052092035492378148355692041991114666252636318182896523443219444847090786984744457570928470695606445064528994119958982416455409393736799837933444338700294727751118931483692594853806781220485218074018521700741321280614239382475669686925798152205587249441834323349426678827494176693965795763145972247900862043411006839730234869571594408517890999133704301330353720173538535798013375231615645220865527543962973817699997442458037182784530962647267985052524795967388174320778607974038492762470621687961304215146699412573563753598295867421873914639642610713943537305061148650457285547791145911087220522375954933699157057668211346941058705959989282135516310752332599455828985660447970112289201377978058742666122510047450879747684128926228435709278759191176723706087312274762640991334943184290130538014493521744198439299344405993732077898714550225691799686865155560076489307739294709097478566026213473815450221771864353161964505720880383727285534578911628661342499264115026230775348256146618034446908818282383028376686002740489472694603425567403336319275765410459250391419635358677275666833888122902857463881376299938076683325447625248959484019509012584156794909498268467614810716713585610377288941758573987550602130708486571511577834120441402882613928775721181531995659821009244934044995897382142886033554093766822084892207621038951131668038478841998326952521125954221950328058897734708011461490042804084352766946798594761489064273228435797445835249636312436145444222158819195569185161516760332957235999490714849233566160055234461610946038136316808722781741607532098528105796563460961314240547956989617509431243253676987471380434378623193361700295733999293062963529457572089481930976390544102372109365860792142178662606610680848575784085818603336428786268604393645665219774287020520231539066771262559187029327588186647963555789019018852770222057584220030888843936376157057996131084054853064493867639203351931025757791240689011854563243082522861462236625294485317633893024182291100914545594938347278905152242361198849193197689001796111464686349224606143841266574470426304512752865074445685910169634608131123154774945536152695413691285650352979809156267809420684813027322481800734276277715754525326338949804437027464912731399386497552906088344037676332177378604820380713714263669533748906951527978428458764230787058124427453038713499503846754327425843787218719322137900411117396979645475183021837429879937695371671450107779154609858853668343456309300186063401219783028136715876930266181713685957586312351183425060500818473481320339426923077201287058851921861431222074864726491644966617905596974653132130033419521268533271881336533103624013759536370180626015725478406903586123035470513472764832721483939662086563762185064059958905601494004298948533219188894260122766407516680663681206550524585218815740827936247391226928413675142385791121780876114745048693207665343533121960456284772085274122501889497227869542277580290237166194707191147698037933580742603107214797308417836982722421618198802288621147984229791360702691533313024321990049519912435296789409093709070897260206894502694017180427070024862363858617961297526416335953749514180742038227869536424364178498977091325330364594361465158623092789588317094096734722606367169300933909954717864171322996337348413498749114531843988963769267949568136195120030785096942071254181294481269154449356877758296133205976142931112633946377006958277165738701746345300940965259695272281484351953001203694228107357361882457169646299688944914283347559847930748021553897361509208546846328783055739929150827697226961679041038635346659955823725291295898613967062628554667677005043621033281039638365569677212299356703763252431087970737311877551321857896494682996764770003835384357837725328948297477125728867694126562354121284752031863567589875787033100894727935276725481441556214253151783360005597947491391452423119358396536614771806798437026343509856495420656747756466741456556795853076890397085102928315007270944709476333651654606150249358260400815686971339930010517911625798330801670940731176507426213107966667969320522087611753016721769932552788345167318651442264351745653373824456589292574636427066669386277002244036423285456768546715637185412729608812601317046570946939923695284091375609573581158303787451929505581243338517847365184099984654183934330843180636897172084262452965734641482816114877750066977585350199839614621712280000948493834568697550841517712933177938166929401401218948629191911667996016126431078879325229737917926760687935008671998963888884290039179558921572176882236897390940147240625150556571993004596487456953730496255532458906086914528217638648603323393512777604810648730539817983641161495483872758624358669832552551448739180710959743480762667516964032123625297762421451391905355431890445649390808710289838607619872121088943849918655730686586711320363265864489039070242526937888707048051331337830324462196171432049338658726712634189310162259175832190204795705717811619793577017293303031661777146092909106343677762657484143136817033012948899958246892102663546133231064365317370720769540675992018602166278775512848866043725055640612512747816377516386967711390769594134235099333516209020157210985269418920303595231858622139600748290014579731414986676385991046348048609726159723772781343518672098327888711639724797086196724558719275393721424783116843371660943256733106851236351144528557670845229979278481720267889708940325413128513826836314263934470772078919883032828968491113238068380060016786919072850138854244750906329916212050412496968881329362618384267511045565521791099598489800645402664973990678843237339612080315803904123398959227725227871050584463198874891423901464498783434406865665831534166164827284605201842610065681071111685006325164075460044997226510277331280701128049474637430401823620840929349705348866327521292332993196603066892128398986996427235515956258028520836324388932866113018474633779365655104993564207535751187874268625169762046028668220239279133482867986225653178283440691550945209699839017345389592528215386663187339178138490775315688234041813637666400624469554613444878032384398639141668617869735753920640038683835988670084270295264514240030597307993146549849286369061744893691995539657471142223662497906356293962101135239119316077069875837004979436771333120580059236047518727748892300173298260799277387467432343726804429941222105810907299961537179732765906094971189057746491767851337818358811803145925529844272161706493332080078653332506797846767798230242436871274199969727029034851886930933855496189523185711849761951016475508090991988567726518299910177099896450748391029820139935214444050638220277049525415969678691696831978546703298745601109178634493434256130306802341821611721730461444020218072737658638971805679716862800122143627080308218532307590796536097026625417738337357649307054685226528301447805639542204335983810584716794739924792787164367932697521840537193321850994358208458896966571978898032003856012502186028016521763653853036358157345340457824639243264084412593854059832727125483315656100222327868094497595021804152310838390796478373963307072704445625881268297474356658104319917528040652220590688297061451768628036947629289391660866573910943505915358941018438954174671508789296508525401694842747280706338078673727152723092539139793928953632345963199158564192710159292797376637444711399968943425608670819514908150169340425596852413433899054142533382921268334251188539808960461562034458348613916345331666751132908711591968960756263339547717430563408697076120181582123904795310711547465663400685303250327199803353481617134120231812470933010263330000045558056730141243630724012902373602592116355067927845829516908621877443370730276688118640503456277867016518985274266527289958403126030783775382762167329955925678885437918476385190918122562453331946226059008818449609144356998321426266967198347917953420172416033183222557159404733993711998240083480577962021787660911574846145887509903845316620411759759409869634637324279960636261100315575372886072168776618460051868267739754071079870920043178208949045924932443574486993262329036427039805079205816921604849368057164759445625818456234169964084545843266332767767388883123527991334839479211634699490212566481871033059751869280208188257047539985459284738108722865427691147750043558012671265548290907133489541145958502983181002400115393864447986665525159967964437924119272849237755941233755833986930831957806582286035262382226878684088766731802739909729008499968045975992281728556519380850946173922619340594452492833503260534086068955284621371173459275115719288168019565922055552122366628247043589006159993312136988626372796932133952817137250882391922016661028437616305786077078393878675798542191628327568936728119594552368915982856629383343261526252903938045094986141939396718814032191916321142905839348552455200974988275881610762582543228466231179405943146145449376168397916555888111124163797787194560929958681160035115479097319711246414442315037940939676136116679099307978748854468089617573301914633184311250117557894272814056963799537124811260613412611038367030253697305702517159593553532314275249563346166520292964644367981064119007122747985801506642929745483602607846952657090227819128405111522439519834455416159765909418636395471952905631941422520344617150017998198474883163029969160269382716209846168201004479941049420529573003065915340790869538751148728276305565962018344067120994554874132091226448053920696719454482267527311965400510488978192353282316388664336800945269554278062943385903830874565633680712374049410878078929242395001120305397442832010663425672374055589503882495148566331103098706336661598355471605773678498135609521481320327009668448194154454710550603724253027977705988023540914288974650729815097377479984878002335292985242505679613741499472524720227403124359058074298064485952964933572475278223276177233517471986663528856938183148297462648716505517635893555612152639105718595853451463401436757112376357300555056029937446666406521112638447556474973926094442642569207427701682950601674490927267704922723279080568024397003397263085058051964912383149359526172317060135134431077129182841133806851438817654269581912632745079802474166934004573294509919822843651168558363904395946832470204760303540348515441567125621505026355453037977096321075319810646740498256238680246132345373287502278606644274850888431189724328472200046308904691570119733934714014880958239458765652314827621543219217977261301380444888842217956996735189036806984272071235137039956455995605280288008536063855438407733722464690959669484787164451630078006066780316441930752073853237944823140608245825680375206977733932016494970884824873472347913203958327986858229643513007611603495643238221845273396697908880841372759531215404313374241496082401436869261496159940184405480862094334909968618187775109089339529481384149972853920413762830961618981593545862345312259454216103393710099609375293058369321485254641190775631788101332090593602426749833990040085300950692510275676579829247822851183599504641519767994656900634218240790126277017149267969055718698436021733966788534781957738344852633129453470680966301533842580870144242338075725538496835904927771807345436416308793321524888293619510449553195905343680897856488595153565117269733959102691936931975533254383805694920636242832171291708110700837206464424416320703377241779157166853964835169751030849992778444061031358620993377628368339229827284892291165528015272005669506232544002927132534270146691324212094277539819184053699817254177179413621279040372218259740595443296610585032961040252805739172302294165520993709248608190372939206274936758045266270912145461438252657493985759355423494140431841980240181024781428600261192917756185191003112263637149012827152818787826726272167311813161063234844308070533202712900889588450083462184055644099636655770551360038961883711475803232024606029571876440667888140431238172600649569333502964485995102550429050532536403643783928368755730134258937557841510341191718364395905552129302980364414564257564690295387400160856356040567482853534641973045681494337407726808168582129069681083065157358049410529309735720813628464520360605618869292409392633376990623419434566706244537581083319811888376755940574265066508362650022374356294074882080625637310704991001773023765815351541881836109365135185177290872712834235647438907116879682216156830343251485580329968350556738138158459783074408241480164692154745768813699231135402481152408545488714616168119571271774238812035842336162568490337811606878139046942013930658475203826812982534853915972866642471714217348892689922405727696524889844861122555350822943138249668695542543809974685145153202270806441408869332748563862235399600435934609542305242770863863948795703147172521408193943476826872574866975351100981622434516976196473818015421912493272485255759794889893598132181934910289139341535312842363232974398627123890282957183986896175422065066745166367591754013497994563980653829728652511368753467070919870909177391888572174980258608436064680597866333386997387031260708607991243926310992059016413667547559966972787666044948264947814193395762122847576105135568116300267553232242268276421436220182113237970403810125360794064099271726794249524191807102648395577752472273644376187482910136357352220301710212631713814860066531502578380833148990818012405965827341069936837212594089988532519711999276074162968399883550573830588242572238975731590652062235800056922202677017867060737477740855973143781942127091370091080224842546198482878985081389364510170994142064851362534042193252805955730656203178548553632605133413232350560881800932812652658002396228297501344438745365031639284942933689167021456439226611755747395603860895210529714369648744397590709940872011135966744851518750385711018086982139284768581127418467530416982032485789376038980295608816631998625558762354050020437945884579024387035862066620568474004923508418327678700261137575425397525180611474775011072682781032304566444830022469388259832962097323335088328379639556244543035419554610270417329386076286553173692495645430155785273805554893130409807814990033677274520117097805426467225500515517251909248559751896628516371214920460632301675365078142983778853373852153960708944832100945958820672177354332650447943521808779717277778690783636161199337816415335335052466766359286946557683378776589988208531843786239112585890245883204356681778400964544077627482144927723895478431762096894772432010952074748243687333256937529317979606201080979179977283867452832899984662384884256499384282567211562377047976971685371126985938658912607646413918345850476876336652061375940554727376986851099033424193123309437611746580186804786364258664663959407043973448872900528598667525646546239632667692564352757558248175820263340689688413579464773571731931903877114036435463811234942905936686970423076158173238107136123957355457568979900366315690879413312068286238485925514264108557940389151905159863156832909189632887231832750607845413333705068987598501576087300271157005575551914480638753342599281702422596091739705031517655015084175176464727879111164607156384982100876352587943037369412900847253786143129987137513295813783056902101196313919403943618448004114229298887464065304803368956929166927732998320226274285526911691799510689787613121666494895877541562192098139941674454699851625533548756715724353748360023770307737811390126899635964232422318641064602699100048834617342866157868493157539698146341135236507374701552090094778589770797279985079166309124509471310680507718664996524452784670241856772602327458708101323344052280338376316829775411371868126598018917759248637527514227684900909573528193740567566142988170191624136841145251855496690066031440046200979479158484368609449213249872720748229995899983795062076117593693582601160706822192376573267542359381332955086017630731138496800154098146339965992052258251225983968266643834424785258239881209905762840103949691743847544494126842454876472996943985166872922350247995775462782423474276385426382718561136058072526156244339881866855638198532459929334300190164056550329150462996789692288221302398272855509004295347984487476406588988980609573126920556084705293740524464915608294445831949761826319051105476701687780948265368193572451481394461883404581883418291840480282615747392377663658883578949741179181802638838862561807391201522712506277190086781102697026942026855631626281450334538930330391065780908846409508908040665221075206168831809698563644698166682821366161054641709988332446506930580802306965806918962607745432020354302940324362403135145050091926034601911286083428066189361055393208627162251985543282705413524491975896212073301221716553948625020503060572849260887805626315426532567110222859605816081827528361415808496879481906192662503935553103624005789144341642021243186738844779673634752916248441906665965319729547406415255453958420479771799656045623492427512748581255581340330532756196573340398628024142330958484793333835918448281425790160330329363904775107736721685714129365371064025675838525805642280321513203680274708514731589183416318822936129209911304559420628140753796343367688836517383323361365887566735708671928110466999262103732231569486238348897854569622689284554864943491755887202736141144872540772365136867233300475574006228118589598165167196367415033843491225721735619754262442571369321290843908708903987018136913646138556329330131821611188510968387467313140948116473148363296731841556050624969813323709245036850226126398718112058566556325922113213452194100193776010843261410575881925346664203761801691506279282501949922652962424519655185401561153947759539984863214569655720576195793972819008756362823941355654025227305357477328032359495825052172450034329051381849617691645174903619516762053321374754945171550044038439315416255991234251620333572119235641177587703316834933202640150810038004279450428437530049029354329062418880525611313959928396168959126185279427582867008684130389903874521050770656370204161489829471503286817682205033544597872848778470269319905306606010600969904065499219787419612488848584836518940234209128678269239239041786350769760471306890094849651721208145980131126473308529900992529655483322225752963076148774389473154241192425769527797104510454742300610349475668239112820610450691442131146820249268970736768480640526612787459813925115180572037698621418368068954511490115465922806435883875224697435216108623875052380050446798044077512472144200887047729088086000508768423174931489971449736026947276423232528233767937092455992300028070284109519051888612454489005979467443513807322140633431754767579880410515462152138230475944202288304191729059643955871801524256520493705820212773983130554853032622342903580374760809907594436383120145083108720829350348433621675737147007740664690259962914791358808287233501361084486662451498786970290830829811946557992429292678880458270288412526514833210080161786369720127564895531831567024192898488752812787015397292573675877044033406335790639578837439901356909246621064409983820873764098752405010298392773006361727454805562890600050274272827948784623566265653452458971100213753161411444871377934962417141952953806873114632385107058564000671267518542889502053094755203590284067766225938334388539129884574903127101634161263139101100977711373468039219394226481560737111304911652899983271629775821907656036736793456167169591630434691339556089137581235743995263759050024789728269679290706408914589005282563377558386110985628311195058652551790853276501034384067073517457763120474712809527975954774085324348256098808806381665981115125215128153084800430440719769911337515136712506826094248829314871327969780681680415748018417587123953466664924536275300635650970308041284237011053698018891450282139151849842514028093185078425950983643203752355451205053067368586825328996577401708198401806936306173453809767972810820387639669706282545482077146234086525542459873295603426597243050495893233302978362097450423841842437356214495554765592864668396323421092944684296991574160937310984685589830196828237125399922355935474165389713735918340662229894194215197416281454931973029450974438530949342689379858332337731788860072460649478849658677563186780525598679790646442191061544099537921387997909363001306848187373004920074901842675471774323124736178039325192408072529601615701685346310417744554097078325149940276466944141638560356788986618640908139411015094740701631736868878629272814488846920926524908558866769205650990212484346553954323307293111453058919885237771733266642956766464400255977152961787212947349613675839236358091936281491680593533983801270610435485557290022610884041010125272369035687539888168931403940858078603300216416261378083066995205644656257173976081498469503904574286256369613337112902967094401062403400551135839210352168709281175617984746261153723838097991848245417333613038487809775479968040895487632367023305424566822668176883573867500246572573881014675011016734254481288444154099005782659549192572314541804411506761056883326243453881338965324938739399972076103212797672172050105802108930290736426588904583451389486568870992486646365812912547359395373870584160841615706437011078869807188010173137074513361813876969720672240777823431445015263255768544004985675939949573871418557614392094844876588851721110681350032419546885437061914061997629701140690640527141178784208410611848624334013904369482573062955406507561354398241852398839548158542134640644290557979311017076958284530164273610169351111332091030154921312829333720952285696967157219856656037694157121234527226901039879137533371644559232274244009635610660392594771313243890502269430625085314818868024326014522445982256672912887400258731104557844834513112515735205274303657003126852286895690649255320190135000010992951406034762133831447100687575702551921161390481051753662906188671985451501127254170366998866453137534293908052698958251930280210443985274975355364099219447186906311820799930333667548455834752851969816734595169665805523348626598393177304504316810515823399219965984988171098260287305024221114273030567250436875437807840880228750618651165225917098540933520277398937182637832056856626049924638852939431708338022797189567238687076366876358365991775566289621353762886129138048921579676576419170314526256753850807099864735061784320876439613526276036640196034526152545020075440606968538358144890209703629825230499258512254433700616648438532512315141156429621372130785197823478352494928393536305741014624604018041023489309471762898533882658223431481494606270222790974723935283464013318331271661391889249925255958309144712524038864130518392906972120748890752034430251709994204302992000228902831576844394032789924205753952320559949621812549982159428959345288388489393445865463518797665200553121849611318472721481920256719621540263455339469645845878108861752323746760248211117230515757258476092721407928058984215107014220034959153922993782120265663164861850895072380785464253912869614446301777081700300348281549064980820008371687275517330326898365504379186878182071991024609051076709121120385144132725229572562131330396249951872303238149939407795482648005797100661056556750719723496974305827034268571294425315706259991205783328980266287819360381856702082155639119970722505010995021703204875282541426221071849757204865027126743100169441363172623247601211915475801004819974976083171502332922691465637009603521688600912298537479756063710809125356007551750935689099602297667721434917066356777107882972031575668330724692858790690651977083570051388061323628361292095941962231233774583126297982169236964345112573562594157955284969167057295597144642463536414733466443423693792611924723120259232734226041700028491802357626352253070171180518241916439217765937349469100712512945618256623109885558827611284155915006983892806270261869996991236359995574114426959367277222267218560014811748808981912190358988677458227344873902164968148177457725677013819792722848382802783538208765792842665477699067820092884360567372909691562126479939517806918390119128450793261700573400013608120975716672103226139891742794248669535551032305551924729116752353124075270270839269149867018660206165353541119843123987885389586324689005101278998859478931314186689461728708402997313243940611050624286997351338621312420913057404376930188593935713626557352435737371038546255308725339472925227033930049148096357624380213792493458488349799746418731324723865921950525679254517398336584466918467995552720402873888954258753258461226418983045927145965954150118789400822225943577947966781854958058072232286145072422334845107962675901948184779140278534731880962994834294330986726523078626368705200227779430242326873663844900355797114293912455899238331430764928412308123094671585671267574481464243369564126160290228270105017741084047210274034213526399108409597280281846876651261170193704727989726313281647191315446608249417361852205673210312867859042482826902764562512043919758227890806657914738335488479253573485971691155581054769464541522895538934973927098733691816318045783000267438268853807978672455132845005198231965583914464552998968484448450952667554914538491389915693150055802132861232672102642375252441487703527800931297889913257418068491802621790450788769033975067422070399013478235637630712482150378854856877936113108395258627091943730455952021155114243643982890268947798763331571994393966017215336664464322157205296476577294891103156677783747551271941263602551686943048019813561510866960102644130581472784793363674849882113617672181182285705511938936811138905283635869764939595539255817168965756770676810325314155306712186003780306622469877398319388926975687810510381570333352864703292025298512070709027720290948456502541650835882564417691907668715791593271060189484298734379556484768835385103255203705281101882119717948168063109830345944200919566636666186195822689991218511528542267430213902181304591824448984908873913664928305118181680434183816970996469672054039020287871161384137135928370552397526007129883264030704789021112074596661756746228447378214566758569816598849183465717707677057977995295467381855014735482555081053455665549919527973878147961589429774773003988100158597462780403825641841641662439291606788929369164586819751144252101839000541993040648672154712553500841470147149376315368868013418290316820026776013897318335715360877318326713634629267532168735934244586587615517321037766858635776745120086120977766155731852264553659373895779814018402712240812649009571614164105703149127645702278604068376570910658524143835114237179659232553720139221325499544198516753934949600712667442967857566704870438945215302102428512198185227451269804119490169893493673731846063969977607770796973332793281925932438081952947582759322632983007525996268879032434036848247195179731481756550699012313312926891173801397244492180247969050812022348364156923512445344497984051470225104052098121567159280496075193425463366960266357222701465960187806749824274377033143830053969275222453161280766440021148271438085409978167804189332418139918859234257407315277804607309803243007027922805654626839600019422974305583440662752105203391656659695986750868059684870738605770708419821274890516065667730414903620770209236022699911954591422137897749708864129500508792528778383461122399872985279966641195569928182736814940787311118516592237484133320221202265568040837319321053999456960617293818423404246273666359743183962560657767075608139600733413599707669002255401829728384321648283219712855527530627199886727655429864480753450200040755611121819231270567794049941968678435912007403286279282416200517902169516919934314607324898890681992568028991690900018232864225737879457790807045164797681582772127164193839909901355595048287320943163340188208535297439351310057383907418806649547840259768019198747621533117447600835919887583029586542069980034395495167336216075305848959097432631503013877995781931564266003797592028055114710254221174774615740857337250412244865953324028099415570794524974027721633118039820032389823959724788589795744556456893986082827151144723825433390965368704981806154911490226907272082331265630834293444772266631100024425297261084868394305747078078832995948158831905235268340193691026276104297990509087145900832086757176991678183427007348364808062277990008388259810190210008187327675498496329326447467264175981970436579218770960996153870044086195081039466794516686913643181738297898581758150846894600050841032878277901953782135057598494619304665343490015188476626154630419499975213105792209132761788232205993757788691529524502574348093330909363268405008862408135194618172599744925217417178568818632886384955025328361577163925279804575688541763680465051030323503915224016160111123212266684139319661723609227918487007628669354723984546644052058408088576253364127164230615962249351024906744966330386271844918677409238096997808163290200241922906198692071815803183223923977645246964491763312594489631587526183182471419273200766405221159313704312461068396387382554034945293035884257275006533397249613168851200537875382979023332320555247813255434364384233834196670771128488813954104099171254505969678924816032811977913240546320487122783836076860582369825412101763039849426639023339892406911810366234000265475870278697454625877462249069180975521530070620706165758720437370120358238067197784771353354175502197381224107544306034255057729193784429288323634686117483270117384307589516215300128969519876343772777910887861119249310159649631909797237271556960515892142736184686584080068814355850126787399374198226522771042435267815846707927262094021736256188663260842941506863151746011839505784114064463784473565584718317820450468608926911029162078424668520662655114478322007257718578819055870538505402050267633266114047571995165116826327569011504189777610864444510445111753143513247547937682841530145368903498862239879529116454778661816158735750436817699761005312829054774355455104755691559993307942256998029112617451286494037265636558954098915960635760589835110119433336054119438018483505847479285811556656748165799202639010047290930380720638496746194915857226182535875474616031844198930004873928125510924204601880014294055777241854351180253102516629109593275395731306732628030268090923834710716148007538782586337912091432275369376824114372553563329361514994290595976206305939702445926299125802712533106125927034188486759414076070541682480866930832575715526732407398745352860553444144960206716758934276311371697695224988786751463940459776542795946706227865052232207391843751331105942706732436153637815882384692811694600439089895535843565061934729276802945714534171132348698289484583165326714765463094557106845621412214940489128062910192004338416673517608764341086921804961735949612942975145097190166684930171258432355419660418529048290919381858769902469239506581171758344179384618716440996730078478332263891311484257458822569941926232822752295117154514985552524843770036857947343037373112596770483896008416522511570162529039893451175224485863504666992552195805609284557100446609047618946317869645165295374813842201028181501025170333897652218190819342253606703115162013085099004710479975590654016767816411817830018695184556055570415832638351619159734300623350148932596153073711966186474198668898234928970890686269357657357463675987198944726725358582241510801492077464531815671704850030791504322642406492515349312780716034602867794028215474896805438865635379216758486074613990868370087257320474487362399374547152574066134378396677579634368478580264151944313189224549457408165078002640594297579465942913788370188706883487918695789671397095199994307536100494936421409091284996912923085200481230878742668580417526872931386674260245146366017958740234654514930575419263183678797022563258858165616184846117167800109087609446354375093891477071455644870260242708533549471539438199282976806225535618674064753720550726613337884960077293653696429017449317778410711429778371868960607844466633562292863413500421976322393242542931344629294422280043054597487686948550226540889337075207557606969882055935459054887810348229096933498614011613502921580286813241555587462520136418228849139857719892170795643779156064497463292120299764184086938473428389619501867691382621291864863888879455138737457620037380559787969264097230939813659872098095324161479848299228071352363891314909291014647038841042375594874620989184698198003923839489289839395110771691459291932327659600295763131218678225872808632182880783021587202707188014426515800563098361995558888823202932166178760792222911643097860042373622943126221190125238881040184514144974700204208791891487779907687916344068912659809987231823923757529609813673593775238194700051999026152489325261603266790654555673507963633560541723669402707185199785119297738045405468810269270616364723549660108064227195146001520200400344405854023480299090815625270863164407455695830189101567660794654754547225864776211027308877366670815101026413821397164102917837645754523800897129390818628750730201530657002073203942068152757077490667116283806614143767148339097155359782621869847729212135975354375382823241888059053382415746326359799384306910932446880751262127566181664966447150505410490520861186631049109152856171442464337547514174968774826817035768875692176557383475241787666440705245857133706546242920212368488179212689584266120341211093929100097216140778624698051550753968071278321666047704400942286439647604589616393692203299545623502539841390106273096657228704562744991252090326974175407282307920104694620640039963307258281379498621156541537069211961350534676901290219327409152965870963564566643829158745936531325464993638161496836129180988571345528751778429056869050022381599510200816264383340289247757556039049524589217161719801993671334435449765902926799969755508121394141892867173571531801510888256301447404908538680305214403044231636036681832867115726186746837981519162083263276508771360154306654795773917480002491927938349625667829742162935103513371318872148244921290548922198460065396314157296265443668249262800297933451144518332800865138361265627334305934232039403952478388491680948669043062282883710796926063396559772161033030222377961209606513577692531990296397586674290384779211572152435112993990470720708959312590548072041193739308267368814897250851176804714542460752868414101489765569898039213983304316427600714502333685490410125904321206897715976060943837204006378145825364242368254949733850030608453949260200588919964056070683501212455233257522336054679929172732330485737113831871294359098370378175877002345703427833011735514235006392319037912448762663139643861131860132618662819194042281981458705174338305720269856752771782697913454797952642876383239873012660560622270600288394883983395063075785548638139429435980310957729011324361225735257462602745249350827248864730353434983897876420126841968845046395062429373581073762637908034123854153434990191447538426348221154671183254793308332426235737324980297066961317929312994456574007806074733021036428316839530072143657311503267949381126498045554331399047145970504851662241025337007267378475556843746806550588281195852630872799863809803271920501428333654583377093632804750138540791304866414118225597504141383365091507036300363970650320757358449106144306969987742019503574178254053665521777056640412638786729185204584826549390670964464095711219888553039908071582611920557934207109692501826380327954691766966718595953751727395531426345981858943347749528859418624193998450601675438421252555697869712523249427601013761359910223132842891191533905051048236782786606905114219223795699453958662796571259291813360078010707567983834655204935309816304173209067425486625363775690503607154422941230326990395019175814473283168058062846594411459584055788833350972832610872665148442691984786361960968416214190304046997142268586488430053274221291691797747850419774666241959845667219552325785880251579479390852431572496769090034676911831494003885942194837923016341333299210239616463158615235312256620733874561389445508341675991218048525622113630136142625594969209869478076621465455392023285007142713997935423494751023037961237945680798930646182220274288466067328497088254011011863980973871738427379496476758143649172457287363320998020096108802596573419961022298942102545120182030122355244734057907952755104822007743077358244497730137171403510790627045041402030012620990795000271010811325969285627311801053316466547442880052985472238481027756761874822212169915947612026885927817115789481695193824454548195344104153506429770664008115543437988530015822002132177407078722378904348937098899125714611113974468402018245004981980702656209434695304337614531609040219829003689705800241838786508643664899962300846878117186248643893460495513548465048271357345333630046631098211286499231946569409284841562868276037613051217019771664386431512160975796472545402925453830092066479417547448676001562866366438108765605169985203465142838588561852232202336270471430218285166891714407475015329138986806114813255370712078392202649981724429626686334723799865687007732785635623744295490486532821564698078092942772166991450269573560036981408483245559431809311592457850187734065080468717846988520012959836755618913630370076427807457387099831307628643441516990054277021965605652731871067988848803630763510353075548716652553414232147472543555713588803726019201443221794222756256691575291100061871846484558085470356327808548795995842158912073683149842022228249019474885076982622363852533503613491930124924318456080555216925913912095786223418563726089853981931539333804729315646402773305200339844183771743684432476547367749862476076429255183747083819720893715123681122346356878358903179803972528168496387232124001070368117581151754357990883846805560813100729950706072352314558609722531988911118977541433906849691303359068301595587646796680614394270736387436282567758078295069481588491856982462118825244412077282211543301993589346134465814345640011943114515203655858270543463522899158936397099420959907150135589573124693748447514054157997278920512015511041557079818540535310490527174110671288067947596136932219193401659863363509372351442419085236574397458439643487876012231279823135050980364937272644954969956995442325979568484134838539445973569662780491422783938978745453864592212406631946738258889834923707973200131823456838075248343924937518810555381062549640254540703388042801421034883658258225375172844000523585685607933362832893616063179410525980074924919858694616401489295087953012424677550341382583917402989923984169352794184098973340468364694230435011808024138508725626902897921707594991532878657013192013123811286492218785257382497656479350499335623532271694054088626821336709652656616242910628152721365872644084990455147267483653789606285610918307733402438332371012539190555887465047703632224172270320136421877029266672260178540584099450069881168790165402428241231346073793611557017312940190056575611616449543477159603561939484439434255713642728300992890347603848671522554398493177972482930842622947178517579708631759790656574204976771421438934242610972426071114517504938342214269577499799935130317026528140262696832067622051493076908274380120979426301262722476684814522587729921568364350280848527207063581895374624961835137732978506131528409490286513395919721331562461969702307137704533078795650442451287971013672064486671780993949226853427339190250279892246212663018481300655700807828259839217042091403942283514817494371202490723038989583012293804282236236512682064894465090478903035970914884959353865329697427193553879728708571508264051577821707007052640063174805101914611343252320843801144192569694687506244468104665163964522283591371303491935489857662042601629278005161190129545485535082585561162762082724835034279503180881140959376655542491436079482196512123115961375118262286097334546772269155918872319737486540229275127220750881620632687508893041609081263127929548668323805836240437434632693024690300614057820625190110098095253372505524484504390625093604299538737582662270495218730950783155825541939293779008537994134985187674906073373104870539808412797383207540316602582995015160119681932629673147131215929894282285147135169771059898989080995156921569300872011582606679593012887665757923949379117618589933626421575999392245073872744754336300051459468410948317645215510947108465882286055842663627956431189242557100361543587199190502960787148665422590214458797270821889202041287153335156601765522985961335771327495719164506524235436907604469053622612817284424453862138415737558328829541692503017030253931489476743725655338094137873863826375789529136015978556912025849245066662133904540947538083211441869110747792123936615138671520661677985089534107599602763533094501704852681568195875626146750696423196253502379514454656281781774240944354771694282203628555560806380005647653096629271746286993350675038347841420686561462756347731631966938605016929097409971865325925179275512799268572637446942769419584204558707822674462726169891165849747897694816699653131873780494225185323682574136148263695509372614580092986627312829644499367151920971266223755485170239011080269290058176568887214979453243767827092849892839496114627981454623165457254630229627684677212280026190974674089325545441536405541908851758955094211424257689346074805476716321749001875791705519396535107625639798680365065851504133349245897985664626400124094910821162934459492399595025290668139721554907761527589477888800332739907599220294596076970685144198508738932677850382755000575843560117960239001380284075805937079084790389403124490424556069767336330235410002294964445101286932357089296113591570458508268977091670902341254468592824189713288770315602820656549417593217943039058116637723407942478253688656799920905226667086073637895887497898335554811221403209105240308658781928137890712506583365571568773844795480288415145101392091290609368176308416769197845782718892975313880444202086755797475342443798437873470301146424641572473051494288660371016782209371951324518409264987527184303101122414711298246634514528279397190790040043207741784500560219478548875062700656565953145074992822458391858500970293717462732006456072590181255864170573225293307158685717896673691384718771561176889135813075204463640031512400838229459329569521677266632838751842020978298642067382258379894311104986796277453746780638054000312262484665250210096632108902928624359923651395194971120929853828243826885482397955359126148560692164315007125213607189442720552320485724777600979303624033891663406328417669307789838644953019446851245603007302418680961321589158243638625282879525561367002554828544446900027172555491576703628771589308732724429854399147612981230566584108371713682111418810610576267383812618699222951777883546675957931040674187174066257798273496559770330185295840863933372211093849354728311014307701701795095121113064380634799704024937406990141421928700192347205969447572962443919499212010854567684335327596979309776692572019867853226384881284181688451114274459031613492351057369998485985121676469644686843896352227644161018807058320885758822114016999313186464918039184726616036349275472292795815925718880517600034863795714095422953247419055503544779519244105379067936808680858616411006635978632873786906564397664699628234464087849478501825569890840668111478876097879347740965488256016309378128509853986111365934143395801959113834420136806303321202678463392888534678222968820594931565420679839592819891313780290171327594955714688310934447379834845052107038530071412829111325627909506498582774628102347740104488254878649011901674167076981200404816363066323731370633217552339850538622746076521201047482234934685405798459149832394116001392200059151885950508374017656442155994409712377162498636706473822285716499515612236397677285129894443410554984881543208432360603763643000293612579828307718339702971822752873192240467102347272632772555942268433632994771976453889523118027340571677443177040768156998414232309323709784803910028594112888094915739617080593583797098994122870852433241532899761222083486474369458105138516652633472353680980709620635504953438411777585305317764387008301702383898980538904122011622899307249792661182286749762025854874632046071373170390492035836710708694265298104230598819110581278078010968819476719638833026430009221962908716277264293530878388936412009136277549370845644913022066434878252509853158222684820743663231739553537990540312050632910138562887726784824767370452685799720026639685000025178297211698675032341756289224890355797111299054133329563219417807366276192175587984638945406178548351270916869861699213802917750166028807279168891289693376213749972891798150391817003267013584656588701601599485834478489737546582567973398122132765157909319167541471550068951566921976154855376843141023268706086564653059770165288252505567766678268483834381733567079520005322441194813584071148117638527005148161365702787871738367904355868332396411451987888844788509290583423460373556277977433060657908832360389243899109019277588930418069504194348931168636487660586980148356300158388643153798542741820513021296942850441448337362411686372156781824085247545563523230638749927546704639418450984225745272534668739435310449560785610316597334069325895302773859773896207611653868894221270941853035001546335944883873301377565519036559249860117890897969561973839528136119902810334630047652901886995498889652201270476758260768501362811004382522305577846220990136958469859556420909048391980354676811412726973846790529123916919382367293768391916638493008155657951531712260788594097044337694895753669968826466500037256999343173266769394234467629739264406930315729561683556243052600682990004447760941948927066710231766833572705543113780774355638766963551387473493728675871323269208509681547479355355375664242018450259594054830928885080989155504632987472491877263576044216290665043369587771348681671483686469476927634735887513753353528465506979298975858376436119514919497601845161795914610405549662060766502658682158710427398992095685980669625781971513877264898871345557362443114561667720322198300986137013841967013189982073365028209932362576125487931358022515957529594932610123433445109743255958143468476711380869322591253208480879887979933113054779632727460648882280102454317885538282027734334538301262006055759302723463175232331501948613081416391915764600752944159575540659819294112708766789795452349697741081010708226603735337099339304147231522079993527561999060125284381201339243499462203973014106975899313722169288302206179151435875959338592082377622950615147597690105179428645422144848760590352101068550463042719972275216684911934649982675473510064134160858498278995327205028467979604981333751930277839247939811925022298237671618715620788938247786370701393275333651557349636392261666786574902811265460851869503349040089306648366273935016524229200770930636263211330361816858499378120038074575146524648288405279341442171078278872041307217406342694814675836279557453366170532337505005833806592774347843695871674727203904345304778867633608922127171646816938561675286388909528918995168255564210387232179981572672881698121801805397667998488456887419933062930750622923652532095916681038134540975871024128717479429907466743823238921212219143194225134499019034543286082051750912023839803247922198345784469088736345386582724190056214143872951061555111856251676822907834065211069779157185940288081453590710855901968089583151617671150429029164477584687156852355099144085847764482335055356482777886932108622212822739655796459539915837205134054620980093491175664863804906715397917454756850505065591024602026765878286569846248092748211228677787495337170986534680985340874637970352349813688944331790317332746912507937667309922460144228115333991740584851271802200360710897947173410541127217412668018841436715022215907109801777319348623683974495855121728670220449161278653069708757536148254191058893589534789838999398296444369748709279048942908243901207928974818156724780373607875468611177752024368332948285061023070466018765896715570058964731167733386469351849580193449898186910293070118471541295681098800119857646107211787668370350445055682068922398785892668108101020949726501138811037055204858792687192881028725362526795346610453616086074757402174688385613215934756135595881703069226463277799272272418029835662039066848618847193582120116077254714012503698065913304868542753180699618180998828584387277948524424206182893554658261366621256605410927203497187448166967115681390598545380272656145179277274332680955248444100977441730138992059756537792412170721124031500020918692616617321287885094505713414105949852439177971354272769432988786862703459764202730695074444099986882909544393818535340056069545669513666222326683035756269912675449072135339889771198180978096080779532950984908082142216624995768961360938145761704911945660831016057406570689264829229711304560706837930722695102190324461246439753064967666320698928104204397812234463294029001503561798352996518994583306737434362793476254720104787600958430294894557346316726279816723009599084327480063525596446626789247594675743580669615213913588435601818311579239654506428584358199431793863106800489521587494632216304344590615257385000970408225459706723314570683237053073868784165919369822606759092199962692105257348970462920602458331659133448328425475836768831200425161996701591759222529077475283040371788137646795129380286524280850502733632591613708022705235689440550339281780057190836027403810377155954473433630917597541710671316820069732237066460040672009566437117055852537871823829958803786935671129971424677763791277873241370747725176693006524447548669173780878525824053210061974648809098852413385760331828618576321165089220223893844990376230786221386447856430369188916124902346471771408315071526309143467838365044308300367376072594797652889050741477282473475050365489895651647953703621379296822212522106240024588174061117939617873475703450597179834966639777686227887644406483282406778183792564336701892976998198472696645620191799048879872297171000250431235945193631279666296061474276380112376988369183367909081089022382580253354216672621999962979699178475980884989810768928410649600461776987449686607511153533602925365098013971370753028068676050812321802002363971958346176655591832018225025857615160757954900483330578105823382317842368856246138022653633303064090363462633410113421531169059132126813531808837586303659170479297842777795383882519004867261770881451899864389028104700828174698046108302499685876371155572807458292614014267679324219405471096538797875260008757361026158595579152648654220438421559542522308964847497157987031430301094489171895670303949779443175668531277304372486214196954075673295985495994902039393903263896630212080150955727213262896743100288965456714527895462968535059117306057038078666649446080288768966469073428846980554596015078531811294837128947923532825686484663752968610671586283673780100027806520954003096389707821272342300181613340928069294087085241236268909578727946235663602958019674853133037736358849857212196796249045069539778589590831088952266345119937011934093343881898895419479573182501481280404050863437391368770609476119229973168884389028315183188131007850203598048847968818299610351626554190133990067811648411706829234941232667566431938556649143135233113484940551080564782384367556041859521077332585630343596547714189095765453108286249240341706843004710010025622413436264408187929862092014846369228065962991552842940902471495730997907598308480714399554582949663951681496687212739646900701756992141619243013359397844810308684911085252550699933451735902931594096794579490048349675533896865484630653623571049334039976349409266171596825144753929732646686368935620873601065999807036710214153679635512522949592707235335612318248420240634661399519724518999556069322262751277242706993716647367284744751128255738717268934970742298031949382248531684717990651833257012636523852075652070994561325446565025505092933742715799683618663072099185003006646737238514771757095673065152806403588145568965883477805248929008893773051300485125871970478773194582652175245635574725478558703578057122052795291427681224203153170616233739650897552225120971427340192572716498459965375067602698770939497572448060816031249338023965412120680700735956120735640742886558550213610614117274277053945924240841414869731378082659076515966775127540858344152952185867206629987024078585863101386979113419192128385556085370882469669939883306807485055876013817799463991010857706752974037834683826481116731577454316814411956586793360597556036756171407271809996980769443234160107739053088846227921262832218592656123635660245365345796485771917514559496630112786671063299844909191113900427823600667834426755223802542818580697993592275705238875817206242148569952932757370169576536082473924175222654681022504701569625059899901636722742383075531509498174601575970701114901315352367002393376056576221102383318256762435152359988960751641109069163580825876484046201808028982278960369371118587522222979551049683541584065377891291702736335698519696038139367281983124652105243400880381296439685749057262636593528395458879466516645227977605927080549144733147456037530301246913729205598285730023365111437204935199883281686415046408087522403550372452872618659658728428812702483979151967634600146260717513906184631195484989008274338896767959085008129034498251613195752302912894142302585318263260100607380155847275488610840832769586531464849548731446758764477054560245864404140224570144388552303853016891059502237937967249103782223043585740984943509582017805364726350053428693846710720383450073047213801768098580210537457843655716274084473253163732354505993909452716690529818527673428200347826192238899227471465642785719200778041750391347070349237934022082089809800589208495619727671698604876619539084191545907262285415373636286831554219807989232468581427948684441647918384890828037123180343121743201761845732710034277512686230714384712675955009335025486730941493406106044716755501215500073136957226965998394760047209240428087388084948765115731130562980290381962025098936549522977670708675741187099672181202728455295423046152869870846230083954458772180555639163746753879348617652707832989937220620030651176118791459189443877354314450931473526403078862680769751907750597295719531287252531632775202235152714368703014569735778847050775262325036833019586193561531592434161905635068680074574151603310056281900191465049440924943326346324505009799423029705697266438031698332057353093673974770480032017576931129508756330250603692262668312715874547018537774285654237747596083577738451532379022971458282895454786553123659348740519618439325136858882847385228937876372582971374788763388231059865564262688417982127918529121212719666255375298016721694317739107932454200898459449471753816973019768606893621209000401976557600445818936685721342956172840973446745988490414094091731127934468161010825407668555568398835188649566628708120340305786316827015006046664094406787164639553673413975914497546135293280348189292302380411709067573181061594163980780967066680416365064651246494832893095563639541764483189846180928022894429244845405344132330292995901761150741547656083817821491063254864574832117041300573277751148299501753192814888325170347413152365379704422455579481948765867854996891447385171983534944970352586385428376539898871291655217663135456022629014375031119028847576351811199474455980886184785752492423658254068890260575248252166378808438594134208152576555407139616509306933566457729397497195002518433653905982146038843471993114527095553350975902890631510991558103788429796304847986275363100279065967313104573116889756514472761886923035929966091239677726266141965156353580738409082015665024721365900519904610802685851749561051876014865043726976734540966375727642622643319898285776461373439872739021949584435843100006263126787703462543722295557173785887007051666934738642411755774578903122266451138995519848649652115977966679792259452365386337858769369844081237799830264614187058566193435228486624880799789991174610598683917727141091661097471661011774231487040509612750644890807051698619414774921133913265249711270836192279190449689753220560696796113987224749505425529102543956514282606252019790415983179846076084505268925203954231696613665800626518589757186779515894995733065696889204137702359899630348157349652144709112742510061153349103558782274036998930511995139914636530182994568058365345708816776712650754341695165766862554395017397630846481292831970105793896766443795990401609366873740981692436637006221496535810926900166610784329033199852645039039323073246111715094816137741081956702814647454306186465167791863450021698692131836764622063734486971149259840477757468566907460257311140144924926849144300225889894789888470451111030945356290861657097943829692535439743002644448418282351800850909568660228163673880386206113636788158695141247774017097294130922454394588527013609187078395882520362516332631922973447671272592709157452929241354960953442302231328095678626099797601007247890748667272357253547527158930635869885816263801128619857408557919534528882496152960187933594299663428966029128730383485539043912317569194066775161360110498513969694991823177542570601588669723549353764535769878416935930055564247345064184346927456913234705345862653462649906933827321275739098632034652219176854456455126137943699995687798478887569784795736894267313716716061256970035891869379126378664654012825708917403087317722530791784180430218799326963485158783020224790711101236865885153007163723252717918020379987804423876696242170597067328229661444976856327844806958829426060656879579835692011776636042695917478121792357422100433872484530962844483267811262759236369279609775779946328255473373683114254310261215766275095236027339137241660674117972782357901809825745511815715427905463222376523148180864362666947918411271653773652664663883856268348038768629901476657883783396220737279180188156456599502652480603806752885910868596704745701683369608173483665257055289448172633495331640917942939886245996595179952853861155440608516519280282821976666227157564242192864318778149074376260492879875745887550839999952343681018175414130227536591215596982877045416765031401779602680086066605511661537047852664210297560291002765115835185429726943700619301753177003208312414434713686145937646005975309486778280656265626221892890034729961642926797977594207801807330086820940488550177870811397768949279372152943564925068646711617396895143645437528502229506964403534620061563651122739746993746610104566766009875699630976322140385709730327398553177448740988275331868159635014468500719849360440213931134074472417013127242700350289960587351594723245096663174700054564958419887188924757341554203311655995955048302033935047908435480441693165665833099097512001236519072960891451080350054661397707278189130895727224664363807829309610204529895081614196260033472338696520863565898220851617465379038310433648182084019726233962450326678454994476789005138209529919909706389738206953108372404034492598764459949759970852238323667740499814362869488892364701130637706560799870967186873496895775821947244375184140394114564355101854313397386591884734302285345582260028674738007325085449857507100232181267333773244797007288224709008750628068538624252290470944422173517931859268883041540660090226395224182915406100178025989724712055669904831288977919278571766478339194862252137262967207916778826827225371769935542910652850247575977613330032684267565109299970137409913331800894493983134858114744095450228686820854708682500334815508616593139317016607706256950118830309983525544457328490576578376306772542639731083599757952388713991346094252779975510447958217014157082050574503667302149688963575376548520717664475621325165982087039096956427302552354980106594420624489436129898515616277140143208949269535200447613761243953529665408563616566350417636280375912570233300489353088058983089677921375357431568557582789321214649358721783624597204944269064853870920268081860511711606985967073475272694274810135480502888262619619116438500285677720941864191107279583659838243989035305774971954748962106592764955710782525604975838626123944353400428609191770473872043246143704313596224754323893996518259649649409033032245957557211944779967506046697156160027777306898671170495907676486173914916248910853443854645010243016710641523620162012335544181326729233577161011630530053586138306511434401976316165773682206396112891359822081136390067794444582152055357020537774917698140866324638404770559330223905589253391714418563378093812551354839525579958603472387893217335057936403211440414424387175250731329293515813613569078336345099206517015456703424480549884242830632769797230565874187358816815396895372604533931445487154618969651988068626330097611940962614398475717355852979425131013762770737032097369418600531403901792847261944996004170972395120898576019083732075720143334171245569416754820329742646584828231162826645647411966846308755041298720680409794103954201176273021210321886019234723947126488010243227375051026744687120069759572332626652014686670032960989964041716019178126037126216630511930800472963305750209694371124333956970537593981551307993137054421323242226176798941536388672352825183025544109706672780828230055846622538413187157520218982636420121650426477699858170958402650484629642666236477861299699437368007611312778849729547171618023474264038416348931720754851554769154792761184285577442300303746636281144895699385010474843379138061152845307842967030348460490458129202500339841446324416949508374253023467659778155687782541224221730352633647657493475049110533792746775713745123973176645588159590393511797146332677491558064602669955169702567342264879769310600206320205338206079095232674936402495640524859788162523260787989905402346444428029567426509503115739522630683825525677114545642075977687294040943973525099933186562233745276866559097811934808348482383702550503228584066031772400003916479235077493668479108285563900660912413311897702139517684642529061287800712502468228607752383109909817891175640498833557351715490195139487019206250243882889544420452418978652546140511662493253165756118064278397439961692941169882567468821605944362407696801156314999566418755356913048422377833486100044585384326803277529272071179660797927843403534953509849818290458583032545248248416037107809498046959829212988766666172728423946764370984557026390819462890306877291684558442366969746110500573316894630445079374757897493242976289035094814170194471906619914219288388620201974661080650437563836875615994022951206319192720089970942874295473134654107649863345381869795130999019607140419730577529411870768003345349972749548849380250564252257055916191244560799814544059439153410721817576193736985907804039984923398415828384219063507652739416866701970800394194622085489352920166472958221963652192762172682085176253332344843641440280891583605424846807325693376830520019083772511480304278471598254249058713252190136105273348827236329937581340603549765535637633397316924772360474580376107045096726984573663224761414467050856703999863282883744542189366690527399082676513554451844172578844159277231481117468424710965872006599122638792009140196558670517949351816633820840030152018540444480772083089401694326876208160839795916219959052462859216927962213150070791753170249507133641226326170294955733830759663443575975066877766439151572182489109957906745458528150180273693508171869140227314197312352892555975326529400225833720621648698628119287154197604783142425285909939680872095770516355949355845663124882686299896588968247944077237902210099556812223749796858125209689033369391381383461908647143120961237948298356415783314850978541854073778888624397199188293124729362391724492439731588501957244267287788075694165376730625127822069852540047704248834785754362432754692802160729912781992364042565701664620328420807782924185936924138077880525900796624032878848978045587807713592249184238410549109505381009941275565933494276094432852846691093615401644279233184796753094454217559756517509951135982039030680545745058728192055901644289441593300066174881470859458094491019797709661729769601785015777019958944413708857752358623002645251476045623210075576145260377420166547016430916387929813195307577355818010867041211110549587028988350905860181827226867040860793733380526789849312974487637060063993949494686976581579175236451333114742648738680195552215237045900447242328801568991455370049026718626371306610793449615418691698905098118097189022444199283788841935748089678743744092867686730986544161905752276319824823430788118551322692862472996903278074133522570493749761226952701332321579821454737100463029552378717698025761333760525038901432582733948877734940223635052527013444305305286061691341287925438952303389796021314935670517383951339850715485427666718346830731124590296277515654228476025430390012401429577273326317860423691486950701065533271433227425073773303457919252982755732643828458865894816963641861475758852794926828175006917652494219476269577676529385444253554886003894947303948006425855094539742700261236389648988341447248686952545026896243884418497093073767519154595076252967817896017908996535110776855768907933204295420125170546656845733789375253665429924471670848233822037671811018038405599638810164103433257142039909114682696312560984754726072398353815264050968547970385386870153694686042203500277711226238949974930890811891934092819545681020930700266560007464729971093866713869268525280419079490344243473434049729438012671695895304367991611567672798010126242947245929049527209584347227480600062478726815575435574520192169334640094319307783761371312796537879357359594480085130307122703833683200508108426377440591859848112347815594621843732907423185957246018459664073003369814841745912520385963633662800845681480451306983284104230067646306480199052708249892960088278843192875240762452468652944281284493168749308075485718787903507536299159061938490299644924445637039390092927790944704581583924705557150607338366734931652553846161677623877371107556557059670643588600956633528041542615189859838510268549259171680449254426338630619304033375204866380595430367204966162187523858782614725884070053964658645448057470502835114184541970138547180441766197930035343587882260595815532888138361623605614748363794839182349370494492262936244784883397803072740360655691257840183403049152640588218539934228863485729627649015233825446271877253296176118487133667832695471836781234495966040758406030512634863682678283462062358036015590981358269346760034939076223232059734749294783327259383440544937756347149391485853965997961280581427539960097466923870343804016906523411495454678357241050437528098033565253112217020102517072255211726286337290583707253096388001289053358662299062355015440873984863834233610507930671599868457990473050597133617061095299186786070505346364168232291401145929094992857461465268216860954825107624532071913653110980031079964161329679099302687041675924947063631243589370834542161608190623799134847839799243266235014573284549297982459179224968292416155778303503536996738636526119241232852470031009052984246605095574396872693348716299806823579788609489057395725092135317565809761999939862459426271179451083376292291991360341328857880259435530445454744527712659052195439411186800597631709450406732193378582899858827985900689739463422687140551060321946630706636614617183427141664742260421188585240610283412021656271229064009300980587948662092964883682515745569775410205343947820761479267979240065288343737977685303006726931041055541583908657014743518932389278631779587973486872268683954478363091953495822656858949618525684878861532537309923834391218647131031304662748384917763189743905276165688718194403565967100591535358256648615587842742512049675168762396447672117065014172663954998266844634918105557249637666584191259124201183453060505101567361227934006666052425929105209019194260935678517217440748755751759420612236240870686171555421724885574894798687718304492701808372576652776400373129616119921634659619045120344509439298102640511679532419922143093246596552483980164712788251033709030360241498725256407529401094372674045962064515573900504389840778510992810079295154777408455153274819321363716792696115671768608832019626514366192057825962651397174092962851674469867958364947474598157858912341724086957586234498539825262360820216150832354753044566916108852460936705956520741855444924328284599162018433258710434546472605758044240914617684909420557096290730377309450840878182165829924005569032623427680342302415549519263074464956378214017827893615997668594855956829211277492642992936659445363503288531178841721128334000034475708104448834828764959995222021907980918049583952745471721201762957517275758421299662609918638801147704417726040506918068743937300726696886294839486538593809027880512023039823834301052120609128277714465229649099357934403934583672793972160305724103168634934696536078336583427094925078273623059757315352031095129043563741397379961548537610561401538629727656466247622289333073649541583288896118163090274879345012332769308280137988355669449199437540453253096367529018744668846031151691489876254118662155537290723250898708861360861895504969562187379929685778987436888242237323936126642992717618559516304220828427894010572862419633792035472179638651972890142789394801961817847607169970685094429158813110997694667651176354192365997249048746900199607372879698599344553936868575599646730711330269378688702797181802671506863236537722772466656048145401949695613356799870305308673302603672975752672000252408971359456562914912048203179077278214892478444166400244005018321033706462088734129128681265040717737854387344109491825671283901975001614524705246677406717887685135271824158708971774505279530929128698375053464945971740106385585612717885266168974427971601766172539580632461127049946985377920980368380251344003271427188667705281851073114968241228634547765563113464150055946866831797582990173999405937548672503719146715966753506910130047700248026991774193289915318299801971701762981997204656645425304034968829513943880011771055080910887514139358018227405002909096494720908818174562896860447803182693733675949084314364740830247739081504644513669942540274851035905327975982041533501722615457042035612694850517016669070243521387199542406412604953279107623425311034421689556584946879667295664956477546789661789332822579451807615892871438172937729384295650770948580423824502700641939171606756705059361673354427571949055757110372469405554845551094017896061016629158376220023858489554146955727729589282313714295735449318265660548190217441002223477141464969070813915139279255062923940096077442924563820592064955478508695975896726959164254989815509053275018865308912032385770307362228680015145145595866062716500281714984226403349746533522647721373259958630256301814473939754594166668384287248030051893727274927977369347226849769600850735082231667697395845386577960689058296423817049084272213599846107209921219974943951444738524441112016017801145819274269157606709230612367855474749600831321960317763485263046624455839364342929180074072868700915636394771843996230517242063235998567078764803448898283607349920419956923794909881197041779644426784899502218081818122793144486864369914714554005134532075277283726240467886550868317426380665786099287422048248051909945739706157834757162670376272919431110201161079250636353745593394036855040502274770819541179214066900846963908749061969830907815383320261347349400859986430851930993850148087123293593825545981664786978535422692688120919319190247606733355718706319104884200805557236957950005893067623065099564174944865229606411261055148570610498540102516505660666886793758813284255830068354483302337678705145250806875159991001081388283988140406367349474564297643621561717015122594035927613933698233673194374972791682831237130172605062726818590112504827180628971302216397333931823438395785894199085865597946819562554181342919890191361906585832911649378323582154799282068286426272698935344291622662077727846178920151430951198977555261809987164268133005860301710485614487325173341361223984072586550044033042244526921226989237875779095996721542104754861143064026337637677241766476372379900321201939371288767286177178058459622088587216970441327033550587746801023426717550286917212339504125373092945358142048210470568315243999626888518139047884858078051795601312836106541285155155652645421012544258476547190162071632216266954033601079085248960072485484261928467106588772352721429520628965785624699818916754565305170777596471100494657810159648759908133878152168301939540092840356657312149339765455429800593782722559431961149545716028179295398028310617007231952328317917742109994029698748064618012683030589753225510846837119104599556394023672965411680919109518222193102076724788943105946633481908498314454276138421325567633000737107237766366570197661817498600778413247856187584472616392053894702261205529622876637802209274205993102147357128563056694633052251859087476232147354500726735257474217368353377163961750317518735962763977499532577815857971156175849529231815242010567538536017228558592303399465025445965859976967380682441160487182432586363801670949645298688533090125770333452239639081306524157386648099875105914716176866058116572335124894078442601993748665713325990536400773932000685679206317091127511444671360990843319458355359405232282293954089602219718726907347386272116596732943726396610761289041650075781307647459580921813453214652240075010446427020801508954650845386642736870589157209503150279531484696125392710813488992787377744502866449128126073136910928034763083787062094346910948735583984791927339890629562085931605282905378914647722294503689380367532184317772385476043805072162652355080746703518456388343290964376522630090414567133460393246475510098386277019272985776274725161681430024991031543154231395382868543037856298006767522966638507855577951606583195875727245389378037148235895968598296140998639276332757670414615479952811558773214466608153704721418741526574608288879335216359705178303851371438938879450388754691003687498188453396822732051080150735620924650504334592571314699197698069893842330501043314038516662802009154573821591077048875751500051632364755693259097034898165116238842716438392691064623040809278038902677258509165582395881509886121574399244776446442344549246153952819592963393144261046379221540937470053144810422979422193832169233181455918128585279446838006620652007908828582171882253837156151160947713172399732058731451322760115628328567523428471275854177444274159658142410493899664912785884032774467464347544192056741996382538703571545960030947883342893635251142251043175572645010588492568300590387383894448777677851853450717836520970890172485596789527291884181787690432445182018424446697795840754648558561752872367917574265374333428027171874904267401751818638413185981733325695778459450942470449508741373891570778718595976723464272515970539492670254797449229436815692560345967368396603687919541726333300873947639689734776852124248486203730767282023124126983670915332638837627880262789871435091848043166814997104174769163206377182445035782283976957892294610429033698796905849862087123172948626332997042987891339141822763197419582780101102688585310134128097729340910490700828980954244983369776290569446456267310913735173140580718364696791074476539754733117094838583512222117889278795924986994425300869273356088792199537436315120470371067092531310640190132445910999430514309140237262024376939586563838556211684235970972476617661530915972730906181741250210243832421971884374104569218811598555525656059869129605998792995005128679540778827109344841447072760088394847165591816600168802141975884981871988800365776543615653590075674537863617705280688896216066880111735619824759481358443840703683157356331673547964063323679248851139845780107603681759613871935920150051851150716392445001746134499229933034556339196198890706251658987188254848040680267250135349807723633940497879024647206904050882109131968030672136936881442561416866752711755196303590642005437899148029926304956473885906975938148909118227282918973304241563197986127017320477111533800812929688686292947183897113716729616191230772218893813992342782620800886162866277814433254501227170953180459643317134049135507699140990655607563101585191314336934430896420089098379886020535421186672709116754483013289063572287060865561740761338168931748912118756077822767638271231440455275267149178273126900066944015648559474055789330873030392578608798563443121250515587420107416557934504100967959970483101853670733439909513329245210072567391589505406456793313011057514560392084594895749746048587940864429059139525828140557434288050078049512157347160332124353867681899506599430111052970855684138911116027081112259873479237279161645474789166858395289662307828394894795285300501180876837378620250588868781193445878437247291532692591751358763342979992279372555837262295155167931058392907381041598121013640736447950578592091632922323745908609793105438914707417917858276214163944574799034314739885369797811256587992977865965121820465828606915116856715517946218211652590969424347434105925944276259143266573400725135211587248792858593269366313032910563498974444357956519415245664622295074592574998089656225488127440967609930265116671678574081793048669295211734155431266632213012280338689074590298717157556610718942407057977192407579956534739604338111648758422047588512167601441903082759399356089448517005968026003816757933958909254698818477933847501777875673113471520920249532979298241057881888820957453498443378312644802488618206570762047564546262515216770001982182181641673750002986312177064952118124262851338593326747009205306579422688292986689551195600939965341022678039377581980578651777414110299351301254617671411441212655270986643081506079391663824226769551643238855165248574491589464960991939121243215046019196187635451094266386295340930260546023975639761019715747723120082828799172688554125609361786155950264918343197576791365088893754629430299979336475225446249395845988097239097322131949463465143982411752176339846959560387565688516710048818224883635254619037073511914513046621359976081519910051873422789936107879340991526404332502228469984108502897338367953487915363578208639088629161457418250150827004573909327679830548946518936908474949934993844989506296327244953233195739616063249081849955051555085368600209848274483498918461344107202252992183978420934759861826095394348069515018400198291694600436310198133421554939325440469809769830219001226669879478876041486654070270510826129205600377608142082339637938544083231984958744189136941862849211302174544877829444652170546682352437152712661628719197687581665599688435203011100217610413080650371108294515735154936081410969586640199303984186936439101379800536732556187494888264594620498008810120288685908722897794453145641946610384172182853487880739450644308845462982720572053535476127012761063077720183291999956473225139130255570975833119450715886821751253509581313791163857023556818744531384059320844037817443668855231009699370024487393772150673707963363367170769173946836854036057977065837681583185779092231607560975222861983057560005666613610532595993518560437064516307773132680884449943687512426964075218227781401838762687216671047611003562158296747812932960567980083864090491626006814010657067504219868928130229210627903524142919391910483840417033678813699959902458315385841437921861979015232599511465849455503575664835920262430482279965621063776708763370354302413635085739747539150383905648833446294743418252934568677724324667866851658070837751508887784222616414591658802301373112110088804988363250928934104074450586037846983972249577623982530607458321611705598810358303771166835925881172025663888320443507268243770894149823959570283248130953604864580608874683979513261717981430920386271822746543571706386787365868166161207373258028608348761569474162620612080771213579397294600408119552047160006138641085575876585079348030673098224768593190717570050938302163844206937785094866026927250358909902727747781076461711135457084527800429058806971465425661034008142378274518954438299312106048041388679839038753351075434159697160752314875692326866011471284671086421476587142106367411847519737451961582933273840139753971440022033720779775148936528951951781334173869836951511625368734879324693227281403649264960195093374911426939625992571702829527159243019203621919151372999985197543965144126029115063049095288542200728335683549045599478133544780084273612590191706851770655578353528524242993617210391632636347976744955248656443887470240028197803318035249718345473870268819808656564379725720936546047264924968510194041835059698536255352984749538118557110319115092780558479727201568001010761945469293816894043538737692400657210803071824670272802152332306565644780981554696377329646891074505254853911102629492709557731973748449198168213628406186982894083515754430296472328206730611162696687190659414165219154886412021143846728430325043936900290877606368235826475753977769389965376787217667704226311617378048496810153491178946770792663544719688903228204674164624631658904777763674348367606138533507644532272755350982533907865480849452016911846766478600628399772766959692410720721964398982730464199977641389772871023468979241035816310001579393049352498926958815493035192908567866374785607443683272773393948220460701353298487245324684081499621797921104094253127004320545062609610050701157975561849612815400123772017945531229132306309620278682804994133870352096174323381449527466477530095268438506348145971657999851855597856886296259520746048559377536860413740997308670250828917721037172848725451263526194965601354826502429271160740587090262178687399853904934887456117675431348929856702830139137388697988222019686519222213927262141820145257754635567901519682828813752084505744031692782717788537908608156702271349305656185835714397586835696377626003984782905425946215018950054668568509682357323022480311833934172145535369645969078116453279005881838507227182375322728505746893429256620725750455091908928896534817036235946679231136200027378295279844555363039710958855476662095559703900400058162143034351449881757163455639817056968179185600402132005787200569429693527687116148232456534790961614358931595018133731865857123228810807461671300665873672568001467751975245360702902398606198060669711267444533928939914651602374098371031073542719036438156698362642720609922239791907910477168202312986509976152548865631377707510433955715137133587598211592134519774829596020971920422758237816123442083584469569873035364733172877520390957454150410237520409756895253489454847011588999880876175764251525919178040863348500933753442522548403377108862826832499640143822785502717953497955598583197417776751011566186418016686655331156437815414670174185655915347988376297727329965130911227031808065197223775572716828278558497635203291684880822882270424003974781134506052297113127528281868477495744065642322297836884789135557735769217481572696835057293830517505794869466487026552573782817227724494698080217773218075321405387857117487162766365537440486111932947293230973389407344397584575935808633568117500689525080385498501658754425533134458312066292770823018562371434169748674717770593227952957272392113046583732037437618429193005102931839919621012625336863175381937936106403332683392122259605530229327395271824712079377851760095383745565847540656696288154411973748603576500384930129601478762434983688568870031388925395171932827880505494371091965465600924769613262492063346404793018914123241578798158697171349822907366407052852519245888327512995581565941675092250659714827503628901585470915508601943470567966024054132832060934087880555866312995470091289333908187822675124165330157649888421414271576721775532203698384912862207840011209946130112603449494913154967260408693597657744833946483339933332886856672755104049322750845817792626278606987201964136440335841930710615487735274708492002302768299961131375860111408444749834235334961892750241714128268065623012698819878649374096130442480843022279041429139354736279355119028504855988680896979229755757867842077245958652287647249642389729572218795459040765512422771363096547733286910278407993094734439483090604161030174895130407304620286267569370393920565811672640108427002133684971984619430866233678496974137899142655791517294473424824481143481151596256082339569977239342823498933738136609532896306674128228188771814843451867866881193738343248508683186319582475950026352519840305163642087246926731978363490599268439509392769528861381419453994595190294585476364498827393257055538553797845382607404756390953710891289312720807182706364544992048916913005836794499625131805264103840174261473683984183586979192179844117077991026463951616227651793872906609569663434386885608383349350903771842775402793444037415409645600903174078595944124917370088028453222280934335927086214625657709691553385801612725136457786916245073044138288427980184870358460775734071482658589135092410834135974387920219636402933492005510235656620529928974457742439408017732642343040348312975786119361936768495863430715896360173661706122166032285260554852001787340870754185239016630681110735291195085591928292948568122054447304256530368061559870825322905938399880046284264936144462936415473670345212300109795313063472336589076673355939108629700102280809537344871139482181312071473657613310586859698238584099266891068194288989474563353919690694488632698193414000105913938921447741085014254382332087242319806823022809801528246034651362306960449092803380486686099288326359683252035608917409989011246194755151945555527893955007277644180392922280983593116822306226278059401790959603729054739719207403685959000989909905888824379706454122562878005991070093742646600175524078643070607454162721208839332364056294137512861712536145067976742080866937973474898152979006639779403818750586838130304912185833785879721374892195149494261198942027061822253894188586419314897836821016128873540924947904546046452384076140436252957228542291714389807215587122711036256347256598063351454280742060885606384643184115147693114983046970256046651922231847480200245846658001046124843201095414580015599761773584207959521802974482069860301937163654407411168880605030278341051814947508403948137494717020014024242280037267697290222214895581332352059679749810475526923358714167262739756986814189155742826587156767650273481436561552530786761938712813872043941171663535721276683865521535077985339209407331200083286535954416057247458753600097419846284931917771067754770726305235471869685704381768920102127424055353026972798253143969506702622334400731548463276297717788721739117524415519726237525829385621418605698288484933488561276199748824821796388112911236111625987282731990019959194994698199640981470177993931346043907529038235236830524326683022780227324375631904129082584119328457607981605869928807537750297233042030146268864425989692735400983394024448918413434034961381209468651509854471527629977615618771377757480623410950104692649617486023717565454916404201567362863462659115265152666531713597042017031921310722066868439901055620346201160482721094899721354928083394227200429767109404205737446156532443150543159373242986528320168788974414208425430239408146033297652168024887987553225580974309366507124296193460568836213104145184088909939783596548046263383289986279646283845966369225688249875538608096955438327485726322251183690602701640474811881852487203700343088775084006689223396838458792153161027314935406763278107248551190468721785355153904183205117002002659819970678961375272526711118819777910829798037818332010696231105688755718997232595789870861053590652083336267197192176059968693542578601363006971566423871887874761852466978004939523422081766006725133328135939048829177151966293333486142690323419843199169512109768266953840259637971530783966489571325844368312284089338334313789972258616000669513739007852900083518756628394458101831674351961922475541802558314958026123014713363364101417599420042977581136329759972285304679758583965092879951396689934686651990622033235435213077146629387457625591250181086759698611795820088620538369441460794225274057274164918353721650064539454269331730012427758145585197746384812319048517688145035363528690201413972664966241463150760314086711018964696423178242618955475167572385676176843618986321337613992396660612581506710466909514796626415365317220535413309175618452165398289163944647535129705068578246588940789389701834276761417004526260132937476407637041216148928374542980874612629154773685200567909192081129697678323040763378055081346729362647443436009786181307440594887244706981296177555266062208151574707000833830212479295356815010411645794798849058107689080194968159236329523594390433979096417422753256312957244956217499561187303937052055354048218566235412273015971517747427810631705490315820677951053282058540382003559449792424779440127793588299765807219520089208768494054570920656282760485048099966432757403315356455785652189691431018720924370403351627099941441795490945079520574437184432562560216852038567108913009226804718146092382619600579332720670934441999077481135796790699282151393218616353070711134670381940844123066104964664813063949244336953946470062422387335534910180323882372041912079298595539472132317240572477709880245348146432010470297998710064689044390641625744533157338446671120548552036127434730997523632482975136558841914211695217022859210685453039801323643943740658632477056061124001036368124673817737452561093511532065018929494567326642680390191673387835505967322911050360263269896618355676980927630287996693540827657342369367595307367780907203416216478291648643572210315496870007237205157808283705850684448091534833099350605337010152079057206796269348533853280910757039811281242043862398613002544929254927147919434608688420682340546111237822981335809228006372342641099499052118615345953399686143323742401834126878716668385745179680907377437337176376393195094725500029716577307391592231859870665238061063105426594096835907718894504546731795855138703573957216930948191264000887593332367231537376947636405125222707495426561102691062093416074208761542869529903103966193424258082563576304711759331562087348467069336465422768015853189427875850252474032852424480957105917440050216116347782502736166286324947606433603271611392641405881880799456629733099284164542750751256649141480355326799447701024802137766163090678026550723409358734273170611110334364748785809081683527858912846363631339272699932133704574679987014080342734487096219171460335557499024194258944060872959075016735417900622870845065854745038945482155457428979151731749659692467530047330927144185406262712345995845011254593190785791016681170382325805706462111917895352792159925089798250579856899670224237590118986424240890048286898639308041798177742547830579825035340742950166086329461847316825551558597599832574688634554764988190955499750037550001119265896894151066228824288320237109866501957074710420731617774682207040643310817657184148607650123385507532265259292105261128712987923316039819620930591134398426442433833622657480590523626895289408593368465157955033600379577266860100424074471828290147678410604485692496491058392038272931806095203635266406688211335477623176830400344314625959061559212827952185098511404173316068945463307557278554617155299662302166081295087059783136843050760156560695072686363558295120400787766645605193272551376365176010743130984156622803631681761308025147354735416889597428472222844134202449931025868560649779685962435073323782841359147982026420174833749944282202344947830396303670443080742879343913945797303761495737298908190529034215343455637786964313098012172099184567601589342093517066711242110669527329277435167580585197700485502287767106846874385228742519039491639866167932152242244267012948384610120794185682348433915538758348697242217451726241608391041833051066679360188832107535815068495096364670712929011023739191359926914776926865605588284800673827830771779071267471776808644300475837965134734436548724213174311018486336287377127269792265628926609441802031285195105575357935647551891512695736472829221690959867550458388784149993830786706250380312527615340320674019575692979256803315659228885557793370241102244653830187906943611238199993174397929686624274994979057950356134674859257145718437748549813236635230613350274501357932466263254084837959599263827591463532042520574898010264497514899014114570788199029665426737295911176431668495150172967645019550588091560516826275062346299780797389289983000482229290524947597572551084840300218920661207174346032620019256432162451302428547801230731632792069967707964439613399569528752572524326603412443224653225655250464564305213605803693143918503169943376680173589104326013529910055243529373605452660992004842182056183867691016509545826223898072504774250925162213871150987915720963598406722016073156981224724661730580373998828335812754048360699262991077073425362914397973178755707541471440298260028727414201288835494859876324963745619525050606083747574194206691935308037555947651836483489440150190410043651762998726500166366097770948318059897602036689109941881260283591863217311363715556095828922188914307099185579751546981064559114582098324109341480194452887002410530038579779748588373092408861258381448505245789343201404638362431402092574439793788925418769418826731988939886017525786405961083146326086068750732966914479633525879219020773722572906998082359492861828017487902282960279413733846916698112729851014895571737382244652933430457491915546258847933449682834077695425603287434730528551659726617910551283740879337545313180050480319195590638020837822866161131098850323240862790206600741799350031291775875470690356621982484700685414915741886926181065902897689254381776118213395108017901994434036241491822293242320327546289417290698674002295404602221852481803678724253657252073665316913613795832486926720249429346308383560513762795009004176317664059700270347974859265185172271230605521762833907048970033464178621267653634147249823919790676148704773333954740255528998786774115537678444257962682653624993268857967627617920474662015114716906803813473038478966427810966989810686421069244337564789092173270981343117118021432183641268508694653645415036119021047014687371776663322881176545221494538823589901715571386264835250024162515557293155518344782961188450088231013044843888799426904577772943664986391701726038353777942580418401344886761988366049583713146932897422300117490714500141348557203019762173806759762573266252872487666288399310243818652989027773589823768359045201615289781487398267978428019757020316410966043632383792621213278460521857588939272542329438012671974102679689389334960685427090539763720600783777119822790273736812636121492026381487583747911357609844641596201207506020320203753028464898063275313998199603728667337341349752599023308982744549986541241257376994818678058226615537669074473525065453337106052749401165246836397909655644553940219326655250628067677654176211248685159951406485524287587871764957279659119025399935227494251260928505535941502610452284380762524768472275906358880064952680882699863109150178573957411271948411074645323374694547633787667542153997030974629149109241935562657804338011196994508887698800284633952378388731806252401400749956503924823405689249368192071193025805276228974741006631667474048030276387148487599833418347352546985231137876143620823495740777892649265040357118624635803407179375005613141136946314604370107168542369803759293299739555612256466575892326451020692934357643339163221162597299488475228122416256540006253769110461168309426732916765957267017931633206520262710500279230232189103118835583069511565541761654664502144715417331567076088044911548424443633219938632513398469152997357859054344632272936247040622766085446296908103289505555918803573160572727020705203228615133022184273192169597153327805518706730665601904287142735364350358394822686618838742450465741404450323079005048681797318230967970708501922814070279310499801831549123098230696589747425934154176124025711675300291271921985728727645965758025603554899473699664357290703654459043146902868051849415345499180541377838691884926608527990198260801105629916297639986149017578815335807341252307368310190029146226081723423840653117363175907443978818812264531017278621332998916268419382896660096975175361080631385551956615091020759711103066943017896093000345979355663945454393735147281224723227103436208033819756358547110097019471472068978529884603343954617909448063182430422127454639709932835354012940526827507572171844976355297469654047191825605573984697795819968628629251361635872241382373001317996880506375029767520308628513071850037810063919282183705319099291773295456619157331028157519379183101598875736359356013023292031362339631166729687874036822443510482294241992774049916350986785130342239436811941108765913359639342210155854803131458333303523135599284073156168174602990945708163447112432998399085599633311507968952161039869694316706347104916708576670248834317821931295010536573073845491187427379411274056997811353426874644766340991064495681405015934607195600773178477712189160946399619362884381826021891152816192292677245408438154421289672737296594078953731010927876580244812530030070211485548003763547686957032228850396635676405166001372891500394604199504183811106046564170427775223673040385370981323962338505518655961125379754602777155872265024869925683407422495229603476659570521007928625771826107412556905210046085957430439025609338951636901355790315442562810599125220918908557781742171971227820621466209750319582942557422196476153521150459588254208135714822424709066074767123686476928494362307660451344450760459017964610899702168439765207959926309019978023759009166947194642549228282520649171562292884973264090057115924663771572108246727382211553116438413265098831539222075710093536110959643329708942798681488177457645817686087071529599851897642212225736539903474640863105575181781940005956513043905003888252947503017513939721479935510812449642381372199848439573711816410025579304599713439066874245481571092147648726552451081938660528070929149317867468429008678755810545061948247988404714105776636593682008878270066600621503609183143631732309351297838168073388740262321437383264618630089465850522109341649480966755641567610956630785100022076694694757269503984504458269930153299029745894201819917281658711424012157529837284951594150582243956707379670618786677789860845930741273477908249342181782049595173673526135349640038809611430698488984929069689921072551842691561730210991493228373762319311362562916648578306563068799920985995820730025286143374095484582418997715028649868259890582736047918754501634906468084678376715459619195413423291905342337277335908054738429747384702524699904846635634491517854745299610269368163328669578824407739148121579240501146419522673992167062722399481098228105219519648244888410866324929768495813475876588376581548013162299975119908608960620013706004760738057071804830676258327068986093298070626712673983000594595500067096280172845340550800677415591187422662272599377473263082069816490519618632428005331323648133523469117113846537152847152226214479377944098285515275038811718725645791424931906701771412547642986521334236890825345386529043944600289893809645601946059886380324559079049918954543501344053099853309749643957529623682457571325993072863910477058087426662852999619375097569358554384797639997800050831735149832844845642696214414247688965194701157046954336815753872235860163552752942585254507777209955365797512230391941925819474759402068463129946804492535879443687620062091116887326123960277204138108039298958032576731945062700876654776778269596497277935462663441458053169577109720573064049197915094663919514613244089848532058143414095066444241672776036812768683772416306050388152551313889410374216099065166566736303893894019677611650422033068703163898995486791447414909183364521973345345705894934665143809704163649854298552283589064484150997933191971408804532032336918589273013467619009054999328218078432694542913161371263452316217497193077960152062515342883692587547855955106109073719301659704876302895417650015175775586910709331383845148958233271605883831480446464465216093710202572989829013161177096448894662104273012878232101453483880397620242669974881651363946335736388433159685487490248629305677165296870868756925928253877251831439071470372487966524942027346216532194034885986515472762319937267999931741478863064651467728854334466615238419776169482494913237224762770787245055169801375756687058309967143248106422517315863158247619367646983750514515359882208182685574436416394688093521820442763250350793003421202038158118733328296026911760000782801928853210118150862238632896531956471378281433813382361126745514072336247330799734815897664397758362667062628494242728421679499223269345314083369890740981692868224164359509903834927867838991785766865344771494483969544388269739648204689654157787330908847953446839526125931279213324986296395484124958018412542917849836829491253835961299583373254282024953158792972673267086809378232870858067582272400547821877185223244621406356919208810118858196457712658986462842884420469771709141762049705624812682333646085625422002812532557747704650089203080254686254005691614338053393200951842924670423105481659623909165455912331544723256164127985258327435298713061096764289974024547102835241074943932677059408060713553943858872282739478120517292959058159870922607400023868917426049706678024857773659750155969195504089838402067464610491618897108910141269565667018884675478914484810740600901698124720816256370192812685377693990796303529281779694289720153065950507137853937253975768655114359987875773139374930539261080086577690179111244482710148454379597715325294453882493658344407338947625720975070734540801944974438566555502084199680848522373094221346726297999247713939480249090184041723908787272640993321177373257944401127719375644046697932115202154382783961518637891299338740323675420506421030219404291085273331191495611015412415555616531916245218067336452088384076804786954131114488305702065022797726356446485222628588341437956790852028153453709748579643066894884042598949558105701740450158843129093006082298496553915922651254935472630361603005942320079815488254375534556613787383476511213031673802865411676924294655863835508260157017580516734618436814202912276157787181460667221328911004942850902768188431663706728260417416928403741175781709778179268226846612676455052276473561788160722880580953512778268066775219138830095701959910576486240095051866487579739633680591686277530851217819150552561424209279376706037963022023320378164855435101862674474120365997589770935998697113400866017409205336524045693298267066183483554354750758410108031565354532258203277510277379137320563019848246469394420792693143644944580644270415299848321801268417558094895875344694194061071721015896496620276978591263747181718655300705903226893077569631488893484589739633721975188692346638877764807166275788580374532020652059286401651057723602855175359825146137396765930699606325288065316722876953499962842141479677160793044427672266065120271120222120915607996508305770598937475992629518305552844785272485317572349797311588316710292211979673910758890403259380666317152909544722853999274674584481807441063169125511833999530536574701209245190182472553015433761345147858666137556140024538611332273547121789468737922189918033044849306592196643958922129621400993914923649102735987990266465490504569993322610105931304255008189438123053701481826239476809429515054309225225886854996788112935222915841108914320932063938355849774609790963767617694732898638325335581742210622553394257011719496883416503786950763536199173977935990787070140850463150061537454183403340602292333651811861751823203983371776996040626442485427103335326617433451386185063847366738738596276798585611359541114592227134968563360676280462492495259322250697148798483903872273901695551014514969790686724837596027769520366869292673512606591785342992602943578416966552485114280450276305036934885185646678570090119904653382774515975740954479108749145463371821645886191081401223160875477879606287743279734055295139068397006325184426218342768867655765508769811902399224056140717647825289014991993743978829483465056391641128627778143664295390838529342622382614003844881022170487349235762321432253479993985115762754974199009255182723617950191422274008360819035408911931634431212045891574160906915178761526420935785365832819194881858930577110817842033208955339167640601458052089526496868617103685701472122884531549164791616659468273022512673186901873703328708710083722900294655181409088813557023767312898930280915159707983021434968929321960224052999539596387332680687487254012356014329418201623207785973237563760854847934811149010411639779700411090114238416714103688060875463952687011675918528346949459344613882996875496331020680384883599002341789808863359016451059982665663445013725024654531644708442566323640002137802302024402170239896528611923729785684902542508953443702583458399687840906126911962235269671404365615818049017637138680949385732051514901272616970559184994340949828381486772450875141681075894168175404877580179268618322301894675955659547961963392458669831715689638142246840370846454805727406764778450455773838923850673566189637080218534382042548241085804648442310996856329278148526354625363452483375712303594769552193047005842645303766691458116966229386372233892247043791939423617093049617234055569515933613172614288775758875925119364662295815375280841163699786786873599500813283420312854313649976141810270585487427514837640868632758968192291764375172858261956245132120513279089177064054746170027605013678240159314482645903379539614713794759902064370273140887062452120242285695881540398420156178646591175938472519014787495716354824459153265174027497343844241353007148099238450897435264644504479358339287380307191557389293053737812453975808489457918043468550835393739015150027305988562168883552280965594702238449344839418541325557814740301658874514857490311422091276588122979703311960120242476469104566907145018410313253392324644948185186149423791173929814542975381324188671141143924342944609999150358931922687812735692426981523773978876550077371619566026267137135978380305133505521070837464835665190762121061435477360578747758915799326924559619912676211730022905318421929781015405216281695344729242338125925326582994148218193605186845648040163612654351192181856194891143561880909177847945223437504134229067844138364215437344083044675684312244452929060181097800161384734605645597352956982412729770608431484030037379205840771509994292997183937178668192177131453630868546314415331616177796241547284208342221634086798724931176129667367558600035791419574949342835899341431054372940159139390192343983192934400090956838615606593292318358978935991291833358041501423848333106405312680479996778504356330413999714059400355071265884315625262137686870377481791319566307564162724168374864941104406394450203072877157423535695957487847572431438039460004764354757015887572617843798696933416459125238846754937343959302609259724516202624811509818581211105855881042087548316675284670651796787073465663535245053871259235062463595878405524976929146840984993812696369837248202065702881446501913212852769968264517832926546728896944549350742218226838781226692592787133920935116984080213688596696796753806479959809169672819469889877261031068417480498818499562217983071323014357683851256126338980371562529802428575471736802279857598457422502490727718756852815562484394290818320240075530975369216561666478890074480726944779276588039422983330561901971203326781790455509574622352558719761526257865338924315773890793960118547025396749399943951239299020217610474026457186086571538766316581865743319162606867603954933520049528275399308219943162183566605928905875272823771973749606814006352459604642219596086400212099531294538985024494548784906736957538072583210585551060694287523127210346186736438525319905774975993411422552891735204463794147919561019377572943393365897842064192708908463984224979897333937935299101518693760355628698037142768199051476420013746744222308200507016062140583450224804322078657868687866388296066819642487589598202604272068903116884581625638365913660050326377089017275299977161035871551937949721150894701146308963564876836631746987822930300762012642030056931819359556408677031176923345464919194134800625705957350747514555249243877909031313655188187120805261342835732065380445796124017660204084649904231103421490461354342490944653023149730904595131511957543705045374649345121142595037010138313676499950635984688732934555223488890053072055569096091493228916882049501095878404961968669488881103186915454390875692051134615294226879614811690528263482694823098135742586868129420046029348825689554057789755356003631869883481443800307570254251997566352457740596469564956748090850132328699170503835888822234353604701990348721506999369445917354720580677300128566130746817231965792645114022273717375452976191600380800439590341530583717230134579759676167363780677970105630371922828052411418203503611265858937681546246988577511893332281455977229864819754521414648408599192020017213742157108702686675256527137078262246573943852258852536080534261281501489750553126689537764550904805134829381687588014230565925373125448296011946657903229206903858263764564365644694417254122290477830524802687049967744676945087035713035229348867128636952209272066560783304144386890312739297290986280106615905864304643085658703749886503939700748956932337875378600588874443023674945593246260780054627781526904281928480741823125001316030939860344712187190164057041045209370500844687778250835293665768595610845422081109487153248463657594045989558914810345276190851293022906325497044831279226566286297100016876635910523166706957145715323557468598023531726202510440187658272333047267138086583222239524942218274764600231708586109826743351339297995535249719793045395793002123295131722273792996400419928163416755816272036521753806454947235497426124982178604197144161594969719728240354673968148234185273666325120936293353651953952218059636188312738725079420196338691026097299855244559741624462309901040418051000893685950354898395430644062348011685348485051188303165502669185541835109954224820927075258860920015739855659098450943393654849700868264715059363716110152803851211938420093777293808118811198091587970166360601018799105333476832232475444618200166549367495247386956248559917415586404782753126532838435847625887240028164082310779871013680102874281627520323918705954731767938502914282624905976254611886274258015427157108821828680896834726946525128037568678457257854565751690138330109061391948164457879376463593720718903223308268070767610539437359146617693777892202091372562102992712415130220566427010358756360328902695191199712213329036288731715656200059603394895812919600552228986678434165632161638677348222105469334865687313771479512656428983037645271132677234134817648700997152686097785906951407397434344531210997163049962061260467780631652847257567756831388682835507569108295302303408067823587457428302754474012134213588736340764070120018147440664261771661034300471352723268628554904956825089654622131250661187493719061664528347687931827514973168983140573303163068326022438371288446315794926063821516888945208266604347489196863339708505390697659641332804571281256681864573704974629482940128847755196059075135851955837046041319706707836252175118643624876069124860429744263197482193856382699724185956892911949997552642586876415250351328768763972502456135485057889931017248956122569035485622691808235107377114526293841671095116003655231059263389199883099285273318433491613774365639427216298268425732596167663035873613053640325716354723915631515278615814030435224759724834247603403096822391381865680280237316313551833145909026781198038217777485421002673734838565147944541717087139490813577979643958412688197019494993457564905760372429922289397449732823315635832613570842665405161133272733849110793517615141016043442879719537472485256199760142459917342900178477490926628752840551865995833956097484530364578053450564241334463889718018913645903185354952378915935654764634680812478376965309678969134854072988594295340145657999295820081513462768903056217166497536943454179589401273721542461343981113246335223693846440295369996904745136366909812456719995703498869434514326983810799383292304856153830863445396495594006214056406110710364227812369048758708395702227659717723858999945277136756068100879794047309973276668991095038799474636129199148689113267361018216786119908959606116114649862966514039325021647793105871386425282066565715190115740314769980608246895498408665233062223840520681986231664670467525497899033513094296917972875513858483156778179567787728805318711963697852041880999580018215492450867881545155338324115445608418192225298056953558159292862904548634415012734941950537833569910541822987778208007769118652775107314461360213314131363408431351233567370594838559580956219913906350667408111604516440295262173978517360732886032788424978449626298781040091770697495164630068657059053788642819465757302702131521951314656282660095868808049174241600904750136730426115332073672693199470274758972254600265691632913647865177322148287883776727359873324372779524914950462085146621195727310813981301426368816498338725904427196218317670470273957090227344716452510892001499066993375707398814544968663843064042384568470454152529442720736517491689732956278153666190706021149519713541417574133414256091436930367190094329881320245929559671120586798176560864712643046453060447415552114828109491922965732176174358340434017965931973670242415334559057402021661060325820472693515463661719585603609717927980501873855153557071568106930367121065857953399474670366757139730042099932957445859173572361786115545242281311868331567544158790659418701546487901704906851497539067580194494930265311006367573779197827511750681794481264808057316251915221862761569893155183590840490242147102928386052159964743967722801152757756556293751900746252012176246698266517182884330042430263637701122685766141894466973339426898064614698842707192230312155956604362500017205928544399807520832497713589789394260677251511493613101438579762567747220171670330045597887390883983311098392560047350240596219675247101638983929168513737448336728535125982549646669219625855338428200668461540623364544838582335051578915064649972502562167189953346091765745555980379291540174006604446130123721583675700537111116360118752149073662079591970455877508229634296101133340034501279087856893220429389089713321385005321142889222778018254700057516329953062098136315106822714234048844695003149306398972419089350208014780062967983725360661967348643715640511988906851967274870819555965548531410272491007041499000874921873714361325688622236751986053402709093235741927240931624361446036011389242883474220867705679224007281440095966393402634494758273890768656863182917321834195723733270609689675695449948078718904713578993129609373449646386668583137429781415054050982207711840080702070093943811327053958831769828713986781833881761327396479112622107836780288882882880633351811195365237034186027964175669487165789198034951070386367436175438380728305844797174383037964030672584821427276570505685859824861238448177873635009394484695170690339079488435430293347493084325676041779814723375897202878801145607915936047732017671865295148659947045589165803050887391870173503041077545838513832306661457524091531179132615123717292082970345853373741856694858107815625249513607961722028569559783760401282076225615930363543226866658658248658765899034422679140404644961711961437045855569825397776706616136482699707468821723953846838444100122453601934123840520096052092346972203607772830986992553580042840765623188065996358529860875259922731109946432081953622910580458676180133091252253878511470743404628229481714153703713383978282360273191140568303093992386207134916823208429002143182460662599709888724474231588729003694097589702649257335486306818693051027300005910638570421463278990672574269233584682423470254787321604939612304552117747801910613613245139976966354108239947211521834240561524892170534028653879047069548348624807611310887605962717226149457456964755168235955481154643849710630791632388735000766370347569730148713440505305618813218105210610885827335920362104054317037650291398143456417525498046256639367718920749017463564818412804115668741611625952682324520469475827480324269374266562240816839268909671989598836506272563858192287131717291334485947674459832354922708901573376796194905170546308181651251288846795557246846088259701153807220680836760047703548473121639665909591025869555256523785458359711039332635608225211406623850444636984268027929459922470211965044055797364492499686663953495090866671963715555846055696852306136252929664336311521806055293011146848156300755489322743049092592143350822216456992710286424770463206090854442051950099333420876221079165211793162681979205994017631528812020724907965846088463455300786871524743092332018200461094348842291100857059257269668933262768385305951294687980838664487559548918769629071580862420846380709214018671794413961505231944714619125719984706054139354062074765729806194217267105587502893242372854575812571582210341048366364187859436214883287383113861457135168891782217402572302290248074199302944784199098544388949979557503786500854338695482559744473256766475695371217398208017556795178988017961819062771513762919504586204635143558301536291050761204581572919172018922601003393078758348941282121500237402293879707942561302862352953622230996445580024178219840764492511548110640916433402199382212280413597379253804507610754785179707795006686807892607445541047667681965239839760426860416534592342316437740761486209343286430454599024117292372753275408533315394713478403015221532774883191799891197945607454946156152435711315932740723589043126372986517923890343971874454313698314728274504203615282284406188981432804411003019731168377642859970423401734330953549976979162366673228150130019383521536628865331105875994755894812769692023104943627927391800866464265806091244059444696519909501902617105744601034077465517246179385376623864632198970751918141299698929587171321812891141689068142418150591974695052398471770182581540377681823947096057470028670764043670329688495643514019173506791280532417997317865495159852629609224892424974437624934295197684259689502302711391228973546275854010249249659690633065944279726255349409027066934756699428814839295839209959382668910343523531210999531138656018905264488178381743976975222913463228441920438673653923515748758383046551087977281210080161719852320605854558951062864569503492833987262847866604953329051168528768556613680254321872897211176221158513525098304537375607634999774889047633004588734262927644580244323930666545867892718143916279315913467951116231835555796230209070094744777730716579938336710240645377069315243042781545452158658033255262443293457612322985437353816728021036277375973974679304710540663816520077166798933360657825076833758118633043533579916253515648291891325811815701106706877563640942772215104098981330569422888236017081937913627148829490528277811736751075245128107033563464310917343792337082258064089185533435528640421405080520795392499762120450190038338378975346589307539971907113535201819888926030008421134511031831818598733055570306234660222302591335340073006986101603859968992727037899302477758489126539504986859811830613739505477385804612068926971989184489037145713924625415368150173739015666806524874164403853501740865862891504354145626916830443585001244257734737476487368269168048153505705314815331550979578794923776222479850586775434581112147391364421172547079560572092925676855326244512382357560760665694924841841185735653885948235606945838983448180328763308451253721356863239113478212010675035205267618977315086621339801901133108177609195417332526673082316229495967621046019961442245773088207498566536510428239794020160744435595014678634453489425759042833605868271730333034066200023490475803210087320616649095970462664774429857112524362108824011614660392570996333617259152088331309988837116246184770443001686722112072693109620516802851050557571709720211242179858263510040859298222349360776189162513757180800180193839831833518095199677980547819247433222435465295407003934635933000422197176837959333985548301366653589709990326438215670468506119587319240152873070497045624899610671069809140504496804412782698333412560407603351265206579317746307050645315385171423350218651135548266563724034569742946186198227762209731262289973117224206575252479445613282298496503980868665336729470147421815038298799836908464643190766590332620457533046097746564203962986468776482376011914096004460556242684379939196082585073115376166949438122275626003878005387169633210664552990719998491540450795607136279672415639720600246562458466114567569322270692669418163913244215342631715063843313216603589670748276346231799494442849799674943919794116654457472925655101525226749065473922766422198630714749411961103539838536897262410579881194014408936912137409686252819700827749868930485268391733451860143155112530328167130994644631391636083186738589684055097055611640636619675726310439896240007051899404599281193134510706163171356901698367462190809568423412107115891549472281736580535054543637034906035954249305738353976101194663186883524506876531537550131877022047127667776180707044809067315972099745772472605484170565086948487512179934506722729021615018342187297963277867936358015821380032625748563995651694262298791537671379960311419530664854810946172338921509398089156676238081708373118032302011045449997630047666920960160134022552396645311056243551111364791743413209984139160804305057296088742741857786862888128970260636643195331058940191943402962552414219678522835940538866775934656602211112870231981411569761563600767872006090577694654039851733728286383579353598048601096804701704390633379778100339616281729158906593385122856909993383411966751160577181934530317906171113944925000064585103987927261665935029956284997228451323966916914257034454655241064117947640844856413481502477143033583667508545147334807397442027973595460021682667908389936721764328051943043523275041096219015204672555799345614730768527777544886436257542230990366789056322685237513562110687764068604340772092919645444390435483341057574051714132349544236169921240160104023146012921828241774589033168915389042955629534508624904962618848336748007503073395511073372145790684348800243371629213808531722326473221680275539214147162752333909302256460469969887297135348102717461441700989307755432053433088750626256973671150206560805433030974093480424070283815393468039108145468050358418582247445233571190559243527026191321150487418150776453714765481706381735765084629333653116813098427039983038915793250554618026817567704742487883198425998982233100762009787701213479220325489953012468683447705152227530384480814848906336611200184590728258369293117945274174960029988022879273558448589154595606280397764111374521099823052279923831569322648404152896146787691985572010494372446549027798067846839820584209637111132411921670017136655606324358211808644528816397038841423818381455031110371944779698843073873336181384812944306007363700165424321570399282557542521225279821930748194270869138698225946306522909174225432074845750055430564158390842141398060600948349357527453120825476394055475207558842322809599522406664037455270943081867267174697864368741007508339354853340261788268938808584183600151768689901130846086613450053337393353955208514663967229024913229689453092781041063451544651292915650513958405384306021781613396708189801481149368284522054355620465544857649366324737814670276432615936066662156639325972898577284405109189191549811915436889560137194481207941388153678924021851983071821327440816686587828888547230678058477782533938516621342029636941206054385032493449546608771580733842193700464098704613032086230544446456090587320414885652741206387946582600570742818352487852713863648015869334393599622438959252409031047448327161434359989594592071545547425858996054400012474366223074081919184416332546630920210499142984468282322303929840245726859117817569385529604503349077081625599414210080981061216491239713034674337964358248461764638377406621079273668940343188395922851527110897424483740216470880642815995195641575582738236762812624717048460794789775219777170354496810227388821497320844517711299710371435892016282839610974285504336775171509526870058065766940085596732130632691913474815584205880774227893368128777557018216881546876385033531171452040578471740455310717835834927577118241530412182356934340730517130344600577919213406142181380484547126635806299003451441902099236751520029158315707987663272148531927427145911865119291287753084407447111290868642399250717090280489889817549614310030441193190845766613591921046120304041934803807705841361111801993800677518082050304855060658115537578439510914532270670724685833086973139666237613753339713041783119193078255510396172482895433756937923171453298875765921607646986488318798146256850890526297501644877464407921674725441269499880057570515670496268359255212254078964692103410713741551556798934209921725822964104501378903200731183727761656170744112838750632049661366410597534419195543477988775519288697414055382938410310535397189647143146044064104874782711934773346419518943484442204743160105460535726567801379590011640392690808867450982286493846617988324223366214250604581016328435931974877542546580051413954260358970420669768525452534945507750235074738238603304420851593886808070492151161734611813983187683657474911069777055052125770891470040173112673078428340073221099851944122406032529297221140621443214073160213920476641587033968876519585760375483691691470155439875364373381977661888125872693834853830116095405189407782851246050275143593295541117448043127941510770650218429525825418363618457455017504386357613532984412320575365561151669164337691166090310897619453661485413690560762325762201039368347357410077318248442699573069516411376230195783370786298621020108980334012924250055189732874439909489066244295537963379757185962208442014235034994557938840050101993986916383045001860987580078562855672825894017908013312178844600629696258711529244411729975166669238994401010343098028496787194870033069083494449890291975463091208733791118763850428218344136406675722127647983881039397083504578115514410315159039850046674411364781813971153682420555933674703342892971104381518303187202382343589491577403902571198591383067090052087984579512177539120415231797526670138599300913794330337920504008213404395080997748955585745273129984969402319251443470177573835584117380431541104111317888799145812198257778645956894642864377319673602961092277222234986755778897033148262076928612611845273261265993982284691406872666210579575983002739495508169536285180830984050261874159261226497318829752453001675795166145842478146409470216637784561909625244444781934820076524162339104003955481477365851241856989538730979120937948727334616047390653512889557164451740080791065795351150160651139233384782486077300458469033772223065970504603424653632585376332730181684097179480866755389176630900191085508046828693656876707684184094609822322523203000582154557555012972233429803197958950468647065636322807541906782947252860951515246613403702090231139101788457577229259651169199023718384369931524400703177320447820798205022912273985157403796381577373930768493529362282321924974627256657751509195921839179488339268981724523168391377934709727707620138080161144275102156823092288911395287422495851692687239014433945582919055019037297419453514204895108682116544001880585879300987047103694633797046425460808885302928912766437415533189754850623604866509479408643793957562742860344392297466262508044980676859267846212026042713544933281066074722425075162369445137312869209725740155316678229196109751436090486370465700249196722306991779476387871902385674168481936399900164789380816217018682166126019432394292772460867675696168139496452794559053306581020337037269220582754783786629632094276184733696331841937538948806850904875751894299755099732608503459135374035575926024650521803386195397223408526836635782317089132945159821785544577451833199401937074030602008886233691904567053240490743616841854178511753739100662077883370534396051561677312676386060051138931333061199396082069896924892709313341483010428967926252906869679861200273479549196964162826923150236256653868958344196772594364927419521655217602603691661568522885227559955780517820561462553734628613377736378200431884418649842342405438658392729220335871070900508284842826350929768295907751870958874078952172953324271326767979950158195594405394303294444407700696074305704490058003796267671286192496544088938197876999290319611975245292134864443205414178531180659110110819423700504132717078226376503075960001156589369635337048088385442785862241968100354233004075919666312171479795593554470211778916904948710917209704615359610254421136411182878891442159527510685890779445129359861444858894603306588917456870080256525219802462878724329352437830384517829026915719133182007989616667874746657092191190668070794666052467472012015007652258173728315413862946948103863300202781144176116373567009255007636631454229141608607872983213239672430279744114745936119842828553486123235156912495608687584218596241924961344690775380904775037377150217040572642860292561473930887611190454406256830334467390018128670971090221950610594354214573226639952292867464740084348727779283775153536642283474036661227984736852317213784661048614456046435010008378307786410392506321954545709221244756741647889096364352500558378667580702535992971745519142435563674264740218896339954090638008186479465625606945092748030544240477084133636262096190587222062674910655632929757987992880973034176186614933229786509161484437573906882506425002014575704260350264690269383186234143958301126596755273970622244763877391373155743416717213156435994623327928245161315574436231057762567549921719589417572377505688342617200135516998468847358679256074458580051629067468977886536389230960410829608203443947888929127010656464120727973175693610346952139984768111249390979238643737173678174530513014082402374255709450111767765292429304644990541870054127006136014083735983034519293186238693918892196814826771269354512020439118997478561348973588742075650443282510814107582962459187491539318678156868564507026512425573798873291535619640680733490907410429733165559083063997795854079381798752667306270653827851095694800415161796720817847771944575255781017586091330975711360622660385195704515100158561368739897595073736171762115928714741307850832806999864977201908111425650494327051095828779951670374669317854579510845938764170935689590326031991927720317854886962204165639123099236844192314273033604560858081300938028081206634614722248057007068574631730464833261862474746368951789378463178388107928523701690051165718819871123858148409767326580118541774132265827107496403789953423656273830785707351783924689190077330071571826957457959472777628295758720772139630570294414173904235539745405087764965881519862280685243999120538616865536730944916027513840632820245010529970711700410370114415071323836256387929311858832018003508961128819573138018663412790316646842456740128372000363636332236412503746695646187894405935489397989269674859819548350820487754862883733856829600256937215181299679860327237112954327685837230335647275301777142982500293063427559939248496148431157527190395418371925891304552454615390452328126703997495834510042007887814702727615556589170499259194834829308427430839108596728646794455640099513997787928505770663748503353264711773260637345327680783645324166757843480224340428449731364766034783878811926170307367950929408326995028567422263437534163991043231197389505048827825292448314534706801069459799241118085473817021302213707027337453013994468965564546122771680742458917793848622886324397681866193464426084536337367227312652604839704011958416992217619631085079719401541230491150404837442507887680211478380956926901052702644040777196719214964775453291836840122632359994745601922897862347203531700149929308926726673421891420775563210612909064127423968288565562136198830014236557534150283151991371585456478718999139920168216068178145762845811358058887373155259094579276313140586082830320669932422989375984536486519706905790956214532334156883099609549702472853560970941984361272570338816459281960211191230890397302679210547638423310727053037242047830264575472257839677880354990840859075325197098637188849681995994992790333373362469373991190001387425560804668155075145429988469720248958500119344715899808388675550866183931685391911520465803821450684303422102805448255132786403847099095529991492943384691771611003350639307049724264913912515258941927616982593167454921242317594458201215069373521641942132293576977337305418127120091420505520000931359573449300419615550183516457193079035961733054807582519669693052815598444647980558684269430005389066124672468073749709551625048798903977037751125854404134497092976207039494914112422771933642035412771682949950339095842144112439499969608706145540836295478638877545906512889093233780954248342042259085788304596420041169772829910487911397018226358736406318716004376796121768851179319518568189702428778019047001430771955526621762459121052669074816415505587687411698443482779618890897921036615367133425031462191352039189148502489178407426145929356521626462340971502997896566174806151857797201599797798101706127185174442189481068085087476548755194241997519129405902124616651064294338872847212873130014489898164149023740469199155713221010614438089690210916332617585898245670679468196595068305766816884770253208625926067277019125255360570268714553702795503914309623696552048884284456179451844742062522971299970715104436404319607277569613129741113128057690395596779436462375007114769761183508063694244469770507830849360837829738410868642119266949118412116661287037313458375635337733780960879920320358878923684800258684510255609856264595113075468719358404086823048025394164846690225512931314070759582247226619741913006845103539214269938548720204671050507091368298640358446915383855955498958616892146374098079623134288618876339168615428240200015160671454609548726492444150620991498738017839112240852133609282440235409716956284057062110128425776860803598108087235322010395590597040041251705023983010965494367555813199942627737103058243260377671119197937672674995853747197715545925463844902537223153457998669461754816460698346683609741658675496292394203664956396201282011368536809904463646012890379985598046572309822244693000665560074782150611227116562580320363231597111109406856343497346761214796197813415475937209655991991982659694975288748087879405643982344607942694669999832328615170793000715226953576250729582992943864764474958481267757793700169973280829091749858618237814840214260794126050598857563053756715559401572881241034762552464120383469654382465135216185184947664027677033859246110608514230520917333510949739317246725759470765384976902984746345796355673411601467965226097417539363808104268014504653264766103979960702420430608028799207294480862349618548062665955835184482650461337830776698386226598262006490393458524330414243464804526837649412883177354399568692466051783481461233599065017588111673428644713677554068597353899493149009245039894766442209640680529486300222350054115606716565086593393867010731915407141000221431255492703204806734192712336571864062155576658075655806341485119858258231857026087572781543869693493447398597863545548604483553901953864930721661282391874091969671951274709590222118953185628834648394168280411138549029492285962983396670274449486217159554069807405906559413918715561941575028005774362786122733576074898775304234802798754261455034897525592494971626325345055111012559768431479798142766948761826119137026820867127414047113556316977642472407993220457745490954503494131614572441117791990316590284810382548718967247361625205832683809823988445491846240968564130555509035682380869984508666312643690160986245992073429526171814783307240746450684805235837913625997358446157732012039851831595012855445761526107857667559583555508380866482668233909164070123124930061711465365968249454205020013333556931907875176239211907245126400685166746266581706417780868562358118460960302364365177651068380355939909137048238408071321413269608373961291561670890342756281522931758905059034036936703005972150503786153036712275659850188561467200532828011884041436236055377689758832369949646774551896353171548322562641283910691990010366245490094308945806582555908280953032887369087562578853334874302153993036474156341493814360133049102538501721948460107689771512024437087593440781712921160199747408035759039982409787144820439534361162945813569264708802156087417151607576053733528873359127928431569951668192960701766752928821121107549411113870596800104951879560655305380733298923144234220092121139718182409197012275407380418592828572940170165266269348022088553037340915434214354455970682095574692937509059577221017907626012781714765101824327058767428401865516496696852094119089091800320782562823176477922700806397677505976431267091143768607057337053010206212232898750466235192196761052057767148687073934789925820571604710938408958720286935166468976000190964222396540241410993809982980614760979546012135555704719850978479019558933864546351370592505832952615150185720485159297699315457553566217359083184576712949226815908956239401501555016414410394698104445088315580326644609399311549032288960006126435129870591789257221154652350455619485157667403068714108729618825070387225903719737554851786082047755990889250875939904030658068280727080796638344026163976289655332903596614129086024511990822781090009708356458903314862353296550601428653116446044149072946071135771772807496016437675019854696479882587108590473578264143080442644366238764638530877532415485681181452880906417417329392597987627356396716866585378268538233982789945827246150929011751586235084590526293507879574446935609660095342155612760416758669601383015002299933859118252295657381956176803562957452064827757804691271442960312395839928179136222768959474437599338124735709465741933706668519664507260601926301954712855034780345830689861172184052288479194617991419075025144127620942619134903399886413287401056815585153409544547095197190497534195151067786004072313106947151153110294030284413954731585136486599807078651280974493207856338282210835316827862150906191579630147976885401231525214381691691512089118274580591801105021659969015078888406479634699294687150235063696449271827733993291880049641787410817413225001279592213487907196185814700571288784956093690201984500668908974119359729664467438477941928723662324090121528734269099973144762741280079239391820738139018090461956054338634596274217543174798759536667242296961993026179139747067453639605188336144661524409168978365321619512894299051373992543822029275504891248482830046288449388610700827668483221050786519642573539752363285725058437882338215029436204148264284280168362396703288245652042948613716480126146295259805520152848232637211169880750615515397020684739208363359878755054918629183974085385336330323590564120214843909417483935590191903598581249713296893432689077258538559543319464134199917102974717554011520589107766166181203528570762164710652848426891282263695762882064121437352320335790163529527263778543659640230908368802599981393980514295327210425608975994831622315937993941101102333869428069565968363008736991119834152162030918250859656152184300529097273533214675665369394111661395959773035289021721782865401696288604974324135186598107580219820584873357450371451444914562648207996804602606778523900528332703465489629656734152767143431601156829408752504973842122579364503198728207217335167249653925322877868373680938817909779867721540424208355653103788489789951696117995337761286025109785103917553325408863873828697461877852253505796504351687079706170811777936807662236795091340321023921521931399765728803543777273098531657901528891658660657209629216725310309405197639108264133989497928447808038817503041642120048176914848915658343927774554123217345134832090544022908367848535528386563071835376063591356417713395464317263265894876781593928817519535466057142740130052735409555017806422043594527391193139832029561148515437228546334382901543086822700860020336545554709663888004775591442644751673618913603308947637461808543657416038362895932906858095683280232789753707046339862738098917868977465581864242263277791418336810702023696000381415427673952600894023326423276538747549248315547868648592756609329880907712704707280693962908104584094625623099511032668931886736158598609652671444879624394681259468488017145632166779939047314163405187009520100955128558277238237186767303142257268039067796049369568177316241132528518593700095146699914273941182771949673731173977410213109598039341664833618356502812924286239609021433552256882956425539395261388605313187084199804512874366036632308229464248197579526147721858361947842270145752244618810232601452530545170694094657424085916463918436185072572494287658735406728364802803359744104393461741733942478513643153134581864268214303709323382251132648022583878987171826925783188989883884338096189170169210838125902000490376698560230024113512882410820036519986528971307079184127110555162460024976053417592651068171848635628076132537657588509472292099495222878452367782870985420834766287079961820759065374819324751427240357699124499972675053895170912600501665679882366233460052045047655389622372969039673884642548458262459601390232547107781977437040715955285323895370768518528745872401541955724946156426528508748502792323176603754798349736604351697315574196056111019551173042636481685426596307606118345828421320129321197899138748145330045448498525383222892253908282508248101936314003934016225131746495139724158662308756919777972578345212239232513653341653792945822789110459939412482048146340255082123762262401361704875434279002623055168394462399567299649748444353451167445919951327614763185230916301253252426512171216884194910202974784755607236652384924358574020105945993128512419425969516655173114035528178748031762219645845111981867206458476324835887455196134688188238881332220832476605523331685453005777867021566091279342103940450138476534854926710607327176775643802772446283811215309823763049016665973561230693868265774011884704921975071170512153998029261152147248474873643475562198149042645212742641404911371494543714120325416059417233224570835668123960181126947326263094939518018190868037649663652026541633606815972868765545330315446581576553946666405475250178959686610009905327275065616041419314746745413910110670081385666929697749809896893185838273680476516062091751649160602727930210296218916902126139115625764934131046263208265746094138010562066177324118606889227136789417379618014239568708289529705993220114296729411052278539980645587376604934058625477869375970440759598471898158759000016048884767356063071001003649146426400922363452501945628532388172210516031738424689734405333549230879671038997906411671164577335444695430213843091611740785780775160406526909212653152308802733075571689587749069562401602470933428710496824399305599500026168611854771124188347140428473445485714668869574743871626101274016879932587166009503281240850133189871586988150672786766771178698312597114585044943003699505886088579020233708073927305000195538677482597710125743155474491211060595115839901248926797049436242215541163930129308471357648593911853156061867737497019200954305163491374500779169679588311505931346726096036335064184757507859075929322462132752476955274442271985076674102812458675694248889388070212862116562591163284070247583964624153296941192823452981598017081302610581874852460425252351979223844052629193795244701676668803086364900882740010865396533485205472543925559867682826682297661351196886036169807585636898628686525025511258946984774918475273451824196528651873253986789240412502356188419696388559501179728215622583820796666172500005662199222601936371672188052125740148915092059541346882727359804271344552716336155365162580039113188708849005023596171016906421015960300581077632992440659230921293536229226398008175118812099332823387022433759212468076993472199385991570630997925487133702381585327805408920771844665942492604949950668209771745407760846546972106630366793231296439612643225709242995096856943777297834600131828601462409898121521369937831493239409951084552068379778346404657950314575924214295138956508132414553883846332941023093491633546169765338117162932900437683668719119235454080414798389593521851478137113276578545733204728044871691705111933786230676539567471156897200972243567952491344988534002731736265741717419266983323459309056519625355809257665231959183471540424640151793525276067427806055035471301109438506029717545223733717861782841552357505468769425939954021542110755338783123964639550357292738845366641227481359545164941827402401003832663369825442393562299742571948399274353652994471676662726203990275140423786639388108147273999414725974107759085629468264997711644069016764610563248182829396644345316199053405543499700435189883499508803212169346303380536934844580335033197951642747598582784425350820579915897807011353680585147971575613133282731482551235608505637283995520574421859575859988021276639049372978879114656879526477542773951010973630097843490641367903802503138604463715694728665182226935619766419354153266578600127575845004477943534049453153447170632525205054614549023768956687726741864139979431973125671189187784955211829373113277601798791140134355796885284000673607779129445301627045790064939906265959721635984514100449011796744679913525457948781320838346253344438033252728711509461018186504426770497712270997817500810319676785621593145672515646993366709414094405698089708433589111245801325524657378969327405843002873217475678456098656268453845945044454754932652828106134434290852763128466315898184254761795352898284674282328484459922755510570974398628176531608020974306451492327396678714230644967442097817895359041480966901558430619961516776201910707020943792340229043875800019782018200793634054522059323620929977135735429486501341737284098340775928444832754448866328472213367249603372581650542499697992345343977410617070781251439438628574682388245173729436510340359337363842370561171072689925597691759264492915110145896607618542354025645235184959994363967142752055194689092861585751225625640865435557165999216608692058207769729112547467172498307137372171546673264080824857310316205847065605826626833881976454038662646729907395213090045304784847768111633235748431595112128258571825934084014895097539011650675422663836531078807310497834544882663938873580436600227229429693685484333013273926415015964059455601810571543845216201104174820163387514319511905037599293544993126782575295457952282998047707403222787901487351126360435347928188898061061660787074103958194111230775789461762592655209468774767126055721649880665510544213238810499562141394774656271777889693987472035571617499356981171849291630526329419482558577592038083974598049089072963685916392198930429359875736430188936736391284661503986321049324307266677634857920309587339255867637300462893894928072403999587647908731264000335551340486828195829091226536414433103064608410472868165200150238210976515283264158693241761438611852890061401753839997740205927929050270019243713081191447328573798322765521257628974626082933720340120238888767273868269243185431358355374429879747852764881625470517137904483562544254334425080851304680466187063411818408542470073929441851403686936573039357282610678371646322845409922722843074360280419169785621311671306809134195902609462135855834190411514420453499917756424994917933058971839365179620180248490801544263876966455536886608379583768053933305620941913825952192479929026219818450785590325435559075532137574235759214558527888127605117783813763202896207455274221887578617065161171793202543097961582031421490062833431658592521093714157565746855602493477316226490037655201295478072495392468764614380548394867372485763348825656586688573376397216966596221216957344947222150897334705248505739701242728854172628894480955534069255338364714651939663459746044378565231600584732980931745590523449505119167442991521941450796450871298339755079764145224727556127089967925882271920640277244888872681513136112675049276401383462672564995378712066998678180080294296900530417671657318422887586959876899904442799486439720943590597987187650071044726390094176580131847745551052178465337916426285000868461610539599853694059269815927195261365628013863846438953108671597672221681864552962636548603473024833223723361174126233513496944401525768207020920223625761893462229076584694153377040408608644837361267712172988434297540424156171853012935292164158194037570187429630935467418263906696343967603178669664379521286139453789494418118103582245425378863673983882614497626224773369891463169486473971015634609579600147410386101297991166893202379829821959840256477073033001754654089824839872758545368865674623798433666389435161244378419413134796568368428230768915163782596451318183675779371573204799768857487875314149203505647790998872718628966611837248419101392242015365184278543521983093711612477773492909918516379652007518952756116026990410190497537953707611928414719677364971390667302453694230851282896475974512206692618238343068187845106539168103969201905959753890865331728835281890660918401103568601254497002154157627619051409451490656531235215951534309031326967984489296954756804684031921127597359931467943025474398167243772036614571982222381519101144325027828868492293362780810877262603191799105847138942789228321779780108298809764121777640084847863858861985591098556541466395081390385476262378308014279134317420857393256252478926204260957277211510374563060384863880598597436099752982129046058407357789122993528312967298281967872353569015632940997354942314345159179037841937307564373457367360788087924368977491775413862112597009065590446067145880210606875646000167002088603997245983427529073862826297445811172120091869263022302240605650485873737986423425502872258802512802155431017826570997702616796260702165159462020869659014123438910953653388590081720197003303288368076847002900054251505338961173111233139507391314447829084165905052106936870042617682233479236207631769471557927625043108387195026296186260820724330846793953107494078989428247651929175483994084560283997674758258414314465057379086580463200581874685690262746360548806186746690852445323695800643499873197522620600287769396681635086749197938145005037909781878615070938465455686902083863724578589365303111804350024852033031274681972598701593166699360149363738018069178599503869091284622759389770708413232333325779860168435654226335457835336361061905022307732971724883766903224108249165797837643270725390669636247383286311019320339973774526534362688822811701696759905896908257113963348344916661510061287181190789426122096800704019316332178201858670087914221610780652228816374098734658019789488978736946028629911389790069651252446134961720665788889394730106612933625467415537318731491506432550085408214168279180744488901087029054443291737319516618149170600883478785373003527857880300104433407762823175830699402415554676534780392135796220173152176072358548067455558136349729133514580893270092883913165369195274226769505416962838918424916999528562546976264185752241298018771055404041124328270336876517053689148906496837899009959427927084744541601548939135379875398008959534680082453499492878648581382830217002009134588371983097529613753488559651464977020773789807667053485967891200602677323226604181469759754686489576717589165327736538775358604852025292182684538363669712700630138953944485365707009830642744478025443274782810188505183479033671962295591592278356341485076296887077934639575169584345611924820296621293926413942578636341848482491448027875934475627246541162698106860641027720643733292728476926462023004217745540384393983025451219131990351395781374814291372036392924277028807741625233177212526448709656121704151885843609913228556277231386506088571549383534397296383387651341780676371841556400413548480963307527036590243689445966059916696581240063658089627515650023874479618633818546811056898094919167091545179732572368575253902182070733918972910500589778880100628448801380509321873413138753116456917095951490439185439595058072816736558543911605332259362445937781569935288547845439209703972216240437979915407002423967717200674814046172962160156731532204641959761811552105106888905578757675757139237276132575893553096290204293657822612744098022965236346452580588330760679208942891973432745557437932006670077069404432324145812774189229593624221374813720834886495434023498413450343067895199280362168577183042564639834690774375224232477503632602876660350200730242254733059108818295844449857335108678746605835944308055089614963462969512466100356817797125372976934480679824203587766063906923520882940948919851244016877334544082064560143455409989783394584350410087047130468019583433327335091425411060414431404023296488343720511067836488562826002776177025827764682483929865567842725986754652063690676666325814439168617542045114948579384677967760386885198528723645903793340190441116418158063907379844978121692843290186671544804862779739412899997742808395050897344858699825219093794995524734132988486303742465109819349939336459857864529234033788046798480525444605879715452074774776274256664046573772943456368551813573491460652589620872797553518212567457126049699323784161111830008968102671368449612877827966590104528742283612229442774443361833892921499071377023220680553935127655483711346594276891435744413570340973063738124568868700788669252589560779110882564237213663373303080501161592508236167834979847619306060924553074567051143339148078632530765689996433514672341029444709844213809274605865504958881046722722181816078612235096209302401738783713467862953561367825628960272265065792942310258660416741843760923849329433438920513264583262895761429774819350921933853966955084362897886772555308668099315983134575302111280138156509025691167364126617244907174208470897590307241554790603870686944752236080291640887201280790584105183983367823775383155530022905812279004871252747550025346832484572199977808512438390692475714885230493799743476941505864532858703300424226533898539556315455150089981804757211726096438409945057800965832390073049803979966468548768926789261416315849756651422581631338665291942337961323660202277421693230851611334559792994155305066322067982096000775368971645097210437938848542272245031159732443279017265620613010410434181220528360445203216448285352512838701108670037536335088777000419217274214557603779853355809169344305389903734452491860265817946695387564714640499119939670185933286064176036693863874029110509898635175525000229637776489282602955355853131857230264715259624586481763572819503778125234833462576850574473543280105592440946972562753813416597604135960401783240260700853971452811832234419888089043722226534539696267369853443839356050706052801772824459076465183126982117727990397405949980873229587577081626463065661415878372258968936311330075340807044404016929273921163656181446073397797844762930140889728204254852045313575705307564648889757072146937273084711723574278333698388716458078150313050920209882725394169502126660214903376555831101750372472320559046806808479181449166452128419425250785206583465046603073266072086090433973897352429934107381243838880575043060646670986687566613770730894553657519710216822625315997173518054991330935590166163638616559916337711810738708188434716751936796955029068305439612660525483364055905129820849571305442328608923703920190440902652392443832884497060196945489026327334594605504232781956279270910599229929240828949552431239820510137591665635371371996412122956036803667036007227613570369255692545349334058529744780348301280094978578550858777480926027049960223079168790769494945070431224527609219725258250005956737341807363510582707753777603599217366974910879358915954828574900388953554910390987371091204368812933337980371808719704878614088091047895034678726296072577185911214359820148836165413404475692820126878196617195937934299412694957952989826000932242417019967272757663174132465502524419892704623932114614167889859409572437268175550421462897479215308803925255599608328656385630497677808500665766742418964704635248240544060809384365603816685163540933767405080685961093815345778904174765551915692715089737101760760137631910943788292277587241308202223107461641164700223186497217716985668629193364849361883296929272439204995453122505946092598917450481892240025252753116842178064304789339119499488392237450999035546190442923210750248748381450518883899556980332558736035321553535708997713701865155054166077656095496918592285218981280464034721716411665114780590592463016708355590199537230533671055499937517962255782235200673658600147223572882127949842881157506559185365781338801683149422414303950232282998341374145086126709993002667780844986411732087640968599621052476697168235190150180178195566352674545414091543486155650983059448309862402830606017415225943447132147582579171680344085803120493120935586094589331804545700917947288998188305146879060328345008591771697387247493028253483352141255287393150663096754633821179605878822695943955101187148123498235860453606449280443173949703839121525504688936864912066256978393845209372760133331299632444038155784311961819145183897890947554284254815898157446105794704203179827339971995567646037841052392397885073104702564793387257049387585458061097449155326979350659057642765122615085605989932619348808638391297641020439192195361054165892873210574648120661067242168477935970512509214788333348718599468965196486194163564468967181789151205998877408304822672082916638478628501368836940096366412726990567829082251250912612606423901026089688313873883184821153181790074106827613738075736567724758501773660949636969833571378731372109441235839403975296093479214356047711273950268981941982218139698151192738115000842172310599072640859132456260048784851149699639921173093190161011618455963812942060296075467237991358302556942260562783409528783280878513959464382814488387528278452305390659537063650578576911704558034401278275905935539104676670058631356824738319121047916257993128452802402587891890739013443851290528986583612251699951410523941741003276102268337474531010866316525567836351583395730619607340403624107544393672468774189026357054177592813896992058139531966013950911558620774106067187750490877498471427131336578768024457286023763472302576129525658892958022625044374516662298486634391312732903582012402310485946699820658817417062638211538388497094952882767969714315755154972621459309945228723526043108782916268822975169491751041835945563893917060983556802901435970499321917134897815690030897169279320249248288151044144429534423592675091963650776544553266006270249654777104803405438160189155841238046117550259803580953614857930105952843246480412492331464822248651078320836956163743817790296767419614584632103056725625417050055441545057578211786726871003341565673455475140795636300335438293752389293351433941822732057638538068941789800540363346320719213703946681891310051507890606561590371126339558618773173737471433391559889876979442767780514261756672730911016690248222841173793683367447684917316942943958634598823366194015377190592647188599623245946019501900948603030660109324869143572876058504891258523394467356157875227553646640049391142982685694423944427211040511338909087010653446903990780126058681308685673490084212183190574129204087827559693786386745723636041935629331260481716589212238002314621805577641865725286463670397796501718824112430522613793977668797870258198472562874185918246250669639042448587247108123122433935368080729480923049062096076838365008569406115226912247663475664370026205171934843286772645349539801986750101483487372473990260846839815078719631923627795981495438083579406091901635137793996251691846740292269742521168811539879868996735484215226400800145733670745039477253337807353567764713216245679745821181556577655866112698516670762894455628611963834018835424831953879861804268600743456435198763471513244523652512388812322773137124202757537034127603535632753504349127421267635025178176934902612990116609545813321031671668767428956515408717053234648715918143651714840008525169840872920776540954793714087820887965612842937971444245944716209593932948354782699892057101430858220244387226613165753234746758755863618632701312479465712353416749669222973078032742015066509369478560680552219218143914683391381548207874655496326247312328675831705965152974189048968417576286211354851265642479498192970187765721734216101024337663791046443883781119778749785318016680108045304735498660901416939152391398703672729180509564844714027815166868267368385424751411154089347871225316277220567435053769963254595184827171991314075625737526194961494622337303571951309667828926203914442785261650431607640620102617330511199963504917431063625321384404062292531492915271035581433553356225609023227961928165130385727422480803459073215595070968647175165716274231419724482809647587159953702853515371280239710823122027069502943900786326559283450978630083308914040024256341192091308971420452438062174240595123152404743027283258262547257052768190154298138582339204661770570868427998889367925549936854295341051796301593064110177835450292995663383252645997913664760271385288486768110229446210612650314537715762291702050671458325760204494875433461717500983647361264061263714163685196861909771099528187084219038845051749598078562379405826065319418429535474956357914961964083198611323356120212114339207157134179241466783819729631098849769263636216421177442255169250104222151798089022466567622072313876383606815571282611311217510855059242363616555677879828142980052738814801922278110750554696481290803520142369161085305093334110951847520599688872805537154259390623423052938551952216365178720146908564416358209711592515878824198148222301604629842870899427562267073637732963695553769798293105379191189805522704932699010067125668215575824383886588363877607044717147651351543382186274388139643596929120921126047817493968268435292620837009340461677682697692416756185093717633040700108980897290584384647360323157577394019240473818156034330355958610447830002399615446637131790350845350992811464347992767840533918324810074710160501779044664688068238938289011394269787931229844274063904802129900839175689382940027845035071460930352675207435784655815452926404713450329308439596091982396746959414321804144733236297106013426567633162596508986704148671559447942429864706709042890192773172104067015183272104067928662570790372380834302349764718084188624892956809481430157913994975600557900468015388999825143259479305662090579370919714337278308076271086578644280437234217966918730891223405474125699212852722697683354829667918282548721120332278395095496765432633576943064693320794640319806512840400533157798097204988764352960204650536067806317476960031202870019159164390030938809647718787460704167900523822637532272621397018750927030921736680306210973035174162318321197372953367530976390472429137026668973962673390801703451168272799628258340091108455796600785250255519845951604074094517821850264746669016614225135009951574734033937165593667270550563673613417690322862659440069850430284809450399348652544453042890249373251259364852960346641394166099200184476504005441292893447894192669828442018185191454079515197596607938240313688329224867335148436605684496071655395567957318626190955823605182641889903530350627266255145936602520612035066075943439354413782330818627292360411718837316419986708963022238203849324703689592183691906454196980645744588914834658527455811308376768195198175413716448972718558114887977803775681738125258814304653827963420864275120804649588714841109264288266439226710550540183247419880456987181855805462630139660003312592035663506887479001939368789450052299704224515846137072996017936517540598748613531665197218690042137550955745814183488047519766489569242529333712881443376849954595737903246180694558410377704093707683649491914060990148522330592574199615426885369831869485244598513709927207208958345257366071988832145663371333469317532254865406689242958319886894379957655771974473672205704249867353367360270048470155719687510242231287051931732585418886961597051540991952500399845627877372105155212415462356147907854171336739793432180536217134310917435583070933916707369961771281399636162682540016779302898520919885176386520321633516159411138545251500275504331726813612977723666648899745601144636158336956059028781343799754933602473258179299873706063122485381042316769272822959607498962036896908974748541932098957414336863137542189270940895067973374795468921155930531505272022255952538421517536947042301378130281707726162129711059503887617921105677346963084892225039605243399791065968669818340466828411683450631643006200213916980917251036496873708318123529961755133867612720824741158062240407833600484816587782863525337749742819835491218269323635099308405121924959604478483576243979346068517698740183450854741824304257585185857231665242742306802365955781982187157827098855865574371200751483112654492521452974251713399883895525434425998089156219899899498850948114033100538981814429612029406101143883644482315118884582415112155266750249718912514058441386658234976028310063512176792263608916889734432169433988320930726119895092493999913184673226143800143293150170327169447036851275602720043322426424736311226769686042045787231302017810064324395873778108345073800010136646583126743122222238021898692356008336335806385166284987326155579485336130074946603703623652065543953208920444284824869021679405535955300442245319904430245348647288992029087941325371190407757325466515038887831128371443631106386219640037182315133660234148793650387670742170203189788956582904125162180937439520392430607581111921158186950228242284598237119121608536494374252903158410350574296229131831653372338553465733524244316817286203621285028331660721266115152830084040403067466293219923772116160936467389518364703867522713340223275739854201588161707044752737469855758105821899450184922491935960936299713017928908059928275464812194397369340962997765367450036281990772995855525149532343712530611768981391656194046655867992385628613110472821518899314048991947547970531695210461697109187277445573440381279428527338767160350710245026345674307405104848827712874157954004283260965662323577087728755775732651779129335025756642693117083743161985466978314921951514542353234288174090699913924969109070104362155088756745557417938320541705282480012374990638571746695441291597255569842004310498770754241729335441592311588079501471367449316499156365686347839734703637367417106018052811939789266981836474376333745412404326737982132250346402134009473446304400571478222770194355084189131268041235648377371552807870001131512069631922916338221027751745840559748691274542650528732942127613087002326593886252104994151152966298127726267065758725338104522889199001624350693989277334054850542538129795479324047484994472541463056155139105085204198272583952894584761967745966621396056902456409426384701005528663501020697778621669293932186936814711948457808963327592000583619546714717051002349643725880470022953714140753138738507898711686007049538921145536611134503973599651067713519829876513418863171977025651844123772412404052149468173260602777122769475194772131244832522862943226951708613693465482994458282212888425011415499480086054584645287854818524168046728686723911856556166164737949151573882806078482688012933029635419809207270169593901714839578233220828025085257980528132103943067270915620524766050643792089130694843524529866340569805808663967621729802116599943769905563650112938796230204987405494307192271375010008992010345906244779629662670560059563635386808059420286959287622560639478953565570159431300725770899608930086407658584820890698473234903715540602755554930734790622915881536721745337407831101982243560089876367892271079044728009553036263406503595252548593183736194571361146034120823498784897084436559177950587433218793563236044654272541487818110774027234878175207104165917873611622778969308135301793588923487767916159319887471748428652002832496813110305224021957353494013611358817469223787335714304258793869829991205438070198115282947884839924427620470617295868490773923512318412248258414781629522195026963654721189174860823707561437567053690784491128782655140318787519890848507318042855695710494152209091664034800836837353340813794829393594835218233696808983867670161550764949409626217306376920306370695039231070710883390643431082675694930018095058653174760290285542275360849174229885422802601509800262317752364126261258991859387119500894230914356600033275131860163932527518903779391483614745890732651275739895677284274146332474423644128413652522721281387421853480329529228177995750282400407194907571371999047324727819736952426210316903214681537466238659997136864804715956519898088030945589079500303548371531753056260065197320908033470727966886317205640651813541319009198787296791150255271472874727418585838998718444766233057710346644022562503455881307803383997238519069683816442068336168527413761403110567974095837433093232743456329015352589553847593657361810420311623215564617852366588018891682483740314788730416669352606901322441187371323514713385945632873368170303711897812097794837641573974344176427792538189398330259627411675852593934312821710770804649376819363133555398090448717818743898538976363174482706383999354569573635144280334055543152774181564550029982568430843579453806456587623604704717229673487593230067130176257074379007599626249281578597387114803487197645177744760038122466826125494838025286512392100806776575437590438880702791442422596281695058761837644855778330545895022305360338753864382446248429936064384613707471115659073425621125331734884264161471161980566004443140327849231158548027493589412987694153671817147866142081525487146707042769931739914589131448377294462630702359416084567393113898436983057223432340701692966805479692740395349629840841116713956365006110678762641403941690008513867918995093001720864372502772805170853676919966755455139234543857361852840053411097880459646653133146893680212046015894981088102727173039936936146637342495556259988303665570249283381733035190832020881546133739540491039713717443572837497793455007203571638895574590315214046869872050132126234443683273202670040658239711844994350705163686739609754439028360414233165316402730963941610168664934354996199410745915735496137918088111970172412854903100379787035577556412617611439854059600477076540343733250216121555702261330036866791558752698013809493405319366273373335451066942419515683504426483245061705115789122413844173898778390386586390928452147343019075915531973079023604149382821184439011238766698193250728678102451926774236081886815198441002161905486716746564934385630026781199712444910194352313745623933693652184753807949669706964949235406345308727273495073823652489180959928044371894705907328142140460798365042669871766256799809733679443181578346769643752200369230104478451492779765442779057873673260221831415259323849481501515830145173654982193841770398340180465960937274459678522758936504528441209244437594874699358723807488683815181583735179596761216557789087669400995905041044380810387227589905493491527043621992386962117456714603396276126474260220913990933687592189014003475754988818438087174479560341699550092929826848015612325726300627777330881966348376041155569095883368588612810380374130905494944796845768173568350423948222073897325943740527205853613820257363307809064986003340559027383931008963690600616286312155628168310838263144456145659254730488130613851588297678456902863162097542788523536638003192000863210198659950802038537241414088213613946612064528398859053700144374457889291936733184228289314469692918552660992785294165553608524914069572246986613035811710212457500886072175872321042614114935177928637794206867268211572893902955887479400696910782847116227264157731308815313576167279115321383152271638936029319178971442523642084173190482252356611845179572383268293269216435799302828122949866550316640545818013186189028192923578455902662390929033999244050578194833967487018551818763830962299188176931934377279750996507641084429817490726521607839696396173048707906531711828693775868566886672700999286839166823508800762353423457642760891888088030584951207016490057075774038623334063812560848157988318972968201075570114854425050889763955882093284609997307566750017417331526847269641229958333529254023547192336405343624036972931423422143807328222785676087860740526753111866196065343575701589519946333021076417439462361610949848371930381756972343358321709344624043897024507296327735675008397224680077876267637716076287302022897454691934871043464720489770710028890670074071907436054895610287031443459362765229863080063213643905184214961503142369093916584351059274314115976857830349737219754161357249676655030126754381381293215835425313703651516037713257436702605781792541845058625600094393797171776599886930585337542278351192844665462098634918843441957461397947114144196513867632232104920662892594001144000491703531797985102508081882793007926322625448304411450183928260866740596865924555926762331855560977428672658543783107989092779829504634957530764287753505164749748729375297477918388657471226982621951503337634856699612766765030878438527026763348136192553319312324825768257362967442659225231850868016235265969132201836495562279063367887967945741170737887929046767768523122178928169174620926679269838466361076829906116222463713373728551393939692895772717082551938382155943732373156186703009074656941542505415669413651387135519655163064435260484865366853576347082386144568865172279001283564405768755245478770273130857149738106135155781256853354756120145490502547998543011802791382421832055490468036451613045961356695918306522359409486440126948788611259059032300068158188227406761221299735446504329260154658531102006275177070089253124061394083465088132520837027702343473116911836395688350217149315927030352499684701334946626608294609197182991091402681855224232605665395100801923744060624676879808027090918565989768222048639157971912819254783127577937146835421517512111377853246968898855388882571312203613695004355589090152231895373056721003855821985981072666240190312500068701565841768357233117060078292308794783570894125767093421757976266263385958125711436754637673854186373094696109943183219110703958616936085019702395756462709418986971843903577292063083354874504674808728263372194119954441119729125162958650819912944444226818430740332694243222846909437897212656773905908230200792027278912373679849018225188691158994700593579689151679022299651626859442192887326929201570162120901320695345023153103923047675947425436117216611455253223374275105927645639939714409760579168775802245840464212089132686675716359596695319238366629899430627439459710395745844721323627752618838157140547639778115866259376720369512567201012853565644550887797712221379004539431403201637451575027234722844534155558006603596198134960049278068598612820394120298662264484539860730846931573537358753415811253295823653232975363966196256156683281255840388390903434508813594607475616842777183708627447959681146883398147688095318959722654546179482642892022525190236255230345824607558211008201007920646562294549270221929212601812432467863447198374320978042491765565773380773608649196650593671425471314939407384494986078986604828909364380703016621381604188987974211771009806489556058147712322320498848209388589139112490311140853017347443700666461911474004912354593707925900457516419026711175287400539740394636921250246045204798693075851156263059055665022087447466988838898495673631872476801728033191345375240944088850702024804606037273784891446344787953635407642506106988946070885789045926303809965900763049912028949232806243987585722840336629212896712863285622733812608082498027460892035767806568746991403328431296611889176955991633730619222423690559985963916571627963747727686771241695539716004022543281211843737885399824312448204819317781615192396312907176325365391332681531134531013829529198010621503205362948855297014356084509483002925268791661167137088126687891866893510326325702240105784962789840487155776870161065551544648242104221498776121918109552318752960342255395835425064540054107474201904065792419934432297992561217469981679058825706195749091266393292563199338049877085570604322099649624229677903363075725162736124874417232371414385041157374062296578318143351875943244284973269452114717227158203834102490275387888290424251485563234979991621121310125193783829962766633363837447870056081194869848610189376942650480707606116377022634210677555882037659671260518417327993130997123255754549638498340333735829287663715748375095832612913705747494144575714062665796864771679163116086923439707788183307136635499380723279307075404013706236356474711260617967616206939281708887767158937367389722894166302092749986366106193492102581036693633150692368131893507731092139521815988643172427913898910814921231131107979163620791584174093365545094939293107178959555002539365316223326842054117163574020192092948754828156027221512693081993002266686957485083514247061181778096786518764116548360565443982065918190447937561639701053917529010264864920105991640094198675881381985302420110417894490525367739530779420718067895256555295032464686086591078450538936756835046975431302111250644785208444523184380000151058314299734760380224093311907107857697545174048006211813123079625718381377102851136641272035967919110994055395516807370124972082271070422790912407935036671558093025473653495277477920540130637448490308994702904720581712498008556955484473912858962077155210219537865256822928173459603315225465818514224635537133313600304965335439334712864300401255139341631904388895058344001969659267352070760740447796088301581026351991242027838617739452785200088963124533962831342305119554117538692537264658027672105142417413560492319888567785827786927352325999448386997582762208547875001797889032410051340689130449494263461584312792406721316309680637081849792365810558308552813054313323128098800795066834919857299722210654550581309989702250561885351595780264964785850610470439295544074678214964305205428651375716958523737936661884682546767579642287404956184050839986367462274867145904282867227705406728468427255378614965341339072841430497471594073002323526354700248692671300833528888654316402474369953838735794675469276605119354314583093895422545594937404843649741598030688752870303653412620983010201793868633074424893949538507830783919135263670635979258536968320875254609103363721739397841565114260133377135399411515475918810394896303275225695281717344585013223855301242762175901628991665367079378748006416770265327385902681019081307626570139263187951717673940789449143290148617100711827308420530161500016121881100333086994054225569624678068840344726457875757497259564769335947172063162419664303115162883054339699096175635424597912538324234062066466965798535574965692937037737866302502144606233611116054268666378496078776901414271953876187771160328104851304476677566520697368560010063046883272376372186213706790984682840008275420792957826365447715379483847843898270381019699878565707408637815394570389798995929787790808363897530862157390926157458383799092110882846368431500076522391558356151714975840931751358834805019801376284399242319806931467341838938918589027296421938248205286947256173272746016669700691241714850218043139535213079853342110361745289598139135155644746879853531638367459653113764164140729867310257773413452211690001545427965009392617815231697467386912839212668531621267298319933521478815782658397241999975195754927362500833631236679159683550400450133440161241620767546987295194420506619255216715920709760867068685510228403628723826454011369886444741894391176835639849308930219722638237294808485478672685728608907121230877054620326984919821104193703255114463136996896755995755317779181028764059443581309791703777245705556667496776672930186028267986097970623464436987621492895117259343976546167107797125900867071765650587825307616847909666858334182191529105251072293059739823241075176747612282222836905182468347547388255638198429279989321759081667451828081493078559993109071537052528794812470544108906236538090379782963444288249047139871650621065554439091115264210495209048318006550401321792951899778719400533820386134448398542675067762186689635610509177848323696910223089471670192908343501962519707221869384379697573920082179978136669355267532660604997467566909500794700787557268841506623731143019063832199679868197387880458459110672908493696804867588604102779583350696539883240591193753246239314297437975843092470683317421539658941484082480895089572235946167579271157488596542216668182322428892440077250497663177146088205189168549342450091918391841588258355318352367628891712189244852689757059637876617501054106980762086331115266877029728776942930501575771553955389801947345517754670980093932418831272468895545814239318149933459706911667212988423277353980228075476143867089332643117813269736249188025243376704471444544482529958212437790677324624686555072625847280920057758663874861940410527222924451870972048350328436788167788183952782188343785189934364127572468372734794930356029203253828034639779873086823540894047338549872511999001331376373664722117288570168711470584574327374520666952999389515231872088263852271530336196927553808439622541264979027373442159948130214131402668498637775083441513919502243576212520216605242101268632666971917304334925363060177277556341412943195925480151713050190882224807584996191890440126338912145198399612186398349833735220558693258586582151898799558030749186583579230474958658282930827596817774381818108563235571069302172451879929889355450359361497823760330090223905323592523446493433901046593815087760858447073463991282128688456860798496681677611448249284065749125862341465443109190421352794085203849390865528723573396243661277678172168276845993154414338618828365331061985208455360768076918720089589758930468350601960856957250688898115003907059293183446282107441201169790961910617877812617745965883470976649573646916424676600066965658081593985892279348078096175056872384098739718146919226632345222200867214899841165877396091637402289604768260839858428028552154564403763789647946951526032184723130565033592274134322228890568591686975398843009458613530644090476253169955652876117038550000936899735542506825589519461956634373154082856355452799180130177723671275757380365164536604627933307381680923645395591505918069339703852497027298940089835612052183340918400013689495369440184684076770856091612347340758663651993920722623548215247255475620041725177350353471933204531950843116085001527437893585321822825640102286383880714792049429956247099705701034667777507595654157709812684629830721541507032627434491746642440810514225662896985145057876114762628717333374786093126680645848775023043856323608938355308397886701390150506008284201630098531354343637512929229658223203650106563020116884646908009152342191191854560041672563974465923387900638790306649754918955434324147350414861676377828235152085029863732716310941189568386718591067145625750641189034819150799729195931552493931304980850150916017242150080406177287261813963468699755544291797367865643799328832129656663764915500268293991297883302691361904119040691861435270844376104301305544173046477303032621110919079933819068517937573549055383249044429521897747675540957296574407132467645554565228489687093905716907164102281225358812525972778498468043935787745649470759043356077620299220287431880349050323283611286490219294549545314613037384494086159132372055646597433693270147526121210964618547355677500457897555682444459168975250605459944597785070256167114073690879013792990491409329317845852993133282762290765915550008063081870362137050153860714220628490847571264276686265688782754772745788407560133311266605081775651625661033024498006763669424931501652152945625313253546900792611240681744637434290777841825822273170803761695212020047282251075118678004865918435663045630849391414449467988214767419730107305104261876738221400989869317858300916572704536348366790342366423010986346500488202598667553557084540733881994636648782352720535203445435952266987031110220970653762557722994146918033606627504037580335652640895120407904879389093185603218628391405592136172630203558930978401669468649653780623742853226416916596526482860961791959208014901894614437281762236037025186269210643291293007422230352457383066419191734873728404900278975553996114168547420668902690179332108436474385918146668600922058559962082953976892834157957914679362381737279016094475138801126809486185417901153362289200835009103516609227189140567178930201762094323769939642396456265178844864838610119662862650092120840600572473777486675669177204002528869126681273944230153441115345418616235436370696948123573850252753099024950108734670924767358351291969090803106522710514757302628421641237781073294561127838686056230646139911931975499670144124389702989181085577457225244636225708688489767739451471826385752162307795259602471327037670432481946646129190891722409202867172859431660276029151721826323498321756896348194763496397862868465442851121857020419141672318263138531950937021644147285802017521721428352439959559688057600101483794573285803281939173161292600629708920455428312038691762597936264825961535725956529458429747772019695958594976724512865492695250035981562189118303977334590261130270611923854009486932839884505087768928118465224782793643928429905134589612293172537513071958492618650418205091682539317358101410209269333887696868761070884806602350493855566977007656943334196447304503987815733302305791627342762683517310030026961129906944474318000656858743238620120345121298737837395036582359627602642891118774590551291403291976564946066366412821385689819543885988402586165081347642217989267291637885546437489372207036170302447669454843247784550247559155077161011635664697448192614200355118943467602711445489339836514862783201684403068498770632686179564054414723292431217130799787633816128072489323234925096864317514773009823719171487331092364917957911769396358435154096344275856484389775774343496867126712092675683915111968886924661675822246661336763882130198585389837328250493139808546514025443510157906210985682469522898256731968084835823983436919315932524372965021151362021407672243513057210930442754082512003254151328530388740558826201763050381069001138188636047746807496352923517126694396344328093997474930373586687360958483089734728687872722389425111000836489823464425394036766786097403076445479468081073771119884511109658213255318390760239718174239988440695787031760398194220399399644006510430214998887519665045979366869113203669746636148742195336528536046040522789993378713879544308077982181704850522192018972861091426938664696402850855114337991167724227606664235318536891436158609244582428895739573514663324109730678484576124414067811791678196760672007064168075516144226518986387012434722168670339913069374813650542883954164796798354634603468826061166473122210828494586780111854608660854073759911107556340863309150076565389786747067252052750528667469318390895703747605460623246041537861264859939098257193748940123345270114571011842121278942629876113658118966092328286167274663859070397443742585904250661071143008876337545407399011408157698001107078518222725234636332174715792636888326412593197502773386784218847448260560750198254537758532583959175368820566286351088945306841575200881854928125138746629530532457898442801249246235971607592856168650717847346076392820240978437663276525231953910344036458444582454376699624734835243544337550461381694706100725640502502439654778493074526631157680869495652139519446626236912188950629055067024295420567227353248789539815557617905525403504015231897083302756531535865425533278666494792554051987874127230206803541399900164081327770270025653132042329774508547614700744756617654401895184783803322805310666421625406620284599513964068966732329332545742939685722431959505912248698393835268557720687043751221514734179937621296206312119326335713936715022765596909005362917191857410242072381790896013598706086931329967051755527228960539981034861064774479938656528355921309816934686028229528232507136981279020641758187601263630475753823737358382765970879594495773843229242512847616389957138960831751786462630729068319373519595392630618633196534950108867918414227994894272229098899998558351396369126885853589892247947734333359884952212879751989567839533512162262320228407981465375086255029708654229607515192412923090026354434523214641878367122578272810989108199802208475857264317984310585125705794429317053752199287896577576281451622311781055564217627833440578353233323124284698835081807592534517625369618670324615555079242663983158052362858499068798755582487177483960460379864201085710881200480745991951438274732043166258116125521015520166725744197824675799951805229851214725601691781376390193963019867851573943419078323349514866583392066511262642649391658343573398093187936588327518128917127061797918085949811814470514996232320293068642320022885286358265555621636961907933681122282075152619333861644118637360648697147816990095043093583148633423586673908165412674584202682374429380540889339001622025148941203219375760052221359226397473914843898282401177277687018388072404424648885186388481389387820433016737016451567113001583637771848709555311674080258186423762702333167925156923413954742554839376999324449663138374436188607229174996332084892606143363249570980797261214665482797131490937111204481390768381551101871171359436265600978641535763353050243741279590335263490444886320836471175532849096585405037685146612099489741291381465163439020484461895437473041578990924922486154874658586464047363985024956229694753819249887917392297191988451992870282659358952308224610942265269224797926709544165885162363600207328049020210821188218187995784332022311556294310580095081674647642376345054165227957295193159082472803575108045936303454358632487885488834489024708959819588040427746838143516461710510017836609059138382426337814713167045346558176014641599057028992098552382423894110771431824950299246214886749467066081738747795870111861691080501271613775990289150006209103417125368251635414868853514106249515151055916376289115307097698333367094377630370683292051479551594299744531885364073357579707241979584717321951717890346970724689874663691645455035542341569207258189422734997518101480491826995179289639546664457735513524254197136404335238466781870434967170507498101793534765394797218038109915237502888688738864283606300190316202147353197394391804063780984967154025344952543287460565560480524058850612126168187999154624899106684816516267767071651397458389935034657116430599837519583973730809942703313097511529017405442661262722179636770620330172325151149037566332769974167170289894730180492720649940352666323563966922863264336026710148828486515745761325883817974776382135472793167197985989770917441980857570291608755758115350741211641682652041679294710260386150510752763686412661290517773947788061818177689945924474763535435260538840577455592445102321426666150327668665572055154227742777671775470929161516364377616357818094418277719614906553749768384522620750001882960330826716236983096248961523900349302996823874310152625260419509129497480720744802272920748143880148974145680080826027136175100313568983168021835775526467851487371910768391304976674987826641233411466990913523210231362553355987916551858464017412610086859176084971058896127356865271240789516319684295815121774411809090420819417480858548638386451296028942779102291131430297752953382034224292494983688295550451695101631282386381531846745206240043472617467213864478981396426054433520115749290161282025777129025775258077847402578657353966950664156845540444231273249377916902720997769315029788451422637678853431437474367374213522397088851642926159570100484808450629329863717234532088663400348104504929989505386470523672852926870601855320576898043694154165783486104631337341699280717146607938241021535971342470122693891686978059740240416056438010901679421480016207661682862140613373572304761522678980675360310608514825962367387365342991467284620915039330620184535175246239307523453820753276285292583244572964871451525621628511573284007288468383445458657197177535984982055078551662466744260326339067869297259946263246460317742001248414827228961663060790964463634853557110367146197900044704529626665843551745847618969373483597263644823802200111053972998449223080196698317297141249172832715398050471869009653057638947833711054307466538553453762353484903620639937382211578158381375034898721939455350202958332824038050906902742221779092735042799787460495511010624234515348146693651246744264008610923303568520223388300583780517608052342711222841354041681417195244879363782340568292486238781883680870992002444887629394412921883006991627110552322289374068523781531326842186828386205894164384897779694202790499797506790470650560770896778672812418355351716061654309633094431737778186194991170866131725488185454919213213628620575652797777594290203388500313836753027505139189044768656784423538443053308340557342010372197467937135078807778689228597867127474918521828658562632726512857530779685964676392882369248306712278801545631306746161508848367495532299614474426672630959499733204674012701579345712928589652088576446384653643600915881741345942627725298839055996339387882991686354634018043892047022326071915191363450922333414598642630514096977663784014059345467247799409983858417199547032097472984603482717576501072616201731274637828734138712041902974735409991738476141669224894833736890558106759971698096751316886078598756222950752369861111946952069491860987840576497526333198457829250020831348078527786948189767505645264784834018772331977203820206408713259533211542854727464536778937774024213028235055087165641395161535234682403457361150637083579763193267957706829528622815373088366304202617080008745362309567180763696656058888577093473801078348529453349572400671868560587785178198253936618996679692770342510663380636061605149289925045182866863055353361704717842226923196883332509223596039774903397866048588962919282227366871405077275677344804243411154640393147705536786353585671522434276217027484792727838786033279596527995093085368634748519019654069035451030576846686264905349410987380651924287238077044623457916020809739831692746592761858112563237827134680278635368210255329838686964371175860362838897432346052131944859695929029242000148921398844234802808047262555912706774057098614853870900256735961750718270024091700483846704796319425119449868457860668946838821707399438663719061952599740027799877084640442894420689129297198467851411384687973637503237487359232878561104823456634227863966178175444703148435543657776758789439516211610375104317703092405739997076775350141766637638445712467491462254358649468186999170520360241394513689078045609130941734489687083047827430899750545662102913544652763025614610346556522561207660877500744749707616115340190729813146546327225351294600575461435133900935006644209686032369952312122663049960373147130602287625533826159627541743906190184757605653312564216830826866778408644761101745366413615831014710489351922985672326769759042496976626743206941395316721689881689170667277230462309258060823711045687085869232936055094197951521360813194836246208222788189875986325667491722986195519572824122057419816253816178904605331941865643502253485549377116580319766819531966643135981721915801583926728979980604756192337288811810868122467065552250438626455128342324586356276226548330951144612279539366844674713794749499697824573287720219264679661465914667632095964629547836101435056861144800920572513234983958455114725451365181202898465024669079351763213608887065562018348743735006483988029874823896085237749571688058524231021596976758924449294532856579227251969941487986921322599851406364030415583927730280887846467660056610679775959690192559931124890999271422635684800845872773019053498833195573629592140230798350566727181195844504365410484929081926273399924755222216964659777005220549187811585276944941703087153839826654281682554508230412415712577901861424915196787913054240208449219243230623450226676915186280720538467500105897261555589559441489587535128136219906355426660766891951418563697691459322435989071858930633930056165065843484522357549273063306423971843595602376704062431116531386947608840175220269111252870381479650200440167949083713120258844622839096912060936661586098424961351454641536213037334761152371172793602058159118101652987040314612990625073875944760594460042115700641429621221965590675642617561583282344897468254490958833918234808584141196047845973937287185664690301148717927922958837456150709292979270127814587392485204686473685265331270234132809588148641579399237942144780044151483991986052259592999665134722952069701891589612477742066929136003751920755108633113993297929676142503526349959418269377441462746588472027838067386914095620534028663010812873449968765562920145372514889134782346888163513743021219010252884431914390421664812775171165614653934631372807232194499972319051663886218626097545546031957002273808758355734583394235387290073792873529821318492592663882266875991542295877473966775054716231154306486802025990907824513384333908036209636911731313588479097700108466267771597281114543683419274090817748864331065372774722933195646200059580935224183299840809176778813123581484051070669424939669168013318089547998687692640665095711817184461947095365138098979231629346665673580386757084673243437697031748488781480088556892483594865710729414135366574886332144058500997748761977492506407262840390706489075229413282071179146199509465905304707255230601075168032764236478969628595570772293302038016513109960838547407845968444375139559308351184887394312464240966182558466095800057544823980067067441378104212648465072936208738400802117863106440725840782979995356280814419400316301504553148620749277795464999089662268879798671958266898910233553352200601289374611702299452543574200705871949805340351109223154242269738516575415833400423919752612908512162599253033636018208674456768410877566970576841239308656370204265748702182038873916798662314819167919839205183099019845427532592875620332944784379729774663368618482373841527573449855608396562245373660310487584460737106529416351712567889005025780303810487711780644354107828906745801560803767371070924387584517719462190913676263979482965564185172137233317259469636244174993806624410732474321966634943044841578914986078653871206211041593912545652538509841838297844017693293280909446255537810339089622232888713737418665103701046034904608551945627521302305953078895104357101709280555000916929793661775645681114266515233615477334851330638243441306652070501477548920883376930684694686746874139821425445205715970946518605461392046355195682981202508763569237771330135685304108585652986896906542397301396944241754946994521516775195901806485282610498310450906253221469266954729087688727002379291842182967027967694055664637125951362220893419764520032997229115080429881256491358285701687435972465135871249563961090694002782777515413678350473377896297628958570845215256806824830533054212220572747094279372458420103233491550085421860433987106482807866657314737315680543397196090485510652942495664269194897696258418389145935363731076414320249800489864284478795663346262197343409407855411599096522609180657394793002483298034904286450549382999532273982481078976369695919824015743145738937750348546572893316466326194969304349854627361415439783785664661475605763784808182482595516360159255739988604581467437808877422272394719529782399873028709107228304773586797830794484763622779275547392461141139238079361630549476764609206596383267188184733073803427750391281706547620841368291147301661136177760298009889819400901246088549450331805267178936112459705556219366431601248823832210842525179034897995944699440889608053847243826656269289994014826133089407890194401916408699843570080779414771880578161727904492004181635596284372739123692982467943547261116549272319265014936369368886745520008005241488176741775728177977858038808064345756697097867506415441756494085042694197897294193691340362369003281320544221452426501946665305912438597412043514365839083449357319306944187498598341676539448047933519891309658982308726203821233880809680300455564051483550908862859584296210976642174785483894085312258986265468658675118909607153313487159734210826456009832604494610954988483586955848349577834747815108104032435688224962188686897648803644880326036386224993034203933454522157087003608091474340699577981505976635212519769682499838917893460357307229131250007885861740934946008798297286614649221726436825767485302186344263539255361511596652859510449375095440081405053505638513323808895393547733122872195029635096185012274433473378166417107491273858137555081764439882551010129438249172608701131125015665512192061170314989305426208345228553085804318348812118957768863043381187475474103808487002904996316671741632961161431075524389789352264658118559919894686515245236628519606632569232078708304933693842068311822175418410559398510964485876375885681447424725658328748398334160557913406384205989597365574111580173971277654107020839998311929210450546029329033247990862698120113134487153282261578516942786554006285937204073804389120185070581287038740552973674154078527510635337220073610992990523528710056509171246028806582382610303513917451908831525192660792700665116022434093070318275144134915236411026426470571760898088518903202389236331648708647693626266447052133377398434481579227717105171146110854649817958398263062153758873840444365739832582015012931237210672930489198031921801296987231754646015711848955154598903822649670935678628541520397109005199558644829497922182666621633291456368186329696676180944162788977009475090681093600772686083390125901847424277248433940087030145355953077492379998943015394447568323860590900947581365407026580866592279981807114629295474297297368213066651003264426284463535857109607997788298182837402634882676995815952616645480976650326732192417242020991408848902600587413632015707067089770369704343691027280126106080486737253931205340787017160217104263369240953587920578423079833886793809570177800644858503226925697084053207055879391543059964985326990773414548863599199222819496481350936037696070508857018853321029998368969359787301306333918472909852408237292605551783644073175604617754519721552374890040149653787826979930969834975800924074331290068418607118596887914707895249064641670200058935612431482932490539056310147853368715097825002930432444534828992473461981526616118678390504755952251659009490279541167084059896216697851247436256333425585369767621262643088210772561466012075497422657232771401984232427650472359968845280338768293519266974246169443323402123952064013720733760113809503400085940870253421726331520460707895397956528681292499580381721215727620599047843822091556465258320956517579752922446996653517479453219603957609156813715006087142111092669506254470623171272115853786132830488572659188392648489513124480329646496767764894441230946463339929497515217574638384714488398088592666752016683326146043553498426750353437654656655159760865686025946829890627784362096997554570803602934887585460512226913410643439602956554107618282002172121986860027395472081452749723933184209074528709294774057682741356772703080723510128438456234454972667723559352994446955244260762216852165571969787751006822007973479992015521520047503235549123637741552483742481261976711527183185963997530092822337933721996214920744391958588282900542491456135868537852434026630963911495365410911013845557399657883876973444438350244014446904865927459770432599209871763481316907235802548531377391282077170157115450727447476648548575051568527818585924256807787948262784743349826647862704115771845133144418474036922879257631911971835671709973434429077063624432995313204776500560774891950975764220614153561268926107995475402217048841147298534637764823611983511165223522369593215343469989238548616828845635516886430537131611035014302376947424708607891328775209270375416506814262622588029784574084469717806023606259355082377679646428176273578940482395854945590541780292320678182444098624567047392564719606287928915918455635088958999981033985911915724101831055374111443392892416058487275465863817900491723271602453453657533060436905347104210561746839120863683445230051603269068160668185646185534249450133827236561647899909295929108301298740682019851613223299968333479547380981177274642068288999458647640662990705811993369428610932419686892296704019508711176705337008073456778277274831920657996278751232912468187592570391304889583928512476624961560758951201982390958324054467321551520445104782646282734808865943814315954497782554300355020559028920548895409770442532625726922134918951164152201267320630437147927279659429211911013685145210198366443988779820258713892407424836554483647002667741369044972363266961227478814293830698407253823900101973555981381846009556167760797367052886782337169496958201125510394181129756813707866120051447029711957796174579040229568039789691204223299456231857101296764007960381892124022808998918221929968957466402634285061221119760477211073496042570484248187185649474548219988971328549818193631399493267669518461834414585712519398486799367176423802491418901520692549930418607665599299877345039752398737968499599701807800640442436918113650810209541926655729701199166023823339419955839556486328428286989024932357376904101433025302955480170192671735479237038733074482412123275746089751514500040724482958522124939365712647895077398413908575129092091299505756747799098557071818337800093051293017571191622007875200158638930011845074631827994223212634262718336399374658033699079315003658319800469443223125976509987546488883359909280532813205521255870491308211103818837851200176956848697922233310325634868082950471380549171469468371575979413005755618390019309563558156925596191350574267507301361532094775179896496465393106168367212334630184798564147002898678349366384897824027651662639313709788959004895775095262059047633649355149550988594327225491542436957295290804523259257506913227198189714721220041942292674689499266126038766893484133258249852676973574044728524917992231404550254122939835650413171000269178121836489577346016344757580166238944722712900142058840936888345381482869186009250592836421084269802000442121311994642820162001359546027488512024259147499773803240781220100368165902588234079353466412833200254188535912214341028193532548269293994784934354395460129264318286369479744764847912697571497706608497826197149077712687971727448059990718943655383176059549063862055160432191062804145401411579187144733042414537648875363396794623971304850560232316163238747351819426099226696979849484721819964502774390546189935794478866837386643350176390565706573507350446841081613652123497581314315757376294672167931011998982805980720996056366264756785210252394706728182288938573107802374928997372138581870316468790612638987230649688096831279108181614899032651468113002399642089159046726496576924082634090901499014146285097616885186661526667253744335290985693703083492440949617795094032021320894337307365342932681224303605259749824758041603354874019581376903636125204741741272061748361714070232895639576063780133894574275843934966977917749928128881979427376649645936430687028159575416812986828151862339230099416334704734906292551466387754188810646023667467063160284315499231476727323338893858806364833563768409059746386725147124567570641756174779001868798331222852219075416088481929033326367939632956291215621366447505878049843377088374673786158592742477208030964166188337267690680903249162027573807870203478998117268206841225661479166628067944515568123925920056770495568041161697970491164476094018473143367317015304277729925794600876391241501247088139341584694466368532763636981394425023677832079787790337731258644030406362167019495527865109232506797701649371518048946364250224474886699360191307940607739909296915897964828231844607245716931518570610323251095113478214894173257712984400463340941516645161526120869159413265449112287209099472107199291037964991886669547031175578747899987411341361646177646716813200959315276706126474811864368163422667769090141847819142159363424477241473235215590068695702530110716572564361252654362363610330349304018142406931463946719604257334962957315068921510918644362027803229015224385878920340981772162313105627558522074347573435354796477748350726600913389265913051874978418549330153893928200613845498145546595536616216161584988690138742485483020641318951865449728767927529014598650805754656384125014441766586594331752316184669305235553274155514469403205930838794886424119646355958457138716746767714625001198524800510481313770781923268762840442660647375232454226486629169945228053545304310922039925475281781418227093517683045720995618116452549996641466745738075380137045211409534503433158625802453097283440490876236401781710557360778778399058346426167343075420528763864407621942866489784538139360051316729806943602617041026627073245589996143024318127348554179578957915551842227706186157557848098755269289701827339349774566867756384031530258694809625390148443679342709683211938714894597598326748495115890019248486079780216302247460338764838132752957025668391303810513166423073627582345680043776901404015029124239750004477577866542192173560270040409709689011905044844355405111497771969036978672130187312855574783199958813568917628627480126384913135997659178165692479814929232881405888248686340660519827668089929490923679208610602727429641341820592639454738612582325677996954758652271730317152063695793659133207266298600703026050954002218022034212071173588146826011183791313802955516416870566242539461866813505516318504994335768501042170627047762261587871247850588800826979010884110591536411644894869084226085911437951161219742984904914518365368129395376128501109500152774634015220626022547412057761497343944000594156038146535581007047149424955680018153280782132060029867226326460925108647178483643441920379387031386232653958445233638221270282433386445177310819406067557506894584520077065430596855904805719801804965945246519866622071727622217138729414875713737008849132114532695755465411668140658672779784512444290501246090671327689964230604447846696320684637263414988454116800178683918228752591687691247285566191816474830728662824129783757112075518736966571265404194277735303834491433934895983146818955181322015994730557179549812538672222227145264324816764135553424373335062190440157863618992955014930760429860359136962810195848787350575652722280359700282735697084084256041156338659198888172648776491200944742330352931538807441578626711464874468419464553632883454885361481227036712268798555681208681626727040195484463472549550965452735084587937223762512033202804580328414486524244112982812810711201422150488223765059224905382538976307851308791875094154799378181504597567794401952545866912675706428001748515089109870173150680308682444510798553602989607721650614397840873192093690667565185309273925875194117738777524447096636615862474791999753089878935597794690841517449297418429082388897414295610779812290356951644778152610774934571364381451631048612104364041585219106722964553539293914098350935479713354227106996183106707302216022014662393811066724049215688891045476723424545083981546470828335313497790506481250542974773885955448147989893720584751985576158194413597877844854487931156001732673279977791858418252544783584097227746420196308234749967963569367215953158609780966536564219274583202889936681687997602102991432706180385460805856775416522640971389355352759605748624832236844000151421265189425395271139456683316054899881553546078335502600975801177002379842223933176985719098239440710339720371076336244300693417241588144025614534071251371542412683879436051832130491377103992716838963339425462082272484970052698266577289072323797936582801780169441092710003886878117439264630282890060771158063449470528622660916448356593239596708970134239749457626027474944219339812653430972629812650250030316403197947971885109762400743843264364149926029128596685567933593041562507169065249271895099747014526879271429968446234065652418086199772921618722908391546115907143053259473935343635309222344099137303263793922313377426606584924614402663659913432771012240609727096632259255209666885435831441403050719879521796370451350556979316756893964851876537634483569902644099288517307081424407190505129996114355391208539285701799613312868084188573052485385468826749636506827353954232952056098858524509349733546095465060020478358843866199103750829304096502132355115691721573979018943383581973675413258501662248935987932915600089543341389435144417237476396932323504661229865927174319669793333830877170231007288274999213565126704185959356746385271037318466050401566105589489305857283589203075958241751321934915448464411690930045694045238404713308324229987448804237577524163042272046977009028074331972990617774923419624676664948878373834346524740295018454773802425844357858512349798281069071763674038448875029928751963555402332531839396027107563851739099373834230525200468005654352254675006637413446843700383105902925777999828452721770127789426194384593390668789461167820364127203235028889040046907963070853095547849171756175643718863030813646979268994453869849207782280909847474390316983481258492301051014051071120239801763977543753025643085502427503918745951712067036600672631224102408163813225372564270725422177140452553083653035279944188323537715214047529084866722772978473404079644864698019941825805945283402623577846527055809859327802100350417780588053809038322577344731461092708413712476310887747249699656279494480222329402468759197257085210029976874860597128302192389423004778491560906599891067842840513350786430413137998677533445551227466264810017706874395016785872044297218054833820820677076572058577097596608529096475272221704470624143896364848524228963081141085971533224115888097978910780191987506974298990956048998265796484064936712051507957114779330053113024778792452160084431850466218751095390231989972816100690971655807903824536242829483231527132384756771378072826519512061190404506002091375696404203955604552323939469174652883032963879160706108370773920887236549833264299406391031747888254420928022853717199923247588388048019258855863929392406742327498818242550281042392359965788735569033918905767429676803445001143592499206063915082051349831644812825651459084160064391603687595573443589070539066798987714463121829723964047918876637097103405094831646754584343286189771415802653431615874386589555115558451050629734014417622123955533282839886279048338027497816377329220555603563814310036919546830205717572805545911664423857562378213418786096941405002947201485653013302319798118880440890609683951564529853717591565065739958045376432872089961084542636707194585163121396694951940584053068781872756989857006764535019269673932419036215973362985119635792317622027378280696544193057175391670180198821883454664714871582138572682483700319863213590989914659702784389320752544886257800255796288280002938948786282916829921514271480441331888714548068521264355863511672540081753478619250247590684824612719909762351297165301053472077182545823256696308696918658953992643602179680099288144625910534175925592807047257549168429746106103645246901397804894365149341775449579478115154399082009671858747652373285357622830815952435424334074149000890602649578529038743475013600302683024430330501829689563743822109393273353231945079444324669895327056465359215604713615560558054663827869770724717124854255009239656653954063754929374833285513531042511447074757879202272228862746821151780480070015122934562411423327393314941463864411232366176149142456979379002547495443399916326715723227400099534328257340034962648269441851184453768550846961893981601098752579606005412615672748708954998719029084144425613084237578418528121255601958099355350194722375699171194591075276396359656242179997540697903435474818523763695789771393708882115485347516042966614263069915321008807161102946183734625298555256781985709672661872324229864518034896292730623326118762420386270669871856265835897233789315414576304141864655803364442213833008080055917730335211571363581688502557025825819660992447718693890942186316232596582506295276656085050485298598165535979826967780904798393301471480724386418442345885048228829734154358427056929842544525093285278493445833359308675436821067400038577027952363457062026330873348592686816329069940732772367573442460570822456685276786304113284592493060205474194407174818839197779324637082459071460925702034861602846246314663348952429931035616514884178524433403911425037469616137080650566693059636250266825587818215973362319343239377055756588724774837395555543614784850704168256799706153885778864329660872325773657263027469870562620509165427561472341107817627517313508115277567744198885680170359843822629346786788668546127808192858305820116021380711382010090062587462898945518907826203670632754894937192298795504448325817393303098939671176866897389989322604953433596607440554051592961027174290579969392528614683640985914798689243980810383389659264924952142050639381106269056059878711650688283393250199593559455177268923571316316756913777890625624681593240608559187654513146830138825578786765587265155358679170501298853754840373166386488634658484276190099669846049089466281235264325906630789876118381046433259439508351906983442587056279310901288681667459928305178351747548429832394530765223355937842122605024223555394256300127124448670786065118363672582703434928176222877521788355086655014503781039811845862050508546775512222802969901006277030958561867085536243097634459012175715190183137839744933955343024351635374272931705776958725739627903908848512157999387965025594713824466770780540660984604593060599152666988756765141844099493237446392665732611537544174035949763940867008328303308361564469407319008799958592169938838490694928114372007812883997370530663226158389825412275349485000092745210814407794225223070441480801909483003191043496815823197369960959092424333844620645660593366560969918776291852180552466586165793376606688272680012685914840094002641506010193531367865254374969723279242908023067494774873818672809813306284622451781642236832432070657458680788226702564119195306862372521936463955858720612092981979016371369256529267221757772635884048070331953695226119391303297469465552789659172507336673447011515859159141024844503799847919583081962752947004764961213887048199064148452190760234265605974343090563528170915153464478876768392584645783568793898474897362364263084897025798132386787071062238788402602410469514049531238490890207530070085142447222413692795837916665240865863090587274448119430178569006630815209061122286534711353331962606563663675330137722077943137295839746880678974859151669169805483133634898572017509878339576003125636747217674863151406621795833674228592147970448560828964337218589235750035834394924081746249805424374113410234423859248597376456341555223445349587858393457875432647992210371951339457489611507162775634875637768525613368558505845972261311686297736207181990491619705363515523206608017301031480176026915137314604263061180979161695480881838148000523068628099031738639221984640169094057739604752581880388626247578332253606897132925565879905949825955726810933370417727461114876351246434343808235064447956653850529777747179253955980234494225681151955723470507603123858774206983111810682440942373236541587455649759922231458207504194564882036982922672955321122332533241853002857974314370532184487295991945735177379938213916740718072358175547012977928911785211992158773297960841885066422631335641657744899781053726189186577489278626424560293516842206048209001320940975897143811856067438836008046901817732866906284887532878159547467533845987602010336575961081424891591569112079736652628700014417228856567686410826530193950313373804267398928534692429488187478984425798071712229092017807109495746801736473036066491211757788431396573949330828603341323844606622839390938112888025823565018872504193541062763624779563267914031155104819176156352939447806073497275147771842646990753395425260985748916375025453326024329001495158652570475604755132874288347706413894952674194456189800719659504512992482183721831435147218816131582733748823865942762539949566402201208003720682223613501867162939084616221878682131631870067280320119160548232692555524048703336488541128330120647070098022618793276433611246602730764124250684196254152853845359672813090255467925527555116497383781734280932429819960934089070905307923830619728933505343894624361981076196951446577730666869504599229285934985759956588430949439422360669146081659667264258321009712062294978202989889834018484098033380127645347662743773396297956418419062795105051105942056827284038022471922905431887989213425107901756060053230228683748864011786575579042713984304257104126713975323167814224365640248255958304105458551565106600540057381858910386165119310796514813242462845221579615688411539953267055519035470192286755917353080288838083004702584078644167771398259762399669202016748748289264725731683784976393683180200186006741284138006342262981458185847910423596219074200532647575590713612206338465164841736339997006048156631314234055065519861291755242136648697543174482087477277607249530565303893871760149556417493449259924660265088426282325495622223889380670823199491934237471582397266923253806832315215139527007619778007654811654169630526864137524172038135423320766257494159261666627563485653350549484678807776993422923138756749419070409008165101486710370509712498886683368731699945237139310591716158874114288960746798278887871462669057707392333502581012187554245463031674389152627185209050026237595276162316497266341598488639410941352968214775332261125174268114026208210475471325160843726957005636911486927630233578779741111052352778659214744970269298106100534707565746221578786778885360863782825935882503635179553207696752797479311882533515904378012025948414261955217892891738407831144619444213405864750429489658337232978501954016823150670761648147288779545794831968305181707380777883197324000744539517350345584852399987679169923001110527133107315581350700399749427337073478874798540089200504797897747161158510374733107376926227000036826713905583350994176760187673213118272271753424235556081900249873686207933829346327326179115150191222097017318737537773477113303839884497301604093393464170582880673239103672094683437585529044644928331252640160113494125031680663072837334900651671606494343325465333419066644622880177287612266129750279746774235774620899677919209681850692105663010146034780650678532911466871538335917151772372963376743681825423584642414693526704230712600727404043294917192078129117674461577435202916393867319357154955340533365379805139719979725837833375262396851012496672780492493576723249224641674196580580460147678196624879633645111805590745987950419373509783428638928399179581555095440553427855082363946838399016106836075231770587977024056933982920646265001858018765924186102733680768030254802053370206630429900608565099359496470677133195957679435560847178375825420030238282958539428578079305684845454419258198360503708905765052582294555470879219519954852261855928699793353532441476927834996804166693997550997012783426175596543440205704998302470562386734546462004362979871359849823934852878114317381945937403918498496248656230181198706517131604147377604731436908386135053747117300324015494444082805954090408327395690591259444916938226420001503735926085993453514700346571364246904952541452677694114159265973451207247943349946917445008767364942237032097685909927611139385830220497302787923278457606727433706574407843491912850476576136197388630134326554012920408857533472916490592955612983247471400625463171253440659760239092792219082035890129585016501520145514826930900984437223284488199292533414238759468525110106925208755916712975859147524720194089164275341492137976243884137042259242929253402059849076013667699911207268395530748268709662719408209568287463198496743601124908988327930931826525715998312232116753572752281738906587696207410373639884109458309722196303553753726455600036422775232597556248874890339962237227944627348783790253790359984185554272779426427465722626960230505085823575392068045915857217754557663000727275171841043043280417924323881110316823529169277797751750355997837573672771572332654847357920223874596989881730554262843322631583478986989485626889434408901751497696298524323994733616589429160192503251406918105275366700021726902584153177523539655264809260193162024445199000266250519685873638081232878948174997829751341450431080211195843079009560362865991390961194539047193307010388561483039902788737288282626619849070367798461982866393491542339623732410862760631837269515131291218623077643929169340247608160088692781613834727131053897753283721901756948040495364414413792717343328771549536514484944840971796518810713446252979419064662845601129834657235711921435246562913792021555715906524261528204722107811328145083361199048338214940600419805931060031009241563650422078655059812557165623233934506139398517026728259817565891238114214873760502620463000851416117580362496767316823635290086935491418023161360324123402131742503144636640634773832280182580237594898259916103625330467801084851704413219480490250782156843647331307830578308163998224955598900747779986162813344156609773259346212751904465434849203797166148982987952272972245270923679630426840532953067683386025253982784026064429961172002785529132915802102281561449897616078837353197327509237111978078328835554432157574150818920248397333211530035482229971835696192353911278604498274305681503903217277165958836018988432178071204834248791469958821860645378029770267292453189545012095551885715695550196671601310260287335241130546572961708128166055064413747521645304523465917134154587197206676548965059512657947338689479761945295997386991239456646682148754752594093925163056086976882086499079131157256391723425615969530108207489725455776541478950524857324788504596575184492371460604079908800887514101672028350385183660031875739369699549062591341887008838778274935113715046370118506711097345134357008114980454886951117422385935950545930097279277077129872141371005206949184322769137931285175508471492710032482094510090117165995485034286418295594914121589932781620167261050861030571719328491117606679609313968829984103914160277529635418727181946919047271023222156847923270658438130514045353965322473027875806274359379250925312572097461158776662214969350261929854972351027168746144652930545251979591494618068514457607515257421469729383396405498371196213966541156128327106235868603796835241944723114945256831380482295110100559447565268116977129070549801357398326843973758934934106734325145525905134317980925668352511702043094390643563979445732164395703174721294099193928600636071869643011520036067233387408395903608331650877193806744611861379487629258479113495732670308770104437184263053773913639474833258711871485093817675317120375863486519118096744997894636502722766784161507049014476667408165643018167175174319939448785076181110700435237106438591495871242681735928170158583403735939370921302247266087655301120299756000240783894183364796507031350243653312360773507310855757735448369586110824519585007423122762777519480306380881921844741301822515607971110395632717935671172279458834707374876141897633540987898758270849973786143819933604270769450503328592197915161285202533429326745875409128602300677468803494903283433599440845294962002488890267398340839877683684917831038752282658611120482169390063700482568256269573861632568828492981978476734118575316268202764672051729849904860753520022333376765381621781992108513004178844960914140990950373942850535792393839807510738232396267308156815214039960595895421650772249465756731189367737534761773876895376927349945991168302775833520989760959142514047849860897492908707550114172754952445390464891253454869591302167678543565384985916127642754590314192623569459567484069472996773310110654079012080074630170691598274217233712698562253113512806351784657497455925297054997888507959875689408868587913552233886034112505797285943751045545067970534105109438078905624512254219891465156015206994458476003482276947051024774853649836339562057601147664288451510534762510588987146276025576273590701757354562155922277758160015197666312119636731087053894911856680689858128235253483318186016130404743954779663209515713694998361096128536857494777000503679799915636642708577121633956407600998265342272513308442793478763426525892420421765957118927828311685243716532456586268781005766405121501315871439923158286849593077571477040245988789174597987952664454573491556850085273090369522238825355695428444356671867345422546826427734496814114193965352475819108663331632240312300468585872933508686939205615315508532669196672287642019126794047308025143163781226756805199885393968310579828650479226251807467783005371072017013811322264717543002084382588537594447594342290146878378924330295777739908129109094089756192785773654832007036727679984222995984947150674260119485649786758982586266300519195433367753072078711871439911799196866982329676613772190302721925083764454480476070816074352068366486656587826492925329889449437674656794393626669850196601044412082978509640010298550650668820598368904922051296817002479756774926323547967486612619199062307542930964991805946412069485663373805083078856220088422721961664459898506222013488357621072067871388137784051489763068417849022426362080225218164673012822455091657306817823404091699622230480310751444900375864324100837354609125210745691622112905632904284919813797038142865458753159267437828623638521692429424107154325882046651895662140348615850122399644323588573897344618068108249023445322450738265380733746052276375462519561451241657259914665486255732449671945947332790969774603943279521306534028152443556905791487335030454571778432436563732192123777547092907785306981049983253009250433599171825769330749086517123072326966649566564919197376962353489621283390462236695537354423394703323830951041942337343767636291687452064358117619912504629094912860112999936576651544394723157184301380149647961719086801815930116872879934405576180398755385987542271949690827770346833298835794547357672348493845392313514559691462127604270313872293502997601739080900922481023238513609530433838928787444492435512348633281950853199930043426781949742420826338535724085668892041230520654171079625436535425656774735118199536651175763258577736697574508831849103336226811275501220292392729739402700408646931026945739993274706475689620661359007480748082305668589904875276075297159307618543009780840638511250993495317961366054286582254481558703081431066045781081358746994278038274384260642818185140113393692394997335963254753565380855802306789046149580807010932369955095238844629656935857116410921891214286460994934971395083753463483077774304252010310481641727458923479887346030968983730181100024629642318960223595772488405193723874932881182838627082971413991183472664816258600680710178729829567962291206368961088474472782097039458232307546792482965131100615913617102900879530107877128584730819116034337183406348998465757189654392632011894378001311672126748871888997542416238976498014344843602960615652237852789503904451946194615169041030161470142713204461267068842731068262118857392922903123226787677672793463579465697278164151026807595911449432024610559986733152974397094927228489573860657854843614379839642675101416375835014533871509009950756680096341925482873409011410550921115580960606021076522883124568901846140668310045541480652825507804884413290812356291739765101574532454819536020287955278815707799390269486458062332696502043960740789777553314591217572744685735669421340996636888482013042434527394479986219731296283625892298433614988670086097371340469467535015300874225880736868423808243675718028362997809657613074631846582438751875326625858559413616231411956586556512408580252372283495413174788492944698591416240334585210279363093254042050049306925367752152074254919168377676017912212635657555087688807657454923014286222952280418932292409526004476925214574399946021063000754926307445805313291400231626993103287735847257781899990469196633794259354062973246669940580204059591374750959282819254088772987434149093772815504661028648192941396085355015749256372154878998179799634254551244877114665937817799200173163833920016652409147991902938624896184502284036757218848609728507823019488181706862622702381133998640399975727446100861407053446322623433652238932719555062375150645318702785245662904669420991583597451959176985574924442256130286178308180079275101101611499793536666720645243814742585895290989423365687165159601959986365071759196331382717734607291124501486026766744482827903818944831338406231011561412929677488553986601347929221615000052689252016187937873516753532819223109012054475205331553413426663703446289486706595057436155283972958849028918551270407987967238468495089336471538074813554140921159166320142822862982315315234372514873235076747936437926023998836762522627165165786207035675459249038134521257110635110664959478015811686606436877354093128719311904671862288331566527557074513211023650316682911651404900733138029186185725640454918350567968028334346714791613849584879658657534578963518203252253833150376262012898435916038182616535134407923870165501116627709078780117933092998524743970796166992801537925251271051779636730702517072442842480448826683174354216552382296423754550563784554727091852034427762267840962017239798884535756811094421592637735501063218676808720171616711185064286381244071009558891469868073350139408983266694637847679230541150649728501250273777940256923653547997322186215329164442321394189940551477826942778780216369913856068676796843769096484440706804455654720456014875447510241122836985670230336480874508662493075734831963750359185285748337926547224829206730553669782694083355169710198058814986249463949232956215517621089511674058883954486460869246737082351500541374789412427009685557962153390896669159164614341421689596516640610943403507974245170754184642102093789793994551760817442834310086927936702726575077049618676860607486077753198095201597296788952871531983792308756311195003667249991744471493890518456704752640074084573227867573861712018018584984778352945584121469469383311011382814457748690915821895862910117940559643913310755476373926951695538710817985107244430581163156432154090912236117318203364199698052371668202486281591846261466965158936010768106939578202313270797130233987907476310661941145499731635268480692497695933520844020565920108075267412653589984690398556076186742348119561492248736683743125328372104014287947553954699576338541145021585402452554792588629830019305566940904222668479387423272635193917956198441371545178540434339923395822652811326635696315329001441631771934523928278017114207852917712625986767589260184652560709342592933571609168590474364980072053520075152143464868914508138929168520838209133285263398973703650105718563953677545230511991253733873091277622946172115884617056355613690512748922466218878315475086323979475461048442822496075459492610439855740647542201148266290439624209783957314343072946930215342604694953608838734163342529021115892185295689729319858911519362425892761245096534877576580933442296376747144198285113077846038275565766515256082462975880364559222842869097129593388359226281180221696581760861909377741019718423853175687903785155063385423299003124677739937898601778996631801296461642379146161839604814965344075501664660358130453438648891175201031732607034770890993199908172685496629395955747864007933738085518419095376625839895351278141698406461698213096531918340469488764554421596642626017232657384761509396728719001615951325507334780607282564600952042439774477960494208488562922679825312810713686379403068165864312133905181938063662015961900218766503740035070985586564945542548215583167308471737389645011140827458021962160764072097341329889368671990506353623994137340563947903778174116241304971143560835736668513190857236857213612779408659286357051714939123878515049708403514926108445657058594667105402898348591740740378979215246377846033749086930208498378460927447992435425443665563918320082268695416708020348201356774040177614132240337192365273241265666324005574049961883753866489718415219024122928832734083598154654673826088358760944723153434287610865425921650068783948342323532051675605234852375262685534367871605009107853943609850339388225483819057238920816001760247085944555779169505199125267841489910368568565568471528539230880206166872664882971935962318328994819696636467034849775496230786811953192161146511468560567252019200000858177386575051631756560941146694145602015147276674429606948330272003638830261372535701200623974630244576733747954510366062214026219067365347124292944376168078989757456176945847382373519857119248237048187710403988736634010783623243080547943082042669790211207895121659100518834663246860965026254153563866819102323809882056077465995106360245731240087223904261152460338247108743599957414148523306679653594397317656045618571357979756397384399989475591698297242650922478838154982160566159253379849612508897500229192957093947644007197707198248177565836087883376997994847824321722372123438810553530814841514630130326985518561315030425701636070958623455650081639046307164663005803306135929465730925458790398317763708810720558069593285046373501560719871930886046086817363375809607475069277182407963321358085417098965512950266498887023378060790338486943148338564156555909567076145037079706163789045730478889917464150482998186874775841555186677904130885404725387410091780359378877219857690037335748161389728266463120256605660085280283657229081575584148240292991553421600037462647882585764782716773067121266919292345915146857584400149067741276441372991712048879661833993312970952355056735228432268015129201022528775528950849529523168227215278258605849802649361242612884229447999470719647625719044370704199402897705796368295244235227994788945966522054888508175218579575234044772666158081825485610633633181073288060185900183239384480277933064001214361998041040376593070120083154717507278849364521151978577453660337962049880874072831424586697362046799271576987819323051161539962020686584328080175233090142013855016257614497618431129150839401093233618354038825393538673099996956949603121420022565524934482871564663590180930118317633890684637331378032923748085285162965848532929516533320566885638263287097754043882151604303264886431917838689041028001562503046140395928312278571431905557356211796466878704824318074579113730700747020627926125514949404936874699798687400501347895743959950119811239984562615308295540642673430981552381866560843609503276915443329120026437133391886746839857256955741713715510121983885269027755587078323272919982296038237006333004507899114374315407226578487872730227179365560691083850096127892069074320000621673966789082391612798800590754968089217556697774242708284960223402133764065685189178727291508225240483223411343199586315888120277964534622189881722361188651985027724297595145877045023845146918158306254316424237320470762331768431827834221897094203761358045164285423259611280873057827148233818513104441915762816091200373148011713746138991303337717056445337531209691431551286423868606150516052615726633558052451263174300491050459996978846487632747439966017863678670058054956145641847927017159587533438439913825349255359253085968803853585370516529806150080778513770704821739275513514551431903313149935402707672995925208720726897533040095035569300193925470129492223456022382717730943643874038303520324889093570853998584299698835297767463487054529108494623874260597608045145344846191048282375458527178312452044146285455855313637571777025319218726230216482729483714579433697502558999000306997570502779236736929591242803654271308594346904701317624905152303985225158922438329994355576954176089589220164654120938589096424151201789332606980030259509745413367719689550926284946922299478334874538531097337921452995498646935597859129391957165111262584196779713957248929977538108383964466140014042271512343216218026360969576868566409875012189506279254562889750083610409550859389671067440680027940155050389444217532028191428170268031846005049795682322855768050386711129102904011529707864144599654581153782421714914676288958273391126910872227513241529664798421663759856424463781634333185916785488397363677921178795276556456354600293768541530949401306365565477139258139969908758564669842642517543177578451442348073488585967843115451949093947132676379274612419692460282681888844031443053106075530203665615477414258514125692191667119367183025811277321895330139441672327724946984616682531858809383312411110937198200010542640929132179264189457634564752042378681212502958428323680503679777529140823568890892486926407562827892322524903649516832583832833164637581754528504945966108694007936688918832196639852024594519076157935286055044358584114524099316991101590793433305000509886602880685240243784803959820831345437220930732153823176317906307977067332066831798179000550414296344735607030106953220348073444574138237181700369878839725457469020789553635046194619121402735420010267335302135560297025572630119261058593624415202108925899897034032821759935335146208728856591879001986545249565299361538927435449623821008885865024918612172848547520031639226354501371534782482708886970709823477810583622704276528536064645352982359102401545157473330746151048894747980485438978368479555386118996237449041460960333324746255335423740916852363510125483555013352195507669901770229884732545688436141918072701853061371859387610592752698199889431643977510340083597382427736501698101242737616840478662870672690924991817688635441408548990873644934392405452386984017521292944624818023586771665519737786133912158687510127614594473085001393222854274953313580086080089439052104290850741656452952555719194214507765752720454850693271872218401568442591353986024143921119451025985055568567722410915893121625422071773641489886082869196802669396240584439137247219221639506573287785064534078397562197374265360886240272868484441904531156042868550953522722201736665536740494759249590813070552886327903878965779013022001522134605270833576091006412400951303237768545920049322549658619898984266806759478173160483464426937943758658147108029070444022070919049011230858350846373648356368511129897433929942190247148612870044066329850308738785577584858930965203320400668189396847681533481386622606857664136493915156582811515595624082013090416092477153574226918186262977471539755712392382996864602379873770863192279965940583994714794340079359739211148849784360845575228246901527268481516708187694477132843766033823295974474428731585429974540583670224912053027253777251009840433410235629182453568572456354781767418386114824248341881601753804899221327841431897689704461990213604171840760001079626098559443314260021409298866754534894298003408187573408989574398389715995113152150448441410270434335328241271962059660101939770409938112579017314825210888874117131108021325333345570923098537866817236687960333080112902749324251986719058818186280164647421525449982758956504975724769700913692668373659007856839220856490617937441728818282653744433283468014753598595349290346842997059860600824392146537129854669270251905727915664060083544081536628005878823584059822939078137680231196048477107135684611906038987480794662956032313977783961234593352407441067602512056397160952951792249319826993650090657553303591507617191082630938045458511829811894256351217298019773471461775647329959244349073396407731731656873936116243393639325396180598982978560587212372633530437138876690853693878730571772448477400380662675596300473512430374472495916238293699090445600902136553628172638031974027214160041196395448956110075523268001887857521185202518795109345193007821403811381248932926151743909156747648468327505710469029238140781468651542589006592184043297607233858465799659568394524905828544523478711152618995460436112983996929653298269338242093728485492355258519010006294136632757096698614606250352287952923301594998962942757700832724788564614841008059747079156513997477004228540521037271830537450236827171927072245405453230529545014276381078308531343691498479884621298066603636502796610138633387659452356465107994014513834810081874550548131914823889605212939187190247611022509776129641025122636862693667491411128808058608576207737448672353194406026801446073694850114213429532643163860766206184503572665780254219407753976619614519227097011466015070961973257936564323439614097954668984199594508879632374317695692471332236547533380854123643074552749689802673208915117379814348214363776331293584582453627163337456329598623720020787352219224250908226535272302243457471537051928228666751577139398168716217550820008844009814795520889987918941152330347689696056172867252580112992322302878912531841326004310579691636132329071424388876454699412473664984201506264963100617788941944457685294369518554057636582274296381637146392675216383314613051682112885031076487368771778181520769854031946109425718846231307701873546383691571052849080702275059530465338615922327237881510473161774879108599411397281713482396390410552018763996396717454069451500514855368547550629735368430843536048218322341846574001013614817740144079535508194940436185027377770633017264871555584493527574418340574807562764882596203693686252556811786443533004197027462654911608309294239574166019094867391354331972276850858879302517419095908393007092719315855518257929132285068349600538788042008346938257440832235518331892383540082137622558803986270861182733304173133773137071537573203845887109028082468696859485016564469345559127465462282035697729981199491465050366143428089271180817302449494519145887196268659121743047133088174447837058427841773729310118988172923326252693603416428143607595808514746818037584891645372889654670738684573722078216146064845141640355705324131534762179647239056537771241010403818317975759360967997770427939137624039781546010956553560447358612974542805760011200704299519644603195786918347909771060899742612510163145214564114974728759329948028918938368637898549821637292216189873566277638045525918526938171966616555444829791401129298425416330770418125139877491368209786818518889203164441913645853425211913858198190123449414064842625243023027511798201285343545607830027852125957272971756617274176725236283699984553447087108849124876319762044594090887883780698614679035829782698671733480108941360899261464763048426776003945302723745444368144339637528778779106544770974824798326353204041595827535665168804725320617550406905253810769571808097737950896091028186812182983333151471675618088822573509234340956722062503109960401477856233854986053325962573828562818644100294066800613965841802420939301849360624996580150905212556645576107750157330670763860819524176020484338040903252416515514199538327672741977577887842744068091712025289385953399738048016969717806367779469877982372253971782262592565857637452894534547162878885820493830161911456224867760268257250019140401100749735739500748309085160195993761855291747745900942577489398528050833775034357206032131402789904002853864545482500391834246403056937146851607686301030354363043908222522385814029129203342443565172165904979348987262849630419344154975073474604294770848134349471690088144122874111301646645109895374534374295226186152801601919616277781523799716882052144933500749061708831980888055600847525965723109898167938845181149585677309106933025670189356752202597886130796155150354667780356973376818677137022354181764035696548304119555636745125736523294523859865855544403837573327717833297390705359058410662300145327671419187303725574831693514445803775111870526432503580418909298895656259341592364919771643049953128108174503871039863412550781403537263121969734666266281313273065852326431298050166012747984417294397952429681523677088421933246604351865245757075271399620645899633395543876162067306591908783262290734909001002099584788867247198680949327077565111380899126235840163417666585712101674547173093723453504790410651821789831427617607214797573273611424014420060058476107617464396660640175093849670834311624478971188930727218775516138560642622563880983404697404412120170371512659639249656638725128970734773104143775566396101840592857332329845743055820956389561285401822423907503879326821617742088408188054623110161283468084323798183126138857500360005892875298485759350004098748919563117884987854132018160470331361853495316082382264873460515284595210670788175976317691516912366610730555377826505482536273254364690090247108977518570639228131416764897244638977565542197394536169108313226212973940311125092351463468757912565395134809702288400488954781135030644500358654257988139965759391066064800812461493672225319172492677014691409385090212211602002077529864361691384150208791623358566509947511106435623363583814839421219604243186668549209642681980398553990786439066999106008210116418224591642553259859662995819214139572263839039817454748271108458278169736744228541370532187747591443578768252748569064075341750615641926578273922707368273490072275834996444614375638246432617347529748304737770452727963614373882934774200569023612943732574874861798108784211405888666165186507205100115268841863514114891749314221752841564541382847310001899334104549381306839287597669660026738571465434367307203293992616292697041504049310398118898393845452368162430816605946442813377465154567678859950401556299295780251171887693436866861824803394356000648305576342105912188931890968534075753678684547560663474875964374866552305961478027576241433367543201458211128874266640402358927172667384858672760841680141000549064757815551246933270327349748075500326394334654584753434596555973062863324517275951227667878486541131898347747157551540683539981449477850585959576021877746177757777106868381805647811479866235776251397037007064987407340850475621361480961874656118597014722526254230592513924572514693796369703173000801208302824682147151203418117859394371853444304535136160340356339336595404854462672599749793270521671546425118276266567369467375264039695080337069865189773717480106611940350056274304812978895129958812654139380050996552642727683603060410783024899552024797003395010416598114838131691756720540451816929502398997438334380544966279079193578262412545263332420355758635412901916392490226828807425881158990820073770288178728198752444422939177569949064901715501083944829487206396021698512899887527196313062120197904923279516878383548865959771917865953145838936639945589453351175193416626488478570031371124665531119635305686346799330495286773993308179649274636123600731515080242863909930095189548080746580620207390761054621113323671726395415572096283501655424764747685273943841902768699649517352713831490443502551229350670740658519120714115938597913474548166641415181270565500097437832796991839685276892409863843416826550150519868688902433926465954023536887246193501343811637821424359488818338988815140277706477333579779630337438129469127457281306440036131337365935050493657384459491558929432347691531055380055079091256574132222580552341171262664707084255679159122592192369955038391331385379130662419955607856459402150660180688536309418401246808756647818511756322598409767948971344263381306852231095826205442188690733937309879324867741547798524541485944364314087329332368120900481317030396690932663038552525302062982771059549743005400629895431719009374509237285719815436753088069815140260844220849027740497152916464259240644962875127759236267391414471641256006566310614186960534237214618821624349797067833785019430436954100238810171121757217656684612684560307199474830425309360000452149106033018809463940555523139744704201700316909662407323371193277139666329045043402929220183811837480164577873395654945226040207562624753183825314245955616806666069194046449115861601917945616568709516141290783507146659840255825566371067782330059016949989165429380046285384515358166442574794270328698564499920318333367380847130284780213372520454118063645477981853038964340202618608629626485801647048816524855269203315873882224389688150888967217697710539216637333706021175192024317930653626020278922560973153426634595512202388436815176458746961704893125926263233951802651919681897137081343819773597501813314092564042825565928884936048747513846058459554161473616234699774396158534625886752525661660272074297974793961393049994302405859543141482322413754472901384121671059899553751425780987416554007641102234208258092227013792142017789712082571479440671152593372944217305581940581263895996605937531389765324218324415207830598326227953373467724940726997595025161222744335221124793983806118531814360477008846920069550215545685715902382411091900606112580136228600180270662756683097214700246791490607357365659692736569084769372016934387166788344161894072598422420122583947362774650028349394056421992110984224382258110359951024419367230355834536787550819293866819916775873868285490710767491901624691568531478718679891907304340233327530312590361904686992447303916256486476621267061408654375879279460815455946176827907268721425774068546503742553759413985449083193598292528657754021416270440138124284169069847223526153270126873757199841433701887760589336142353125114896253304301341491331445779881441007151371821345741347718603134245237830508616303441506160595130661134870594891437044500424469000808003871817670894653321419870061178006310351650235918758134592449186836456702516425724071290607646747038386255664341537788006814641211481908445846240838231718936078107905107294699628457441737552758653847253856668858661873809401029021589532079395397605782019550768547564205377765125083581553741173228171807701020357595534592727694192614587893812313929212143111632532284136756001291678524079007975970095379808847856936693305207175218667458912252745218049117513946385211010137474444888634770768593516460318738269808416215845520387526065713248966974362093173289962796311063581424397039659453259946975919608264258902761545523701691422003652508854742583470538873185009248246821608376221999513505089518447645579764514844581345324413963826158044871225308209175825032908447104203806049625827054028016947260839513886639897778761757374588474914792600362585293469785743669907012953660006211373974110241102915159140434744422319440501510497346041691073784623757363354841567671903141500584741126826318183429514693196952625202423289840652450254599527603342456849723356246708880528014887898920644059256364098422181772484707250491733742014847318404631404663230956528830690213268745080872899233911001860723481875610385653115213372355299202159590215093235969956707511436315767767420181860195603620352884487230089956114996969785708243710843700720418215215595865108183011203047020046400096034442721224748664998135749066975550070489178534662446978382697498550338108244084440388987653840114901123091179618922611493256812697254452928690435469569126399084705650474638368003986650214616915155310047485458104734959688935195868233159471829403178349843459449072947800055226020478311646685632012613300362857423357636961109240973453780780677880139570653474235805723141944347157365504098533322288624307048102293939016222432207993760835923982486968303679465842952377334537976864803932658187742780926734044644986788880240642590209488921471342137374686108875382209857595733592628096009246768246661618689484469340503891787512651836442983562487378766263304964572031011900613779786055421843416210797495148022900977361391709480353248578887966006079999121337061482199851987238337524365933426920807796957466996355902105737399010176824546985757669683877691736170646742137070972627260581761596467564409154471429450849072337335178781055113657316280178733292176274937354902876827146239683840013665027955017383682240942915127372625958824828424528355020402750851805821704751552652557155878985921800574210141751606846061401523776147664522009902600105210039837293756109659234407629986999944037055785725699351761940073664155109921041048557698061996039873634834793669700145671038856887052702680606753355643784927642310345869241842418043980561966988545287582773578234448223988920566984469930889151298172813224420427818301324820927398909850071173393727049645528921979971476864565982925053099555078147358726012998296865173957332681204515566305497678201436022765442300659901185036485878787637568413426701572648460777340541369623103560660849219632358646618384058102627345036366655491358388081836140458788557941107816684618404613009653067525588825478990842470786120699732419013215524813672746957955120621148467541928982540884166812422152631129281080382917137918775822287648757026877435716803571346338664682633591245705412971259572440887741057568726498212317761382639627622849399491700857783080819363941260547600592444956142369655732934094600770036284502477287218477765219386501406608495345975521284078651797443202915468629761590174395766493979804239827149801895363763825663201342488161998486368028263200460453148137827818640403258584462546126238703413008093359984853953557838093152431081923690662551547498179363418473600344510138133372095379152264499588712020762842300488048198955617019358991955075655035397025132911994084476377805808018804262361429943503159315712240644160696395017808676450737278701883969536654480800929192780001447941837158240310245447163682415472540055705650524582360033692393361449217748607682719864057271963605249425718704357138052020768998455209253565394084840003631294348133292332199361460069321577898037833656780844865725319257882661387321169776462685015670087684612439085665222017161470743666887091290135737872049244507248670817029824418129040397748338840561922532803818487273194010554847418782233953103313183460014403079610405745615927288181728379494522962942941483759504998384242778826656170528547746655240523334037740812312190290749384262430337584839678609107274618675555482375260527701405169582338460252029585211249680502330660605003190316076126653861257718220347712015679696970564059431530557321407415671064770166273048468236386043145213977006923987384085312328104287666868301238447150339395390976949155355760836303234471958058707787142616693965751048952151487458547985623954537620491137934283483587720104331976690024325529809905325010307586647481906872962779012550486810153952861372864451099457098612804360664501901223960697098152663829812720994340334816660895425506957378720425502197196874011877721537334544086821195320166756110420402153795107911952853140945918680295900225616298335833002373643962920380675605303761508888177558294888177294005802129779705580396169452348765896827489876678858627857770300956753162535691456053548862320115420093457899590756739676852583757929221875598010798955579428067302972423105209383644924312915605165889572941984810739522581046982283215186582171126505206505057129778492635071016892735008323604801248915265990206456950519781849990949777560153185237398685308386292121720682470446079665789348095101767098223856820131487529916119802643682826489180599283833413416544456287072928878091358747383421660148679670123238722952277491461659808244935708977343431058635709720895764953270639810148123533561808414713882426976454636961845368971873712260609386519763349562148416538020209191893537753441988611364314237406139175877061885272640154571171423040493206327505393063801070422064071743353683807816022797059189584982322296925222782516185709422166321678995423651824852401172757774716859948164297902670856589845848673923580095899431428614063823627423467977077392736936967537343609202870104397079786538517108782842238229395377634937766594061979574147376420172605675460568326020441496922781026989892081110091351100694736832797165353078610680966923135220545458443332034209160783255873018570473475460110199376567416697707290759784372298720464453697670121731656198090463219231865230342167099832851890816862237712811026906716183427203464386170295772213991072605705655013185151595201527113441866715428304331453637317498596688130679928077398252697125490734106864226101623449700384871413344294083670269173950007823235191885417252469599797260344020894585468082210174607701439485169441156896760571448717009880482628964681408548869604073091694665548163012885473437106371854124061423437786192608575585785990799062622952801731820931849225453371321887384566034091854715712958520709574197204329439997873596837313652172147729401260416174896993714316327033601613634273879566448130812683722031225750164924906308378593178207966880145816381490943233688234509139328996431782531283258366909776684047773447590320147396170717710707906250056860835379340037740729931389197651747440170302657727733550269127039478301015916236492867717929566413359171008967699134767921479797815057229291689219538404720067875791609031907603000346931407128255142908565006048587041861375225960270015770628481748902783910343729643835602951384558265813182985204398270451887421070208803873256068599229872908393070259154032546934966398494057368282038319246487893152770966560237628851056378691033182233129305437134393132950347991533402768182926290714128077675746642420247217692092647989795511328630204030812258573294475164406419635425610252247580293941206105365404867790591960806875525222590500121223318099061795395473156335591935887344728322768999228934950627228404818013429628129241263228325499059050573070896900093045171701203064193090979535124877024225125272724689751741974988187666137388601039622062908673867199146424254844248182793142452793184478491672654082143225814618288200349246730473415410520700865232268554408404251462621593636443756378005360123545063317763983710303355287894978627994611692414214218672477058239893323908193808768118593490442511518963073772130021960643022707446651543286817591768812939978881440977937846106661990706258960415903267938843101478726698095413557153648556306924200121660952962026318344932282495883953770233512166026231478406092206040973256283795774334904067637717638938588454909185162231691273883932603682495309030153261306062287985768839062818419583763784639145656288168913976786999392404838670936271392623480001902844767012313879202865175215498238385934039301559370597487570704529649302203195640520316597346567893768554633816647880158893767027316585732160501211394021217544792232724894193293483176939505777070913735427477264573036127537629026576206554516869422095344724152694127482734648686108018549272440740409050994778243143404175029718471317173662463131801369521338159429786582040290638204515568314845166266079055771266768828640024443522755301710259081801986057463051513703245147443848793581257900198895456777355711136387640347607380634360343832036449507537924857092602499816494908058561842658769852882294808156302597929659119172128797878867506210436338531300891673529786759721954749522622725982906281115643973272672421046609944463102858351547770019967840550341276021311464030771535780390065810614131717486108188211905581665257299889870986239539731313258765365903853486662747156375440922276869080377763837576747028183248040159405633096095562716280950649880703529487740006491131598168674034521259514314740936200008157972668012580586424352544309535331889050092563820696148041489746454228536467556316264106476581871204604436569755813939488743330984196478069596144694834034094053707738292052438408461674912237933496464165317921612925398000920698442931621523030796733458926628851982796999376444116083654945917044332697530610528003007707568000225756467567912400760918190596087851029720531664121829711057859729620146058268164425110677000543245735665357911828720040089765250151084735999941835602666837380011639905043464080690747198828578459131759534608071797996979161045908040622731923352175813946627907600790291117640559419157107549014217018840635470896241991959778251994962433333341158928943153397229369608701919489864079398971958023472762038093870734144496383235669544565890588174245081074082033137639559085687917583379137978280630555882744481721527032192155555094234145233414648585830665138769535732435624547195399065684378744218818187841826436918365908964475562009928990910783992961646404464024042522447846045236898853748156251617028809221772098111396980722284569171409467315906225155695125460104626809251633918121232929525854407859859591412298974647060693502646979932049079121128682496113878699732999801803448947395185846255742749113424818748049413197914256799994793177830288216140626278262213647030082642908916430762630777467979854772693319004736253713986437534075285212210353459190928235169968183008401831642783936380568237713605851663008235262640172927659575128350699192435497850309703508565879085296983819894834480705627322224167152124669997946950880363346551470625406559752377291709281405056963835009277274118321888224952901726328741697012464263227636468501130168594204321655156239599141548892231103271191445049546327907515979467923350604368282930508955206651982647731952396085534022998244235141648805538800907022734216068595549622973384845520618719368620315597927070747617572965818788685130383207643882705678376966835724025339093207361531546787135718480258162251692904437510335930188202396280827068750953180762065786151165234623219369725010976859900456152875607743953255980314166230229543151530823573510395298037542481575017487463309552597731276679429787444794373057931842157658562423298713572643045103690671222294497905761596740647344677080580395562899335009050322635005430983953518376922025464979353301216364235937057400462821814822480158762197578892834282575478390011262812563113002113204284705140024666214301607743979320391291246487409510685856184286073842636457870459017577454321475489443873277817758470725900253955516841743043821177541008690424517416514648433952891591925796744595855272415376683761567505818697479053011708358165116249891546006094814928336112812350278905377131452354957941427849216712352584054181171893674409153171461405524547152166109679256947541459092065420086829502113901920691557342061001172164013521089268430436774059297789984766360857993772389502359438230579291358499354803023258616930806028705980528387022603577839377011116637857915308254730606619285262369138167764439222676330720352366799786498096088460459256492320098774739711922617523391301303432118190871110440184362261626106355195858343705269044426674446719468096272183124651192724473373617903034408322082356191817162037202765912621462185736372033637268612582632686498480912465747156211435857748432674764956558776161591809387702073575096659983474170896363023811389199764380074096602381164256983352003975589815604035150396964850144009406279406664745672484105023616379888454028834813483541675588087910085633435176180171983942419244104730634943185714307665339836698494538272069708955852130609507511727362599776782403529838181554377595532624496077165480978124470254579663506317483148034723243502502139338905625924047340107834685371600670472739374292838017731675112989179852896776384755926276103889826225945749210134402312987656291246333820456563215686759120071501712751275934539249456601731709863385509213400480404559502545302042574333794089242513361436806873407913697319413013272812614193089171423598856809749701215195717622756016803815494553887922062335486643068589362300550141227698417009027128043220677225935472869917626116836480753516318396530899823520535808986635598346368826077985920758179255667686831650909516585350443388742903648648960406695951711033476513711145649899240624423804893946113850142491988880318725145252808338421928420618833041459373403085957659544938564910740880265042910719731943695546307572750360088982849196011235290729532948133091961479876399397071090876487540297194788406152420656968141011033029985155329215611046847923707037819864925684566671326308526594905865553182099271954975871601028134595027823665479686094127613421049078660850688880643474067203352930441366738081065365216517682060058498743770087890857279606890770833557826586821270668951436437237434627494036335015279194791223159829335140702936488627972255414759193081263255238853406790262334783174335248582518915724256995060220262241534313255691495127452302199595851253678686808409958111783265025051275711789701616244521190200340831607987108524966417858795785358166275951012868131616396897406239010493653408512457292231191880108040608282130271375859278988424143806347245057379763559007486421472773921985279898599895782447211102731927944271917824045431739978640182769420154295260376047949033860440997720792148519350697275020419706076544597933227258061465519097527451919326550007791436018993796638470382349537230139765002915527354155034662507199199649460045716423535842217468793755627841930617960032623928034380788867139982795474876761956672397815593778355328732445807994459304937479332357422026436313308081095869689854704432293793831948002592233213426673224839907503331646693504128926460938740212235435674738253703780610483075306224157941151500565446905735749347008907621406142721317620558494784227227703204076964318614027791580264833156555588029582127096222170078873327117821040729622079353960755713593393524615859617399445195071018716147625631104834479583247108656625091698134339002810453356447958484639308050549840483904626224742829355568836955287361557177124441175451902000743092013756184177282055000549338647537406104749739664305597100575741467147118239223841142629635913973091703212675103411361183658940619448282825042330358745907481678706993423747665909081116232836457447152284621568058700663272118591466655057099824585838019157862825612530780302535153043445295838476875537172234416686735516368588049438010455365743892770729097703477306991903511493698189402395310629716103756755794846909939694920645032585203525925970734508032508878801819449827073358560324780012753563641423452373361752656471412754140498944581249035567498804746828648043889193711145743855485078983562869015426468155959270157840400691055438025374927300270787406935908930151605541078292536211730405224289442232233195494230606465887464032815839313039496696657815218734483890827621637686863692098614249558364064727490169506504675692536204576120418638335597931074842547701255367166500146752645134455456464477530341817147753934175775101660606896918189094336839095880262499458414992154725720833575775092910526845419974227763464067277484942458824813387065253097834639357883299440843936515070332782759476970135704504134153293643867943115716984815778902875503791687390023113540022528646337873786717768822410046204829219817010608077533736476912498913829622536961807509114215816534637814933047882729310438183179222228837868011323165587360145344885992105455649513078899347456474246614623819527910197215073408775051742934090503574807529298945912556574451844837493277922512983462348398513680683601526481942459073768147278384213672908933180000270239900612711060944798704503634888405830042480886258943586035546694619874897937102328408875010379082751594329332012947833470422607170838392679655477756502360790507327119982873805637873378020053603555016783408823741720579837992903995374173423932511733376087240942277496185352514219725932187915343927050897253608884926074420163278545537700099192049061186067438164582848248524084532967097952232900011646878216201227944688280893571454857682604236936929469890968347959068501324051858278768798886911718026881083887479301853686595534552086843609687991790107577386574536728770479807696948538880426839635522510491713680936089265373737406541532916654016567885576802380636530079985670773263559961450417622617791271724337534961080893406698246004222491999114301565283631320576409719525329107696985709884071205425024884989582487520803997544615844046938574314429597920449875928934180257585035226399386940348371420364214154739638288059806896423383144677387781568132258530002430662324078457846123139936010036243631994678672594234620602470427550623531178322773695817191466006135194946627306600970045385368494120224992198584322908074135254416026169413771205440518533890738930667703488713082250652300507904996126426195769817765477860913849399579877808317483152806400175529442287867851854878132460399443437492414929986177492933785480641347302608960746548463696528001002516462172928322612018773390283103290694233720929471251914750440833142136786984888583963930701349478883882539079979017256646828115482456893102299153271178925169549715981144094157958045124777993313037730263380162536419413659739279407691325048846912882339857849303982764008450185517096156646905020221899719635976939718258376479346393465689933404165756204606370816047908834811876687701941751552307092926550025138074770309926545223731345679000522085884766337447583439426993052808974366556521510881112501082311746523705971529950855967443358420433646771703243520649691834542167574250929765235098052828938091911517192797814961428914146146505201377558769930362407802875272836819763477789407379648562631459875305608481097826524724005295056436152848974972417160358603476018207645600204677946330402942649585048286202801713199319005303194345796431278096343891189377018477744799265386798013170254053083889434666889264527879342538869147208742168837924674801799879023103179802574800535533619181436771192237697034713023793777595627626272347448520920651212919681895654115172947945335245027117303112567095782748993789971703302466891641612440163766792216828773882039481936182473123443194811191392418836704562496265841203873296474437423111691418058785182244210978315543284040772978628351401995717627195746220900188602341823860119356042164629535317638874583170816628092583537567491965000696428277019199672369585773389006547211756790456891593909866742256176738485234960062494537111519692216154235888878418523861319402568368999928152158742553723235975457200953336128019899237173864876932919038607233629639611869603627830478027561934861294913412240939819522169846912162367653966150042353170565974593220126509867085992994396779946408711946923502156244616535921783170059919021739221092315756683909601935398180451176101271274798049732502607192178006751440377709982562189766956358528402638640987206193424824027540074581070335568992069428214943065618791222080375142278792419505475897889926994898362903378749392037122921524573822734897664556605236715448487778453966555699261137475045698310176941032465974188950736719742487725329598263845617543063916338076659889183482590406405507096795863856843144410424172419308163593284004988240147424192344709584452986183320543113370514202432666665419215352349707251384336463792773316742983698103708501605456995511222102643663561040700096399685103194274767335593073671776225542762561644465336046435947219612191354094159432965313163831430606321719560104605879940135897183623789132332480299513985768342205149590704866377328422181898198485958211141585018250819262129054001764400596984939352955907075267491053871586329716072181444380445708645073555501053649654564413051080092988635862382909300521246856976237811611445583497989319667293412313358363415485548648339075399669983446235037599436593537445013599410936136147277878756775683737615033026351319598515336831582762275692497877535826486679265037398282610976393501178545392940457771554264623825488949049518730090792122380430473010308924094234928694062242809987978896049938530303090731573396331537841474960806198249156250686528110330796687145263453284931492259227118234190020570579962735885289323908328977137679189184312263814674787472830100413900902619808314316232730927668430392108946274818793794303060348684254489229042326997410033770266901350806810898960317449640525081874829128872614180956985268618777898145736467991140713912314289261814082916346924973312536344035039847917706086707706348814480328058484882341913633766058257857687019608545167535280861816894663030896352721950279566567237952911236074588083551434434030436835232816023253165473782716780192383067933660786051048409130018197809638064272111939416698451118006338270319603337509224875201799834870800899673037690838788059886027934497976838564500707801256228734941987675637609729354032476223106400944470195692701497833520220504768283858037107130731506181723338760144112953220050780519848688359562967492315353141912381698373114994908003773213480397255587598930106886837570835633801475590249378875559807995417701289286161913950888536064212582585759250365124250817404673761070680731391211084566586904306304848835548091944989499516560741409854860171907738790219478533411577818269625441227920612321123794276263955026347581430844856064889120665403140959610031083007338435827341903508411343839330178025201999145628583931662300724335946300230740182360978061343908129400527017127165378255902649775489686844095697864362641250558270765342857133164822835886737838114621848566775029736692713890886493489053900110163110513282885466799047817851130609090746764735804069290546593528919442952489862429188796222977540725401950374623403624407653724824117645398176869402017023619316106325920234950023376630612776272520205860665516341344211972829880095482010616110673642991581496442817905527333654740184718678829743276582408257013052149759707998799619931035678120096579944836158828624186488106501623680729847585085605467426371352202869894086132615905651073790225461454050968244237758023592097025235742108327432541710093500763838802089486712615892374187984775029001014672574975316918745271258001873811469434863490569754391263919517341162299748430922738745017728071988443504625700414043056826463581295316389673084825662332385997317018383860675284638108050301334590302866032243751443955414763848224747311234239027604060986201649038037201491132142776193932104552814911556887008383888208661316323742384852370420185023103329013988477246942518458311072847807947037231385282869986720281443948588554489990670317173333784800095112225354604172740919776622819577778193669149430604921867461028726854253131350793541136524180642109535794939624104413739758149010581512232785774300929422411077107404157031804641453687043723145649049614649800736044450653503076061516390818170418669098863081435599143668163167918563928459533130536496608146022140103771858516321939843428517865185869750766543948994665842102745159204641390396547531109766576201676117116666227700429381579184494665688972984230793654762624726778713905160018404027610749664395323284410346649252166680350499169404521112092361335657687570099335448860903806462277510337090605138043605322218443696221588166839372925648044463867025745341217934919638919305177643365642078714406784917495195622012890454729782280056058796279898342880487832234000265910815403390393077187990713366367540864399519125716956796911988605705230585223095666807033286168274552162797328745395203230023920414759199321773115268581095674852798480278029162210090765008460753489502000361591859881498027143966204871991890039818953821160974525773862696301037313556112139658381974432557213161746272956983342969728796218687109207250938926124148610616578658645404090863551269528545421335501479505945973689324707161678579202380795684320601455223390998137974235219969992825717151609720335290321313268805200811311064736468916814495009989102361348635418816792781743640459205901139201745761946469899344104576475108685835411704035871011525649618684362069238780927182897963776283748072016452097475705799011812611319157059861331318664897479574029567474179171752448341982941161788067893729198586869419654332383415548024248475993550248139254808495277446539297449834979770236078772577727163747338166019974969430989693621442025425298177217898153385821582890202459284267643231860367614104509026060871671553600646939710162640262942366330556178229893965066172016209620248871221538817037988251854668928031619762946379224685271430429188980732716631329937331336783788029476379141490426526574380909586648433814944952869348521138230833662434745808259341252955784700063268547449937819112974774883854199118142357310932216213026657917961679746882799028667037043342485006416919674236117007597051544124136468254481488111905517215694479862107141847813130122262423222375421354073792146940722790778279831489655802224871576310701828427741789440350997793833969441353832355772429221383546551077805116519346839944063239808589540270631209541795592780715130609924277446664951172766572600576038940764564136572526966388548523227122097788169893675146650879431030381125321794420407662770684097386348208548993411482806558476467128541883362908750265840794069948495819807444008043584784615164381815979449050968593425725705257595473236049481734906570092130497325397291775728666389810722412571945068065975776546969615226100313999044995193417932005703462561806343878820720502107359555830739671266563459200261952776103740512598828512004391935024974591445929207795676031011226262982327896482925328751630017203666418695193749316789174640471720148269325784852974033269704425466364064441676649245252899705102149518304912399580406728446805429748568808378312456004741760670829863558547173952722644757748172302927730613898917182532084163249382194765358605812260000434818208154250983441652867203018204392733353310508859432714110010422367375264162118020156359980907904185374150703969384994292956610029542782121629000042868556101204282830822261968137275303468502851321663663962415324825453101671993286512122059104445839988749907503143646209343664668850159153036208630359173471025022157803951913749621995725676568849103259683836067431920779639818674711277193693244431456917614426668515237103988822124558522519027918213670953461124914597545578488645310787670824008325336843108283854177416634692088214271605335993970461495281261845555243900506944442146088915894916535530948710147322504603212457532609744633784182494284039685562408155139718483923019586049167663403030631218886247093495617185600356641600925597718377023072067299436087051843740132683946792328078787099100177071583907444094573164424886430183099476712991522410278665331052119519395876637555904855811248297001941769614251681635614886439395542921010353495818941161282077042171916232391354799475840993944243390952802206317934027092779715300899070167860344646696928658593869114879093451219648863968802288775718426284654440010263933068807410589778470133135054325539534789123006035396430012831118517798345218273430584890161518123275271536326858029620683656326272369337782075980487690742129094004893348176848893472659916251393701559919158905488281484013584658205328343553236510716476804359990568362386448425624064488371993903695911002866329631206395953911629925092886052417097587392996043401853490887996863832901292179307796215559340838735193380072472020358366149350830388169922233082983561842596820073828573500917516632483918526693774833302102544815026319257255032058749085287016261118468407759304298226289825656883571494116178260896412759278445665520803175481410380582239095287807174491614792022270650213968790813660337443498105640321140436463827908370582071031821713618251761107892149864941071660918771183181711060620442948257857590429540488528258470892359098746710608110886507309661435792495590664515950689338759785944421412342628662047800763964227518405236887759349814188071976856083585516438296839841235021173706152674563158189973065913588658092962987616665096751048429222168846883364453836209102927297946186996612334206407478268407323415197723825837955703074210687219401900011900646615103663836222046769514871349014153440083134745862043164599383329852796860649616670993489459030794369405584843661284630926896904135295747675307800247640367117240301210267410942471995537009122222679235976524737184601435013419609319331758381495616252658476395918746268558318408657884457328480186241171123405546022177641037593328187782813802209918828311373358088016408171651160131313445513572978255431652822780793975599880236932636273863462594636524009925205040220386364283642620440746282233927992671117140087877270267097331829044578037788155717508126886474833905777232791141930166693035647336072554656922084113640562083231200329182624343739074986918002807451454109037110597533532197891522098480017487949073353894112891782069206047018741570530900300397194574147679542777995249168379516872332638835215487018387814383962189960422656166825831550558833537754532830069222807149233998852076536009578871762202769153218851072777733231694117074182053125897155677280110178034951909711551574248318361254312933163446004493211890711245021449820383845443017421189257519316738091099065393993335748527757053279268248328548434150884393252906097546814921886358827382844951144215647719704016697614009845413005182302831427098373683457090119562912364224178779859063302860029724329662327980853757174399202644380741258976084840437820336926410165077315978562282431953244157776962497233469473371925222928847822676737083333982726947016825466669805012343096329250287240787908368909784049603723265010012484147447344258920444982120429274165266390379731171699430714939232004991338843743837900773967181215648981261100474639510263541472621352143112653605694698722606150867179929197152343804332250479644905880681911265827661096755850276870238445447337676502248347371101801157035759431265489814408488121012493062353102733057389814485763481614211489373611001497341424431890264565619997108771331180363558337588543481017097337506421517991535462725669126427686946273467478682063707601195063544234540866674221230296841097152033220643139004311830160298948453305554756059944547470082183499122625884304058368513147105534841942627650610617376755339108056765968375100187329700881832220542109659696801534826537046524031130691255296658610319452147613307293479473719069122581445862756032962200477791616006051966867173038385365453244061147271357605126364491357259806658159954425187146999683103446021697319745346348706577760183063054824765607468342904602170881159466910029825064658554788438097599764834427771690376246743102447384861426666878453160715052921540841013306381607423671649016228870719938449431576913405548365610401409073993829431241506238966097573221306833393427877710861884458636272924463351282864286924218725253869144402526846649439809632685403231310824028938599193457669077447596664576899315880343956499100972622872897946886174358566588371527868440523368229295019064817132792593355746278017187982082548285539479268280653088911244828315995940113587097638356998328525616882705836614130806088584381629499230326413300048044814301954763983780904930760847314378802127638405813086708671285404764308457509161441994417646593019702149591749203793386161741670538693254897277735430877531176440856361163176153283641638884731347737334114357366689799050645999694363108285491435477003327222392780975175006169818987377202483056383729132556017511461905368667653617034913464491485155247907411270631061633046218063931581820630100211837334520495032456079205199042517427990407713083317319473391545669341499560799896610037386726508924692464498951933509681886151836900999560405398740555453089274376811109909687650094581095094474078641167698725504470169548475561572666506434762174192045000794818451362520544068990838939543477866984888376453716611313910811636322000808465312484340815403993790062920281670211733423417425656300930759401634458239098365714736508907857980484039468668578195143098861627808440817079283095393436842069257504747127817023677484638705594490474235932906306184113545548825089845910888929749845803839383058024968160760956127269220423704822510047844757861020710150406945910385845521840005960613276578102635417819908312701485255357725306091566367442079824271894571978277686503412846383443183277350027705057750044865419705462586890435900320166513645312267312551671269317278723890230444639322212982366308539435804048547226056235491856162020384556220272396512059651171774501209668031461927028157041715385793745183409619397887477281405383885466258823660516770885072740934710021191457374394179168942412289527611127282937717364168474620034951152054732378146608085415575445595724212264279087747579237774013387497442819228305821315527145493001689891358441924494424438347579816825193322709865716980977099731097757959741418593093862755349513281479071299511395386450605944717569713577421670826846757748361308283830909066854106808503627082731024046238674903179959552957231070078560054770959145993705991055612254159148278840808433382702508068777804366562824894725153104526234261438188744551495686488289387570278506897543890329218876002025826324103240442660391749375942059548151267374396617836288926499997778634789694695981081650138482666992904829058217389001943834797435981846455585636132895684946759628281369357662396605149588385446324775613179937143600223409734151928038420684369938755154737430955810709898233659905757614903891255337150966242809307121050721582298946784764241612723798064613881782951488205697741423037565424611480674297068471354279750441357862969956282002729094821259873165025774627786993659057080721529627705825256182276519948340783301373199388675505301602043308793602486924124458395768346351591469166560916488426618465984985513728572325197854446969005239609822581529902131861197603057272441069712565200541335950325208202614787959524552060158147889746627715278129772280124972230145537569892457726851153980189010579519793848541494422891764243765443421258212668439785736393072329451750861919305670848950479739748316612959133006565248089001849659310826133011774497735249307789894118077078033058259368127776309314568423922641520791652317305753636253437564993355053019109372721653225236059304839288410138159612479074361089104235265064291565646354574167608443831880590073619004589755388764895794739875803245577627554876530991858763428262003401195043167653769613556594328151838654707230513564789346627509721809948567810422450219338621303180836779636402953967251189884999298202103310771382213459015070871632760287889293145811278945226326988292207564783836204603528073246335034934023885041660769788207202393938893441535792361717794923053281311162628003088368458630140485562709965961460791756994392073364040870505245581606314855281866426573159281363334759028157665637977058594898722022484105094876779758888286124774410904727060863477591707685734049890600634311610696897399922417409474552560530145688954357552457639670073043770175953826056919805409145586320438064013578341230840526372272488531638821339140175706239745906122661661574553170729567300699245375670643984172527911235138880139371901583072204630898398134666521159993582448570344269556611914547433604072114046081522684649917516428422020994462816688288289585192239851707065311266300679891521589253767888766303795404648588571883881201870952626246970036340672058950504424162737528235276284743128357394738798312344882554182699603224422489892157329544954942479819365728666399645611057861095236341188425959808545519945080868691620958333007764739373283002036759246842485380057889206377177021639699121627580260718061278993027572480860445689110874965814509876455756631418222606564524804498026030371440725898008474305728572514630977934642098765219378519671066539414199237261046164068152989279781233034766675751188465946136254986810230109535331171759835297491834287604201702567355574391824803388184208328598770631992971037739385292227671109695050525913273414625662710098514651972400936016606767270300464910207721559559454268092879681685859945184640286244522264051420891661371433533615175969677578570240843670998756713709323351572379519844841418602694460576788918765912648703996647309236925167180215583033581752804941707896695389936085246410796015427814025027161064741513009575710456190049719733590713389136905932252409113334177618418743739628905426246281961568277545654212559230974608871151712217352400228058650467627879046422423367698153473241845967395592573780736312920079943723255240602781146310090802161044618431406428478460979557209275347087477996112094579324083869799916611634555811496103482864915342526425017659209376909140369553584584840137234205443876928234909976887315166487313651202625374254650445696972486944089791291524744564121695552818773412316737979165292762561652835147760293973969082561825514694563965364699260859133573664588176855903084955990782243063107806315960855817126099157521010202071983476790359671988123682785258235936566370775661152989627845891252618335569630596171189062095406051653603486954127246647985757151996299025749305774804899204312573676603854514153670610807002102997259855932965893419262366264085502682528269822523301472618913934972596078728657716342946052034981206634960831515368755519054043238887159117094071608605110120852831447816367112155298886099262526818791866596653477914028796276011630038249683018651351767270729535116679688448342612719538481889756080335680390619521751280733753863913887272974824235130840010982268280865536981027171349368562426653040533985665017928941423830357572973381625408555833038695477383483054951413375420982909022587808695744752666631532482924059502357070593438579942242057405148226049609229627614907616133818807440125788259764555477643567726191947321910355569501213661832962766225052710833894973230488034472124559211074982617339828011851573127073985811312493494069554835725849090444122028293412778616171652828789444746563887953862773348759645062100659183401200767755770835381174834373009588000396814033094833426782851487994730280886740571702797498887272411164453734228929703685276754760683767771779966552412398680284003029579743696580359872991052990227261252053374425606570240484261866824886031425861135910832553228401408058097206439052341938712001766803787986302992357185929979244205344514319457497113950432750957271961626078700771660340401113657727781110986876641766014896150377490292202804167193768375451034673858493081460884098481366857543506941041425779349771457709744540513287292583046711762055740636996492524291016465475586631384922357013782981572375634522436577072292652292555627409772135514817876255366487794971350515921789086875089218137657665922734393820886909137447455161947764084344384008947315872116965334559606852123690859726259781592585730841660850844349875736256264129633123358942463639510933629489246089220410881488178114567520450400471474062037831708729994057939263944274527042603786340524752486699449548597219447287449778951028926828140240611308302806079111193424972429304576654591911795880159722085403853579861193096274424053227877680467944947525795627467875208907923920310719503045841443757231299872212357555739206279397185148196628906639524044728042522734059644150219245948891908548285991650892478875745880706022579113987571682586188727724900010455698871926191889249722359517488707773775104459882222819493580390187922097638398142926181114192181777138647179335737294820796075225097374312503823558174758619360900786580577011534716327179428764712773213925974867977973557868152349442201857545504078564738857498051876531217017856553865619221973691377430328289787087792455407740933364116701845816886601399261626491786521014496193771898078075922698178398928928172533075750395449786054946729128979414920163132057601901310664557831107071331090390542099351396232757308963786559475452999483590886634222397755149696299246597682784094621494812194231691862530298747658599614464291329524093998016175195405877186708523307433098643185338557551192022889248480681273538284371986404827465353911010686666586351142282250682532020983037447529231779068053749469544532554913281442002106489158413702576195031347110309042850686032080825326506142783418829391657493378478129347745092307033667740986110250040938543469030980064948634356435728970091509534154384059706077257956018262110901559809821014813085723911744806757408124954022882291411534053539094086746796025650916383884079008515327094647300771387915546095698895265811260954137756424721422785456067769044940232405267116728866350231952560139110997685062642651747943370755175876943724737240726179778273044785187746735777516640792289461435894554135785113771904433548186151543871452409359520644662315519271006050733567559034315427656041802881474307790763393334488797944366722672618743437822804354830420014398742820047231044196731678881627231190137614684296154439572920633637635362124553984849553545695412022878683153152847236164586299506307060204499579216391626312201343731887775364724875002143751188925019828050242842245021126096506675001698382642681524256437066124125318172295988604305316157772066597099230883774975251817112804334038699176384877402590285068231155292361293153857595979604897166520578236353268632832580912676259574464267031390994706877816434599976590770090561547662133796694895000665849779052125623723147229471290726216693817685680459488465488736988543660706160797986567546789982761901185604467779029212000934950957809338814201628788692441998947426887018243000667291124176090742281052812760179141097408382633610130825881282345982487723282867243699900631930901731992298623359398647843402617422560689523387321003256191471972553245485603377919932624238591259837515555898589355786188575207793232111521474447442766939240929087577485614969832618299878295296060419657990214108209129378801634415180333701368517452845731173742748248979056216896957364454317962594914912893033401587688477182513142522283455898831803117944326336741289220487454200425227027796989575642587374474215679584317365057920844185837415046833928021124008921275878263721445218311665591139662723107049281786752469860174592368086323853040588447096412518367359980356506024214870971593020896974165312725730845430450975351710127830624660355169092062834166231894231725491154164514318233966644467969650624342752554646188626952973530869954345765358969875952425765658014898000685144698819960674348018053075156800779162978643780931050496493810472644558196012548638542868538675780563297943427116001698077763848797167250643648264266946739342347310115901221630275806520141417090050472718019049413575411425619820572269650517216568207960011002835851396069606213227572489733121537196989030291726883799138294904558410689581753402095243068048413228677715290611089787558868203642337520103199692357103884932112914637705858575767762452363537082943639703973835254815489454722713682071913937713066506850598053400577109906653075376879604051988954965609370158612427973076380524636427170205943315584414527828915895942281885994192362193716031308277259210828089899448276817032635559963667355713625007223712537450179651890190937142219269526007825491852084945824386446388688535739520514655705864968353782085451551568482071527556502124471450300772200477534931018528501221881632974765194629681870551690979634817184159516314078206226669146200301190866564670899725544284840275190782647054363366209677065630633108399713712337674560521990770096013788433651744922900825160819969776865570748058338849280272909858914474446276646726526695189861860002476610129524329353536093555749005881498437715766442216444463302694706588831262063899320942847058822362707849924972348466932104182684310800874821298992379196565394754887424206573488484641712046201942635281393045320296250726189243819147544693095705826014321046422529370818851726819495633994669614345535593292800305074311996746243791454248896774376381537556246670378330669305918527323165535186029227093339337737764532865666984084782106596427071360174772174315852858987808866678856910669368401594293025592942114076370418082670104754992729618773470442201694949426085263259179377525300522533304525154973740162416472668008772779989292475364540889568951505166617948215001048035672420082720885142940754206646282447037966553164690036495051323940544501515272113893991056793070925322605109018187612586463393115405070978859836346642372117044597759734652042181419573915697903463930062135273513366929278784877649589107210944737852394540752554242125603782718596922998238523523436239233727583503599897402966459419419784037616531566923009968293302141867582683002855066981943924419102994317922310074748864131490239032026697071548648612982079682825466446830485526764469743917856099989739285358195339965580724348584330016200545893876358792093195575760182576835630459767385419188417748694894350051796860649857425141746719709460928516566402664851604986270812985074494944221069976638824323404959710418549847348509706996504107205778649875340234963470288502453984206848283422215167101140276514801267822856994126700557000589715191171942098295228171171612329403076371871766425139783009114711189103393988872424558006773964060634362842096804351391874819760366873209313317238674294805307432117084158798268213752849553663038091986211682314141039060758101061057499639581706467749457268465077218646098853677305433994149888063861242772892434960345036176677234802026817131223886446412517624184614696220668228020952329287819149300835575952579196383583011807771837479659146209754993588337579803914968176276990461078182653568406631348171610061426911806690518116652738345937863287699589965799450036435694677743511144302380740956919956028755729158475940548470170822787577951673604822137539872444049230373442273333269708822643022645154903172846585659401773562163480862936920325317408886779675908443232818401300356491784077547234127190975143342170967336505780418564124227913144579684780827935127222278313618256597504894115061645136466644646540926216322213391115430769106508250229656685749941355796942907159963305307753196139203429621226493127409430324431527381334907290381894997520825512756382093400583524128476717834742777051811284905545943587285781789406172106622987864978452535871563282380413425263874843625326163156524659937714904625024511442832113118591432909168180460298158541839228430880215078616070192655607891716474386985071647847858175571041156826892437759563812143023036242781864454203190079967148331061755379292151275157888347972501081478599576306168552930115622595975538743293877250632544881455372133078688602351141898485028123648720616294511192765185127315629311491648576651938067539005161155552113005013118445400717934672294439419407909105481598289886202872165122789067752503548241125610295368518569497595265416020271249996800864518911253108510570645587020514385396078066456708445337638829567222512155533449932820955782747464071933991499909972385773236823224155594647248170388723193936966907147852700988543339143549905578135566391144153185087897277821767500982576574863044862627191977437903571671919126057415675886673224132637164103758051244504635197617736546222037167442595784911940524772294112200291388845604160265109949873323999807237259554948169614283299584434901676300046021277233933191910340242151345988332279234545341793489874213962053200880057931847771451945412208925417023851111020620573684766865495716212417804286567916838546974861006550595534973198642877264937997923233279950943970353236874810109376041640833439285361498556521803866636313693363372458386864571088861712126781369993787507953364375742449484724405582019282944366077823665256110540475008522670113052604051493538859717830041260218055878642311230633565287380638195129435185837158927775826203725350302789953819904494083931854285866243466545994198731475378879329052658769578388797937465885962756649397986587844198615579595451259804218639526524013100878369345374546322489903986297997774442594242897269959044272442931763003091300043733369210517507612417384190402146085856760470223247103354582255787212335375447437754574581058054756165374979454906877481859993313868037336411308675026922851056161816955915535713114055227011591996722949887534129871132629300486540674255973216347629533658982755310469498426381486949901653866073143251760411500230831640660186568837510572142021288274476387434197450343139683866184941423740088875124955101631703236202175827124572174774047413391591577305470874851332439100888385172640330166768652008303345521335433691670395518856427872937916422714329055613048681011419615953249698122197594089750357161618674243933969896134918082323193412765473831487580044552955735202094350415622848453525779243744530683225394866421856254642636022770065022571870900378381380749647377783305726750924571552542412869555010537130050434822053278601759583670936361381658367009577121456201158167496775058075970634744888626480796804997983108793677932666054714809528014132192577663036989115468790659325497900487859346588064354288432959256227847657290615460046877855158204079484908997254973361283978683074033896235189908902481317759542382737265903269991996354828398827353217319632376228533900243080378563654160422677904774889160328008703065480547334474667245316974961746321017200696992400500495426885981475117568320591949323141908339346567763533049490978009943683829988676311135243479437405597216188723361581822193596127283941808894246614842274230289258467362048643005125334727940810843766289463392133251190947294601555245036444865988778158859786094762693901720358983287619066468115223596007965722875714345867281946775030995991719880410502267582434043580373930258568333298445592282291467449202034823032659732779104991487508178190334291314999780493339276266376227515907315891441903865318622184287802982533396377269955823872492880614358142498422540354934454737998690407481471479577291137449921601847671263030520832673760545274973343793396874264478100408953254222741957096419143797077917742554664917680116731338400753406003329133374842079486216937463505014785708259930776944929490393258585101190870026713690981397239025573226324135113506116497141193043007675233653916800118423382396871837865907935300710202867413301419317208581722950672973136422769191155415022163424339774594737427513442110441371160006395684218530327870249792806622942580858970170138512785768095236105016571044265785356277606417264240256670984700332686847396533263095848088233744623244495987900776324154098417127508075216511491423366189137942260774618554801067319809312520417643258212040455567251433487639497572989425016019887289341675890988846362256991265166221603591121585680500015277239501176068415007485637711425326240733838714704359765339357674208357297879557754949381432654448733383683416792172171430096999315612447347675606857468034522779469718313031993568859361432542741310669317811580328227068482700349837965819689713825647355909735855692863543779751465586252516436877771613991902670608948140183462324128390530113596020412682723086883754279987632577360228217065974064164466780474808409803347878128795854773784515177325224019121270235751393048520453358615463674678292610527183157572435968063759051231010332562448766438878110571391901907552971188284611956884525519615303077669236504899560355354507711797089366355773897336765638459405154816789738578341443836419824763342019720107241382803656271710252208645248349801862144040253959877460531033067787239280081732296138069218509084999397776760954340199369996161028225367172656386324589157615857579112521832532132875217526321210642906199776287856050333402997798142613677659870098196034183646068340429243676765080519548633674757564309165337315051176874509481640089106531237405329690795740953041133936992627754993452903108954479036338246884633201664228540943438774413271122561163056775382421770178304074293038677972699719837425950744236927597617657554992449160162489692582158637692022862839468727760762435985891795919977923956743350674039433204454183847488586115938189012624289865992065758099750780696630488072162383636705261116799500419139807232163122345917515781317458342848229753416941072741267126577268957589496336890404178848767022515177229090654410593371581973807872316762077323571941895291209879425608803379547870122215437802084149848777708995379740897414378642308256018289958478339596578845711400141151889114946357168986571564555589996280274933105107023700700533482292332391651005704008423720748945135949593325487905978866015002493252242040366624574773204720179535132300871375091813967332566660867838027743604390030401034171634973228744860031135368541021092775487680300510378680932873326650386420452147021187722655697084330395689573719265099047608216225215915250431035916453087732960163187064466831513482275950774609920209711134907651820783287077547934577061175192002854440805803708745698303870687696022253190839590041082905104120147529305308636795918603216353719907175595190930040003812298073917602069683417232849620902636428723707133773035499505628486356236562737466095061214126717570322724068526742856463360761071478749232262187134365663579630248081809311494646786420174876454276155965178535862072754338418982185682553709925302876657750258619820744429357792869569277098370304252343403806507729981497352999890466191262082726099618957500950913504050474403320224289029936124901288064796422390744459007894283456871766462066664462195362290652361218715100501425480698731178268387790024601658915636719684768285544206282774809000619616943669413362544743933945912399475766643508137506886624533663767192521884754622002491408638613399184653477768815911587744634691968932080673878911381921680731504636518644955532580947038181184939343277270620134240208787932096889976044148848611492948585286126680049319553344588520546424606639411379133640337808900721199688233269468009271216675414889036960642921737267645802875233252980619528781109148805831445941950301541873742277741278118840636427603626667082135609176039954237014956696466476231471162754802642813564712655442896622718737285157173345462622350274968577142187495199444107766763941952128674856513080430006791970018106518557802034540260941375531998412740601589627714462587901040414148179324105042686280719045656951889090983813328833203516151638378351170884081834626298076352062261628297346352097187677961393483153166445353621621550468539977450664981015553974795712942418362501300852009871129297347290743491554808834149335900059735963044163553604057839448703645232867617845372324209740346368759149986614515376541964913999624649574645030253893751971810684243132069478172151782964075228188996184856187142519071274433198193673125471092463854679094446512268742612839767944906438203224706390862825378671741960213367148962280892896581517906022042428878744912675438934705968237129269263603940665498895627288693009812497761503941212472508363822027525103330921049451779143957236776592445575143875414539105485795759761369870014690029811813339680797733567392983395125465112454789652134466819298603434003078349751845284537932579347232225859531543952713301112809937229045675599294500184500360847451407986961364391336610588490638268192075103048265351105329437631220868051077926172387335050099188000418417394307648314263619648820904736340765799907816411451493854702613242362038757280844541018909792068388238680936440483589375177598506250774355004385021864478330201266001574903691920180952947951343030089336433721751564651031628468263951232963810291917852590536454842718114769093861475353308697427642408945150688079987524247867427476932079337457426245677390209718234741836777483529375912584666243501832010554289365634378872856522964043195145368596363254547532190727975902197527679993325041029129427098415657051509929769167532452710652099855141505873492807274261449418150056744937381352687930915897082229942933580744727583173403589055892751716265155429017777519869391087110066224443309749973528336433736628167070980026101940138423692779482947243052926251844498927031011270829639495007612002335307031288422510978709494692790381288468164783842709497609759214582579388196454716054261792779858873048721925062564410953890820016201534682402152356596046494098380734531382087870589002437665875040101236909704074042216705564216010749652645321795180141802746763204066665202368507908023227909797413376116979583318633216130878383808698408138046945964939664971638763892884214654749735037701008307079255005421119972253789237963241317240255375952198933382224878816494961876141511511471327773093993911440852177391128747774001309801520701747445155350242340679847363827128568547414659862835741712312279331356311432929359106329567148101663735551665718210429281759281144478221332476524475429962141880525759062002006074152075721500450743192067125899586555831124444826900338087239024127275859876632378444639475914936787252788558423120457303443330178378554029194178114292151561848257206091731949888705761429957503520794218718480280784334405309787818013970540142584117561135761279641194273173319384760796522204143072460016148478930306321457339275963864754720235351580990981697689438376627519523211066502145845040191293036433615660696156029648918316130222227997839861093330953633455497764913128157916913226726645555548748768060475366595690693056468591641808998094261344744137360058291309087302965932368994995693005007780021426057420295067974727968367295064317095928851785416632528368062966847943540479042752265235533374167866157430869495770577471182754380420093950497415202079131843060760082617749401163225746461145280184409092074822193236496455406274818180662502318120022832468026137065179513103836185102023018273004567191578621168921826809046570288904988090635786044342008622806265900335590670256092450580288055040756318948687117479138988037184770047817925852718848938081405375324229487475037901139200016401134899394813912286743689310853949701246125102247706975422275913118871029254478652493830991767014446695653540978249699745072859302873717074193528853098924128127520700711788383848054792955165543598810132214467651351336860255444798491540369348557796767792894374969066920624082581827868913923669859093393512527628256799800669404208532655196293615808524668568729289606230361236871942444353296099875491224022160161299316506589455053949295038386348180604364631716591237351842026929129631903025620060309991737485145169606233588860655678675452343416378379645244437571876415813962789221575920540210269343835848423741308780292342132341795354871927929964668084992242593443631352789633808135653679446579755823556206625884086157352769329565328545651045749671916553185465612304055905572459730712908930217666350529927346272857458218233089445042115106090237196861514540892475362659864892507218490835106188385693204270156907879589788278632962676287867709289118998921145152636381320573502775998176507747933007525034381977604763542500163427043640209846059505094694766377554248458633145515792931324117353084360921807558749554451589042811811865364915596230461906121242408586410548195004576156035302063751835766563112977366241728235513190265031643831838230145575969283702323204778484587922216508280999211738747215463794797267612711902032685109031382234606138907747375194154269930992358798184497202163656276960835119607293884863544141086523868358926135701580260366389031185789245942041903718064102743514581857503233123989637986835942283384702098344733315590470309117651091509336149580022773350246786735874671093251501994781275585406779703199572189877189160320315506295640041583271887004939470232438450375897577400572395990341920015738484849386027121452659449156382566970161663771275569329916940143254179279875520528189929807891440119007851975924194357195452077603006767765836071179634185652186848097359802047773438664255401691769990147149330711497149333363917203022430484235536558384067558131973856386152109811953553385254659775262535620022879824727233336293195119820322540686031204292227403690985426447747681187533923868319755244725495759318478597299816028874565607539489382018546122702958108630863351451255013885999011037473607411695037208863655810580912152478674884409001656867815832498868569369540316125583881413061326450475061964433926069971073955852960270929858639645242359288265446203266013832172886304494778177745938118892647888791887721739025061511990713373710692436556105206109762757302432593167857514323101744324027611413478357604702492728503239036187703979896484970386456900110451113828406662699182122343755028228243770698439790771480050954676267538098903163103021332112823651161810527869637501980935851719392162761686263589310622690172455711376835503008412485426022290410912712409426456874803406561853744943739278744305048882455190776782884816064143827553297906848999594876723963244757259465276871106212654407067849650975766222141808030695860257799120763227621313042244200530186905156035543623908815075925802447772922333077677546166253045951155023789660432917704768300978943006922684999009419263923461280854881940823735364150373216553235977322900278507074785090418989107304730477638979844121823664058790561125813228605976710786185005805035835455404985272064106548118335556024192316822565103764080654649965148287603660468755479604134662888512713465493340392226172882633912818777555684273149627438736681722707335360662514159368942338092283485591696401527344328386268522739229877832007773788594255579272845953531710414258178885368493889578657821314486606767509355361039824516946766957637897674081143921625272666162301843461477593000168866361161489769430496990670955244750859254590608644235528344467940691358665049930549745372605964899623427419677747904792993135701775052077254605410099780379505763139945416770114685661105304618436637091445987118026208704178680924522884357926265942119904577722531885871056595285125028108925455514777627947197169454853031204836831578887293469757678545251811682077794330939619832603136147488668793897589746291478674833401889839882846001608570282733454175572053564850996756791533758597736630476879165358123050997219151738587231339392250318288087491144308987137689596742276087929108160711849893910020378907440247241876817776168487413781541206226294812745012511406150975239635879136256665890877653830465590788966535107896959830882441889379068232876274443285619944239473361834327797949944209354001282357369663851462847953556905586611920067405449505561883993889684294541362814681162585465522609768845756690576354965249343205189119643841774480924592564899792106369506253246259041344111256417988989934620138883002228430481435580554791634371660811539780950656839511144276694322542637801364663227760743454195176988019981654650410747950352178528305913123884665379284321958158083898524908011352221775347256125979888377919821812566476866034572054796766178795819901766732662241259595045586480388381105490459965789227649365043575219861083237558326522006081094109375299193473827045757656520395109157782822069833641398645126607799450122535684191386272436524680909012248971414345064055602929047880546233087987879536658656744418648574305510605421807973330240712648780514769237954763317942533376924635470452155615413581122650034553550311962729424992391979044242707975297658725924652793942360318758158280104134625614717887654835239632397460433306045919070222597192441714438757008322942148360957666685870174786340059218032638758557363492126193353921229450358961589147878621297958195842769329849264867896442084214494786531824755853078790974381760101592735991049012487157664346267394056598467844020642911709963734419070867838596846079603889035686844012608989735376150360802661584046260111530559887601017972373392080527956549492409910052788911881481589583704928862534226467957280620650006595331718558735915441669330926544630050707363464445785314948644322185082204614722886121406779669848097075067841935389804077897714505919446761820205752479428594512231751322545062873528698982242480993262373114152374719534480875763823953548528589329029888247428853608669587187122352262127706032004366446066171509093693435929382563455590023540046360105972383301804808924561085037541777325573650381806678876448872317476429425807801635884446306189102045643424730497933736957043685300012071780981598299476296989699271246249120034885742951682529740041393864845254586060023026734991452591982354801828967557948462578378654499095405467520306548378798699147997251674851261809603751209665420882860732718814998849928127467944621965992194937720684889631898202952575741334116957148337271842667997549547273741557735045158127869713608757498864328797600570303948838039957411908739694508100064902847186927009412352830543591456199918784203059001588922719825155160769353013418312309206327798465072224070983159706667594181683159190017149662415764763998835493748409585158504870062921200723314486981227418353187730966133957985403174141978183510468904789332941178001047664698583942632086286211996440898546875264521197135940426271789629630769060427883394684841172538561136174268871013984711838597905463710274496264242322084091406997698281957560739385364743740746428275316253725600502156566781549624736360377299710224810470137345103728423600985223015423982866578530513736688334321864443957236873143811390028501906699074959228965104570819360031114705912592893182694545774152672351502440982984625479810582127477422224979465420225942103299539494382133060212283611647264677768232664804247317817522324193664838484170223422011215445560218506743564510405802661836769963251217044045479763956372462830588230828122414748388273716101231670425376261510777098749120385978860068714166006168656386304765815074039483681234295447083019630523202763275001477102855076894184785719158262732329456078889719754409321642284910504189730275642722012160763833861907430049702395194997038350979213769866331400644616665855714838947388866105214796133625966618839756365794240078967311238924740616172087199433802888991876662287168870986322109073300363902466374747594975263493144668767918088046159209871002735570717820637831047053322373591638908935570161272738813965039679395495471652561539701650632240051256380246171405647400569034592453776486234545396509379923371780824323943397459126055408888499501971633837351042187348796315015546234469451324972078452645312539719727787012718520459859211286901475534851401734186068957793032519155026626307370611597055857726109678712454233846929793633550738459233292863891366802654296012713885519566690514644427849939015859046607832058087852388372177101673439746774145946300055352960713058087559439313194116501533104056928180247865384225704580094349319772187161679066803028585110078573775514750388846835987189366677777198699393063713905090881118857874844472935498486437844533214299352241004506744162116726343189558896707962332682923338230611530818633500093425274613642489157600894477789057696394923988486037043507536937265841480728513534408215371454153741177938176492905306592085579861408702107682814879477066544792907731516300950487000323056967648314705201202216910706102646712451205413339812676692299913559029955553302094028155955112292233992937484740414925606063689512706016467711754800758219985729497432428855354753517440220680704947982738400276510089314449745332707154476790475959560472813875833062521435894625691754758097077061474332562694305121471606923647007342750026822252920254826328463697190921669396867635593524038707041101443779377502287627205292453981786904711390777578908029589127506215648156781988665347139917436156413230354567197723356602789072743439945622538781562180819618710542823853521611599047518988339081646521684336957973471041469434067802243936989534975786145928956742040115709778908606899029766169475564569429947686573149208842563878438804659498656671980331319433183455106648066802564081436909845778443097532353344778865369286526026521753750874246457155865347944463934859498054607574035507175501688119955428467341915111534333393750385939602822518433086642532208202094563852148709078641603291110090233773533206009523667297573924940247204752916605358860160684459827537207186600620669523958850959489174698916227203172184753354984286267554053561374143904557086821654672311069709424051236342398907416552978577840564976409834046047723486891453212692139036093014344657228009022603579383949980135089337043304907625144900427301939119799956750880324239222651119672271049459320549120487293805469356313773876398556793141551166402732294419455570251489245370903567611469463313125353413216240799059835828444850804552505313788295348301099315242445033259659634618834530646164018881367994427763522769757329643913042408586667078496457933732269052639869687895675185259460525733822861750365483912544035311475129597914392505957539415066229817515517743640904847043636708422740373880170156303167606271103207156876847471573532540360245283072955705913129732520222617439772521345950222931418845632037936842611979360549797561509409115106089683351003490985162149758557102982941784307217758919113227296600194112860030213327697012340795709847584274770991324187527279649498982496292717017831496085597485468159053021989849463524894514878589603005373080237610948672009162362837638702702624132438108820878922687353306562649498063245250765656847566200531931792263642621929848821541981836435686265949749537692064669720452133578660889097335684409387979753358566810094880447584728074413858596011526820681410691247465297154440021729135702258778128174691359529557438663546455212752245430813689905879326148174367743494327154636068944602026451238657392972943928303660588760862936976659459377097536051120384846282948334347907711439997001267030832923042877484544462397782822451115003468928196499151203206561254938423330093787190919672077523122928733372701846138867578769320405738406029335911996239167675785310749352178259110280271205050973826791032898386924201541427797959878698801144958245661004016915594576490752037796953367737622678744028904503608438821385289827133660599255566925056681123607104276426805611864664979384843115769891417703603082639306344932507363584837177631418481186644498804949901470369587487220845941972171073307186792435150269916620039417591000259581229456607736042406944487844645605637515778838724754806562911735613376492272661123075854755839790880214335936790317053391706898735640053753559365632440789462608019351320576263280756558250204764194664951038889174925744861080329898193093210027606807826390678657607504080420803327761627952317128547042521931839179588020916712081480705281424549801195870508012431887460967484308862299048712900813515963466121198192216649044105401564617693169062255962078267628353175677612372579012342834516787093733181840197821251562655151589742150060868462986799122549733951883258664489042236654119895572268835125086460463189858902596507110627303422530410590196294885660179796383401648099841375968600934859632904103504575862600612030470633043507697362387211083181671297166327543099382520240304384298014251508074174668504221360491893108579994635930800103616237686747776887922993685549029788999689417733729924069534138308070934218860467108048466442781808460128061927584673401239772607319051918025982737243035155857550112696063064737344694141981200983987020107598188788039453850918283740001798689037621783591301929763443398239030390157640331095468313268949207530199564550876631637421373524888085117468278262099345965902212184564750575933440576066334599321501173985079613212616350008774348877742950950123449608628510170989947246868251937114599719488477035125915335604983711394112186624543663111196930676016078862809979377803149697699999719476434868184752587733870740753780164768972075267361351615019759287577281604475451148178029801976214528425705683536356029640152350294160103996305152129631665683968016620938937120620403235421418294744430817912896241345742360933422448262427997516695112537598757267757743710614021044291913376554105954971952774318728643533669036595424854442047889509900506728239853106320176428730057113965857684027483875643904319351269079985303165456644423187525790060321604472979906763733682952764987170181116211492249448581454692730408045359605625781392092304960099931354875480508014000142837229921617042229678235349227754825056221927071616387875661563448354759518257711164585871155212739930798146704302025647623538676164662312926649290339139051757142365312738229786214861705900341023906582638412762038886115881611142839651636153670548959639902193001551836429950458666498729452825286610451992788264126313511284857165601815761871902473426707534084087315065531418725277111393506073537192918410935918431950874540487124067768784062925907027628171735229668092249115154457583611873176013090908483745339377620708623317601426313937575987329538244100980151263994050604933692667002912886146717506850626872980956685364840360375735338537153818045100248707431466782526663313259990224100257798648413265157118547831550391317870891830088984229399747238661897678327550234221263622008511991409214066348501549516602946931825011017666941504960642069820479087593590971807360866842848676094159988652979160465212671483371458886810470626424120834492080273856271154589982785966639091159249580483403280719657586022080684796229837063947193854856926273869629216809260820534142655979721343459703143711106878059726051112357542748469479749094364421131706578175558911716624245958035880276499308382168054567693676718604498815894258840928390239848226551118095211186321562389220742537914953384926828608205889649686509066890314306310173654664572264560280657332013102150690806381837426930112439776780678036496289880465523074548887178205410776227846310724492949713217278387063553615756829384055822727845013413881059909842080300274560416149714710855295644827658530369586837165295553376560792624814365163383400058229652612477633864415093554155824590865411476961421618055620718563501751847915298973131680996794237906568330778142188446181379574223363942977166950976415046936531209781104012261488763883359336057216982446147402685407528168226888457707132201227040036310425170066875293502374576283568874071207286668226705071960836116165653657400624430838759973917404797189433965525273924161796417222347321464946909828914296018554212793023802784487337988966711273763355040987265063215203458231964816120385738758934976479304976821750542028500433019774559001548253645286458095446026214055104192429907794755194187283486824050886807346782753770947410311620703605949853305172593108909229467984043288760767894170775590233610808815746701285314343862414511583949258481260597893296457773282022508448418772486136324266472874759881938059089225219498616108429581977924884095715688847683166079592197612582465561508521135112426650574739809120038891777479462770656871279502680623391395686331813728295248310875752136229467690273348569154330851016780869271047950723171456063179279088805180794342224893946638382884919596475488916177472116400395177444570628011791298952309982038144460302445039989463984882853800706405036272893866279385791315533189209468009621315330685734934700777169301121880991613644553058692158734444536023675850871406021839710528331549868231679928634122904401698452693902276815447755483600315909844461538731293369483691035762995057081152037002331560729430202215208308115433370295561894805393975345390591554706662428034286202083592954810538781850484911418901987864156322336304885775153474379753841298468807930718616665185479751088535795509020550356577617712234147150166690258085011257092345345826132752568884731288021192370741041195627064929670683470778740955852020740870568206121591077164877074956862850417781355045477643813022167030469793699996532105262589811555471164733034675782902819505043498991369893782340057018496651737018812619763561707692967474605339958629797313254141810133717162191602542008119656894848744243663183813260196108557856342947453500691866003018283891727277766363409832149822249993370177361276655170711758398404088807269027701800782656593931758650612688457570129526173794570575536345399200977841566449866284116084959250220823746236312073627839893944385694909196033250847617365172329559146869631152778404055628314893910862872128815166196924614863945588329335676653675680868401411377934879033131230085467711824280855668761610420614523368782309363016246710026984768061300597256997593987391594288683873491575241753567035966285571680503924056192678814283505501880331657405878006541452536591750362796575757653477514198565428628466097278184200162758675923573454975988764559391902846630257814442265664581565078352944830208284999703704595976336557215655595799540970744410403881394703330108232055692759846058072936321730763727946398746796170698492114168872455293645045814084369334194113326774520236395029642015459403877931632599474140020515586569503072121319239583395599127809776079569582513026167987235037467285656056314924621715162636618074358864538486800357445721930026976122883295995863028669964687000715466745039599532019217243790854227662009741799943107299889124216645821458128940976460896586589205046489397087351704525390683571536112133790195706191949228045973916669916409530301389669173775021930918253958327598075884818060173839458276295998115147275439308502973239095377849716666331181002747588912084518016677713309900816511220153758009241546744547968139689594249956486478135993440096197819553873317143905335938220193079356339414481896142591300239929413711008272531007556308475325597882071072750296801453016734303399690897969877916170319389784184352477401451432238519073990128560344854441680756688844952176484115325138912180643842474350615698656186336853096169944724161149651180598264217606935362848293583915915750806385467639249619287412355615987695242894481181213226324815162352596035254142819014228435148327087197585744491575165467100461778015849663535903804760242430022971319436121578411746599494746707160588455134200292878993541645253196362802859358812202037345052581193706824294484954748797966379268657290928035641618454056180465424392219843192196257097202660465671684044977410626587987993769510058151745057822054770651669821836690701778106161612465691045666906605438136224245347243381910525398950134137656735214511371540308712031003691504057651738724316604272036961130464780375940713794120052329335343951539370618295313698054659968800785796995930022974764195036126953035488637686868409197688631200457219472560451043028187255372708240630810008014672532904432612039826743340200986407242038571335475339585570464445566609026599591660603392500567313306462489811678583374200126096889108465629337260686939609420402537788209272898190662115065941635497147479256267976424837213605142833811753442821306512135634027755920556246039069768595136782237930237690386986770018926744089222179321669306903861427850368004041920664611289810131017587610462412207023315820103298412122392276668710100534596464571105025333336830945444023054017229107525923666897365810204119055031856265282563840675322185347595514679225912483854743754045069868679613243638266773071416943241739770455508834990188421967570587373036642728045754780526742859059824119662199473899748805834328974790117959978924523876588660635211284141577970405796443069391394133066480434515268260314373793010699087202513816861475494034359271897359461349094079658540665935988420080620263232309567568725434540657804583994242204798485109801778369858378794088309402822536191833647170609706888615912331527144536121052357985423582097791172716344173906870010382963690218669903089060629966997901730654909286423771533051189782872393038881398987838249006128108891419701885799882871266678966381080033971174309276260666060671567368777697745179053030095795079865571745770691499711570506718395517235605588062865557228076589146557453377054434498419889203805404371233524204230435265665454810082446022199760847639830769069589256817894090085507804834825198299531452879067255392954669989822417857929303758888631180267465091465309971425802751348436890069367250784501196106517062049670290229899140502591887827856335900805262214317513860756749731112037715481376399583513155648281473938609644412755029683486241039079275584028882320680928395365894916371276641847404755540633166397769046264780349297731678618210863489127239695516131353355890245892709445799268025704770391588778105656929283362827986302561406484084937633310046510841802825868754634800332790026320405722804935981419439788290245072936019687886754217970896738842147558523845470063023954606676213098933089279216909711359620723987766869449668131294673040726005959338222404041534346808920529152333712037616046851038934776489908725497112001351590488710473582170425371022004965221050093370659381989987239337687325738315564188032682630896076865871546100161963041988515256739914148799325273870287114327708951803063380299502066112634928228591284394933066621965948595792158479696472511049434365079934941662854338406088265798397637524709140271894107139440631867553245581003283980158262663566906152648631632611754707793808493893688329708520962782719180967204126122353178989138130584497131992859657094815805380000767046426327457858702498486278678017448045517677613691710516909761380505880488318030912121669129942207406558709174506344609145027131502577115620951374012606009941914009900034420213685402463933232886305562549538184672597507243052731153538916440750473947280991531818824098267968331254555542856204659977443793733968098435125190444937867005966026556658214160866694776106105492250119878455534898913350320137361600151727863578516052161249161487753747816393740586017408775686977309065143204225527839910589233507308845584058473767419542618471707874827789647701480922720690498613937785714321590616161777747187253718499776345964404782688626306926752617681576925466511849757837576610952528553078533148549425365277645320838278109951529764475814455041371951872576495695992996675775995592868470099519865622293259356428663926798483288391900083974977273681060423114957746386693232745628478648325470284235098848325228949239533283941487328945037398212320626900881790182603289952171882653280475324406338886802574212415986459445963509710209120902320601870001356701106879652263063616812070311853491443486694924385954587764188262682473087086211527321412590230427392571746993259817716401149666858393065560296467883000468898789459229401880387876081053576748147799088360552057577063843120551372932490705243404538128993998743610093033173792059142232646365675188716831352605755209457487401004170600416749115710101894630347984642888200220380154618071212214388744470705367623969762952917997500957234457344339979270673498900057095934188194997684924962306336550668959410076499261286228420870684149105968290628395865020541982859140721044949223739625092794293249192660646397034979864105429013103631894208706233426599572141492809581712556771908061902785834062855824122576121191502136407047176598323527922568729836247460845355467247256383903103663831589017917388091291388657537560704339246911245818847726039100515138240169353750144783890740381210211312387850413020365193383759448736913151916232414547983966583018099386984083593836343606377964993277265554132917969015785981437693641076651932905629820549066450600502474408863316722213606476411164812606534257128276214123338869793975289074916631893168567865437742840786654998950932916123176306144070233800011034112919810972031175541256925462290225693273286768646947943385267678149322861118571479742873415038867343223795986269548247378410816925544154180517046922323545014853127851463998903103526822454537977584404157816242416660469813710223374090666601036025463669998582244238979089337042006913160123866032077402272256360146184051845082993146526585591122814928558204138420151001300827809152878985635982352429064666970831138785363221540564142263873658680148874308679816746924505210303652839922021956914383254532377536352971905492239683882891741033318017421749714344657963506109384996727364173532464060394141581904474482117655323068453068793215116597826233333463728550516460909048447209051159650975940702870220063997081362481201975525143035652460860054068762209022649042265599866933472035968783550929509475302075191238235113658092602000972728202363859191683181126157238945832252595376827873911777243724122564280739696083033864941433156676546493289013804609060704340308724789807592077443581395285298319719118291576610393866061454405169430477827538898600228017094782444391821733993891661074884448843534083626523083185547907203680384047218507959158649327982885299330941047038926713097547955382975886728779268606356521044916271043513844819646726437813421137321367496413309252695819451356959379412008094094601417804295796884718499551090915785700742104477519690109410392585163205590144334806107461173748750620133448722997430457598656374386324790181613123408545379593440870266562485062438177453810418398461278750535434235511663371547222353085027244345209218063691921982068550860051103872250066313445691393227970866390366498771698943669207697539692816391742732549776644928713090414767574047774899224636745613327385648726006979371541749015419888397814967301408812734415254471388167154139087720683999757620363547097768146244749247886024706400831777550110873926766435343900656985124630341014527665294872827694576824569445919024634615562090798258003976391654150269930401278331289310499723657035206198422166205532238825766192513738402176278933001581326036939439247210195670646860443941830318547518766075075491908803844747165618305455858554053219292220649749668808813535967482869129228633131765248036469006635648776691286895245369823986074485290741699872609508840225768364741056732528411840132089750024980806275482786920889296047649258954314595287855803022115223044384842406058946797140799801361379594387743375830326307885741248550449481184782934921879664084476481300527992274021250439904051250803748119700924038244438392599212143376710115786767660925550771278921581477556766048620496325227832947646423892684343713495413258947179580964825846275660634936782523498846782585596417563665300447924380049358372106450849860794501085635031143002963342181197200694574922359847689013248900515955639767657006300824082854920798554829075077504435693691093434946515703857038984773707542537492418048999121047911180538879947586060991286063885941785620873831980961285192118979555724725137329662790951246595957075073079777773081143138863200305234399251237535302041591004038493574610694080817908443885545129159338113376616991576608713094286005889582336197626197403933319752011122808762376379726002534364674192644390825407139295292285007564340308802764000944314870009652233319487285455337445414381238272868743417943115180868931911752473897741472289521453017705502953373324239153652743844202673263686564760452830167512341676109214969396694962427792155818851527260586423336835989228292867714942584450946060137379976440027234967058967647342389651135407787747574504818227237862838662266013803829724331670775717630315201704770014427844696175653125343983803101296930004224439626902627960730821431374893611704578852015334023013175154010024863308110912227984515039116673904410939003958705532340380306992628448869412446879464663673282804796808536768336830151713114620019607896716608244868235281060796390699207540764880404294415215641958311448601041717436690690385147519756789784859721805349968264073900755704430392987903187051301552880007407239607507761430162569994506090634332823221034844001081095705186453592549705817324080829769860819761751494716109436120855879465473797025711211657488492105307947941651650557394333189632201369792883789066179212957209965427344070006217035197052725846012822676329917426569878501611567641519626878648921535058408130293523556072777560348490848057698711997558861515894832484247499773143113886603391212547187384443777642069557183903865040161058690483067846888977346189971049392345101269479279917655537426132861831260093237868440304472249782715501602417024471577212155640848760459088994656260294565378260819837035391033329341574156875516954486902778120702730405468457964405911254529125049952848464751867610123118477032583997140699657058313152733791348943869722859770977858687092161237657954837272698812064778951892510081438736659076638135507622812737922112932009608630439224486816156596601148885823192052537469006560121983597247139295516466295193093409706874321665446503828671531770472198224976776635789333683423401169775678384954052151185376095148578419315438496168613886007896617706282602707060763579141639079670920414926579927373718537718604890527134397897937788712865195986240527878764824538215117577273115421272128903492453423948198865103017655380355015083615039952481587573108691944490234510769810288274789003227450192027917105167393727100380786114230589287704671700224092677646283260556121946594012582978148869067310732255304223183507978101093387743741951627024966523796839504341091262697784764075646902972165945632537959105389001896678993878536886042240995910451178570268122650424642213028284629829769990586155264884549211447281445272517511973004208066051696446088565087366092937244492897904785751471153170299401752117535278936159836989359946653180291138393786268391283703484607258073985508673555573687559495289226428900606844523615863807072384816034960202971603883063479515914594094860164596928811810922187231986475713830163544111350218153939890575793064605286122949439080626295110534742185905946651169674103207490186940274171316182794824174618634488280095332428660441614903282257294715552035859480533753326066510281194857508757823817279808069476983609903216292052192086296416265140252338431615446131964040586649979954487348915658518748792085301007348668725619303874979940103473221303589270939532456988037771540520833247799538357346047502966828306963129696752301162041603783824046625844876947035179623828430137367076507257010952221957493234354540770400351680974543482544658669491974543317485126311868910337795902224622757070287718946093706977579285604778826174682544307221246393667222602406080025866803923669440212201201101419506508125529415364873073118430354272373318884387236871629709466102314808598943328359033227857097222712165473342293102463080939854531597218326640963184050211752650527969531836232692113856513241618419244409879586473614251391634307606789330423318240125269191316923289961049132068547304308942086673643792129396262023500208305094036804967535452873618152989242238169501683690801087398118611809248829305594102125712884781201144541028986606333679705231892760891937416793260274414476472783147668464041067005529172350576594097684293954657817423076892976084644062453961666080871578052871719660263349491583568594038188336852476753970514078934557932459268169347893153299990623118724336762852099385976111501613547729219147556032670647395561320710581644221257161677560864999334139182173307661304141965089917850696495694388203738107302163811016434585682244786718592929850277909896122734405469471553631997381026415703585213661540144517027007085771500046209645436560163225230698766450828122638679966874902272181002872579798733124886701878739871655421537568425493481838819264099484707293706515257238097785207590280387861353931985339232950642627322919093476756446976707494570748172686943464207448603981237230913519334118185256719624564770395160922159753417340320144308252009899335932561127774234842817748898020370627796349222964881284664207239356134627008452509995108913629732199672170500181400685874346340236434855921946996878960418150028594369776710982182143060487297537621448936532015126371150364757139373931398143911478491996595588859251973491915928874859731347641119758242712018699965529776161084592362565580432146887871578390503736911014000809219501937837503755640298604225003777751765825939885581346408032317246608757445763073450361993307206722547491062649345377349895742283056979241946544334930276027942893697470366301233951058923800830297207250517139055261905769133110301069754722746170329495936982830060629731267734376040707029037212940341138705961534465170668693043187052669194677906241200538227034334113955184890614815951891612691107455319079134451795847635802996055678111633330369978497974228986463198416490196598109565507602821589288048835997708291524805607622010644981456072181563764765661567150193432425545767976575056760394905704300373640757546449090908408855508000262873110908132108441970152355296826304019869488843700216998189824955997818956738508786516335765036447110754254837038409432081935296882928132411110657254045788529822264737841886405530219569558676517979970968492530295296216609014259395807349237987689522390316363798961519947815025662030988989971504242629536443372245836928130096382923442026461437973355534087229584735241577252901764411387729908608831353176244098562779589513668652539928050186170439946601004996339638028928346528118824543006370047269362418209046550071054998957335105442355441677689464872947791070285122933888596116347721906662349621526763712047257461301607886470608146836729163509273612637988209096729770417489704979034421240409650219821055428498040242079416987912773704457799508556271940982727462361552074127924097494655769995712538031977759206137240901084479720222338218592718691144784868480158642716218489345475046664094161250189251885939130423141766068589262109217925942210387883787467364674596673302937517231001909606661124894470562031414609968508448534519183239003261754225465990069632669279667393818863422248727211745698178118140360912272657081824148619381646428049860544831236650519192249827426646227141487239027874407573584705021710627764606516755208833436238830048754580831375320487534760210699371841953972136529327089623151177816466495650881465917118264138254357556153365206244760180215020483287211062717754787889269734566461557840332790324529153042120431140888233570296719345103832025746742613964233490710174816811111490233997810091205178241664804847695547913738229221995446862117734105518234848424867100207057116071469700713555976460282097478794845341892967153087161028623109431123487949900004810454959241704678620115609328192943919274512211377643718098486512751746801869308942738807032331367890162362733577745482453477397914775195057410335676580588570618816530794885457830140220762748353490867529261354257916803131264173389719175720381042265196987809220337412468215518195615882668709278280793928582470402007450617619173000591134265621538693220047109795239326215522116837985614435973121452183903111934640753294673247016146568843940561053224752535423282002421576949361802796373000882967641144601827812770332809345947994060816359003401703955035901416842093281187108456751662551841252380058930499259211105794155075121164793539975153796069549267816060971759047853011036766933811924414571516147702472212867610561456968093771980736306955456201562788914635869921285997982995727137456546020449023845527474575464084791006995200029191086149544309186308184982339821485339641513873630436240833847812810268462576191179977036594654906706819458614054152058303935130843511587248066723378351756821032367507161427261175688992922136498713521953112530329473608328824715768570955395201641917391556457511208581547811682153872976106337848617819970887009679641862962446750668103675189956402212308961628783865929595863508474555190604157726714910453202058077094172030778078132201400778719616163337020775810596385141269491342398201257755458656073745506739969924463245234620375730395600320519597887868090565036514109805234697194777771287913535359466053058597413039524687432186255189403785554231716445510075470404901855625286722706834398164879863075744119363708376907359243311195984839846071871336785377904195910493069874448123610947484960322731800176909045730785031084013744852951279361254975393845157261381169666225434094101107206471272744212826933388637286148562744075225213591578582876397402149853507092302053408407427770465688258061510781773758623154136739149544698633976134816385649863614000254870613261800315961092327894173095802472761817196881277158603650245096795985770726434745922280098176730738854310507734972069312910197141047886133535004152362100505761667325594358401841610790714370675516112479780944889607039305353976060537839521415477161338313269928694629149924742021119162482976845635725384951370191634177536258138878942319142660487417121123585910912348160921331586834389678401262648625520951371722188405874311268185940543654598471785244905094186082705290408303337645168693203368896356081907462278168188977690796242000811752290731777179995618024249943472846939077895094150174409014226272045621175204904877435436405907261797745150624139689652912729359497684038228249594159744681865846048765419037786497699268709441203831918068443701624808736321912947510473076309656748436103468206691994781745908300749173223700632857482999538533999493639908535904293747724904436223031222859583887643098396974677780657011197119706810305361055202168555740602523269751870796155261913189889863237501344705690445612621166633438387538070344824307233202347557558321096146563726139134136377333614470423191529794989526043438186522656131401908988100394131934207509658024942142793439559218733602496109937000923892010942710207684247408092673937610640731963797070677517582904284026989231358510989144254908696733238230007538246070042919745654720858271020777284025779330966156456507254021024272401164763069390731829598024658352221338969753560218053970724071111111310007356007911464547318129027114252529236328039003840235781675476870308038691997939400140393514567696351295896531057205341585728877837671600823760608265948297995233790585686644064803749444876508995433828380135297669493536112022971802621158699578244257338032861398050563144337440891111138518954103081822176203284304916427275202691998155830166617970257553108751765322558668272842645507098976259028914023085767582598826191232800092373988587191006895547986221147702445582227307896138683332951976248248760960299466616312495537378243454173598916550941891040908095100483614085574433921314823581426680675370411951662487985832532933856656410898475257235490801973589575827493760594709047963019920406799505305472170994955738275602038285683928713675426470802591438706635872345265030614404478788081976556295348891117472285550273539224387989456226866470793191618153304623161192068587510773835603013905152078623200296595343055911398360856990581721603863939597840734784758716779836337884898622965707930400461788881677060851786909636775659591324277368520057426104251816418416309355297105872995013749272024118725100424147869753689428607463592909359832499501044695375481021628075540960834373558025898261421149766281322008406887588120355914273664832038151241261319406942064471620634590516193364007495470436013652822424150843744007362448913642061220578323112464478366036816674306965234988471721301369581641540790252135811630242944507608217613074385003740431945288944094674398357930430894193876316809336383677942945602329925405917522821702293520933853757582946712633619958790505427437208598609714921003665685610349395601176261023551695177940463416973211610076735203186365752357543718038854027171899076996805464399204820386106319280690851286368728667415579940854224545994400030611326514738762212322103889201722667769556849718980033153407408969640827645574252112676493858656599047862659914785028617493313243613178482950634084535282879624407634725700544934201746607455031578313825010414010972607735056036162504279640975968330461316528089030348888536147059407363853044258782589172345084523070015961142704309986302834000145109549327665785096416201632419660876058119816726297268186368213166009451416851158126476903358359959533331899637713324843453699413798345439860446393002831974066634697172120591838338641852459192869502295480988721514619260130870949034285710875978623513676289600102043097574308415320999735405523694668808456847680008007706557688380583323687219784038907489318091111439505380583044320716456885252179010894654349944008361853217292099527523114817247116287297363766148844717315397939592965321204713667759299429164697331552343274835252017675633290818956781511520439737430866644131132725852143512321640810233759840868788110373343301424329256865176812601400671481973611984008241023107318015618785603256548130244815578778005360842249565876177895263414611045518707401110593275230148636945737833185788855425818940350923467635953019526470679770222352994370716375361095097714451618785008832875975225774424729245595831877518005961326326672417587691794702540785355078453273831227470016710302084672491258881188539487405747428840611682123022271371061289903275464317301461487122491743053301976169829254708557842154616288920822662346736569268521465702941656438554484636263170843257651217208118288093291856530858225806786784062675662355575800220795621780770196411063972044257256077929047294333987901124072179814580805500116698237357740400057187356086179358665878884673945377256452297478340778198667458427984514788121623889265244273280376219164254892113515909900828537790007226302483242770387373407713345951338314772586380691404930862543334671069559976223585578393989929164739700433593551504842691170221869888756807723371061716094358939507828109277266968995130298295499092087180229357667815963618636979971312374413065750430652136076402841134704978587055300252516937883322126263519307249075760670374949136449419587495096065931900834028990173779115014495458336828123620041109914571869199015768800054184689357137013033026521282340720222152275712219680883194052882348651407205866390326696423225872627126622230169576745030507640526683941151905215767048648434607885226727245640741873763091435177716413589201450189624191182242733348572292418189687661293221117735435885702269331026893104291108920169807643525986390354379962124228386182093278328961958692557016466912179142806876498524472360082967097845438739679360987201467587400070452581515054978166018180648735635483824119700479126466365565183844533273114302717196531459948313002526109718775604922638054008507797323407638514592667778200559004164364211965246800242759387733336283454097440236126714368721090508439864883264449953403389037999128424469283988212413894357377915761780276535806126910129892445878426379914327583005984087028500071806692722708399928788614932229256478463528725152018296944491128961522581795506603641120339710973585646621802421655251387748698730759750866002421197921049799856107535402207138147653196353514489857038208205759091145892388322952604859015965469198314925061249365157155045405633496643422228880671663390098749519871622957948981319574190494297656354973596810664661780327331015680650748719963404147319629922666822112183695534666408225884012018287626216528966118721791270317059679917140233885168255171045476809456158633905906087879031915781439397534321922851564032016359768518030878721197678647646537259542775965994468146053727313554567456635569080290503033854482724066649834307477595780899417776511399792106829685649409953018766104216233031573715975422367559894919825040745947164185294317726137483182430750807992518001237920114352669968163812076546389830431895437034823339720894454490886049057592142208486230128279330121124673322026133633059781641071916295434104039185882991735545517814189885088646566055554370566715657273273455962539734341988834213472596840633130052974447494177474875665053265672660834580160376748486295680573079661564675451267491031698282286920542343052112628072414684422539408608028509276921426337634373118177780075503646219405274858297499689633130706390302603448951883015467210387920550947760298087031192391141617208378907341316794371126570445754009203551244464420191416480284847722067561953369456448016043341587100925080174835892429138950437245741750864949751704865464785071409910161237268130188489862624149040684843887432523838687500504781504150948606211579750054737298596495871852268430573971197805715251493120855849462296241652834139574727384694801695670503511740983029269451585298919437573653548270089249246810801247231911542217877240972631696192044325759043728847728722518624242159179371559672896513709880238536458569718600095677573989626994980920868802726449154479055154224090390705224694339031175771292712892141095230161673991886355909528371237372227036503398160673291262740804315562166001784070397594866006669032348368925628125840778259243393266139411442445671097690209634686182609491420188171484044618543313347092354301800428551047606376613251330382723780633015097147987257182158800396116839849199389304978327628634251151139140915219576908811927520994150068809503542786073687864913368617572684548358838600136067053713931078263408501514589408738577558489928486350013249463178073616615166150124893619878473100964108896925637523590440640362877506763149508812989881445626602743559161251322714696281890626710462015861072339815632459261269633226891530338008953314559631890234017203303631182016074372665203517127251195473933078710781002962218354576357648884973463723576219778767912773898532339830324326067576302502878941682711276179502054360118200869187847407396058446118211929380455049717315907889093842775240743120254408365846969400228472502115677307910121355266149374773116299114211511346606441395360085466464437147085679818431334380240724260503417832695951779089759950165931899232804876148557041811853490509391435199476268088236783355079198938557493646968688479176660812589262183937060526239070408590200100986743325520766281370924139243198180183015251254235546943893776724704852186265048278755554660907821854276784109118247001638427050234162882434459655370221541249460272712062335008716206705853208196232920501498871930803513917911171140142986765936433701394642591947780740585557667875948124946359581993416373015055921041832311553367658074266368921180610580733546965331282623270107769858527821568468158085106662674186440498959672031310930586819389476150540326692174135110738137740071531275483169656824308376397628959271726141824490919527652354332953259915298815401108218096478988923508068044484776891538372759698995693750481075185336783058366474027523261141600575061501822679461171690837696216798135642062081157375376612927680328477100774820163322798025664362307289001315653715465111626442843502047216781048118853805724185509588752977182052946327008163976165919217025812619621753251581630464838791125550611984200177709500945731994876727560965660546150218548741897554564332839795043091197327478838859440840894956693373428379257456099481567962723065691222845000830251505829474292153110014570197734555044980160554990299104562794019540228867403971599857144431341002152708950032535360762521941433691463960099837105884441772344611749662907370457586403615478414357229446541764683124887447167347380897312272060179445965632684895239347043386918578210675389974089055913636007959605349619507897806375701159233210235737722536091515144034952667497738332129601249804825078997765295972389893233414263401582340648973887961622556805820933296032808890711473815729518066525897219757159477804754241666250925495889473912611826719004137475402794637695097977931864739204696754813223088370273108868872571700852729018516030487720107311602100506765891147291336582386862640707123898386097978059808183569430678993041303272527859093149844134923478437284471789220827645448704106260161156992446226950080133981257513250417407911154168853555181070621883495950900527286224281762928419569591753027797087515121493376798071385545826648440087731415277677498332961786706824749943516613629684540094187763792715647474500249614828162034809545796962348587003297598087577866276545158706108687324615593274064772665257614543918187844278536229515983260697813527467911128013921378329875433724709580862363809111369697633021847057186306190225693879924650730241123024893620198561634627104157831615827540938279338226344381809036904146593187161283489803190853452537501747946397829666098432730376376400542923102358471018447410219413981745036300422848944523579292892958604655388156718215559851191511982031228413847676501531463557303088437579501340755875462342587670350027869265518770582117663534981714503133807935802416337813271738419970805770784021403470842709562939721366961973754953888983627529426866611943396579162580010382956722122034589406906077796758386259679777748890220936844226744884744315943862573313093260076881510928267934254726466977793518396051307513347359862371237839566313895934189401123328895836319635335997496105589919788672704612080577260491771592619579632756406075183305260812973873561211244318506265117877255610094120885394661729743357822185980786353206987200441778206363258148189499030776448370758813423205875966232940872985219438050306135691233231678749124364220844754179689195664118536743968607761109520112523628610719133906569179728928880891493975603499571817297653798222846647572414573774077890601999893671880263630459578706051493792066500258650609779052491824124025203142203216151423177143723109128689243354725218038949220940049759429946462594625122938314996522282445736266154420758981388334960814674443239968908626938976965959663331265487227994722591676704235215987898109471137957021151316808328728064530431791046684605277018438083061457079681819661752958203590222094013666343794097567536488197749619790694096125175904834847461973699121519884967326981618583556314497897389213629804636927877260505738937625291707564702788796423109146076811783319978514087501639522073936688443027413040547479500389640308407737245743676314995182914271697413345416832315384799321139438690429449929009729086612912448868533828992575623253132780086271181318383361304725727832878315871382979782312892420427877362450390417203177669348585742318370301455102933920626981026165963127221207812648452973590413918094761690329384269152474823356528588359347717709686251530989125362058140657027673034744920307744592182387167831524861303327012545046689555489325025215477405615709440970383266096286879769511789856572844851029548870505227269561453370096185856094515661913678292332464785062379902687850599056690950628899252851013447577793821141835385417762306212967756364176443410884251545706352502960179192740414199502084493474025818494242473511520065795691615107985107868974690250956042547373805272192599713553311362229086333777623598654186172746743610052132091877949312302686299737527982057464875400888399423924241336484262269993654122787974028518136120656263272116913775447116729559801743794582500385428193140718174198275627944550581059813052220595410201631018223826564558465639171562311095288521550828860396240979200789868600027335863035426903087774110881164092121977236760820534516817120199509286172969694370780502418287677879229192333929713771131123178327730128290689035707945356195036682221723460040750240725329229817753220078387099592451680210093854827289846510671520272443968313167482078931238175687139368605997973021515457017297578797903343503532660596993996490146759196005875928625614991131711013823560853307599360900687579383634888941279864999138882331481433716838222672681717864865408376485524815831588676243039256112470512862912627523234883442387505377408366224589744531699950856243934516513269827477419046101422152382457218539156701346174818496581324758827644563575543857133461886666399618172509586959473392592313423230645129340724197732232098612649293019349881522023937298345102446273031601258811467933014333947192405456064479043825167756052702327019019842536570487810543007074435223361719246134754741781421202091897191106670049292678751041106879260108785151351650318888238459349367136140003633774105597026074476596620837650135357631931037369465678681014335633503665493903489902854987145569032290460427416724645930584347816085972628257277175953116359925560026493535877495951910508008012347587411031486418181069205983906266756983709924384759384437949797955426174151015872545332172750581465470045017356136288931873275475345500462556769146551681153182201594618512003617167511758948849309997733285834153453899024887562960350097123701699793112228060638583260161321910790169293337146130438673207357730987783020475683034979915607487926555717504354621432298142864862492370726833381556410871448419483291567913492693156280219866161380138911374802124971794839755381755372469935015170233073735291538141219366647225858011120886121649064956155415056277004123620263002593444832136862070460813386853187148019528029145938124693700447963397711460488652696415386202434603842775123388696673403972738744135033102790330811609645680494199479153755695166273278566107006226327652781217984525689431513220112105704603421921702531969323771335022603802057379258062976294067416788963217383777829545676555045736319092373666618343012567370858515166888143773044556752236345293208423873193888452804299214554446355886771088539926360229921830838403265352090220710942647032137621696891789980339128670232107641806956042160108483893780786432984621646639912888765953352221101639987912287777218670173170578938147043880648286546215605875937341195942428724965022602396486908232128092736845460227949149945492995085785509604034627844472666317914957558152705349445016105485384067223939148827911174131964057437854365634721401967069288571647766072560873478221043890227948965182241229807232117617392742987933315626944981438733755182519319385336097923073616239913256835886375839531045360497489257610495618105336828754837889151554933756043786785867077117230923372532916609495463144150757943993434796498769709170131591735246046706494487908951274274464100548214264728026697733133853938975882118843220302648120206388965736408029565532838253300515320248957946250718513216295476196184454233952486629850744479930570712231324368615469173554118512443297845530086675260654372114870799877744834265786293601257104043163210575291204375638395497291377179434792034866332589345874946214642572889281918218803235803915794452417185331407583533581815948233242616235077788284187136197232674354871685634187914801226773055107839289206336478703065780308295954657952064395886117189998013552071399789756830423451410102632278976031041007183289894969654521952350151913008273199920530824334814595978682139973936514061114264020349177424950015188955539002800248347577694094206774044254597227702451224187690327674938324969141924586071256874142228798281121322534019110265724693815376647290906557282963223870821352564635415178078179627157200793395961429532629185232406701737836693554857012109957246355642395626081246657962747305953522033499551247201137903467420992697040594687740961118677246145383101666243458972530767109402748819861790233170617800191149094785671822954652052189430426623449772854018117077543221234385996467506518896923662568201705978373277794875133342516708772940427893932792889232652141370980102391154509748966159577891024670854101089219328961057702129002474095077798513476016511029415166909270525572920592426461099030491565537765080387483467273383549486760512642143271209194331507719051958679726943988552788381696517918633653562482120218002891007683545093436641074090356462670204499218612559256489292458534695735262280454233158174252100536515233951091382645936426962178504836184524716092921822080545318845582202687648556550263363302984577935767042324526455424395431678130696095343844664233611182360028515013476316966930995911641813325612304930255214648222098502448141104801302894296967242228937463434786779557014880224393732888425696822692331270040523545120660722361640539673021296982843476964992359151309633980101712615834030415263456306280286670251192816948361619712245358617999005021802302495700609568841271298770686482895700219543919023903927566203143276938593995715827074976363789435751998805422675235648805196545414923113550162355204504378208233751109069673758615012643823687923306593091958779510474232168614225492623862210450467936277735158636619839296582358647469648445827038918199895873466473426867116499159221998364944098172083551976415723414770689076774669680372735807180307103702812106674823804062494039627195115381455822069320310046198248219020102430564276399154433894106890662534420073168524024605822335878891123809463187085877147762495648205591079244268558958018364513860066387871582482095827049907311062340357609702407167646176505946084300943039059033006929925063026610676242171792532864351043153664538673942152566384544077877059898421054921449197228073431490731255507865650233442134767480103257148312267138224802446016676966421836482773695492116975045190316720248791155870587522682024846684827044313716147333438249263154516894205327263304388837842234877001744267890021703570601583175883739214082828932769325673309557093858515216573989197489678895682493856018162277372644971448595741296743904337621861650774276050679082466432286757597639831288190072998743773076502960680525844962378607230390031119387042310650672365258915050615477433113823462077084683118296904738385648427471673773538457061359464741006406934200254608982784673116436798191271804265274977781179974093191662143128161189945256371304529447472122538864712661261326402245070295840770936540314339640351041938808548057262643483149296266573466253452721169281721130543550266921998026454514162203534041992623881943695945634963669015335732740478705734824211646030107061234556975081451116126047965749432987600221467719563974142066409559466918404265983314068590071945309110752734100569262488108648676532565904446429278740662992827354343847198016344956591802851731375220167198200692452836512513458431459191565722417289672271723041265841583004127243567899159744079116693617681131218982443508277825932324900203659811227609928644443338049368826208706041852091986758249572840361575568431412864612164606045931033676781778194124390297765585943053165634498285624001171513162992325151976910077962589433011774447973802698684479766908129574684387009434088320212584733860291763560758692548611461193488496628404909683370809890170183848549088728325560762632689128145445827264748980189003112014221265606746854568695985279531666296759071227837136064793137781264868446187576208226058697009550614794176585694815390549794085378215402834669809858874841303320959808227152982339750968367745038467858574048791741317723181278632236357612476380787113790637036971787958862227545870477169896039637556968435969650888043668663512153337556668835229537400724445797632025059020912189205068182218352646120432768119059676162867494471766099103918962141775136627141796317377650589468165864486255325365719837556689251116306270735565933759005631594774493569125536195066420918297783855787330922198249487949211074330883553723157726609126193316793031727584583471710524969453525342644131394207383140771776911250007915447331839867371038451226004040381750533349152605114397011620221802719499157164604967303955903925008436600008889635663575296202571447885481461391404390718241743101108123262574467802816905840042443569414441945436166966121452956669687730879129045104101794566573970364488751614310262214528561343531754020517031159425505307509575606082031601387461723290919821160984194933887866186170916952068957141695363103699337798411710774134113600795477307399716542734396277119792091022611518064012247430324032416973527051271591122959341377622822550279252508165776968452574886682642903294009592308834233166211624742440075479579907876866611789869346042569300365794999033559794753850546197015369880051428327810812235197656896157659379966719306310908332038976263123869062050681718079366480047843326796076584539968091728328090549857134970560515242295642074343354938188415876923017405431120315201621407926346977915231655186678143290795363800465343055675798846782600234770980461405676674925801275445491438139093212895875446836457594941483672108736166965540669275739995582251738413738591107563604221680133017959916460621618895567420665751355201662020292490273240214044435395349385469521602117579258656848634268581577029727250865621278023548247225205262938201233937014859735031672692698120583017683566574530937176747384859549463863954834314396145172418728805923578768630939388860901606552751426654684159729899542622623602238299636172290810353761155974203008668140979925503213702557490352704842148922101023627721733792731525739002992544018096499144177542733452446183249988213948716647080479545390063122254897958605218201060218482339068790906620015115007824677194341301834428163518102028023955549887018609175030903295402910633385303885701555569840180703384289773561404132990108444826543324548878680159097385401691364482955435010048110428058774474827865295709184644731891851800412328017072753463155166401233142733298916217604184950380718553966576902526772726049252887193936855259303355961240563105874315276755258515089989261201616772744718966733879679711343198365305764875515979080831893833350840820125786164388405472515678334640216213477061611006961486488066816513183737241038455725483829179206359444484555145511842326308307567557159408881319360282363769937850704326871546267860506878146445838304623955569326000623432392410688199372380026721635903575956105256044213679771813685955507323145600989759901949620773600402194235383421213416673445318136069952612861126803070633450298560538371630986789550087186447042357970480138002457846905474445532942990541294416178259911659837682086063821546489824446432064809148185881929723296614826082706576919411969291943286646623556763146015568717599851997268135237992496051156857447648459927532007695591799157661924079039773414033738610924471255882400692583393208207600993863786010227456926855891660585101072998830196680566884726899905516082500616174951100416830363398778254977083579028728755047940294516517969387300901695226915877783688749306028525828756236271298698732110870852944667667977062865092987214514973751081412516505122193537860148517638192709373397521498954199428941592614840934160490395514000111068159137741918531016121692554703508330112775855861030873153894662892129575817805566781106745651541732988774735808371176874586110779481129010242989855969422539027252716495581731150129264344680252664014300598701599551268289662720981727071659900124351851616401660764295318085545661288333582261041559704352911201994715456646302903022720392311298762300959007239927108219633307867252840805240350481859688152333245310122617158619800159771988105419723531579171748946024140378638818393962971258656126286111345449297021934006902077715320913305390137876248179854644387525627864350553172125790331463134969542057660444855181526771247137138962116864585924806516409994893559682076698931491652113867319299278208363810282055846439606758180087981109710863202264069079051771773439852956689660335970406582608154046286639660564435212343163603172894760557497160279984754921341670757041040255443979054317186195568431757852359526331047956379728968499170668796504834044506715109450821992139364889335871863563045705640866601669217805748896691344004136995605773416582469485457697905016492161462518100291957294304917152753157560074719990209284153124903017947788941936141870517267829694350767165941769364162142318009605856066404740850379481596674600529372179585846586179524713467351011160653667643733476358151347774014362359803058579822146139487953000507836771813983764868897574680191800196207951820541441800531172618920338383163315378101003396156444945193526370738332867549224825505855762688161838699054622843322178947953544534667131338632520756389305454002409397681285497967870186383069474574882356817709000783167349313817627049875814654086597114130940282077248847203061108539616250090672511382342541546167470255557322036704166560105440326785362071661984204567489025572493834817736529335014415491741629859883153405898901982277653587468302663811035719512874253448025190180944927340703994409705279020434784271060155882637601027101540908357916709881575804637575722974218338477866399972702181664894246079457641589967610209080939451901995991959608707795785876833274546736322335319454484382176766269463774542918367347005993046516556234592569191253126744294401679540684229750969363444383345457168665141660850735097649577328484401932226361904240609669532179451507928570115943806791372311356083174103231207716201339966466576604096118179877522146790304367801983386477224600120562533457531751791904031403235526615215042732619300139950359406781055790455166682295469602496014120409563737163902763807676794235644741573026284805444456631152995414096714681075459728093366607029756589575437064771177716640369029612878203392851897147241489739178883739813227748570431325179178739465769209612869502173899412011978477468998029513328261672746479833516633696977514328628158707527673741052317489562612192486700755236042650470664040497827397711630811062377206960705576142225985211131891698713346103055562733688628324747721417667584168561080157732666397735380798678960466147903518598153488066046519531986648129707424980132616546009396929479737291895836041100451843565017169856541406080990784832322084543028890320949492342771240615471668541104632500668008063773806176921619346989221968629774832018882608524788796357677607729422603622172374209804664123267459644088911361632207886058377473970169255645539491088496050029643536981944556137284035603653212027042060079392179191137888601217429788300129483329711050242516312987270501085997710671231020005234777703960114285253444031051793114735423108944909681225054473888143142436725007907234711941065975593924948715107400062866709651818735692846747949784894825183370889536185293793309175126039005005319126260888078274986446896629687747850813075964459259221860511541107154519497948196612357130378242753592187034505096105719864211513849772282535054927899499250571340227193588572131726649367999401746112729442538123368007217876774228556222318521389181896743220964836430425873499389399842342510572334488833208691390283646321304871017690235472502407853064228238570584587804792629336993750636983501348581143092403232388805336513303572942383543824545120852699192720204949912403723654148737386516623921034496433269792503495484568720495930865348687498340641798998041119173185078038270335330602082478669718280740366952563147676645970707502442880269541791103702549425620235003207384783554070294099344307056928952857218880504535560316155424975924702824726922200951488493599632551044380262845949129242003666540114695859460302511895910613828867878053090784400649725452664731540781409576462275115999066465627955675492023255480918673986820473251975028142821747749841256609996438890045771824234069029183360363430782803894471195964120532619068448505014099802809305978848842595402151238831570580449411543738595816945391159667840382547344647837428702706716450631270445086819757311606815782812178661280867525195958711246987972787173378001134690563157573830607210606151352653306295590508408661503159633005127373349348688860766359632111870833114524178290705893240889472584594062120836686291973508759512714920932577762303254457591819466187968864306781721866238679084410802585640989944371849006235054633803175366758855631622828937259833338206399027989510432502114869870374312373942040817069024893961173061233542665712695124950492461554957791194879984392071231195500881761328882385995122026644427254161177846695811083732818535748593932947215441877847676907614889415467629018353183900581232523474061970471702874417401000512941595463424516031338415488313456024144387438982633479266252667353784804745701493141060559443492925035619427627246622366883724952612281224452718316247723153277951109644293543861202208055854073207542743069709181837063540262332888072743164749646151175580309376614353712548671969599568684199435706341511884126120506007073384519824999043289852032481587169584313436275320796002486828532832719695228556755442232310315570624227337078102886435114421995458674063383448693296787942764897562528316411344978634350835421736073990346373920114408715821109695952477964526906360060150203673363411313352069386134934501159096315773096971376173607587857509146954992612424338314264163897627579294829870406516978244723928772018140771320882684485122746966709491542221808367805245216981934138328060629983003318701603317299760486273917373359488009788607196645061135586149034939895783092418375672645808180070261711033830067016050709789535731121160848689758599856924279289104328309932050896303900782152542792150834126776470342229635516656034821243649670605724713233628982442970761640326439794127400330397267172317772023329395813982887238447323867268161305328897401837543235561806010752326528675977662373242513613823775764654093866114497821034155695821294402380030029986927162457619196639237506132487974131479377927414952734832414834784315749662553387605319659056242918678478283455938241806458216064592208525265391246973321053584486626171340143982122055255597106505824105377589578733225520892675353922507540069669377245639212476846374996083800546435103070881278934962642353070482695063139643238534657394311807352548451215288744129110970372835685836094637137732295959380561456948140247963227096189732151264344012686913305675450039305216589665331859264147755576093002218352226107866222215338281721271604854395845921815101570035651483955966671990654211545309681136567583659097281858251561762841736034043003814448328278660266558365309329949123972214045414365519557061650428762887404581075066510752671761296674791430607214327281119858430628275096647566078358261224528251083510259002637437173007090815913449491248293869698661203311691891817024697608000182130738148467684088082483591003391336807115187850699732564967766558382406960952478261626489957288088241292899330943414343193104277022716343962818265048581804152128075742958403909454750889229282835750000954024844715615765032793470986692588348960802800145915325648140698048748532507340398967703944824656829878304551621718936744914548325831138156487001967054258634787626089304072313972732377777445100164157471986806668968147917373253262110344525404264739838654636247618257071440513712090407479941529406936123236707698662797841365411435562927405497112791034719451694630438597275590817600794058409316746421934834410800092554605175337388261506802349535692982624005587179571891772168556719453643884034174543876463476458441599140800676751360786946917175866425405697894601118528424960468501647467033959810737702878282592787987944243791049456956238901158937491594355329571024916795228699844663407255695275581386836874137606586401622362012123235297782923661052603792290790157040516562553229058510980980391009824811387070598618419554744981690541231994950550016139629936589982523605170905044737427970560217007205461060746878596002369211484725203872011337041073508123353987564987798809210411066197389673809962545256338922977774825036594604233178247895578871037088752713791232933616513377703936202554247983354030599359636591898279747133142256673108104119459510237872379738118751015522580119230944606909190057930595104787720591247806553905393493835856308494296368479252308183593939033936962754848127795787194750054944525087068296837870772578375419886994577554738231907317026918912919176202800964624068833488991966388884595940656001828457161329779190731090580936405634742713142621811572170542010121904553482299610381835857033467075227465804747204547348922619113356260488942334734293804000878913708424069184918981027155185725081301291415843673757438300140784112327721098539601027302600674379488411939007996554708171621021052793498110277091318313939729067888987458100539748007931017994236959276331958738567038351854408443719490471007903847338831371074631099904089673570384149682493663586044053529326483889557342672919089785861243626445174012091378796119228572337423029042011494008356565591658310252892030457419474450529348541076477591737270545209859226606231075329488688098975663282087152934686367094243929961408894235851902563406083334808066870569556228006245830609280786822069962105105628384749949375111667558441132117437744350890356092230282877137922791439150727000939438364304104687804598629197993154475459788312800793938419147770026307110449356627848324026010819525933765069965055519547023495709577520512838575465110735860370444711438353086239472886978550504398558020879933847178724496339870103002751632970748992427874294872465396090761409866127392677956680464671935179116025344469754198036173088057150466065329421466205427282891465601632212530417839431082711192708106894026915024594682046386513347718901505393009373638407573286594823157063135430322574181355792626292940403222093237014245712125673381055402612397278355343739940246870934874255009870410641165742855478447529247019469167316189735390079706112587609039428920720114265001746350622477935863677802848543672173410879346059735619715641356951494092533462256026799678182042246688646220581279406675662131342986001682062397821039069751205623388838907620485828088855519033124865845524112210206119099062219878962369053176853986505265700829334197139663258110529692910309452013592732368719979813893318009761901845422569797342092008040422633174646207438705814256209624319311539230306594575634291013306290432173057209598857139964153267863231243439484567072802622439289775231100338235366520088325299205677647652680084964216665574443500033894672403048649412816579605547428945568722598348611673340933384696927587676511936582479050338056442371265917473634656502460137261837784615052463141453157648771939759288453966449811549923666621480062208775097326796033473526525440484537660394767316444233219878868923033014388038260517965523290326494061845836447795844034623972690140507852345031641343618591540138580538775662696427277572492802610184870334050866051952136320796087006380209240601472238757924844499537184002243575916356958917577447823243826119573821307068292027421065700161097773473980096581112863684488578932039213098418755600177121586362941550944014065503374736828949963888276198846006665305157443298306785085330429477215008118759506800540877043736773737008351668981057802908474183130669467647867803097244968070236727719848083489677662634451487608480682859132539431966245473009067168209302589348418430739015562686227489366368933685195540663973018767443472146327565797607597154469920650183119341259219846963006527094085855371739305658581410054991915057020913025440491410899925980634033336135709902767660070039871572359891894610036339674283856735314040537609359989987074580620527687648195055113965803607160415761384102357553747774343603178622742601018722369749835313796277927489639300933588703898013794262500616793769935477644379342231039417824136474722204495323332698663475018268322149937436216029064222335421760519004073436789218304293823004732132372860002447024421348822063995916888867546971846508342698575832463263886439943258090504690633027426089948286755978666184463093641974045293422892566108202814224674114674783318310395325221348696054471926750004258454156010948683304106553586027955855648887960812608530587736106768292075588716258400647911078353644770976725488669381996449321256779973628060545366185936178762214007527404856539452584091182744781688663922795867222542856414723938227382792244696016677019142383979510606870110054539397610373068492323746762465947286262938829131523978546776962611119015779593114262209490791917607673883165473701491395631325965070820757389849889988031198719904902414558085371260822096721847249650998722650732205997693903181407570617049613734258476029002134179824990559523060469127598588393637897582070981720615435986766893580917483954006690999378907540437936764660402723542369159415686206065558362959355429272595900892386883250963991587680066589363338051303029647963444153843056783319697994027887777069575004847639285767335498537798072894879976222153970014705704961861717689089907725521534394246316429964817795706258310248083272887118639413511037172243870853221911432194349848920382666811858178319725208790388366299275408304174100962533750693011593986536712113929459758436117670188520836369410526046479532244868367958617326500792820888291867201234962550736085517115713964001311212353962617228164234139966200906472984954717668054471139213767589676307708302957507197522963815066104240097537732002678336459980061572971097100183408311274450455686344951590947892551102385704796229999193076489833567611204870973539324399207634157641777321977641137735956316589356561704696999215001561826326071421720615970692570523433875046063051880449257266420465764737089139108462755808288731358496101748285296683120589888020712723237582499061353974638746932930005490745682485730522370192989196648700371826377445107347677858031459385821968714658616671563411381748311747156055700525033429721361056387976052076742038289890999270580955851983785575964679414571312374397464178000298238463995401339988194352199345316645394821520268642036311830346122421636617434024431052555670084071125748830262395595377523356635450532158735645469150809380890573639522173028468980271575802739044996350866573293609571821668453467277652262928765712172672853361895988844407254767009482958377539034542076929204825908019334551414390752906037429852582363702945965122161120445275203264041769454368059923218711241823085500148249109276093417021881920986588553244320959460345338821248426744446015379785236864661674327159297168370479222977275015627194034339728683286966487764946233664523747324280703792562430911938088923753187482933163538579214119626042179916944730565777611934518190190493073530867316146094185960415465711156596301702424667326330032978063429559963205448866016273882717389399560129963042817921113722605252272994727393122735184711250286729464355264821140328310103597146024941857986446053661364261386830496509461980423705925360556675396813890584699901966419918231848227288481546868704101762967134890412128220469458864115857880150107665882188248115271255210962357002074744470806606080455311760323661835906284067411138604740190180679649501024142927857846869832549625972889228905791269227919955200588233253463060788547129404403328013466028044184335067039652543953498932541531263465890619175279695105757668331441893059848005997278263677100454902212814001928608559361011668664797600059393829017401065815670802624686921918822461408403275951759171595628811098066077926134449016492730532753296601136620693993795699748808010705065761312957391687290721030824343745334268792949508073387835262236580570519389995742057765230390693786881909084154469724252898891399745610449637219666722092840456949048846382376877471161157432956829440241308136893548019414137160249030407699705704159899721390736966270738135371619209655586773714596521914525607478396021959193489715579140175412553734521834361038238012906069166210779748027933955220566277377354631487498113973713546891594515085701877039611381846623267875455087057037106416157832136212167118677329461382449515046527177859948317489082439764057774124232216403140771438659472603456995053290278470616771956783657264552537761256421889052321408305806993042133350504548310770218827715765484510093963184524301776933351015777388700465849680648618512201376452262163920108595499769225136308451600021920225518741227235484504419755648431849767173853516161518564072827671042693163056547228521612431633959795663787532260376668697342618749474663657253472583804064423186639131260770664403971604557214781577875620149231900851050111415682754176656801860572441812730852841495527989625120291092833147394299607523416549751106885616976247814189106255758348237799441046573496782767438784059026975281076968893891968503891850945960565454300958874221276749267814756260412524192286854785932427850354979257801780858977343083224609325290593563921757606288209474099913424691965359926429372226015482340551303293672766070121739016921132192111207732948140822729916915648917865264035424542631393986982600208415731865221760150091562329877471337527073407415601256544330460451491852525083120151241961375501779241630329336076689269126106486291186752052749886535178376184057177733306437279756766151664485903403920218916097352573091097892303891988317999185503652832640200981761110641098549350322439570225088292476135335142795376705322526873562910488511100743458288734672117593616467825842877781792515629119895424767082728381406636531985534732575507444851488637579916695766316611507452539845064035092807646810064281947307310719496031090774385284150816844477515873130790242526232727126855362043008655138660280519742990144597424153493382122417847163701933458402712089818647776374635227443596246890587293514786554982535413405492094222457511383858862142888618237758137780183297079174040303921173615990112803627229542576629575560236716562461879586964347296579318610901752414632139079200596107527714246374995342983020867056331246570615386544315834343747647172737299095262521972367027553232160629361814766371169185954578636995293626099668390651122378955379688976428385648632731560402128634698123020112275571928314531076095875151410670141931715814936529893127356107138935586288600034387192217004393595477880029784544042458552546766368635730897188154035679453436086130864020912782132241220803013477016552984210398441402343989304882946481145223592205727776592454688034030115830786395931417831583123324821621180510725729566295940977404612458764989024752771157901592797752653830389783328714455673953151854552481131232811370424151654839178310583599967180095382001604189950139097373004065465942691587088135490880712258028198951282447479186222924635849292793323391839061416986899439723811264939450201531140915613178261532097898080611546902389576617180592048825645247678423264781732775114756084140440397440416200050090207913263124482999203561692626995853729256348574439454925051096288525990158428562946306257073145254454021129645163968948706029483100320040008162245822526743059029950537260786790777378971355669809712768486910660838404938818885589370383461952335870024053473344044854647927800887298454277917463714404530983147778212405703734298947725332673745342052198534610106715659778626202675027441521751057056121540377951495251802071009588827428435414331390663555272175581910153491269029521790626649486963119335588962136487106003707270747264372334100883217618456740256029012629523061480298939423322984497354809885990943324056975628418297536539105300890992441797971649464634655949779099346133788508391410116329834786416283459091411107561149999086531765526773298461775101338984466170664587607247776126826757288791025765988175369026415674841997198021625006431583388297184210059706511817318538485936297228299610103766394631104687500753608095666668031862078516700421594932820308000555967850673318376422087621796901339212860640016728155835852560693413715036938867029374656495076544509344993747053768646805083848684901283529554064052335040984181567254726496045377564917240405893964781110046608326739357719754429109364683598144192451592032144083243186410135500076872349167717225480451773645417710322999320133347966227912781345097101421779787577391882347011478529791989056455118180643653357273855198570621434026653083497007877200768127898840908313921153396150718261821068500314755561063573513536025769601442967218847806958905147558039105130913489764723443901483046037109771166169824216100006232281252008831896155838609382861571598322650353453366227968622091268272246938157559256884748693641600407775157903857311900424203601875778523979330873518238017268821703201003858735872577114031620354478377848429659923434446733858432722069475850131860108277362742616355248600254215952205041592777828178407917098975693341503455518554381665727394469590711182493368534922081107589513660068409475321718110394169365427108895088388077229482262305404831578842661723337471121405413835858965267355531151127730529631433949071291996349131579684896096540335826918211570857055164448259959929527573382463408511336938356172309836500510577324978625584755879843558519653793777529393745466134142395277488334045532845320574292133081581671837096893321565412337850083866350719694253765365994867169560687084331561161109313453191077582666343090683561626232663034098912490590027567344870897184947588675424138635623663818641198125885603170324852762779940917470685470111750412569046391552706999075265057080921645818465953861568525263560702761346582134566772984424932931354441213763996850075446263959361681196041125186454023230293261282993486486853950607022184643658736614137916360706363929471167373773437258859624139463252620794719176833165687896971579198965241309081830375935718319291262336923268639519394454044591295468314586988251541666803562271012701295200144318683103282502652511655626666119034445590410728841483658030637108621736966367492370278580804770318185954939303683286376792731503809063183707425491518570946720463567605924904575401740623586009718623227218344248625304994559241033032683899469569813498745091217690007855232800080486918387112078746365573596468114679065900146723131117008846178356936226899125059433858912639572005547151005685803787680077651027795653341424232764858319057547875929239761892924215636901528845887133947358208840114608712494180592991855963237865949411313287428578989407050539073897643391355298181637025559343059647635417113370563993550927794607798982383799449305234111531291203872996266012293178073229286406797675941077260657036020380757359907990106341223508431106582419888710123474194883623971063429546746175073888576117428564764556178472230329389944652335168799655903731536443196325545127813725989033960184068858141546038820539508173128073765749118435934555721829995094290636993330014751388818986319435558289347710983333120846970476552655776610540029444238058597675531105437314164113203208960851385474404999850122047966830343644179118629662176109045624001085458487870401535182198181135995398518763736723840803482530105351292650748835575875568120148287625140478495731625001048962106847250462562212497484273128291286527578305292995331069274145753784533971249312323151258721678168542685920350268976460650459000877215084611230458058876165983310418178687183568417180881323114233081610742131304160813104562217471222083760900727683476626010711797711158039660275159084780419332887431226735119260043598620145077128831591866941952411837717446880700928443569086937690123835451824205576490617080709313295197219015668117955115677878621813191551723661065224711830051939863412946409240745526410094235017420423066778173996635723692511755079726242630731387927342588543870517837164899042717099889109367576212887064436774305187040644393637514158056115703805002282122747042384481979509971522798987855148415064209753915339954456971191141849853192271175634850636340556023119053856626946515273435933443877343443791858801165315706371870036013663309749077538482901470366888204276076791282070233181549342433056859402665339068428075962391034803779700882022895577507835471044839322692166286820357630542798094097308868845088011403212996704905315841987712527629484298486310021573659434572181216040311125304944848632433829362522165476018495182333983026711963943893208947230516879532509588936777787935707066986408975628907859998155693262579290464787182276547718966940508352416535120600742358393347269466990117300889706168283103782742207724366922349516326562454345247828429606821077471203746102763113682791694143452880640848436074945536301101619323891661055102802726476903730129649787882674465925951562004311849980400812119480092302496466308228116595882088884746750094996330249147668566495444948829441643225870053953804328804124416941780166456257603063880914293925350396222032341512431735033393863113531993416469792503892870702969209539606817089633954592659345155409415086512354475492431959252242645245541766543322485235173949969361118340828239346619016166573064564410365417472253284254128159115134108390395217145187025861464675984550354635717633927760563905237631743422554271572367588812182181651270511695923680496235416229157888779237351566337695734739526587129084920436796372856560708288308560876879955337390545999878367017024590611959978968829336792632156226654769550352360300056969676673018114199917770387691286085717032454590269012908115493460998432582993406655403569593770602395963653619219417419690981105731537683526393916370230612257279740574001001502969777942456820859018630591405812630505465437112399981621534422527706530037192852337920933281888790537941037177126361798028608672583141305617748925437744327442926948012499692791020471212544779276686054925744891611936363049028656924828397926320566959447180102009172276135279763193656662056566373877545281685607279880178827828233242232833798643688791762811447279858821296920315816357955020273249826266612609163974634169772544756161314922748393630548170264659673295666389928566134300048914540751732332018472615623887691537246891512558876549174911989593986809459466034834170787754089896656083996898316077635631652181030934396118391250480355089385611739108545245882590035386206656716135381154816882421779645514115680821144780700898060053294699923601855309706072455364658290351349385792070100651805303259503592618166139806699558748842182252795191803181451978238551579453527808286773789284467227350508846079568995424460700678778956368489930394110062825793956393175045836125387681762527367367490373691577791393521998720466895117765274413843752208246999649329040229971251943358114544520635075822578968884993201554931095471135287381653520641681547284509732287737980994949887033834879807294730904609070593101522425465360308287162066648380066659341813558465040945511754941444439796359261686996916077357113650502765461963416013985150222014893314604080492004778671188305416038223305392200953588054990548608628792113405547071576401674876600419667630167550057127411012661965019351412953534959390106130650004185078505715078090606151967001668238332733845350743623575521527179101533152671551469440021025707621412759229667492273555394193619543696030774292483551474228929081215035567803342575821482390631709156669381368778680390634980133156379064689547735116025918094321977100021588904107920113779544485824770202738886453467039761090409745992252126943156832890051112775130917813834007102914637615530133020657775137989722966889566001412240947059559209470304702584211554534062289969299427446273926204101488849410253214983026877802785293410622771513856312051910727917622574300074984922642745588544459325286174217045707771651036282513183243857100596063327365980140186328850159870517248293284547941322375954078270512405662645931562442818069905317210546988714831789319861274395996851188853952404674459111074343210886159368004285868833359335933312704847958391895842912266375125624464874915365604061760894206758449678425409094239760363382552412785760545175374219192159558477706676455770642429736030507359796861177528927955749208084876730439726625939283086540141115962592764694684996788968439480632151468416999443936563392725793942398343355115503186358012392181117562713349400517947413042632522409336880672132634366298527799484921834376305691634758719398344899400369286511828157162182416701948046095222234706747825282767624754726529394794242288944661217021742718820155641597130987361329188889295738075767536569068280996468993355776455097262335424897631922000560487508075467880000361478664351654158861047055787612804319564627051414341705098681167414226373537385223790273673605238719505127741175127691688972633376152475766603192861328176664254329451853408364408357333703055261424938086492742046691623786736178850951842630104304660391658554177210911399086342256293678087641411458618933229976758607901392174481204418970672916273208164747961804411084142896833095367947094193962124240107006109350987094796067233101023889618391720684346619541707332115444219472922152401477169380279441296179397338496981723002739812946123367019122415893634501138510692252673913766565458215809090356731456441258492718532403351567009587961526676580673292518332171085931282212579805813898867482276663489912523337933286882229193182079258737912754326154367233843878035613341809901697414309723581863391472492291189987161874883664642074360766953531216859086762050635141080829896231647699843839774305007367743587043716763703139975492459003859695620739566551931121880237395429853381663471476841799736971657045035614825280501452003167902480475300213640374176520258750583482084040327963675364033292953259071736607707359514996488552860696712518871018109337921804548845777427533238333058155553987720035776933541227924707393908686765352828528094556590337418405321960023368866219909727971613834754261039856092155313792535147076802282894455395681834047754630677089174061635521925460194488743180690562008229154741028468707014811413700567189942756424110627901351571281240565422425099181487036158935183121295075540818179956373112753660862065852810906078801623016192503041200963335054844425314618776812060061523751499009230602152757794121462216466775731594224738318302405304086164686368012917931459510965008053031851560809893406287867268834393244640393844887261927364345551896099222682594262828565526716523886191304426705419685607571926868612974946875592381782819009334056134116188938748578606916099855138918651403512683514433155334203410500526470376452940036359776628111879271604664973650404390052957151907790820459144224652112077112722798610578163510716010746854634416314400109630756757332235531095286413819255826474713306678877795840689933091584718767589883578390071021502795944024877988656257126227045202484182451258410218707637452187391873246875355686502557562271033038320466527139904162394065184406394927540327656789472172504194759166899239797277285871373452399489778707668826827187913079241573865815195543927172306316990172312149687761063188324031198769505287479506029576162367064639985979786190495307411576536256447103738601158414821234765988638122651979318958391853601415096705058346970108046980312668397101731610218505419181502074346870439161976965839128323165149642764642691536739850756551454998128981816556440988704340366701238441725259856364612072755515752386839257933187133544827489398411826272793431163376900821755581440160015131475939631819650377153394716928176411811401614707994790123615486396689827688504987996609767963720221765154380430293240470356158451334217117791626167521044395918290617309183596369576208227394269355597535232602519796197988582386379252483029088348477892186379537548638000391854352305045559303447545447545912502168953759126816817610800674450523884288537121680138128095998747871710770291774976530624126380572096491358149965475278351181257992385978860718452694492501452909459597536209367811742757892035482513612992467868515264282078518603382170987381195123516863235752664154904419999031995932102854963175795027933989440695150491673959747624057572725212422687976487586915826469517151310497449080552190116577453498982376782616989267013757893035334849856889047100895653150638958437230907733260257672035516006427073965888783682822641216616647820124788483026123367450598955172073969458570316024226274426617666347943315698855107652178385243487837810030409548716836229481118128773910206416800831566968564778053324947651171944350550098223084102304301487173570804776375237346296025552142221333106967605845481823350534265857695651360243257632375330250149471067434344711143015743725677169931095180641007169394918426804587137904263267107990206272518711101586039699576563623712244401918018426226482027632085611105072058393904486262146370171539106758100096522439579797543986524860293856214785546001573146966590279372777237422408682674820536852840704369558315177752993220332182881304160277112296423942780367701321927043287584736450735166213006984278459378004160614483782731385712509967863906175816124833008237970034878076514120720383450248623600708076034695974869919170387218596082591945479320917286894315315618362258610209050628104189329797861636456998615656270268728014054829587920233992718964878278125336307816787726588886952738707643103091075703192233766548947222011336666285114639727485792796260644617643114212109267419013118059460702356101287679198567679675846520477836999105269267252278191079367696058035086779507015286652277292745769487405545298354714355360681402967820743213992014128113264849144486007117740032633988425982992896409326116641890207373397329449898386956959890663528657585448223643024963657178904459005980027414040777868524596585871836311270360789832352183557111783307397989165505828517036013874184973404354591706770803240078824216099638184523859966934499463059522807456248236566768742179721287591981135968192673425058857593049376028680995184733342104199994174448288508988090048370310461410974265627353956782079973475506325032241586623042961596430380972945419850397312956541585477355956431022210944042176367113639219163578804543272155128281599602946734651363372874847366708661591586088191101168440305726764247172054207002594240230130148995380697262454270919193138164067382687021236614705202547549624603378967471424573862846052000816221675328150750886255250929489279653024174460176188663629535357906275083798388114554564609360509571812105865292040727660994679021658092539848068537203227966597481833463110817288052130143763681068370756883693445558833259513680641695493432679949947975386277073748972448904637290041291076863302722457237995433945386751699232218760728693636702703112853203126121850779231820519193544125817177220250616277690689639567688746456776632463752905897265689408800711435211344602322336331798712212981394290397716288764460952504201221584066142256009916235323914990394788649434960105350326084080414302449207447245047962519357972433779583695531644002264332856276696271666848004207978451448552150833341670307454229880294065297422920874257948762338302485115298923886823249034187080394697513285938213447752486115457900499497487937606226403092319482911976822946718425870131254331987656133797104729179636300759501666761402419411733462743505752155503907834753571101879824491105721870197252483679914125881070985228150134168456313025722922292050453931821092934522018659288018986608506043819828825752087065984971046809755639077283689684729492761882485601351893157196620090810698507877621284863870618117124101203401392703745525721120031408706260736933311419466426548428530071623112379545935935505450518931577478942014933769620119658526165685292059837596522161267517205430756375794117468690928037884308254631328314486779123058756344329328574457276543513063193942766784643086018602922018166969810940535302349642878048352839940242806264019773780751797493009644032105174491342704096486230430205752980991544557550576158732850933938822347067927807787950469077856571508434448227011340496101669785432528715296548286604294918244110341274852259533671601745017705834312599610946442394925744947558387425409455357545322669619750155674480975120131651045143375473235989432754025168044694391961661243608252797848860151086213155594635334480461658261300205511751466357325386290619635351630571591991083518899541103443292663569581971249430828853983718422360818078587326677042173113783592861602963816538205951891890997703497558755793553267741890365250919837844071875728453114893415147584749520609079821646046464296536651523317110019292750695324160450403149437923900510920837112247469957011436564863484410623697603485290838654446568372881655336892981411635382772475785123663407631561503729071580539735704043096422264023667292874558709430479787407630555026125922484551432441703500556617690624932469038529239573801100438083796765396672739527678652920360373072251033516394406167754049466815198186737714575479352017014461715805972190216231572017088452730313614955536455709555252880832307458500786100456730242409042942362549237807843056796420804409570457869700673693875908684599350422662498626038970106563519435227937803979851977445411077617509915263655970453672292556201164316907875555195507830091901424991442953096780898957717037348654200034169405935449998490871986129959516736735328444616960058036492372794645561688890931485610629735623228149150949000322298373920439105558640337170394938254478981105979194457989494177524648033803391400856098317441526842827918945977360299257343724161963874160580488401937880370195316109726257920492249358392556026262594646417481171822670829348222227625933728072747780465286460972253641500303220671096762052221562909322467594321080207449660341539167818844993838988228066692786406156068741011213310813773666970519747381067046526199775884284347310387974006448099942066406600826299015201835383141426503508412015149898377085097265774128340656681905615751843748801151598745455565692883513689140668976768642669946588041113842250377087801239049585392161314075655438122951061897361145000009370132603187973391375067762666240697791051865390788565409798424139778020361915220443184055846722888107050661071858596490913191352935400303630313719402581321275756551321406523910443662771410945865246019564365677481418514295633300087222951079782045126618964865453843509668725663392179397044426961021557589733406150978985621043440212179073353322380875691407022535672226015456301887074683133010051770521107884205033020359827596154072877139476029099025756293792835289307911021626724272664695592795231216466701476346061833063992770854455536938809710804127143800586471758339069914740058763431489113431109133431681082745341614370425873868056769836557670270637572464577653435620343205986050440172209180683152385400219315796206598525206391388892425630001198821423326235247600099361082780228806676897671223248792540039309406879388825001695168951528645909727460233345633569476638815133848282751049901710230763232104904390773291886462987379910944851421774103260142499087776520335765293789018926920902931680184065607357882256379594228588759492220199811024720645765869015665024219065154555702455636550527759403491917489913296866614250784755916223488256814933446239441315039117504169757833835091585178038667025901668124088475542755339669675680726558791723393180936814971580378892626176967311542144684289637949902445699399376256922523046331427925078258877797969360983500487358110073308164383928588287508411050702565853021566236609848142662934190099992692616494928404907878916367562466815358577270062138458035963672064114013272475800279227155537008048245655994044484331033649975508041169381772744535818615059883642512215086309154545742624423394669822078592292268955791404240643633418807586336344168953453140406029423694009709970460818400080173577601776078580396093884276882085869843637155849660893834836957212602387433206847038153834461317853033475705967084350721461392562860740810939842537450378320734005029301288819098337755328951211581361099555716098554865956397213398860715084810868745427710388307575159484285936156493383779288353651498411262745567003668536567743438716153696199457680683470371519005343619730582725110610990158224487161868722087386815731314089295030393674378008181229992654025548323651821189474390971016375048195599898789118579377595941746325803218360668072100371116777219254102457432968477902898606046199705484468126080855843737121513415008234852065364758264659695778341572555204242912983812775117161966672124842716028321444474168441862786664176917073034123301036213104949750997772474181759495587152366445147754655821113061282746194764325301595598285577260636929113263196691752492803887326887679722895162630870385137492920857669523131999264499261080617516308820518085291103872269251913759367183614777981326418175907263744905205566447189389284968912760226330891836337188256286248439985581878084268874019854577423010966063804392187701102721967990611028034127396419564624069916295864905084946821937154763228320806635149662494483995226042424181308749787126645845165034470916336181142293833077054931027059990786710326081367136770462609523814474692451830982910532259147423550789654852516814788678805699187442796949488254996901097397377024732261505867868124369620275417077375639352025430281702386366122190298114685049993315127819399654157914443520721403401942394099667834120466753799768397209430278191733737670804953022700724873304005531939561258478877312290810436087602061013024792070850701053351179895000006754049844624749046000233963977484599285705344201146710096981862761592543093808149444463327065394640164170816643300058212976539509727289099216588746459922682122373511172318185469608428414835550057893247187555012138628373760404283381224205381565383279133475171053997664979447936150117672241831713214798904262698713003377749601394047399940520478377437742346334506873829064690777822391012050657514194203914546987548638933218057563460722885616227222830146726034554212250579354116164537486759054844320395475753237316168631592892905952701563843965437532553552163233215901765949150824917603069764563540222803235790526837440077397298851619620202549986935515052822324184079426601140565283484214313975167329477134499687056775385601388849038235869284860897677533383429746493768331523327908677138318298090915638401252663186830227797383881945367214664201628510637586566893441815297536211145398977849540367141674311394858179552525506091310665686343404426918393254806400409397847612165159461827971503628251644632787868612398780565848082798169982446231506507335540175119324410687955744481529203648042107775600448827473790992110468680106617641377594039623274196267517856712997603154217179843976243586086908857250677386465530896691123183013476732443915974709378400266583470584407922184350786690511732807541531639351073466802516484472828527443346507762705157886156712583961547512488417650037417769533672220240882718359404740985735165724699879538734025351458552756926679791808338899922612807329863832391118165320585559474492379239072569139992509927146481367149454481565430283396346193965168258310142146553056789434234335347441195178851253992928322732278067808326915382479355758243664866113285102520340209167004918783543905157722257674295589433077948290796743922121561483368441711380454024871742445073534139651038657105132343502008991566658398199531497591679354876802291057679145734343758473913562769950413924300220864220543467665177396853764086257142041024720477455227963385445995111646850509775201059344102235369817853596397956448429100502224788020125553324666066702274885524462469406830441282792759913830314661067580433650174270403743597294446448804024025626782676031186448981058834867973551301475440849808831710373664925186082393903757737912865020413864767732625667011751947025417431239005539402413889637453708029535173695550159548153840065405476967067078755454874214116249381401483914539398227604692414041713527206253040426267046433888157403815494639732324673690941653250324979255171114568832243646658976483844705887573465485616921268363039887218251082915086615898670410416899880304630037929794783171025749919461744205429806434590714386890594946134087009838905152557251997966242721201046413265550702454512550866410939994366716584776737065595628720719289877481800386120018936635755084336818326358696183482388864074024900099589629832183308965026889857082182797825152285260937364440919447519997772065566002698266264261720135497520838602623995950459259784049968265147829920682365169982305845884327849537438317187370305321918647010088261118124485892607004157741359163021564001839849539170945177992982433319601896830287836034218786374468703414891330694816709727830316566164518338790476546823747790604097714737109067450686629825285528267239928147647842337254368350369015756639062401618406371692090294942984315776536219953032838991926657928531768163851586406788639070342456558772214238447941495927880633861368601538169529283175997349758491256782151085606514976133956902421464980332126336158679078833196743770339182147780154995510399405977113220856916010188514096496268541269562960395361008652205110236155008045135583470937133750991741088431143109852903712407309081353533418578159649481453466760943758025762517405391958175981726454005776144280607547210578500539091500832852681611380091172487826776683570679772156951634907250004577391179974577724466390115529750390727519381826628268436291658048233395513267939385410121767533912170917860022123532719365475691405991465593485004087117858519832249404475473594338430598050341229256711131675995855162284747852586961469335035641936090767102010439340518276824807523481210431841109581096738472109330801328350532445504342286811914734906762209658439914494250287589977400232495101443730423873319388810580850552047615514030281242920091768929036628610862655317411806586972610009358832607756221142109204737625645599527851581877775509237635573308429549805824372575175047043931956537800578398461614661971089174121206982474335540742626633688338610716799757930715188375355906793726005562531796233798930766279138945688864650678315236845475997528857165480776015186291794922423323974899124824112915686909700369943375564768312976868631156093799125362677462895739807033887252574739693468815826752052287923335093302435938952659582347494576966626937422191328690189921852241486572127984534094572583801690158288698812296160710335756389856059705491276690184330074950487144768806918867026588864221266913706451272674684288657539074050658558558941027272552134393122437138856382395620659744857537219630360781058002947213048137938590365902342426175886155541126712033347054342809887502166388888507525645520828855563183729703669458810036958215747939478046928725353875106480758941755298511642357598991834589738299703877611465727125560798367051855118399043946641287019073382200438848799556506920863987385229596196998714010119451267325243563848643893411071403134093159365066256117114484054294696924906187931067080740475226562799181693634789489842155840741445184696285659440628232544018967232592272137601727196220863165908291639475573139935698094960795934392186166073732558810023653290218730033250862144978453820454890962697640473455419639676576532927777164290938084916539394998800108022537394948815345705052726667393875209473068100008985423486543976126231267663687141078748860171174069067950160241714251924735792360820289003424659208483161734412761038293289825165327081487695954116389914475288975239523494721053586828973786110902277893849731293491043815285829940649545757733587920053953883682365358995987049408060498737772253371137671814849641397540732123749143683695000037905629656267042739886214738913005449574868242676872149627198786630716264370794745414290620324953153865703671819512600629846290662605341647778988507667611821091162702196110472004539526118973309133457974151758672452779470936274366573133703818585697440646272260762270245798829769652993593160889490986317601364510244009781512554168673470276921079827761372885898016278892794616031427015659890088071148758766115897388218601985127809622071544809039842188790145349744756865338297294129777420208992873975132147410592377159734665780041061292881262297131245743948338958268408667797080990183807099324624219391098779849284462614045941283700847989905888217424238346375999487679049004174439063021150562329411239083914889586874844388039533411827140048419774053428842291471013162436456837571858171514719495452757275119228927033098831077132247188860325435097595017223293203990830899599476664059133797070023234139457890066297667329381569430280842698207300501201538222887189773479988615441594082481060045276403016355378435543219722639898958849135325599817607791310163902092686269221430470129082347710524365814941822160552958838537835948042575574677674567088225409435552888863716099815481616968018471810211580195922759572299744157418822934145078382924489222820480199659634056819024453341347546216632055949029413977990698801763506436040719531768398345966105470454662676389576713372904932191598207165566618158098904231959352455091525421705603599684693227927510594243310291602995849782338328138514850492965739521235660482016476769754889172083166816619590182404397123100990144521808024913898522472789822268221152909347654628998097037235105925572647751030897422713525919538563184891035688661306818344518234869635537955197452567701310862022561761697507788573297777407737451585054099133288634040746351039061383187335166298837353200963463091239459603792164017092772292440928005687003121942916318857358593840794348828166997030565731869052545594633757727101139902352116202117347499862578417273536876725162786512261079240321756481161744867097667641633043864146978699851468263842985121960781980589651883418927327572545951311024789411022245964969346198947395008411996884020115230829930355100965152579133058685505176584425519015098744928916473980300780784325905308116791719291022717832563492272996214911807606444169657191755125666177256617819756515643857334431747180684254029908589322012535216946489154636081138150463174560538317407680133959276038317953814636161631513242561550724338510979601329012068130988200050907476672726843722823758221593448837509926132911564721928989279870280220075750582761807280319535830014634294481341518573401039518434678361943110305129615936808233867029765641408389686527468829468271372444848424130991970197790078950649864912751262977039358110665847273283804035862674368925984360725852083659309943561557603418208647516969873879331104822482958096709934864031490461961609057009697068757973090869882192614727977562431577335894963051924305488571643820511766938157585641766526834947539614371638283884236594787955482614971986298006112006673170369682127586219612549723536696703382374014755978332773819448512141618274304351184906370496962259565982646294011070276967984477604211550687187333230718341211385627804606316667355638077302849830471025128441047615828721764213631759804253400222375673071205857601855510163944009583220810571849599907948748648135386390332923872490933930347901900331647383986595135664631203361818654610242971394490150508864802974742995532183519409291111211424476038205908369840713124750219804947994385211234594351677765312444408231839705186141368086149943137574288705955201735604094265639496531051865421801538768006538652406954363190381054493535249827754934984289871557282359632009861556726912547552060758453581197312976299870942694793137006688207566411300252535051311663447523146899084633864629605111859794501717944041034688077317850175409614829986312733188371484471226191700636916670391161082373700259359768066755677886806605698072341679803607836570472524257733241593637332129979999220255147684364174034008218333448964262657806631780528216203964072306002446833105239432488957422511726314338163228391080813137913716666774924567863593674101135660189409255033719780129427893082579550704937861176535531442421713480428492795960175010395783265756321641852084664650698125824818336339843382788148342506557344869078268595071193122520420215986616913138840028184222422829991724398212767496928539403396228650108663457736529737992863986294645555229759987445218122961015368394745348981845782238811278105916624243781520307227012321721700365709493960372331543769387629519392880917378865276365661834968246398108289037097902267017437118987593216733328385026203195581917941599939116519430645481191253595491495302621685960390998453571611778159581876844783304206224659313160510020564479811450048201955680007555980263646839007870975912327091649128120441260204193623551846180660639625027449986311715458387250413447199103691397206753834620510626445959830462687000331782137578216061694672465732703817476804296655015714038705040282163304324163785139088628282157672426712480327522327181298222717730744397182419634262389529986700975426333117469518315698672547467539373267773102858786813707893304082045243900214909929738940909628400740577726319832779092514675152077569608633947286996099395950268120117022808207592430082107413183774082864398179477250636787019258713790012632314859700277843958127317125893164813351515807387963537796964323989606827035813274819956909935063869138373807732512217042089027137777319101049351108424450267037420425895021586955222380947132506693581355655944955527610960661382845441204617706599873701933452477251463014388407940369469641959725881362600241221060027635565413807154795324876806206350529531459286358710314232677734359861584446272640858189976361706202060890425493620223683699250317395920058200084441873744644641426929426669902467604349683414963093580657808292315505795137978617452946732926319219445796819487504623075075734061085725387134296369250797923643765600993226513181442736840220464797691981954315635668617182442599748255750023294437588471732268490804750261835494595245333842106980471597497979089064265705088797209421386160502782029480257093097513563549380706630190929835959731972382629834018482104526013565619070365466914624977196091562892342563125786152172261053852929173761808487341537699809588411307701406190785355656303900518655158139405939011529186687040228578292103534881932518869396000214662146884066889744335449161577400121290886488699934139290630359289424361140883166226502785194181308258340550004863429192057886171934439502859129026595041124147405724389938597400767353752654838819227155114888585197977592397848922847570691449975766229014316106720904116081926823567352450426591144206939300184319586224613462543285699315229003225047925291222130108316452585430853836669479478241600816026543213783588386675778200914267253484142120752148784387283543707840507166765323888468952137553254290422397434967685411569798628532676148323484849533723750711112205791487003546722977730274747089829269666717164285950393990664904001770481575380617109545203039881561991590856890350622553665234871967359979906431641014426229614879297487199084723650639962751106314371549765341072753295641755743445464063861679830995683817860428886763517172360830266456459554193498567075254644997323048644814341138370851856698275296631128621379500269123791950645767950721783566776986431161025013362299799297218858421851420794727409801436538945680284329542970469902798227289477109173792963562044506992074569933899215189010213823090907241011695808701323032193528277130033565432637100123387471337648544168371910393247733577919763398528453001335531194079012063001243161037413084167903074804903321515806082896036464748880101804040195976374463896473133143295110040428931793562023098033309426027146379111618718487508433142286912164147096555269563629686163780311388132070436479256957908987656848276807859313580628021737743171212616030218810624757954630620942932859014080981114366187500107704729940624462590463034636816489118310709029115171262364625103797590437675020172706478211953879426512645455503011960436094943567644359934549626890387817129574765009947583228637853816766231736759755447471523182919918042381704700214104215554069873800920481248742007281654206027531493541073056983861142575841782524972104755223861113726789646991155712019741364987090590446452102985888402102517316241077879695919766984799407821102845043917520155445659466187362875546772959486733990395378765220256032505867893373840730023624398027511348608532518358250976369155394391021073316865417473860234587544742368606445327961138173024976730620379628624330502747512782317393294794785127122877309482695807499687020596124928765539467129340636521349820118027096954138671523712507753637858869966526083269035341880408984778046953227745064818811891315927714498352787495166757621828251926336620217665701046925588463237061163956233611686909578283145444841251413542063659136181527533763414982609909800104238431614246795265775512872271490386278460395866491841009621686562475922563072630586995467992018974495703081050655555094911981346331319972920626511028011231710514247333399129035266220080454258611149556134597214613709746194502717687336821486226450275272331701012785164207211159748631948402265020584938586352381069129898310611555726142998733922977141978865849480485425821336476938503932848236304836896589686791524590922857974721985043767227689921057913501222293728742684137307980678445165614010390424780747395597464219954644034543156078413628674929214781125588789990156952642270319367898814105610343770859774324002521925114782035655961420333665106686475877161503089441746483831287735317919591207715568772427380746901163486213724492163703764503815821551023230016584943719968686457079247264380962392602720943504307716308089739092418563625612651507642926776622739821968774352519507450684789598282386316564157574622451501871202439079104336803879749036141915128014072755710515177729126578186001289846079546987750131464127964302022746046021713004105186017880575022774746367404117270934724662808444088438544067956663683924140711196400934546090244301949714887722997220441309440784699048305769530076961424162065381356718938322961461094797237869417109010142019151361762529833902865931491676081516485835345809069099755156774370234339912380129583337459350587246848079880956261449805637906833137998079252180971295617161516937705758821351043740111792767658835527290768020564550032551561562866445896487434689459108791741637398830450832463705139963096340369598885169195817044523416452132937369640233917964426931278875365933191139096865854569260015670795580484170128564153656158216130617559455987346465305219265180872522829986278631524843224148181729804944170926075135533412903515406054916300570385029625589223814403924197512800899716289299052800255576264987910617031095943361760129791665451590350602788402937105879345469931146482957191918898543241044760851803440281659596746863269131924050986628221326721458392588573322145640303992571242690113269438503654216358037712721579345292493413286159044775434004653270798332740697543774473955084154335243322936513314122810698453891995035236052488339101160945964553251778470039370918498603464039865943681273191230494515866157465091575955134306600901043105982125377314070167206570423287283762417551939121080472906005681933074963619190641426511245682788902564022503544008021282315668298806860429637973189801395707327442584120325046506839966237429668155820942855330165926628168642260510896376959566217191362811188513674654481096338699546432046367613084257168909373905586195530886270820147217238046218377107505239293464851285827236781375018869185215226427539795830270974695822436621333801399492306954960129923613592815152016291727608249250666341060870314840722541623206816094380616736182623640488164570353161178883991806476568912045378435400287441038493185107727866740380411685144276558684369319840165945052322562053921831551174287826963351917148796269521544750081412086534904378977696266435448951142188387449176888900743636077893047736270555401593038292463478482969414821920271139907675764194341129869141061527071481216222990035836747740619367277090680100935842317458579835619719206031088308546586059041111717503555595288889668576718842433906339536541111234615486854751270305979423830350968103442921383416834803079459425665314635264370797234743904412385919840880096414887720505879940024945802188123013419546405821625251589842037018315129029536126069764034634239210201645030310214892267526182494541380029154574994697265283785446121621843211729024013209621796549240241037885659864773183646029424142938924152496623870597642303124503813777361542414202937671248884522110592887175666338195006999392829481052326301885377479106921501019067655957080885734705628670815923870246904531724469952539631768394595294025802709789423683312368455694997147138642833023593327678265913255739808570474176120188991906181140818042027140462846832509516445083612058476739050401943239538362155925251768663945082048984438011240721313946272922590600368580206318182091943208140389609214839370484476202951732881037797189243562339283103361925786507391886961364540246839111839703765287292996595963381768358700196425760971150867347333421523102992133774462148639681000705210280433653278871333127191671639619762582872891816892338043536564020166086942961170524242141076332194591669512023049354037910406410226001352675859624270135088056576223514695556815652966546342445475579231766977470488801826593511761615956637005660141195769874306109631717841780707743325241363653091508907202077724625951341428912398407753105581916676282855968650178159910279863228050157929723006073307484954750371672300573052731198154852521910879557859006861552445774116556294043422304859120550213190867389293300050768306231842890927513917768257827353795878886787376738949751061499213580751940572228370866057407813174678316836887014815124511566852428483816592500982842282688182620161821511391562450980659717469364016593695965090726696994439896372963103109783102857001592758497409160773309597705074420880687217630953534075077233701901809123302477757036952245256221132202221376840330904230655564050444301459662708730593883076450177132236336752118090482220618406142213902061341457664196763570077625369901585552628341482468134914572311353628017860172469136420397065992815030621583693448593159973430915083954304164848422794625084263920627510722877274092567024537906357753570932062315827963786264730452770701824604936454921578154321609858596081562355343634815316808968327617710203079388373056757579715637064953067556020977318908854540849634901941049379456796034903956209519415278834556073424308866360663023666850562619165455737111097131912173562316727302258326095334602317338326730400507347224492421548068138674264381063850452446704212235310183942944914343064718625980600617547106404812139936002715862896523784422060193067438982779601028405563996827893424382705732284052702275001511083946473654056733257179180127125005168067224620188374339437515346076567605146986970693607084419669865384447834929568219534699245438487968407886482506651398020328419242672735137478599987434878590955226268098613783643422228332027483136914535780313589069733770629689116308220058331971623548061370967923101024484504556362087627398867709848666451272065666040452237572362701845361494643368142269303599937250841792759907887807720824642478038674517115333536485931010094798669058469398028678885176543370309143692030278650888948397511929358065916891913328848712389701731031915760450841359355075098529766558085744076599769087177197520292588247337538751544047046297129447741917151872051216934067176079399697571855677395382161407618475441416540511036421030901321914271093168976119066882924182518401615813324136445381900058339766531951362944647079458303000558220698223769759160863100869471472509000241602741763392859778166588143669548567828600386107323739368541558745572930760366713796164013647634540454906009034006456630466518550268205169556628986962364332343619464880157725974710256275017469634605931446120823464403705608980849415875350007164679436705351572759599203475417056255465307083492736252261659947836034991681252477688095319834195348487944020490418467715504629274569239619991510695876658524912467383759509632671418627305319418568167868817758816858770243980829567201732480890279155058252815505194082683084257890633960196458641401419113594464632710621006160433008651534857224524479739731884935665376486820854345202240966634317787037537767061448360729580008349680321939102290731660612459370322775920934902205843683088960703805180981871683852143637014258854396914215322870345264182347971169276019746979839843124924943709124690653808395163535399874832200001553668679210552690898134661451563530343695201599231582096957155147246783628930453359679066958150709539352214603584788734315026760652283205325423424449716617266118931071917990416177737925558869967173717220433679700687702942787360968842819276165594441938151774234413806465825044374086144435383377163315439207229729432539592769650547970337633461034230459593658714663828193282743435471540534255108278310703237715228889028634111657323463935980055390628429761273985107538359622815474541531450702324308381891857085532339286662914814056184645270097967153306921528295804581613492415372642638703163557410241934467675315880450316782928427582634573314989618746025113674146881073015684624477369158187673463389678325926806453278696114355538340762919221119810817830162514354509518311506394989841868509736895923822979563235929026786236501870183003622648860420590347203107694916540133111390783127466348854728250015709140301554776837713208229842157914685987688996921663531540753562507036483219822651859684031748260039538626413356074843232477540612785772100645862085673273089733768711522305546674533754309214280601440060505335948207545276813257955247005106869141260482234056385761809063329017698152697752986707611599471762910458568625337822023557185504295445619920914798720073577738915353998517184222337561831923326960955983489774029073327228003373842704031362591816511888788039845028607359944866684978799102827908393561518628442682712008747943185437856382963070840609991834650426349205749567060460417156365870090678899955387133828351557153721506141171315018849082413567205515790904477426988530136635291833875035996342944073866126461749087694472074864294605566577323566186117787197856447645576273645038757026213856661224001221781101412335882295315446032428001282586050862896740222795893416065299192286824970391382987938847678717889315916879566700787142042694059558431671840979147257050209371814525953045102612707694848144838725609334013357502429861676387021280654481282356985462934671723359253468353857283462832575717699046586292870498802899431922128803339421500874901562726273971356800261489396313972468499333366584019545150674977985910747958727539529801013377855684228807321757145840340048816589280754294977186341426103617533333196039925426143275712110885528219883205805473185031382911801128951942597534813610401867830800081845382271240364440884940314312481787950049091338305418576594487517216334090524641673694652388069424660734645619090968111056345595666876899269146185408419599530239836752539997765543475915882503333058365428659222093248753573552716365748234774728749476589463060589025154712966203044913714105333908002674833588287194295368361772541911893314627703627854010316083450223349005022952639208430814475527709180549795777881620354426497754610665041772051539745236517531045895143776880697951310212818560073281053527684136643174655214381168024453557734309095177327328048166323875836597089962507668511114111634415843782049351532289198740402333884896359011414568659903557282179084677929107230617234397027083492717457226215917166556157742201279770699566664372737771709991456690653576504006122920350985392034896038560881657997529273823681575018985349536531492622119942175836498584207552827610430141141142762988689629528360347793304382761004651269073457180219850101913223471642784628463312877217672520815875435598421052373218893642253200942526864258030047264962005864265390695477947208273462993788807067784938826761719816421302754411037548184590788654445104585389162700922114789819391105202624476193475092281712784980291751870521564694354631410362935279986587568782481210979221052172443532122535512877999657934873037928158397133894806702440702918821409209272327837939253448459196242597519088996402830562730737463184923136271826775395997934596733692307990923003386347490002139704897959293498347465703633097960287546341922504547023874965278749074686196822445660808745872638762292531484449449729948013114950727030508828280645408143737785451117484323601931525841280802978806257507874628495638837736088119717358591009399784789381809470999236056597130124746948750059697513004839990773048446940867210866571093320825659999057588099690409715085569633651118372365845410616086786285642783826721197137245134996156958637552234872434472404136528242813247688080268164009508847947343414548408109005359453708535583600187026330869278819880341403721300906147723168183726317495829891323071412690831298709141028502519588055901887465475462794982077259076577094581964835614370907407871218915290233962468106075698423662290690440750652944983440361551669299214177543170049874782583043620860810364118380892875374400804616351552249794215974488680242239786041474092260466894512814064539081279778313881122006340322940408464670851566022713708014677731126338535209292937478765550160024678205439331642126902619478319438226420199609087985813623063994682287980715305075517646780623723661659237679304142899141047261432270845324778551213922683643819238753137642404259564609678182119704938537166180130550808538093777990441256671320459001628789122309299040048060202217664119794458927699751634379159014944437335769747876193132328408512761227195766575054010176157229990891002566639699214072272948742641051814596968108680492376649392010498208426620000534961590182708845578124292666926310878976311701917721821337260673708264682035549132863335493045950240129575150218255463886037706091964814736715092255740463481141926241272179558591038965111778032509265188663379746649313485364035292896311971293282423893123732105187935605764434932331962815329104495096752864237800750055856790446895115445361640657903221628012462392550322076287058166311390149576219796700498589202787467493702681797817989003012143772296483391782337573377805624869919650571519952965412774316692992883150725563705528525225630140429399649756851709293823326541370143128848862104182424124116490662963907344393921094572742858093771237533953710052494576073877627958308162537923300612761466744747716140686131743603522593215137407127310434049539890520934150794806488660442443517098276776373692482085526551165957873162639429364606616251629693792789839576203886447650781969172580697660589439589436181492721449561343281394019244753625777506797284710630754548499258043696902188792977895883333161055030662922276482645941876321678615840813122568251555758891988885135984652330070491329920775026717732281101450833273829595820293743409772487892172148229168846570102159714617859682142511904916776706859044534133814034232990469285692862225470550902017671595273818907963383046886909775664407925071862818790010092223017939849489204864183091754275321573592701891452620597880043614191716702928739198154567372136756139997207983043996892630757772238509472786938509687585524210671783946197914825158970458931115406918657073137429888052834946362052368211396724878640781685279402441008324932866501528323699518991582632077194920171739543693502493347335657064638659234781342348532371722235657255257316743500817080120624940534832952145635357019776488009197492017527705763823682500013842564519347570121247391826894537686303259809090922853445019115483725399338523921783096956736876187784238290513860023611226983063186760517220662989413812256199258109632702363066323813123753175105828473834041789987018506937515763415519210452454853341199793615731634898857678674015782980512117391861058997753219455035305520924767637985910654501806058366806353804277127237704423430998388721278363530251078673452029650558441003963511989808303979530428647992143916169143226403439154232543648672931663743530663819623167596318053107979173603923481876519005172021664310124307954883875248748762672028604001939862489937418735839127528514592826941964220073513916291811138065153314657462686658702164369098803189399533546542615037218871139678042168067330601751490755703523518722736139769974805087463072194358397959417902966238839631342432470705571376037609121796943993870281060229663409445413153235609131964435640089811805271116950566003898336392138392447180248958360579685178880278765648775081742358677604367747329367005325817382048117281352758106774958043959602242461398854584288388082883867440056211113952226026715924019944135013977595317255990606791833551189984838737907234337046794074331361758734805358282247474625817477576517949480684764417240478063182055203533737305805035039955503200476760820467441615446528566318844320965120672213095641548620717130078411035173865086814037764656394856916281785206208513302944022477469483342652510050773479731204351553845103542391328112771796922425506778575926838239426448478926275093493796536209650859096798694721295648969476712818426144690731669140628984917891577462022120111024021972541537246777186177721388499543481826531361868024273173027381863852504789593157535229715674794776013957896055073300403009667621086534676746255393935127100002234505854258150987975292458826303019271619130265418924146253988414701071450238074679164455382220360049735485783986182421097872078365440755897175333817593671390452414766391655460507973954155435965409923391308534642750909371618716257483286790907934265515566555642103171378635223810438872512231450787346563182971983690555265656294646224709533483472983101807797084943758256803674425245421404965486286859626458599488629914676386954456762184535880527317096114462508560816741717790527512744197899382272332360102467769838298452083802239159520892920078802157908804420525656807055899971537219937610511547869854461846662000347563186329229268265950851162774456125194536137443415008666947665116640194065313379190084298348296996473269791113961267284349581544763639247120151295529013425678161147119877331865896304353765511701990504157427633367958261246260786913447272821563747566335484381067186869171144689057501254952925164757103050788609616857495120691839959485984058464789126068800229256426030656553078581325283715090043318415307371777246963033820340804655817227794065140421189113973426146010178754388132559315646074878601256254049364364267797806689088442784465878073173366847480439207893112914344115637615758792276599459942532722362696482566929068186593558916397382542635271346343923121057781829186316965201530186530001840830843943719977168338694259524790180771717090504884121486578494596214322601074784323971459905363468387660662617602377758148480062132701450884357403257082112187787424203537898167817321906708852086822637836182187412728675536958744926593681082577224468592555597917168160167850426041073486769518450326993002100866179202924971203503866487859829570308518860889407566569529313070387189751645737731274118095098195717928681232973844680419550282879887639154990764856345538651531346880519794827189956944027283337520391922718958470307654951823087122330825341691135584293577757962104501779372644438285380981622398172332069749654990050509201848131934789284682465649209415975464105215482031203396273303121033954666552186079048785931131555617918193017647644909553243279171255008545478261822302245437310210149613820085611437957707445846875455610733072896030374519855706172212162360537511353875879459120004457842569543281353816123299408744116935103695308426085585511062665183914610748956273571223778361706548362029368577004324027148110984756974277720935773825911330445636823872470881830878002967749964118203336606310589342137627607972523517981747591858615981388959792052340930852058323958133584589982140103928847515073645623705823458541152979349849337474986205977004916971853366570669812366345039200564467824522477674921516938647344533077309860871675400159394601461890713538728417080430282894117538662000618138954392805674701431233054951779140688724714228338536567696026128785399535295986865763274358757927410171532322275105087377378250759426701273354417037482496141993374808402257966575970523466157166615472455591389962217876982176523487413850230839618905990644399608943871612639041490975706698255608403082364042916084111124781547302207564827448230713832587217676928252503339132252075589468111768066929977268085062193838879745995158042936564485633099541053456884596730575009443351406104245833264475938971295543721869158409665307019863505402064897435877842883094303678971191430036310336057716636414047957816234087568246702334348406613679658332238529867100437710752345779899086178018305827702264757933184604963763149912713004752375512795836007342106544140160576937149715408201320781350615820306541841110707328133405097069486816772376782331637030059805540061691756748729450210647758079274504094538168945489740707551030628784652087096677246209739496988847864967022399208076080213507437028230681143068704533711687143783345250925744652998093864402856982157809103438950745381967246935956456119031298635359107491869326808493955440616236308583597403037085974974935860500245167377952100212181104521077273360445039524641730596623188608054189504350425949064558004307021301655687088413933317910775295312082622380894764632423788609284525094471472386394288100641483711349630622069418346955359833617901426029731740919258036679073340384940636486265218107947972231156544341833995306424763308607450924020301766053484235172500961862430171308368899825834903949829552409064616640888003506987138900657676056387593502022058417998455782919774524987447705629306410436751968962364876983613421747251040210563172172899753872022026913367242752645789432708567261961900279220003177673518144210921310193968201196622345336499204735296617608954734505384331578848858190817018585087974312797935072711020191509603662468803005519389099131483820777631085092593616744572588673156923224389328621467422011186228093771531281282569019279892083371420926516145319386148887074120065074058670275312081170913445849535592443089046836496784027570132799003930846094763126426233551422365938684506644408584389071823809326841850168957833619696314748530429870008290650984132663201145679316987362276968288445775030489205497364879669285685710647017496367726205027072522241926422785947393897407332922083903425651489341841800984743337234857416578782279210921316163214149898934809840440769060334042463043887544631598682749234898461561804634096509329464646015791300384308141000497911780722659589538022152775378515311590738590079905326136797702869594743591534586847195124335334412128099142876808731275498116783156019260375975169100973846350701150110388017013668672279529289498116089727776256826006291525348410305120721963703758097525273893588301324969846774104251501054824551649074968141032611367568300698929506295135513186033045943474716340171450453272386376034581842486094220270905207723577018832233596705430319864193229729385800885686037360506061921302874686374571721169767760766540990972164561043625413703736329607513829431760473136561801940832384638507756141956104776990261193181719931195834213016864653983799666015955931846989785324161972595906666302446256737256485257743768258986326272140984802133870477065331182404715786964557106394492834347218597086165948434648942470839337724252937488600255520162663737554120810204227036521503501091825319267763277192470149408216492651048929884577885815028752681018478946538950174589011883450047074178794395910951296239262332457695967409786406287082773894560959210828866412125337602701654000737462746958698347303946414030284808070960251424533476262286258666237760902842299632214459618380441590560542393505015692631618486941955452540558499557107903214351676985007620592431294745811778898366473158765586503702778071990765254976820530731768163098696196524067376199024387296572016269405612227749293433468801350752493209115143523260163653077249919720763993526994771921356668722933802322962858370881855803320319194593383268548187108304543272134464169526790396808438824891568601237825598906172538073312757972703728848147764605603188463773174123229514586428399010134294109025325747130101141339892595211578506032380692335783586040026360490865131141804088402713918745729973404203502914027551202323880145363862652883507197381345991852886203063065529275602646772229189007533959707513607325085251412640301287126811352462586261767058071546877902255656481552980037433419971921854490166634249618210257218557727570692960340731656798478555631192144319625337600446510132956560985469247050864227602216909037945854387817655746272581967947034018516193605725823054899723783834908571313614412874093091844778703550856363551611259260971722390513125947242196485494325407336626119391537603525862981889823876453749877486205283248940456481995361602410673527628816453808209609099285209578960588422859283346331517356154663921101424838320206987342883214118871647457874386421996623384498162771302511186436073246178282447951051524771847890338655701742925113567008260530863967640009361512928482045433079159281187793259857751928011084248010328058405319547381097407202950695158256294235296253625695182417529287026998488645114161583372729781454308176730495009057022315776528891262974674169396970817343799248459339178785180551683597806214472889608892491399341657195836522838786167743843525758178405489609886057525074284276309271044180838145673567095058454604881947973703938496100493212138771529168548253411383340557660569327309565402844110162809062174135374973735121408348219624007733799463331005737856835550408865657055801369353713365850254968504659357646210356783142238277236250439542659378846154087626294690493802451545871174385527876168243218495959760053121399060836582372189599403054731522785577062964837469206960787881802444950772253284816978106375275943532505370955561252790510847639552276668583728652810363865848922507733136306954206013011731716832868222527335251119517881675134971207687901493887866265657602559253675731986595307690304959605680724035858111369919787031466230999886948066393736110234790578903700455762572765181594898400530229915894729971306499900492726195417764894227110895741734408754134365987334644450737718492386843690136598813090744647163029123806890181054110375847045253985038151275661926959186186085820405287685821060975939277328487897386193214070953825912299167510316330554505300984763667980185036679759714526172780565153467707742692293579060306634079112134541392934882691793644192486985200293651469000986504758084955146146400888895329952608206911857003895125867299262652996750328671362835975066886173113783496366766270668430299707041485020213406653608980368613797822147445879923218152922129392192669477524068521042208955251856224832916683324964651039889268313301318006789331855334968565214697208131942814605794762300375051791121781000307920445033670241735116318515695772902605939506317936465825653406811050695724903078605059318910073297148514501839790603666030434405057529981479254333156531650544818266444582543810759629336668211811416772051735989173281966063612100685491882621934364561836109266526409667997574295151783156151687031334700173908992384373715282835199085694573365661496606003655598946678115774820316255281352955187492363210592838979535740025145154610375927279275906799929099748740115814403669803291945523456582484985897162185212920935015825846556952552653599809991511142711173398727469540921220982267320142061940823894326443761299808630693734336272732891784541772818037755212529629815556275115330041176867068391166959251382376384067593900559078034286729181882724582055497206108651231229029006847875071120467908877082592766133142942415175326031784552511641192047652896034956352557899422347796448795123479211535441719047931744271618475873253287982190786413317351866960000482417312244303881956243678299020689110249418250787173714280330071588697494937551113920750323120764091372232363324286874596071077712208736080931731655420497242366197144410463797727009819540400428801493562515306481695119069963395179421911988718908444899793558090856719246264241444674404837216995549433660022742805354444114897871535149556295397712434407590008671604055790166468671235561997988015977490229277379533410927964446005117285547647818998094025876176916469619070906592077422553518027879307935370968320592326476179905581360814278036544626607099211103253168769502478842798893043990918010271975895464343792029172336219240196178698638426135730457392996339733282815728274944692351045485083463326163067640027900080245579037521163960283845093284594733294117667997979497211703627973006836077263505663683573950692085379936774730708771643411239832252147690686335406455202539445099098864822931634167647541064046694189371282165823826859592137647868313006289859621691203766839827735782577339809684314320026081993249058096395325983630648605341436607817981026337383748199180992022196518104347507680452458536489651433672760046988690090549289454631595116994592224123320037572569902891945679256177207188241262730565131092035444359060363503244706948003502640747802212339195079193485037629743751395281186933984997664979695371094483899383201491273216833533862960667855222623542747565627442670172117190431223804156415734508043186127255880374430874317097964934671973037244983505117146292550492689540926013703065581594777985221971303476924010434693774433969890143007547364125055440719603808198518930720047619933508801471423689722176364421233076460291638731490390046194796326326745351272051843567427129347178235709196671357572414641510148139880497387402966551182323595137454338027293967251131464733590177822436052225844690391458719170537775833705056587006876091873766240618346161181625579868279306123248758500485912396390601053788410028720185211041370084734737585349492423297523372714065825822732696814353640108437130226430099231186195602468880665920342692893672981002056210600366992574907466560459949782580993527374569009066568557134989300587930528479908722356472289970315302067360260523337689540472537534606693785100328455135054844378431053506602313554935437597381581372048364065952723996066632616257592016414015155465071804021412437436481498712253275818491017327361021800070927079933614203161324309389935326982610743253583935611186237251031542958673486415440525075805152222436038320561099094005795200074049908019404309197929094910061751624129044553994181919996075772805772528627037172929456014943377866363755015189855422068382593401850417067997501868003812532766769058396745390414681091886103481678306096617049115749005357756766491526927423630106163549094212376350561776060901080499766148280458633439881631886479317349610201542004159226766356280417562049163153009780691154352457138701346514927805091454204876126968382736331269240633511931912896826739185531842757947015610036843459116183559340501549508101926812761620016408460589495702432400282129502622646065784172890468749036230547782176683924515335745013134036625426516099643765227344192329201906297478435545027434443933716901091042911451414902598958979994391355316066054883381849309936607197181586755601616580478909447546778438570050649966632751488151413529187586856642432460510755371843745962598689446776605892824503648938651525442235012154407308833546596546686343291485623037526444197182158194025309877087010193021744906480323488366566145900364513545430577878058540351923027618665608163761486861324407064782522075545937196528678572495374483157166239591539760244584462386026739520806903036989634974094376464728617219225433571167096842030643904786739481597398071904094139758948429775106043384156977834048647041201252210819898205855430370738284784021216089886932568029581144028486042481147249580112429952477399948040545491923995993474299715329424752439171025134492908452502386637334429758175301793341049391642317624677506005545548538796168879609262316849689209807512791557332041569052153995463282733837027000794889976324203110971810556099627693286351925370274547142975526663351492804478659739875794317665369942791604682597827957027687551782778215612105973620998976807061606451690043621438246240356976449145403358828033269426773511791836023023523681720730259196661366589064665507608264915946306818097729079563146362019604389871771844059356533584431392762784257676378315759815749455426885150598304694188853324604121680159513186458905956503752643145477762600475467002613267076546942899496018472659031744861291914188230640302624029906183959544855967393837570092969377422009889338586161943338335853637165500732861872195407147691808917198799342824106722575900887493512010546105770046170767917315019127434619831909904586684728671175959030341385827226246424728264987335769371391335497003273274228635517491206403381347803449721525361210947101193273148565638793534497479694378308781567722076661454741264014793769769420948770155127956663570040951775746983450398869325530498429046626356200673778496528919008866344394787673360909569778936911912946436311022028227164567605915238980991877401029369848316755167205025610694983901752015608705095451759856870220684557085102378266375804598630387167518141321529871252538974648132751004575050743928214164608828124176378671990457036686722665383191378265851060752337639913319232273989565998116217955720122295791397299135307807388530709381720467052508008794678625502761689061989373955399440707025888110542697593651729177329420976086621270681463310439484685412133723051389309719625251494282006399912403961847025461245491915510327837606113374096093665098287291357355213617794848189203520543493387326459604508232173116530436133195657699040496201377361753147726413374792219754195430269437117221048578876462215767167520724673086153703540847101853633370531434752690925098984974775601653827883111428905208192346343922371473158891203452170625505285611492349264371751126568964344242164118338473975357494746004286989932337827271396237503194270965254106426751979030007328396575978381314787727008805258156509914212278161673469170169952048281616701342557522437328640728623201506518477823936669667314921204139448269545634294453751659878131853017707097807307755794774037297357071681479055354539935781976416065028100626404469783368789047077337549008546529743416514465047140231083269416993450766391711458667239850988398105485418364147733251984686244421319633354444626012880220712168258576194796841887872656467979218088764105313185108060609263072016011939271536939640016131729133347649151525460780265113459579406884005076273228045342677432942587995621071550423329425988343414623212462946011994974247628059048945916633052548741173843999962390458464773887247465318635917448264999816724408779432902995725470185790827421993994669187036340097576484088797281206525321509601674475175658885903415279650728699241266031272541013540387379002450940840620282956662833028399324812930484991425102055437481182122857448161633569491842646178793601585169424599500160603005844613317738961284091066306762022152535838252047000107321756808357950525966705248554655361679642107892409394291690842886913892904997897734590509959779220849051790818306992118033571879411481646381003444471147265160565494556857553460178062736351795718656879625223542280489638494419762060206443469360326859939193304709862279180647143694682947563730090725092488751345358894489018908319976195894964243620380209311058671594468766706527563680457676534927007526520127388868498525132254220533138558005884233791616290199299160637012222544467790276182019951020446128627174210383270235543953716831054138645356019701688848162587305298649791218746494886438508499936293734810642270469859706194981098617608461731481281350898434386406770435600872668554654337579725484035514832041481308428345776258444588423642834767877635797148201404814855007216540611057440804608311673371426701033519888366486335437506755601108535415916965815812442946042387144668438708699597604332118954247817162240597069094440322930475481341543986711708789511278701308015791080247420832205291781993331869440791324811700904641490996417243899216603137178737787396473213464827500795290192055945391235730533981626445952262362132373719883048252728750805770303908396253689685562101245723599417147027876607558491588528965736320481825263611831576962254669463662273557151399545797065463621240192695849056731118548553606980959180436502058963058870175622476018939691361556113674983868692480748658356358166291949419896983112258814440266849078491025973266676477699752467954193782326760137322168268136800667335804263559575559511021091749975489349497510367599078590312784760163353980263062044309898725295773540599193035107788500979072700877831969558094531869143299075538063193953029924312937614218341282142934566029163628411739646123789605929705910395103864673824862180739445025772482488629865650986446294317556513999095456587938209706552867780274500396800312091829628501205978352888794516769390924312314394099540781410740222726691654705715731200633175277372615197408260405220922282662930727320948128901502730156898639851478545694310444186410371911961913807077039121521047562488203515007846290501255124098382113134078348110677318464788495454282307205616694456827476732987230525400435446387909108015921328910636353193988297730050196995660191673413784679593953369040687073668177474849128972967834488645341308733330186154750095795923420978579595292510075270769566026156498439803881109776102931653273139986001381681720910001554665977646042302398312571958004088635762477557308378967769574186662827729454377349930257202466905371117980857350427928377698213474443575781553283543915410693403349665108751767808101933480505278038166784771429031701661465403258950684896840092507451988620317703799929521078937126229110218810504170028679640218470008770765430674785719836588749501806005206525117513253417017064215003395183266610317694257443739404294551928496790513852456675070142437141570387463656948865337023488678532300045987623235524833240497284103894883171832415035103151060037672452196543601009531117631043501165930094592268936285817268720592872713393825008956321988239192536260135035666737499438257003223539630475551096437693253312361286841670926203570027797706394044811837969936553611667023618926096981853536909502183818667313782679477910693582789450085531703457151109814678063910264447888207805722782098514794101292694966857793389442200796046704604058612588797902832543473792104383805281602580400674223433128250510535107230972665139486085808985247838998120434801277659224468996344788283186722360140346625828637894199049555982701251719934505212383656894341190879510949121648166469153326877116884014147747511519780994853896237073663206770650853155174057384977850520553177818051990201816167661319197568003086316770725575205361564539844230058435783305761499576020517493134959952757013566488742331826077732930305156569213995917178537546356228857607531568274172446098914215783946059089328042335436076696045616485178589680732337984570135353652245594073794429101561103814812682759109997734373333565381434525935052792885059495490909692841642881658111176999328249809059014430633778662471753718202142214958182398118695981871871134569071938173452216231077203934238736351555997689951297984730459356548208309914291737196261268157794736849339367164469675211540394166502152676339994064793965014308988234322951482328202952679507009546459699924619938837799636802868938165472339634726227656565622826524807629524819590393534520703535968992024356490944190305738786168981183390370469377404693783997229690172274340580742505167847066836515121073123426859615011885008087579536369154893592814010737578394886598401239519199925055007695085265519173866835163369255564584957017562367539122456210220551203482258987025280798701620555363177017321403465659692769444556077106107153158919603651430759312846902457642669895496907176759937030155688844401078531895306586416881634100437446039380389408627768011399684485182687230365547507284403664160729473267882857328948861675664808462459559186129532942380505534100086781158980332628660641066429306370149864808243946270874721394462661922189289740819096945493979197431122003647393308543619543449835263867799367717735879646752718819004341506414645047038436262497160027522239728275170494669299760250595636411563532902231818050650996209651099844091659704771181403182003312062326218472153799581630310279260272532162473131232414750522697931167672872664715444821716537374978103588332932979180922420478114978149660837362162763206791892251578720656947098076422478156210936759578762146354857713095858947564589729405570161961674698328242967183853934026524738225149772353057551371019902119527223160063995156892652934911000603605393973152926091847141791330197603248383266395431660600628484256439424591394944047681893857155173958105078192149607900273954874767346346875178612685031272038582750905632116945619059016522673316011403272921312274663731868586724406576679638554171101988841286179380972103672244046792324743620088075148135730004717769923374601289679702589481153925066084745978344583464230652229389907674964946380977168798468459380700245589801432226915286942683292049764462030815322445380045117544352370937950272383872422882344781309903545662486995959678511675948835538054018009312371141476808973558491211510960326035045496862852867126973884401063958405698366910029164012937622922481804545865239304180345876445035803799462225371284773607359281208681001698789977448594462274001435959729357668784089797727187494498485340122756226815803573253587204738229791044470574854094184661998629491255045132064702844542709561124045899165104676428781702425125476948842450077681640847758566722453191524237211387186838845373989778895548899531343740112119805698217879346001790358665521676228623542919143764728940845260519252871817040806235199762245690967731070750304929382107341500817281663453306196308952990402728626781091782177213627533198654230231154437164738061191032559568383014115922387032778787645572586592418128276996092514999890321537664985083443093160926014113638864882886409222399339090138699962809918950735129771487071534038172735707970943814742334765822321076144832043410589622259892659496115919867761369829382211868008187328292354655143487761667054363107884834907667692976809423139097638944351441674447756453953945073552977694957371556060202049076932561661431689579270442556575886560470889928312825703568585582810900433820754426084381558475680872467972749646166528844006376504287572391757821875592625105175745401121487167312397329948464129426510862861352628014655755137352136381406667326244473258911382678899411531613565398091888288760323613644878180429153612102466984439578327785512067783785934068183835370639688381179192574334937693105501973562680448420495759940319587432117468346265153229947032869020984781068724929827626987660955098043614935563507361262621940835235147781334625380672967858950885072357477129284496749822184747500095881542043750745570174144004401325947296768784224593966986964417460701708981778186280444637468398991858596751710803204475348548367577782081810017121169198582142584212074287636962468904276965350745981504188364646698461082548836485043329229331153874787813160660984775038842747325880362707271676926133851843628861622750101545648036109246781415075196370464383497910487354991887068013509341903754720615635734769393201241674241847471511993693571497822788267502023846614850171942665076593009963274377822941780777428223836737314015090481724729953200589896452764815840897185951517379862198506037638764356710543427100998882981336563844809405970149381097488808457719182169402418501018157941148302355565052026697614464846359780348036351595715597935876654604313651468164085917971212940236368465733347431790476792883793184134019092751586573330814832133056362075252567349798781940220280444237751985276002500110639490875316908079122968626457302453797640891858793172198465295583278455124715733785536040767749047630062329688169810056056157153742907322550494923019689281722816065865252571513195480729007028202929650316886900990503040376164135283561823795936567857289176379786987994082036415186868219002581838110899714116441147746174562434838428412054211668867233491824247765560472287716046972429548510156536245012236005655166186679117433139394424017579019037998636825642457292519183106193104812234658176923092074260255702548992551165991753176598662523132164876854165813582342681328383366750227020759706169216477377929260186731946841349064937932659413826014841957271333289472742063153684872406764358196751808582758972133595227717233217369126561545454027571171515715027407662798268992719271451258619658169051753912850147045720083778371482879217186952647811246961313809054321558868195504838654006836728326604181004953839637996003571820421845148316753356586696618845959010222833268626426802455763942400682537521457590822473911611355052097822095192113359440580949070601904089772256135861099058662010705091665391050429172215807714973880931361173035312923837677426790238535855734970922557211940252600844872304082517513403147429200283453002699167762569830197397594718547231338462016486285513123388780161209356027606357357122822986535469134723806415068079633978021108354997546648998679878743936300427668828300161764918910928016710956379172675455708412917701108801965822823692046152124040698755680963808169926271136139296046384257607603875362378141265255928673473502770143891520519985132652033755337716748150555445231693222192618136745544456907021206006742258177118856292767408450698434838346062278556729321115771334561486618693728991561660434624668341362933509069056857171478042848036039073672137187346451762755259797840286894718064556897850275382580786482291862775432239913403215233635697450758599034826868175037261484780532282387846030088551374482021216217548310176064828106539501202392848537016644981919758512487929216464996426263740882710419352510582579299727919327156936714167900765479526441535286134983185587034149564876347073557175916220948408789644095707840663476717296884838893004934219396275151518593757327930611036930324048705933932367494090405839416508434160739444708636303460002175438676930328200188452903837904866173770688034960195198765457812234103746611181903551731835810208709782770773163420284737692441284374330500547337254275527006696008755646188120282247840363688788511521955078293427847316759196054982904846978284787748830201329575599733750303804291941414882955812237467048622655637098275182196651093971021647097414129879959080434520083255768814527456356458412820146414285373709565796826057615477702357962684294896617824833009696862261435526687703371841713314786571367316167767804554920610882175120343150666827443540298237113356457751681664845412832803023258226178230616624956335145617594135695404012567469167518237774187291991791070090401954170989330720272864275399665351760162952994316230011835198304888529185000226972585718173856897494591289870243177062574212736090330090410226426383151494762331181549757387453804476642960326311783981907712957341924841769403645535302780944841071321502244972828278321815436966397935792183055823464788859921315584167759465775300741694855927876184259158795905267119033897998302031889987471471334794757986348088538901035201815456301550235376792353232204122354762869413208104631882300878682910379607579635179989239938424945801111456231508515557438013806841186911123262328787374009408966521059496984016650385422752815951114374150163607465663576682984286733115212186928833649907063614352860556581004040808621321736045243634068306652908945606726222575897058345962294878953827906961586069933667324425048292398579486559830713497979838831996930278000205801355201008477944725744859932631979137856121232171617977047847609303457927163365418102278216269031458941013257228640703165591141900429749875183483874529893627307480711348089235006573045220491732052845945820946972992655645195416659247605208903477834677097187710059676469244129420550743658253579665049710086999234318419743473164717313213105983134778987286800664957391768808775378290386385365604351496230127888534250806707507782141735688873085269286195260431901060923397906220529151429052425244564842686019980474684321620973464772068064876070856800493475748414182045089909456912874093478442572533236262849950121659888309032652821604789801091672209162967318686729993228441411144484432624431431622146527027153008663181545740191479869638674121196189107150412800340942127743844706856508727152617909703957027235635925956009966631605683521524727005204066274985409865108666194732310395895762368939710938800718624928616452098130886151260139252979942289068942833420870831712423465579462994260081051333222739715233233250684004774891418854524129756363741053042025029253481844137107938719293892685782459459698172654779865877409589225690222459434409871349089956389140962611920932205643761667262305744927005980374720584085024634886667804015816748615266062046279694336282188366385246772368723700784292943740675012428254315324561559657110088150523018153496856024346700973923348086740056017577986936570053627389701650032619419197369344906850752830809134675717599492613446748909968756237274815894514613879104468490528247242980438091824397573857538950556657766337369834788305173617971222459164636490712388791531520543746238125802907824329582558869641120377400747896879998000948333278243768606674787935714791288580896744745336103443636148831765151373919832978759363918110547227167398772872373752941707524196269226107304945820098661792277795725825955317070429671157383646220833037750160930231054793728534546259161707277778079579175673849057333474134778211130724046265286950725277381236821894258367718627256063956788803949805771149755118166322757631783128991209662121288822399363264160879237474557022573855132817479728604829407861825823397691514242963522422142493806410877143701676207616131071122752661893037652215263124488464811072302071118021901992195609638092270923732200226116003197626006767336304025683495205768667008884927273252515466728298849495078960549390924916387677628623660225490071810709024993901055000073656902607150366004649009811948859117407554922051653448720311736629586141834831905777198096189017985760384785823741109641955420687979039765087659190281333497084698618343235906816048174247230095530667186321521184906378368499447794927592360163321419247026717998353684316932056402628329568374477906863888027189086861637455233617519399543504533881634099587451092020065366734285810111685580772414808653732143593570156565746454325084076751792903955364061875357701399717564434011212485408984262674389838241799964679531536827454486591054349226664953022816493577975082311777715931149622608951281466541495963576109173359216814101183029880382376641598908032696187544708114292426152649786699614901579204793926326321680617791388500637549562615905045482456475836915630866535736172206010570439199686748589024008074572061658317228873782672129191621287357545405987438592976693821309637686993024525448581664059423047575437355666505416103333501907576000354962163652946271065511036893523570867536199759968391208169779609771345043454403159564471109476853550402346934936571792700248858347940349982655278935248492274561534928925521556073785266079377965268809111629265200835392392070532261284635357740745070178435361789646442850621784919342307579822486714126736513306750858628719584627577373964385434828064969374898249101685375769032420339815277814051673021308757407112726642591959880830594774703067414219894950436409850791598187530269941471622434863307597704241557001122585399686778176355123852428983374335737841167128248195539683183794276401077296846786098698732620550429031520838456971804012909270139808149168460978680754225444976673264372282439806698770080372521476103037010647911825316878304176650511447604094726576558920827371968191760737239202833872731493169887464589702901723950022375925639842725650394499381476092196754956658069372287064664566649614780624897871059758653329481688386556698901741792571691928389568174930859496259843407249468386672635543068353198128468447724171216938126647674438948948975267281840757622367945518021948473335573911304150115424727402908682906769192732057121797724667280431735195250413840074494290771833551203064980186981559458791747587952906459592107484633278388519879571551285280171928012458278774235336986691038982270547971567241714397759991323344353508405403554397449767124182685400477353051452434260991647628474926887471985146432336491492316456821658701128166281996028512913913442663539045467234032617715634385807248362306034486358192447460359440929339629887370154003712235656445600327120338755505252910088237048652228771520645760835910719591303068292744205175638121075625879564597455872848294847773298492667939418117200686385343317975882140114622999308465989534515340855375253133145664301784141601270255409346483076964861316979653994015167597160081356985299175750473709303698662173674085624501771115975149688671398952656303947662842431246883332864983724858553072975023754944002163444505680891422336177264197213521783329775663449631423835567146933194722002922708938223349483304244645523009138385457250640711071790529719480083156252499453606728675704146017400340520402570183254760100498000383397251505209666976826658797013734879544700806466484716394649776633265662975595816863117146190056136641466500328067299157004633516409879562563983976182200934333134218456405470921584152358123909871748495992599151855733092272767678069664213955737172599056226313376728687963018960997839415466913390395686086114563750299047468904345806265847122720122211547114629850712524087588766613366127667068138280419944556080924585102541624920484260675283717462852349335342268998313114353727295069807273572428904773014924474052806265665198620583886546489608647080716887683713425514663983372458191710713797413311853540084817101097253048505635257790218348905629765893386670280866252920122509380485496201940842487606765137205860635751024570719169550109406739327222675600541689508192016915371808639388650511484383331067951171656837702740838604694108825173511558322893668834646505179575552466674826210952303233879538625290006317309517479532864460104475699936881138649003237290060428611467520140893925536241944205680850776992536402720869873386246562649618423589888044352593309790882444746046444986407879432825014343265460097636080504025625482895788003403355597891332913257778657558822800139656599068468823131327914568148250156370507098344058137414270110395313465940454722859895327777484234632541889708573476219442726637653545612547597755230974273237606760031710345529776352951486878442992034309393408688036489119089182591178253621086383091705124030481912811229298820194806503002634283301875202854115567394000197202173696167498497898188241890841477641700192507942230090804078583270687461883230114939356386823513621556201702127948607393717034283912745279841481565310367463981528727285508671106703202735279297917557137853246956278434709017480187397759088816656234256716611174484407048416297167477431502861675917752009716810902570067697146347870541549438995005685634498381333613821230169598530900734030764389186646535754497531536278919863217032125269176536013081695484581241487229687174205321762193764605977060341383485439635937869303611192539365911975694260342753973719653105475524698506235381652435333996944781512800529679222924418987893658836686149079076662523450490388579853984451147106149537651454553112571928924634189253231248433241034117967483788814689615849635622471356011562675659016629552454499447059654208873135247440615043723051109217669804544276666712453532572889272670234026282737766159146944505662014411615267240830792417027610861095283768400254053702819270279742262726496801153357619019726786982912306146291024483763861886319418974707895424194052224615672883095276248616187280187003721595343636255197240274920523503634908633286516894252502885376501456932903943329896757802913470890903778744538758453285205260682662280126806862110898159540778320141454060513634838879989082525173982116068603538340085031175697671720917552259569831099034555704912910430163788414928990814734780415767811555084487181503875635399390657299520064226906694368078230135089735537894313137551482628765995568751109529706593882526536758915310908667292124905329644467100270222743630441238655266913859199808739718447299529009379874085200771338696724679155703378977093658652140364279758834016003831061176500411906076368693469336696696201497721590099379280351005419867847431607606560182858347398598687007071638148789563156066553431425567386580213946625599784754291831435664976466137820866746480735688388635696551338388026571885977813426324818210478041027567738151499382306069650064222158721749897143649117472818268157160078474260917456488965353569164653945770484608909511817238601458125085697182641688897158868562837607259928833858101308818407199585641478982066563289081083986157513497008882805446641418814493210086841491343055567201180397379545514689240581705620738849672887521143060283360379918624051300719082460852361605271374092467146068379633183520462376461982379607686478832263206634703550191547138474528803858621415196596817750413147852770721469291152930802686085380695766858821632997960523734328693665326898311943838617330058848745835675090248670654995873238104900863907417093899985655661577941079086418135877364402586516921787943723858663341311187174656317703193931687405667091808378893677115787294563445659622440573749660870793564003211888727995759467418840655475662903399921436628808911226460494343116551516460486853602315449404314579119579234629476362023430889522627060081393820352853858934094948878545647559291435365805132533785299588650618980581532172596433496272974474517842212011120269023696089847808408439638696167974499288549995075245162298457456937407330501697880355892109003396466479506419025634816882788066639156314111503513226468453923287817987952966929898644900112176711717005623212008326776759248344389829393153718801470346902196358306610299267143326679103035242398538651296322353829944984770087230485506020834355083006962683543933799434611814874138954451895777284900188543733606730368375168449718544576181421619416113348396124954332993253989990382189781142223837401784529635989953160921005266326852097498707305328774013115621232261130451729694988337535140890157975560744985556933695230781464250405373308002162776247197035902306488561704031388841781810933224046225594213099870655999168528843979397068885094894566939420981044866497996047778327940280666671036721699738178734262710047166047968526351304512327894439471562502037538111649929819704046417855980630722962369297013531212945373033948039430816207219556059876155594729962698241059936410620189593111266083584086622260838870082247998662855282504486632995129926467902517058765308768175521444121454209149002989182305964739322239376344826123651866663337485677313586648939758826675045690026101188478041410535931699102790290823205868193493609236425337593763920699312390136643925258062615421007687633894616670228806114376736368217614194848949281163236716797739753423370715176126776159283714889707445104986354485031771686094005497163571160726137639137052387347194250732131258437908343298512295772143947603167967958454463865775016521303652629261220615031644755851637610963992487376553108274090202425635980928521351564236044639063432947643500470240303600696370816179487389389196815814534549980335041129815848697011720646044067928538492881475426306699798405402454288301969810652663260881773672978095424839100539760936956090661323232093998750714214038604722795654053898620100636243101485468151262875615740948948371353171267088075221292220409379572431104149279342594333501959410444548451266986363797657796293614944040945426790070426829050528052225184732631903091052109845202523557254603469484385032192400097696253544421120908875645448350416315834854981774002941127831537020839878458959013110613552916543919604448858746970327539498838037852892724572939841635094233175190558546623245114177268780620639800244275223211183211771367178694870578171580452023947766440481751903572300651676761272778564912194712512306204421473160989481251233316762598476820485372855884655356710707762799095369222025302723288257444972116865530672009401703268094396430623216661163365592615761480100715296619500631342816415897348939448364451516642420252843251109053075646210094478237665618264108013203957846510203350013035846804182629285026368514538078636076920141941174144664243371734880651621481069370826594100810804473603103747956350780814716856186050152208267479338126801590968806498490829125110288352924173943407584635507861140088071159896829453444362143471973602740246367968542476386468886821933460838558211334603538966047678301170161829291438215130837892351842939910205959065827716762194423790292827441380948234845225336251909689056236767208931049130216537110134734147609665708810906907678438224351549407345702552263898484307388493227051930986968932011641112038876467613995495832432426928302197221394759830692261919901844071878836412892201063644235161968902254492514990590714567726576907773467451107759734738338951851877929116939400021326874318184944457889139506588075671879594529290169475622596131545174630844768506724132467686952676221644519370326901445885825757904181534007425698782517229268975613485351605726437844608761066780864082287389581581984090795419219960103033000480750135738009883482601155941830882682342848175925578306273465036028654191611489642780764527492543794868956589269406752605948878926168306258385001695637709936493780545739496503787594270737889746631373393509188999492990967029105448715367446869097737261320872836856789403074800504895632536872153149849097416285780751232807484757229306186584490574290743877844692524195274297439986243827189503322888091027224746239900256193923472767197951428899578449234808971153968899640386707188929791538033619863139632669440156682145008652416226222933883256198486659232530562202513988602444309087553314722416443446473391904194546487746477713845428363349801487890168193752987391467504884540787778797473771269196765238405230984467232357043384792804140752730933363806506742233916801051057501705166946533087809493086461335522293484722402495435673453312048620760739947566862656815109306782728795800060907949457578607478785169495698411519216176206655787410409848837122888269548950782472483087981271622906546111151239460698249935364569248695872371667296802087956793784284567955105998496008020845082782084848926373789059003924028944848695035321760994956606765705379934697747469280896255752507474084805354299200698394488559921753691972817015671654103899220329798058861270133031318130060237074363028224015558592353012644107020134452083318975404645956714772205226519396252035884752379888535331914053576780463234374891215693407816547756373289454981989136144730174780517772925927128053643376922584212297277955945751210684323510553563523247491439881945490580949374715716857077259805590150866603122196894826339409245700368904698964962527309638719462375402016326693460356690909732031559703936852202386003922468089368396162995955629629232319155789947762063264367252185389375971704952865202801775395132240916444752365066095176852549300006332870924849028973483630632607569429267995264350088215176341442782417332389683999233630016963601904450389150118096912319577228706425049131830053440474355477180799537646708430766298453901694371283188855792971941166281023038424784339458351019793608758201339126230210846927790838854538364975737872270559205680706287599136086931741708300530172272096232742931606489925207486806315470335267918765055595112525012552233148985092395931840017485663732680746345431649142468362290277726766780386358148626383281092159768879450266912227335912190435648202755089624521359946400906905249991931288261886408264385243224094046748654571013433552367089298543108221547990477558870202410876357058092486252166953259118723032557193654335715917414778649218417704448642971582569044706204821134683421093265020198594137556268328096168952222744094491742301408836611578155271905447491680262818438880148967594169516746075525720827648192054121878111283256054903020816856910499086445034622339213931965759765214432083761471765331681972954818003721896366702210369711054456030312088966879825683838042030157258043425543061974120937677430437244461214901038018901861514801026264355313278253623110967183818577960458719225271736838819269660778146120702045318821885644896612349284164603609361058450513320640354401931284169419154355032634827905453174885566037012349315033227841101755318971407404779365304115483664741490311416948330330990380343934772983843383208091916127268477257452244638718184287162526420185886579775137403566865119764227216311054916610424345620770324767997198947899263716492382539304425704853604420139946755353131674323348412276180745542174943852166340804408354360122546769965038826581628905014499869951707075522275323930806945559994348494746428910784894325847274554237015937003183939201599569942310704974555997467344018047292479303620484606258806046310313047787126790678363290013560124079186112023317697800397294104046821149019665954374061512234434775660819324406102775621723398269383291464632235016317247970272583253794297768965980529183727863877125740769835953064060449736621165883941044114551360023179672172939509582551168754762411036302050782143397371283160111686200944655747956479040737731388166200030577791336675282950360507164771593981891129588538869521311597543120701108366271869378390928901748056522915889385550836579175830867558847180239121521445696519323561194991611275611424166186696815140992596410039963076828135130857839015432099303476696285357931218674101374957268126854049292139326716864216386018998684864686944584620974018660479986391747121251802894813989362917042279604123316530361138470872733829739585368911638920785577086725809554452871623703037573704389188752285346868195805058742121418924244638715500411731353085952536128054086148695443283262802937122191415836481242019969364537561880726277075312459627435955983001026195581011102167867804852792463701554096889421390094331969881787527491088095827966449389152378445932659548793370536770019568941550531908334049740893286073171962320687640297651248477230722452858649688513945745955709542698793256624314328732020240432493132910539442234063266577510249502566805931334566715022634199553646238144975996484033706250977547089732289965090893855078254395656843259997687429740371391702193288508181483036302869898105594177674925192758101933540899034508659185257000988689773956117996430395309324152428202200019301934696656127986115864480319993964955576574934047363451929112364240581421065888483648408265845468151766310744012140280615705062320043374183095018896473477671091513237026617627117272034485831601754573054896214182873772926905367546674136655907910169776473689594582024604489393451495137948189217381930777375720807328946941700481040132395393815468661579759753970231558376035839541708759879780385092531593592369726757686004573848676151491622100847494465088704117715485374840357462930064003754911213798349314107441382817415011885764481099466925782530918725543382189460439558105929594991735923704757097872651998023365717001342175976839517876754181667903912446812089231625207393155701031701670866577376968266276940019019110298991968800855651760660288851590292434065379415497749641548235656547565617550784807833581795978661608027754173562782590891976447281396646584499846381970462305527680038986852784722932586602015902121150292874193867457984352938500946137169359415122116273548581105176730140603523748929396542470409560936220419494849243512102099985456755710941241669029919850644059748876480757803501088504049995710664236689729729958701782627198629409789661658027306957062643815472682903114950014546816512158575708906007427895987261287085069571552459784758848576132481446844693165892560208133613119389531700963319420868720804312403871189764827455394344901300887846351258847701536718645025603587497303283378108390858466451736416697234806236317877120897627665132850878117075536881696382079684489859072414635391049293132823338136585611980391899625850231997599424887725093566061180698478410299306019616936980965499657954326054742856902951061766060653910005503754071275006782474728904842955048963907181197631992186130179155009056477066832241749155709386513621686426016100429465630978595603575927875871996943675463226253472159911301504145300028039356238610231770243266607121084222993699796889634637640162451576259528750213790607760022923957509855141556413245215606875144359836167077431831772865012039549004016012551512970521977852965225880313326293885705285900174466995261485418669067962030268046679806346734949931711524672464906507709720217655659303048839994512155242516525783043518100325000375941632455921810718873090026089691315120203630558473179074304654728499760072974800276458289205702883137230796435177186748240129092979194115474426858793788643981979417463441173794730944494634268231323378200750238834758441732880842613451790422401902532347831489815236911214340540903282946996030869218591163781696216803995493548576628854185923124323027696322252063097311166966696926406453772512931854496476978916741379806533943324954779833345492741238618119574584295424344852306639291390251386788229195020160926103103423279590815444077605692925810553039853011862665619273519627272319961023411139026695305569919709701794246235159050751755305833200362894333723598348801135876173774161018970103731660113892874503951016272645170857861076900445850852279571534320678750306754137308919993676704630951155574986393897457842259723582873416398348731386760618816688466624800801733818569033528812730479824652645892922821488254186479834446663051118926337712033380928811071310248582527923854142116193671956629325006002605940585158095294913994782542814671030863606638847581264416922505173765967289764782456482358412817488459121541318971976656934843800614926653593212035637860210860013115396781045881547131977617627131943604717563320577307145485559246302490597652879545187908395674624847466265190530648747351577633947812231800232480584975976343256915941350340238251111446482093205674335765350325233886870378224904629880870941220809461044369053831414692872581654399997341932258944244337315117577583262241575204424956058333933744557423578505300474921619389631507202880317720888422688825861303821524490740713461071269901736161557899769847766302940436018324262262772776990059971238566403144346040140256053993576769988366455401142032606833150963198313108882562295560510652331847122409619723021177775920039833663469584210507167981219979042225359339692136289581900990591768587493640841567458017794463248330316804599405878033297985154778499337914567825748201326950692592658363555053628408305295797176565446820365358328943253038260608003460216165360409646209561749596771731839396524187383320756495632871829620112779819842196017727939064076355181326409600202910885715989748684815916287347851035463539140804635129425692460208526405818108128130677866656046697572273873123154730137517439101736417780477749115612746393989195795825407700166374245519730507491233522762285780724101394130872814102806865120186911768847601056875091425345553080061666735253540728775730977449562871668894872134200383287175777104464757415629700127740170591556359410510971978770704410950929387113902822266016590239612405028443315493783089281004309677040045061564614913808574157003524402656946430740120942495693326180737718857594744617370285335599231358571229544500404967735500599599158752314971545359024296738151548540631511448481551056510529281876600395791291992047656634626707438214170387750606511076139722962067381069816838405807058902732941356151706547301176266068513331859549373955258567691904846970437976522559644862281275646339957599774197274223023050660928026629678551770554121096436622518975563135637920731999544752505478283497430373108987631745855235558543372924317904586358962336681962556371198970576520094596162331273752384518087135530066706794306844938598897440139660571616304988470556437835960010023662904964532341821161265777252298340700423762677552409874735622565075671395925684785714707185827107338966529179003242165707703110045948377181534165523898763822260705907884155221097025432319716015313631205641450688516740458397893417444124943551507583075269231912260815829483301454970295169518780718009369363974718447073194912158147162978179424409716158156674296860554888807739640056377142126111534950685695685979724155099498402283195356522150632818739410515459377311702679661927670100718165340777363972452939127206681000102797094735542515487924714720051050757197391430160897675246243869674861127943792859394151914038354752649894505304909540586603639441940233334336963033601984299992091224814091061031879194612969488037561832983041667477163629220929621154366517798409293138201526572405399914297442938420410367000915613248154768637603883423112813835103376700409464912410261930878463700608739905572264029224767117433620517655671806019050861679541807847251278020437446499432649695063078112027531919582711939455425903022494131411394301650868419937028856895668368043802345073071672392402943937573986033061968525056639923457895849070313204581805011914450819641224116786663641041689621980942655467473335469183523360916562519376983151076311392901218344462638999562395506087782951705674427435858312256267626187437183534661054835508686195786781510351066909144132479547009168671757462823579678367024598597537099798929995996555743536823784253367813973649644037341306723489573774742001263727113197578706631294706274658436663510695428878139942030458895602279623880208542878542722998806669575204900190737671312426551602042908868681632617972487040877098221145405792592939368638150542445204296047703883849024939506014305957856856774887815252903172981922993718119737913952822826585903667160231101684210223842431973018394550685177087274107501796257935038219578237175105834895969156269365802753571647726904599229450100257932583181058850605238964370216302542945629387893861496417604981288213217194043570261770962763807123787688392769416695729727276758116695707183245204220995211904505451513140648265174736880755953745828011050413739937784074750522588817693945371359376098620265112958907518790321560810931740764088299861667111044517144453199933535742100400340242646002660317532827414668471020793411540377798412583300574225326561875554055630243014711631540375551512447147852434870268102103355563495049482038733184347765883864379689521507942733668128892111438376654041362871097490180449242922645751733864331097425834506760353804274977768928297132361075807667111200384559966602219643942642672251591462627894410403249029415766295245569783852563072880791991812704782580591900314748098576907635841083990483588159393615188632914728758891244950804308429240420093398002446031849247662041416009431353165356638986979625192389376797743067446440625645090406144999636499738768374253681521660380465468151814689695742424002379423856540272518107412764916269171635278406052492309254934452057101414020014508694595296502332212993584822199692954199638478221427601932016879724640118865686472742584768304748748053661780871972516828662918477192350714419174580234738648618274123097586816602269253484516063512516452378098158373135023882100560495845607606781612771988247398545272439059082479486159278152838427360584042203888252899140057055537997265451450073211935423910904439727236162491831203115545796247121853405452265762595150808161765167686983745229036518596745831114804353249973474531513326565415924169062777618647168713180102855204017049106095815532271094420553050007986324923711223433262366223158775591215182444660305194514805225422970521699223637430412785119541451359952837060694259453233559902983992171180186999042897984432056837661278757188813727488135298792615007126444811288517917200335592810064263072120181423983585252317849320767677151124953694699805190380245885603920343982378838200752637796502094813430771565623853614781303403157419657952284689373550866848665504168315832127477117371316885100811728933222090795292743504477105672599790241864946777136902979922766107810509279856895304485142034607377085214395020709269968568189990710216252525906595244434402294995384820326251540191261400334321188073502540347862624015422450659887370669165077452042419644118235175151020073711660677236728214361537519176163803748311468906716325312624459907259638732364016738036599502338813706353617935106998526683421748132401475557011453842394709048489030828809871730350448066993362139659611283638670547499635035700240997982705378688871826733846563520008177684896694330177769789773372010340260466796423553753401249781034265038006213272196652620512520937871352894357003488145629684971974540559474586021601290113576863264216868747279759292014055599963478485838455739430833970379796304508939032425361398719556210922096640198097219403811591068477898728909770858734798971423686486935813575562808260002862630758538900628107421507782640847480272407531787990946346868397530339177518151878660955990657155056461987560562767418050215885119161915681964034367597951754053893193374449695932224264313102125736177498336625582344067485520787504074938751934987612677793773389240466812975104997649643250099990557035139603110195148659357721495321080026183112405499677418301733360032891616081596306643515321521505125729396155449262712362218204272030455431826233947269222541771773891681750493462068388685000503670572572245801999814666699650549454827877675550823864042491671764255831172728653421084089866819878487061074032441221387165556180825589395813927536637610740845126989860162162472577880656299107218801188207146139614781140868035975164903086877960835679010909193071964136377903386998682698682832930904359705742156481218592835365068610483811981230523683330511632643827582785396162154592700895690058221437668980160829338254998757645239601472253095065610660802068594876255509690005982769444876065707748765891677337075250383928448773991591141281787374966728283156495462968219731738823755052465726779508326893657566744349573449836528816838678092031190271405163477996439994281318500603747404723236075727874549135514426995922441641701534737431178927596684005606831162590324911009661596495517789964992995906581639449606603593238134100212076721979543247292379714227149892229483490626364429337524242359808991518785471751811476499831289641595756510417341463185894552463025873429124150666506089465170442445453566216793568261221185401490194184035631614124394995062175421807191368787993765313239004316759484583890087742711146708319064048487645772290033643643243111491960191769957798334192871306703152210928523147794321080006034264499756830282018087755032654574080075206299920632212742935768925108313544557838680730566603929634943376577598761281268512305813962889813127969239463536125476901985292294434325125582654027792120270527161314174047488938743439077214157746881023276754081318606029466125182747586974814498719512580731383988344190095558013681414654478956576804453633028697371661039614662744862206355330340068783383912066376330506430748578464086550308954013739987843931869204695505510762140550772267355107909696306814689635364924219318306347034273368858176922496489147562720890796487483888619482991349393667358876703938019953636801848473845094061383461517881777735410008481329174892223480300400653344264024343711964796291393779004377596706370094717959617074344424603885507962186488201058899500416790188494592634087901861100185668891184423561550996371491476459501350770127470620983892834756416610106816145984950705384783962724045956057606138585504754636716059868775547393441160200893705294466065384102748817149997423159432682509856933853825934951660713674524578141191574984796474317082675116989374233870735202488153867699343831699828687418439757162465410116844683792580441899502635853870708325651999050123992800157665581271380641330505345315024578042595325848136439090019190244271429447620276173005324852411591240586717224510229687278595056185690799177727463817130906716819206601581138566665715167469023798715519558668315148560930244955993826654525181182818888150685913174132981867153098980738390023849101935176813185625295434746904912219612593111996946777679334455169392422700048804811293136956929234240723220644551547607570697641283355141617264148426625546952508025420802600339453549146690369347662997725282046381999214439262225331955897819062471478281165997786424716766053961877647927696873394178135396254409352120571977842345632115619676116270981074276988342970223507778895947678951509889979577475272357301155965893159444877328151293575119368930873595474415591469598917006438195871832115183395110905068355553261129394474436206810910719372856347621291120510363478712756154212484152702328477661079928900444735958890335197144359003568236414619870154708068597916672579650161553900039495600567658648624259602342669617744783116299739722699477664168517450918366838224391843188357291909522796583448378594632552976356945287564430789824357263132093887868003007674166818332758205180021464487671311061895235333491385380954082206872904273811019162865593576187720032072384045895741186865408457302526104055132283303420055843043350145679605426332771895937511532062802801522974036761513877146414193063407247434474109329048182342646271448591431652627516616694271808334126694281389630326215126983448700680407337025277118513872566165539726567944555535635535129268508788489595069768094089820624234689924508091843166551529026143050156551172525073491663211707237968947547264179294082408680085964435387494188290478433605973000587110147905695383092626695171452260702087387818921415967077472391733319100375057646021318321489881680815931587038811111600152105866242533705969830451849780950247459733326747826447264554578599966020753341149806169350126485800655834382866094508652749145898990140357434319635325857991790579900130472106699816932400703406389751218177835436427222993131416811412700257564919169653465332215693277364410189826671901885125593583812913956251623844948697516066044490302640990261713878805288628330330286090459253806938194916355889002587223034461553036299159515678981360803109319135785164297672274032746818228779321826121046065191195074069268816567342924894706103605452127239078385260978456671953272582341774611234608474002151132287318690570551082292109109595956876259551698343052899194180206385196907175521157486205428093720413772304593094279016788534141432727289949207171966746559850881859746382718702028602887438349417433242520053062566100023770937572276151591098754964702908009966323282073545805841752263523230484190228115671081569824202730394031066337273695034354760232278449406651317062679266485854032590211815639893334792740126202954702674610320364129569641304299934334797903812753089018203998810898632582636033898092787846025101054012805116626969841932415052111101985701115774423537562557228025794174771846097992681679153900088191270431985679510892541440591767072858635151871987109090391058823317640874494437939618373462369446705386724099457059757138462222393628719587405279386502353469673922930129564875117339404699166350510704549897676156073281599007558626347246347904499642967047194567123712741686702706637557863428079306984431682493728478452310333568406800379538548654971808383589797499165087899790673940579075133534440102037194893876584664150450928473507546788914634119051398468306793299122332991924962506368505904539147788977974043570316352852167441726264351228032219565232412656368150305003753363630315325678787894833510625775089465915517966883683248248087021040437009464826204398973003134421397929830862329308274530212766700470816480235544828818238933556689427796048346774600316591322260103278940282746264998784991806073942288030108694257736222635279620720118662428432499177037071742935989728622672263564065841729435769750746905785287659519033934010219659948028599219233132248786819137494656817940597052401426633595092142323729440278706144854009001395518341755113056940130278164316191728152885645279188288089857545163676748453296898033646871237929472480195652517896210246664035818762330459390874242162673091490962228531155231893397181697296274854543764604216161836585266483568147396263774021887570051845021229814759883585476231554641836694552784165423834715189137612268408744861462814989952219248714887490315195171676368308573371055993444175120687806970861290082063664999974757218822125881503837538174336876855864829223286780010345468846680954352956791272492894134482139122829301119412604431334159319966396037407627234373696687701784625306908997156563280097121389580707861594074405304083346343083199001816499137814693653093715533505782453808834296689543693981583595411293825440963541678467567403096533551515891187697896414670824842585308270496506733365320707133400609841004102882319078428015083500213675082951641265352804241047938738588278141834982524623223204658551415706164646045179758167366787786052286244073252153414805640674173936288257964302551556463025035497167666737644662134219907391446501051357437549473197584990539560380983682630056645283045722161484912656680074959383428093796584702305761749488244516355763227950440580892714102016341532702853920602102420408128764723002302731138812984333515358652377877275080384975839469982394063802624915890111114073657199104624269576012616732047039884148568939610537601720540730004122308545276739639999614536071926706540122275527537039327809198474869162643329921301809740649290717066607726669988764478943172162345328663651907415720354230329646361717764905303282556068329436346868137071282938493996142802702840661360312332243044962237773342823206712248454081911915030404377588442786577504073659173622005890154824697318147372470297283719544442685192955516050196060386048046574732511384061442851920237971955556212410721357882243076349764709632482722483520212309094230453393356242796577178045883686581712781478907693100809821445715061764938743805981021013854662514177287715892550635451504176938046159399768693144819200341141991713332939642271531970191103525529006356724992960150522329895038031970918141263854893385573969872542486683597091829223475106034674364922713781463871557867046023405937936765026134731793180241366848874927150370214350528313250812780925622761121529117641969901062331292768788290388945294276441576659411450078327714698712501298146061942671765502365133089535726334753839055129006375275454784017540746317759162811623029920074659641612587035150387552058453384212491735608451686911298618043940315781951242716900971421022152959752266566216613446427751227826208889797642951707687232109787030546059189760234497498525927229169468903641460293390139784502584853883120500705133987006567032786942187446620252931578240512832263191782058602828017822258579504080297580179652435827131856952721074802225613480199435185685129281855358706952283425945980498150574174579185206952073737886817929940919990120932249760541204943839304860718967010671518530113849103748138249268315457105006919885926244454944132443320927948486533802035415147111628529217285835711772787695179657419925988503897721320191221851795058879465126501712036579949949583879142712542493052986520237704532246982938869385892871496306650689363043593380841530457507762031746234154889187463682373900816775848492769930217429559294462401861615458026405859725966615362602015748294016792330476406963132758307311077262890856781882135329262385897683573590866884853347575472302173176316278887331842815658881048836425109301555498003419801944323100801488434220487788404995250694490067327742595063466146683268103582081603596258113934648781676336745929492783108819953826197915400262692220856481027201236399456074672039889094870951050885022846900355902371726867057956115202795975885572019208651105657654686960887768560265165689046494194749393701365287515143033282730391450884731330749385752142012530940225180104381812560538686395577669956282861159807385495124695342075822639054720911620103283782236127977238358264983463580849372407297049336799450598409307478717769256304460199742728196102821332460645492430260050173943799071341426840918331667423756305112091022331954937851377550296190671530763137390106130704205597128223525806173156502449101460847728652156920290224383347084623704493820786500579861293270475071608752915144742776172938069954709269213464365790343088166380195881403424036727575867531707009423351116399648670082041921097052353863793849575748794652824215261882453827573021674470467441771036895584991308982775411180851254179373664380566521213050548527556564943538064313947077039371921740719460716356971583623908536955191423690451802260832071507583067195964305013406466530951761570482197942025202843779995128359790520727076923883045840596404780326438833570197338724685723856343119385005757532879869779372909241812718380159667293342346936603585769416595413853294694611283096632739700453932912611390652605089799608573033135759417190752009018516023179229221987282153983599365014114935157482592680355766565833368767506580946486093065112505877821633837868895760385722632891875349581457683546237135296468521907409309925053445152779576939967297313910913696909808395490163825015842146184576776951762340640556452566935894574983780194195059744336425182851237512041783692118504279455714788771509723960651641470106539834807615264725898878072783172576159340536761315466524941111761975471803040987841306960000630622495646650913890447827266206738167867859127763150125420116704580279765741383298182720579085400154812929539520623442789633781400109597770454935837646998016965128637123249400318569901656583953654141355397573569091666934166575246023118176903559914867441788752543859731215595722525759582669915426917980275159988210211245091994028075327329778759809087017093225574286477156666550034253360768679082867330076784510628025567132411479493355722675934625596277429602694972762739723439592397525147942953067500433995868000938028845345037642626303284026712889819590999358872276184999520259782735423079557633404441035491244303724443575091978846974802634335403316014108599785260220660699548196663095128832505774171178134159161947095020812560878744434285592337596017327019256268834937836411900437532702416791547789223998061241202741907110921360718553554551290990732681875839056610419725053150752056616130753299094000139812156839140674096155591283703552344757089356776430934138466633700751475268311335270875181220683053854639041323308832377708250878882163320281439313008401250436220081628368213648637689434241765405282946615052942433458260034457534626297949603932523547015003736413925323889172056115743284820416368706585948998203843758356268164266865710662031564877390788177189729877234015190807025387570382654747365835093110590596571600538100689785135782479954501834135179478048263974160395667627067130680403011507456223145834876033408657322355280927395446340274028252179788525730182163109648340932730344918572048990033364533519631803889350519457080574131692208145934752338158138585086980307885688461169113847909299589151510296672994459817369040397453424667941315174070464592181638289213674759826154567846624380388030068943451696620381662168860896620837559227643982577806961596598014301331873310915230078857853146621084881764388480325126081987942531351895090813687898259290006596143748762232763579262321478552230297893105438304640624829899304135043651046902596155649763535315421359014376448936054860185678525659555192004416031059935370196051805437195153995288016402531272714811688377880799633926832336130983900624295457029062632112362519784975159309318517925800017326329152209577417276017181399441574816292145676624997463588187209489580985223415964213771973935168426897858333204525075064616118579501758711190569854722722297399066318779111256818710818545768250016215778601502160883657767397095616793517640415556517822438595672442901864147521042779920660511599305106156177392560356663422224010273157833873065793482712347252436810943809714009761721624208323231161957842144705031940747111318248597666726639225338019844981840788746047325500510623869265459375630900993381057419409593734437445111918088160059721834026871037317641327291728074375883906340045474090310249253433871079957927063600742810839984717850406193593817119559003303528332356455335981289936077716234132888957384024934249768964484907555530542824925170488081480342222694618179617526575225767843265483558852862656711262391571672145410690592730665580875019792388790141002881839344297049547365140678480365506854621355333370192902381986947501373285535746914243580195861603386613908764700544754174106519402766590987060232888678616595182230313022625752672172187139534974111918789623976100155762208930081706256939193485211173714569483882806550219508312167901226190427049583141918810378172419735973842642519895662996100037672273101343848321291022225616419265060256244542685979850927550327843591545857992515777938413102604521546602154790814689765057616606458875898365994494681595929394029356981077802938232025297774546096919870176246243302719550582353159129519383312213813246738790048461339616345723620868748778726026376964230665069125218383339668169594732462704757256186959166999760088355262139200852225897629313763373739879881877066817111079335740808189249137809098128583232071948985740664507673108403539996503610916890608946668137765159642629661702704026183141698767065783587446697386156629595475251896523260676109078200145279368049154688588214476458232342811448655711438585308233628653670447023085152749334743044871838644511407267428838916678518104023538866820511435415446685366612776904128463054009512239006544153344212202539307648299915241425408800034361737780296280127049071871037232427519616459804286708384744343253505128093153050164192559442003252983485350071995674272459690036927413548257735724549798146361304113251556525937871540395211636777652093491852776928571410015791961374540000237042505960737386409681429908486769088258780110687879679460259348464528186088098154195959059184358353743807745243598101457108304703864899640721057735488817637448698680707157933131538646463077909558690574475584994915745954820830975811282723506058175034814332511513411926258636856632625908415021318918489683589760068022640170537009128917774986529122845922386913454383468467999374357027155705335037910842283696026615549361355966879691501059129764431323374443953273694926717917136116657990762271142738922921295982930945350157290502439899485549681050662764794211964064231230249681502873902011418759042944750314582213542427024958132510761560738759218927401755644053766503098407981149941472479001535839730774544659884422397802501397025428730434389954706204671705835746519008762742615965548553817664255943000255545046239911661206469362164654783449165744745142121306824930938750085258691239834123684597723848855573673963537071321122179364215206954084074150352494871324992302280095337721435330653293009942267668808574589643855532915792379606288665775047087163270107073138525372953749204749770745073486407922982698815916887754564024923463774120711997362517768341390313247121408812258172525099494749448739213695490077147898208513018472555929126297389611208532283185760582816480472052220188327783954258585804438065598180214162005385351454382140599670752925919751182711267639987833317616978530477156848039280727812605222448175283007220668004178768464214438230896309224796843433441005388932080598530837033627303889509298457727107773996657079052137100350339241823379100933598258990913139700488367622950238344890898466157103757798748514561728283144352745672803984852774854277748192461789851492947065658750642145666857012710165034925209066607097672822100833403281121730076324440175044363340930116325928323735289490509969098030119165911162555134782836816211754275152443587432637857498823988406022351869322558780085050085609104273108321742135883450954042439598913886809603951327352437098091319718331671912554499074406274855768900172698036626261012728316890357434632723433638974997372158363695315877963327124106472415715973780555606581132085465341467639997057625960432695182232190920663898992983700306459737818459896748714594104071950542703521420951559542763284949082814216253828005681305962429515542306109214016711940205553178689563086896513633173991292540418876738000088282579980511548377950728430435321296381748772776967198210609483893215243582373073399728765733837951219885060270821621795993095165086357202035807086485881192223806648565935317173215928201042407778233549945213104817525841457578903518151930433257633703078545050280250419371551124528019732152819577359407882515639224409236175053326042578437878002470877407535070360970300147513950879955858093714081149228785258573496005674614405178269480094953170169085799494582011567050548577260819197149433628961223058650833901385686184449157154887687430036084327394817231464882012472579612098262323725511455672935734095711425301534645428621144927376553219228821886203792156587402888503646488925927196543196687833985798526363047253422478252835647352731234009405590513486093383592234990392604069906678888423535903208430725432440657690434283457838256588454123247115922889707990436787859435824960443937281868447997383197172566767273035502716216676861268425296127828032845413911485166065527382143067642587985763441129977197449834268581901356748927933711502305775781305242837296777735090014668955270310119930352335715087920008443374670088681404906337405746525451850674826905782709476751336737283896892384707712353065798828150534709672657157872478219472233528205900609164427098124199238714555991906688581682371508197407843430085821937738136386379527659374366871057495530956649909566416588117066067179623998096478587617000704189862375407959762145114772132384553890925014614213857813129213351791188476670775255132750512260614806459547284939582355326922345748369257929318193699325657702174187772987440291985544400551613727404571350719874193739504191561636330959542419075682090053262994497876970266783363635306474488333879300479859543532678168844765973071094060994262163184173176236874297541547928205336443309408603758665844118539967735582438010230897624480766565332884625941954074975767433641580787000377045075739849318434405504119061793634904564502957570388578914952852341679561137034312533448232121373607053549781508586669489782022417809672173662289626562467298528539822486193679937937284508531919958954998637019744272984794691519878326179689005815292306763077349795833827366261437278077339369855049996487202484483572500513950716934461430291240859468101607305230009579264448603044663045713334595044905252235232017511315200976043326877338973431318510749418242841700654138559318008623016819130876874887895446439009366119515540606711883992912507167508947978865089454081913083027727527884820791666798706025175976419639371917152786572820573404577446739955510460186224897945207779709972482727873395932534655289891375185017496131617365862168949966028599008101509343763500908820750782733989206258641947460282803907831574724035812766579796204154210725117606209731110096676471320879134644086850914827063543000226362881604429739214052250635694946596607030419617554795534488339675259450921107832496551059732742539872795845413427312230803353792188091145316313473687990932232102000207832288547458438130150546734077470713236360368161786446451803281816825040147268521736761647645806735886263549793466334893934507634211180528314975458560990069465939776232271397932918047448273352930139209015160109805329043499947501374121897681100869217508327167477186782864169171985025227619835113098091779036197066455699411285734380107797328154735270229949673400378512397848167845419410845448506880386683542949712321071295035847128721585561584202973980630337555505162399119657747782879662498993975147107497349992225057682524786953106087640882125481502474481080969428575331482359596135034906078607891979974281576044698428965977514915908693209473743513557763230099586286737930452373242259888433202504030349397900841557722904564343580431577241199863440178479952993409450778088443449632216113128969996172248315518527217627095980675971904645684021915045598712654783018862538140398445779056215195019021151663915822546603835290219637658664259335822585613098818547904685265274343975597908887306165208798897862051609855391067943660496659615890390779019996443996292960571127385231224579211003446707677823158648138088956230400869222806676795166421493371444858701927491463133856227455428614818513506233708567434181273189800932263727751584046291651619783762727789173612176589028304219256895938600627406715749142481131137851756884889905817381300766137947030280260000748629876701345953101597535139867384500904366014906327376662002054251321275753216581589080199148682051442115238126863966088541763824050766415402803708476378150958707018588864077430588184535786053504399942415930908149563156776506331749485225477155238430998563469922525582170868453014419059192342268166073192664835715323819777957287363910718374663748853254637318361249114801081287720806468385995854713708201292644539714445118424640223023729609756250944050156497877529758248529710302208509702745705412203503009358166562602433861684690088711718277162451259489388512897733619917431754060733479337425717228233122002276092446205180936665162139386511401656836398170389921672135536431589585538499971600763219586621073203279600972297021266089932208391650833449841519070449562518273902727756934049811686967062010988470250120178897060518459325105429906651253956131919263094949310463499085831401176641683395484976462793529214151969839096778864609874720304773035809826550097592961819394284669748740861891892045736588867303376994555677411627384938250541954403621556292287038364352291704117057756732888463234229770148500627629285725867221350387949668628690422484997643444614425081770013673542008535100098542425760723275604378270150524587508824290856781661774548216543923164658138528697051384878943420508312004263031511355669166857760540099305558117776663027282927896410615378246041881827443408590735524481371830447754300131518502908127061762675160239619721074443884495130705267521022356514594625262528350033330941508766352473784345531679149141431085333756183745894148407859867316350262867540651210970156805822067073473874659827277192156146744521100539406634024314766171349785641322691047547186438716668459002323857919465343738643652374934808011230890694096139284285019457235135351888215999125583089259983623942408982270281217834842641872500308330326410301612238190556350145599347637367725130139139639929522460771701965244447178606486987443522300957014460057592251298885279688305655987379679853084418703553678520377424499140752622784165797229666307424757246614978772032896912480525513167651142917157857612347974443879367584618394787753078031782316271352802389287719183924085763927384799473957157064270252228842275662006200300630742761515844790944118260532958840399949338271164884725135191482472078417019023864544254582634549084964305487123687724327763292822807483228973247673845954649044370949613470404139790852102580527692241855434684914730221159004228173284895336663467043939060769897581207901101694967567525348383818629129554216030841921417786275362651146196397451369950072750558932690443083974281315296308162389469289922743173433807720011584225683039229897020274764353123788578678980221006134646506118082155392726999212781543274413270433967112223948286782032226595417663895639763421819624538849388286165231994635939357091637265464764335835048753824383264243579236073198592780005650625051820905051870655305192416186602948694727245966755636297031439191832057005263182124762041726584327030743247858038625575393213788703710537819031545857008019420168213361713067803000952662598132184533202738290738307185402911588924035365748830809876777219250434164055900598413996886639467102130051329047457613125925569054544989288803802502580833945911818150835512915048727408646001828775573782597372498735124897429115492867270035833714340801215277986619421046306960538667961864880977483727101847764100845718492977414717881851616802773540775733384826736350925526568874207618023426969124293750401163833514897448062588316504392993785757846088884303131444341337281719634694101665843618537189295175621950762948879577264918779252680670079095602302204003100009322705614406709017153026414156243176213247469003479510979906814921433727749900225395681848730223972015901459129558725345214120525573603334535093177807544068492427437402421510596805519353585093868428411632263697334212902921814720946671276043855489365185980615763388510997670067100885766677929025884830974661716415916358602484359771747115587604866848094470867086796038688591466742676642036282359404332351516288911759557539574525360770466199084222301210996461320483308080401861708399992469009669877588933603475539593142643332263222564353796131984211140345420172531427062138374886402293227573946365788819326459696897668424905655059456693368449191370696220157123019317189293009195348192878132325189803379256953567347013432737079732196054917703897986777942765666297300068414781310050877748943752016403742514878251677537624701158506192313590199306545726190848837663972913141874805670248260708106160877156456048313595574015971290044508819437005245725519243479831253624875171357462688676607854300289358084696901706129576271585896508884447272929566870372957147604100185510751044925898825684833018247043117106041551248898591460929118120238905248906249224246976453918123908090873635284421302440236957939985557440308379336400038082256797152847647327666156156247178530451846145148947862672470892191380715754552568370996037367581907248944640374908095809183470504516293988544137444340497468257890747202635005030329509108183182901540982141007743916774509852737800461213604432040762934475003527544303891172847489632932853660327295944096542458232135722860359182209541872657598984895443055853662437887687546203129497107651497841946811395908277810229517260695205197786839989005974718964581072809473243993356398471688252275918754444440263256453290653106634394184448562741212716048727939328705686235710071615240238583466769653670708071549971159306112315452872012661160714810071342590216414728241268742364966197421712036060571068716846984300598728122715355429244000939667143926101600604372446913039496859924842648333212601919854910676521855228892990849292699026156703430402273494365259629437594047030502670596797863455629784159849335142104259140402827347489248793344268754500474965177432504323194084897685991298826501467004827738437279284913476916270353337742375259847755986010187781822124608651562661660079138971857617289239708255900952924358817661878589466303948148152848572985847771521131978057114593706388822077573591653041199181427230707372028413449189765530144913202211541558698459393904407477106978832409026573837113931147117592938820599479437822718366661097438137994504792747286963012183639164818923447501160593446792216998010228191115983749720112900067276823874698966552588679275208228150548036402120802055937001512531334927596182259774988970960023407103218628765879536444776864248653389826895840824565950364361995107473740559860242623136030503081442545504508647806509293737869370448861201291850711385488721840348224821505921541426074760543716268328018034106267652317527871437169119852171862812904600956040689373403761268331937855102662957594145698499017459227529658281180988886848016724393245933673359311232348449208154900448561184499802896237289786550096317124269725915066719176864345500155099714424228805440417624289538857978059773080844767117457034242362010766889028865524478192070441646405978692095635513928593251469166094920567350071765242558464139757442262962167393294594337990754313539725629242253172235426164591455508367435145681073195356334699302678157292547778832582405070563805971049426618165602276562744035313374204842106146057502050311205580721062962667859464818725265659205220379512265562536264967094489346089378273564519311318153075301530444855631518999903977057121316808544722252090854151037015655828150529204187267999487274875750885470592783096383667254782511169077864470786318685641758732464154174217068526309947462917794049761861360949225624740497194546899346560605771442245085934487426722554175925195917256331915487593928582965146516478816005274502585466455121584230554895455476034212440195620892842827360428920237023829854931485390157128321344879752390673297570292435975363449929950067275429181124537738287067319525036822257412472261784898011382336459032613243626081438651725382539499191940366559228911626057212149498237423411339669967180840925608890738117906633142128848002912537166228180138791225876857507162582505078086992432941856168603310119076118055901117577445111553913809142556945427260363437647378777467755434441874678307045889933813823097413635518789480178556234835366490894627499113578915488936905375193509338845692855450889468219938159433690696807765985195523897984243618305814034657763359603419333538907518353591930579387600275506299926723680271797464749385299090861492470616980836899193235551888476781151056618927562104565766908754881716741790019905901304141364884893273138673195223956656008882435877188557006404941010591153931777529504622641866055185549768004250253013613134954866486186766351327518821912920922347871317773315905163089049508659815906508843543487214857531818497913872953434154801337879505409300237211188701533380355042638840121175752795979191252498601539948199469274720497540521058401537347176589368931259751355871052661312679305983037169385782176416810787538623103166389854037672954191354504883636559688333836473928189893580719864643256924841328345042319705884031552399423760368496875637364913911507050971406428573131804582229456260851632792961389301417358202281296603869666143183438680602761607399910749271149766629196235676435616552127788909251311197965035493758305590007619118682580321226992225894502099489632698813776330769747088964580738927576883190533473844228156674906463518710668670149153607682540654892836542492672083883476133420491462744815311902160341149504683118229254147835183737787421022072976950744268865193537694740128313531192935337210244931928595423180812542200659883189840178234935635195811941933166127398283444722545240991567976345891142835006588687077116255484843747947779047020592904274290473425515280897026291639390168512861747923476686025947645169982782392675757330319821592275259806353083111405762487586536158718703881044905860397958388661335755929131703264427999176528928639815673884656777085654907873846296549336141432917347433593095083602162733277215609080394995437939534571227587884224147338736343294550012081206578811543756734071160814697166587755347218319256589241963547978975270027409275900085558184648109476290476143591178223595872307102247149601081277363892141662839602564516079004053114063357199423657075257559574853200533869657503633084018220791475691653726634214190943487549397132291508805471593775053062830610876574839838497794237774917339902359267417671592387180734202742817397700869939337053051411435790814814912579329515592596159696041424455295698055877799253227885595351610795339521924376196300165874298799104443807276314909827827963107358574934392114058345531368823692434427491999833998050017140467068188281216342552906736655663094273444346837633507335368904462488240660394228224266979554485299646015728995089575148124515401703328686420963779961616998727981043450167043244098688273843116360991334714798845829913365071012042531542027600350133449746088544683804744726991024723609242323555393284499788441830695573944671934566962264301481989398845169141269415865691642924321954402249157456592313701455458582153641765503628590957250544173284912832980101633762730401532476608098605275337737191999037629797488297951363613352440248807262445307991919313568426455690817967778265405653450784986016790444188423564129587015414626976819986483293070956419081881716927027208296362475177371029025543959963877573570123119959259801247587298694799447862391587813215503922365760497244628778927071729664837375481868677959972127655937427012568773377409546413397391343627364611748913084288988542650237180209331647972612283181582992337695672512572949234845562460082365567299786738093064250064794424552977372770115788193416110067907170010904414610059330330653104741333718701593511679876426791943382571900760242207730618594454322971508528429010157085486275995290674175203370186762284891163675867313352704272674478022885242715300518400873124302710892855643809940066176705507120539452064378812667677863212380692383530854621649261926230779861260212970128906575217872716878161222504341253589039201920870454448866586985150740787433946270417131438633659184102864606368993091131953507461733621699545140402334492518954142396709573669598930943809386736280964534542642300990107689876589428630656115368684167024440077882065321782565443920816486394553712157237437465046228131219977542752950216654411442868369332592365794770143175772207387077352279359085699169533712334407198943249968708644799592038947611363030654671972475055494800568783008325340467697330442778879794652876150893255270365400923779107191650220034215243919137963700081412331430012472434841557396165781190991003641918060222957702872696459241853863573910575815778801312179987306666609034351066360098231023717835538657863187318122232867434926738873530222502793202330590036175230128448236639665297310963678778837914987610420283842333027759357522988588645924802178264064979704324129178762776444250281878794183791403143533701237773485367540290490089392084256581929680096313177415343121141960105678985617524228129374069358902989944013607323526957759972815461268169280371008257575051925916790417508888016213976799776695182477837380026393577235721159593782539140080205367373001378048030498208328113787296435451626879145950878138393026016428625626261355031311721838756430350178041058844699569760312665381002204878984485652263827131478615742817895710051280709607740967064704196620309485109909789941068580093278637392545731944273699240017565069573030842824895354142865721729341380802493573218520330128505910035499791116210914043466696813089693924499379986429709105494229150567453045303093134781259847075433397062959402013220100462513252134628276738966807855415836891976542852331137633665283498201474776954184229971270566775869276731437698237274169008813151043604227829408919426179353096184075168580329258014116741272749215875056564902196909958521631728859008018547014477165276168189722819980128508957471385158538057550770801155369247903995652726602957184909792123922509441888609013626585231172913309424098017725366800986246635755773207272284668290606531650519784295808819578404391741299481443529145628382661406524587482521853619833573424123247443550121295098214151266172007740674654539192444383724415174076511836741481447227835629328308866424097097650773854106685608333755092194945574588521095749085844364390085365429975718636581143779973283829049175687716506889919331207781910319062346351330998022880129605527889165983086856524237760693389602734205648119652229230130779926096226819820345243688253002545939862668858925494983110113462767718361591070929797920030737122751415376016683941188136160241287112067775325009960555825522883755779476308166381800098102653953376277595731115995191630141399613388236766024356857215491545484487249920601065682051115729199373186077145216546796507144482065352394028726660603742668875795291589292175244335725698108435339200447380802911123977285758120609088894520932166190533974114688078262408861396085617146111811050150775781834856170116610035006423060996469950341671021334703593132068314227434764724860774805349869918030860519454643091584149987318247418338086504631397666120711499475668908415654526839753096593559610928692189886355910089950519537546166648385000910385357355546181616805074609270492150101206957658373857094687479048836951810945066194452063648405789418630472932736411391276411642910986972634070736075816750406510055207874841031941451066441357099631268130218050052806223052293564928783384746321524816374100388630652066800428292244925543896046038610144421217850992726824627420361437204583996023315327043493331205102490343437840831454368493474631749652978170232287684736505154738062878939835395192275419392298679109200425162229966537860416218682512822153684667551600164279394738519151877216179844364783233225550788275305505780114482894066338364435976270084680342125758398535476426313809094981201547932661394559647037542947981946936705071378799971083412542488683691774322893775598630584593769642027609456276893544548984582358138887981807718193038215513661893500328672824040455090360688817852337409617055384369770417267260811733791447645385009606514176685724250115528110647257245243201291679680973172326451627504521800494738043595538123199783797791166484146827573958691016197378941935752355179963361764552593649270711792898554138058853226253329384970680541521115544922791932959804497029541230704919487289472072405003847780212277439753311956702187632927077088753290173316695041274266468302597673934579844606131116588126356665971764829456081398703809927267026732484257378056929794602663805016454097786326713015869941231458788845061692593384608359256993911588520185644193365230341742773800232036626110129750540420337629325502162238545294061733219586323257854702924785863746875544722514550210082495266160762715563686337856096137631137381093117421871132593038813035943323776491407206322533880909973608155105205514524997202664439879192587781913861844480864194623413289604353062332831904122707154518518030080790836979352235148297717167847097545480052465610993115872043310749530993088437405546129230392798794340270555419634017380104659139224862410708368395996889565468487153085584306085133560475197929378851932241619182011719482023247025599744593279026925297898204442273002261219202794416508612739401305766715529138731363782572905419209988214946768045192405034122550492712150534902335425230409880535101426475200428504105024951825035158579158056518807769615548165133113855695165428732270606150957103587771405004798823953360695750430537716800455504809328191675128072805027853124537242151734690699656240909669023919382358251239743810026060977393276660123876297750821564727121884562486005200559208195610734224147793376333269099910522190628116810964875859374365604122784105468953616852645390228962791457474068455519320419708234047649053236038525007918158484578565628827634390893570955251654818414945759911708850144095562341752578221602539321320974413895376542658287637881289453193784878806086922595338499080419207808093500944593572901194342732820698738595946029414882478310031315025903795609612331063064654728113682592430732619831748276135143485186623929832677696995062726758423925635488442975119085112686427639738807232087863001225493512520230710519575430643008149022653177678211185593730004851208400771863064629690067680354455879210153735181378294041371599853149954989290845760657438939601994912011283185849651927618006361571869958336799419242720375196394925779467668295434966106422814095219817221599475497379164080432538618142142880408813092167957496542696091892444788278217261108906997587469282688992460540560958544635753579322772566504623548985350479517163994853741991092296113501933947781450026733577979173903178866871026092685647341039878861839462214676455201814785189621035060681045488481996577510671916427621810338468082985363554545093521021162235866125627306503809989028483640850226877043305110408298420007366146101089777312321481903414406219295511453406222473431524651817866135002089958265193858119126668757017600770209935319119355683936620920116555357908487436109593276547100760818421357867765189024449980520866369416003402154476367386133443393523777095579681014953412266253612083765283682195689600969805988386394018440628846376240022943261738529143836755237105917348776005460667453148654527451198833982095772187841706022879479542635747331694730842289775822188542404859911259504207126400402446369547296365459606736615484326141208508770978948716852028029922234473937942182777028444139356822140772902427381914306634608331174957562848627078948354929467501979790034070461347505150238871844142493748000916400345296505050328832460184048928043208353496926309053133498702706049171436673697781855741535467277816207220332281338647874996024473796887116158891318456419447391267000839147456419088856340856560512540866895842542771929502922717610491417058133513658322408438311776680055513594546833873893746632962577911830928528238044639483645390959860878714703639352732611100186066357504886792140778588912306672340309724083392612990145838166574312248141922329847091807440507535521337409943562692281136927328902332543401710392900969237295161191870989817156901086363334950325098761816172287433467532226898830288948898398759581285405254809674839961199376305742667785256460532191533456859692388505233536549816878555528477876603213732311364768023071550574787539418598158785754181873762452699999871644493988386907951164275730277817084244792092707557702785325411922081842617959838369656634702287873048011244092639169131548616555356534606562043283357944684814190615571593840386752909094381317249566050825010584390945032192307645882182060795847867965350260387492386472694400927192966639879636126758409734839425015506156924782275095538920981769787192377944866950720332396250067107142079582380438828704518360706962871315469904479380906787593227292801635359115133024233166706800903310264554856187404281473461907453420779149879678724616081867551607074873133259585002315752939697299878563655765048682314343405475172356647919412505805489860057846313604107239210199739712808472022835714996759856635321352470701166064477586833031320625457912260019301916893545281564836212300026159564765527335776395466210943170277439508900812445750355578700886244572413163054628151525833987954548096409382818641142661106627565679646102016525861140006418855955378943918966021514630294120019286084945835637738315601949560426247542206978422326851163586188792939001313455794446084171991465763589167356761197073177830232842592668742873723133626717529578204245096074798222675811288558872499972852001235460624721440299470474870432228781168572929013292106514715808126019506130474970504450088739904783145501845346292897466411004155833702326774367044106222634316954863307722967306797695457454626336880532349664592155072794239375915692649899875808175558528435294695631276121728271419209734412681046135543805448901456197156392860336396200904944853827483763764159415735230229543284446104308192960829098809850436755291245186941976203515346747561898547949364142521180435805292011914203737255857891977411108207122496414443515742999098940818159709738567108349055136071090751173741152917954038143794779887931618053540814026215183897622873175941982365060883971619380121175662622695449986136405145273975538523141421923038404601932191669618240799836137379853826121519265388922401664974652084383141961861946292443770610734602977428664062976878477823872910621387935545612140469963676093510749878599329905271654471026670485931096982878078658154809223934248793083317065728830142105779734432228042116748816833680991263384614813857324860112933089292730472486126529300003748222612505271738666350403331711468712320116227872843742647924234495738106338448985534918824075250445600302933932335432750040836454552026920289768576848829629318993740196733963344197177501515873900143047433343299114146474080905384841503538699311468984422152187254843165899830918141551334984278425432097988868398138566158537414780224538039536844067742788772793558509896333326817402626457380988119197214333940828180873962262867484540438218681501318662269205619368891783051013364743370341499972336638871261319326404747195534942061663248092893378827799650651862516887326404288007738844364812380584791745911804749088866774213275308582177472375100332445188791796657626259317391702497137728323749377637978389214968685961907633205967389904732905156779951820594664782792080937816185406690528383448198303028423597330371208734077592308727425938646333320539359759660930881919099256412950115737225456045040765573014354138711047905325001841459669257721855702527677773283251417020312700521057595207613265709449398086594098305859735474437996180842861757484277745269012001556088665589596587945012641963825668668036705571875463854928115593832051343472789211014364431731495574920777775483446393882882410486472364522603650345258723913045070194114224627820655060689878186657425740091491588170716067642661050719936833268693482939975584394246508330979232186292283496999435830741155138390818263826320639492654758036212370613196202612086862667281276036155785126723902693412997353874249076581932987805392030281333744566806975415578530207896347087677719517351134398904056750216011329906134849116404590806740324687068372845633687726064293405711407090011621885068803253807456791009588899153076127354314800758371854945126177551788590630891473681815547234224507997066397688712450546427741571401243371119707977181637258326723724350639344572127474982485140856445286499635386178707547464411439628563570861306421287552540010918740325263858301578946686461810223951652707347153337521415851032569158914388488914359233698470391908054250454929076826526132994809891373430958209069691641090896107111462911520612719119385120057280786230023218238075193519687380232476720487455533174054842423565145759336834840921956947518469216814775400514451011700659578567896553150699969689140681547852939450186345379771400717914956348080787765867730180186316923224004600671863358921527891798350267728642448658406630446143198920462949334257828051186171096339545551291207131497370050799226740805720376279650827307280275648288991720882384627771147966248691730588217429476771215214570482104154616964624020933618341350636789811224338401101621033285349873874343278601468286168796726419540351908844279706652474385738656470751644471314618268923874056502229593825107606550759886126163017233039256745952544797547265966112906415553451448071744680790616852360558515835414457216644517803690100815441491098821429460647455679013857243826404740369759426454322576260180775710883255319765451019302089041851157905665484794565648874443779762923066253192775609882700759880986926299161578361753261126732279678932330303126673908419979959967288932775270911335644217934854459441420036397278499398557144363646985201970522267770133060324314504152933969443382070564388916561672538173824034677563062277444277337512841469800614340315570186690633570228983285989404605119287149129002055977748110147840459611642168578141445697159283006642515776102740166748397695669694355112701738712576345705822586519327857659642453261779502435301105051796247097320565152250325251769277975920696270146947883889898583216064064885927331120736079743099297662170469803906473562562064239567347220132970139094231998221750005488438148856033286833769074036682392077052981355371660505452099431959549620952246278175198598126730540743899074906891812102687004138215205751818169003888997768614313848106215107987753013462446589345035231682142052328512730144002038651796144175784207714412272487590792184905805479889701010287225016105969122097834135674894709479493281331898002793865968030040196290760798486567512122698916835197960348505134361378626087291103129488891008826963883226653163308834752744392374946261550273853520065293242629025822309077580198595945873540022903899372027800231203897856047015744495508799987386569393204570836432480973189504470000362259383211142191246380970535776583985573438547618498586167764927772122405928223310730235905882847485394779122993202667841381117795744817634672822398720505582661480643762898134366569747633163494586520273618401899062500354988670955416388343274523491972037345825391341215156298864558887994982316142751069358641773682529299187537466095681496675066725651598897675194652794877305179314852446976413093181974992871865330737185708732709395096929491810030152770457146426285374136602055698813492222919178281003249358398273526461206811039963649230250706904756645871950040252766522027600301112651214214643179297738502177775688222244094223241287283538066277835020457423105404256263757413052188669293628014072165527699562211077025857153889507469223952162746674398835905981207121748432498751265620636745991706109400803585757939876773369008193029651452524732945498286426308902134525758761552183139137480466288211789379390141250570609727403419031654565182520939627580893347891193099686205850419422847183646179616582979937215373672957491025421223836816530586980329702873396101749698593310335122535796761529943241202270329673130613970434502982480944359972328282947638002674251088820301404180742354882482634008527283612915461242231111549505570148905952026832820874665649975052589695753213823686326595703988774961302193224302526647907357040613001358532493016070960343563904059740193092881386238334292055713664538878291630393545275558759209205317649612701362173673674227554598553405949968223674812739639843353686583569052699961893055535094228696052454730769251765715888177473742780024862579787244487591006431673256188859062825712682122391317029279794118951896528715454485067289643571708082002619734110125275547991944815489966970919722929235175679838549082719077421530301473656036860637145276784072384947296557240232741337694599681130239496419986084288380196820651521157489016914708946318919550832729775063387530712040497753804629287668982856526173429572419117101860625625167894234510658834183648934116577778052517308943568631186480614220994871108568968781615301834742820354502174815579670469803803254737490346736199590754449300432219198757383774340238795571390156018041611086072805409989302603345051897129720662419338817987254933210529635288964521515555198228093523223187971352978284489186458881476214223453284157740454396392455523985678200884718518407103151011626634027170311641824888690613362285290847596626317833414119882496927088342597531987431193501406394462726081804757356448694420745267603546113559890834374195649182479200348667506504615791065927736588090303307748569342149029149521678580044674570319358413655299433207204064257949581597075638894475680216702151563974679477912152707411637280359099283852264495142944084166085142758980425809551839240524849734425884954052309583868120512539135858646076199110358929116723860104748961358388448288164365331253407819429125694419715290557250817427531471852944471522266190231407977452982151890218468561261095818850563511348273703893308984278575617802928080092190300585801888153493399681960642924513420161843904637196145012440324084286806317847625254974323543074421068363961229293187856032780086887009072287886431969241960758908664242171674850380418560132127421292535359921043972883332824392851944489036522347592746847471134453335912842650087530782342184557000575112902458571737948885779810416106794678419670852025109728410637336753558917019945004063659252745677045459659379911548845001796745873755695832788881930609010206204693429598325748744067007169864576506067469281758200841674360371880236623031670581987105021628457955427384560690032591962947561500880265779928637136548656233955445499212954594048398376408137087471480129370063879300937884368197140167361254057646262152273839731157998274369948848288140274177305732119246708291521787479193154197769228167199884449401408810563599111332677926862019558519985192039098955055689970915211521478700242021005524240157013139653415704871122619263329029618112166094488209915775042909943793733218359168645637989847927651771870965810298615018121670517079896506356493708317777962291948539714427843192519213851140546306230274098205829273015975506209487639175196758653787357934425683201526772154828113384154906886446029746909089807885994551629928085778160690049943541076534908746462433737715954355200688721025676308481817105552402821605232182119623568974978211555533888110688096278454029701288926111193809400774268243565400461911344758891219206488358836877033020164271936243926180601968170030948507290622720893858004148763596334361187953540694583749373911429343877599317629286038250856491499736231374476914900266017402855466287165392615107389793915977507779390443534587697508709451583895711032243648519920474257112053265464988421572243815045831315402245278557297019421258800592354479022165685932313944989565111106718864845822097514148955798819627471906429565263250496394270902880213084781514253480288887883507177033632515928352449547711316946580803207830838419854688054379423577204840180983993581696641992104724849223487075840202945965606363862355953736871090831270082117890975023529877778830167697959081528712538479350614429895725355151283735337841144896550211744600305693558398762239523261061942635282047303592647535418984842853357597081997163604330263011267745535888018177394823898282103113003855741240231784705186615517778755608070427466348538749845050615068323465204247846593182952645874858127652137581154702139420579682724067217639112198797673318119280361949157131510683509565466156655329982244919417141110393481686932992586230212846549284570526352539222568600994688937452209761407407050954480775076421314382276883622892807951929489003006787774980429894604660657170089157978476440711249602800727040499678773145064517722837259200408242798686409100802130940596346248019132855278777764785974457386545116098344685526216388453690958593320828043026125212249519681474008010550310375982286998656110442651435269806629530016443275889840714370729092626565799155530608193738082843916787377385116690412553875488077479378835137904413380396752733335953279605062702457432745434216751928446301758240131021202471318232966395555575931867582912684142082513980782709323192885060739392965114271486158614506479914208629836381843547794341044822845043594537647357625289684228836770702322335005928482709672007146863488092965585643359836244413218513722651598080995598794952863091221153302488215493265204853838805290660671088560960259815332979144222768958511692246340254877278307201055128271508583067288224057144477134357750813048999590681097302097877752036636167039719571578628380753076203131482026444194837029961888144577998215904629334535406490434066728196322952303461754954595213346786269423336610798861347389884418456569123249098565379462684156491200044126981180069044174733693001526999214324083006201446241530857786187969834212174353612343200366097234130123656535607307217563622480148790369472640638487669126913036877701122660629654521783964483813391448788735072104210508832907010665767786054048119718089741843631841028631364882536380604088613963406832210266557426698409866917064337316658103578862528413930572002056167960327073345319281398813433773320912106685015261103279233234151793834302347447201404301960134950457388663167232785217617889641965856470253000691041019051203962298389034152821507793077235275781206704115593731041831297702879943118482479009702668889545749672130236288828718290676817352437446625225013634822793407540182334265980858592121818840861346282789386058205204452595571501513642748987710784594007279937540963715451950903351399635813328777191974470691472546967026236510504857910116264156941127338025513359993509279437854751829909266707909649747000035790834514519459148074151029095868426018705876868757193361598145244970789134754136069485913971208136977041962052565260786744068663481212655586912129496625089447424135529454008914914758240109438153159322594975296649241015194189953244495646997844869495168304838296589707630189616025909834155488884613030610214682277980171882623564774854243880730840153369545488696092819417735018965259855748673996739311953563065422344667496017408542177611620660007197487379227406721293603234522051642425567004875648316908845741551327584192993657401059228741688208364203371344242943291554105716530990908611447528822679743428574468066780435047575640023531196717133245442408936746363457342981593740654464425464812346373159606709546533045461498683439067696466740651487129489089475824791522646304713819251720719023488428350336499386585437081869701414242014665830031856515572896658056350464723975196078140090466296825894759892904420788461110452438053442870441818377237144895235902902717441311353555140430791512886820642680167121186549905735084039035843931293023002171982857164115200696702265217544645595968712770045342823950686793860888718078848377311924514616142563218177868365200733826967878378343121761987930730031486170105751745535518390664530350175595798652802427064109041068953021424527202563939261531152183484673295181806877470360968576459686324548780280934632221076219992491224253232638868010627390028550518684048845018528660562863922242629707677970391426147122527296249633029700765444753014439129008686892490472370109882573684942307363191683500976603511562458451500498055108622547979372742185325222153318215985113334234792605301528583963604292258399036944018741035104818984939013330592116144889145868405938743921599914963266174382504567193274265446878229306958709505478297078564571835915067104280946278085061629684939272119627818332989811308291198362817869652635300250067336216230036781218670513941849097278221441521755031383422159870050883470877757301251104530071384030081471080796410214869975023883809566834318598914515751561600049279224284864472602511145781734969580650844268228494560643244213750411507922495012311597785009674685806341696652851746456404054110219164307674504031912363399519229919934143462903918146247265404730133115430746579506897903325929165314453213412058157540437606681281128729773620075253541807968961361500920153885274328394381099607607503922118633552385838187538500024971938011150564324648650312226101794506926415740432974395694900501071247803716553804827313300410267361105408913458292538922524655621121978236693006980574662645161674667263201252523868690556882541623098132083176223414635290660336845045479734550583523568398983331265380709695089948311998201612617231948228921190089683668017073355650877073567822305797663578572489250917220034714489492214422523079958280329308859991845467468959292166965983025374741362272356175910673816528684350247534849691237272720870740152109575363619413167846920757487449780549657116360970246990969708555741747790238417604988426872954149396167336436131361949346973166672795150983493467477905269816963520828910797536611356589700200217962710552860624083843474051009165557419510392258420779027637854948672821480167266150625669927869085098048327236353533312925120410057243218629369113483608195258824622850055205559954570823140417888021617139136022041745917002784283757960342231613865285313899435618667825819609436093032392627617995628919591530573898447932718329766145706417606566739510235608111928232989343029915664436294372979912742607435448319271954044518209270744142207451148703435885138596604484391528972035764341003918380580267433380026464358187321670173792227893110111557953541481247391080498196324185742451781801682530290066222367116012099744319330535848589517147627371452838927207810011161967074765341923351641130188987044055997160382712435388000608512609486900606958181506859939654543497315981256622984089112117851746264644490699287414614324125195747172985519475221597319006270111995736355087717883569192843449906010327326037299553886817811499768958535495744075560589178340467670134191248290798568325514261947632343561766246763808163671576582988169912389388389153089292497339521877995395056908770415798198304217339740267326988192252485378311466844456364775401580866824562617567552161496416874204787553668892943112697601186539755923460091355546278530929552893092770361627788173116529283876810737939283364191080756180906457026445653639320800970738009146072510096315535983608256861364804932925652723782688560629371001502330618833624713388841187407512797287836845667723818306428417984285161390900564859222589291021249801800902369597273825622845429582661094577756691126642318055991313536169748062752793484078754744497758213374733306312521184314429183870536791505609087847927477734131446290636047371164080043043174538174735168907505628676047447325925050447165228027176824668340695348166737659955398910061584340687502901470317343500292367826062664072522329319265373356766266426143451562582406458883718800051681539410621618233636268154873739362732325124011647561004134054966128518658889749819804914046523980045796952438046600314069871602913292950686249428100221871106858066081202602797570395352642244349162997180762290375050809011785767197588958903719944757805394507336792742840819931048596300043070074676962717951875669172353882711609362169736759738325409196915938380423566509619140095257526192667460543571621482335189406279377038427760808371230895831338644296587385422304508506490426114590605555738794288776617716442465282377968496621324880904100709810013012123235589177898199285654482276688678647210474915884455841237180361613607578740153026566785283598142764496054952394636475458103805937570668739493938677774681934270486593806851567268295668637404108014268848763616320363007627236956044160464739209661834445928265928469588096863633318052444441836436779596125531455647221547743663901523915699312091466611731758859950608087542901256524907882144274418962009976364382488531708972744297576091403508291998502591944791640123632919857247704187017216955182503069984213499455318558197862227615468845701120020372313623377145979267798537385498357069286787067138617519671605578395762869628354724661061018414249071889094323821004132604348868338540695713055329349234120332913150292812647211672046438219803376654814412839265795572587422046100802635151441698667312521283728518025831577917662936569055132065656210188011951727179241089907606540851297071988774772743139511155580622848156004305437452556964710491795440186553216544203088859064726491667004460419734324800359060351619794817421572920068681783612958033006569921023040293847989939282158852061291405708827710324717859346408190933679007953266792482896280309746882741172371590226680410769019456865454905755465679297405641877762359065293449246101835752271151000605461496498078148043231342530360496916967249684034671498419284773605752342460981016070205919346846847420646530985896403018893431295569769473359510387233632889241768172928111869613706925640190305868761527221301580976678041429857581276806489885407216620595523371401647241078868173124154711727281528183592891267984683760158974069217669802862892178506189347098475672834132418477330064695555121113916313872998798394407953909334304532551980402534376867618154909210399676114326682022200598072402056947623807362458985655731719865457566343152066872705181760205814571428201783999184696725844999325922944539473157121170564485944327907798134049361595094933060544756255273868746550372728569919039969862424187568886945101092090952834082638281223574928881634899080534960227670329975742481754894186474702321690555100199845643136659921833881799058537942381383967315686635699362838965852985773525765274483886196273180308901884019002010926119038683235784707665148044713038712161850629248295515782325991465796970780223376663288001208834569320292956021160118675762873139870863537744416164292015873360745790891353576189653428696451891368566811192906335803384670074561541514238995333717149389440753856014609496450231075866532644137922659147981137579879004231210983632953417633953840759288001582710778442965056617109431229410585692479860549277869158854996099787771448556555105923589564691446763989382889352569953320984041259368415287373767595700070000378183119891253836266070828194741046068383755180311263141523852356164238118665450014582684633645342429478242858936106885288290016259787123402060101553680679838907953226471930443941678598291898467448972475371456649290674920437484380678656448002740691916745564733593965034719255115880517823347923625041922167357967111102076358849835004667394021218807077971365673281089705835861484023754513462777500460759765287787856941377622202149385250933438463266724417832532983143302565629073393441880990645741531468468797567658992783176766514008347622349504981827321659474737154273331709942575613618151199255612080317949782531569978816846153101004685452971685265003330930856215897689222092970495219252361078115108436036313920415981713405343656581104503762337407096541860456266567516919021257397720582822460674299264541249299911542008023837853647890956966054994786507477374862706720065335111439740627708327905859999651021992693236385547703988274132632639209095888761869284501277251570791218283496780192735870499615057390870361427829877780411321509411521070174977335878200547638924056762145772807856952992523976435213224517805799540094475115389616766150138909274149612439468840154171233959393228627312086885756243316092648248732389508823608632381875532775012825725579758903506598219205438512974237112878737755142875156267858318261205298338155578719684003429968406565756225617981617565768307525988727974099419403895683906676885129352504676929957519186332309670800421960961505900557477878346588908631237662089612267610140252738511162482893981532291129788688773238847007851044545977556245996078759681621328471054914421985754833446223585753586533659241957646830858438574657152520545391493703924207344864018350179245018815376120719582057903932015624493093289942257702256542773377741772632295632041306625306127038752395524771671055738901319061107655187160767477809933606578835803844965767940490066840370695629886082067495301594616610933580186574532968083929846079206028255518695510515119078127008924416029687510603881101301907839129025065919409742339899776594817873669335401372042939627799394662950164273477635263438046530109702352062720028874990736683540156899370391426855914822760452322175160478931954337821990648187951133073965467869024051952602716161784747612301934796035683728883877427541533884020846893874450435599234673921775793860067209266963446200915820502082075315801914746705062919079257179205706277068106521586129041092482348174560074462383986896480327552793437762990581846759797947952964979924789526696525899176176606947198134647822828431474820741238787215734200609179806884821096002111156113750484389287210618392525910429043747854717273068657851447870164753353325716190781102781322196459308811616266124057972649287191404113418177167176967105538217452490477307540740756765474568180120143387122006008811688059924676184071498178053783557827387091105980610957415435898937476480130044330453076109291729804807566418604020893935144817881898082903443152932337505630690183070856029394866013613616986963707959564517417663406961143266146369795007094198769455948536152223714507965686974253259575847437638888403946500222156853129433542721299475001452449034281627675533920657113937303829810525036469600763649095483693721728113434174499661511183190677460708600991777770565420345274251460225604624947269221349096589522231936360559813880218390430810955547635509444284067047499020173814213738833683411433213323461242770179505921287368499682161991004130867776466077084221766827704758915553506116242618955213902041873214265821567044134950291595182047934992081584635442961275807448946441669142176693936790765841772149302046083588764400556054715151647385052444301331816885076619628550465341192006684949345631905240601393981277503627645032887664123684416806896609100185978802321327132453811376291186769886951350085704222677200290141104554732271601824176874946178130965165055231005365624180505969499771661097344577380534241292180037642211694747185558848124804169048460285963287987084872798338005657262901089482341573413229953416351854463903344930259504554908142972198575250592363982800912175714308996660248386647327985379458896163652874910409965139394857748134838923152133647614518914342371290344905848495123444760536473851305619921183119756853658264758836336369982063520288130076084676291422911769999840955963238664100471905417783968075381495444929014260045964914237183266366666172379317750716348655731923604852387984056533372090125231196228412808810280525282097189010505362644380839858200233505798125548895658144540829895778326745497352105528958636853212377215498639829823821135172347946842218376856677575406283498784220847652723619624924272928332912871566763409286460272045368337469357050533085570777438768436681628493704251241058397454982357899521363567570399228048252010583687073540151566641597072186205772547923381819417200823811645364933670897829468046094642574949813840826740883054481747858154377919795371293642111482485801601359308963004316145989278594392338315512092867471856380183853408186619262710001911000570913891355405009548367799761157788714791340451108960881128439752851231034247060645922129521227352463194045158317098886016221115700391333042455057542572323332969987763170027832535623299792047120133482021287362820536664682976816719917494976129584645742470954254361589878261771252532016206980120811601342748094705687734825303313374772385752311840143230273205886799033469492923593265254757997911816459042850277905052539813583570877588179777514490333187425971943626002592066696328618851904005378560464599462868025604887874975627256838009222456495761853608933188169818930313721345252709620661286857325725081002939030025964658437611424979688166239851224695613611356896292427710697040724396452379083561803191693271672243304650416922706360793649571126668384197403657656181445114697057167804226748353462875370741394884954559738163446096593433170028488302932083469386125069365865723301806124858059536756509644051576825651195005801095520275117866086160994317177233219009389634051009080357594897737024147514071425732624802715533394741483091473437336844076589374556115783461664412960267636317610800508060393160251827911846654520367540022171759769403511470169238939249905482147162456983457432113226592006176648731328031761642051898707905655670365561802265679623967958450751399682777887646629995277243602872751709723826147342295957758779974218470866353307857112548004244562634614798943313683011741988062389230848353217994175211583784764570167229199824415628034469990799003929416489679999453545620748404985761061350949411343547032864784082158597464221199271376521447321520885521579948805002960541497102081734043061857149356829720032379550861407410519978012737742872726762564152006977915556007829683380009910403886747193380241711719696145223403012202844012972891820046277483205471091985118103020778499817122163763284338030283457470597092702316385979263842781251274253292063180168089455771349706513626392319522088187540705997700391687771709452789137038734181494627993069982669044479312925933211600608601784004830185293185281197249941943922043678068036317770916651201780434116849641284352522444671800051430536528503492960143038989937281917434482125987992375564283628126156847056288818616217770880610022902175155738554399529197858922843769905308329365774668654476293125197971335415937689035432565408194292776657685610151523338063130193365822326442723312594887214004018821759922996194588904094835720236335076563856024576839313871655755280708970645442341898901317972790175838042129739641574784051699131993839432018947997766276447169761940537985541331725818197775807791346575784476543455506376503572117662186201732046023632078608046518613197181457733145436452466810220645413997541806827101387224523026055336943092106415281949773994471678463022819084224405878630987561221224059825966534190307043330134167960396304378615617567743012305865911205301113719369299722936080502788059265903539137683864783874901406295384086426520491465084299117319788769027253646144134083171302386703338241734649752980855049351693719332454973129998500664662385836067565909318541361838860966971731217770811015776278386797464033916171975039322401469570014791773448055200007088841301534945725067672328205304007449353133392029992759206356191213768890379924294874072881182128088999131131304953040626780810719459619996089637157280940350452319957630235042382543954915335653434474010398552089291535659666769944832739881365911947453824647951131249320318450825263504371472707973911963100672248675445632338058653834294707125434390529449379832842598112674230986947418707214796794157580762852220320032660142998567892067701888755985854605413444619766843646140440743892904262198507455028075024825599029007175004654185108481117024712988352450981881272856628922383989728331274551896585720657378807667976321137587931442415711821868382268216364326706338962947302895742018691593981857410532024715461069903980465307284118218786287386894785078226014428616385173970888769419676426175294974437978659944417383917142619725405417375237808490652763705331526334836418862401446600430743388056049656129893430319100227795172932984584184658993661991820451804426701957689249644944642906072433016374481277948067319525748208370210056720395212890772335918737001941209488599331978058579490820142070173469860298509690624676293845931765017489477814924779459381413860483249908545901929165214329676382635180404324609992547467462228310383725974142102205912113432929584058698317253883482088010547938319847119637334400004816544765862103127311527168957650193512788605009937520000604234945207187069899126688312702074281649600696527865298186104809735316190969097520271246758633135573285244218183240211982905262674991298071544320087850286265493715055615310020654523704993811161082932378774868869124106537535839083207151020763771817244777199434948610939304534918904777591530052485077696313315060434820639587829932271984888711047857286043318700984142092017780456802333226005478209752557011891401645000348852676923295814215124425280629506381784698362433436363604988648734402440646642233189411556773762653025188541931075373399205072813464221508154372689688081121855322626916455731311730900858898917287969872220191166171776732320215489926118795029398163692815199797616502227725109154710510503575876631786495007452061744367696136863060476655218189945641488618005844047579350236367897160260364552440890659513651706289104771992037539115953280559113998560919875301926265472573464143447345109517748674876333105849037241823583629039009075079876306133063007317157787442293265529286449101343279420702590916364704948863461208080134438502068300499221994390184966313823776985614025634873397210973117604709933089309057728568248772394967747210127459684142504493284864624488263186890310925957721332321733727302146804932966678089462220050699401616420834588608042125272960290592033404251475706087440379082779653558539746876130937312193793523156053410286234044031260029988738952752936122243379140404003935151105428851256671491010677242500943799072585815285102085299382621872625573814798144560025003258762753997840491166461950705022296501209637098644816827317090942352365212274815477721067888271677981788567390249798039762032469359229505203893813445013433248739979692765264746276211029829702807602766569079373038359712327776595394762935986890557568938225290169890890236371301224785330978830945562432328636480325594363589244531235474108386332014058471344009574631188468675523453974254754187350936770360765115286276385690686464120182702582164348484346150167985438743548842628963251018416762869776577954979934430496293479363304011995467005462260467197059755509685307794134942648384380126287579652835676303446223090432129174583317584567566306041150340184418581494257562775140101014713517052582558806546402149456581517550891384695374231288023940498024294124565282223002199629622037045090200933991834705936634831021121936829220808068607663122001417705338489014333961554578173549449541460802110462049469081775961185352638052064563508567324309032425009307067913592865968764747073716663123731813094841919202066014696959042166997429749784744844058498275707977118070212805020098110444385099054126186069067090445193062467900269997514775674685135437915147836685537339806442148842728031559221586576424298235852681577163214534545350119490108138959637215311569244780067673598275198056228060988240116445882985577332857682431755567017969102064048252055590789836363506611551830475514295550134863604038183468463355807166750575481977758140904858321176553704166455008341757807525540412579092474063766018658877452996061455433627133061584498147958317826598325154161225699742573293907954566492351894123024254691842409003857897129892786435280849744146027107785633095577535279010310252075187954261853210265192217427124597514910796735180239729877299173030777415427456337199300071988150453996507611453730109217488612170051283050944151077149133157990981677639147910461206350291906039132771460994126769607129454875919790262709979444806632197173618379324457261798994983198976169964793149139823416121424278736683185857019443116601148086765657974418460042714501054392661069501474163576111422886516720217437583359456942250993852677500303669483359557490365967791278780953452845567487800633833418405817631866893718216909860665966379909221741824538317892239087628070191499405277732110244679672342049841134337486163765616831315437898811913444914355879463369154195850022189155464983342589654212809634890076171457709250420111628320735052763565093211629884313103327732390074979179810338351067561026650161019274151568785799326311924715766788471626369620112370129560825671378256692451794685223226743243236634017266826945611677048911470097825386407961468220090278662210434813957751817985776568984747896081349309728884121209606992215540817626818900596788836832476315778436778288012230818546288206135802081238920466942448624829896614570694383332005590892744146250692675617808622378284551413715302986280454162150487982372174790335219422725523141192123744090137077607328273235994521806761340606976015286322308276581300898531704139990458902651173912166914874572873452091286841646841822213209770731415224196851842726301378877559374954539037095666372134221187558128058998008014117579954890106038438381910170970219495996881188247018151429963317876506354147191751349847848433840504723457110966237776557718465435479184826693918912306244418315428092008782225106590045930284615753594993214544327381368360445070447861802958760989668067330707513793121582273584768370222721668316241867612719105477409689192001326165770379842035378749851446607515030294817165588546478810508425030995889066355146079922619436934073882869321870493558383393708426261561600419832931857423598547687454861026596958681829326783559811127777074560384552098245964449460289097982206052587111401314820078310139775749560153489040976154372984719135359795361712879205345060911691659189628106563417733845284606873278973395827795055462165496615915031750724501818446274661859883872209943724966439835313641383428141456978521451930786230274737828561298803205760402396353355854339708067181264632146321964353520303963487098562577410164748622127881272468452275374860142096406756485543414883051528549923911223080395003282419501290460952208092678557075029667474382713792396579829304614196078697752255026537155582795461787875038085726585645608445172686650224524367162358689245911092158578654458369850766821051007540597784981057870495224434696495606265010921023281630975900024334936196479929086562499225929470930795931497490874047828821842933258111005253911281459826958682064833606214133711452312119086151240335665501405741248340158449979645939537454779956076355233750692794013951786142595887697722430331560303775582921625076852352752525142885946650031794146076716571066568187490817565397356806310260713453202660249018272256535285580473822808811863197653506183323308183083829183213572343171413774124962591724450443862560831323397980389813401087154335956540865223518256643103732261998044372161849708129143692966453433866383567215920552874072906531303904923961615349447293013430230526127220646742352100181400206797318709808852181385073700558733957784544919224678919333134704545439221817685327321087551666735198547174554906528837804731886179097796181224011957126342157564705648993633826617880039296886754833000197225278527362368600681223422006312282005585786328840456023558937850732214935391920849977387511084978872450362207856953515643263617398945113199559577030043340513004538611430746833817336586218754978238841339373794449208350727138016178066212736671925018626424090843325214464646290286610857725079278996594730745034540677807902432204803274718296102230954932003207970572144115509465841297494825216341382424186494988691505834972629920774782013809530559770645533384369076893784467510850121213873288200919654511651734130010214707725570798586563610954077583888502975078062059258113127362891135992129227864113868902018877925589709156049417557101045357271720152428178413860650582032540369834841777936573903545559975063127292579111615553864969847752539378142700005779272744441115787175746928593006640650072949894973727149359988089698209609039041459402296147918838236388639555525880192996994716198745286320640503854771003526108365920874137609159109513956227482912784196127967518180009308774133054253136654736948079716890878805065761845848802034511228392479344355681678094293170384340455904982157501274392477586946069931556258355305579256844098615274372589848892419176520840819724513064809140769247490713197783495006285820313120506550259356494948523488726902327386882107036674472294445184560277056226132166689694338671491428773301491235208210113781018147950048764338235894502249490716899969999755817537008566022296828646765321604321211393216222396321865530855003260216445679184855415430868691096763759659228284141785216724160602789388251273324612076455353512129085225644657790527898206387963114610740840885197353575822727816161315263395910794485472875140538317148034199219286420352040075858471693280701970849387493544118591927995422436995050597875957836235862258603522796827967411117628963053092366261380001304246738154983500411346208395557442344435228502368495085977515383745483398319069259609606441895583025054284459199660969857162109068294596510897345608615073685421802428609542300129182637290733547962579405626655689386520239875257928472042194399111373822070010594272838803614962953144225275038416206616658449724280229743299326372379343258345964014954433601088618630592875713846546482840822083610794241785040933197537595851025731538661160448015339630849740397941475269784524468334301613650238467629835606379132581997819710773114812809454833764125697897949740787935202111200123601085907646755876196088330673521179391126991752377999595622262009077559188529924981162980367055945466980819428177369112812936062610964595200647919345467246177434823528409494977029499456009653021924277832487368826675784893679176871050082086180815498376723199397150386115366983702688412235499114617764922254278196439201636879107821638065702048502625398057767976611174066085167699664328209771885790163627035878902550993285948681127728357196179725492701654109712989910173405939745893127390388815482600116186985608663323339061745881038718740884029965250423945566075963042321834641717960442487815191100530161267796927048060321938651685464994266892028861033548057414470349674249108880551007726968275137502923513999489461694600653636715417849102587295500797683012612466515999289910657820005255003860966181825993679794750182171849715167092431409169299229869453797453049261396681912325466013172275369119097596245680478194593156808543349423905064592516049465137293545729711574886079544922583990311919275527767356002874011729460376746277049382844198277965921120139482367122029488660444100224212831261601593082101937967625425902290386520492053625332730362913945802188508597467375880348181512355700452282025599148305005498872810149057188421462897614241286523765230047170996302346485295394602082284579254587478606683850723225679620075398047084635664693949310267339719117073668236410813377553037479113527856162059087303065627134248082001674580782842945783743517522987851470999891452105273604649707392323527482623489387633579182662650819358746518247111638231594213710802037316830522961328972864468998791884465193503834371971829514136202862401819815736946997689937130822602895332729420483037381642190480204701574486438162384608502425205573291576646259243875600495403655187309139278508637218470798807087447964262822100443605163664069120566304827606954774736876671839148433641643792885279362642556525844842820643893944318965505444438489741182827853328164717238504585745882216625081197514624433325458382276934868352596638097394900371767083948069762376672339542790770987470017063524631291336048414873231461677803281050723051957831119529648651704358959694860033106393592046644096635790300170318232888171428562490302276755904360031764998805393434191389850308556564998627707069887132005587054539447563114066402426624216491527987805247579405043734449281977797657403223363677960664043899403887782386192905017120391064560787647067070291350083324321840894364711205994558354491204323214462319177497463462176025235919180925938820342624511233941085275428794297687023622117310165109735117681056617756294349451360549594986769016374749648752325262833285291022166487180205218075785287947006412714156931590427924765194198144356708106441183049634919597038141797368399703745530390450993073126073667012952975212941928597505407482437610810161303661839079668409617308130623314244072863276894835451722941880103521734548820431917268227831614958010630499335221446214320194062299160617315056426205376368088779456751571014848283613518780036856576667947001510358634806919882628317263036658991889249103437885332480983802238782211583230364562247564354939499655582545286516892112860166911482376628900579916643741845768034486499541521764602202493920206101068465179925449596836490646520030627245092797053465411542197770355420006363885237316474978554355487685037602991255217327813651909057165567166823534229937280101167123571639438647655439492949692062624584258830056611479936659766534623606270626013562364974302434776082366770711089870182217216653403710187539864208306317317441030095040041284789887182920378603630250846597029989259627996100716054009272224966593947083626984785716101836871223076747993910006306814822998445461274932341397707806722486421753158326341883082891634269915317814408856220490013651702472559488056360180292146197288049299866473713787940243817969415716954035590567322643877262055589950408346955345300257754054552581650009435117064686879351598354847303323654307892096423984613756431586316389963894006818971598160702907764804124271629257019953071730305136745999464338050201043645874870311839575396926604333200254126767480808024808988438266388968892361039061476701291269970744156668701908340238047440923169461677109450837305880214975292420914752403696097383711081041993593642066844992068759429477363457739110230891241863181589939520665555841461753971122620840629003901917851550050321795220463271217202233498105215017997167905013038643190970331713171032671623118877129009062667858679366068642698613536101614082578732211629103537797097823864052484517649843417882183321330504922839174336848967498664512306003476403311070576577662756073260466470163156800533570736130951175211353464018965911456449273670060953709419407873634676086424681241381056659935182045581834798452834763755962772070888410021624875520918034727596674206676767757526020787833137593095121058809849975992264215177658319619935128642954505439485276486464869511636043383731888793213234891195118727900440676079889831132971290153815847690868960744742506701722196779269093975236951386673585705817008006009792715321293631828654794624093459451227556477925121650802215153325083123750590652321264773784662895670032540936283479559766865744014225447365338885231432263413487080762276064632383601572646490941191019311091966948279225764771586693686833808745940356291306331127203147617091240368146046109569704413539727236062817999742160085159881168554344913332459232903589282639988607079998383170476249345532394567538581543730594749138823958603955375361564954271527709380593450763782772286180920819683294211034862306100194761485473621897826281506441448002835506419107929485915679731791181716071971935219277625683022725941790582063227748861639551257987125803273101095190848028425429435585735132760039439569074446361999875568923566570861507895366319971899775669659305692652172919154941145503647527126895296922986133836687726095356130413229838807272869872269135581413856724509131688774438642427993430202222832337951619237974257886720146174830388743841559132397714254762256530643547869573835224386621141935071526786413784383519494885047943188710893906124222361157842461802455680272980534418783341782984832549687042856216548469945832124964720845102712583741083010335605599237459089791864267104124726797810978200802291746971727275189738746107011728269037702792937089116969290748274488236222627270670395779243022279368856490480790697692805998103481958157396710306619891554231732710294391492612312275928995744652826877534603461296897358767824352196349882053648644822380839662603936052604182953051129715324848768348504106827622709080643074769775690809140172296293747667182509853665880373615856402496676861070145409640352955957651009339449996854996634333543232290563440006160017900294317903282704150216587307737237373149871544563434183098543227264792366346721446204786880782388125925428682352486016615049451374771953038507005552136329125485935045896577670087006997647104052534794470168449257292565762658044439533786315076318175781133917635366186379866371332927577027840666234805419812516420662536380762740684462865547922815304189787527678327159766608384809928067502734005144357995704427655163638303498779641314479069781638924499390580329786625093743197980106426757826495273928032424542744937992772595636927529513584247523085321892059859374677899915155507566825832981990227889729747407625518892995447675562919013816068022033758084476856532855400959674848207507106665060534425674264478885379146117469890762123933481129829547146827280951258053128141349701440081634779436694426236498987487049236391151121320866789309217857458745248632577289935947091474845752916132751571249632010099480474593372769674021614493639495854516259799081850300753900319719542623004623983335338355605398155348143048694111052466395544849651944998427282275624606041582737270771215884215223672142810467099862075901450693077841194924114434906961074708196544284694714886275537000693013952912806182825738318716111758950210208844920433252454837964202737990731449090987054782815728905756149451195812064331801118751541615460394929691750315719586026467857906423197948961955759748252892753671668802576654687764746692825707826822670474999041100204950071734334720765347058000524170326843794383637275525930754267196992768280786647798508768000291297041318312705148204469729191665985260877381662013023875755684954099560656306803939830687014172743729617147906435679385382670573699666683472259994622006238507358593421602191945464006950843816923391504994674578915273591832293204812532810922637924848166870751833836347449732697747023409410590632303307610162219677560867308568853566447134700416984805886703363937299342499096980896423864776638873912415491166710047628514874109918285677172911570744696228472062333022579128412896783754505472510190106478580087026041930706578725262964554918219381473900842158562904994473476875335184927631720597093842884970357111536461075535855880631545007226905430211922003397227156837185769072736258960783406208281708410424315517529925281862046149493978390465351372294130650142064805522621887979011935782895478154529342125541194961194796703862315466167204535815274166401828125049334364765593276243493163753859873477142922923169596176689011761824737683762085263496387747631278434776434874409574833130663261166205871378933760288019615502118708070890576968887546969596549478263480621492537171979783476817722922220460229326559464503991598524519139579370693419617015137746734175687172746998533598951789751535086526962890680626672410069773146590615083667704784998385649415977431661885724786455928519918166611938473043193118557061946862222969294512623932396467947653539307689784012453198972103786008043631995577954094396880020589323023730127343588665783761945171901748086583452687745859675802041457779854103303481853620389417663939861715255565515084585287898479447553308804248741905826583165638590532261183447549452638001492599026798171885909611147867829573936916175242305585966051369479983201084650026836515499537149682843033107930050837357074709904874563925263394460170802065823158325879238867098481162908513973827434730846340218473185338896786642932575260297274299169132681298806827598353255669669547363403382063330923414877379550162949835608868676132051589297490856130868183364353501237964306258234876127068760951276546177046016860195587444476749434489669381691040634814393762484452665691407413865625033997558605871181986850164625585186379201770002490167190029783910146468433970044667027150619688385325332032567200299170051549912699810637770632395096878123018682098934471221084215152195224240597297249920846855996824386750156336880965219887832860243969033725202246146560366332268428674929870080118221059689651386802033202396156333578798916959934669608791828396239518103089071539951371139170945980089399819009704172980842800391330481876261141251085846105187348729129071248371559676452807811757087206621703576906141520251133914807347906860582465811860717047613489532393262670648616974311746844718712682338000036332614000617619449500920086794527090780664391682752358770610718860874562391928418519916775980645144557167440331815102812732892068649013098313446180655829307464354934435270416783549396261581206913314847462414651704364324364392790568178594497804292455253768149722243353846046708409210708722540200361972210326523319673104769982625507542891436578908643863698465371948585641203033111768487495632140683643844903544555207147353895570501513677639475142179553702906886287557001674884128929923922287433261739336118162006456302394295915036571459029110545519310865524534436152374700869209804243853144220662583636907381515586439311769677970344157749723849768345531145728846405546576530230957947572646492178158396495426082573160631406060580082245725682377637060766538104167445588244036115687674183104491834347853041532928817282283922010700384418779607444934725850583142752298205015840134113958224497311305338644727523882671851287525304455642019226365206389299920836901581994543088195221711932085797662262128246692220479904072797154216384030532948832434496972815904729882273012736488189876437457697594789378310052279480679355226737290778248688902676070707458868791954999136850288917969479609948915722331488651793483877215228529423621150695261723934925911823949869649647535636576745796217047305800366341197226868085171953829867851827194376793797394834834683041461109715864987463913193291418221682589107816326430610585312829525872852243672400245147055928073930632546391185807819779558488943449812573432819903385104011158302181625143038354216555237868776378667167637334918388572044037000024875572742033952634024811938575328073601106006461347993215912195050144882053964325002353167848452976185839538363839918036708682423121795260740808705196915990173724918004308375487727776157757557853855291853695341192968332260036370988200139826357790422101313392838003768949415532449912473331984300691619051066800550275363614621542912189245217280938520957300040814703428112481007599454652767022291237193104939395695206446136404796574398505894433612592299865969029681819858239371744851207107974130311398033500711886686321708775289703312587527216174285271753406587976890582899403799191295283566495573026027390110948493902948150991659036176914147390291495565139336166846587664178494750453444111357010392853454899452377808384078128446484144394257996946525682769356242630019501774712671145462284001610778193324464330439294212745535479351178952082267494887688562248684840191913125653654988784980976554643962438477359743787766728733221809643892427942833697347240997200031414697780779941561975338574273078794788819328486303542322032333164808804620647137555762325076486017331346806539375100273595486420941358729266466106651517188560727261440101004221642863368899843256643612745663503550444709902089912513436164957718486192239142794863624666062383231397117494688830435358611045336038827266447385744111187753896378474245106412937673826689742864136524237415506934012470421397138341510738632093227771803762820808824471825755765509965277893638526610286259899092264317119424698095365121092812528052218632292776181079129649206749989074668354791934099498245618341605747825264279715739642051259700862900254173086744808942925757188822510438214391435316049555581903048989442885638797275747880944160491045675994714027328211172881865467455323515702709111968961954269385249701186222353190012797084647129596655954859187394819653209917489400207727578280498059692069954106624262364799290800350146518533818040711868248458244157521631362126000567139206204783429416899003047255663094192378124159177753322934889140425537504330242028883146856818746755133247988505276499410572695958363857560977970727565124721822432270587423176749016442218588802681614359471420664667040479458544346309849223326223315353590485208850779490926785199097162814814786842341244312173911527198187831438458437735499407518169005864690151662708477973888996808963288773400788345409029980337945954022340032280514580461817324740553530061095649238259633444970252068158274330655751022430606308350152653210312768355535054672323283401868707405872945998159575323279179122704566283505426779551603818366501804367709086346938882623951142045858045748426060164569899286017345815352638232551077104453996106750889765600851804367126372125815486769553259915510804554726213323253981399607563659639305584125525962583801200643689976735940038612383970621530418249980652590052279582254157127486187604672755391443408079166600284070160539975556343414522687984412815191278189054652658483182644550445820409776337499124872125100637650336973376979518421357242034380237833233708503184679511876316772238694088395567519140388990690048504655184807682407600474914277069531089743586528681009488065596214283061883545708710415377671052959554010443108149360125694823363497257202544628026656922347763460239320512574952997020628658669703875108128447657878219616054161517891012439671851608757503565367097314608209918132805875481416673493723923676229502611073386568503425726740304213693973373747846450937264939025795341996262476311285961080181475451353191733783378761077793461997680052986383204950765592381993024758023079801392001412795793505515311846360554754657733449915473645272424086159431757436666137760573715987593027282370738941450461880353978356755851125064116454480572730919975626198280658266089823011207915593746287390581100204733020098542340790179322360870717361930853253558325993968395845469277551006400769954744383615052476711755676979986806907442570689769782579037930417470527601379191231307000242850081531596137524017937191747429641869178815332545637429201497111232108825927074008949294022898982101923699577729027422624971457290720066120726437453188536058229440816085302664314075362688795921390275337258292644448389502329906577021261353017204098317891716681745761741881398539618166343662873716098064404867354197926815304798974679409466106994019474485483866512986792121094171221134916148557143922509439178130525772073995693327256034716681014989184109927671556949615461265481353379845632496950153147333482353328873840242253563598267275157947557011040601749503573176688557458334242473974238157653652967179503236803610492001169836636713786166540767237436989922381752824807227186225008685239861323815856742530723836101104533048168886583633280404442744185297258384981534797301749309967536635841899324271352048853420493595635129934020539782384192719771148133290138671928415446234173212491798477262849060753046121436395767649580264930901295913030425601554084418867283380889159644185176320222014179827591297448880366263946257927966429214469510333449438069316875194919764688087878492582127530873283248392204456579963726690483086029412002554641822340845966594705776190503675311668230334658085230202263169068056865397645149623041225677216034370036605434465171214986857115055950070954881054524669400923552328541326597822592744142366704183541924847375301510463150188227247662057535801423160299500675314536821700971182789321530578768342234750771675784626529112881349059657681071670423980275316172283820813311350103620010284770614847539132340147848500456375576775141003394905639438926967264418972565567409627092932259299664867158621525402266140258384892868400120066006108238861547002211185174576459247305009836928573742013253423394447349287469709294439261788969574662897290209695367973890524376691409201012563261971515287294030780254222896141131330461961747502000263821299532017390845598559327230626025895238337608594534531913553784227718519321193131321034673051555678303784130367239069056974355055320178038214294965089555069658984463490356904026730655297440968629443518181264953278896655308924732584762143078848667577501238093374277263619276538122172107360846642258487666791249792869964637087850593517719356005959506109999521181189521717206425496505369224627380701745003380475017206444785701244565153137105353491304453903733899720590984478074808339586405511868470736989382018172709857222087976163656347453369497754079515631074937529256850702317536457002992264870645272920700799923509108988977101592794790319586073930918086064589298144230117449233523701954360206138621050212706198206183085522884799756493192946896411493207502990014977737496776069962139110921456551961314434114377001554261100471517602396028560977611799270586558207894302220920776293903096151327788205052210469117512129960376873651212719146393711387247570871638325074280382587662791011849654190574288385383534411083766487350516991165119044356105295131690984693222929392576594332644340585779368627176136769610707131910707375856217958827391680476216198004950149316307607254885662407802826983041277971901608884762819827908454187224906735418998230574217441337009235725795878439820039338045744643436520124620231758908141969337292797665574453624653926954972545704029068971253372735435884268029723974190945104856713853111336398265441131049299290990361689987658247677195205909932780344132080163532463935002683199580106508256206911575645370187607693979861234573656963614602587822717781124096797962398191367513931279368522664423776301358671978462006938529331093074002965880754201773279259282886394835470530130907832442377129596719937865251157342447681266578667299700050491628325662892217015302479586676323617264738049224269378371775835648227327752446620346807758291950105454620068016786547436126004036693375317980186271109649395803425791968962678782903427246471039036794399423172788019494302457886552345633681300072329037006931432628509515438044962604272577027792002921413116189465233246523679392929139621734255525287473618330759701528115609582011462931223426044524472363760735279965775846414755027538833404169297933078857800426162235074288958804111317058428991421355277450860677315856108871085154787956725886076159318988882217390718138069129204519196579337998487735460078501880169487842812240050235157848221714733122614918909980596281857477660455058570931772740469962657738084130593282491614707290143117970145113812488469702474041739290950542665904164243183373686983255064657931236899930055530498089514046818183561488172750048588931095078812726442025002684186456260849575500178437562804850722747961786732811586069309052696868936932017822688256982287242428585547741814173894916734629910170638427454798351523259402591223072356462531017559545161772865176852870925469975995186659271533626788160506322114188907242749099971841469859710713228931277613483929899932073817689616043971166956677875569108058741567830491165767334303289008126339975925489478413394893405441017745633484566836026571954356869962707430844860880058555773097156407360414818961670704836746238079586835103516180160234678569255243171375388364318781096822195203644174064729899994035419764908786833761129267845450618876588947826170699835835427699279455580429496198555410764223965535861965313156273744168468231792335095848944132697366117823224751005341844367196422847997042220872424441637826634250286836207225426140228745701630229112511418519584331362686766877084758314721256763976009561471284340650893185401375880219297858237651944475801180419754382237233472099381616715528468352474673046525409599543183451935048151899686883435173189011227373406242754488838064454021836639837598864543193253551369321891052409404216989773087958956424282973588206506123986614970013173174672789594180718099071375140875229310474769814870700831479393163772825173428547262924944465986624697643089866572527848969581270547784469609014912692291522040462367177104111216991640297180327813432837999227046908748871394081731918384641012386752761763068210780835459480317382207697485988204710090216489480306103948729133024662938213848164411424006614907821499703568042977209293736955840697230009259385918424474314659332211652567090341555744456000005361557588492495728716923555437816826526579701680473649762040350923484702691671303610698679041849758192013482203539325493140692681877406810844097804198726840969502219737086524480967308164782688963933321156293730040097172319602642871753850951052332410933355074511746748270965554341228331099053043033924216923099795308127592252919648553345393264904643799618238075935549616084526808423844343638375990509748149027810170616755507127541983915364239504175953794464544792477199155926737064755549737592805092264380051727124006230364442346791725437519891950826529198233751022441256516288207409250518898627616943483932292736462492929929524089095350148193942536780706192754056409477944190193177075377875611705450555575632370405840062233726668311664425647388376961722528625542011120063156726774790059456031215798888917874635740259786894388119618681094535500499183311251156572341116059129936707833976879194356281241173322554705399580412713177084070233110386751577860255081371702954116405726510144024980810062695690017511151057274974970551208858128148476097343042441851301190596244809392280496969633533386584175239971124832157413260227149819998438697588126173564844799720176752823392150943700867607066655525022922570916806481659579388521388307348722612972617178471916036892964009296617876242192664578057589402100662951134538818311908267407882827636664647467942939875886217228736573370748307714317673103408085520568899720959822878927412563312366725270229896343008519826509178154279420262343050926051129140386698946920985277143281918566088791490180767633383515501300927874141680409254068615170332382359562740004851701527699274264062903222792166669110842186542547075951080991822262578741963280447364999572424662725431125262940097749814404597743394337173130857524475716508270372142183134310401854973653681223927812592435843865750119576185642663048034014343167673691486398920221841687648049199050570914049927309325779154847410752967052901347062812782721922384809938243949791300946868417490090986708375864640939497758527310781385811218577998512218001106313478046976951574151568651400272913205736216307448782909487982747765603333309836506651587315224076150218488284624720239058411893225513142249000340869689322311928054247903261546940306567366879300903424547217444407714455523436403939100932488537123782210939072738753641287803609447715660376822023195463448012347144584656697358936058899744336558937617324465390416831435866352567651803102160164252349340075345414491369499643800540823626419730592784194742818941756299842487250802710444879389141168004673833234312139851707944475428622954641681562334710099377237979314531980994719993091750658395114248231746064235412362458080480963049600412982986216519306788347061434157620429233516782671513008224283896433127021277362799226093726510671376526233935259138874869199703543188036130552155043482090598876924211347510229511501041619880019870243696258988215333551398640263966770356202473592909686404186348793412129812505150024587413984226197368281374480985701269250278585727298499879578052465877436265895788382525826847237609387629980270688046525030768919858989181098038798104808639488523391169499832900282260476055797413622044249242163701904944322186029312491739354219021527709508789190064556728749283808616691448657112152031662384519984924573567497930535606902962765279091945467379414947677958050213183255414248067758500325513359184566481793986706516257141339046460896184148948147626653157169410472807438722720218828558887343630318853439232976699292200785907901754500175754687926715940208556518052767743944270986726340123083137324218694227434461433087592870457449697721122391110141705640770635914241611738798937400891216804708969962249351473129053717574603314024904166069902515214738110333311309875746595212785817744156739196134743823548257971727649347346820462467594427709102866424727305714820711536191002216101610463292243977363750152628649097739321753007893432409583905513181192043255498059568805466636874057538207353252232238791498464565118432529859282913425745595931795522198772275121316564427800237770533918697314991763334314396765213773948508916834828892210269244518250794833740873150328349763620051978662114566267556516202890155311077269047239383147525698857370507363376348710888993491079304400803765194581488464841133745027539906011735719604462767859223236357771900646238390906421926392256148016947600562217621897306198611495305799820692019513697450100907591464369065986535151183666919790259560895221285892055517151542616815167319053495368777838269444197804313100180470730985992425751392119285858768484585280806353525879493910973570112561628338918966282799765463094278655892121081645707873712514760851615929297260563921621322709063343356171055535586482420671262138550618096092760593443946584409501217315489871668609544078626454741667761434668933441822664750615452757439674219254131008721137410321627507294539435837976902548311065680621962301744003047609725467283654720551791007692722795198140218168606050869414185526195109478927752914935752203033458112863913528419631826034016650283695941478896816992645504500342058041794748791328558684376362044142948893995060164344924715252933221022988247395208216740266943337249472649581892115629150031256502571286320364252249602389976858731909129016576463480396926320165562964100662556773091757638135928654844246398466111639925968519469624495524050676187153194289584696305026784993737811657062078065297432402341737584351079749056700122238096461828836977944140759644775563848943187832028500070414740676984321631956817461112418027301232535413066444226886701083104595987952069128538667687951254611883061999566831072066094127919145042241952459442077179934005946007825457435105233942900913810225522656130093948909786943310163510573248828719691245759852381912609660989985822690632928597770828510381959758262089124278303839252901771375017497180004848139574035248822484668377039050285478853152085004029324537570476662345266773469320693257111954079295896618636699749681249330155014203511193924254022613288018276963710316176935379232720068403546403966344926098320556728367702017085689515632003705677349581855470601067463379942520169086600652257179643888769071342129569330262631934627088534729489573540526851914583704874968202682464759647446273222523720830633321258074973602811302375350830847902929672770478980234976353242097406176702051258678899928689665188912730524594316159932627474090526773010157555567767411392004024214299584680943659559612788815315451309541552724520991372330682310963422117559718220727018184696334102233797966478046427621348656745191910406040576427374917580773773463010648774309451444187540610938669148370895669293053014403290163697037308685306465045491846355308486841052144955893698514100657180755835722133994823693670170952989318506402802405025501469915489233142300633046289353308903319811704388156332329523406659135272629996504870403007588579605251383386322022974096946383956172657370269387209213728551272628320634193291022342733511279761429631244410169041986430293808143138459367296137905732262643550891745586739746863524145300694704780535551181889705214786516501966707850978272687146972351664516524214160396684499888413610286212847231448183234567617641383127282778122714227608750115937995130674308327519418047421651992322495337550904129912873931952043053172557026138018706239436024596122916580718120506923020579874273272899792890418199288570893849477860040752481604346941721249047840272997363149212273131939428253266964067115142335203938203338047942249559587780099312471632245630729128374564159414870570334956921505632052862552776015762430446580109394409692538381713073744813277109729309308702589971147188816006882330855039830730613886627382877936775361870335018760231027675710328249210419587787967865017496664427959567331286181837005957157449942486188653546010178856672442202945146719815813490684257208071977283493037982198297797838858007307125791188730288312608232171914876868315373329797419851714041096390495050315520544311571322230616884270826160464471141598148648265295342641043452840058399296816206898487563286116064265356085448153082576619801732085626580768284696506319119827107853929996513112153187107273166690824659724459584477930608366152696664905130943589666127028435823562517203678850318917250346083965539632845831844765714258044626352632147040119084152671403448269829447572769254286354740020332957381809156834926551046227356106470505969751282138171166350768344221567150830657428538932631574875145410715271668721772076225977689764215543292837415784275756442939784912405482503885132756393183232581444182129796184970292095475349268337181257274399956959735330530165444166731483761325018677368695271028717080333470310377602469833276996353309327556362897604464048420210964739176807977309538384284984969910070509067762252863108484663797996094317059186941719126557053421967475340638489467080038505157772892607298984815869297381118862677819932873124973228151230228450314280911247333111975144141518575764708680205722792719025936314774484058891241989641652990569873781410407151262268241966161444803168662569783783877747785236886331734202957018175676818626712956352149632358708743754779761445085280479406498588247130804187907966237398661603717339401911342962620487727096894022116927328384095118969746601408564205189320190717044579602044187557007448589488387762948108620909434561410256792654198641274074950233242851924063546593522516886721429581216132348942730133249377752697301322247681603951593171651015002744577633502820703924368004376850604924288866472256644129768045296959148613644914717755922721696148088083895714314796404316664868464049831048240778557200238890193291113194750920421911598879042662865801674752566970913947083650434538333479987381380648665931108065414446003574795622752264046100069222025097374719650592653350361762186386510566221885776745290391121722847265739234202156558490656355230637780828569261935455782934634844373599543034483322610422004764662324285907535946751230282064696072988933843017592968138440335903145293892513509006728118478351297440779006275964308007511911188638643169725241172890780365177629773848833676695040682506893679680949583078551043368364561371101870837975613198387173577070526094192505402151318396151609538931594700879900047780813986119064116901104671884752854918295293011530730353559383559267100198444790463938607638010036499759668132585122723274339931820948495574311025166414724371610965349673213397051356555806065455790580717299520469913992767198706147661943687844649103532154078148844176284258961587091140746325349602974835566295749900865310580977934455220063746680572911064056768769542889255007450955431678643612044025726864962714070389428997763960819001331044043760556973108881876355410325067433604765968101270174458053908508977760973001553957432987353556289960423406461608571651227509055553514581755004998615948875086910446797940859456838978861198037691583637125889844872942915920394200695998283876538934406594831236890181784050579558763915833910986081925232213289224103423388913976223068290539072639122359176254531761491011475931271296229018738057141877941065359614799014009590559189548063744003387688099978425649294925648941616622000436326237784803553643672528010719212680596150680802429668418557105880700125851844017087394766550390827967726236495360071416788796650679167395600014207591986125131474367586894594395919776059662050524563737077345143877020815401736238872173267072738999803022108163368942088101338656697296577611198528977445292676958380162778371005522965100627599600412658891178220067840878635942377865723360388787419469169652623962406616233787141436220301850430464655755040981223074861001412328803080355588785219031528079468167882385466637928705600682845567306237729901783824724129893533421136428497349285130709432561212637061496730600720664799107548520217018533332301108420466246229007216854130137313029884985872081167817968672734107530307596115400294980098288953527647189324020824215777232919100625826652465489721038178973449956886515995349620306699495247080402051141996628488434769508641415055097829662699463816038525063606377466486913425917509676371030012487242923473738857908005097161457278597099645850804695607363037241762477084078886142462415519516530665625738754704931641941573989624209584100822261797301543837609633674270500725920048169574121498121752115483275697381736221627894911745794215757295233424852638106261702158017553760295119216810548480432717092844400268925371669159946844893625433666562308853268607700723592231589426691281405814931280361942210853317534020329723616406699313782177209716042427127622838194475878825788236923293348106463883954527150819519236067439717139491351728014715892042660781349487256829156792165909949233666492636068571554675127385865161101440708632283988995834179059278302235863419340350770821495806385293822275124301122077416271225345166441214747863152090283800414048549985100505953176888848907916119982111667627864159517264886184900641112551903629190998370179578886096554401744766781501696964105262184219355877301381257639275824530440549079848142791931621093408625056294146824059417637641743467813799766182961026611370893473599301956860046499004625625655996501175302621646238438314955615636577665713952059758498958355782407927567177007947894997603934912576835660211782061482447721557919170082435659586187171466811175231895663738011815412985167427662177815665346382810540266772095650610306781025832735002409705455957026279649887624457943217230108410627429273559342438565054666786731473571875239901902871050635770967476295944616692339667238734611529778771102541466442850426649378594691232714170654671641807971619729290369094129821298337632504418469345089464939139481378879685017451135462344317677244425253106376472909295535091459638177198791892208917127889798416024887804063485238519100359726211422346967926503809097624647308557231366824818398176603047158610014298243192906692669770369018137087729023567681597200163809125301235882099612803278924550695651572155117311681712858975560285119320387862962187062455557265746856507690396549343451633366988722958858286796093011004639189224801544551127267648309199439704026963999424668563525766091999252386924341635969909893379746089796935627715690792944824670128123541057072808455395063165318731836594711800422657306144485117432657414471985928750657488194798805871886656774608385483514706828006279797609341561934066991263084775837294246188623985302109484509327625345630024871227870187169197166548337584817589896541770086444192519078341423500184896181631360804000180859371836126105023567577785000645659147441315758248980633294126452629993714231557361643070278437530494674134363436402848778075895320249247862552633807153578256565576539253713728716724870314611754183976904276933404358253281049513303951619105315232626610035925672388245989909316460943018582002734285267711443564781313067509634275211277260793994829016099109111799166763347368148698651568780172141015719533653944470946102499896485670351043877979685842730287698169374220997499400200851296423785631033345462773404898432163881183555342367397466279460947023377445515225599132709427368152134791803374463150434430032352152353771859281518139096540833996711557750088984334337386290510274190482667731573311847524537139896340001413939699924092958589737783070105502924876567943805386926560955854825156315004792101396576907997324048534725145869126678385965513815350284388704874428217136808972320457405165272358870030847109740016878112879457722430065021573161357346816114565523265875043273252501222789373885516211247132337361975642419124972302966149667081044179552534292561713634986031410407978192806793218421212656687861774876258932401693098364247586751767468124226376491499440445768194206033582293921732380130166333301376843324136961022960215877875061405424674493216852521749702651574313374103269730710979495905219075749226555130013951089098052099762432450631531365993981275568041729190648703859066684698396609105005096230681049180755349822860379054595886167674202113589168666759905616205467172528069048964283257337354840907225081136208485038830101211647552871732547888940069754836026839293138999815678493739651080408594156810343025378650341765697841865405085049291371882826429556725494995507426566952529670705889573722279600623006761632726351754189814341766425418254684070555720625323387995419207150249668404316402485295449547959832597131242178409116109610978496999141197873764430920032695443729514947281208509139204381168506806058809060865923865480773682938178364685789370487840078084657618284689686654376738161307271060035387535555088853697385491475435499039159156580191462947789810164355428670944798605362537078618728981768416600410054663077407291293913490235118654880568409597922524173952484339583692587386456864028583483572007064856403534999878625099872949832250057405483972342106657641455598025803217280135301897799472051904466368589347501852315699413497709474268833336641528737090306935917921476333136664540874135710088229699673334650876955789319505903786609827495178482750007728468644553992968923536369385228461842865197086045323133794615017910709385693188658877401053463372944423229889584926400884373184400558614081340453087888446133490937895846856007862320981661355473980973085961242691884093391348707271841852027376306185499995839077459466745510250035768596952972844464922187837612717330065089082884149256868374349440566723944173901811441730777073601701824040222791650689079699975703008108094642174619870421047816872512693633714620522393669865605994250928924436937026330691301684614626008240904139751734659081552887640789374680440996357912060589552818750251343394443432856571628333922808515880547836185220109051814202771882365158634506299282251910941732958878988011674071183734632234536749181394056462108986041325673513623362489811193287764171100417992685953209364604723774037571681304694829828079209941164199245647412078213036709183449745016493039137482826957731185609749692103035372050196602528451237139750040588517569825833247897585270482058057252173894746385714971500137951974539564165463105771337168177582760713944914272750818315570301152365463026151296520520287639484768563201345187150684395548416944172630817842329066667407636901795514993111310015788065061837001906486390524158813094832407757815803373438555095820780329279157382309787071012180102068486529711582389964406768198334596843230116947616062071871824810094576543805852436429289507885443888118053470439973582484432687224033290678706215011351039192896846045666829669478289486579034763542541313211784315965022896968023571269115524973273872386284921674583046285118076858959414952609103653112342525708669992780545522634587412183776074134406989547962055406850901324777848752540556915084762272736442363320503876940464681986198029965930984617283469864826799755518825658581964782557942874642210741629105551096634633958477916812156596117550318733955001443855194844777648822312512275857967188484252315038175469955698278741381513633194405806714186721185196623497943252916560695173477345620917873516748848579688494723636311909758047894189629602144057046540020080079395864703168216773745401003861946574570141660581505645723134951342993055872415007286078800340490842971083353776357870197761770463827964238095339871336005767801497460183637132181068972754968539629967125743306026905473168739571653957020020751962487515323820849429722755815708409655283115347263456279082907382570807922284374327616813821602024647246300664641678905471112142261894703069126397503878881601497793426072416031045105105475130650016498180917436136823463989138190333485706578611384187203387840974986453076127846141263049525989627690117022496199479539502725054792669744798489089041351800126700832894258952335484549837821719557441327433439428825774337354208237949472641495026478824631613065412631947430991933337779881500015954919333942525951918555061642588988347655052622836954087126093437075755842288703427787428226388433502660647618040778421132753363216844395120965029880791563456718829417446837401364150978004017914139909719126920294816248264581140418138159045676704383621476406876821823621891943083039072074515073358467680698102046193396586416027575211915723124605207987304043663811778298982603142587845600783295881988240683849228879169453756627305654130430773243377920110032456307196951120534327306040823028319777686817796977709043438315640823665609059076989849393893333169345023547054368431750270304952016397533318888201813663028398870880875653576642171377594339419196846115723611394114050537496333564239023965148203646108955110037036161786619889805520120826504408907348530175861351070650255482431069866095463516476974212483786777489260404488997526900719688290352759331994043306122659931690169806068260238878778240193488364251561331953598584640806542366842795050882447426866451446253494422823447157343174210476223627812215452749261132524512619379101683947131116664216093914785606470396736329940501562200567531140586395048397363060938429298737943735784030985982681055883977521251678376032576671460659876630461963138659780066082544308417647883233219663386901188364227871783074035091202780282107659186800923378298133675239679916294043711250469461420686049430766697789816284582899131776596935020082017806261300287691978379078546122410086129799378718453046932035564538554772032120760420314766780595254565937598368135709554497606178722488211470283098148034995870222753362209747911516289971605599706217509930465915534718644951149554960947768747182621549770922735640654586872704131255898203662855074838223284969706172007341120804040820946794100234948559497773266061265420319348214836976996600940703812116509545492460378401470199394492445489079327429276724806310647118923505414754318661452535974672235642069823161205293848413327861595197443416049774456366518188840315604269836324687313519938644928843388521883020414776239658352019758347353808174380901723688574299064409859864417891323901796003778100773810061871538358725780022462243152699852767858036361431874058994836719562010929902056215983185562201842531216499069469908784327825948733814153639933931277598710727770323988427631221274222199337675704993958269916940115433162047204397777654421222755446997720900201592590233675840618683101396553835780326645702548659514685421050376297000063660435617685508001210443795422865076954899284031951737210967063290676435374656648534704318044008223274856006962444142042394515930685105698569213174935049868402257364261742822062512825202049226487687885728400823130040622251766918940615171038598791032547599690730330596501800872359060848538037112857805048170965624319152056882373360792556177811034415486143842275961747651634444591947779504492589633373332372723374643803977949255606956004079113514112930152483935766194876040929274523957076122812143676741009429816930352320205355235218092462154418049077735457700004262536369544686742304098690474839024723670609481866437521883599830380782687241578144631259919538162543587984471610015587521477197994097306225116680694670482281093652869931589643232632299555978697629813594450548908143196578574424325611976045902478318001032286293130640764416307134242540397127686037612376356368341588538796875478147270314254917931850270283008152039744142323276412074888065013465166126998868094132291971114486854584297859741857997504319038150787386167500090914495598494388084220252359372015488260974833107422830517601088599126011079840306078109730265030150292161794030198814842788383874882821502461814066570018550996641759430182053756279581550807099077752872920998214482974429449133205713299904655331627390181663932066100551840555586594229789239695823052246524938899206130193643834020364921328035112791476123367077487445482721909974915677378108848841232087665693656862075096105368977143027037565069550347069282183733740879330978561044597965386021468273653214873420419069731887485229964938169457649505528701986209715048138669379571489206807636291844404157029224155184518918563200646561271681660361975565764275159120351346270790629748245824722681533997991025967500560814688120342437355930356825452631063590948804492113905413974180278587461981771891234490241613840975857743148180520279928998162480846773682648599302859554279122916294446275165639410213591715300138619947101929561172790422569072823429886800592228019118430251578856461799864362854596065691448415397602060666435934603387246768643739127538701617537663571297410432016481730922658919550449021768183956276245040030534323807235302787815390002788552228210990607361780218788532045653977427511684550845850352681198396369237900357068803712467012141629959415198036448493731691399248465136800523515894293517970939802220649363524253575816337265224896180604105944331110980133653875936116128136162497759402371377564966124732497604588558374973966493026176260132726976462789406950138501048995454752110926048539780321316449240035174551786989716660574509819509325060512055069845142933542465166967566219560732240589596041844559240157840488154014330650005990139266692105407385530660355476085981351698410008726683079055546953645023756404193221091686286557146343679640632990417540547285625018033068794767513830759804755283766348616528510847430949019268673849697310477462133433011867488259020715078492864058711167968156637006132808760902596054597545388281301944243724880212401939562838951831874560563319445952074887310818248160469710458456853733321970115403436927283183230462508945357896871651389733965110198544442311983561258653611018899816662546653092146222916218598460041004380969538546999989637364686392811914819858707732089396220116238975693911758973537376132067953308932607204545360250056226188830340634281223769688576681369078810341176638158506667963461622221675680891350464091829178990288058176240293204279954611653836745438275917797357464980090610583405787733179385600081107818665586435323778930176572817195383923398211961445133575646340744034117627478150255223219309140728138659246729742902058844685606939894562275942944043985393294080179627969447267159784708328818310197723574521454914391975552836734721683139323230698845569587545732204544814744758559955398856109872721681856363075672821874432860127189403175100270952175865625493122832241041915850022432279340079311517416964315659256863998208734481246201662282428640375107228466115713080471387444092695545806677198822585838987380189548087073790294316594950116749069614996165790454610567447596984547845038283620016689123193348999129089864287967084644060468336497186749659267035546970446450580901500087639854293059884111581236866264723495000255025367962258725431776343025644939484958176532437515979591939804980504901309059378460598429257901668859080285011104712649094510633566351375050356768011220632244973225134273351965341420167467031695513749838195517124401921033558886436658854049208607302301724494966076400276132612656417905062929959159701710376964692512855590728240527229810981912259397660533400200575014685338875481816556821190667989365875132783080499813136501435833795139045578619708651809267054695256551902481691368714513586814938893874943999786854739386819583639347042547653216017749406486943610290634124844044144193467615078648134693575161839533501006214972955164249677524570986469852676025894929938248565510499339191411805611544282971745573793792407357869627933448521774484983590960241448574584211860515795790838949111996528591732757191120605674884650474760761676421455807457952538912513875426141411982189962879293998132407130282407514232606003681621908054404888469999520264345699314778486256452911134121778499271654417969657837718664647054523411510469861413525103347060155229079541692539266532081671567907183570818868738008352015259206967782010022433470206663224038510728138474586135136999408718147364019984470423337489896161427996316952982143426300405264472361216914665731089666795834721771831380457216047777712613738185758588381550250591358666361682753856832203846975051998614990738030596764434647364351818828617055350651628174919642895952872955137392771426604158025992415680349709344893773752867603103500223829769386294861657865046888507878744210581606719552812501995533335290673297546246690291603110638362526572907307115660026261868862340416049666591756286257693970193324777015285520248816483722780198752899245312702831324017799074674706371510617794884121627761484173620689703394871380324369214472453479422530207288241087458655833692017401326816361450749711968527436773512813221985930711675042774699528908702739738120003342365723614576838444380945731986780437801188049777856419899074212584852979287506735330022042674797175397813624805187700565695451266805201944135247504356511115771702260053940874148540002446672288543813285447396755482476784359532632083091721670062823634340126664998199526677662340368318290656556123444295864264751328944854281854729905864356324903430603225478614582670572804846991410101314797580250041719383115153380941582023144501231164131106473241274125457870345515331821205981754978614176704884022526549844466476731334892999980382102939134300375318290734843473325616976007450154211438691924052716582766326535296355621238637425205252735539183953157963627355828675018074077165976123488581276932001481022635381208594767581310101452291153450202080214225852622684762146212202801370340780081673404818947441392131032386093376354540212590089554428905859141861935811977398855802898551949639753450957962160256493200161292539725666874801904679412640186291165220952786606030767392011836115456072364341061844100726928020988891346416178081429984601775852281969867917394993766507362875162541475139500400264871551284889814075497144533507369906036760227551968728878940479319830214880051126308368698603083496721201289002442360984169479344854871963203407876954474825104370977394760838947479214062073439248690499764364596509477212597464872995921222683380868235354259135810172202198312670637783750754820389305323040929166812898887977047513376429001145883216388997091413739963797719991178764785639465980906120194842449491530073078303272887991303427634933127680492065262235259601714766696929590952487695069433577779784929660516730895836976017950987650381184097158077150730808152655719764873922151540716878695622152281321268448090430161342958673712434879809799603807734393671894747522582325161451941267929600572988474146098379510808884469488274187127616182655046963529833019189920626712063426026601686681033990431631287943360966999613587843430065866817713342835240259159865341741442093982004751862543491080588768318421158262330567681124864518804897358278813722493232959357224680973196268276210429822227324044018641010602989454875851904355455544428784654687206575773380072150919084246922512120658383956161778990271758791864601096353238914243606094505980968643435835492291255128593238847084206617793095040841850052316654517389832919673711981151439010518266645206085893614381986811155494574762273232050082057717474567741761934654193628418027048353012956164399380741525610697185065627164914388185916999260651318653289849789349898381329297670539262004273990173741668123921060697625267882793787837811450897207440000371315105635494078315748583719971502430959262258829272234200470036835381979687837901069717318909905373541413646328266477811502862982040994536514041320066545784589973876203744985070625499434901671567557207557846048714630433043096098018218081142123133290778466399934375954504287625871054614613177781452533184290622044404488570786036570817086943337169860674551547754944028392827114450882049190860512548292424819411238509834431287777091447069560819175751378141354835471327411714579643893564601833829673583248363919014094071420287077474481164901437156827881844449680116384979283677294825282459871689691642574035029707834251726254565284975678803944315658024721453558605523418811619377413371986754912823048658587668727559788944991360947995289829106889225561493805525978928688863613749600626213208898298013939238735911520807699040132335453631093946953024034899823559701338373257947315923556330353807588453086608306611515534840413737186426486686886720301494282658083982499366679026938812447875511875182676931740142523404805912219123261932607944673513276032205407394159961977841938942506364721428501092558499001076968199594611836720502339252183279836338588434826582996205173859385312917393346821386974012264239939426779199320823263119982919289702092284028295922042147453754023324180860772213295043327426199988851478546081595431131252453262722012470609968924617730311890093179015596456801718640621126666673516142048349778984777562520622588262178082430475800812092464782937196626949380644115998964062460368122007732591258966966413813949640084159187726894727960330128952067410455602459712285727855310149569917833982436653196936544182917556113971411094933171804743547194062522747040815074331174332215353232285467765581311738288322748088205333865780706524159303990199019929782774197880723404798912478797445847582416260989555825259735193368900322303860416779522126659808215261211933317422326013131905734285483679706964497482669955125819619485723451977489290084374685857211610923804739745801557800133673074362531025063923558624275023709539324668373224428973888846581478838720670881366133498194490140563872807311397623888759304013832155122889132717197000719010713031818132902871937736598086224215219538623776226635118618967587527123137762779744488984387034268679899677207820570793392106623521220127999972271294247807200057571666136576905717644390560871819110196093406422969705915468356048009084436320038633730787487089517427487116361620127836557978796343900856221983437758834912607193350438164003104026311823851084023183302600775415655276927590615571786770240612796120311880359683157343450360453285005817341869762986891151221307762507010003138334402109532131852611621121143518150766307702847990346606490341754052181966813211616941417185564479310990480801260806505925899422643461259185877837437629259895435794195716514734563011941936638189219552878490716712780111543616929650792890309426665698068644069505506500496613815721386352446507461043333593176033811843897741332588638397585492110141346949171032819802771903133844161467282850703684925833602951546246691405461644175595305300853762602545358421935573628783514722163945940169512461028773163693025600125784808332483004521646292755358221389850263464420001540416723055991681809375917270759735913470205108519626329655425000974913923525216212962412048625578734240643160387033095407943410312441783004233311760236746628913008465119120717054307122770610818521334958219794708062270166556823958734471254510112644274109229190958421949237732506580256432917436414776274384823374915327559563436832939900118324218527810772786881446091966326183717128469129310174281467248785304745788407313662867112221456295840746114640964849764740880489875376029745558312341213568144113670233574484564452773440329922948136312170211778429308573082577065885522844124595596178761317524700515607095915704713174332725415838523670767491254972723553164305030665989090338353017009663975891132666597983945809624278493373052188108271819172306415878366851944178895374239995475385315737452583415829062286412512433951156071899506789391424360810439270593945393574730716055262257587013398965150407503604359643954219668873001899959792716426369858885952930948858361572741975881284578394924039249525672449533096423212950266300708710145372394372048783995286167798675496835176592612201522435179118425064660126713523118337748553794215578541747392623555654521694797980106960350376048442594563907370909345716967719781930981243003623138421509000733703375756015012661030483844456302673575833727896964588290522288809052957764577578388002569849178297452039797345448143002237685228982727823694439989974757019068029841128990308066287879506940854041837855623981617505422739419642677184975178590072335741472338617911357879753522602891273572155454389535265833132404119427950933614167990003942715118516818806156858672821634759235915340501574043409773645972508055226473466953845648514432281610441618373965033492121969734127582859730814067569809587029119739110643400135979301720524038008643881535383637784515943941559679645257229450386579308879423198306361530403584581763943618167586274130723137655017755135750781086646395756384138496943080356341488771447506366124855593814207120578791734202838755111923502511007905191447546409332243758777334148471112330013579108797290264945683765508215872798470306667817568143357220742451734173476936848148577720383788639265117403635055958851006679254413192173622246047556104699122912127145652412339385371523035642472062600508711457360000641514900762690429795294643919388570316071307888482450045183582748487368060124943668455289280397272521376699750227773199073693681934920149056230577402956761852471600897886298590320053077306420812435284237113626663886612367339739246429405632526468885163586646927731432491185140165076644021748228299738614551379788053610337765893668486567182936540585111692147215784091166506616635664812305089634834014973740742916119201031872096678185596458315265253085137952156307508525183529244149895376889757791002662852586715366484244188986274395658791952568467799949818595851295130745398880387368612896858896377563798813161647837641478883436343225573288379996120315333972431303808217355778874895709842159780875974416865389159944217562860557233979872425350354012356730250972709031358094738877089890202225231239006892722044307606135598697400442115880569549182656821876108614131001684124589364286465027376300190804742857282065716917691584363606016982436780653957375318105992773487614967638214589069507816519601836518010010711697601598576791553976734251298487440943020298158480771297904350935412572542610192937689496110635844523781869455882764963097309829995467749359775804063344919670496684517092100860321062747414213420808451044604203479200225357852864982151236345144257024801359804670829746223052086692509251930166635632753588898649383888219611604604389558215739677979486247473560142721301497542080852993030301291979189293748251128032220997865598147516898362074707906390039676238256360924065558332669609388853721663152897485808088833492894729894205649276044028776306621414881161927768753812698791641232419297601827074387378726035260929105450008435155329280729391175290627380783146643257568045111120988062679469103768107277622657978732324183502004337476901500122517876768166340577293982899913122273283005453509846132455834589725963159913903569813093010066810270799752891840702522124707779581273123895605477549889289636077297496652466535244013228450285732916334076747445917826394525420740457502734794988920766769880972380326668038478932912294237132409465516548185952151248224898546451461040518037348111653411202015809072942877828612079229969339282963046623102390888417418840261603717188271074892157799771426807850040295423294535658966042931910711156313985148401772123389849157521634790156261381791970630973261041599740336485695201933222356533072877519343725285114344623200886715554583512712166463217380781422920379307432801846543476836107015453531300201545122027166064143549560873077027131360807610977340249572269572192198681958690910973571044500862004433706428648460291340980952792512085425128228540204677134627608731550256806813589711323110228784750724551186128501558926970333658017141259978679381172835995310247411168743725514864494293356148864045795712142380522993836548160045322878746577896090521249392278415571737479727793334518189740403429083277115512015507313936260955899513057831203886022715503779239667882982495630597657572112155825755895415449125218774798188554756512314457647055458196422244430138846634872882491639431873415010310143378858951418804001751925562499693917882247259786956827439404502141739658467773390640443817093644253748895970409547056200315866236160998793481368679870795992832090852476623344958378418626102547401163057754404884201500916490914698299918816238123986286077587595097432651194854708423099406232275375022297687575522523719587673224552278434369821629638111118996816701278460031670642121890008557268512038474667562441088724906280903848946076736641611780868927868893284829760912128570345503227998205458024324690837578709047345454955720203976102558165565332838504235399519946296440910219802877632133932823369492725026804798698421298255661769981683345848901772188458700636797952148719101525560273180842728605951778645034059145532835551360542247677080854664575621241737473530411724281246218211230399081308424148710270704521966058726868565568814033947792620349366703434074045387484446571106714051357438349966275100546178753900580255498904618312672135295040576893508781447071972727557416977012695305032025676890801375518987886893744816937331864396553745006337358795462332946977806272387945906560034982031168897756192133883678235769900985406606319021858310835182845101797830335270766780571279801503552191149475238688976411101772004081295302972294467659312814645247386254445786154733716287522843692160375941112096718537539521143939205366412947828614937143765146836967914225396678817780029171797819215434964351564728876762497148840480211934110415763491684125128401940502172983511008084245315151096392408939300688899378574130197136907175661602643028451902461658615650217134438907123397039479775578350830047722999901241310209031033537816816473136034297284586057572953467624483154321671577057317696413991022376970430345118827282334632059306446225553830833610345872113433801843097342374407176407466489935090050674145946356258810942141628300155938057978218765778016715698780492390540716795008952503731644454204537863072650120584933314286509738504751457734663796232692793599440598631345269917839284670631041909905092280271538495331919901538874422455904267301355789048079205617437352762751999009881968584924716668282075935004982235628290715188885674628199911961512890770501333654412589522652822122728213623677622915351671132830128302800845636379943199952130262397634426245040730218949251163825783386400588394729838719636859760126705310301537246118722800521233649330966515934628141266686436141157267692738456007562236137232626839420738398358500239705032884553866989275747269182894760097499261040651062873094007631315054701023805678351254965491161395286666714300451449573441688501844510718387434295220395264593558947896361736961296102687065701422838088811899452518458421293781841499137556545242257291573088286650896093826135107073614650066230614073504735824097826872022925972721066706494485013759140177614409105370308962079757652549087844257172966742893484178368283863755915789623446425093213671807780027347858541236045912573874453699146770404208955491318703311899623793173141204521273112793906920059630143668677281942929764582721312881259914880868580316214246641405390526329207917421369257644374368026604725553006358262133415899631307532529427552267185239660662398157898045070086120460093539843340010077361435692233992507223796379281662150519085746912440891810986417736800241697959926662752579807809696849049016207938343333992161657557563574082086363181423605707751502262177799197945976160126890948536836226155931977901404198608912517031961352525748085321296146038927735791520607020917836535537174703015318235794979749562344992347906563746859172000324456486930255506353898987146679797357989244468579720000209873352427123489509908692265150150477189637076887006438283516173361633449311905952796606269779765072964538900068289368125015333473382400224729023271472844268906342199354166787530573993932332292456221234963417818644337239734665301400403993562454983600908831787594309529756346315370056302000094230928884013174568845701047633857452565171166859045084012624734645715546428654022757791287314319652449015455014659809531357844491968061532360833848113693371810565318186197019518874197880957930316298259613007819316879845842243543638042917606060566061259230905674161861914651730262584323008408391399769328132088804196802596725199723476607015141917420373379142983613023029722624908676887914903245828122574053655858776862997105387347292924402528331571195106252286470347674781373892566300165445202056451346067216460679091044402031687694124425408546507101801197356341208505863292761605285315509806174714100279755575733294873895917614666807560050350719882101581000532012179998471399057339838336340389966453978191743664829589584317830645715864227090833207511704995074928848895374252085529273338123710092603217912666747359803475185156499098759012204721525584036991090422368257430476554554352908872381240169819474937128105861902797823864284330348288819037482251193114641023677540703423159376339676637609955834113603767571589540403028437443411916435141137680098557391461199388145317325065917989448232459482674755056464004800556359922716681587467286076456105721395876715550433864530894741578876380304283259884635733590839749233675348687011774560053869742310549410587240455178487244039373857420703951719798712581139175121232221943791447164720918453696791176384784087615155296210330754653567270813823287942555673524333448446760312809159773628335165961227945251628905773808588190519699847142975867000126890795750403998127553191101619689592290561315630521577875485933972574367279987854386482820899319380938579432567358667691883931389668606971839466293990632737065343106752000661355181114843677727398289277039551894555805336334798118100647636858523249035364079750087895721245183461160577513433646954975660049264708095071301842212486808846127924458240420625674905621890983515289245794084781383906869671799548780240609024030199859742254627483336660117602407300518632748084521264863120297677179670116546349021421287160805539461531398096535586727390223201871044030383991111380666053317262837790402541194866395845775183177043941703565497723825277454178454634904705280443020956282589903858087411035074856941429252696623380566285388738406415658183579527294858924473634162808081572124289507530885896079742224550299261448285491238615859068518754886239485383836523212329593472550400316270686818714851055970760815506019100839610329847628148066708293450442267872475112911773128005199113860502527274523534358225471533492284207715095878831653465057432148325550965194690826714533045911202042779143270848614935762532965971998680607891759140035023577547805016803424019957193203995040533118759255227531763457078272426395277736062269602814990744111880585524257389872656031154061826109942248446372458596055487083461230163633635041429849941836176174603312499755777701407460490625042999447987930080968203550802205352395178803288872610945471287637041723131062412023925499371923162632894388216639966767875230323311442369841125897237071526304377309148673470877804672032556285922381533891378413722952962891791700905708234109844079667164930456413165925879187149208590280745943252552617379365436342367221740289607472909155450948934477389936158268337635428135290435293722865105079994956385373174473717530234693423529375082579756120436550256164087179649891737746107081424446520808683230315569210710921124281322176307761406241951414943687593249037104167083697221894385925783630205753743032963617020360570975788994881273318082656506298024802372608237880987222381844327606623469655121705044031209197143686080379180177315380645104558600553638432986194455221249741434263629420959634047034658160924442100607132064203949072792160366939092067190698812876706107313369884055431143888630170294446484824187553822096611740864214743164056296859737525492324264230824678295698173629129034921559922677953193130757435975237021404649925213534825022458261310737451393714627549359446059757882313558491822908215918581506831513989388288148869991263327169071514051525106400899400196400799354844237388099545251041170205914688946433286826954459540346292099481019448649469407274227786848770103084083251221756707261945064001392033534684450059122205890509356459267346396463748029258635814977657802349789884781608266377368336668961704066038695970197258384192320275479995280302371563622065476205041673469624350001694668895427359450740341384457851503310802176415332974214941931979543602909945881411596411315280014970003085083906395112438040242466255653232741343152213171307952120178667900504249011700398458492640297922307547834557996285385649380178720446192290445665851332427702368004045412800543806881197860150620979735270709441795082289841167585352222664310393371123360137816191127053238426838061347351921498640518147681341426052251832920440047511001139986397710897220508103663702641878846828891350185453131616710373742883068928703781003264244186758136398790377422902480253670808219923858928309036536888213704794384351182438616790089678059831060344690671381526292526369246191111433093338831522083638015087086077393209283090114180042711383455314709024595584218657188794674234756754507491074368538200374132130365317550754742219374182177484912654284153836566057263813451833736065716535006399382654498738363991283210771897107917588954254381416820146142818934110566589828396177579542830664042707200408312989461185599505510346470128397172874033784508949959922946143883843686570593624766691869468424437149985650491166003347754797836958172874233214537199821014909338204923766742258045667388973889943969263051313897780413618987518216284151652184248488820138777899943457992692359679166933568016310007024966469035047491996151844867718559845617517288443285529791170577977795016550681546375952968117651362957959199824446922117961374782243316765362315332079100275404740396653112070757314203765148190116139260425460670309245604488359589284578576417079900581461218675320072398595914459692396084933507272211917395232687408577811023138992867429874741307735597759953844072871536282493117662981558728961792434861330192113171656473114439982962861154383458677972589263076601564308071876220692793164373741133677867661555373424927617837959606577089404191822853518373905800171915729933856396470305964282254824362272967257471216745432567005343758868174739500067698228865288834151700744156234932372239235347333239127163416693615635673488914454819663348186249583091316493989262600765109750104888975405552403182869118763649388757835786041483150928590691699162883484566577796100998619125829088208326614261773058173468026427420104100926382925818277457608654232114746799025985443688480033931366919935402201634671300807293074348703874948205185484845751062694426094057713074344662368329580687846575712789856824689175745062828856467821161785232754720455336012869421201190813533694792589011500039212928256683840353476444455251076119597031909648261700915618568569284718921909396749945286494571496779032377826552735964572946884689078675086695944399299601201057703807097993762458398304463863491074064647470273705939003473164431445858122499773136690646594177492004709996510459264409106302129127888658968547967236751130764744235839530817902196028636666821756203593157075490422351855045988599373310500576732296051047766947951121156107124667778889840360915202560811983915176903607054964382087503908136489900183956953724621551286153108062794789227911830982443775342430407573385732459905505816018292065402318934695631871998144778668230628687259680869881359698663543681656964087794484822481667628093905015095572740561180916236045006447809985959924915694990415480979018274422597790946835811520726741753148259998091722212696810658864705973685890963353222023383600704528768638974113113003881478060992824352638123514179124074383660477437614832586183416419705129822101944198781183944454710178049578077061171537719861413866146964893964084236285972974715179187488796614264224854291161282831668043062018470279119134396162369298084682700589669983847031320733272322229627225907937704108625184637518580637923465176125751247983350264173623630544372465779091194580811792523085458623583831387723551856910014517931324309540299288865598581084920238419556472739862897319231769872936141845184940364426510511778174286152702975919329401193779071379329199067638898288328146466492350321577023746059976462212294988633724817911256035020500565870568206871978838197532985083450701926373361005348218765879105828466196562526265071190229941336283156324819653535465173290750076074869088045257789158870660123528371818140684504225600738464899312392121999379130861913498886038384768202513841334106218473158550605497850828900863667736094501090863579776375001124747938012995206052256820006761279833665407095188528336519139984702466496736611936467861576752664546617654208215886101747819843715381249760225232079757567442205352506815104987834535849241539848335406306564135345662068605618630282698636450482891827118923800018340311729799125525006656159441998018710571295861447820334688943393788393365845894962666046180232845682115675821802329615087130040262461928312784970467733001426008064565731212415313589850563844435689340669692135376334899041453619701155306231449765733365836565581242787494032363856027896721273574143546569648788283227585414041832415268436289679182927814951969573676549234701917882940235429786436410214584506760121504925699032071058359716488792328670194095790177972029342285111832976935256498549469690560242378047376206631135030268883727761390667802278184317887339318024533088136029011966807919031535223608721338829779582618256420517247519595846272866595228242610486683418291755001338138331474446105346966987456186672416300955046504627844776095659774739227729860876292984887495024162291533528473638603716849530195759836000899525053530334534312041208152388054753578792557233894809083981961051192870415330342886863856247650596935081987395752827573511725296023622066374422460390368634933422565033938983517262300855767775197284261293298276110979312771515928377901337795218142276823724495064232559547562502202056842637200075262370627706247051715035863561868045392315444421648144341830861000806078913423477490734953577610355196969443526927516587024952539219808069008373455392706814953468759888730610250318054367708492487357379550482657221364064400934888726170263057885649170661803838439663089692598585313075734457791191666734308396414721853921335483002013902999589181553739320351484921363902147863787374865757086511733984774992471468970141708874643449573637454819933826468761104179418583516897606494082175095505270348529449678848121410607924454350693109193708211922887880169176989640156836794108799257021068725240066041030743149971354218291279020893711416429699465607931856604572224354115221845350187821370083843456499078152104039367320861650016725579874709816712165114441916000736624461508628387078210459484988985646934602072372867841127820306681802478351465544031401399740363175382033954684758881419404492026086671029978742812746694145975669357047922531461679667705047820517833473798150609437111274009966522473285165694599859067704202411953439727508925653988879440372991904633826347215718931176794813206025012322825467318999172068727057536963163210663381049565239840088443612989330328093012905633521188810258017713021001922879476942337594552270933703948466352912653872414013696537009098491357207573782861891441811124098752100203331040393952494270463377353961720319530925105707388876953245007821615868099343250092331046975145239938076944803081469804989232032294623940510252456551883552306026157762841500372843782031301542526211865994234614808100622268424573459847160118444555912183288730979088617837437230733562622169026209910654116647683700392094951410915128954250460378618931930467186640091387743987263924066865293329346449972262384732333032542658873152077732006344415157956404511621939645196930885511266502856769375786398621969907888584751283311017917716315913042456113242495756596181530108313426908118854711072047648749920609677953003658522260093753025186074140963230431842884526293302709862828441908865634159606754450195232156677322211280824836304227150808496522405946922966791812460154767561653022034258263306703177281115830122826655462827306696125069828987265649718628588619239657673679800690268244991745320684937252134156033822502946660300267301216252332634176902187564798399573809456367507491384481435631737601355119175496034980467878809775242827423486919718266549941456254451411158057384478641264136348021035009840573046659021472011660268200858217454414791153274928683612819245173882728557775248964949185218819683781155406583311993523392495504999072864228366584821726716030584341639463987458553877763601265315027111708994002418262071316061301121914493938630254044044926881713859851832815216341599937086412454513003757785983517474111637391399689540184972343946611654974445406088627447317829445002166355408778823189598224302763273862428120937021756240883280827306144250918379005251192269354690751274124428514770311707678976617410022015828286871780788014248328745745499676444514734858206900982209903996827019675463542814674788370800966984697680088697074917967485006205365423073455131407259214179994260395677904737116471256462107993466510649340924983500253103053928160560220845678648265792855033503055973924370308789314817546005193769920365406708074485026391728336398819818441012896693291869136739138670902134233778609491284064654114964502851266430520392969004135173702007601451611491577398974296073232201032168371892102448878815417972550220379540258288346320675816517878560483236936460130198949967806938188690963653705404432215247813167273909537066329518344463423132499934482951930482153395417638998588740980023588298933849543947524546015353458895361411990120623764439227970346660811386953418245978871486154194791433417872566869041258754741775760968921303261170951714206647938589817514527177306713621844469420241433932734200683647810734795483313801553866516001574871781553371906313371256975413340154795643338582595861998378152034883437745031935716019695368693385150576228343135363324241896139928570982178246872183515162541942690502650290445949208659469497930910923316120541366178593478731463160279614586552399230995385068314004983885091741261868567459740812263913141180724867876304455610349576232687550203368821978819921531225657687672647955413599429307578795710194412548124276291164919829390475250551487546505804692045487709270315818313597686465822583242664896345842994396706255077807238938162279921016941954253005697934281508652337159448265014341804723775373577109621106113474331386366572814362588527753130550433222162222825552459209801188463277963303794023665057282752008163702555414085240288902585169547249176238633400273883608098759138417853329213514250129338386773061276502576764260277585683122682327678465685358020940109346509334466494291903810083122943009244084818583760572729359892221830580778312625159805104126120141051034030956999521872280518392808561654600977028925579384523210986518670231323489451968503646871631936934381171211144472987577294356963495893956139529003729634984688475371062989372098093888494168571616221565512744862668854284373631312197630565342123515060098347778020251375254231246707986591213302435725988285928392905856570232337938863568122491585789067142343817125142376712990397022499158751180784098455537670478323980419905444584251744606930567904916822223525237096917434489827536943703187030184167404969422500378418025055326102452836150590634983235455812290712197819765699209148091292074859979920255978784273329167597001943754483349375030233397583460182918708966740748811157008755764264207158589627974012810222110946139409545140612674627122101699934357775724247201722732643839002104669520123558690621057635892146944212068700270801043058104515872541231928916098536370947466655607498951569934334824372980616125771908030831773567102779735053675759391542613097869644512957160830293847785787617557812495524476941715293647079764832603601494716275649733438675598486614140222174202389061462080075837620323006053630876861192220844905438146510347691741678375525266410503298525875503680004403725595587288223553040140739406527961662932790092045539094860323385680427204485208629068688385536349589849720115419925127243561031779914086066941526616310258476440008538197257621535988613037114597830053669391018484677491996298328641167588661136974127917306637267861198966191101042875983435348871187952296904480462890731940532304904885415349586762650327809842082594064447855898763145198883079742817453938749836186003945420825121768650201624971509252740049090267913507826167755397154494906185018760324347228675050478865966652102396456167769079645929486950949973791626963317750829816516096532811676120473145300919211809392450946947986980091281908139171704350645082120950655508574113683776920025774221609501476032575103997605001048812130684189688059645540465976909913612916243091252826150926464039037434711406236821509589876454946190758604591370568697966892744811139291859622527266897282633931767231532827638778419005474853595467632528779321234138896447341827454631988173085515045175167371298926672576395915361995835644997490824503134314241684334942715721860496110820696138287035369770607802233283189926868956505240323286653385566820396619481149084961249570188814396917924839025212827642765061288293524068991182430414479366246736797575848382017644499335317193078237560288892279097989896797502155763213456497465982467558832803155993885825723899515595655876754906573399636420496021239953270421367343626485598624592243681277398318263492460993174806908005508222487712015446329596955434533770842474157423376043217513780424620755550801642707574352336392407340675262350376913725973592887285213909557834393632594750034754012158759047402232852410163258259054704923157526737385079969914501089064531763071000044615494101071892316494009631961731793021188925001780438742397509503810090510810866554189774736631433550672633998097731343607683475808980705917770073460828415221741045829542057214431312348317541102812460173701965132795631060545995783543758873329413805672464104146081785382681351700897926660347803115221154992053481155991578457662598506653980097878918871087789637787350217669200514609424850897373696799205471655804864148700246666341126235542732221044289075792418107231506719436364260225483918459354503372294164449454526635879323367313093443632802865976706774776118532133806820894276582690549757896186223253360095264861441186807514365840919628728744242482046007875079477029384447826673094203770583588298938479018982497094238353151400942807986251226013795308147673372585442827031050124926206167225587007141577721880489787289236728146877078245877218018100485731842041764326496006665213900617430527705671736035305702641463973833327424158051648886558427474802607857322448944966674812939333821123411140091412672466577460082814091979725986365739756773372203173814299403987006578534989465585636712962228004325860820043798316156590732150074300804832065917713646317558017531698466127035257829481735594004675024383379676404089359297987545360002812215067996921119788648325774105818279466888744886504529906889509485077914933674431268909080298906264761740909274025047833146128400849801697294256503364120929992854904907896791588622592825308556839127814813617874283060807242357969678901629824263655124052639229159042272652235783460561193012691045535811987863008368815088580078384607055981383395089270635852609503045261052604808729310840951133755957097645839636772368666675061793077106912780736284751337921206499161866737941719745132379926220881664896422878524956099933710281760984069789897350828075677303078936554684967836312384273306381156043865822779127354039873092041439084370653942262821849772628757673006274528291231238005279440741662104551867483840856499968838573884245161948721647461406299463805500846100688126297429322352297342715365250472482423016608051298730444271179696768123853928297181566532441203000912688758015493792701247609372631447854232953453726787046952857280908653825272881000074022378707372335691049730918509211619571034548756170001552593334571866149421223533602991119918543082960114180263152999322473628023878594229791771425636507314438094583852782800829116002863752342736842264384428666544299183013257181094884279462875742440344208268452548890534282597564686360247196595932886499634067446648663262887920947355216129303532798853734716378586385545376932204991009189963877508501435683336694203288705285736133407683200167059123698349351407482479098024345842592949889685731464871141816090848723689791115278888519508442103380011553146604763265755880445799460447751588604149330068864762656284302324056665394974019759338171778843163585267146148068921664300209915089043297435888914937935868054314644364759246176266003100633668243584135310858901690748777098465403992577293616716172245519168457528475491117558737464732369446130618502922860269290449276103918683376808501348212759417316725382650324516019665522060330001085442396470653012396601100346952075729878525293622249347813411822592652204813843624651060163927522585787082430270030844857569380811305541632914207574658027600670131257638448440475506737772992633207302558954453740997737839187256692096211896787862926867388349050088726578368795050568239643845945281193585041566473081214706894656806088242833561003680779907989703268102189725570002274747142390615785982781269713069140544677881766235106520457936612519951372905873609056718382764128737934581671761674624722322551668755383996004541928601365960658629124991254237124402608263319668998239463380161847117883206923026013185278057187292005349662747200738232056826901154874433865447502063669584385282662812928217086769255083183672393709394375455829245717873617354700126666362342645663749962252363281249785133366161401308191056966736130656307454846235069708639536910107276908560405932028896781041826055736081991158343146372650990790941051236413971516234449563534786578139879274664084371233724207912391893418599029917243930009476726054267198057633222689133476040544007934422964527823558408162683122616694302655856935598786998395076221216041558974415079074614423701892723052125108785788118475440813456793690773225808420009308712988567862466490962797390776569587345702043396716025956551062173815088501981995831417327184118002444880668235527911330711467264621432589236739736973868020301041033854792351633467920380199310897060959989326140915302476005698689771786199369393055346723259844065176365791643995323244229657176369858319257519432979568799881127652606651955263968342477550352509228491017979651516814501858502545798856387273115342574508913184375636290713264487202538118106717507748386587790071030668132859153159975909434762379960332935435761239311933831633774360629743086436420173646948908996836805253951420913887722130275136953126452970583102343524037136298431343306278143867619864527355225589550947086146602592077493471411013466793733826750984336955677148946899504748385313266039916948680211998838219408360105885463229365661790664033687285735173648232839325771098112460740773228401289898057992466444073520987898633636797320875874711276599436941519562621170634895699867967831437328202298381698863399626090000423393424250881551819781615052186465685111346767066404116630681240625591177902787687313751126087687029098426218615136718490659101395070874981981137107086061991707719780836822237867021933956207582987253863792403256003437969422903684038327605463937910238089966008436344273345426028388481400161314644888728305284218160129261527799269181672411828582470049123018348961220377214561518004052938537747178186819488907729811012778393111662395316164840042195236202849137506766153588138934805740330990045441115052518759611707115619563662730208615185376758472134313690288239848695310611331569553897122236162066310522952741133899861675412676544707083792426130722467073896881075948539771473489815907056922062852178475063341915356891033721761076275093275551903630061457892232123446489568304148919834503738430741216672456039718457696256026715596464418714745537240131571563125375561337588234055575291521187573555029763765657487851926396393610571452088186241891767321294212902073858993882299662737366102141861873639163484875134417926787290686726413718429611090084438933305881877821426466291018005512443879388663975523737144830074905947488146831484341717882927112046340891874444017391813931857257421051786954613517636137954322623357798586635150613910637760743982411017965543394953882759115207165095557521924117603362017830148149665437518447186278783234227709805587444930447345138057918192250358334136710438502533334945638370123114082225440822855946530358781823574123194548783946865053250316046593457136110890224047372130160320399115316811674372514910318520497653108054254743918219472790921880867286922922345460009771452603386253106259613168765274459790116684402286792501604315700724800250650466174857326077799296910303787832946131130624322012777457035293742525992153206476054224528601079032683374626236467608814173627806056878964095119289567798635841734779172716059533113095488471077346654159562862720384149639880588486112072934822104877523226090681094864779608151335964478086155497033442053671590934617032909529161040761556587027369204253542835597049154292149196714199530849385838156485260527339805565137137791655797154157855282154172083536808055043242379717261443141254304436485512037156480666309662115460215852399747491291561099921524376667558374295088126613305161413461708267506044266028201566866368547585055066968978982039489780085373898286865579313188215202724785519324907783455985777514969819185740863704524855910383947835710886841798977676699928173178191301848531551375859426151179198030775533403346477010589717945975465158324089943214274493786161759943002601918908148361623813753361399654313368999989380152704337025924832804890453114030879557132086725610964019432713851191289942388622934761417656464971503667684487082459737598737155347043459966042658906732679141832075355458432772666734088335314107242150173568423828398016376163100693801454486861747625060963414716872400701497062364234643958899498315054425985534284723142706484251287795971768175351743387158215282888559065973580200204276872581383249324362356422419309961400039958112765431500981645023794503886183746842087450541053416914210694856838094771390260071604321434098239980023139515837441689282742313218203482612007215239489942777192193520261984076392537971897456257158782999875163479794724893864782779628698231334563796039746782186818782179304519417198071694447560484589761176761497045265062561568920349228460799613056631075999722103502376628510625309634334814925803006933750236264909064014824765028636757501948199613293516740304661013587430510000611128705812619024194449599148303396288294496433130572390842650457296319945251634368907546400644964555789271471403727261972914838485745145205647567178870814738812261869166089081126449232353272399667807515305064528633941752688127140587463242707138750504554363059055458245659330993783211825757624975717007001797393319177067163314250461065255374434297806824244193476441651204284258243368345767799615887525749277154659690842026435809463623556314255644002521806522298600428316459552696910973916410082756863172358578850045582844785286313862318637201738490258442396799873953585710315062651962485468960935820026556078162141775791742803097322037528453358049210829207851000133459377549198913507087954247798391421863516429018711995329428823611436647691871172536010082962892703621959732888252292459404685748570954498721584844284003326232483677427369579487491129066268475151626953823020763361128173795112856939651195890362772423575575541541388176139638399397639807153131265141378757924781994600379997634445196314375071835300889949849449975813138166456385033787702800584788614770353599358851205397230152208479564671840066849900269535639629533645068157259259379318045558390699583512558236312853606064953001365434765871653256613538184468005429662464594600216418042592906887865672687054770975788919500064879712141821845747242790128270360873015197116227803206207887801323575203419788697707666188375162869319725519167443293068585395645649084623844655701853364766295258306044252860431580960782853158444595404176429295353222180054308842912523167305456014488731731633267927399239049352955830209398893951491866951484353350220581828101664709616878207077459948352000172497195952429275428344995091501738981616846387295161576714518186638426068515035592297268057786783957195288357956521600238603482774336015460318523066724242521158010734676250473402164923115198991166829193619127701646704083096956474457412812228748443329759595031728801163585495237227149175977329665892773459809628949520757783979259122554704424149336431668084093076771596995475679435521714053454142713287422855412992793970658602177296776837363950222333239256638021689092225603637413084403561445738149422048688735498138128221896631243038939951587854635568886566689336320591313177083344234864496300905685762918726348619666806124365598154213029076989944175511284112290880439768259523340439881832620529874468432798064774491219400870843899525587256684843444483951081855853110073470961325076815007737212269675759174078254061428848127151588123403737170980466562576237735204077095451701893688524234562496370215322046936531536848054706099767002304041316376393550656105937987462075749357741497897515735898425443924323819000803168725043049454617904907891016339091224278406734228982373329184322023299815052801160478676908857059555995117407256034317735136981244287965288632160020569213418353532382898942091245903409705555779753187708303118758258895006213970671337715056248956368172925305040226975455227483903000827259593309610494540675106335237392556680216136692725925728525280239871998336834721564798649359586004800713039400651248922715380450333053052974275491954002199177465297511939871822962004479162235134118038115612483972002138263088413357553018602906719676792389281215508638720146102995336502955957058767639645279997637456909276747749823622926088898542638685367023191671374578352326330531145872114347443627134009433567124872880119211015479683005676766438386521584096212171066614353003257520069387945294018978796007242005488633354887908935016614579415107976850719310342449534564565063989888686495035079945665158809509757328501259547054715213330132318547071159786541219166044551074799451568259228837574631634919271847840190697354803554741131877240132665173238729585673245821322017911940029781878648333920375711206654821527729492423867413620360488299645875793058313262115373694912072957484300994720981515901993497723528435211547288314125725779557466421281546424582107912629644992856368550937784879398124815532377892603240108099373798201429507109011008854946253256180846189972841714813094569134563456460596322229772365068211946597624916453043025615442863727000521425131022155558627473119995134950279162812975734318709416222138036866794427856539238692345513547385021399801504077270150217512155479026409331538222266297719806729766852795598202609660453941098571352680356490106748235999268398919815969046040374723781005547608934181062060091996776567771336788585363810112406819743336142244025193619588908414335541316778022089331834775622063113815964294792985939730769836350368816058364047616344684013464088581313160368698293742732577354003484279880232297968214661210978096171756464551941983489121322259810626621210278945815687963263239873266719749685217808867482230223047036585882094306688166488341233837418875178769504357024105272522512267839708672414910366034754323470914738780955360374583472932244114058936543625795196577915118222678881377523488587589131618591007283790724106131450033817438522344580795324594236751751791861052508558619370827289517309688530912269873096177675795544914654737285582314938180813540515501701939809193087231678817196378337572143742606696193337773258664221917878795331633189286365083239039435855281865187736222136934166924398072170267460540602815431810922271301648134049961907459632952206458134408539420506350960161746845890695541715593613759811299721419704447250216136528274735768184139559934972119075424183828701676334317549865209622114045663376767086250037107844905763859148764885472691146853081955181923140638002256948082472546510472042428423136269941514219441320000190137910457341083398613139846296311780593491140123264940494194029790469733263528078697164366410306962181217486881408878459270360864574246111193410918798101721924784468482345714676707227413700067157186146351857323924150667373306668095870343179452280550965012085348163374686711044873410422947312931200719907338326600320969827616624716898719109883622807066192821592568966263283392169986183186916125332687871275256474329677766220605145365276689869385316704484017360765977904659722977269048348538450315987872271976508433653681075477505280076244037024312281533645162847829017960613932903808968420354679597803667522798665134248105269321311408696781486038304424596124943288158550895215083051686164353284412490141229345861606341461655063016528168533828545324016384149366950650219006235432053371365881068568459709038843319354620131485761846500107110247637448338272002065885655244692668833491594155148474231538364669562785761980907807552612868286296429430758325411909123562801647079916189537913387804970462772936528943005779193372798609434424129466767139523378022284901895413303776373130573768805735004450523758013090489427042676958405076383939290168611204887412710530774270955146604766498622408813823951559742554674147834568253067811943225571895320854292349672750450616464111632667265003384744117344698897632280973396982477367609779730706296287969272135261586936483011535563799809977615950466043466462562881995066303400260436078367852180125517044252315878932368865900421014480743570060034812868642720442756202828442518406732719246699642821953367543009741646430557482891828734050159734130412142418782589776497633599207619953034393046526404402864865114899074638331433454141501333483136704502338447874915521731822835689806441711516801418676421620305474322335001352146996290368468090469827154459844172004592067767166655883778758953889019378700530771729432828645375059454306469369714601799494400098039307329223970259033834562850794204871156174557479470593409016353969560442044248582261583666985228353131723457809604283725349764274194161938193643833900434808639712105045466792036077941318789620376574474116949829387363484678325601073500405378827231488696109689651024766417340242084504162092301414789868056313565182832563788444657158738870457052721125292082834418101578092741472219869660723578623728982630142396615465039321228126731408269936702330886763460574201149106626262209398356444626512848051130424563251136825683935429141863369700768727863747760487457984666995081869913467417899252615312177057271621921237066375718240514248125724389401612298721175142741209890899896966834800289660542807129287663706577984475953806118600011743767966781186073647710187962118948129037789138729119778953636768772310987417102158918671074979898439050494292494484453547330142672680475137566396954620385738363381678012963364843785940563112764853692605701893322947678650088013024451349860538348877937398149407237126505296991294767342779447411817931915658900987880050131862453524000980918506495159071759975113963158828536572918116373204714325876560590574727517450571780734341223778575161161417263414520907843360492131904664049489889005685234615616115225528727781998537453350635822232921828942875402444713410345067727333855048708382040824055619311706706460921043859827171817073703963784970366442637735942753731724535585859603112801941114509203493102380431669101174258011577078591883307439837434047972130606059066359901247633002783467320672227071915278043253997163547845910329489320686319524966271373383299260767036258973672993684148708750137649093852405257639806837714322065650417702647807149335693040806997859845993724940551026689554245559960740692124113720247105758230040731412751348789019874817751690538757280175675604852612113136287532399352012196494621634283235222884748946896435528160025614038935064847575409106033662446197397557422854292777261700660979060180823175441865262790748717223691581547886970516624598236167779364441388288506865178549862368974903941946856925547739251205920266105191295070281532997279512401064617378938355431622164857658083079596367334601693763443726710523437273708636136098105428567375347192255395164216676971494571853247395155518054952707488326854223150498574652606441528116477398473119687556138664446879833288352689279687188734297662428961408814283997600831452520558917969128667393096042134388513190232717986375906134404919905832096225331051565532241075215768633684389162509699841258559281285027943426623826103823530561587209442890184198145016366467967977924513819280070492376653912953391649991421659869644426723800413798423817632659775855497753630117477037175230247558439986613321340029159769219700039498076383385542750414615879244954955134945817500799456943376709788906721431013456145346519154576189171113780116620014126039771533195863067347913730978732195128807968860709014426279757185664393004334234299109324542397539729660149460465882199495784029112668383632324456898177594997417743160571429518397334990209795622678550793304777761430440790657930285224607615292765611016188470580405635048931915845408567962782502373103527516354706856200408966012251964677641895232384942155054264492017227100327344099743823389482125945095381785560670398053628483788221136298645108410841464709578780294627820036859349760804126485920408116969345449216948995386074761749956800818397607273374050356990950239290469018415581518415198501160839504700882772175281153384552913559592847012510317550187241690315775037744712445093787301520634951720410491684257641520288156960102169530679835323984607937093427591411297884659203278525811698010344767891159575415270477967759531226282954114910158200245776188643268519484676910118999053396452402615592998801761757646827132493656675861028896970600424980690711387217770286076274275287710759648507130452574479494029204085692904455821457729356550047723478818161048230082298043663700713697740290120429993429351704683434966631850733065940484103727133478580361891365514410927783295899911078514908051244796327202561435656875896265433612441814927181341591327479497419375819478133615075998718741753465128376235989940863466100530172628512701772446081989250869954682655498961385956249335438572854819707094492902884239989349721730512165561308858434985341938243518882119438796480317398736674397064131972723916719371237954975911172333595412353821807351073273072627482504121122643531118707685596234508567494701608810560057206529101165228082942407937794107099034140715029426655374983976996561610889915120247248926511314872585643751759770338630561375810731949971494136052396148683732681626236019195338209571596489549421302121705091196267152991355846124944093363989537648691721623594608044933584383719856858068938628850689585368494926582064732374379632025504959012963463845143513890631315934451061859637751792304545109688620191926220383540993898335173963383044196511141490291662760976635624417916212871263743118172737169854760961107850200169917324181222108822875897698429397505096969394967858116938006309981238822988924714891048748747371034744166555948155241754278943088968291950270249385723806951358624074354137993154740743801671514925790164504931501625760414922509781053337050729558248013753685811548431628735880309406615185109682077725589299098222713653528864665895700483177227788224913953623581682000875702817178130915206705951047963040218400814923760867790193109749982669474732614122349651363242270695397475120170618504326280724603559502474853919410617399099295963116875926070304700518106994669613626893031236480637075346273400702153900402102303421873732754319491515681775107023480462663665421993177675773715484196475317073051328664145850410905642555257591313330361596121286159705235275084351213810469377272298137307194046046079782100920577419738108563329028878100425438632230888657095647016701709210231826201417400689420287941803727188684225090144929339053727222236146132723268568179665804824494206432787097734469308366416188361297572628094189951936584972685076890523714677918825871372609040216551359932094256089685306810931026741704962639261000162757318541481622119446348479625774853842960373120841524200268079934210225830884118862189719798415139992864168611331831932264522606089203707919768295513394836570772122790293508807181915466327086387895968638217395992237121878577251571581570939432125600144615456956376427745679272050824850067299931489596465594320879394086321837944018437157186729430938956192613193930048521318109827970973522010521855661578977863781337811792399668733399223141078597471309260035797949560518416174792174454136284873918213032763384250315651358555136331966600495844193484430962065235029873943277175032069351640674638910853335786180624283207967036892222644964734041346579364464864037301992003381798614667143517905977782727690795110451645484716781461212461837031152877779274497011972803518936940819380214926350091051995612762586536791350643361117770962582449964555978102509256887899980081148774948620439607581431718080053931865942334890558409049565136131570529330161975484775549372889999923919732479305092677813028352716514335400775543522525756503084277096650763942719853285712660961103939920955065542652293648262087106019423868997927067877680127837206810073765737716667880023862975815389387156473819153738012857609158176351454416457923894374628079131174382706297419725527134561427259539311212978299952457224378181019067712813254064421515652120489251930278795628888112213090183987394228091466379204988865247539733130896518602892678412074834556766338657647196537121139816297563282435342122404085727074313040471296654783173768751191538519844999883046233816348307531166998188308648729258905195749810176029970124174408753524448098402640255698667576253970400252086135485879754445288905234680839505191605664374602078071487776481127076119568679258368150008771857916890150901851868484951567129900337497474037487017050333530642532505851914809990005795600076272808846728993024619474368196110100473552086282110540435246375145828376951271496217849910152783639857748265720517246916676677611502458772916870487346219361862132340223153575089256867473977845230628421954911009944102355705283197960504813562423388036451002604953237198401388765770728845497900715627906205066478077370992666861416820186988306031112935606349925511745218321180448703416755825503988566737557592961634975144622519955909391332329348902894150724677612534864199101992481710480007895728866441924515531610195538104348351234320380981748456040064265609949169878367059407018703622634480987049169198270974249898572532822971251769735145967556874926302654297271375775156996970718944119278316774529683493818833160889484692644250124481608772734004623204278693222648393142061042940848631733444839906338643860606876512318435404502150718787529940972322691866823715896461107776296350919478062902946403571089212522432921990168076648016176700886234024580944632999617064101609516073254058558023784501305854768483011352811727348919538977721005636476747269818078915382532171906457656190083058433232209183007058652933988067882130763428807181557194757026749118907687190413579432044789222817751967255520973120130758353681958803074888659839989329367012485065005268434698458362354597037904389538590675119091045410230899604144845546948138212024840175935523194766311539617277755516635729010883134164948132252972031116224992686133352145000353262646850868037403495496310453517443925616109411154464540045259244885193843116228447702062068816173252458776610805857772178019422953280027753803704605621060360634410509083289072506223138087070354699608228840673771340993813621012638054241269150572436325857365450196161292005302698387375657404985637463124482878260785367700887113795445366079144955074839346436631841931461302191129143117014858323266081798459027483074388321971673950301986551394744376781944654339298114361722940275967987621891088802415068906880274852653789299849535633622125490220625706024327722199858835109349883399869735824425732998943962001605573834987734416183076085689719725933157499393360624260407302717644723773600780948105864643294669672723994667039083560332301599397945614454613699390203282187395419428475527115150349917890605882701497619693650311243425571486544199240842285665068034904178274795248142181101307023841937102015607214265390569147246189621171199729523010489664071726612227400842886796302731687888559799909845338844524988704446408562102213662605816082245778269593305097336667356990155729644394988201031133223750602710517269772275762968438721705993969761365375930663908597237901515328545824996952421253088983804091461812713371679586334911102455449177265302917466367702588853712094787564426294441589250719187125165294269938970342513029822829901662297917595136536809299362765249111091146741972904239166039483102731165761720749661920826251991652849789482161909410182475016657094206713207375882139135245616185862620432281646295639078254078234322859672958275404744545130024618815243632514250813797354192249123769692973225241187757908897401938226809214761294745987193835531034772141993072823147023986679538701828416299240299116016231124759437848505327792557555562927705387114380126111097589122983658724901675858494767023569984652253152461148969295645618014009639728718072914303620833146706787633248711073881559454033099829172688631494879235397672227945706270785992878025389532894975016140557872256803091558178794927038097092214380846954640022832976245881515289141911680800744466597405724810813098166936313200761286412259747389077684359124233352313006959398958961871070947459310543114287363503532669981227021286130359585573851567559501214954733416216592769260052074202259408189805184828963092257204820222301073022713136307591281012724288734716533988877824688508835256538305152120353604546422429905660780915313343770442003164807057988962415916431586981681051425870603279563039095677555873744854915448454980890732043446817690056678903945971551836513502099712269857012729942872208163399670440301810545234317288470938681858599929325892801930867960312704007026758804856112114565319652883031278494877222084378021073183835472763172281560631665722569392602304742334555994280448719240893908030394966166159774828592810187558025002159930786860477007880223600999073251732610475211531830667892256423616661550194629549116932666577780096435855524108069862295175131997240487740019035898810486206075148407649141192290489347379126172390905380430152279272141919409245550378970222223238533475402378026644752132621498089919525761831450034685422054087784028218645974770494030936041588606451961317778906334838826702716966449186892973202289318431818243255700723077843808309508494319374957382645545886005675798847481377872744368442188320606480387682378328515288882443559609687085476299324682950345420006605908825168289192398094479750890254516835502213654916486116413301550761659565736220953149942897374003758728491036934397692151990211871934899748637833853551044975953754845005391681457330669596754439054578328030275175991680442584029813793841356365832748670207733012887567857839549039158500869352245847448133290303375148695060375625408679674363600284125982940189809450430178731914202087605216340662191144049158530134724343557115911934970068183784506392574570849321147225558831827286736766927894238345169379655389518486583710156554384279044149549572116254007630260443435769207862396277854747088747930014195083231271258375960069483043590147120063018993403402392636848759368106492546434460139153094727841334115985529013941867681062236131449706628936748625245426837045633307686010558988626007114952971601469725645097665194958433770994868044995754107000152992024733767414046303361200220415983905832498009958992018060250433465361031575255877574766248746983737273232124369940441900336227662694166747869721517170474538945226125770720817934278049965479761411786897357043220075811366059727931412035772792028502099789446721210244690995328836191513208813640321197518608551210633445619000609753965062471687019896492677136884610651369983175631988873921018844814443347002501023056796354219127321521414290119230305383186996057708908758004387708211310990285595964578912442195552845573082160028156728306280427056693990808731735952782676315512089215612528722375546739197376866340281393825168769305755076557840366414031910131473069411962249971412483379030049343727109428586854037427660951077029851176196441302393838679702360784716957445023691656421906669078292269218655409471278353461596658022717160216461815651597901715235336190157527076055638567011760872849175671405490863232784925820957724984286145263212573795895237903491958148430812954854472200663536986501141592758106552920741662310785629992324021575212036150216931687000181480932961287999048918140045768130602136991087112292713049826895346298040471008475350954703852594448067141610023425627212871807004707121724773838078803869842540331116276477996255050086310886328591081390510005541150048401197156346130612929200974288617599241608203333340153794709702115770421645295525249675557748474914712124402963249350016735079965028948703021071423835271200020725810694009821171596736703374366722732445842853684716726053168978625888819993846190611325962314219386851200815011977672298516170121554358144046987520345945657809022506968251212700978328757632344198441307476350583559914707987157092280133605107035098605878502248299076171039564417622638626066080437310702898192877381733056677965532285138712474928024282035172096286179562670915862294295447714921279829017069557771817733357728901282735545541506419018870303827854404001861395500987324785290044226781050171700950684566242193132730525803816737827736900998004648212187359040825307424410789718242159542870561545942312575781707147882519772913766777792361576621947790454122967347678129123782410912882862079517642088235965227665194981241380679726638041127568151963748283182359040917600232302147644309845046300718769675351109232709621658303193834342375175431374071892389897399829690747652505759136935333337572331602488764973271276044626674807802733150786378609821894847977421404908384041359513251206939674507891133931672638654884982172766439569871510616721407580157594539931069466017918196979715874667188786635404163105658529801276806525396380739666706946001770476593590242632595178112028998444337473740775325738911748535891746179020469924892853875035482850784981657556142264794134709497268993167962804475112070163021950656659715603804639221596764644555592337769920887372326259549636671531319301370398168664639518596956699861697633241044005662575842158397781989326978186879305177793105975417456701597665847067463560517229000824946896864209010156622484006997290492447104564887568292264978013874406168473843393142624909506518592070924074329320654587852079688682907520569785921949069676578386172931300532274024346798848850190509550400453302568589470189605421287878106063154849441016511761170603690399881620330568466189576120756201885391900040895148932637418193853816104165220223236052959900549619594335911359775368550826906575719573586127657955161676786652178181890908055843112579511767932576076455968965721528270328422476544609133552395184375874156783267888013797846905372202951690974293099152895447152225939736681359811603995446149525414226702547599004547694186827928120669214919599952338131540078319366831563725863933879953199854131264901009449638263805582167028158600472997234538968538750983025550582266775716023559000328053523035555814749782320700112294445521189235998345179904738789751583859728083790848333210619106248875430278489272419793331571750408727044841634735707496462880210952036289632667690667131661251834298585898164568622925460323883771479585491881899860614524808576170827514073262092903748701134080321787252004068567690503478452876762358652984105119835905677043036969006436017651255920452149080019497973949889170977433628185461795898339194989293254989201470589268615062250690035378376831943859050251483172337132172628736406926216958270788913518961184672851943272328550094740628722738990151039408988823337613418825734345787142347866184778583843293472666461062995907383756168974766531699506466648664494584752527096691693635066224049551229883237671811477626940630156146992137067591408561132431178401456842867905916304699633611336254508690515215311533696600395062843550494054036748149980175609929959395442139020044000026689558611211111775403062518271268939283849294911235659206728642279309569792479494829800439178576677004105562975578239710025134775006515295009538439437841002051376192215303317616958480620653079550389665738529653041112729335047238717058967003527035967984791714169911806676297515579614992958273330125096728742813860148625247029156547645971745227959506248380790496976199262641169277356103520779707088220426043827975831898991584067674645479286610992498513061922000479573262460777783718752045191958189692246468183291228730585741862707543261048955399834929843065547087251874008819744107558921320086413088789210393041097290193288511345245383721752611895866831662828155567164930720158732576649156310997393783914693782851847213543871145288620106906304037584307747050598732579455051065343481776629635789699751101227369855145007428727829318415908803872035398109319622104928142259026712702948868146574237359389835489061510702643990567111602730084472132333201618999742654746596550488818696291771321664935185597198553890413127945219772138516463757840512008115730206386846304994625372747295936164371432824970773551920275745246951139313839350278965881916267134906281257827117187770415319177124525907200183081914549080797066867742006354339612052215044011454707902689254447847016060699519008546633286436061428679862878834711012672646100271831799903431022965167843347919387654465364161821629391690897053665061045696920948874435193054602995764314306720126266588874460703324781776214077904524704266919531125285870573750504756158964373256235608868774160612128061887529618003315811613725423746721080857344477331923033063568575332148467506136386164302334465257253883612802407302562286032824532512810813121108607672706296181941582581318700898646031166442396068139780604765472505558077293542216263213717382233283380420358663817580184110838403313189283900479443407156396964392077249556633577850509377946645116206782179304402628815322050788561396770500672132371260221899723003031976536910121033226169672499773449331485997894076705265099722757603199986868700970999895803484043502182512208912364187107863974533878826725746211532331127969430227708982281326414242457335692566786088766851937134197350816425430325440533278896562736450857702582963456341440573046523594237867845284889571172670776503081123682690201242986222575080739245766998475072771771613992022479372588108633525460814592589011965299864178870745169958715467984280033572438240158125632363104314271960570403630220011501032104100589820166021672073608892750205165112069230661581634505038157127083969702884845634946027550943119203748489193245094768360481789106026581993585095379421724768185516892101176801031279853774016987186400528893796372324563887340181172216473906253799632169808881428499657490903372639861023945297855539899273148632550495134413400099854010088738914580815914518990957572039128701338375587024902602174773888839421201991437514954326959580186843481047203178426466931246051900989775717928087891022084523056065463960246797118664215758489036614684370847206020927095383958641454282170061104920242515368142517310922251902530921147645545781872169651294238905628114259800011558261864129156333467385167473482899675338757990171956144555484772258835380142980583253967750759819118756146986361446365033318018322238738959538431438478708012257649340292256156788051539990066353465410072543236812620089803714039741690997339032789572825147160924775692692605503314345960879300769697800579191483657768922673016563351959714911639968868847690048360876570922272778969094766169729893163873283903185551713157358002921440414373368683096748133046631127115401927523950220110626213320059057550975685495122897214353161446328769231776126610818614327602993026186943065451592264085608128797728710194462801489651465121427436270681431318030158363949354348623630269001691827538106153472383148900539921198525663487471812998115152950618176773420560681001977544147034608131835231198544098158568324341636149399287452752141249893136480154026623174964258460460779972068983635729940363066076299064075438534132022761293811672655429649099268572337332814602643185786720196568363245628387969223251057163178643364780881177468630156414121948283949364322550312306746934402469300596233260866552224345013952453834860864056229532090026872384821208170297722384661169591968880112061470787631803611505309399643125976657922749217905007634446769400410008743247136374885999295331300511197201403251572903965569059352972227434638658322667229767183590700750737536238821271413402117820325737508665733013071902608261418077311944955372024610966641288282988776510087530151129174496339975970381730716788416516519650786433724558204191646175589967477286384337171090115770942362085824114141050227180058871392657097106380037760132037137384776951791703366329230161868400825109473863626211228956822081111194075455329800321713967792320645383819196257116353870775332812275379003761060450848027414224260276772930317197872746984459177650228128069635306091454441899971658948639170484463932888538765637785848260467445234861358479962638767304753178281796880736703864710979824869695786144331862177210820576112792227632598228861805859834811931173210609728252853524113783867569935672965162244530891614025774523731200553801514059761529174762609560802941402733353943938865640854006850537111083940136243375092613682582056327366616226106766975480793172519017398977868089158422617481932821602283354761276185769646940823983881459535843831133021297584942631676557904228545956435933588925463803072631816146237136482261849931165335228334596515229605737584883169364195020480571159803528914570963369097070425965058066920973335819667702824685498189088035052402422811740037827616692629776394151037596782436024258811230711251968245350132772912337902077361303184479160387816114370795296244552463177249890334416922502860121810549167880795591066141153455587135486993404842883253641563409180538905513256201303506513493786848550649914677846367025712641757512560131444086665011174925165928886315893592631935422910761503372266964575132245398504130282440787622374381536186343123002517296745547184182677495831335075225610250379629063970255415031601453531473106064269447805479555459531241081688229582193934372005279419722272496562249707051770180939189056976531487285544737821054187311030863170406291169502906762260351108572608941522112314227600986693059848224818762984694209061957072096430616948355906859278126539436466163324354347886444354724182663850100997189727490044738952266511462416139444839079253225612387739489978479746695770549989308468773754443271631776221395745652105709641997209475064706399791283317552799018966475451843093621876177625567678883600159853694042668841083957721940959821945274477494240060816731570599779342119900394952000330924528689279225682838235289956529395143959471204036608351653729528096036603678623781711077342635786474514771166183956146702746543384227114125923377532448675769144346672482130023524162774877801344897665052826972156289360906538881413505478423715080165158136319002388014821336845297455431911982032703135714715564928454530600721212959792593558327050028597508283704892454810484194450634703091105629328404381124862187153470922982523117914521725736546378178601815661204039551239824744006901316693585182527111886420050966639210643724999516550323486630160277866879992794434861399402619810011521852064952337512797026733236530106636703541062298081436501461422540451145606292822684550809088043839117225856277611323542922548298350386478804949172536221164781864873918880433688665500858468235229785458228265759532330355442139227139193690565705012983336475957460501641721261683985980696567101381350965597041998449282135424854020827378052705047536115027048902780414067262986821053076873524452712073885184291337828826443531335908008227885764979957119339794318086081955296112853656595635175022461817632359053139737732286717384183546334768273108586900748017380524915990575961175783777247322202850666503438515890241624102156288723079353135986580138292055680212313160928249846693308926585766317018384730787855789317545661937570366862289000040455140007815194820148495650082276454413055330685099894316875834957720651151418632774751612327120060401441752160245968250690086102892531660147572290045638178011093881535527850567008662818492353205000754703506850766991697409330885947470485573707871813481445273842864631409751328885105817489852050965882842699240811928246874328850110356842953422088428759667591114661933254755966607958469986655526009197461023263162982146580030322426727388266153920280538080299324684123244031699059143106760241861839462980474091000018798615976532677573113842339729667188670936643778162421090691488671119121656335288196676611420357077337863281184218247202974675646127652618881766492746200583976259181265674150036165074125157988982239035703352735891796123853720888440693397400896872385777398029796066729297310291745443781982143941866837062794878470736469392366245099018316984967256073685181880100267958482049971144601332386894078216878153660385349231783233446948130179124452987681020017858735335707142682645596317178859903167967372433018354247540732384128265122219791204772883067877546437052652694719993643925642874136598201503011649905846133025881618618175765299270996327533438097280721167974619896424027788856883679612573811535033288995686769922553262196639799267283381786289131829665327669036947193919508499733347255668893133710511336349552154277856197417093308756103846975473384767819100127991309331850026441579325996474439331540554978040509638938169713924062498864823361856228348131812267307672953520010874132240814038146228372180482464887544617319752696703319002749280099471268523033112016526729396292481254917214503566336584482769869488306160722979509248725755587616649148899509588476113747065904836976733464333254880811924758149983657874888668287246460245888778284139816933600048913070094742177582849347336716905655231923377712500880878345804676242679801247279436051567567078580111904217461899520991122139704842837959189166382484246499976357024693419839037020138069311073815423822331588626679372509515708777476326269622362446348952954706259205422696868078148237958158896239388057876833803247089720072825502330126451483788581282087221198818345873447068298880308405126180482330408320825960745368461328046318096411463319325225907456391609848206537440222974111131348372304075864338900115079386743533279682969679809056054709809989418353651437142210002428892793002138306567602694592440325800213154148860943705158988331991869944292896252776612463898545836818090646069288907541383704795225851326584159029220473703471226448042003422566877565181828319740601213834590120927121238421090407395393734044719849050874222834585193153311966686519540165229612893452520865899213721872955058389888155950711939043909165380587440826783876875598389152273683365499706155085500641004850907263402277380972376706894375841746792425503944812246994779309667361585029750673916474591561136138133622029242364940002009636111669722037524348250372004383306920910132148967409176564064061997381058480757684309547056688828378079225379142731940871401252358416594824397030933731640532328863474025437881761793368356459120299456876657069491738199292419841918540615391999497533697464429464771844130237933546469262729756797884385319518733755173925200241173769715368921417730103302306717318138802642102052314958228589231878778675359514268753989807554524086537304323316336428775895951799754632077933816031771595358111728103221187746621787622950661634070764222861865617324508509640475292288122031541690062791818137115419320029685144420494965476734436847962238674119355857265561960713601787482357761344985405989356151825406182415927805593342603772426129201303266349025100072745188485422441038627754088372039508101963820773915269067638972845175049114393262535684418934810766572558573487192881672700983873329723238865438676854410935767226068824470709475770934165794854791439630958054091504754075559112169023936026041222123052330205319361817608840172337446168623078863272127966871152826276855108774201202423277632189214980256512271932174069052683618097859959894216990173179476995645988044013506740023395830379135014424757525283579979596422294646028418504487129165927449303934358894843060025967492259948941548034298647996074479882743107039312599705903187085708642775595130702412682504395569458707616895291948580456974077470151489310606250426047419610815731250689031295486675945874791128366925079906047553957394969217202647805070738708205914002492444764025120442324785475578079911647389931784246901775381938608616892385596612963611733722640685041022071893110679662397394584525889671494029116470017855412347580108180851629037823209841220253726892666187037297383498566883969552248324831521789923552077208980981095012282368850456877229247851661469163186283975248787832798075849903633858872768451443113831925792058997088303447652463700526932920731501987697003210519775981285532697463028182532557476406631075873098690885800879561924957986135794316751066068353611923103621072086205210263339285702097325964221370110497035734420237289030967580523260225941956929338690031719184498263480562851314761402947593026204912451567772882350774950993887177409917018709965617525737213047472136144232487018842738846479081656642961363040733293522008628676203797777277854821581062801778295366848727674730006381706316064212751522535377479675188102436854353136775530711828919877789455949803854346172135865388030507882054335613938251886429280372487213730463220547711933492707692084890454523108566669927895346093638756476587521723467671641903979110119100014370659943127970423895998714810777730885039560346097919205853113918416778275087806930924119209846294221226870973532782007253023844498269535616946672117208482454996749692371101615033089859828667574262384141552261706797718077681013101677379942992677071439207975929503968889653997957375691834355598078788878688190713918585346277440699396970380333281635459703864643595561862165614217677277916052225474210674279246149198063787022023582473734752438783935780394012753204816146846026775179207235000473334439702189047614880291671649749657434595945434072738476066378583629712396928557724789001505090995522297174664432523252464004405248049913692984068126704646176336779271676992324933492684870970556699812553863613741536341254756875448829309977802507643514896377271984374835840867400467056764394424827959670102796645913592456072536385070492242658143709677720701091073125649250502966380283441264942563129901724811457576204422473499537094204606113705415381643952913154950473952020381922138345781816796137066684173449926346272721980401471244190117037563363511029026413629627167313180268793834782280660568384085674878217107504573911799780398472934145212977642196738975864335566197688936502147366585515087475139218023713582789869766300274135305298125832410023840608751280552811707781737985392253470011239305034336916042008122004645620385701433492238873819548652444886176380154930820735089207944973475136278537763442108489946813617294983241795265170488977929067257810597421498147501913792109835964494686702309286101598362586305182751454257172955497904856357196531748185201097290658507294523462916938328386697110246525477092557145682235933621970427338376606299475707022293178303845005568700887795808217596298124317108804280071303078252147387447265015253091559204382941689547738218850095770433290865704995482970341405861149135070679325255411564112330274372194724981414137159414055710507010272313146839692163277913215793694243094848529941816738548689826401767366298135524609039196321278247769600006467941957785751509389444367091198098543012201130259252126341126283301841073367050307131040401534963756878376400949331975144698035028820136776203630329503232274371647412191359106321537738675021189277627578594764186193983749608002922722590866449457085639512688357651426054419149878754238764466661272506716495587284789072099322190394031157540781042255929621733009912212864523742303569325529614655940743122023779323276607869893796904262496013011957236634037421269854970020076946425061369805071680155444796191406096186977969319977312653834725078076373912566395600569768735612560836012020408599193081366483567088401612954331852624480665533368134496775207536675913112699244857731918062938720312232749332201960608734555026428938033685673781930727992078332100877928084724092501140877357432817497316660330105800959791898427169117435825467913194963560144832127596687443059492161974083531189539257124260714096126382121027443066371323236620177288025369268557502671191722257574152309718839292353988577835737156105333800910843100342562643223683096780144379923886975491454175286767055002547383205038103503401149453377863400353656809034650362006509060017761150676181846465968927702277666613683002067856926671097225618632970545665396239134468529773336510675242672465862209759274905593282608031476976725371342406604090239392222630995357281677381967237315047782782088683705295979653324780022707280123614018894344191396557394083485447760711389292612966324452639663015962887672068140099248519221644415395167870830336266367322725195209770873287957998154415889733674751170098115743505535876944819828616421255977364757253094787644618462538469988634271827350403849791771451953470593672805634153579855196217077712242952763360297199909384435404234307981074722152161817689163799260665491255748666474027680494945709245238789108284519257969749455614035820499303717355629315759501608920006286930388881145678719859179016930065177037982897447331746676144710370583989172766764318346943960018660502907866041773587962331085796517799904656131118697790895949624908531748764494113531552297957025130162898468902283701169599379858058046310180980056817196223077958124431626803176335032807249384946025228380092881038613156150745445252700701112286496483295271451359476573871420119713508915232776862517853473475603945551998078858360494316803031682408218755243445231630215585533950086706481013292462564784622202503849252981989186709149402665935305571105562790858845663214520952960092356343352464722285950103718741685594794415941174361188532082635330079222459883086314963551047230236802489031102240670337200336556480836665261206345624391190205862079750478905409137566184801569584400745524969871991138950642330215904751763881430042981111134141159225121702506428273430068666854675391515652989846274205887580913974494647885556880854697991239752484101207365438128403131242726847331541273914328906354121546245450298486942283616314953153124671224292248386339359525709273345942727552502319355126478149837432338449586797504347453454969332964932927241018474767419145267380703327678355632237992253676926737036733846369263504199756678791405702798696374458462028586367383121737993929163649751390960429557728394158508899824152160822660256884458672430320299575481502081207426811617337654142857143355490713068931016856904282171808080520760266055375679716555261738429349543047752071200788579216202352851363955844017641350605833658244422916930325186873324908819678232906987118703583158704860447915363956661859254291570679707035333600526964276744481180769244712312576302096667942018988212870008451292883149194497217907864226180758279814277037670614099365829754916348544803876730726565415035923074198455396336092860122189777691219400104762267417983096890084920911703028449771730464802000655944460473913083439211419840440999616391125261123986212664486913787345741772637449174795183536151479886420972914896319625230997783570803127085768539930691449260766792693341842777745218969028741450881937156394437832353812222253617498747815576586090646989844185894468749535012168200225268132958499510808456459015244748940237690311397769810709574787213449875107050987809534716718290932172076804755796799741936029447760429979477192629982086609997082720763363871401746470085727013740722137453388102502240833552091473293244171735784775685469283540751365388307718234863673748242665176249566631979832204157678388317955854446946452145005147379078030478124971485429798894783638653581147092336379979250834548198397505162956882575699954353737834972906370476459592464593188921831527169318174328347150114215078487794009015512810871037298910130229740728789561245097016785715145652260331909688229796203412504445546101335860772704052047862858645798913001609653132256520524969434086794092332939690140827772643161860482414260546185676863720662688048057663391856956100210253836597397147868669643451267356759055017936501133677296596491654209658269441864801262672821405151447501375742787791292490467944732739617365129962309292760909555859141220896459694851543546896308815631684251578768848994483447281853259839910046862845152098755622978543281988062926897051086075423063846383786344370258209473246186940644231976718981129787781880490884398727179633955856522435272685775966194298084648337368321105383892127166324149365677290178330515077067221515900404393562968389910646631211091195667004997373532129908469567156821657185741477825795082581156094493812455827421227542321002035901857409529945565924703074894530733659217593439026878131106606525607219239604562985243816641845743512416387235284487298803433972123318720957266961146616798577262995735726734941562214824643246947426422715733097067031236925794857126180566363933880863013931255769187707903351016986571936825328564287810367004356645434518462891872996795102224379547698287826192356386851330705325418844610142239025126509677647320953110175047672576388535461970720700608741977193160997489209502083624042595646267566038231077279555282721924174310026885992403672286940662647593815589459234138279840660821241373376070024946058974219989721434729634374096404430497231032550278405945547139456110227313157817262004017431244784066329280040164594060490576663774837687964317584500246005405858020550481222580248722670972892838689257128833593026589922711775722291113185442635304939110596910849984366349949248633190047570254544752269804880926704198322107740240770323099134308537309918283736335581014320083823176748556110597928618518345469362634231584573070464339737849006258663552180579844582379913890959705155380062570052760213389185431796126027131500606210390308061553934330456580267075299931249352102305720638602174008925913181989946237428055674072020951612094967185411865176888611204365554363285479026746631474341149600738207942791937087661605775225285916056383152720807928119267455718937863482482386165030880157179927190086454216785419474013235114133632768786685910010372240161479461040604514131645548024573218341656158673414436415375865341848038381298193118567263887713799966617279189026346574695807966108205474075146552946186604215127900413759840931795836266799091869513404972667127300803721418645673657675406442219635585853149629681777053103116961090277511979467036205640149650384174582262272795443878448896058419111081851051878969693132733283182544406229567016377078611120881092819627642609339555548144879180092975892741676594933499272787591154298730036697567462253242100571728474855359531994629154527990388713676124227638092542006829646649917520287264687728485557836019483816060399844773396518471676640962715336777818977435007029110072128082319425970615520297598367707438680229359639374341177287808090188016675523638499462200045843733612337780115769037025293847489012756997186541251434501595085748678695459045115874259842998528249145939086789295361188097021264514576934447366095475427455282164295379586923902474912872480328643489259226724723013436207403969844739949725090829804566950026020541043651691758347325543015245701700355366005102264408569186091346679391168173920395580287623910930046581960942337397917571337376372549440689109573300468623534850259236549046958492022249023400131116821896573961641133716676647140232988449015548631181324691311788540522334179014970174399093699048908055406312393231053249694705855482601565492326104489412131357272886703136780510065103284163366264184063044080387313287257661015902724302357555306469936315743940913308037028469362334122554614644830043442866967817152332221734605033531870890252246893883345133117174727957089842892041206741407980249844078663041660175771709076686330236825936636313005480485595298323378144200710949563210249227527234456283919281260250906084300480080106326147064454836202228563698743757404731594433042629443456760975919603480831704748430864510243285482269483335092737376270271395691596912589777573248601994964875259724506225375426172359893248170073421812910457607758883112370583591755602370347875065393674361488072603686705941528839140290501577570030909966136941827692941158517720942010788908754777754546215714640766713595438561323964801435947423094983731855862993949759094965126291699636566902111460127169649381660870193510273520857304785917507288559462883215289112165091018410093664427987065225226660752568075641267394830074049683962366912753289228251152162862408090929990169205205904841623440266819984215880307927488204942451777465244643061369271245425766174333226471536634149369811034969583731027638941663980096606237815885186831113204542548332595232148921260876847514864894892592327292153555743046668135357666200453466858727155260483535230295611133373561665861547767658469349065877627091530225968348305307104671695552506659472029694040656230006849398540205694587181711242984689982977757875429547701896728651770840892887998650198205738290160089361910583154899251590066363673974309164707324922406446631816378589125368951431257899517277647590929937752841176129544611874000610558569685681044362116576804849546956523398326317123256193177765633794819060183254263126848895660014428392649159371633138836215128543665587692295026672820336333997018846656354370182410487599622131080687044575903033657232962502378870698634872608359927178064105626286108540698109184173995220908061729844938354572970294804449990101795011274715576693322612299235606333856188145583048190664245209149325953711916112171125556474895834852911256795357026946981187152833764685715078860273515132706613861343539528828921176745227780524402962786756087639694955514524114017526599533917622371972158225928596495969588382256576823648866706818129641332640242075437810419451204148512184191434251912030458999873443386258981102723724890420519984041880676915700264253362791522577841930423283672711740027815378402468906060555772184134351426043017211113588943815359341172094040837583797361243662946257507121875977817201697156122801108011829207781353085389671036906848228746267720103747187172488385174382196420365051356894283911890878381874157333729051670570672792429468833500310990716609170110678870142775133717337820341720187728005756488862880783200052366202219982139066813703671306335142689006598861445434615310038859358486397185867506155358127236711283891145175894144072157250600052961821193996503647076281106851594490329369381165100937854490214902935599363098646073347314822943345227589296556195270930088452809188018631226930142073819082319879179584907419872780988306491724838612615847509306566999254811019166201117161157206108043222020989435161025061965043134531640921945611990585380830173554477370200509338024139493127374395258230988910743857366639741296260896995412514242428912701835646523857105236256895216165783677450508843508389148482300853280684807202674656957556623391016330893807366484072971534359614185590287165226518511652188137539424512320034588748138214613268140270170254404505906793307005563981162309364714374918689938367576014732557156101710488069053205379405422321210851892112240106479554515316914347905483498710231211084346439828173985719357433867557117971817235210740573516959876702318790852637708250229410964445787111756752083625983789447019718171777726616489660400709374240319681156167295101124492561874464136687614464373823775447202235873885021835940439851982308902418070777617846585446737490173626796170117935067255193704824995523006057210561069506009574948026544835909566579114509808823914291530104101232385781015268007949440794783345045719295891593479072289581986493389639580642449368262685162188025271224690133690525388623760805365347606914552519003640469767468788647510973578076320268351089869515474151129907906894093007601435381093733296801660675895730009526996527585086866649201008709120842395735479565231216758616202743757462329633629897098663125559781579056511939631164876528215543837188393099998217546550090296440801862982910212590270268167465299614856787664461470674403323864921998789300801790171057278160787942467446529199797754871816625312610931590191733299538883280244009998772950284803565442971161651924206519070909337981233279228140209131017484577448753853703815473846760860609454375323636060519887444573709920760795401271711855096761970845667477662757698756254464428637729965388247824783183064775840820536935886940702440970857820239885938087474961669669732875397737179485284721714164867860593318271278115342594250478530316392037497510881078684684891258335526562981791173537691014079527064088986987207481238363029986785368272351292775673587262040688452529852363272928641997896709679251880944397137262751172358445654990771319712295947470302998575201495965730280770725074531848621232178388131465455843205773732565737605197054509052816062340962001369540840609541605526414078029040656371079659186124442953126935865629524764248897634365418456828946425467600338950768621158605586434185483558405850484713668475863200976416907016812013137300539179412125698001056444867399189037666608568782534058985850088588940547405442266909176407795653789276832640798217872098631543082028039222705995192724968467682242304602467828960761013124591980304205969489871224487456257497157342077779800624864991766176125657077586168361650184466437593397266136614819456466911390076465460058370296931477198909269191113927342436532524202923148105173235949213425671660639184655663732234663194589766838779629149224557110502827300507026740043549860197841424792613567309667907869826338044984269323075131769689745539088473220256739391225765916456217342841749498943635242865641079334760524661520958832263470783750204415074445615820599708183156103684549047599730903000083476184170578125820070661884803322674393830678901306950079961404369693056203167737342143103907512456419519134171250223176146924487830170254731808145630064918750329323747356423044275606064782033576122607631339868651941481117264290738071075427374611957869347733267276153578656248668381519851000192062595740100011203252071729759720423695538293574201546268245412887784845112432566875607762310927230378580918947766109565291788798190665747787357766646112410368014968510972703375658216897880566625352711289518213507349870435995407973952332418030806229846637021460010584348583694964616752776719537957700618211362402224967836012579176987977702784024901224075835650413980970410492863082900048893982915501194703292252328156718109458775783940276752160502399416584831107821943693991206775421265764927289586557825427707473220152507926896276972366744758573176638469309795001054206680347157625358527302947292938443735445917609441288495819388236019648776845898105603848854587091983173239182242673837714995885280759890314068717149552010497843361566304311386514528226777298827468920010686823494843114086976304950362648904166961333639572600293910539011232628668616372089685589380254751621602614897205823114101656178842740373398296486184347013930381565218806082370697223140832534080616999275601745219207247425487609965968336637719815042463885014127989534605291120120029138142146292118180275163842658742348365812415092262538486726163341592511121027763643906358698844230710326551895506291578372040661088253086029143389513308847988631502950874494939284749089966283551321621655041565988632077341040844351800752736833134707330417889017714176250437999288452939563226562865129313741953200066583176883641374996188291291439711038304312472800522016537329355745765287494662480556381778979957212017764534369550999167451737962111831784337698262196943021304327187837196799706499243437825060193879780191514249413702766393986718967859068794853281546463582759371832803415658180283245841543853845849815375550385250932209251991169547668901187560350077500437968076598938150971630982635551652426908187947069741223764480116459900750862871994017474674519077382473513724941555558752117963670116583855522465242728833402898069489421957125922533137623789687920743839222668670297260831715566612051592653941158611155341507383366898403829970036260115235451030668371657507262958880981221770560317220822771004171551349744734913413377529739712310571703889821292000328431223880571087274491215345112205439868451722648223540775079796043853596125322564870536463594352016111409557276128547820573814062682624029647179391124830360911001524591410822812230474862241258642779587274036453783522075981271035975647662701680860663179382709044998535867414584326742993516496753659388206081951331247092317235264163150531329582341019840635971668965786504891233561536914401328673877116344413095963507437536977509752433851037488616554854952941374189353237049034492764069927699779201443709784868363666912709447454674084357576599068541990789134011363191535353805203750401021799453154535360612231623275786785566928120440539734938199253299610184136455116044002485772753387994550842424660844193364954987105646118169045713129500908002403786212709399400572949957654765067719378625086225818427871408732334113494621363053815379504192787431794284729780086463068503901000224721152740437406530891542591728093468522415532366169884295449971377425688806952866129608259457942737235162298155688428598517717997987178732816868918727770889972372337978057955508531792870245178869287291918773689495237175021827009103323214868313607535407873615083036216851914942881134503565358152517554219339833349980918468139303399297741320882734438947696416378897671084271514436639952929239447317760970627663770618916031651616874578668712698406449559911061452082238865946745714991606493885261883800757744598491343057560770271169452153364714302292645817797257192399396695591331201324533426511415316832994609963456271621660347982760323279884421102678512694391486012648426329678590854086742782467680709304110494865460719032572094204481084902922575775325037836083424263145002547205841078775375519995811221059167927237229177338191950072724270205739462836813576335877682959091097528664118478380362118665935299938266009464484230504696596506781831218723075915420129126703068133261462369685000590113403399790091516074845522246685180382933964259972310034637342765700698030379722333456989067810941065921444268596641425099517141384584866644494023385094435373730732841370583831497354314102896763622520992378365856629378042713529335420074322245248660819332773895495968209274271492935131703450000947299367042976632499924106948877251589140092856439323758837269641910874756047724706683288675442365523891645515950397377514626471125396676609630468918650013084101500063409983545248166680204879051886822091033855045111649595249649698553565573545210306539453730661843654806106050462018113740370790825515864417396911980981907131764610593167832630325016483972720921743677588695979125322197212912749834937409839064354913490268556741979277261616834968511186369926794589477287529026113979374356777799773466540199588376674062861898592009036945850463827619353108711022873036846418331395324718170444439398053161325395818332654382153978452585279205297469288616493151247065897227318800053754570539249060134112397828168656003039868756717777227000741560015620173446088750746227802388123212487409456944331298806609530722333617623492453916689985072719411419055616653524363701556180881768695804136111171062691154879966938313610072052334607185818847703461072998012488368243977887729419720855775867233963692999169601714691170068755508004732843134908151166604070345682307755162886460942601732947588195388875712055506809684964054228691892939340674755503527280198987803138887401312592347054628683740510430874565961155557163121783572075930226639166697804072182252463023594147079722377586890502488441563151744160394513391709267473356515548131215044819554853434725851487347227345332089672096511245304829477934991278358543735701809457547479559671381762292827813619751574950225770316587069041598443320676965990441141680173937925547725881531940258393881490115864851654515361263528995674198304018551256423090991705552003101055316630592350556463540875305459151789112359244214695707539712691901646351349613828237495727546083955713324240038803959815078566000525133959553031752324139532183291737041439381838243066965776980378749982939246994549570537419328202478501928101841395720878805865517239700523216704653436011227010358839178915421368418889730229728944024809141077659051807101411396007496685061296372002701112561828670675563587378295135058749670344488632224891500389840459310420164599574268087475214011054813907032093109111378777513593883381395140503285603453370070849227319267674232421542152541097304970586008425451989704732188280652218972338349065117852062720627040517956218152804322727045454391916278589967689058056696944662657377480307777556475959650292787467371213658397357300503480611644427150891167582758426741227010092860988345201675257475379716179670742814313797433472335784291519740933246383829162138515207416573713952666260203613718144362086627080348674713867402307164047700471821780875589876348988733703828496800652108441300550173955647158451693543219563597914934340283792435130063134083082757009411129580090358837578698954515563201628944906378638862950544082249604785640934634911259627085924997293083235359964747588495986806818348417124567025247914201448280706479689651744770418737832998795384343918841691228443603551723391918923188646057552376980773959301785064017727772149664290282761327343117092305364585593972334686587544151280710720063317781312721952157041303738172356291819402864680222687953707658054245501680808630609767148471161155115442649771524627269689919379028785403359166722705483348688356933846200635334912308145198928466956288638806147698307181851753245533770176754517894104481850593987168002905161480031363819214675701627921743100167420646035949929170322880654178439375657586357093382516092175926614578802898816038810104093910865587112101243909773891973271212629231092743866618668896064786428694467968529818664245527318948178121824142363054923582256856757365012644829142128993324230701367166725179323484688239629676048045817553944966307403674320841485241880117787033169878638433108709098140970121894576459661031436107841999270624076703002460628335212982238829103332221000135556472511127962836704319663596913382190203756914892229841310523728906099666984154349606525738067744833299008409704564747471258579786253708749230823113276053049364749950638384021888059885413206196433879147664059363661388956286223416009926853287002874173539994702227642926846484905876554257994413750110207522181767838000540278396772581868187068560417722291528614117176358079015223480393630416326222377623709707600200079575842435408811884866013419136241213945384612717148078341475043887006870403222731447173016414801140593968522998064292399169368470026806083024375319291579566496347818470376028468454036472272688533321505208861821575381022980782113811752260597399228248541193993359939765126003763190659477999991139847033558494376212193913212101444389109307187501011217943600373565686608693347352008196436154440434681471481782141703865155411945472385879497142175897266373688210719283413347781564561879872349337120827062618036344819816276029860235224475373531647539642624114544927003126464148841619191976200124851655639604050091996909232067985014291141060333715267686561489638933908544255492412596313233512531337070902898766196348141025440140029522666277791601603838038960921131982675370666860919246365943349120533205132917959607909769886489652244475243858782602424198606990882405903795032270284889727164519208590945822141122271183436764013808943810970289693704692142043215359730767976007459126863705990117909802840083299628255584665000330711046315110011288614820132843456016095963999165226197682852983175040630102972781592137235988407445556733677122275433751565639035376467366990726989317393718933288554956881523779477108128959680188875888097858398490066662476658308821457471889205768752985497053768548700187782574278721957420177433085049220300269026541078116810104095660772835167202185053503121250319502321945287721221264299637490493178845655275763794206797632319537441756847142193992726001745728090421065462966235612436619739043766928385836335462889927997787802005902473705988969620056733350080554991447479571156635139105742905493123763641539007018857845649188438365119469636682051148189446956981888585747360508603099533960845778992008984064929294563753343915120877775043201597159997930723453899067283613341655687234927146728589019771851090843393854661003786192733134712617762017678807318445870669315512847317380902315580062981238134464867219073433964725086439215813786604118068692627401859513623095389100169943761456326686510465105426107797678296136031276962979128844460602938438325870044881724941133579453384153318416556735430686619141398713707882316026774015138662272266783333388243587549123984659178381897093068146496570233429582151577001774165487926954543035225495273896007030372659497037199614146571972368561782001201603829201625704319491460017384825863309131451435572480323156517375291486851954417724134844075454246471271328506366750155459695580260637035631064726641181629099952640722324082953258582634968132538571733669517100488695967835761982615180044610563668712137859068670099042012454621442833164145122365329787439010799613424189727058678752863658548792860589243865800688051898621818675062644197994004727814021958377656116214853620675246067239307565150505335769844353400408728903015073417165788052726223883612687274300267215157456734324226955669008312705303783687855002262926899876723174998389342477734434459394040807082613593592415000020928309316097152680177640239865092863128675157591301073841954560449804506957257376520684492680625705428154172197758561098505922912896963784648340136180404547285573115196308539905042309996269123515637622426864363207296571509700718883883013635023724610292499006621086494395723919590318654537481865268837408464464853941989916138927071353640527706717967003801648810947945588721384293004937782570725143025079909899359177566034728454111594065212431927707710188951643053635101678474166298415426027546222770492979081173664510691074388112103923690472224759082925492947244852753126091141828643799550754681086253221874538078151966873770022267781108259889411614017256977662540469177758433386734342433166609216426341223882960313327421071982101519846137289563205338161225075412985039008999546283280229679320980307847972904959349938711368354159431715231159073912177255114838300652828597614548436300013130162615663872572991464273046321592529597655416845285881928479699859586310449830462462618185797898844514667606593412336877791034591914289832490866763281973065174943092746315377716676847816914634828149595178362431301798400531142657463043072570697155215235652978491421678814741575347974209949842937500126414019787244453653706847024944744451677629732463892276166161606589327462526460222842334802619440677881290865999526448796424069725267297262974597522100212320545789757707295883839707359942661877463010061691169512403080581162695216735155312934830602545873019793366868633236624180926520272097356321643295625700241290887788557136442237712342872159106444334665373586459087271962849127206735690581152355460670809278371005061140400075661010363031909282279043697755579193907711154265344660295990733599232849565647857607907173991497755882401353017796543010501949877338202264641043619207597156556221289431431272343621847876913872403597294130888958220086175924339481014322792402220622986676272199871135623517471809329008443210308831093981233486684043851301629718510307319987951206484941573661700112376115010014172504333459778173998410289132718498079347554699324982731004688539958307647735024095699440053805594807584609813306535560652862184211219954356505851376043285106261872966591024685174983797413251215820709766831762577168202519030774200577660062847735076947931526130647053912288133659223747822087385877986739475127086872161734133580878712625619767230625506471001135399515463764764418130334870241554393193770473653494910309110642583368563577487772912972441723936174297882711028251833058673514866980437195927530262083853139032836685696570813405707789400377038261387618671833671910496121270897607208591177485276971374329891319515138639931927139744637348505952858729428169139109826332138620290202215301118283646529651254737706898097947725832183390946892395335274752613445050704366809120130220345344428478201078594434524414023737665767215927216893765052864147640719042479613713501309369299185896164265716307048726336863912847000419317643115105444929614375953960718284492208210618266087230587644738981086933514369879824935611032713447818174372043279724520537912966585923236283958639554012487792731185117536151276408284521174557789160175221985552261069790210388342684499962590908851138473564885361621027030006427505037692937203180739820260460251143977691241535218625922377569221214013149863884943132033571229175974444509967033120404663104249358022275963368497405792639405513651402997033178353519398234687064102292493540527170751483739551260592670016809051471098908086889217598864067294494690331494826384955814875095924608013015175921637408333885894480694217527059200305611288308050433054404147597718992677616952734852333311358773204547264791176534005530934770070792732433389984772518923922843678263298322070402511449461001579929429956726891703044667441190158747405474101950406417213426913868660145414546648931177160187561672827823866157257571423692616481621709494205993316920065252085975867568123962297846028448032116807289149813430692463000987302415396634972593513415247976740250884202501332860853821158057930651453711851385159107351821634301227723994806065109768925820369449328078790587512817637678426958215167606307813587441410174219197565903053963752261042982336170666415462446168897099653068673272186144639555218418857213280165359811483095572325977445958701844483888982454332984883221013208067794564102575303921976409402957924072164413153136824010226456032783761584863579135514806263123519677302679832954464020523657501052373773883977594000475624488016373067059176693295040536953569078214064375118635254740662805210106991751278328805634988434547258967583652083600943107500016365351729275610442991321141186168459122252491490208382533669096564574083214880708219382269523256300909967749703492172573201623199806322632049752351615817339899513749155769771498985336849164344477401125527975861953158037962221216146865146565491060939068597391407219362791599871062060533069280094690996059418356555745577850527127571861362038155892628747295849532837038801409990957569883753688919147467683527115653675926302570679317321605837231475659739400572150025948031204172773635817271953908239097260365030969185472447787086470199991665491616631364805197443272796660639830645798310271799426094714048064530454135027089680111099308834155902863828825162449928411117192261863247294976250572684389326818545377131083814060445728757668565688089993097804998129539207065750820371445867376484441199655144027124087841708208650837870619635783288548421885086749450897411258949621826505245077829051732548623894514876491438094779451643457735766335876393936178820016547883119386118218625685712800540299856707532757894368841718358036032176659130514554683805629883005159435938353872230360715940051075634893615286386590666653711949683666196323117347155311579543113076660938130247336680335464696676236385457001896861611741919910174977026507310728379967598237421333149420388569664699546884430687494952940462503177833314781850657523697997400396952579899382702085030152762931636317163817197267705101403046570897508164804625459783806279304998116626309898409531062232609142692360247793973918444951583287928335747114020645559004972915186439358920177898521362691211688581592578099918403026155399206921373952724659121342372901073510495799392004949355566526601564194364258663372600552042082649085854956004244247565854555630225249395751892632761627190795638128901823817546037810979029275636006444264614392350461437825661606991397487717378491721943518171550660749659476786032627504931075609347417826976984629640587333953338268580647852710542392139052914518469341865455313009168772733180654428392884203032888430186807123729884586722867077263174825146722774928135350119507778629940335660040803039745050010650997363629305895428060690097925492516098678334690006097463568445738625937814379741740143633201045733912653495583437047254889884737435592208432658474652188883409551311727438400420526043730440940057798915887995237339156616989769029697354296501190813215862269411978165996429622868721351717295769833938601409360667683444483753087975307932483776835528752851084916449722945363040309474722801424555553494080201944754424105203211881840902776585531437741832188117356385004772970703583332842260184063107317308596308571719128685980088866038508453417472421789317533408149578668424611678234180521657788328538936615786132768890656643787746883923215223621590062982012524110325616171793410716853306955883489149158610887726650621969998365490707189334929216273720889025678531348141155146995880169669026012871195851039437616299207421892762249265063950669046389318818182220018506381969658540387780512196940803853462810360236235839264444892207441015411731124733170256456440193718045115203469200559972655895778320632397529624906339959980509535871403570638967502518594846287660653631224248162843018043955532265840082961637674877060435030176315879955781625876726878695817012333383782845689674787609978572102546145171069156578919244109759737682656819617987988844577131757681744939760048628275529256705005363356679474997584676819265779929746892383025898066000845758485784047634731089354171968165051235457291456582921171176057612910913835461220552460254322634719730591027558689432458607176447705160370619006804420557002020443180404592949408924699348634484371364771708645078240974149127054296761772621318742229568470719451191580759326844219206656915645817773372869794610965239677603408189240142483928647097599347528167600862138091053807423538389595245761089827352161850678156682111112235245503518540926552726344511086977835607853751982924591898228731291379428513784774366652127095404117893836759278878316726072492986384913424910973402192857679501382794502817777439253628746669858589653264471654271174844157953110686443446414653210524673520647428090628457615896138699224614022570972299146698287603380206171561385701994202026596086523068937239411482976186568325746039894490053332272792093330317327287643245741480912942604609270575364701339933083368223208071965436029548877769501979342889819623709876348896303435757403598743442786463105597723375755828199179298836317631894833879939530215817047694504590991895037802925006216268737454112859216248144315525434632284110736402695506965668850627608499491676588523688438870043674277761705252462459581430885747704478859234153151042991172238504341842190600256848247236159550427512543967379133788194528868028268857549638552557952714222497779806320146858476454098138712538947452499497649795267958851700306852239726245029881114475512861820630695642719978742952522939565472312230697247495736193485647858592595417592354052019877684645050252706349400873053328714628554672906551471793098707019547212417167410824130189256095894398526266179957132820206257933152489127381100259176354002415022379685437900793821386491463558666230319934699438282350954874951922286627615948700271812333991649050347336511413147323015830767777287080326471949642138572489856084878759672671056896100625197254706679149611278075202394751565467840920897720452010421403533285695339829257746253880612685727310644031216550406354558273582742939801575093588860213763561199636959314080732878479217875506332092786294268506839118423390804628294848554866803852643802994755273723489189730783590854273303341138833144213132063187272464087732470984674196591110769882212276004325797497093671411121741194057570574912551358651112552731242357983231475450664236978448692758012313793538312610439354258766421299575730646880747315144577680921279895164227278801469396018777149846995382248938792951480971549067527311712448700805264056661985686795766176806097172808949779468390790762680857434779345193145752801319260938155902768598165041556674662732946546233169167235189778092286971019435981286232273921824857767161619368989503812167275729775647031647776779714145476651526521360068742702770074257275384791031787752599277043240115983406680236522675846521127741367948792797524475906119238714849461128726352986664679348433211505475357476655239762833055746116293396098464781950949446447787763829596551215683555944352794366648916937896872612853161644574925018894072828240600553075131411237656376920693447543977890797597218504829884387196457296338706047316247854194210667305479362998249278998860234176852200182173405678748615801740509711010248096120026530326861318769488261406683897295107391083841043867949444054620355489204404903197227312257055880315927975319577721305781998654461209871597590369142830750754920540255028402543024770805875479898903843419077091117667544939223383330053605447306296317047492801791641612788176655641766831038790882038052554143182316227862435655620367865339868823727094096093979588158074075272748242828608394030745077295081349276348435239285357560628854960687506495499076665641185764221024626411623445678476226580933515390031328466297377297800701843357850707661849137716705331681261072092890208455168627237171832459851706672124018303854751393200368340468654776644821610143991793331100444283936193742214685339348994162010113582866283755632222564977066115503819382120260192021512365594484221698695285257990361679402809188361813919761055265479647420540369752806570696535866191600362530534825885092931582582812946493696538484463370534591546607079813988294656852507917784422647281493780390381353620772105524835857599183275848612008457324910371418599994599778296481743250906779468616605427134835550521900377668478268904602962248554300206734684691775454784695524493271557127973305141136432612738543818727689242495089442509701007785861449998115936824843066469730980477613920540446078733318261204457067562645550327145201098979681591159984247278081833066876861207454143586513100683505462313641716031859654232679903338506508801354151385995372138559320909885602203567558462425263818534136868367215606248505557034540411625402733863806431289121388885194853824253593900830986098275333324493685101282760153328993212840447823751160593461672938997838123327832142679663997807760358126023817792795140581617157223373339354599442748210850182541880577354667382259767824768584703601629180324854766522402738253721247874706601510507585145658839837425848805623431029761943868859007672513524553294714194258833230719307588207311842309940355410245602748344323709446307209955824159183270820455461256947127387236863896041503052905066572506460190839147621526105516718333267756795111901386255867193721681572257750582723240531987977166284931820080655109924871896329730726772472141146136151438534470875727557429626730378103678022312301631560030888770607158871737492333139086396098919661650910816080844357982602955921223419872762842163506071619143714222747327972573425771421696688161101168099843293535274953589402986552341136547914244428073842837624540688109650084605630642864088668936083038916530313290485970829922157415414411380251641034026066962771747582519638006252100232959221305445793286733254606751755336889793704632036017044485602313682803054615929558487816605229237165149846585488851185177291667043735136773400950525538592909022339317002266157217312539938921885746922196262429772225406539794801397012930137769963769834334657867212930816767674444191920576119555590646109707147127183210683940048906336188936210972411427741397055036164440822327076873600058462021720716220905261119710039743768103062180775219896150979327722852577479199246012137657269010376635116435692089767369337843477283442365381154681235548536747478410154568760300904975914721962909234828673502386005610438996726668464626155495767501855517466503908754481345235023128596304903318561878070727475406351815889135554513676955182849687004733265235624887160541973565190247528663690811061127668359746534032904612525962687612311783521529634554835718121839798459694475076317401163660624381091151673354882715678418841323065362771449899340658384527073729593919093352947874028178922019028431853753150720270009729499775214990580434137523127034559893135455019357070777363692966557579770762233511981722285059434100412980171360018389998825554781953352310606462126418570479046548563772047542093907627804035530764965274453244557129072541948942486974966676568072596987505446746228874594758571158510215160347709256288960589446733159841434785594851859857898825857735094979744246705752570617171345756824062676265452629214178537522940833795881994915216949206644571309815107154444853754384185630257739551558140611511239039535720541257480252091663291278197096613797848582006461725024859640674774687396651517072503354528473037184846801992310009688937158372026768484855932900078406966275943561326910784270307342944563022044616132318056459084765809068026000270688758923930306920801969946337351348989905578572350646060869651122188825885571185135479779402993559983940125698386619398524834907731099220483483089766003634050895564644778721281297982202195439318759343398995837190241268977329213632985122914832400888077006983944112874989599350384565639361463998358341593952273853123207922921139793620705072108121771706163379281888730965178650557319740380552862779365256440673082176282016949657140790565512726438795132039067928994483835019692089289020622029653833510788680861799210266347373020308342154911434896531256291211723552005799988468057833933247184692137131982694863040228517735177991209893350148363051291246955682069432320078869331599889753999531859998782820437815274163740931241027820705654135640860362997600275972746959265328693763028872664627080859653804708840935836954654626882232270265960990418770218843647343334334122348894148646824012726307545696308007672132406820709278051055841321985394626179898646197779694879113638269609664704563464469408211848041236833432302257780099589831587205503123426629439156628127229234363123627225183854556834274137345749628958324126661772731349656634428940684495466902575517630555686836432062387992686217948381350755668994261217672869659249925078313382644002033584312769645709193782947240517802292109266376859291651781847321320203791959720929099790683885006938346733876131159968319725287405682632389783228743946574517272757945370298578970241975961243543748777036897001811332533063616932502477211038575336797358106373852326382266209088389808738209875553769634854392450955266611823981364544151818494145419966991612137317816301017459470720166318576492661339481235874998608824601753367501685150451501214778648014334625803488811353557492539962945363786124390918717369470145598299452105767928722714624539671040587116767229347238960275726360010572720604014147125281548272885562708757675787897021840241455385950885688775103409237776878699618613949683286618512242692132132044290246505628610848429222960156876700153985690895194724731668960686642863356339870882578350474321125227196164845599284785707000117099359428384192423193705002089878016018827276172785322937935764589899375955594450428575694505035799865443622457398088651891866886573584977716667242835952920549149773885011455115716309196449483718382177202073316699587098295230851672224213178979647619409571868427447755297004145141091533815536781479517405221555659801619281312318490809383210992556184039017727661549548883233662866695123452669391397354946703336313282320464799837471892633240732956766746394604574983187167814659878107691699407271663538617987384278684656720902312923798112866020056531809256588251035084403394965826072250932756334762783017632023735882437564383156144845428861526541919395408936957201623813702122149148401074723626411114164871791616919375659766733415134227257680539174225271810471478297563729595143103215223910318753545151334426654070012774410172914944998048346790904163129869016140736049952324193661050378072620325674240189987778610054711310934499350701058790997385259304684337873239128518656914394278373072012494167776357383207372006953000480127786833262016722674451855552554361402755557882883054825040771043238143003658563611717037761645310707301302042938444668294632045532659679187068779537689943835866277827770496487351340934331914485559738969355730659682671979026373871259048038822485965412787337699250650374079872799214577231523311147381376067775647814704051184118605179297500139460155521161668121054775178929412546254640953602656065773989251361863889068216834766541911861682654416183732673193611504608175701447104018534747020167778119426060182552669574758016269060410304055993883111399883429572891036025163235601445529431077108084403506601997985623107664912270748201732382045841264700836346167343457471546904521010796887193165611276165423860315509657284157258170013475930724235151281320891308030279420252686932471780165743635474344324616473624354889393826261190236364425623364785537136803354035401436712564669058474858501003222081511834975806410962165791397915594143418678522151078947019352166046120739926685215228991508846813465945821216756675809207357895110892335411833149886251015336477226927474465191237616952670536922619878678238115246027383185459291879082637966908970568073263979261237078735339088595659334919221345382965138173343230950194684488973348626811394485453776484761337131952823794537777293677844413795613758830833434770124407287734876655822290800421114608066741327826891198439666373019961244532912031997918640911799964846760791514223185406730551506105905312014409967966345109575234148588337002498891573841127413828979498434825888538394589568734043002000571296440859351168920933036845335078481794443468877222033456026162167351689590035374566594325247089881492798263803055437265975556932273014028369878830428790564364068634360807970495016903352505886503241738721972794854734930136760485216364665227294165494986261113630000274513672337293050346306009966702636923780654182572054393737454750890107994057271526310442899404385208374175571060016663759776297344456047293808788510685166498347216912062661790794192340089160968683215884593084737276790929424587845425811299042562309466130256182075530469038559060765595296893177448951995428885023009219557186864930054357556451636069146767418579577287332500293363550908944075957511648738164003164677239051235432826412926699695382095389126425025642249764342393246201418032806061890484725333516868722994037013048142281170347274739277725331970505767923199374683289972562058418165665831147357860655429557773562872840098184523802577501552940554582503794475810532752170286463301060915773346862132342582644647776992758688018412150795132676683091646234893470681704174261638087536045614193804130510723616789313725766465197728638626115541955868426309606268272020466996067221512233934572803334397537490825976294769142323451807851601862328431581387964961743021198478587603041966401013127685306316518051355179099928987285767540842630477402736732884391219661252372353940943848246370623752369922185261248303521059022258633782340970139048038665988292227949921216526460642705856165879220999594384618894384784431887757484944994481802739321550019556335825938147740427611776749854224091542397820916673349954517737879705634637739342730396678985390860127973368033151214059287268600590204135297557202487667685103739015233827466401711072974992839655004237115468225624263524184822384638252765942032676534065841450473231059851050984270872711505743756272369243791641941713885202144579643822383718640661473508768260269775130903189193128542933550155190079918548732026696312914000047885911290178750174595274562828260724660153312652656521229501582072984681427193432182844793301643349833741045009489384534293745560880545583849316261423763250524622871580255996010493218931997981311315705745463390026845513214595955106122362308919334077391015802489310379872941952091575535121385466305635867333372675115826168639035248690835772039950922312691713631336784131231685880692825536153143889813619905376148177527001183238953099860616749910880130494869146423715725419788565359981541958971734292991516149417553470827854283867746028969474047266205193138836554158568514148860491933873547526853697980361218828648566101319644994734661429360825438888346923632965477433136603250685866820262813648553316166641556969948379129282918269170087639498926645556926272107694900877440025243968812298432826544350391866809975076478489907460925704837083322274545787991083127230333509743113220991295119012520748755982262379205778636966619596903073174829286112651881761495569114593677830751118556328123692663690616377734944701248627046192517704355166021654135933961353999431293372781006657644589622934360552363802390338514135556675515499639812936362995677962340469988373802869341041787560528636833485600667167101774524312930202119630175255679050863287108021473994702706610398086035346073369035108842189115749247017262720019334288831067480161602755909930376394732545442602050845799080522666008838712416927855963675883500969498606577352847698116054552253777166570298706029359296207150443953337816688181167011084000616731010840138144701865099063647660747717399814876771015924337737957511104146525175637821838860719126754197402763903751627567170309388098271481293507121575169784207083364101438587635238955480006334234831722275396594781992764355446400822126472975003485339492634153450167518049210564653410787384012968088321144266733829442147567655743237835977586366894076823897129716265156304647423709258183231222533207771206867802741196417898860844852890708712534302804224748178293393142237147485551233915731111821626151785847971613410128844808173211348908568910589167773690301670280097911614883315448559164367671114423853656621368820290153699982928122060826099970821826445542749214217865510141755958899557670067917387321253929952240096311614479771694568372072585433106279957035217413566929636202735205694799704324330706092207130750714840308904226869966610129006160323159406371592655176164548129803799951272227373134997653181699164672239781478366545788060664603321884697219613888776058174655638200197785334140472268635253719843764471632192111288563965157669701159108877750091670723348638700501108139008284083958350736566074066915335411520885935250804519410596737642497220904251884739040624331351386238897049860861922339517916346278555556592118282900595923065336286154072395853132997198337275038688221056014997147894773148557768343502169415444476228280856283737306109023396597254308750908054575024277396142600549379098725871460248849185389948594933726089369937113140473548343192424804652584833115736429366375788469155486044757283739995461259853381878176318707154761204045040326208792669391374427311818593959535944904867152137727725651860440105061547076093705266077716961003899955623619739526556855530625321811677679153108679731045112534050017296891957979872776604012035618032748357747241116241452059951236682298355134541470414878125845122113950391587291645014175941814487345975333158724271034608164410570597156598206742615459901143283452196557335907754721926476367747535231897222293812554916850280801215121632720139287317483210153456610443914124452469975399582440556347417049736371242250545019079463060542906807892519771902443803031985811243484557345398233329921428596859719072340353395815886716591395509615184491124897065129285970202476871673927414207829623196148928257795830284433406090494317331077901856618028212540303469632388181555007388276383766291176826692011100837936928568264828598459982112837965467369919340408425800754039050055684161486209716294091153988581850433875264775520105504754899263458703565494002393738809915372496444907591723446329246668697078534236748413305009173932307621920782325650168107335562129311531597065601588585230553710031184932895504830803523623036026193570809850664995419027324760479136393813255920561106252178941254497682253629184536196575513378979890161341164319175915979229021116335250763545074212207346930642412303292179091633026303168499927303606381810857230393315690564267829750935502129196476209953426538348621902782216827710330955320101210360758732781562041980787631273001698714028729517581187141429499810892899844806106602310372916671514873222206066052541613232562856051530705831325114156260378684967122715416097791873983022057516881166056925547165199581720483001667748091116219420905435559871798984613404657457970666019627306102454247880491659703292095009262942020702863748971535162313780482934037035517482420654674721300511817501029603529922389706951559208794411779585535266517905187749876410819731602609122772751922252818066553757094977211004144306465179937502650910764137801616306648652764258350961124037801427964327224948617131160671283978285800253001855146044578579020624205197766162786982399603390400502474108335464411999182590593288900950802297007896430564638555997035424831326305435632489749542732310333874506224344892093410544945973135445731169759696799084010533169516899558732690215122196816302769084918208306482122366665386104473429491934634800917081357198309630192770048690523766661460251177608517486385590091623874551275428186897823170027468878084063872331695656883617078156451900447543956779917420582222972266694049417360836865009566441729975141193154775957631985223100736529820431645162004216707966481091062438644170709217987943482924124570960680945414181562527020928786330640484704781560927583333610873767528230024191568061456377595526546369458297524964880202233670166124593087713362497861609424674468886533464806385529352639262303630942667942618728769502961870332554365254609462141117279192130697507311426963847694830511816130092708948826115098119297012151439322395636793259582505290774369106550582294438535175396022476344160687604518838775615866679064326819126793612747129547588874944011158037783915758865372154560466119572986648875452285354805752722231732766096195505940379985897509588652614262022226720039931814522782022344519321606909684302826604477465356845556528800635222660814173710416473014791454439603138537617511888373682199856259322650506808701874392051178751871958582307141245218265765791412784205141855429229523601435246381638502718234520023684255957314497774146637181956779684548581390781915506914725942856872211502149290870798279740553921449900384640515075878195518871278265970996191694627926948412518139430674682708598895944754170943064020357814491231870179919773856195360247611245455444153592793291015302378892820079910872177301248405666830328115680331088028304321431650770359124535069278726153246607846561224021858619216312493598287386082035120811717957659080364256336020453567515539399636052034931804419565152438430467084992408550407278712872204964893350172048383106497873464716594968078737970773000026983164543743551701787307596600382321215868858491401672484591106132197902433311491829581133813694779739567560041651545826143500609414851788846554535284150209742205739831614407914749666376964164356619223436782397052571291618834237564520518932945187344300418462577539063644351419969124628254726581620801023598349069851614449177927484536829821838407777247884910033666101714636875504707870909110197762687930339429063645980460740091647784578722060205852392861233520567596149039842355963642073860811446897298605201211984118214003836592923762575599838762455707628623473082899331459125858785938906712468641247421850343897026231412453193008591612560900587501091541105368648539370155312371937616266041419399060615135060483398604257470699659892993524796338444510088985308438483736024129478216845836244433709396340511800012894788261064770227456176543496290156635873494283887277456057167694233435229739912362972239300270902289993074061656562416478648941609834267464644286055129590868103331357867406862052793146119917463049516738000810172478445114021171359681443918698481667079509716063476429142007720120992349059443692347533956679485375578244442357964828637356550328003939713143599647428519880911646687577049924694879262605344809422681255276339718707716330465322016093470288261558184967111675321982987578510195935299713453263211143702127916728820992116449683469631184064244908264956447419706478746662245361259667895842222941090969994174357728034432408705698058249343750920362814937310979779962809669452776624666955516884707542111136904571975198338553947180974066428343298487439358238588032046909041156910701339035147980051522806668453496455460779661269949880161560886455162461204822833046677999885227812134621821663202178412588905311549219403288714653409617096024920796317591334601650771555820128711907774900667233088999010346377583564380214016750364009046567524420047375183926595155874186476029332830666682179613176560730370394770655696134918979034476748984351136429383129938574214217680522060788609954739720939601898428911807219766757042086087170128562374636369274496007372548889382435729761949162212780125302755774822568094412593445581554750670162265258187757744461612796176915231544030670481668491461365853932203607956323962835945084315368618417501461246740915710974409018866821238272125021444281502597321624209493757481179692658458594389657336489987022048642960294666932707746384759502335581442426824275793505798130884766181715821823312232331212015012619697330416112864510421583075271682423895932360569880719589046666803647639085579651829265754704827312241012115920951793617406976332271887791244377870232762944939157682485914463292873563539620535085449897044290268712792568045907132512872239873515891858189699811159668499396236782917266937688045730111311234280427629744939435135961607342392793683801256385917684205881092098497414066428166727349346542433467007093535765803146230123592930025335556487500882678838350144829669743728392301727122618799076130308693980128693834814759460671421032622144301041552352791328094830464153459992339078216874434747499335409454832802470787769186612346650941729800571707017255456085202065244777522373832840774873165284883539189523807223503300954941687589574714157661094220609725507396278799568101799412174754197635681166601102431671205115647881962140699892978795382955427998547812762161322709193440025053127137499573574759084299942514126524885060151808428170348769248157485756891277029888592499179228469195652120615408477581160514891011421783177330065677654875735914826959470124104523932203433239338536659860390519172048783284067206806583015786333810291968224889495188795802989108811221691744882611378915591916236763292953136348905694331960935207079154922655818287818651316578962551551272320896737479502366987820708372931951963250076096294766705908549414827715093544749362522689316645818979039155009546606844167741145052418891778399851272234730165582244557102990376111578519354643537385765192050839689695660316044358545219885406196251065383293550603585847877686889740322486874343169363484907296564168846055846753692397026295304740907648245836910008700037666549901162415879026857368463357539450887773037069119459530747131877356653358669399374816607917555450333272862408893747227219807771609793549535865815323783082346579069740745022974174063117903797059925227810984729239392190084875945710895532158794825137859545824588785916786398111119721125829212646104166291033961844138569346251305904395288874041106979769590689699460674190615154803610616339257280535010389531767247260678254458661624248428249797162994030041531347497052680822719811218182091717682912661424934660413093475078241301262988237739438606273697049468990293295184655225054362594632060356621635303857490568836150343900811189360826930898547655683686961829654261225302478944822547897111628223087697436779198612923467796650162665790936462594164027605137031483439965281631981574363170323877860726483787007686141641399473363148998017225271837230756525528529911578966385096872078277519226815315422562600214180551700532886806003887594342514340963190661506802803308628925492767630608026049002919677549714545841673382213202749444877330325687876912884528027388789379879213957306264449090795973083915329311770144687598372444505825025401663336946999282657495549459695232961061932417437987876154836426502975114932621875496566274506865120737776456020191762905966197280259487088081499748897292228302975673645540675651663058862704288245127215065178096462021344565446247745462032290681897657512847094269801938882397793087416248735251074443513466985727391451080156183598816112033218292636012625045086980441808437345057104108703502665420018569994204709453469122732659303818248733909413340387450257995871147508008468208062796963677685849325673875095986688166114131623593306506891976049660821574926714287939011270109232117079231287200425370431524247587001865256661801614417522628595850685221479885975869494937622576265675592656319533716919328671355952187995354338915739854432051546800989789259347589537050913151540407883714830497866677708638532850715705560340462268077695554265760932276669090824347704560143458868475866028756220582496774406170820163767856230120561783905419636695159546698295288473334729248914915817686747726119063537637239461606699041994169221263594475469888030823091045329862156469583141821093430373622932497592260524960694062717941764590381937911855289666334066925498876817071373603178759378818302799078188400673673615764238712884180745684185024334254135954548817995550782534778267319480711613077933333767304593829926613757378080003144095985485267692867196296409158386789100705571812058589358565493279794756055290223561285644300369717415587540107762971453421331247259529165534652679457862437598433048796422028412193069440527804638452189440113840030430592424850916316170557115599422273501957004916474092952033191109030283426404628808395098921184388903478442810107406861139053335679824973860892888310485999745251988487130376995995900848938744195188006921856076002098850195644213024936733139090511504239771026139353251359023790026599270350621434788594142489098801153245638988523084708001276654710460943320304614398696391854876235971565612779977093844716021522234634622975458429214358767918972803847223299654693906587755860262314232968709801523134186536400582338908415175689505360642534821099030920918648131064138421413306098680556126343334539045239714506528890584061161313119252019277977206917035955075436849809282750808699131944406387158533949417770264791704081897382069732534899739898438030013871432672803254067326594412765711395355241352002103173143762273740428586728217886333276903594486649817478771227689362306559230351352361391424498857957998091365461379189457111756673762643459641829850380972821341506865782092636333722895986399159477857136034860936114467658906065824509729631983414946681814073617002086829621646368806045948478724415349056432038456462133201047396469689521987462249539717676909008467056440426767237917925383413377303954544758661242732720161707395571754837878646457120996155193956305328437850070771867388627033020997552172154572474862715875790369810871431698923942904054448526825810082293384127551323457262804644164222937923895075243830739498409341397784686498302132676392785871422831525249275212622453489396011654335694487317319609841037816199083456587478508100892906569264730627815184988905565633173825773081614291718906935950136979698620814226308291415260953187813989144252193266395691834845916042980701520947397869489001328575782282749339414730521946957276259253724726078323796203360008050199007523537853487203925364869514566581205409609877982470470811097082905902626376133987801823689202606831359994609498094519254363485825812497035338341763595316693939076531137618218591607693457373038654285552355238651381525350898978402453060902806621132037816777572368792757776882128780748175229124011528565964456860645719598882472822053953643423150727913245544618511122112134561195506080687467939218204373724629201829987394334234652790594650631292669017917717562717183722961946267721069619561805539782433876507620772376828017274106391661360197345861028644859922744046889417633868038672594185453390639714518393869860190964561504875801903109785734294920374751983775141070283154212395929010008923421174682656324709591216184069148944137366258349754610108408881672141894000538426614108916806819967317277034685412117811927636187135588662484145118832947017485055235638492848893801280552075483959915442480632071206147106187868947977245209261696429912492377251053837803180609645785789611636231325758394012607309020509077665739929194221197351396871341254193242863699739158833296076603109117071393366933178203947559199512244941701135824827210501090215593666225314175793709996683369697686550406189665979539340039373958784053425031053643722954091967420318399097513694339471546801541302139450468396260388756900963683840018599058361409560158240165413479074993875442476828968598425336020120103220112988353463273449693361481302541487004020437136894909100737649557312949293440897736885316703242688574392236360301127891124186598009069482407028062518040218979215687434777195636419095581292268414947673802468417262571968089682345156747847889956769570444062121001136913123582417723936544008744682190459508567495838880698061203522449703897784994304016801503922669594999680119295057358799939282795757086808288649133872833937023539056228636901705735222764985388648260591261358427283631600538374926089983448326501039836553189913817972376005291466576954347155061590211956074247917393660473780760444851215914913383289798687818731785485437581805859496249497985249416235485047804994996514125704094208614217694073928744296179846976412323205036779793607567822323297627384808792327981149727734163742701334228195311662568311820048115053706784233493836204910349945102719656739757162153288849367301136031914138728520211053319569395195287106756390617674684300041054071054491027785723483067237840340410996973687577524729459669667039831413296207528735546129645390030289481050758942031041887736315622365088254553405807140618511278786587114441535105033571379287110069286646427644834028675495032596400022492631356318212369636781916651407502508925508442230918723426013557383882396897341759130927306350991081473869464110796675756173606109928213964217899104059742831903280533907042008450351146402030348419086461593711547672403844352685796278638371772068536285013053517990944005127733491242700013223718772724456737723285637839076257815225843351460478738091369178368043531817611268653971796236363667563071550808117996682469155719835641825735788805700562817851711725933459960460463411323268948194823861510558194572938785188573971502171598216608090133814948134218777474974660043944667366637988715960612632189276931948313467019626282964073481068768200957126740102408097179889185435614475031485297411447763493505827811421403858866358316077875269108879152498959291548360732107017633024095806761219325959808752827792452501647189643675864733333372415938250335989920898496454899623785436394548205048399126475729809703317404425582220113122163614813851851519106122644433366907168747963200838867917000405818991489171761259756580072874082722411649351737086645352697289956531054169639033923295703337857245338232588205124662220906096443878097164875598183679311754193727977570847121522057000050048376757905258346537392897097200160416770788334180254400139407202409726260267891241129803089454117660525059488744115919711363334515035084070809277393450914305612781615186600553288415397049415003328417567521950325699462794862075093659579337631202391012891924252469742190254894083673433040818874646788742066748005474838535364944003010875671696589209799583700693459167183148865530188220363843990335025627909633376545957672466770643670385252213633003618116894335576890512636133502135136663310250183569356632772318329055217790530272802907160532492538837548977959478576286777542423430926215684641593851063537983890609650293955259882200467683609259892938995360395219161766938032067351049173282632643507447831881834128014201366089585031952172864885734691528769833079857882180226020295851263823482383617626895503817704268038161843652740412816266882045364550341368761131278684927211311778276253579089448859411990410715875224450142036502504074780584887110071395675020541731528824209229726584892512971932031746031598500487036573604592028875064042122979550787847541444616464466160758874347286535793913845540403730509622822170139848006299490994319180961735836767999904060436413247974759351425118397724836519839585784729685052840178985134242799247513828404355064074817880329775158582253144015955662389218000359018149571689165450949020142332917480620450769394320173620657217732350317848388413949271127632793262050789680304086998277864911923825592468778746522282599061401354456019001666864255655200293330568888457867814722731376225288920695570179475814614815925345276757811439685402703572668328596315064803933040689738016191181256533414409307377211869707366648835086631649357944712101311623118999466310965687845446905401303283300518900725656751955651674949487566052855528657981060058584838432458459665974923920894554006574466770219197367641488963915422834095476283737692582451136092847261666090955397387949607859150588750984716164172978694310229184521036386948768450433317025729846884194351257764683504382855081995496283410479973132816174761035259146839168252591077428312690272865322213116884747981485539295299608824516117782569001592292274682926128642467398840692458491103593721086611974861520266086907052842506563489274767183202324386561934804600791256164071463933547859865417067739322230618567336268256295493646504372208015827782175124431892638408673311670423879577518629832920139685225080587165295975220103654051729744008636251837593644712326616433842484284384744760334047985297315084377733283276682695631785609969217609579353827086602594306901556160785554492582311358421113060934282302646657384234823596447248481970852350799111609707514970424569608127489579144954020298138444551963327784312712715006513928894181865449343106831113310098345436351656571773822931411599351666684485123525221658560220984654688390605077085609432365199725188101903961352322732597339617248825847257225996004612379922334701197198687725691797509201992836704010136723245822528522987498657643149577701538848071484047775829434888500168454598711069401614597506508872314829139646146098298840149140870211076480256374310330767855488377479512120554638321853239328158086084462964118305537760685696783210541444847126238265441845815142580442167659009262814768561257415933143330425673545869475953862906143287342959281443318161745944976203626369369411547605580390371373025137035276037269512836976959645602448168070693529230935319056290381997023736328185355936010798443361631459630725036999808600120599909599885761671777200496756870226150937984942713318483911345678832894834812264482760314565553535949363311764648218651940096144268805087794343967861256956217661502243952160702885332088590455667077814295483272816467030080340363299435527150770303740836622341326984695705323653985832768668078753960747538647224037580456393318312389718046253237412480883789559288193456305017019817555285284772710618065838308910443570065307236762267449031184220240310381570802573450010632616070244064915726553865553719470820483583106048352153235312255324894180003092035440351728264712049098259909601919485027898593488618365155464350517532482513272416630865636132699661401916768296094295451270857361414479194153910938735954962581854808703982274089782024228738693609512020013933829106810679203093052865641693546455113022581257578502332106964955598659325698400952615635094960383587055543250612300821082696378599772256488456113022605555104927722946595534329901948143051884773016453539992794188675145642062239219716984934359031632277632876191824926924070280033935924371567790227410197548744506610136282152824727002603284935089174488939061365502702285496402052730533189227411428887933178033566541339397194503493703921070731597556889898088588974754189791846649701745140402792393951197992593875016027768204284845636931669679147009989478996546812043837726181415838374266355616166719273957005102374648063352185505570247351209882328938435036472852288644957868196293681468622442494912557801350810678674319689700482056112815779580423216021854063422633439651846939068745340598110723741266524175483353602316809125789445909454252275934374601774943090274508339132533935225370931886108631362376314312025171268691789581277349680929836228771555551349689712420452332391077063506292224851665677949481622565675616030758480668307978503621325870210935161819378105184766507930655456191078204434709969877003886772565908483393430650629714891336923593796134231956581569678812938508734824621704834231638084708921061836571399269537886253732745220538169164445365417075408545558296375318892871676601001912601527726247668974578884648079424738203682251588391374746575058848756563849068264283467551981485313507430307799063720382198474855892582119649680312747459369639846112131791471899084850141796518562469234874497161229677443623692358452683420293592355791353818171432340444146090260711271902256054298256265800415973897860802630016543580348503445721790685950081090359987127834971712511070625409371611958575222818391196932452066497656646474625298932477073160826032520609670380408069908104163610516771959410645564739893483772117848005815309629339689629338129845014322038090030640057800462688314012533686240513230975048088848514694460156128168618003311801311019309908455481631321575314928943160903573089057711093460251572599979287347631139235406931705314386828490261422873124349623690798719067938626641667253512620584259211254783306299811972629476878670784422280086127164958761691282651725775477209173511609793145626903320521982354343095173453711224304620805383068274702333336419513257149212118510203357987057565665274418770995628377954622710319777564680215617278865622738836566389000995910217226715719423159192519861389997110502733781700199132802588642209143265076753716304024335410639546784818948402866733990402756730260436951098001228714481297130522031308938183210372296805579387391133975660767095556149492315951138240604448961949125540174688228736624709449748013675688338184837323913489107236811549302889689069177871977381244508127605240981571046118944753479753367857777544359431983897260326558037217129432797444456834048218450593178800247120343082926563542313401427165591658959082860479965458525569911733212723696004307457633146675118014397958493602709556330839349570246247901802453937633960744593857784700318358440221686866159582435684582287457952637059420333173715927682988648000587580345018467935183207979223167609472432102564051448402835992748156567992665990731143308730061039736890315126644167372597235879891158952134961469909655427796714538067557407668968004112398769332342628977830698868599892409242349404898215304300443054268755195674936901865608476244928180009472104441107392010805112737137422663292116948855246530272038419180235367632800524334247470816153376069197473971314732405608743399482423907108182432252782058724702868086101949627767408254966104519600001383932427746353490489949308794407363510345864889258398063415917827857067399287638230770660474226194540685563326399018771337628653580397353330198628466602960715954290596907271949021299889261170178168625449215523976680792954146496661563279118354848105229888990543382436672324281462802749785102230936658710380113497755532028745258354305888120236272950065536974770607863164455454727917111286156721122143879198158456274289151500395513504408341804084153474936384125799562100288904619271940686374544561526412737458766942454597881376424707099206113307654269927649875397654260645170725123881225759381116702706049891067619019649874728498346349548012800668643491841148094323217977507967930555854451859266561860178970567616717349985825512248244255924463906125321523444850217227132987694397115181527110449181467800960563090899982183303892018469526969444010681635871965081019573721062739273459003232673305656373518611753532895926314676314256641924397640725511899795953212320929602029056688012666180180064951942544031121260930885335068575040872028124505290265077022534122443179787793848389671203480839527216226339053823904256696526686825920829950031522652627156344770818566153535295162203400801884102382683064801792761481716767760340917427576679235595654589122182224378371664947351366557475981477062820832641521288365131284976933839161696615821564235051652456505204748607914800301374850846824544752401495838858623615435046728941465575928436151245092504528672858722608202957848353469478043840574019636525237672314816005531215322260507241659489909219104719280762831016238268911897069350030051936093509252122333746393833970329159483496498472855764319543117783796033317045356959310393263748101012524085879385571552354217746988328442847201703019504692527708569637679500088802128781416176547511306945118432097296506671742193919397314728490642868192426033575040190045923302302761947590831547161263211950045154387740723603523167916911930589012383031546961224998110991314585976447632063600421399997850757046174693562508909443282893132912270433537595272704477547502023280986076741634699998812007303260173424780247453686876233284533592485029071859212789229405329400493193846805274477943223949163711901426897920008103037945773704879190017698852203775470147326086352565047326908230789872444432409559049825278744271060897649182455651488714439091407932199925922762019048348625309526179637875806099178334658225329030900772111314210679667634043699124057082752055020038106677753968906291690094780740404602419224654304239195028693704847170360670246087066098190108461377270682631163691762426568853228862946587799222932581158581488557557246790535169277317433858098769229756179347164763900191883302816180080523173478435080694014126316069575184804407242058745501153479605886975243032168431294855056836056051185610894008319598356482742037040507184427668212333558183155181190267120283640366685455817495482664734181180110825895923657928643209619962957185655841309587911547450186222379178912693091957237960972436905255250637491909239533235900523250182219721537853632439144751358382246438628354613495206360201960173871047679897989826348328731025451943723218265988721310571071957094265693845229891179836511433001409927354028060139178140133552400687143984905325951799595976272345789242139145347618073100384786163653384126288393898562680836693943057194396117952858749949149133261436344611383869065058183564655037468547353122424058911325144429162846206816470476834272973788746119547561797132594844494396787537940624768724406518715173728331252809439301723466627763558269091027380336863474249900059473867444841164759251593225631078952152064414663950166994522264489115339189455102099160111324827160076314565829470576387157761686795115708151966387024801265413840093656999044530181938632570147306496468201746696658957763406426030134967501329663847321618165916151795204159341015097661590824639343303361475473480014095051220726186882038532559983397038061976317075090563735269199460526483581125144888471577268262599595172676525553726357246020139367723946680675671876454839429946829058639328167018608257766880198615874513527051865324518721057156771194930982719353159524585213803843419153383668544020749124045125529099795709252922058054654168821544407803475238600138709307737355164998308426345567356816733936705121793595130477339351383322655945881953094102965132915377640262063579855000465617381191292867269612260747966704685666395088761761116546957303989939609495435325823078399173487003192028116995870414813757669062844061700692519942140649383906743026073873512481849445423112093691274230875896254855393401693720610501646301329642006352702944441970509002998931027245202269389049828760067302053682603941487721102020348086767550133135094572397232604556829732218255123264001892413158763265245517619771316406582354381550129430784990308257066071444983857305219685415621502846501323433434538248121963136697860300130624422710517663386692256349969069562245566477389214728630941515294945021712622171366608569763743253052818503973986494648614410504073358568398066170610453813023133642250759760402578875398331352972197519502488936937474825335569793432483082086419748580718110015498501588544084310670745032435855268902111794903211151629899903336122216511356562690125017462636320226989479537218572090901502790610008721465158826288223206476783063296783622239502431886714953129305399329291002856470260367895548430005949210339828488166116816628632312322415974502880558875803392738560568503983501950006312240173891156889643316426228980296629684516838692857381576876376347943277007330170147377715541144015117033752597176901038404238777579477555716689593263900046621123526719797201428973242072473219047226168157180117454830732543986240284556792234189406295953909950571049890847595621782522574607854434954204316139186572243758736894654720391452373064311645538787092398796765851908216561355343435679266037123390516976980416661427767608639361445477130671430833888839705898757324515415493412971943484003330494749959723020802657694689129071167092935346349101657457651936325231147628136795740531123481829231111041612531749959316957715392491074758911713928273950347897945443371899328931971922269270554161346054322662031243317827339768905377146670515545301019131425844606488877096934559540428454878394990252066846231220719375127464000594025030650992077605418421388668167494259534190815328664041061986966040688770683332045455794976262794694327564925784038812810711080722167203202068304867354711643449453008646665927353496341233263192888329344361496972211987939535714958554975343711121270038659853212399312814707566143417264489316622641927254889176254427152771582078785978444482428064869179067485843766151184181141855526430178183617579876206854994530013384165289753626995895289367714915475016451268690990089429852992915559100505455569138520866203825487984863676744477887216528742234512484558720915847904335822155678077719592109636066364288753331896504785104185905248408815921912306646939238724425042925989423175253897754035557076702890431353418927395222956235364818047156089788699168044461831309335284986330525551157740637257095788630497862340558247608599622812164789365375360522539152276634065117059076790354938746553772313478064589749734806364247726526050572453505737792899049621071346518467871023166283654285940889314575775862749702846750079448606407241817840475643452541226168513110089009377317491458852685665039585455401436554391339915139535007579234896179094742693145257385287535536473662549856787961690459904586654124390875496721072202763953258338003173444009258211176267142634619499927450714376883451279224413015142320859015346781334178061325581112950051868364468678388802480366943917167660566537514600833000352198873211959350022833737049274714011488454537696072115605113813360117369485633682060433380489478297213065293761452645902023441680132626471169121279610800497370375518286004059689544254112347882820320151982622586739402880594678891632868458992318705632925160834060338556167473963958129475356144155561568599810424827379196982857731171077535824681173941303205025279488593386439803776867365339867721375678789996178509636490655019549809237962268036999532637421309913477477262432735071117623225344033536110028501885929154255957560802047323446743123405285075554018710184889781282486863752428304109137364460658771324766768353364202047123537790805805917755539910664204421802391638324731228120832716134711775839818129759241752978075332127160583772489966082905084196956556569567112009723513451769991579682369652781153609173223903915658358524239790104997071710140299578675538941814777761203514215422958279916608594557734762380098393297216145469099758045701269482558728479403784518228666762846132580766700117009855749261119768411332665448595390753977135168025864860010640448872707998794147505815262275357899176025294868016327814926734395182563423132443536494516353651035823184820152447132976743230506027100364371800987060405352627027677036075907450530051641455622431809848842454987484643230291082551070679250764006017359141970576002081089923619571264871329656881383448215690019050536453656125816776391214349050272276146643920889805991544466712323583356627573727403946596872368219838508208969363916829963863928469039419191690149549109230361044120716925559966612093674535922682366890102595035731536075820060777412776151926155857812729202116161477747746738368110729435069670878387488057865159236281560401957336905389537081805093672395161671542794439812125268184237453703151342671543518436950580891178198913234926873866775095900863805892543378407171820680142054944934861836891684873703535443358502840298328350834914626210236661334642686725563622464564621710255676997673910186255296898456481552376911523564289864497012364990319693889413470353190356984783358187755792161769459628385304502865999136299934793453195981100311955501987581655098714984121592299628213040070899814090513831095592691427104547419679775766942775633498707914738954570887093157939134427738738346130789696123939697741090623781847781261507538824241007873327993140802582470139109887167559289377495828849068127243142369325814704525927111859345599889779350734814855287027269394219867921668404621829646684253782738858326182099169252714641434371620395187871328460779384585182441025462501434485353472874409083886842548578854867994140602223325405914346640016277205176167271785671206262781266794076583477950554579774852171475587181385136348699784026672277129168594588391254522369823154924886381964968599711125369867748826885334419349427024779761219932372046604277238850833178995716279003914995393021012785174711408437748610869043208954205683338353454766116104959358161991254427586683820535877912446689978166439857495626188603511156084054633642750253255432613306441209367197709624879461229946943309888402750566043123515763424509606974419328796354838697118850382416503129770457738293439551511319412454968721609502814276927355481086374162157379333863478993262408210865368780809722081770010148301364418057897949358734560171170056205446722682201724589371977287998358337267246715378476823937284185242010602533643424357890425574490070309285026800923047939511356808162506648028968630993270309059030399861590518775904475612474342267480666701466449222344070844800227978301150460677851829669286050692458697606569596067852882895847190409903964653063038685282820860829685641622309576431020770951520082487795995775198914653723517721073424892669912211855017363364842806481695701144082013767843883218118356782794108643213821827173301347619977572250367006265539741657763502125739691407974622174929202471790964462271123114858976829442074870739718320754452433993601175551097748501683741113416135709254981292208958687766845479023521064431098529343927107549400353986171268020013075994456633344014900089778138272369662611528471480732285847633695394177142743179367606370133268135585853012788309873918670834945989963833950824122217547139423733256544824602040578986822585896984628596480944170122300903421798233315160665806755204401304906672187281507813568696792998148676798714490356600414850850390773227582722153615658622115906588954067158225438592431056168537122872656068149101119877507177338838764168656560523180190671168698367723144862416677412043894440823759365634315935684556318232355625316152352583349207387068962667583270509861470800476528929218812378727683416700136501065783802865900772187983365464854266902476340060565036044819633755950926519569290132588562335848574421835222464705465550206553075166811224596941255614356643960789181174453478689946931449857309600142147953088665303893350043222076551549419832303259700446753846315845668763533806492726684568802799228317712497131495174262732041055459837912052852936640545462023609957701088164960193721420615136342846194366764814063718613703967272144901877114837442193410072848431052080017774181463063488262147842132259765793868325144498453529235426262614041654851109870829714269330091279806296879075196848608955712512616507819311706313701334260933382515481525766644220158497999146138411801121066602178236222123013030765864306994111776185213320636711054932343480659166093468598480496318002210666337223637413267803041082538306931386759119003669242296640521894510050257304072196108502707946969192126527168993752492159710681011156308378647118614208905273780200384049700088426041010735916926117764390104892531806465886881050319968813613222175263289434487855107014364308242949234089031970912063372702922627876965762377212493285150080557241629559708851966741098567421026276504084156675811625239818980757960122803211546260680652132942053918689559583790587511686902109340529108496190012858090680221361960544788630294445432752560087918527422188408463555684931777992043566702373807835265348033734280478140073896550514419443851691885346573727156650000609532322099633720844742191598525082955299723076490099428483267616278809549425010951573636326141142144720906308080541954844319081606204601149358651496194235397871446284985435702681705683818085223554053541897372422735472580452177722554763484547480736601137111592063603449216477838384605546635066517290933115335686864779210434752205719976854486822618024656967414421385628996823689062464437197421200888817468654355738156525101529033463876854748240116842090564569076694009052768434441243149079748773395285772703392270451731013631854650212842701848809228759113001899401277302100774191786570683148170341747679856758764084239801855773042933691011954840241103293818514622455332429848589635900024839256935601880651750569188800942572624557801988149095606413508896440650338538026388540567439747950231371274804721878059008747818494096179361503098136200145951830535417394744702559950845835208761893264239443284870062293239119249264447535553304468901100060171741748059969920199042300929199506417063310490246726629927744316804873979792486038958699491166912637668154948957267422767459040283058372107511252850423025090909535873489577491634945646516013381264795664504069751100473560993727461936117760051009498815496499685541819563087534859038760647015390433846270502209229803811217688605735557159974213877362925882083055206983085808126914441659290108742931120989854547369814540224340763972759892173698845371193903751697559919991669782941884616990689885488704706170305437561356568235494842159973892945823208799428678264252303921694603801347843030714177748257134276470661502156618269542917336288569733452224827048391964589631378610185992422107891939008733948843938858391473558076736015177865600122305349703888742102982081676794674840871508256843976245048875439798765215115639416538232348323396189205574033621643385125080459717269065183259650742850797294782508209283830286068896294070149255376174446619807332076213319091130306646874143684789912062637348309466613557593014467803800484769951088591802917088877307242079943157183337262410475250227215503545163756006468986619447572316001975161633885668053412520891804725564630828653369343914100306951367825415451009777679360638538080861662149084099735420352262385181570425260258001485407085240017572468215588658322198452653537369600692815111257993265071865173581127259397862858492997306285914454836098340209528616300431139771629942333594691996840369849133699371698946533331178906871414167070624485384302130252936864401665963405423351797085565645271912048771525428622758078899534091193220240095673812434902031869471582306406124527013034621985173272824177443285440036159104723139387287186231280896386196742145095685489869885162714416133264233618266983725076937917458951176254799086275863191718955434578093584600586218344220018283258191047910319161820482510241298588107816776724855997946959001490254272355741698129168044437089096334892760557667113156891047572227536302537294199669424834750284429424197774400964857571719431106750066557798419377979112059429661574333148203587790602462702438833763886806168251083895742636542509371869096497629849050164219295094132914211046799428370225274606149650459191878926710121014925661536631437399240558756023255681008704392664252247614937707693725993657325647016482550217108138479568835159302178757886420021617859006883378108205696152152810446302691800562883663704491397820938404633463210169653474343253673408997734018415232236099029781889636076831809904594287459806672653851478929182389256043399106747325783963919689281481579922523203165738381224928004486059556145145850182268271535912436802767395625657779488425285289740706116639283258019380755117538932380910662118897078387117069992140501432564089221887323437035697609104256851664211937718440539931051205525182045808171384154642633060894288500647720520935412963317498307770370308782462697492949976541191399514232765772663213628925703873454215636628875442858680992592961035280860443585245409209257897616673159607886635390553077638845605895801942282663832147561513997945147910411868746866364368056103860496169801352942762196385255116501606855656735732464229721946851512595447115581242318994896228806860316868294350843923366982166357075609151141359617990190063241392571851573359932107569680265620412171740162795886461282573580873435591091513450081790953469647530997519633196739867565012432254707801849423047757504780377659435442555884482957045489099960460454636871354843395368065067235352236638433865181881555331887575288757702467123573887093069601982819725811938457223208671195691404373424354587891084633862177673280882898869222210888594230084714359975587860899722440702713542929257925412582474250291895534332596403500752220503098186490977570786880121569684965930501714110351604833925086491732270559043321523340540731662009869457047863774076963985204709312334605503267457802396205202451343937283759190412658339672519857375796462330503087514389044364362486764089328941456033698541556869027840830686080776606927722424390568562788880614111320926589074037248740755078477804760585441388524537198064803903661020202622027224465310595296281963448427895570901005114972326909682217050322247127929490581021445224858911339354375031308928456708989680014964122866661708520842867067797081212084802917741443766598569598814392535932902061033196675825209899621602923155236401123924763569950220365210346104834680368733475283591683272918079734235747323457240577008901960970156157774032465617285992433184900389793701599589975694268745245962383129098726686106381896467164238860617109511399686596805408228495437837278162635720413373546102851144506241496112235926084436979692306459370832661597617872996603267492083987149625852596614110768323283525489447874520341809137499210784844132822245039674686366298334133632152932380599150920292540701903685377630119507888676609467700794529551671985781266841735459118086791476457118569384486808452508183812166055013917065618980009861962706538804554627327782755803393343956743853295359336991217085661956260551960577441474930868421331811721135284425828722077983420778538516328962673945577785059814207342614016385421026791159956706420515416073640608874953313714730081828183971656578011250354544611961936357933590956830402294480112919517670282286484725581084429336379255140965756799383974221644428937013062657524002720603747348216758207810204654553310981747267215174430380862293763676953160680812409029238827948039853416497341718129838969704717495755462471387032788921448150701518512713960858664700007056739226761778736391254336367677005145032137046677323007638869081781987148431951208628193570528771329110895328024261180190512483923896236956110662144861883332119714221041710223649399146271896608719826447433292422437778366584194932712746863804959692592133746343924383967569855524081216530118306055793406966783847858931452291972842110951300073885534726523852741571175971374742672837727681599021458924541688716669141116678795054771197418381444371098127179658524842256936086909753946981082154345407731886339645553513590730294569047780385374336290016275526990020386918405860668576357840101928514149342893565095060723641162273823660100261560988702145022790057303122915535826517787787602410772117581921933772800482129318060404048974713803133500846197230777762046497650162942709910617972116346238630270399318516753975291031976998558336736857115411988804077071857202008953546276707006463875637314766772988166240863658455129929568769398569415175464437475451268300000072408887591996200343956240584586541062380818507313734710827009532503635468230377006774856827583729795619109457900258855195357218779765200420841084528725758076426581092016328564851968118553333678796674326712442462233673444733810690430368918563555794405115592004075597825973000069214114133964981087387451066464775615004078698699557305492137270874210801923030535060681264488529286159552120283330034747000792165446079049452149373901153493705932442305359820703099150725637141659080813064697031535543684981992641903767999456410936961274350523056924178839145627497398740908483875405766137864352038170664314843542476083174889840361950054004350887694728657961855948298370514175988039285559541412756557168273395745835000418874810454664340245413471870017212298013466146944691948105226735956265092365118651277640933419166001100850152775801458015835600700077321502574684262718351840263740310790093066574805849191360118570897474404486064595818149959288192606204293720370400140333388178785011832836786640666005822060939164557732849983074689531621410154500337775116885680819865593357218466819447330878961517156559642641299115831240673330880215760646383735145447087144897333321308515161155650866646391513929863503676042632962857336564721790628947773687219938875294908529099280340451138690938048936548583653175219143270918446684300225580067282466440919035132310063399834139497355517890734496895183219280803893921822447920747864577366376771351025006956556030710570924049944646790729810519334922116782492966479435223467870537961779440802027160889409223624290916115559386024515201290833035858439256253982379769620568640161786586143235526257646469958228150992626445429208976239167092688998543329146260073353855511279788474089737491265743160429970223238908413813485092593745252621531438315609216565216472573310452518594919407151164449960101558022159199248384902019524837275693282464924386279558093153654154602639860519669567164514873079394444107581102534781859089742895144897111815324268763512552174047087653764039371316465673766814111560910534308610583836207235407416524619649897870725088793461752350368362232782348767452070051474682852170851755820945906078301451823919653979066875601650698152839736715838367669203787268480055233347733330159781348516738494915862063004569347579449991509610274221105580389024324976315405511033881585883335655895225244658611617269797798699049003063620463755458130305904695997027992820993763405961346752389971163870427966845405590672349630144260507652813284144654538256262666990835773832415853972435785442729816266828074805343158091696513646092389565999531206297964574956850369548723405682544295728994119049389650140242140768061052655638722867499954462252136925777645061871805523783741523627285039194153562412596523984754921311112756567159242391436181791790539658808002281724461892059198330832202444261778442900449427390744933367736110016238593499990452133968328659818322161498536027824328267824559543748291669119525784924111746539383328840181560567565592904295099631573190841036321561594367364760338836838410068787033538291977543286424222380304420567750007788026166662332731209536331158424433800369806208610639719745413403454556376054870678230597848857001529907358357815355738803705501949464649747459158196439797914529868795313720124392676308197838168053638259361427169705805391968689810663426399936556585919226165245584011285883165188488578973043700230309453891063404658411907557063582885793165167047736223273621365854816757897629867125724417592238672020328080006749118750344453814274871355082524317266824200255492016890397220274643844860620146763096590273744032636448355993491079345199813652712521175610985633012432792737285533454889343588608613702671295435082353861702172419095534107876410841929515420270069451232467982004800531751368776096646493397508943758647816560180228466356152207236169901232325721797385307326530132812381445224972916692555917430936455885329244582761315191072896541134793310648842859051780140436242874247899307413241851807948320286042056381422850259711847315903623316219151941121879347580438862388512697301594007568684140015516707586871573226436846634831449927991563478384662403527167588213698651155335526201780961631783542453722764790289684380154426642474293566198719673752440884339506302353694816319512126598218050006757250229253736944283441934906653473387313389576928685044082673106130776639798701446957112410671307184004458274063927187018094094527333379838897258023760639308283905391123695591040436348270092164956824708639484292324513184464318658868042073102985833889220667517983738600974389564799331770133749240413992442387719122125850734899537507999959190025187573578335136418124634545637562547260445996508101753466139490861967625929798642790141645444845116839358189216192452587168216516350923329897906550133954333428444612242180809763863869388765799955144480949489767897975796699853175874002554500261398055753801135088829016134471988315197188415956572813587331830797170653332868544417434446899651977484746551362382685446659612013708349861351501738602839539345741098586622182398874440647729522579714109949480264031309256106587592239516185046033646346066515175911984590856326801800595442074981245482940383522553844932741652899778242450690809054224303835919737739629337701929894093786671279857217065316649748918469902139167618678479093569175649447392629787678117942903835603135676658603638932596524868123223525556665746599695136829213209086164132387012597323472287079429312507427521380183136823989024968482194291825392830792717948551695795312637435581734517135623034040681693073508499710852702349582272211873228092292070902303687591078214490250542794909305716081278315913780201630710286762057574526358750687884824736600194665366782064881537779642200495133895455835172643373559558413189733439389751012250816633537320648987871357014288179031048852472791542603294742438480019872094197706599707135522201691298358344160792855974421433715364986455264826829694508374541779226965363570013628513044269146061969764845482148730562086081585550551574420164096214325673600762118591231329914392993295589047491917727004721228794923119232961196986722460000156997119796793300344119368811326660953718517055948094021177938411517028704474641422961525613302879134708923442858455821240926194917408114754518058777641677487946721555045122442331113972425132848450446774776417518558810394818911846290643554832131808977122826591921465539759340468021949395782910949755078354126747242195843047035770439852052951998010941864257381877682755416988831831683732871603039946146828586265440891590004331254379993020169968403951196884126833681390791515126044190976130829252807100362320920920279601271459868662071695303528066064440282425653967473950508347019356766282352844983179936565563680949970088186267983794642848460540229996283092952588395428108434736913411322381365590409550597681116182146301460515614732833949399243684778615728341560755208274035442617947427479197187930368031524776337491239198206756374980988284833536957493206186598554191050058402212417988158547028187253611454856293811663176233221872944077875129466924982601066819879394991540983873456303146095824213922543308594266400193015794283120668143330942564312454605343949405413390369941675684347974831099399538702332796329307041953104158277237584879489541330811036564669862240139808958190713319853442153618542804556288116326696480597846646007807452695236102278134927687256540797012431776676427255473988350351392798886644693670616238469537543695297992452681285303339490359217125464961224417796101986759342724872442270994333519862173539090148478960179563810451328592198757864488966552902004038643272149162702842846020052197343360045569572897678414225653912063328032043800727474558592535611904236374117709513771120035152686482745362335794490639888049345077726600440016355058099170708994799939531885479891197667968231018048623175876546069313120590841593842583149238224070043171958715954075445164589263912762854224529296124065362987800588675753051825785467056067719454738183863248086650443965773204798753270658960709022548312072168588911680139660687961479790833067689171641632969584633380118875072778034203707335880221064816415645875153635395292729261990142514724720565034123708634518908901942971185801671356497023886773202887954698617809167932499674035466178538003013921966395626235459447985175096230008886664886799063134981095082263678953987029658584706451462318050006539321004009230700578284696562356328731554931983481648749872451271671366895303950022121020701946303132365507223226537205140858800860246323711740630079793428520552437426521394352365875382424745849808694766724257849757149140772370903594085270338795757580816184850682349899161704271932252428099227785411976766977527952607726935238039094131210895553561372302646016892173452846833814669059446942384911304499000042083205493086882838697563227402402183637295269310175994112336482686934362923218935379679108332343953473388008666558604861779592053641285849468542813967621440106335011970663515828394560234121174123738764850865815453066810043303233337106031901068932901841073473444797476400333125395358775663783332565241629046587422420618119744066991747543597031270555952374281692396167893010430336342983999926015719409422637301448308185308265086334616877901342569578238852503391072263739462024434828002434296606361750304683709632472724955961324510964726000225397438076267053816084761217549618140862408544193619931428360180816075162096575727654984494024723985544973494859929768195979266029465425055007918277608016384084049207066157848734508068464907013564917977323707912008099113735726333094261040358891682760472756173312459482765886653272351593426994579355004037781128874067103304213213189232271843985819988795231249619532754063411531954860433091313245456077076335096241838733597107419958991081642414157738484953521436793661699671460051698359995843457056421964985049581620720295707609385133378198082226163649947007360021641752046470844252400386240043387006407474746610848992783998541974507455747632455808009561421985574862794116944912841221285308833278798935316902152901332160494680684073552992359559573574732834239059769290976916618657392503200080525679041498144513948098538695510860217442715897937840612980013688208073659984795456949129434062179770837789818277888821468704984858368784074241781584752891293935096117196443116764021804233524276789829864007268365399499036337058729600666658950716511453628124756788685583756008129603798758425751270676068201893244998856552462595269455047707510556841274415101368738593824035564980900717556911207713268190804473410795658273896833693625808709705047631709688755528230334786792293499573854598986913741249984734812334078944658053068639126747149322952544315551441503989982286781823965874565012000095573652932925937827333534048946671906685742804417164017327398478427052963985837195145815282428730216942249706071550413507441649711788901470503555915818242972743126876226659249707299370236938558929569610535084969744109204177298286178652801430189315249961191075806610112110196419018202552003062689353267664950900972343127968832452023875866571788584762459495292445580202176065699158281076317970139732877843251522078823331277115598480939596217904156440838117983761499728189534178681119174280836508082986077431451179028709063584571677649276238289180825031695319036666208353279125491260349316709983243956644785543055352377485869765173933682269970206293090664057145809813957442696379789835315308739792381820674164743070517699323776456229457377269988871331719019066059704754539779914223112170095413045068440135528963752997871160280527023838256963426545068736446649941463033181432205335389002128900625702689487799238058562022702476380971613647633362906382793711257285552280034006834975101092232286135026997944975940226021173163605184728228110703660289205721537400376193756195332295301070075796442145425850637471001320330377969208908961669220063656189315316442207869629701714012838265712467815346460859682016176330182697130441179937622217145012477079941432041449306273171731565951587430037508010014351862382527568051522956942789520254308844192706372493471064477828447878760678691262253011585537404522032189317332007107088697096483315097127134066378486662682547789631297281507919171965983772777007846139164846126590245099290059153751184085484425837731069313307599227500375367468267361967519644063519332871670790661245638148212464823445957767819075313942660168601824270987985847615550448593688550926379663706378001076666614159461723391068320387711513822634867930188547271938643196698916552443668274963515262824151467950907477747176257173208132606376307257215205426462955860084720968444506949222245069903806025800252447800586562741993952396712947140305218513880493132939044965156399424600697922402197557428615607059012321313457751555391281699171934232153762819125327225846120828856094287453694826231276236396429299494368432085908658663766918280711590794281001227874179860304012920210123472677089373512920515035399284506655555801503372309811358624878823729296516031003985896503104439739211993462437366103692646976088737305197200081344236845028059779552749159639246506811363307090940955716556682946618802873724959225200501389097363733811558867965212064996918405660035074107763990175683044669272126020240708633043144500323830141972815476380159839073645821472765695721233670497241275331743840753720186063775648870981204131218661625787159226969148898681366998689731621592686809713798331552097766630436174134361662779554568578073610953005845890977815407497773101183104290250279105963289618187840893162612753203950005626355337075469248994352737814334502562427709225198766946193797155561499196955808860614185403590468611269350615468752796219830098544838860285010810890261178224114285970587116637650884347518217775444967829384928300568137084486920586438346753567609734768331740312960490644812278239702631285438794283028584101976644710400386101586102600961023536449899041026871576233917850654478282428189192014885629917830673973086733300666366214503762334033330076801135702001736519629844011714332468656494441021368346382208399224729880371855074903524438944702331983029744627793044102534356607392841272940051892517307799228322530358773506441631506464464025507508013039762081236921594120681851924949828424823385134485492696725507023201259795028844378818436166470861867636470887785315960709133771060095907292615893104260106688381041253642808481791271023979666446515881081370500579288568547046600077966596232437198117396217740363683575889175902315429608889091433372425722821786302789331572967704474852383217390668959241647406219875270840642990225792789355283920736638233294827574703601271722757180971280522629989815421288436854001103897186359034468360532222769344238610405808150447572309822128518668603613046570361687511113521306041921621629393902048666105308691372452755986807210137259873992447519918969279201081025739146637248192348702558346365561602387808597048340508880769350706119706861302614933188947979251104699589872668755875224750400926098335085950577838985043585542071843657416398263251755103141894968537318155953856668939928108755256045444416982761201272565023703281567632020413512423693979244147053374940940357083111265792224846666758203801349455954409799537387492395673685625848631635809373260366273214551483791377894069776153359942172475497616537916446604355349924997608831713517313705784712059546435922965757456348782881605302391713985161107423980789109225524515142708563699674216613145361442720023127276218095117115252125775806828368780408080250550461681638080955909911647314628925465469999902763100684835572749546084363238510056448025033788003544683840996453111761426570164476769132031514743481475678594394947254897034551865476378436517278961246799063891140819150133021660519163580710663939267119756941114533948362358156241801305969984726183420245252500389706047239332273521002814589609065114537352156034339779202283058840798976668539734290660380895238652500494937353185288018935484934667895348490282664671447595947764943416011560281006564540834914426444969861874378245093136642418283959103319157655727731565399305408933952547093940114374776290414314072945555681901188574280182834720836217399754749401683299376365011736814779128329029571216154147502756196229082942201217345889942198554457178542719058979251785498744713692863121851112212597153560781217617886574620238233208579307749985742018850495026633615053995479606895741343304275993849957887567948879109754675176712999658636548436295757162840731423004123756760637563937613990780700653738150454704979392317228664813504549930347448875969089779571523205427552148281327020281247982141604400893871086971773284556412700509513962735272260694001659803096874397317587692718851167983989765057529673497786575707839885385481064697673222193435884993665892769116460053625179309082360460584106638238055223550149797204624200489430222875761376471924827258662317619848282780880677729137530972079910386933977990337451934211677935875842557740145164806906008197162908639840495248594269415046205866471770878156755829476406357818662615929331976939753911184284361002621409074245533247167661169225243479798549358236662173411616757658097217291173736037358756092324622958693470555648415833295021332976478972323944130444288842171905014848620373260754331925419041334312927222433139794067513170875665804792725911436337154620597455110076333390746154301012084544486980304189603829689734913046220622391414122037940950957010825814818278149386069400820792656399632389023376641442999799868630063464903039367290948619416829652331982458670335749436444944608330900894746017928988810759043459932502995572907140015752110402396544098464974907298770834487539726119685845594817742669709313497626307326699171612172151907184048402958323074028282746911916313801030085633322078938609422620582936548164724343921662882237318363744365568933962407867629779825438075830976869049917250927210184161457415227205596273266979882150518115524476575416975989411635163166667636543068150742684662718130277255830871695388590010851414035330838935308445049423592672316825605591312223953704526745088691062581517717830911248020517512563983974882947587590426398518962413839580066539131635679678468543153141281242022072594007125316561885499433015829068813452451039619753689570019744561874412930523036305882185487147393216035727395665497244439047024354299989319123384597791026043918636348401387044458667064149100013618821978557633709615570827382128220652415757614749813427003014145344808311107467547846992396570028062634811499657743274095523739730808165035413268976468743068481364035943064305749797265040952496377218381277144971055944387421427354790540717511164525931193266545753298420000865273120257480305484975356655210545471201483636636806006530076289124058077646451962612500770515220415622121018088994099133472492005908079378786252443749425883590431283851010243830759677674583810992754903785431757465814048045969207455520018491461522826000812471137506395448975989542395992036192774792091036615151722097722559155165830182441260193517749018497695693387598700170336730691587700091658770405284103253358021850223514775662626900612901716068889756257450994954081929923188562387219206868582222910994656560374101142345665440205101881702544852502881202442825429260525627147741720449505835431025056265133174900951170476799941934971344989291747459474165571748714666432838187816748029263967601894194874514685294923374532518236327222199265963579857300026460632751956425276673588393665741279664448758544111518784832724065369001785805647451683939314235923706257482825805479130936419035596569147234015710221047315579988165822114928668279674908237013774709864370117850779186427484968538419159778698598320189793968574641214736243875130131658945908088304046550136408978566173645757456899983761862617919990884184108733216193604133239534697937397604319079379879696100535744447080470363946155796385222112565692926530193124907681182161391950198912884133753553970964407640986448239347820391621127733833310541265449688168379068698212239753013708339776907883218407118851299112353580944874891914700199034610897172694891048992618227925001490553943133578307437308211986148713234804897544679739996997785099744164404587313905093512120004980399260200291991141693999039937416350614326455618994573660118617901287165709617049404048158957318807749526979747244010039178454691970489718021510442669812082614674763811712463318126321670600731059421528762619803853921896856570940927526059808307844828131145747831034327655422888874665039263542171348722226873412505435828911345096967296605762845037636901249494520288896804445744396625185512279443888349306944485238137686956385177509432568988086177738544559764541091884768967787715162919034449502144457019052823909531449366639671904823294527352157368042100355656250511727922489235067403273993944662674951986405207221072631960545411916072163528459636572359239907791955081488446895889512634060281638912622164362568678756069348858450085452046713786446913434757384247281859836653661863706429922840787501447619379298503699543165774453385346033024476305241402269985342389787443777020774985204266400419749293207416192633232228235785409138347409776368959845980853661673929151210518970302893928303463561193303183067699555205845737650308546090777921333070945162590252463772117416643083795454041089551695565887134375650155518158533169653904138705491370510267181535132649718434666906407088278734707839508702808359964926226982893830890810417932722939690410304598109251011580390515272147918630796840651132025758701021847388240299546974774728465771673479044935893427928047091551825193135324232119170292120618560475800671299281007910282466464836730119824248946309576874739208341301408499405320487379732540336817017866917395685331954338991639896287600719755794967192497893487191597270969276826656397911182717543997493017165236133368873649340297168180085933648960593862405735344505798875675684341162956248564247581433319441241013138239353481194244585139379135549339578420429894454585889277127010110463697051475341432087299554750237240340197470640533406064777718216549011491966740290347869558353294049571333790640964040722417381032553000541638058828092916338459654514576864483097452901591547035826569647998127847466134712507145408752101508841469690775839322976051567997346565905550313820936400701182590314744359979391143930974686659296933849708247100962274001534845920325496803698556561438446827529375472940204173176044806960936358659445371627445088084871422030783882917041528454090357447896560558324196686315650905575740715536207846841495120871626566171741837195540082405909926037088108608045724988966582740511807300508902363150958353889226021749273873849932115305326946822298953998684074802398985376837035789484718423157474736855219073652578413994294067008741173730537794131608869177601796968913035974138509389140844744462623612150015014489009258004241141703390857200312376759633622718209263510066698831363189147643399887229555289952713852404258648801010077535635985693113282251357249303893280135642795121448537639299831627399644708724225980427939597909559947695459997307158906411045336490183402264786160938111786835942102581162172492031471924900424905699527660328724430402103758836668024326778234750700417000784167403619904837903059701971157692976842329319321983264217657707808136530695184600517800594447266188294488845875868444059210241514463993285340822792988657515246124610798755939204627609510841679967315686844977116432308035367389253412901068264183594642458074951119849239785787931780414340144738016566277331972754852536745907402084166826970868924472551263164130124031925548056100264672292094791632028388885962082344096043012728984711614261080320649966751570621354069808187338399922414235537849700365641814447091445347327906659652541821001779803287313467600529418772776123028950998743648217648691553038860452511486728033186880363763940912403609745364329603621213624109259219462812124060553201626629145628135094877081983550126853609821277232141491464409380342682382037291716889132608649065054109375597885512514100118054355273388832113522501681871427419720485399415547320760982917129741042002637028183751052349693476334426946529715138049875997327120130395825447072339239144613636713751177698643272001167439701532792568028708136609558273997105717497840829565271886836586968024355200507878623077940043648971171615880426951909686221441456282613075435309795024213952415049852148031116897109955727579409805382411710763561853585633927594001476569436129235014678437807467221097189612280370046009186389041814662305592488599012030652923932792258049023128277372811311814060952070618723435794287867859639972699825289637497209661692573057327050666276220468889297347433016853452275690422799131037549015418150924821954448329446449568185504314445112994999368512652397591752567425919444045345188713542179980033337783896919464091231557358170737229649824968199620870343126299903794037185932749257699683862096669652459846228882223462685650287203309603059128741919933424986616673423245661942175750516550987957138564782238236636087215008516738650324433141598741860717187652619905634774406445247681398898924919901085204504506848629278334540702223434335768839493014415958922344018367721183643883681047244854798152678902516386032070208471844703366192113333809816198167972598753420016354612468337897953672511918103491898765217289834730533779264314165305927441257089092271335327364516215094439312249521836414005548439993974710895655314050995605298487621160019353463433466045197916765140029655878258527593378166193246719408290153199791566436595735296597405617904639120640761092043843383265140861972537099512103036056580250140303728325504855145006980353677597718226195718396176524034905199452054708766871744092072389029640795060719725765903396368839231693563605975764632251717948576303799336197544192462924416723826040558635490677710185565789775005072452233149635163006918564594830683560284920821857175237627004932976662847847263510677062506621192821296286396502983494799224557045987123648885642415721373115167673876406600388246061290457704164613513704683431501364716994200993503936549294798650468825129034595863820900376974955474611197444350711817302849758590726962651441401745376368788030731080812276229675413193824359427301506995880323513839482673763284361308810036610453070065204631777023020354257971791635130841348984075039044191930242632036966964946300040942450263182326709860286714112430981235713588962353706297719155679061565607816574951998958758920931922748073187628338270746971798109717558167552748406665390199239895489307858298226173796325672025171005332450953014899386019989824131615576260768846401585363290392789851312794648971877476752173836519661304874949726683224502753924612441135055081169756719995088719343980822544451815596951630077883967978313026055858886681156050727810075463202377067652886279538899626556405216100950192713498737537682016060172625291134130094175612494758551483331630112407405920717037405158290840395236482850399922349899429264667525236580936056747557671164962462622237579318384665379398364447410676758918780656907708168943262831053731160242809634791846562172994592411110319377057087606538771614344074894068146564012990278925920800850829646904239046437987444053651958105359925267536326005393905832363647340802734212847838995532024930349325470822529934493632389900819437182143700693551371768472008807839366112070909561187479233763237227294578023739356624634036595465248448771664601945181548744791655362076737531879464416225732699307950311584199281264995758335666871742291848059757932975988596416143123562536937213512769088983154441869165796774653365156071428136433731482221028982684407917775197391234245842641782006388348762595318769406978206271720096072830262047151150994011366397999339487683285470189835082982287755195152795747263725898730701333246374430451771408765396320472260776627820563798676411291604366548336889333938800563699416147605602094836907032945899083625530009448695847286166131560871626367022956061785623648985539471787069532845548141245348354099359012691726216763855561999221483216340406692314185193599430153650944339930977446893071731082172040615707677510379129859323840392156053479684251572714020246855067290268339864382684742595472249484031530512307093804845212099293493909876067297915228820034537255402638996717783584629016771886005361099428950523138429633176284330327564316151494791539212835605985076966184983088934742665276981318256417014074789184958322767117812095323887670972182715503758136350047435256105906696334915062842470997586029552552034779801601342559056771848877050646289974082151621229766352557980637647620735972597455460142487475930805781663647531935033421211234076344520809661885517354227801731842755182338211152925786940698114590279152344823121210643834935454361237128620746334081141311389948503940583225571828114905486828378176315492714382310934208979790208833295861395453945045444488058432644387058969493586629886551842152453613505751967949675847322227947560121459108519456270492242013351031986246132446259088167829431545483779907323664584610264487601314423948502996910218526437320530348050839810591825004899569510648653997647634749390020675705186651104159373185640849151404554082236547918343764010697973426960362384837216242202770095573271228073749513456694984270424163439613091512093759212634396428338473676079406314848357582239095709419400858521697372817924241345903781933815064357748788808503272614846722357276054101989865529024757239499706588648571803293274769853826487425612178713102035322576355624964666931069858457224833645848233642731808747884904912703835017831150860056846369501827601606824578505976859583064030926760179285011418206760244792784929974566456600286646591370406925148211470193354979104176758892850804512809702200631208376990045574574301768237511464281982148494535932190826683524523766279071227768144527754968628726288014116973341284513993740929517680324471520380068342095997968204593112736276382835585620111539451815581755572529584617268577970005070189937468392665928085630357229387489828861366906740094245772400310548903486845642482011872414644243546406418309202558894421478253332156365336107126591501558782232841614348881113975945894443644225347301356766991517338083686632174581103521622055500870443397793408320247320388805765135683291560198602102690829739411851701746986623200364989757732855325923715407846009365582549371050532107488072799659927002837525815906885449035134578971712597132843912858512495871760662196793449309057959617398160850630425329430546338945461822502906319984079552705827619751803855306733828462145961483714222461984877909277255011325925940400201234808316566513312379259645843457609728374482137798219922321646734583224874832267405987532504572923166520640402510189233198572544918263148209563862557863730086856481112025299286523815307378485284362280106121767173514234840594168929073490664554107684633747166712752859203219441790558899903207702424502971127624337887137791217831332671582335264171349965416629774875709397062375858570113254069086085206688958660718459050800100874487108013006745449175445884168673813308969170353027069105217955195958914424778364472219721246695991404577504099805967493808874413886777070561352589458396269881993900465471416693018523955172530892615068466679027370978255461968524047815989173707729223211028454986382806195884430252314413531716047833383013989225876308100789543522620217520565893464424634615140010528406361135098188378464992838137193687124931905253936372142976934227604750160931166990962140982795180192009697516240495496357051089439497792492753243816623756642340367171976069959001161185869152295300110100742121622360777401636621838076648298833176243215151872472541137316034497586750202950217959425223171332124106277935246696084994975104167964064515267743653117924290528917648554968731788237685628117453489138636198908836636563268267282350999983367473048736389689992951828358980452849254347785876726799542447691112310953713434408148892441090641628197282365403552683638580597440823268843478947491047917928572632119544833203406510628779830496579640287152125654589623742447015304825160260622652905107336959826013150891956663661187567475949358688843817937234679864952778251139586092699961304856289735170374202251880560114844432333660002173988953782378974392692749608771335140274180656425979643512237917477193301554553376802351999991976501588218788254025206220149179281750726772275217828383389656400347010481862141523063515688241564451834447309697172205012223768107716467467589654513338439160493802929051281174208913307829116717203153977354556339898927202893745601561613882178848283739838515526234693319959092138519502528724395801811016406058953691364044327799229887144852743763430838188077534756693344122418116344900568269952621600071869823036252760611803731124992434393583074359670945795743360648002532847583559372996659101577371397238700279291390015685379858558129790875648897718266948573891393770241776419336571332864831019000922769307344535854201887070474684702440804913179868585417758010175862876416520466211533900008426928077792754319819765993963789705323736592468863531304599964452514492975711977239723725887196727708919413247167985911921271703123667556000026113272609915786535303602322168768134370152525187694295142420937934030398613087841756700395109481918944403143316007182692851382930355235442228988604551528527860012152930531685014058767900939123456481959573056469291760928996105050419965289896783569984273368642722830309055176026855858779775194456052833662255965223162598829512975600330579467203722336880551762170772397951531286934019928193206577579969799228313995179573390974322864525199897112108666948810248087801048319712095944004041440716635978255060182117204539068217455942743553123164108043508501090773048998410512084499239605785406310744190374605190341132042106916610764283141530742837481976175596020520810365698225191398023814613003535046294521273456447648016730474681347483049517777985281782859907039010723748148727230356849474829288423395422119945818948438181601243546504025611005947700821326492116196649424172899077842811234951340898518644830611767026649498071652541514766194234903170459570888068690049670700860307062415122115309688992018262446767590358365585065403224199066785671869684636684858819265162261245976625319048103315741331774048481702096776055371766174392516552251453391257040262190131140305299679333547765851447624787094835380519971649301685593951627592740592276701194289456683043853780580310254632928055047718814296936010104950681278823951922768959012986923594060245612130316567632971737717175524321036117896676987008794300783075943380690238657305731758389695671215976264609996691733829068392690028687526999007480394521610569277134519939947483748471222157898639578449897948207313656066671659121385484060937884457485063488835362027094900980419282628244271708078550856888118483019001039710413952107701395407226840374590724407544313655806548679676023172082768410008410767126677752115848972950215299635382537762166135650285499251714793393442541804348163899385167024072983484363926050977872181041813427487504995259563257218481699017210939649187829033036360477448011255586427674777749290969204150675533485859246172296585258149631513080377395768855290865782472053796037815436550085639987737716857922530762500473780775346578266676529839242156896806128860688879091154544391425537657481772268880852533975793051122838109790552340510917237318892966077718043178531880002430890986613663740399354726263387841032540086475997734249495170389038346073421613539663192307334661494722545312993765252713246220477280216647708291210986875717459013872608347244866598351722971528561986330347634270408114838399743098481085213255502490755551367641757362458767983213059838789337984587896040165658553718364923246529923814829632255735995933327922453235742721315633850464341282576246466145544423740339883398393701464920320403161027097461949462026695071466776616524746636997248101630230647977409419092478617484754337089804908708083270332139426359818869003732421045479167195270063418388564329552127401171082855637752482005055033188893766991187212981506626448452903329559346791423497561319846700895235756928448319740115152996204559711151527288159125516160392395662348126816243894302330609881250595078082122966838320599398320813535056088356213208980457831289875361067079392536067210960689295437079870362289083095919992402779436706330733285506688454669088690739492773252048826413797453523757709458947746784883818425114040203816159727754273701808702917734618366716251225196142885085151798588428713653169141673015183968373767414539074368312781777967477602865498739212269004579434145554613580391888590656655110318651320377840981842610940115780093838287905953368401286619240388655255998716628387964239143014210697694944423416923856226764689253678765574954728138421986480071761238419063665738736728622107707665607438202039555710499259934691524817424424716015379950184312970898896589292313135883392740377624266733644695062947058631383522073415938408214649489441612191981628773555504667343750426419725760860612431539579349601384308148258918711619108631415717164850732247416308478326356403136139630500392460135021523771751564498726609142411805459051662663836063713358557974019294011709961486665017864378977576926583662450168109423492452455140179679015644164860354535124734970503380427061736832240293238349438016145429999927247883031584449453331473088872971001569520821516136082994640306334930985476037819871018347634822314606275553043348715366959202005091341417230988938581675503872340932539358622196642422200828897021798739284724538585512283952215746903609718173946252655354127428960398692819146140637488922991935475648500063474555911608801319612482054206634600999666396055403724173753640955690293496466194609733883534822877009760634833132644405989634442058077421482573167411636048022858306105898922156525687750828030446801306047053582943686809361528848485995400755766967529371649332664074028914125736763390580964694454753637326292632186267607218603404781119145389677586982096004769903353242632086682318458238746271336849262563701727035012858714671780367362292067837900835898079784519045452196292015092340655297804644905946795809531114277079035871375856222327968504905675628455311949734455017904257336310224102115189758853643792558526274390858818779251048259621859150721868476715623706633338714278585212973925817769870101631054714408875275396891160012119962192720347385687994253708033504221237103569316530184130152169588607755320176330566336572301706625076746508353760128793429802379246625941227688407259071242322579148220568924043481858055292681858460020102710699123089056855901060894921800086623461175335065110372215546401686231197939551147807421930791295822688530666990716962896366641647472633750949489896781294348812982130972544358653061092966240850434340652265308200093026746452613266153266781670731241049996242973957671807232839079226276154158820028693856895658317598292237639991135825427040865079202037110528410469080328604959316352725173195692146740929279773195184873859260518079172491879153494250155329277084966211320788698480331522180129259187623987471949456183108567327034261983057075790977920938762847123805215949843341816184166803569414450922381230193333965914039775159511282110646885461934342032479490919812296650036903819708502735393853782047825562886690878839779331781886975533170510446427490756958235110461729094026747973617882502715835950212426615668520641065639913703184718789992144085707487205496161616788079430707940397234627091904065894632113842428871371681674313043411811030518656661430113447676621276598022247145723437369288159541807671152665562577121748657096418814198465204311545519568193061793922701166965394386425445208925991054071943061859476238094305332471211953636759996395906948892604563493451531890036637253543473779264337457927293410724761165888320653351339735273971779022161335016051321627330926632148700658840154493336575202225797993942994557444864332645031495543161738223866126557027404674659581339245290696108993402315918206193659503185572959213928298153997349464616933272133386310410689485219726498472192466726201164112238147737705748180544599547435731885836261911337106320137536136621309432412925549040736597302176678813963363694278718228809710067042681088807882905947477914487199664429483111564884085423927677967952075435535710458891196560572224812136879194955753644793386737689285639077093959768746161771265830137473531959586058546156947709736690843683533105993300118238220430267981633576349625353666410245099114736662297668616261215436201410861977438143984281366650706534439196672529265225784224862229210605824437036907271111979044625804329618468178813272119983465102595995227547662268706950785314877022706559567309693254641048926607697267235807473155130368051910859394077366245181821513205911087676591060104582091632569735041558872141869487152243649642595100545354527780488163986031709703326783194963174907047740928943835215164809711000953107118451561764421966907999873057661097708768692884147854319457408341480559504380515332169973415206447845327641825834934503495954410233230230805411654165132253287852507501688458977517059656300038518450574479484717801897966173306630354806222126430571525358637171723788710181192224247826901825175757187875562776057556793712194315617618075040090486232245078193403316905690719833202255444441226207099132083559475452599772153691479595635643628004224276667379426818536512446785735265793247279309410381888700797604801098695434738279491847407848464049071958002793331677937035903213687279453349718136175910837814898818461058590693839965155097748357219034750214612362472212645360795197244240101123462923499464525399298378965742309879545270391450067419469892648123230654967624717855019990921192666646941554028086011184577038400704465574072583872963389830903066458167192056719479580488124259150961920471433701104330223732184791097530328450318336032970690166091643675025305101671244165776848651995815231876773835751610542670872909723610823178546075428762535951114938477888601054138932460242471813050935750945249357963184071736178524693693786588915308326973450178394072863771799627280130080609066704423981517397504660307953422671162426549965968929314493485322214725200219670302754675284932998350251639709197192807538417828564567906371163322944743910324495119359285490054302623471652447168953586340054347085942507206851978472448442146286086978935288494484493756785259304286037355856582532379960734956896744929405659042850559331974601674730426060105407561002885871134101997387622964521353446286268800843111980865863669959646341377913864203045050539487169715290219747320427975022610393542905940527646384487825707963315740758959497581182258902180410174533916692670359971963200368658710757233260138697053377481752165552892340028582895327607034020074416175369649603065011244376213353337795974571720816973761472901807296289278565437077788625967324960233043589335522262777267474948627806285994936845159191667413783502740245599206723786688414988253739487774185424115318364291221087280660147378785502464752094531810548794119420797253442213263504419865453047829552464766230975012700452645979394503078947819477396512197799085326418755629482957849351291542971361096300691205345130145979986240056570661425136928185145594058007665916332373258388916200861374128821639434551848797071661760448176396670184089765234376762242691673562358242108422048936570190629167954687827520431306859907982107622735995022594689155047340797985718932159595987991749360795740992876369502980714415611166434983450338058501108255606954860385930822578516732463484635385807679506978780112179637371209638515359540428043833553249375257723907891242577237624437354942689038932802665922980995638476137686219227273617220143153221584057342757497586663631067292245349154026618217919002343275371674510404804245166196833099797505404855225651671057476084776890795349594478084368169654747053143980458750487502692417037752911075556492737553318589654142275467641221544112328743947668573572332332302878435586731972053509326565457285513995701012305883531333122702738136304798218277103352502412870403720059041762413461122179492018476351816317433219008290210014443225493732732880264531181034431115400607977014618189322267863155803247431726423161005285603373161765580338521267159977716177063612799745451863786692849493179518100241876536359282646445546326763777956895975510227966011903286495707085739743987727070003653990939867344257275165432724327887365318360684166221774431449063925036437953744342305462878011293007354576387230502910252711569219149789813105427119026359088313068258688423857131297552797481013415077211723103834593259705040226557863182956865174021577108557114836154731001191946306226915388970686459515975316977833331165596936832144335635295622110824020804276982496158563320458407730711396668750032832163220073994214969975817451691037323964302259482919981673908684414229903040351108337911587053485948287367379344790855066434725516286008226130462177913466317582165770610219410798687991505515480130407783965222004194868784421482699563474719081097258804199132947932711301813173949024058735706929040405443420475148281755382997792797478093470644660920301807050556869692049390797628421377467953916831742381546188085458872816635368606923900104505007169002665029228936938030386777537623270792730347565349862133529944297858257586770596998619559527958402347927961283539642881319557387171211494661245597324362079103167941900325311948616116129767258878336990044006079734054071639561584685770081718141672740838593217298223482709047195164726799591088728889839475155027310979288432987586290740266836501486232437142767030582447815084233959225850836450851451938254185385697251236219548427120864965607965377143522876011060853514907036154577073298887735142909697670067116689942947712175271663945374009038221519287433618720956022739345238115370459628337358234176227592695946275477188539070994016481694184871147533674860771368433158891514084970041529573036012050308489188006120153319592949397977090472384031291613415120264339691277319091262980093689225521049874778160738475980963658439767226416258907949626653828012219658760023548714522387695964565654817971322518478192155053283274501803587287415654462892236688695866493005583765032946384251314752589239327486152187426747881027086525072656269270204963438907538162973135435732721555228810615415834053185363618154735999992092089003354690495191827536298411247289132150344345542384510411693039368734052165126237251772365900240499691344373547939349987955212245921113886470312482108747839973994587815810498967343465284838496514159379139129344369381632720654947141058578858970731021916096209719069790096735884841485503066175866933476380870247207192701764377597753827460020342734710273565190951514683627192459772144590649051146483564946305658004445997429011602271302577834472204604530394149403210841302423295278330703024115075735335710215758519966136749601766531851272019540977938806667539476064211264969642974974426799474567709731084711143847088340044012039480309210464051434661443066546888784899062373861576386930637690882314508740812784548043716222113464273404249577451434662117960771718298607621632266066417791556881799074081070878215632262857044924743270725797125937257852068392778648594977487812156536999241495508686140670650258210804047561697975037471713527070041861959859002404201111701598898901274024207431308472674309208401259480696909562854574765310913214420341626053698426932793390574490329050469612169404684289465204537247456612028230177124706330273195157595117167244314128733850244372057696449304025759749876772401458120303868560769084793964593859379475054032965483064805914396791706196595768181570370140919961169901899884432431738632879718127188249575092350406554078397025850473965949819804825078642767624839306959417671149865154489170664235307194070237359930737738845142948234623720490557344783195175653686895047436007164720188236707737957946595622524632725795921970607404472196333710271752372988476688954280177433426004460824374050813453055987810514957788030479135128151755791834367808504926681642473494808327048931140055750992854433189177077162932525255731197171041097896889089306545756053184817886296892964881499263463471695633078125964303401111625628268483323950618521403813111909014330294965307587995688066627672756439522729422856628934045351583981551386740809543000374304203217818824840810450709536924633903389962742853582068750840456483691168386768044700243931448475553262250707267248718801863948263082239254583324691598004829785485907298922094324445684956518882598120824289206217230339059749490234041942745027937777477555422395627560658912124297975055927539766513246036653102842407160395025559654351619865599079218367529410282898121147122995056925150961613945919084764651317688784729749714072361560787469848671658328298322598411356950151147614560509024731023687005910754118022059028011390400609136238089319378155340525452018667059095642295797806539343788012079623958027559970198421754394023489646717411226000273137646223437582791118444123523594760782642710907872265755450368159145393228189252238414907381883517766398753376522102084374648124046939498398713697502027041485919005322419363312834239314515211717026280892295116212795560096283164651425152540825531644711235681007538136374749791122399935352047776037401718283964246603721715257560569999088253705857764748856163764957190706449207423598859590693153498819911305885676156632049114441888737671775349457545897584844683250336999087255968679494771523064751231281210722810582971316852694295854197104264633386352896570456818490149868744059058978435474142486961646753351180451507095909069796942340668970520984210025359840992284798211343196379096178343941621918684332819384094341300191641005215665202832525152576573216243521137391285118561151646830295647134761506961904887392685232769166361701644825989677382367023581804862417548282952669957105195973969977085556582518400706063628302854101782360523028657475259328173233193945526100670921618981435392388105067565080988236155713570136678185078975208905233531186772856631581638077311158012188787675400990531449225014040292891541624010303986148337710438237885689136877930324730261211809190490385847196524381054216022588775859734427101704775331395409696220393478855051114972229245942858330518409175683854450724018361740093570358291520444499780116210668904683813629981818151061802105283034751237419377501609962177221050872365825027564281913377922331765576661631442734313965318770544531116943078777916783111431673673489041096372485890239042174009366185354966457274488977628008451617117748001416310932479074072619747488357503321841840710143516570389585034236522616931131793946065785911437823968522285344575814745162519857850840377737263321829082611741512054676793321556399872122183057640012955638131768585282184916634242582791454317353763072937478044623715152104668209586210463197803888945569441177888587950010850359082049669368140065098728280431043094291266725189189094768116770250477466672369663722380857033463450413430164714549342105879384761878479399093552769819956981310099344284975750150535770660096476202676115230228365330382533600568323775904265162008420898765066923391614004164544986210712748879807238171976078468427236364310219621057620812189405718538099161687275330724610338170257165379108175552706706322556786374015235895812918439215070725494790735820410085249921516266524037183895843940756760050569853948298716021072486145632633136892186387847963633992389138541270251381840130611600945608485951215360555496431176837142867150095693898251220314468350471586002798097484580969681039965988715129705145755599023389145088275271173170412844489228667250286556094225729865449348780741445310047683733844975212557967799686784446319224341451871125968620355406423596356243087363797538288181504355033342142406916091908356456080206823104809216207059496548666759177871559960054725815156215567501965936545301796453932578475826337303621795391578260041112398271246984678578347758968201905288750805664538302976345438401822694036901033588708828641697508229547076887814296622847591343447606224761595171064107421894399462577377135500730315292675378256862216463004216149672534869188280032326279931030735340255922838124030424314902026974008475919337817226728905386282350815509993641585850486319606638632867594130748159371198595492860123622334709617152423253984579927266092585795131858390495216678642766717559238995545511407814874495930751462227274008022497359973241428352181673384930752086322845916699947257155588617615068108490338217232982736144002685740690246943620342813009075831248252083995864587880008506545720343611627905367395727741999649377749737511042672553112413266935195903823303983726128440533417224452887754315530767640274542994660826646296315494800949641928047089891596576540096906032426999190703287699486502952185378706880806262810439812515331948371879054924353897121303920609281077012572094758039749005117523863458535594535311609872218434823786536278711396703480401273288922330406314421626579218540446703901234219918178837379789489974631038878555093625338267979140410471256525463105311824199971885441238362166015486743127080131147543629916322889749122528009679077511418898785656217129914581986533782091730586290448653841604689928369612313040521110289221209117975086802529231250768571746901877594940138615709220485973444198174627033398964519588443423701487727196009362687835109476006748725350163265015460910204352244895136085673637436559277445446861993780638695405677926781906104412912722669937735604759069045620611718565698037763412413967648570094780913122834549974780491017653249157966678201369891827300541381087568724071656394412973393528879438329371228385972565371080738626951944379162783078931110941132772897622241613778115367665035563611780077390032268795980904531421318729648936767802810752238302385802184527266879353417281831905131679749226919672942514296105356444710794193400088393982577824630918129358155185752593117412741514777267498100750964450400556258015918693630679172764771332399679891515331103812700807334728746632051635804840830233017445496551802211653597957511485467604632723321191467125252885043060645243234003331218471200185024389190602111114882404212482688731614569655565266182708662534076600162310401813850914272280817239740259543124684362329905393723069896242615045017455630499658164294231655681558218354951951258311885841965790697327584136270295764940729006516244061583745200891029183989087394595803328572989782623649949332191223289287710198485545942021091366267942304328994026354822598877330350170812928161059077772745262211530352336867518248015496743081814598106352345059702455463764920032633165367290963225331600134450027506975901501403716305185221677123656561231524426013539145403357642010036204569577786244135374990583823118343891823252835998945244707417916207910692351840947063494602609578426487360618940878564521275145399482167154054421213420191251240446959833278256676174388549677252342551750711460224727944626711748363568582944649746734992806453110142321925700278401751017604354399922441767789636351554379467307042457396375432823408089949746010879974377627957760397477744978481009940128983093017914215661010070632777033312224232422982560581225591734628854606626008267556870471840355118626461560155319279144230967712976956673740997199843444249995049442560994335703633853945770717775150279688776636595261587155415768219633837052017449676290561962922803175354888851258137418407406036431637445275228163937760437612496767339747078857905337330946743220704775835197144241986590479463484336509091338368417111648723318566055067263631766796435884444602797881152607961149411585798874188844038165619292496685375805974913785925563363029009209234792525635431221322520817132182323672531690159087992998292304093231086923314578586886518579931276503861989200580506130192562533334233789024319736515820637136214512434894109892594920806258237897182618569914513344834326167783177453951433986382059658740853071344842365912669565650994495814973451222844779196116831625201559334760207743109757593169265996180295048369875933099620414417990943593528415431310321490037884711978762434992496593679471731786204144230677143980229247984243420541340499085902940424120252270415808770362069315902538681537039300587425768612789990723738156132571877487759274903691355425825453726262747536973051666108936374846060601655390063951989467102906279478850529857013036573546634705899559351904300798875834528757744585020883835753653723511700623840726692884484900109916204568134467291822821469852048050527473686130417323320545187893246112137126007076410758143804489417927465979158765633865670305327850818246305484725799977091477471972470566768920473598146086138731126815482342297664809593925451243685968623326651878931877379622379380466386811775127081445922083121692422459310244949671735211860457337299068804584973839340723769114098298675089087013565709572341833229135479946138622062046524004238940525496063870639918549373801580374785095338103889902117144538878195968784625652621461568881910312934015213306800823116334132148175512602336543987872543224769424439210956083224474748429399530892374627061949516914583712402985759470396669703585157812348557246804306945281911488492195678717580062503125834242829688844906697281364443426616801761017706995736270168947005140359684576063737086333372052018417746337128160917452170680715405014987099158651613166776882751279019482991130122343185040908740070231496872065250260836253241418672604410940044496766665713025022992897506840630547113264325448911436785192524733678192452367212081378783690675521051532435436546279656316430233198299307821989795300055204850158145490627613287113909038468020727892790111086974981487244474727729493732505415941388763053672726573967018313773193616743348260377763343863340050008709189311906029132175341426740014732428494844823916824336540704403152669874097845787708403382160677723326493617786569610992156993643152521281613342839460360802792348332647979872475618030450089692153900354001902048740077782285661081182199414400757673507034428055321581776820768994434846009486193719064253797609240621277946072647569898193061300433225044044198490115311804540078419033335026995120129530687908916869285945176332655065162118838363867463233437119519055133633492284313712409352651692503532239432635139929199036609406562488885510624398006288537068068630802682156994315296408119733967752569342152127829570849805045692248826392319435902233230646227987325414046637443693075497476916490988468650416391895613983217805202121034076697488830838118350060676462316984250957322662158943101491938342296067851454767230658467132410435450440935453419278410462677575403624318663656459303518930567948553415288797175896832945856496059048865543247690096424845574244438055433999561226809131230365588091390298326906430738463835549350795702429779500080184613070550554919154009779937976936694738706687163336390034001358190458381461411539254887402867669141701484809458666167854376672417450721094933061525191482073117149670624920693163012238095027097790669892096951388981940207011563709781939941335486440806621003728963048746498429193947052433251096501486652372460643917125787524202971728457745350864453955672891914364312386698610550937215728193755806728771609735798687118902646492005943013614050021493796033691035460966487994592379168438045398440851214121510151136383352316786576004949992697063053310569964620241470260947753990308803714996502586882976862231035199833927471645200542507288330307778065692873527758184412572075602198767226593848308095718763984226789172517310240731140758661470532064133641715761034081123615092177074121985626095628933870336302943982897324535044686821395362996202504438124942592694824929819893320062435595747354891877016151496187470344596545607902915843450601401668435729651575507249148503729854055986606908313466306527647361257939958484365360533709908954899558219049633029620567773484439976504544916519592536357380743790198148258571674762967447077811914274415415187123927119765358383952252233318527799704809606689438005461006389824700701061595751408325779081286330411587505801135781085752761526627342819526384369083265824740475102373265136468193646201154989224848550337097245328454157785297221331407181238883573455247383663362213538840515037053439995152159789352117778694487447229531162732354623193768023170260925756620737248937615369767335606947076168044165372138058526009301500661457041928704892855161829235672396292293508191324257830875572883449281021519299467706020994104537844596610705067240925254078832723061566859786369939673969567683419326353357875401974198575015538239995445162287807556960175403970185643820412109010292666703991874464566777829001585903560091061173845366950398500610368490025201698433061000179308887732915549922586498671219385279752264676877384229106529729485790544708122989492275700729755549308233026844403862699401272813908345233982162076008761283601496655827683866855556484549910801433630805372880964992374663765280181197176052085146567342064118281090925996467019031901071585206961288794365457083739779063386411757555033132533254994095027951693323401533218023671633545721207403191066291145528138285857753804619579538302541867620490008745551436522513904368086616177350466864797799760850774085713835942835585077910005173361667858958612161410160119364161942589104911948590004952744410950043587322028559475063650866286219530707399275544851001811784212345823982888469225872100909061157903528829235885355277202305161486721574546415438829771128624696851531165275866422921543756417574535961178366953989274005080933034719969354080341273068339424850214144220340215165703222152812705643112071323573521701181663606856376907438959951045787283624207704655032332185020734185157741998644498614279806500609628642652981160377457986506199548779338123267240366379596905278276044324895933646927317918917093180815490667107528718048658470276604208198090309277349696671431620300811261073856705937860446298383758080203841343423464609437584749851115387243859910445435092213996563952590778592455377678743101787543766844086134395517097117988806404374624541870365929083401030990685304242653463851879716328292476393793912169033486139287654359939505176917545384310492082640053363165542698865728410529738312893541359247518968887249080799877010008523827506189410851380782167820841748291804662426859946808427693121780992098974016316071267513950726936802240897096799653341727057241246319532822930397354875673961429843917072132525955046109442634180285333885225791629700558998432897543258672789440332202878197042850255560600458474036039330144049506529193429672462219024595567306762665022500862852397594133261880792817371641596306699777015920755981170213336016449056963398035016675580035611053331693704075464666149672805933477098831133073046678492441366433433558472101832015629899651387795295494711847855111400620322060102189703014564797010538282234509982841846469769627999464282640036525001836873655836665157077582137537566466954579045994725054811151757609970363128214267168835254982726678689568900993027411470106286804553090018404234338250374045445067716063580412722328612872144540271509652868113358644775844054323484117654313070582293388037319877250015305544534923538903941316193620758271301037483959173285204794513875523614147914492478676911231988345902272963738838700229287565833406401781822238572197730985562207962243858503017246315440605560226926832263438559528225983348499343541208447139534117430354655605854696283103612723893325354496756837824773906666202119023606308324249265989653913752005311575164508863847613598076531415369321967187310291473709554547230753635545168287431348438126351596234757310443553320102975168376074557851062624232439918076330285899353398281065787307064555294456347749731653554464031439233356120736225888859893861879367537616283252199415164443493654357000021864342171399505710059042847363751556859251908912995686367114705412940968725157657882845039633268489232253657262716384766564384385547167297354736778371620042736651389582423200798800470660664895718843280824239420960097932479619257340742642563999828754254308754393251729997573271346544764556441887669788511397304825754666260843795630970929537226913573349464374489844221763762375073359733319707795847805235053143055996705384821622665998384107053194518411086542633554118614403967285482422416481512186209372526752951007692871465639599827133616912940947569980677723086038528108189242612547085096731892377448657283088445394361432067976596902977503935412638029772712372716391758957788314734263361814915756364258513333308939157608915417779831539028571748295139946573424759981078799639445223322906478557276118286397908943827309663819975278278243892565166087283176571939271109971138870421307549886721547451760980611807040685649529349104975159739137073587385316468005680633170850321788909976380420475458818468273161392835363290036754212230989707465133944471069075269951701990293874138825583680644596212237669723578369824455188064023855922468955685087358735049465782107686752256726067660974795664799504549779324678983167110390813205854060086232502741629724651378082935217532773184861862930474513261549880000092927901636943258462009211944648757148822982197098545253581848005713256907670006761372328589555254597806363484691430689770121134950997494459722065776398111145170297682346850872060723882692580030952180239940159406713569069674546444521863681067018259198070113483709393032272837241924256857832298771014580697526641466026307665031072017724935418194046667714674117330395797620729473229595512566115687184113094757135455931760581974968424451378472376386613641110307523014100907801761726546027015522327728061783387637646518565230849009569715007991479549386515919038037167143139851059235897743317910136581101115077703814825014512799109625268978301476473189520478811469316992304535160601170470818394407419982331832715368036067763647761729514877164574443705997623751576812764503493176950980032771740669073615381312927099682712744335528458831008647335085825408429554594687367110620521662075473903581193002699398259617223550186501726420515295868683346602592830026995376046181743133703607679401076903769456662292050189702598916966360953638430465952107809993047199253902273327891420393454846121615421453742301835360437035392136946109742864472797548023489813401279461981653229246757345232941519977933480275471142085650247881047896961376153402741863308730034345618009881734654967031205098251427770737296498489906005739871822575880020093215778376547158479839551247300841720090190474315284408649372084087468251455579387014034791025396527430284010991486855316421526546520084823634084799846127599576216290989839202055745923272605653520993622695112501455207209704225092129644004603525520091521551971199206338684069147568876705931252488521026624846216158324786514628606465469796243003458542778521067179804722305106592886091629717925459956288541265637862279443633903959929352727446324222455499653773658056494243706447977117579689699010562299779944021091045348069118082020538959415277502111255837119196340865418564762900940465311740522260397388644262919363252134650365768603935744297183294104990313881157738162363310468455109312689727254120714078565140552662022625203946936237759248041161105942145614989191263972214046341000673491323573879979261953712640227278730132404923444940394371755539109185297033467869217134122116359281483256006404113594416641900610132220613111436120626897951452773971304138562687520495406408329815701399716648398092362286142324230169359856559305373484514974193246246217118529581020386754566530174955222976812344324680444792479281457943124454308447021997483062347770000581169390158364159904526860820737935337408602689252062882010548199577879409541720122339195218202813978268708331898960902351672426657570670523575765158979955539439736503659547419711955705041459699651815807729470249112757214209787397591141003389608485214924547411179584131754249261436023545256886831536867814021260156470936200353813561321539354103977095409865860076946255190870002054987761674264163762927718931282493700307637221968382028149304218075143553453707566990064560609372604456993362637337139481163278246149793222672541628352492041401533303764001138303028329755639818757200662770586020252609648444842849448451337225821967915528756351847428949576146592323972806706505091579304508415373379859547850281250345610365115753600544678794672819933623018705371377463865309832086889326557916426600477109439232915842883919892441467697062355964200370996999385676802507368824024243261972193843865424387344678058453025309141657253765422749435926612245526930189558039809801128952226352548297895367541395771346761832580548843812079402909479706949776339446998005689702883995724521290848062009911604193533837388864883205872330813534240138997787739793565116918992896976875236784538101644779161863529258653529673164579128551534700521398170639002614156372818596626643769223334398995447977943017892482796507978376761765855642462488895086201882415128658174894104263605310102958236935665281445812991151191579082793356037852729177445887628666237215572069553712208868073331451808651413003734308536559512311120971753720336298930476539658953906650552682870721779658268084302412734644288823695554270478184685330205275421356521409958170678072938309968955984615466807190375458486133393953507255489276534333946912250520477779530633848679460986374188502454904630228238616438468552286649449099845296555424477855521088486293252620837900221363662029029716102106910202427696637834878952551527456834777197628326995961610234531266120227022414070515392758311550194659549788576803472030631853490166722130195286872912552450656895271302970296231257627522277892937931286509681484920140469836048781160304726463125791593142819793966114347158900995589435503115305715623381643076552077749078820407582630006699615943572224842589345491245056093082788985218506050965122339718479647334322545109592973821744384389829233264424609765651023437955869185543812916910136993680420334847937819783698893852309446581289588448133372337175645675389990159846949601943232159371027486617412439437309519881951544839423530441513148083793682714161695195654951808885277810014496896458793924760672515292949901600561915486626077071673415673040027573150356499322037099183343494111453778141439059014678375131120404171872280722826545373217539569541700639868588949740968813209853594500828769086649018232468251492346537936834679788723211817126446851377016743879902381480013243690528322592508660383133884421778560309870587101083601990822786773974651590320514676694386063268427725781173726397230193529685522579860515547501527488207208748487960898844532270544794799404550939831109692869750345360990304726938148022258587681577477136348645415037150167192405012144092898461200626438102481352500077841553464419454854227114780808408862290390093936269222659397338360560750700073112193821907317073977968633972501484638250919815864383364390996569802629072292740221944190172963018080141540822505782601481129839311694369589532779058003199963197636793377303164682024726076612437163130844562802152275243098472270648295406693342945132401850425243036386147119383677670789346343668280812692315797109967054236052745215700009923687329559200817156260266869627614070254275523476045892180687798325363678395232219065543215304372562656521333702727528184588375331820138239651131616736396482792479240097685005594618042607734358859257513266526745707135809177977852284913375109682105176683443327705309686353757967351969412870702985622933939873259728519851626482513244248396101375555954669549686297502529823906109466053387587487286121941236872252700747779241025007344604406397012230762787722083718597056983907429761062994423621431636348802571075873108001675860029252384637899298867119319853751729718206048944948047867866047019074412985729801881862409888161411921626627530389599058128344270302902234804741967211695727882697447883656462593885079698049129660775918174164643174572847503684481752608797211301542945215327719517343264270868205050492683675285486648554874599705678365038722644803915497001836422498790471291394038722728600765764070104210066498207393928604035508122179371210830530189667550299367229097990699617818621456254711233353924002611447460025256386429778186972539907110211370397818906817153597921940611212210174384434933338270210960646214032270736211775864831486186099407594660683250945410742479032961007837732783136373093288977069947974871485348234717872749655295002588989058925290275512882070291646148381765227423317501598192049793916222091666257665197679043136893293405831462289966536374878792029245380574358654456635897665696736645140137223613361281538482094574848532024043558966436857971640636496976256145787181710605951646999867529866408090456632954225193830194140766468547491798183821260116118285400296498317047946972194872015840981511383408516965275803579749544574778223357179583297098489241943988603862950347596164041122559547623947917297802434475042406919236840003295400034097451847612559633195145954229779425251719000613928223971740105394648511648005597361737291209615679715834229990608191684469339058901297020149647954313454343697915371560777275159606530093549510151485218489377338768322693291408739344926996479865954388855671393473468359066239559169444745639046002926014690771094326645862298836631456799603369339351876323450795343992500008846821526538733898987390330931823429414268992795082202057144650891269654196536132521848705451458922778837514610258633263421671780685951686935463064394727771714321795589376510169703789352649029261264243500392788328534864545935090431777344189623525896952777898602264383115392736801207827359940435874341873879664301855299261830503447763918061050566373539209252505614063405656395612328589086689708835359377453453093567890129874665661279907234482679094149714662303038649083047002798097183202380358929731723025811262027181841483786382985346765118734289970218069447531357260617635569855837744716472106446113238403621298409643183073670166248521749354057516690333247360202201269982068568646501967991514677449596972274272692743511226775782866195299910094135358673402582313729878923939159332165720295174148239337154808435567750563356657322276613921997839567531103411818288594552524044930643969481976421889123558683267894115313837504462815906827732539296219989800563474080234320493381671064143180075440931291039523405645019100005431503498228438004079221492312982709580912189888920368295517872898687448871774321356340182266291405611174094435362421851013017854194240224073132397200530053102535483532529106999749988385808588434467849290229254999479849298535230165473425799073786328863984597072481508529137657940240025196466321518848315353378194964331511859570153038913047556065435863838338943933263086587449523873730398453883338584535150748511786671756242910428263274745598484671526374228267166049968605488936534585345926820661667628680765744977912731895132242169219040995273431679303836283186430251936376996029448025713545973384185802791376997357167463359301656752746261548607903563959811517966576905110046051285820568883943793120081107295800700833731308559619912027170324979975957462751055152051562918139428967649350347196894771414336714214768902162728525958749779505804055183008284959226022712164633958191681145191960153887738043741589368094854869472327365277874185858175448395006385032908032491359897504085651075273914358534102741118161406864114161162469675174884584654820908702983479329968907763083420754089264686640464635504615516174704755744880267443148363916254146568143795945365225384649241095051577453454149087442118121705852258782668119209549788614545919866694145916509439144393692728342669371532240302937666020063949283836994817162213875590078477992521743914347316916977469562984880621369568205678220681316198567032726061474252329619311219409915661234670554261435147031313936934793763250073733843237266444734162550952807556046512287368472077874220174218551360844035129359004920330269972843964070476367706510292756606381766363950892333105847372701501110421962706054408003295914357844256605772623116493725476252758730938683259704287264357211541225023853129269811227904874936721808010610334725722724396448681889812317880509745194076881100723419098715000779760703315263861965433328818191415200643549042503244323786845880205092282113816853133346591167239731697624297657715499952268864144841126550141590251055777156931317403538365261481818362422026963266045494038851793568752955396413698467946059443152410271036791337363260515736724463029539874093962722140686272562899915105151530937028880344285408675542316506283608510666217242146862265546060764502580765564787941319308558640470178042684479356192887655318435229758342187250400147482176098718358197943554340210139580714406584618405358146910705785473589274283950819854019525903561362421678565674389091636332590829931259337337394988056096553082748823306622998910168166760236999820602668177606788785598529947134549545595081031830969363161899843091241496836159928623929500797231099306096540813618724931332432161607924624426399071729877462130430334161044630430013271186642311045531089847329305258849754428364024203479358020363575187797908814467890004880715471666180247589031684262926969579043848138952058786365579861037790399269147526979521769840309821035654205757840606189743706470745024784767541468448114456505609323061867124218101792508726738825698037286450120037412111576339990251074008246740142591452837702037784388305991655404137297668265406884377542995568458106180693840153537120177269118109809757399341828578990048744633496977260353622538117162212625371364539993503757711245427541737520417703503513402416831142158150012035632591252620405872046617678433848803218419385485974924839908538928490819358025781596215469571379493372656051964504466978472960539215942849890740030044680969539052710079773142164406505376581309142833056859737046302873397142203473613371713649635114534315796026304114966361962647018736606340979485111297277965182041800982355240612756825627917754993418682435192164145257193387652029091648213274399864060086011354317577461172941486917136109913999013257045670881266699409502765630250445257819374556129990484785137471376279460358035365485421616159751689922287168655032973437884832630763466956105211163176143145563495441873218599719128758258264834020922867810154699266983370495380715234619795881228684122485006334554486496654545341064850380498433821265575053164993771305721753088933125508677827202560489333640697302015528898320500151683956641435967782600430408666045448363098544126219237672392938444815589709555626706489266742299224713324586863411548972966989499559096250167104484751240803492035884402958142967512897205646221252985213229505640350199727219152113542513680823942748843677919096504475652302411023551634522201148439417266210106793997411607568176157869707078729406552105355683540283358877594662467640796830430864323437071036310222814249383072169676150438321733003950243852488453421741434797525179311538113652724183174272813312033268274891941702061654422371585097836556997499419241614497092068457686596141156674603696893580526827501799802386367322788828964967954997001604144096008309040504930811815141609493432205572801867656887445584410467731896005212980927745402094257584374449305632424996175446108445216213932348607403573670709451813633225352596355243949961044015013779257588665948371580764043107963472176638546835385383683565877563524321948701730135297526472984385137131655068468390319880587519201610804789575248122904642480721561192868127618589214946216479536286234995948000251006771896387417305545214920027332642429546129162738592445648160863478322993980668037180668317831394308166713103326401091552162315885106205118875430123912944561031032890305338596102618137929122880381118357604946862861522289194481683291853993047891696891867303134267836383575038773362330614935850030835333644299067705358536403653469240496475494006609709899351333461539165387958131709836039642118295034582911188561432382407723042047072886286032224305907865601842539710264100048589470030668174263149879977177965437754525559098418332013069500825145339009127897784958773759195531354269055131185169444363919289499316958067197331364690684746557666227950132068977754771178450067632653715430200884070079757197056054640688944197244066733086604530277880187174519603905452267234345389718113370403867968343402066533260058012596690825766698312428772500293288322006481824625785200091031394661149404159367435310594915803029410838816173554023085815163312859612319592050324916943979319823842192896786244704978367813463037620184105344921616360419259359017594165252849831610493558776316148206372906665821179646016582412868788006798635261152029011340506741211128156157553420700130462239674633828117807485897835160661044208561634820134607556426613771856953840211932011585618336881338861652066498653597467844561469754973263696392924335274888491962634081035879928092090744446718631035121201418132802607764049917767201839378239564679036903405267061871117437900781680343633913672236296825900835618071822311260450770683632561883533186263777496478706840072377273597493365518410159610759408857330416303743626444543339177751607484249267840907596754575410978176197122001044844800224028122214924139194394715136909910049717335056124469608840661195850475257899348173665804140911210252097111481832219482128500631412479978085640644350171579849267441410034079714726402790275477080041513527926158726294435704954082901654447188293149740712085419603039565957585280213244572918584557115852449615330758410421322884673323751191110252174340704241298414047397895543405582122039059244554997121845900044853653662847195155639772162418892176106871381729001980742098179595035533538293705187006086583353940962189552753131355910572759034653771868149967600934374079756669656230603851481076438760308433563263730981902951362580052510330068206231295665100664345062572719261458352974479055194833057172765585919452093460880670001985930381962859795431288945212955185736497508181285413260919740569733289538018068545786927360249241712031005973346835905775531527446359750535502446297388421719893116794072906241600486891389931659362332787586714590729091924732899632406781430700067583080559023796174822463208576026549838158814208813645197113488358478915171261091658234677209834469206420121496495594309809514178963860229585522487238307711535505428534588612470019801311986440227620796199965423907172032025903898593684385052606038958401856845051385113127077492353043711025371449383797967843747775676371895568097541808461106314152285632603199942372620108575942764852651908177652764423197770631302248155769698717952067861149255932664234839812535982203468436528011329405326133727384972104773144184718577182703733901338268084836141069386182779737080981215758240330572272298911878624307676702254981918473372546492881696305934975836018879804317212761367942846697469992899146075315813419898906120435567117864295316025005261618552709535884957266898751768807895784262570084560147222585739638995227627429065371176315780218233403384847610203794952173773480190909219971208565729224461497939127861267640800479243665634501146822221188901370069910747530837142670778900466716280134535498343987268274693821504699078208690834317859417461988890922082553399651591255164619423328527035917066357540659051267338103236363759591733460534025329178983632712821565286925248886782238333161235789393983955443332607136171147720763080042003961136916391279622511162908849425964446089327669596382685139757777660046426662308095740962189905726800988789350710360107381912456655656887560231309255796783067237830146645534349811342733862270725316611047641449343836184936124883465553690442157331026301337324855911341325200389281309380450294302176013085693173530413005138467516711364439254196766238536956814672237568974870908391439982184777740567181381780570607081244408999515911497719691050227180048536994762519344046511462381851181223767110676087046524261818811113214639034967298436800110516346947984505608771331670955360978574940837051036293096290925309409143087175130355062884364260312070531728198736141602941170308750327575034019627468509957140543976965005969909571559945114349530793261340099718232325632537476626857488929809618622391530166570430899459673655066765827675036109938926467163351400985225442490277069330660961553662741314532451975076813126249281170314264591000429488305918971572103993361303849112109971525857128397930308566683040425805273961906195603684161192264739105028921310100574383314122774226922377076490924507398494058918341335539724023964994930107824989729396817173118579627597905369060305551996725010819875873259386342011714270396039088750116717014161710388217537338605677914191856369554189199482085758585575648705944972120326277843104597417752672027875576156457309235718221523411701546993511228836988574193237283034474953790282914716452730373300300043806128705697040700875313675171495413123915922133864561265005791585004993012141385758818863961874188150442087952758422759431850127298357436124322314874365652797578454056927439476292471354135766041423615352562705814560868096626635954243482982060259177636309412037309940358705414337476563296784992473097679178847055386015329632446090767621336611156771001245167202025049969625923356882917967943028379518511085672056449729330799172218686352471647987714680235794705771613705823868596800304528211621432442055804189828667162266611514264400688726299523960677629498493630816709248834465467898775266782558908490291301984903242896955693524724677459915525542779669705527654110354653214837033999616855335522496250186371230228227854020024792639979784276801637025764155499292295546616577683379203380955317202643415625818812745820848204015003047161622318326370244174061179107286778173719988107588984612098704029689294132452558047999668624588159650600461608406133164212781188203993675508479795320173850721157311700588792776460602964702099911071752715713527868609788761437623352248766227165799739655116853803347734900607986476074194668858317898104956054857860023326523206690710636373528636580800199896707433107949891003583234410882244471356940015201169862102584196008734984505890961803108675399597650007893844831780232669529582329206927259637605483434150325765517366596719668999299152207707096045126587608947814088649630215328276205014045076412725469194564319243194215515007785103554053025308514914278740471534144790027176409064024124517939843161235436039093008846227526510109956270871991888142988166599726054721506953835371004688078420005496365728279401699986155547386613365072227701158170970827996565554600773015036301354960435410428729691032929165654452882909470773270676229481638050844204881393507701928890340387466272005606070437203559938725212340075310045215853323260498915890747754164227289368673855541664570306228168822507654447758628130688352982948184215882664753420448663704643257547705248424549176824683379537182873771039705590790110693473601810248874564535874863202998230651746966810859462128811378040306902321830851037851041705805655168432353862050455609813293807002531360742741659530881350489211615704254880439311662193151752371152005096762055749253763293573699302474547707413359563470380337125523301799158766324408206637273067981110596870596802679843642282057064452723185415019240133482299456824110687267907611926576238315941824514182091356249596374425876486899388315317447377470506184870506560241923948017046657808315410247585041952811163158444548183951473617384697565319035278910306706868631063886765509583079284833812562399962349986355932505173257539502174852233309301487139327335014966714837008967051292007530453060431864184688999977375834962528654395314498911847432056635314500133765921692710535331793014497555128911976870634159911666352124844163911671691374867746500265726218792241904394943798962107411855587405135822642653273889273047535559972508953463242403272544998207943903653519980031210052717310738430266430054352941578261851170900522096822618247583283484333882552212225683785520921923291009990776379176804406649709203595958269115386549019539780354231623741396817467828387417886760871209847499868180866255822618641188840320395754152367492324540940402289666189356007234604216519361310171222306033472480968285748935395724832462775710427580036792402805409181623069935284870953106472467890416668778261565226117184905565470348396002987683453657593188639076974925512172445704319355195409985884301351333627885935451144572208518826205908980736714336421028297349519936150225525886427334283639208624951101518817568684183864302695404957826447235209925859345342390649732362157445177707033500555110700237643350680446155781027451182102932560517597608369065058953424850033282049038642962053439630483953320041374917386768160676144066196028099675356981316156982397840710647018954034350170210059303723218720344746011311086976870507332516256029165683139054976419128408769659861483709111554750407508381370088112421445569664783571193377892186290010398356333938951547845977707719299940666213941645679823016178525976075539093504647355584650105980989684716137277673392687403771410664578040047826842621969993794912477305712245093882359792786301379020349000053893208380109729074846849855002406136476901104485087808965126780320250439301458933208253212835702063694424441911136957556707047794603148295847893034516882649734938207601380659498986062386221473622840488166399777704358270602622023094575670109582535686536998366282347047109637824912748390276243369565970163918516284093387425265378111011697683232167661700569962445135209739009998487912863169333076500399979022203924791026343910680122912144462057592738629333773188751385156986447898406445411448648409357096841491143974746181024024706847912006852169940333073262309482824883646641174983911655150279760560549041910845473752088924433572554943456354994928052813718722344424947996595047892412719495513441084968444624640716233001685153451539481471332116778480443503031884710297224099536431767497915510615213857972789138514886177191364077777530263779244241910562393618062947992560241747675302681541822902021824383202259706185494635962930549212079201000147600638824917353755172595797324231878845535162200497107504020024213971312137801216949706358374597901351177003738394225376350317777196580233261838817030641003255406202150970363676925848781926561918457673809764847246939721108894421067627041964993318337003651452766190431449647164300707396741126308123924973014305389763893041809980170823690758118243611373638777050201978378678098725898512413768242287397279867724658845227584760449967453771738467266812648394373045812240057110758231716078103877184723556524881574229461186273850683792976472240903355261285221172781300714191914140658602684244666121121005689611369571449444948358032891870064240822524146346652931966584894428833808064994986258448085023194686413404612471040998964303206333319543512726504208411675595252497696701597985212474861919664859825489079866915474609550157799256696541544741341793375459440953634252477495553106200498185061722900838784106336081145178007521332601985923378101322250989474715426290909532205758446946477238219126658946054283884906247028530990719491083931073573025756042507953515987328989610835444998241149744302316008281369277553543126914736580916785752430504127302055382954668565785854827855763312519826507655195208927365950790457799694050074133967195809427275629582614861011258043229887995254866427606825657907027162242112746624343397954234303783433358867820991500800905022074915620974371665335847591312042726121747072978823909139196454079436195617930423571606664846648315403503322161853086652759205855345746269730675202972050456050253512613845303973519367170899028074997817860511325688989879371149400485941460421933832490615853906540459633802482126188285194620364616988880808981761469718823717551645146470747790422219658407867130096954393623520801251069552153476721565178005677006659227687081621483701342182275229527568975720773252029798662046365006260050222062118801235149304179127542394580974074033430809912905311028017261290158610889035155486446594967641629435569067924964384512879126045025887667026072744016938192122464310295367901201537421684271387334922046538732530655242045362798800780228338992609989736549884148331660064363449640814945426224120740416371270349517792986603803941780765732325551064879549521006644530063987816658301876616695294470243735807921847947590770670788844085744469736078259908554316067968306665278077702070201544681698204934414164026353925193623777909828076518994803860366524732024716734419596680277665818742099677884103264185052043147146927212727176559008794874822318682343971884784820637373631053904588412159921898571251881236058292278776134918351597450089067271242823305372088210731272398273507711997498325656216080311322919814198898824531429713225856734983861092488970600576538526663587013435739153239584332915456260526011227096187152261383929923811968906360716716149814995904533279274718452361209887844769777068598266966474136705402141112976207396875879276085494168317889914167240949547797225732685484831598122071670133980958123622438802703651670303376525326853637934944768856996289512070075168817100556300562046896230162632934128694565531512747684878546594017131683998957892762661095856978202820465335786965100076221956656135733307343829414339299621033905420977403675891453541879322240574257800320686896615332328440509923172205182656943973033877375792103095240235679065820261270858104448873085837301398808894643903494752105935728420476865840163812233614653705395939116481107137873264477108230221333898932164152914938301784936043365985842721786607180997965423233373079180870618926052668724185133846969637800518484594266053379702791076687683152402450541895479857093312244452827118422565278676574872591821921198211252432525950588373979607891984765830348227976189121748563914783028107239850447926468286136263724770910545587789698777959230527319933423182647133950170867238352802971099003875588181203008438789772747320738234539426010628691959751485813623569519316270525542195000105859573434792643991277057554533864681638253023166565645059453933962921939613955821375607386212237800400986765455116620628230266192166886306433433416894920275341387795681396656253813862333213750353115203632634380644901548559515648835575135258299047240320015793674603966089700099044336046396731213251062730461716182360842790367581890184566106230699906700969838624488626620400106886472388820452987827498674118669895511583633476114573930743337840122343730589403897626634988473735789173580756317815852576758710985750107797644293113417723467219291886053963715536167000732274324607852268286349638793393084195896981561737471794057673065045404935524146910063493167779368754127225314569839782705094862082846083256810340739176133536299796913205314771742333887460162393050306220819813265898509455807043614051129279472104098800572167218744824489750178506545556722744396369673523793937890596793239842614059690571618866636068059162212383936167141058323009318807224057426289901947191248678981177753032656049205179321465610549840320680718504112216047841652655821535071913958628656623697593580713398415753775192245255190834246861679650406242647560296271053646704979658044810966224660370978058313430855146206792470022899095306683225225195655222904392275891092778051397422941221151898992882669314478035802889131014361542181569374296273461899131653994059889133752532395003263717835317763058725585014658227044732065778678109724437344076729657857019985163332249057516250646136529096535921103579857806510773083019218366070367643588164651862882907546750662298583641807315197937182602950418422988526321698376859048373592204533569792075345995566207845302631225169409013469029236924394310570380154435961462954626468969696238537348199484736480519809224262879735785449350302447460788778488503677588488464432548068417864843445973429944493835724365994945465738536025299800623430023743269644379392343693867532619636408283465231630420344582838260887863075824791613978585909667401068145945129491767265396931698757502716066682157530747512733210568831041265945847120416035509818713319376248766148543256385044124240907348374111059980818951400938521076786165871920546697437425206997765311433980110743895097303596387780386015291079781506210131910662565643527594350650220203573309542283060311981324945933469577053876017038153554043086753367343702566803194919486971003867386518995171591987268895929871155065856722462823788867342363336922454393309542246868617384734958470964784285579504843368901854636180221194516810301528916069528233597634433908556588116178996117680382988822100009521710598771382838675471676928504385224098311950533984789474511900279552011348699881580201159339937555496585929794383178588766928981585950065660765355553160559434335002149952294495818994175139693019775865050230351071350908050786731674451878590527909065494317635845836588584545321768277907255310272525432749456253972862769040936901657338575986103000783820506112118664760208409997598420802627288134852997682228041889682754714915576350879045225990669951948767152565711451113260799882533145390888196747253993930334184992354387008033642419521113391892441531725399107471573288913416630342754060926925459618546629346840925571634981205587024372542200159389344176141504765605457088923231159656736624206565717496646355518867764972554941597668710108881871025946477714422444776861241712090649723918824549703206503200772631387799466804959280248710498104825143865462285664672400351983901441859645137853173769406691756230254963514565252315154495906300218737483107426479610433853641622428575439274392641620050558186284046972809896429848055868383830074864239077038236785790712918471594202802022942655953553361923057323131216256256626195142519121378915050618999369497110998407388979183490971274458421814651774236203749609795036573049377194016328925567577404394206965083509596705798251727186532013778795749674463895519824045405377217786057827855703113156187713386716367000432476227157558296853969276743790896576221691534473818597655882531707859220116082527860963161165740623837739958188356282752196586645095649543735207899979752902312222964743856493814829879897798301025646884566656223948586893362121825789960412503429224080774995887897933832584332185494935205994167839408031035471169348908787457358074750654730222891962212702470464518279283420425481116280638488772777085871499731492766440802566510690409555531085583317909691995815865534829751592448888396689962839922784870083479483214615797553085156709450076761487450371025224805892588452013758920388321000604969647521056903228072052556147682199403221605120190038038806439780105871822222066133987879616756834239522181690399157856137547970794152244345265747028699745659426671949048030749407258053929285850371423832708992930255604167417508196658948856523003599425557675920412811463443060758287866031175633046473539614184747184220083108852530424762570189268892423975971430527113542431520236832479931814850247104539640251917498506959715550351285632221176000969211491778101367330694639225876562513395049200541199781002594273568046807851043236201227186449279689394079366968121588495058470696031104051133226247148729805739211040242102075399846473624089000129059892133163120242857581526627745731175333325078290395258415452117089498529606762465758252511936300357551842356605114811352195993516063090487544248753051767977674256071066038826323451513987367117675244414501348891914933826896963462742465058945721065274253982469941606839180850844268382115324514023726876706675752949645078581453809536641236950542517719270325501808980671608752782583421203488645348157710601979050195810641081235473701961692665237842928506393770899261902284860860500571775459672412891011589285948668707712486223399563246257251327764693455108844960024968448077557539203395262485298742978318995702754214871739219264511775462960878688849693507557027204670173301861764947137729287127949345228747725969561114181584044440962309697781714824559000600863671363872433620887912557705677285338052083017244163961191415095956595343648654689917114039197832217134993701246459661362310202617530005472977596477750389921238575635879042910220550977542493914124227022970790135334424843700942744723602815902082548469636527682030917813559518817720018497357965679218273555289418522937955372491064719113060169401036408165948088236303786438350117390804340258172991562561703430307752180445661400988930883438302550033781684319618690739326657271544123053850151119047871698127119928496838573103811010131400388631887514998074893950460750335316577650159825246605554449320848039804741692075353397341619085404011957792333253943120800970105813353446409808239382931183376030611483194966580600648532768670981242880886099591802356292211964896510260266692290724494518116506952084830644189729337098998066963973051209795152358800565730872527668425801683005474850452557530433760823931989007133449915722935343316542668785512770325833695955875921098276101236811648817179207749624939409079957960187686449566494389376146659369904089852388160290950481334312293527960802771348130124742526396243190697157886103807169799609169484693879659050985338075236536020623003835119750455351082609188217739787802247390056815122321016775284496758985201442077873176821368866451637064758559866454949294579590521501121865438566665267693105431910580499161986762496506998101495206258694451959783972719319411545120329479450239784934513844979373087524262010805633684028846419878934937078870399454240257445168291520142605951285697454664082891976558432073872272478580311188918783554904301230669288668411678648474956549130898356781417620406473283915815161694843190705396362897326592246455755650907938955560582412715060149266519710559271756369840061523927455196366890195923902757301814589661737936509290369889468366902566818539609009767782746763781890709379252085022601305830613679527737112617320731340904722522026118006747309637780680380039988077762508496475228778082333594441096310993116697489467210953158633416496666960780331213933915760006819661347128594020429747088698634981621461847334345037986237454399876535505483483444635974296390444338590346366345250072156625549222955175964673694020882675673289270597282663332990424419433397393543792569645690201796667903673027621860186879818374934830222985175151064418879475479238859368201366612106175368395009443647335944150171583129876425088322351258137237521454617354456174765333290543397458113322344847775697385155475980516112948136664279336701052583602518265924156262002124435886598503847819872454035508268240731520739111618824528216898423637376037499789868789893129285920265218732905406949802063640602189613979856522151841200460851615016476400975662697415581537761513071208734682860040405415725983148483714402264476484233058638466351359738099750135374726838316191772338789976841008877889520555672003749451795118918538844105743246680491072167142430879342284935312815707881345094701341289663523540050055314770688471902953478303645989742228668919295152146712952398010906921514930342083748712630997258723701636315391562442412542424955771943952439886201397423392136705808723744931075730665563163786755879426164739595327509017103136889098135111270678095381468214069472008233632673163421822993486645613747133771908949780584513972838984770778213132362602540839073799680166449391896602144800420206661185810940164729129852393920480709315400601373873730500858195108570887297507750806200621461529561700510817916056596388201202529892873478612994076349344077496436117071411041736432959397210133088242621715343912130451773445836306710063588646756255494140535417198972820877250391291382877022312498032387278287334184923112277234872874881795727901669349735025580941425136973944622699168570685363662246355047883313637156527781900484194322526853714232383130339010811985876676753252179386172855107426974865280599093894228326457915773103089958195892905784977236192280142749357346581683838871431699887253162821909978216047959125215960593668938016622853216706683344621475283830347635290479714211168760350553174398669104553099879145334509005316215638239836954106438303052930977685321310668915458595637288639439041183960562915959669679626308401047202982422140459138010142850315588979071781888161154902170664668455783961692399762767903140723182023181521330017513576181719251123457346355858580247695890008223218934046016438366959067025956919923538469675762761563879098818671937545896592649761132930998973411316588560667644117506520865346865751552015765372095273849543384144497180034351482547250096198868419575448345011371165829845979124992984081904413826921713781595249204682963999974946559255026246292880818296781373735072567755067058463259696700579467953212780979652468764747287425545946840429189842752697250229495309850044603991251121923371792510383184468071956020128629885782907478982748325837300632657536194925282142292375597865335888102193300162357087993133997108144726093485186235434945982077365234232546905438712346140812212068305871788275338819391827074723909137568713070588851017479933121476416278070714390195548197772293763317965719478605131680488334082024202711250786139834124495970238548935148739664399461202399639753036496674487067037061003185175669499671040439206408954816074918739529492014925508934524646010220087590403130486986585981404332311316588819376843444386751434747920005313398763445507874381808170527679158564059605722359955362703570504550701746866567292441017908824510392065693811628000216867057245214376515396555758032780632544501587695760310993081717949888812468323741048466849575952173990380472107858443409970404894608466835727453974438324925543111171656868316640231870460660959519827380340909313990914684379638465452691081373875631995573456291806723987916906786952827851426437761091883433087022433319795127020794197859419215855006581743989129691378327434191299211867539374881354545295162375998555922694551800357071082672144427478267102514517786623426947196857877166102983244848184395356617992741851508753977200827383737745772389668092168021907787476271036265615595647383511995702043098468987483966408577300202308759755828827337124677678415482147020768096775554046438395818904869708022992138274035144880722598847630238002305925983020139861726579959780035996021475091192082547424939971476476154642783582162347416479460246449318757546164602678893873516962719529168441360270702693484872706631301704586764685777312830526421385926389875486255099530398575748605064904282188967161982865327754458637309806654940882327006126910787857027505865356833753666643589385883642459140421209615657789976578812806346445581675273282927237396667040058059552362380469249275956343342913948758183553804648927355562081046178740374917484498118193642081290142620241263259252424181966999171223403014592814575188839170261582829612431315138258379014313649758060209764067078104030427105194964839349923634296448184323456207005095151325375854039535672290254121411036583277315598617961386719388714352861472166370247060586150126516911272541766812247856991124868275022568550590906427579938125969993809443352045934661419254495422532838792300258431107649315067226861283805040500826801811333147848829220199220147670184385190849610840068365119336783035284545629552582016873056686031712184466678082413425866485513740260859813082190845309269773024851359200494440103836270546434746095070739539055111208350354361459987251973048125523126521041684985255356946654640137560578697009007241964613469925581401391809427084381149041952797344829125009148760005435517166330394342612707593084756578700973248107867314236723582155094717662787783477824635306566551035295650271247143047254800612216210862144425983475811840386555539118892652540568884824853040288080101667900563824303329511215519386459331118679171589703300810144167834535916186281986593784579616623320304741234512383061644202095986604043995879688215571921490515899991789844235176332680763633592487700325030757924025460255480438853624659349526299635044886464728899816002389683469364293869039122641572588147653249401641982304803457297046073634981292993036657450329376310161697353297265231136590777519049263682041022267185650079452646241633860167037368972213364912683406038637527037616108120821178727490783002558825473775922703635217290400576991652885198432305600161464208486714188940354253561910396619874491267073240059198392968349264225914239755624081447459429929052311552669483074585614266668431911972333987819435203162240344920205634142409915589921244603411759260307975425047859145201167104437660458389247335824762349851370587636520991640760434234503203102947078092132368804591043079854577654566081570473633268860470577532521412680659651618564643191452183954402933438696509755364885263203300278769721918043926228789451530615821870175885120153711102194667479761417370364615649774446893289394060302594688603489230527948911690255161276100733213920094028627622519488391128929422794663627622215261742526664602754291557375295629142210698549638344433149738732380159965777594140396025653874643863144022152148338156114833993870709919925308340028944462737193055313381692568803191019333396380086954747042389792256806730873930970356554039754227409001205459263634946802920538972268880319399000134495737382083552810476007776468433998761582421462521495663455844448729448532668234197250568949185098163461379403036537567491029561126228851464010604019268203709431851331006429178380565496946267373737406783369867552953140792440921480694782883076778384033819701617960800173521089815130062629022926751582262922623541800220430939267760797706526026414763956772617877813753952539371431883279283078014704555372466640871417363861191856752794529363524460294920429042083126394235678988101996355649535158497502312149127775323145090376877655937084957714548217000229553521839637752422883526012989666311240805945578835161727907164897082976141002099253515796660252779974596109056783603406560885906150892199425397767282491411153622152420685879285993727194252902335838715995973014149098325957858278554847762447992431109584661175253568793901701476326944773208033438077396192300531915467811203638599920577869117115578120817138908743033683456396729291566157727819168435593988953870115437318504456125342815516288888200829325249773088534187692286236980675242028700106447664168851163301042014201988698933754665115100040186971660169640071033755326728416244047395220900198547977426028515738509281088736939762059088280144383563114133948265088108296896066517768052718928481414883782397608588423711053293457297629575310423887250539321464163656607392740508660584381807333720519422401308826144950286562151548699985372805951665890364686941414735279298918183461144996254172462444621274512680895356876412214804549178404875736032656708820953991494343407803278461062599371539445759836638566696423396226880647944783791069952339322059535320184723216444558616130202907705636462108582411555372392659773156149821600177608822979423312341954065935624783857912874144741753166799824775616393028243747596306028605822031516770090457246524626612942000567917556845608837797013870333803941036881693083094284231660811921792375045654306369411528088009067769280665082743177827880597086007041910481637679954198205813803355302071278676396023209510282520657274384357952575869847364208288619520381601332016970210935747580664365823455474637630007598514381274808625195391140494604361228596411941516768562435449858882093338798132486404375623168116067881540927920665606015902901678803334517086324887262031356935307264689635273195033944459482984358702088889924517676547704857715854261559270086392228008526791103213697852497773279095984571608630263700447280825723177450105830071802753810372182527544483224896400213129106587128422365538574095301105645012528392697248168849171118649399000128508896476543088197838166189601229269967166877998484758545584727501520967667607184899976494629595266287286051976683366628032448589474359668855781065244533139822423818831837402982875860718843035879575465828761009791265675764646383265938059173494877667018929343470999438029049649821041232684875861195237132812104052098872051095356345031393322678070863868805081040677142089436301166233867399019404336675888942668533356824449507548131461033844469624544825083871593822978067784029732476508983358466895886388853139139314157187868005985102891141481261231930430391402425139036981461526068957800445972969487888757506091062775901718287415405287507273895542056658503870637714018649299857942439726536838480465628975051845312117950072148187610041921152731510020304936339496381733112070055410187213132349484215951560847717625466485947074215654215070244811649847199606139866705523742952583252111649407485036093704593518988180350065507301250819117953690226426315460105711467717047841673763371006533472254944667068868393588583801580430915548130811242967012277691849898660887731134306592788099637228043619761575117887123839157606850376190770929973797532342329733336993560804068268284811894116009718758855134680201054615378999533748798309765401555493481022792375009175852385063199419019802980781977744762026878760218616891308132818373191543940053085889625178028412955276433366833741986897475965618354471959050935119462040458376687943074954249794514810891228369884273453641076261324250962574104021370526749024834763492297525611306781491478879878932970009138791605905709904610564749897703744951791511919029081242145633291712952329969147003369402491705346246818418119600182945147394477174318236449275979244308945185117853795922574889774038103806718731070797197377562333783918085070174872389629557977175507649660147505542988681044243528810542432938927987247280024856573868923234335996893406969355352295934800311985064414167762986014920185410018408934608859897617421011003107042136662728837947119793269742564670507923005955600886876234992737536578313340484084075557977586149253426790436241748389953706028728581815746060925610505425510751983923872995284799112201357108055251634994199756316583768240232451713468087375361270586342448339106641181402802815291946983258010531735360900611331260237577456154581580241636144919517726865393723853582476228178462499636462610569618696416533103073575841129241107621628654950689305672267139833674847014939532927640761162895296772760283028366566914057551207812246566217577309538310148464407677674080636919495574418908514054976118818333032372827102311859697161767446487692941449849060615343929781648547799527602985453417616859945309244983285161713735439128962166094350144752231918463250164381956658955588334084986673733502580592208807354906151972406564505413497464396209657939283635587932198291644552899597420965576727067624067344157780993149555400940334949013355496947346482750384912324176778410705914594879645695189627489725420087107808936294847446611578806899410497580511830042894074965017686165007088297187039152331995104081446162393720693729444664825948484840368508826340238554877733273036474316299207739957152375422650843833944509781731468112047636395548873188583307104250458166050341591737196979873051192810016722883070154470913763639438045919420127448967241007666742849755469297596788390772980392721997270533507186756363717061830341444667872151046339469889041754758338010817054422842362916056191529290007627559316352991330559747211464282306168433468626925018142570514257403800468773704312214732104203308950431012987986240636186657453506119609685963557773650143841019108831751425378035410203425950668757601132972527853154162962656436076400324933961340164565728968491038934780901965969485045917417192765363464898205219321967817275123648760089822518135889301647386725468631515159330370170416214467878224425343910750967964432640738076820841052511211037920412891081161845569193513698433512161164531675173386138117988463699995871793910646806625909055690983539977790777563373161309529949273149104222196185266685121667049620143532254795136660737982146096200261059152061619515194932862051163444765653098486492304967073102069720896026769792801399632385992351024129991576511453655783587360917042150370380603085257744637890369783272721493339630786519312407251570313235423898798295273587453196165372025994182604854439931630124624540969083172596282316086422235393678640145937499524358679947842442048379702696355832282592362039869909533962549030955981801894274788590074496212304028720163711874610363111873793838519591310730033167057614875115212696065153049481422818273709215715860057617511602195700522614712917266602021869863715300428236105054147461010736949994178824979474441340702613404650968991664848376988106894869380946548951467286286849413790791653913423669944684398256593717748080254237957431156930107448603929107223826223388789740644314485441511978850084063781255787675484999196081613491108179902474116654515524330780491031220859170161799658262075565295288765239133069244678947946233017057609343866082538833668938756055936902106067006974214330105435810443890918991718869639564741952995539849382310933476020117363052183814802545820495225801807257627839409930710293772593885312236073104859074313184449728881940941229193485884665618125680823433853132055985547446524978289329709497915018293846586944312690091581511594856743126016004150582271170807669561172912175528991985979904558890749385459443286145922326470845539143385859512509605506853350449343939456108103976673273537959432560595961129737994404894242540787654220207367288005914059981704654139901729712221510753561202173646785184107730096158188481175616870674505577340648862550490396412871417018469191832549176296541912869874065252906740721654781121109911760717903159610342389698174877943890631772138394287620903143082711045774985293681452730263655371208196722484821678538971149025237043800378838222517198598111304499117827859552539649977393364446865540924216103364723263726302679543551937422396139781526350436260960872354337202016169443755856208857797055233029651052540189021668212340380070658564010923517849177507414533835186592130138491018334007997343363319483922012137961089003240085871573116422028783397707603127129220748236933510978365679565957070387859314420981300769407837908462290925201728073933816976132963859610644050226841112323245696288444502869037405639413021164361937118417489520760194929877451888157685953668014997878478174946469785223716623180207982433973415007351204862758911336100211411517299653215261895310086347097904203829809970416475096833495979116970973554329352265068127357350533418289851974657234379551467915288730112159145244831150770734222742019993668425330654687057370439853507345900877122998013668731464959015812509951141236127556331292841494842457982865633147474800014151701148342224940818557689332598281884357372712971128977970622663877287668651010619344282116122325324581326600472788003497427053717571742809083366702499810288295786914676029846140244355050983255770447605787506249581532995146761839908355923889168307127167718775769204223695297198925083330197704779181354724322423042951752076894355286647593174478182122672457550823874189295382425514256418637487788188833357400168534749529059048752164222168958884672651157317719819460248804051985875558151119492274192164285997554362612628592412035683016171525350114199517409644337570371500844449928323450212526069521600144803166056661991606114644060653660245059514955132057739650424148188421096397927840334380392174961972787353967411625289764416922235173272839839821119609639907351753563345554035091388185449834295016980638886640999764482614458669041257377764123935885193082500273247045269974625239294563070313115200754536910742311377423427330537084246112115319905057251124527916134323879937783760176079744729339347075467649071362159083744026004969188124333614536624298760023616577485720733738224263915423857841341270690183585103882256770661893392502693498021865647642389685582843953946811147123708887226298047828219050600569850227451233427374330928453232467383780130783293433947866120726995431059698429399358604904867640566200606130831472793607907179083166369342248486863989470011664510658879291051995547693410496246579780710080141352261513596760912218535308440170856761723070921499540458644455489991519663939111129967212461587113668649216076724390148888793945274725225227319022470541227205302649542859495925016145806631201955427806579907437759410900115634023064333215651011819959388955871267902997901358903545201475683966433778947043693594789755475496035086958157837570471824255288180318709825019061377514943388837358970517563390224138770019144389580884147599050705207236935900660917197684627306477962955606882466320358035322329776371426208522726338795829480540271368854470788314608248409925191733290569947247310757275854959911527477964815130436557764652749244241199517541969645711994355330552321438090412738798382332226919529589192250557494241548433710026853309755167825063936104446497897617145111549706943444255436305138614261276376140743454315598255410595994272433224706037728525044413150841464361368393965247762179005560810339839729380612054327358366417923667930983051187605179848875964618501117168782160863026402051570828243391023204665308495277106956506046554167850132533773545739170139945192183241836947718796356905881773841368300384059599076109579947527682129109042479881102615329507896045438342943013116860296722574020360723682907588101491639699288138821779949961836776520411155168219205590747535477627521378163318555691661542713646544391950264384701332525667629122497871823817485420683319084342156397023473394622287736154932625235817749701919937295844374567441073991758151691087896199221671865170395029813705844912423048061102345123755109144042053048730839132843359212384735579660251850303833785768784696865648022902905173381418667198869073568574344363750721358358600885308666442618853204424665581736553441872594164730540074895831139897094388509507299937051318038195556165728529692540879999626987425905248546874819139000505202653310090437906437353493036459487828174370674923308102192760577316252206747956503650282863651607038382570240433811730184423242326141068520092787416728987501262308190386829616969340752125682705801122152234610723707779759946560317759518793300541243717466107664497639115915073201178204855592183334672412491037380076384683945288657228532268734005961674871452596421902502914761330785083919769120342775319278923635090941319955399516216560645630240474199690966290603966041415126096716273342684289968849743955577217444049744693089555530658347011949333859384933485782179979017308685515226980933971917458395038227960975119853027043914231310873219948149423889046224260734682015678287922361729630917033049175640353782244571002294667933888340836405335475217541371132720226821964776963669819275806723777785992298807709929538176684997296976636169117666641244674681943281403667669965237986586050455577901196318889872342602684954503673798620754280578207151974162796030766028685386173664705047232327763730438873915449291791707563885895332574231605641013307431269594891347947776510238141114306799722931395402905606169582734442126923676904616509581507511148212351883230687640367868279782599333984598021706741727319893068773541917640302934027570399996996523057028871436651888240153903357266102445167390799747627339226395007751141425290280118578116059901733055901022764101301944252909138292056138397956386020712254212951806346308075495100877419587620269650118942988196676185816239006696122133676286175893324296744829457078596450084160186120413890274431331414426025270151186394253601866853608987799907361091604067612893212019655179298274228690778476024199196238106984765757968597851241692030299202220888887598170424877764737300921557726340182189592358760559390977902453433291938193577348377746202518037617909856449331359653088279616196306939111376184798420592722206538010159080268011745882285600844174427438719993104956298775363623163849135417126958696269767349547512313813619563911152416327670763593438499400091856838506554985256691884562590138161519401340480527633387006257534739774796296651418713593630229048248385980657819811451410984893230093540404659435586879354837562029317083368158366581208778486418753295841524868334097171684332456275685994738474126606354694247164778847470894097696266706465196096106735439402744674327213172422487357228426543992127327635689290637641494624015355638645144032612368868519498462603183106122484854571978871360617880848279136789174724613539345359728882388320586819055427489167705975888433984853523316210790542216010991926192678116796044130635062345324152300446704830443577280746283173854741005184295342332371062191809741394916178877603070953829399519715878415036009897268537468570221367136366970481605271834609344340991337746905660442674061609798175194390036762383456047698608015352085452132913433516973522996597859566078056845863905908887278011165291708417563263667428843564507641917811907673417530384193494241256310185292853445421483705182905050969329365831314431979190019557650899199244796662104855233825929972007859180342882058277704266373522258454332205840996427387943711519391351855174424551778605568581230600336692511949569470405995369190126891816883396659268237271360678352229312385334466201030812532775066041886840925284118457624709009314216580637093158914531581918475092656960618554946388463020449131015044868851428916057730305138825745782054392219552636707017574899568227163508766345963560418069325476865113750923213021939600521420729846582800439475983105870937174037354720754510194521715637922103832863174306914147900742336853099557515431304231999246174231484015717332282716709754059838171132494440207693545458417191446885979946278849828031277951460919623051034421544353269219308990658071738984056005327805183822800525618382912575451420902687530365256659258615425490030280887891777334422283618689648990916537172093687800423729127697133609830002492057989898297796982673271028657350918064128928342407415377990482805833246268764868021337215114012868676391686372536411729438233817853037184033470320721581135342955254618208541855731143288390353413648170785281851732717782966952113090220810532492725519638045888349193717724139911437239167129593933454962740497484875210758675250619704348821290543233971673577556448846921511469618331421414351602781283966264524929685042964593404675486423387559893005977641231314006435425333283085040699127884412112237843382563428719725118300384835920330419279379566859348700158926227157802052980331042019058026725683187783171733271948496005044143560323118322502637508263234140972398983912748851579064636462483001388947805900067172412508470915634563978131044228220015812345383103056150140265508145666335610389705458717773895101104391617893834587692963021740541110592968636933169491235957903723357947668306819721563465406300715475158184393709928826157823526891666686034150267182790882618284697942563362352303206831323358867734738328775068496172956948072200016725821597883368842337773288397932579512406917529833275581259571035113568109229864342478218036247447615588730309985758695734510043780556757529205783077176496471325415610212027816472038797524919765297992566830984592970845303582869369472630393563202710739859607163808566710500733021362951130489020459479993579788331069918453138722550722763621323141565373708604682574486817415748034802007560559189303499318495656637410320447162108327228971219314378434475249999957076255414895058410684299850663379885376269819474224456586785656248170782769940141206891713388553658073534399195644641522115176052415428574739219097967976687603467461457554955859191164505466885665658639639767924299523856196649802812974616801802267502036895678275761021916210564177641041635593378757149310721736678782468373418081693504545880242205428378343823055278544258986748235096254410663003278224748882928358133007058841993315556901606788106667560549336074407869126866987748400841740244728227159178056309012217031688928571782042094095521384399311753923527080531705661902323491816650371611721033523571397219599047854566815410095578200268026278263719443705075001786917674837747267821887275983308099061404739989465455115793829454163882185899125304887561932222708768322598305030504665829468755059708424257086766747305846383819093469725047248824220250885687244053991125532664566116671504006140403606905429280561396546464161923103211345990544031567253555731045106805159311828808808624880241985889095316840456213881403915117179163698236175411385499166684815915968480434093027532860211189253699738618046674795787672792999656203818594608816211995703781470189215711501744581101839411151663753899115165329537808753886881657974965426972131661546569849990940372405476110238790428184488738347600734669652322097223250428864180027993476750298409984765537362657796416070879226894324590487423657382561871278570921570595795624589139055559009071099959440067382989899171838306183266660012140842649924742859611090515740124801316160397382361528818126145160286019806676068877784869896702608873641880527890316395924308400035502816504277132961141394167734491753589562250399176493264892353664061625277761029137370100628917911487545716324723668194200132794742905363293813865437219280498385580884790440969841308822489805427314941928951887893022716417328720065214074764673379836391510530727185141214713394611323643640624311275286913448865107265910661875138774399453271406177818054248013426344310329761104597085152098447077201367366222906239581775885753776882453796965923467703151285772438699536102765479645372502885680307413662866106170865895756711922560454592994535236496916804589970496174094661064528142510886403786449535218305456842382441379799154438887419021460555550510543616033924575293182091484408416541769281612815963364048646356780757569711343672367601320048633644861833203662516100236579096783971914940962584578170261859195839531265449815071815488656763694759061754258406263802956327242716684179537504582379508215783252607178178088802492185382228670118485057295979356032115033524154402664011863645099631911977606320704304112728731498681914436218121020712152391433235491686925050522666130914395041737993285207314963133700343602609493802928503004224282039816261022295240603646952804520946941010242415985911624851184777301527777434840431957926264813949944673551307146767985201465689681217487965570173163643509958213775494653329684214327827011999302284350631908840569067888605470494867078094093185681805567072296529531004318232206504181336226026865411076021946392874057638788250919085727034812649335610216578025336845345143611993602288327965158427579010058501070972126057626492887080587436622787944772982003054200253830823554111498536222681896946334444266948855804973172592091089199500741562696539415452947339170748259174327785446853128335669513145082078851517743920647062115681647773464964397083984164018519909343334438687855142570336151468392158306350704082584984468032501047427686649654422310833066641400301615994967827493563305266521472842860795419105126863846422196259107442366468195463078946478185611226054646585668341487989500240948766664431266624104250609306859113639111712612868320445010267105014336845290998309595655913630674573788598282866583753390305731816109057929497756775700585159267974814820186176103310207205457927403590281998436203829987387414966457947618453182864288847631770554973173347049356504518891789720855666031802379969138773206484324285270709205599985467183627583408771066354525741567980206523151738792586915422881830262832269329127185781736691480412826858122772248374549347919370137182267073026675998994466010854131637472525191661759793804187383385063728120381664471028262152641112274554421154339959138183287253585719045505520107152980070283091160137099292965510274756807023696468898266334618758705218300184807584088354197539382682826055276333099506021558917569750224095249299515788582438801451094883627828393085225285561655381235264768976834961365327391124914445942699498666999893856684227950179208224585977027237188364701481508507403604047007058087115811725638813928113943601189018425373267961152247890037761302493475284782546899763535118829330767814698181991620668269945422629163165544379051326991230106466724365643696811711891836118307890478595652525255366621147162113884511816840396655744042901397624276056990125038768534079803779100943525616037614753899828088619008395536090467942385748306600029073799236485309444899343028506413442883820888889020004902229696526538629246556909230620278629882526559392856516289393917942773874800817647601687183381880355237775910545571303129649525089524905395378564834305134521244039322406908186823196106048154026851170097686770889337778017145825884039607921221174773762928215204173455681057924838666345529415448149304949382876141755561562643480675694681716256968613147745357207430613269064777096592726691739663936972479411549744580982595690969295951124377572983131626772012328303645442200916852856945565770336906833423465591091451619697138198166329859558905214063171740006390062021298165643552162085725240873971322015295051319276948973609713352730998694134218311994008542637883913479828407777787680323461698499647294422084282817646089386696643362368644300825853244617851377674880410119760725669218309713562324184772652375374114634170552020947293852814293843172801019413910756915754960949513904151203541461446051840007448259726798352641474603693610151758100255533155628648070401590844083219302131744771794344997482188463584936978398660573075823842810409586707909905178844430120802647807063836359004661190620505712538507682085015044952219866865134483980681491121463351408665287812938959481170105910357990538620509531833419118205043211805481367135131043510001217007179841018389573457220079410178529337326234065583996156553145669981903525533655180371949680268096846328384242977410809543675945418772244470438177382869562924514038233735525453467859260278425298347317682519481713241615839356665456560680840498940120461682409400402663239022950311972596155363345156249057709454230458995809242090580951803490168149757350073935054019165622109336917656545432294172620804133612292896116434353342249330734963079455517919382298452119341562681516337738575648767577821973113011883169609620726122015718876600984889100054934096680295191736580977439039028506017709542002507363025723119265878165781062853416140194891422489416622076815109451049919370235373116114757608692704659925432381754394107612719827597612081948863768803738040009504371977744406812361238940882660933024696750159340523910688645165089008869899634832639481036543254787653320638432558929694432472503303765836450214532870495907201715549175020132063058770748491116853499150865760155207195804362247704323159705757643778745920493691351727030299415756708416484046628046713012523529285548005157301153582540433726948466046026151650809270272382382069108300785773819255337441101332945961292857488886065169118815055621776007974516043546155999423191267110418642372034846600254384129702365583734241130760977476260518567021073925967461185630793770421535778045512731808587930503730600395139987458895030298527054144187802637147891740196163675460503297728664439485853185191164706504202165137277683666223667678326541315118282121618120696067940467539615157885098900731311797054223415118359945975430655859960312567571131475526224617714712332355708823003948906062689603301864418180583335868691490612047626182731354227807440339097264606079755145613451246489068961739875470228055874333203420166529507374447784305640469864855027331846990609566044749218777665473803690932785815768645773380794262865828791122758250325309684847903297464958181666033635358129068563852309604600840821818277184406170112480134817024805566454431714523750486688091299771069968095845574546155903210620064875789239977152272324902190689207247507539867343705136557604971542593556000682516046572731825660894243361872741725351249116747185409374232486068963486082679069780287861772187101331172590580276268919679886386634020085638992209456682793704842379061874803253777483061678953379515829780793321643025442994146757715467781837861357895639424820722327075085792616959716029739364586467482958207709570990522890792127764962931657802778984135415780107765914300512532039311277599345168938876065921208747797198039575854295143791315016128103667619430878722711183166947039186052141722170959916301058261135613973051315878146780182986935992274840820131415738338738865047420224444693783645755602494570200365649402487011370927290838830815699414340478546309121868180270353844934191591958321054927342381052182859981992152287035083024345377303990681908772717884183657654518087639333352713004718198371597847813354102153705299825901645234939907351474249510967557727825174194053089389372903490037982078172572854876028422894029224850968441890810095475988338823398264841283285672853539495258462697222617120836619957906154332244599554523633183199423214017917995219745677540337651294945939597179254030908317460997228464361780084487417155296721136036090441517651520237239481482755320398159037410919574031814900576110607440194618489024227457718761037597468956868116655481396540549786618593624495145724581874652456581209165549629445504527137357192085797364662510568881518332286627886386932554711327541538065745638650716337713941579665666265422617942952999483047497506739395219922225706391962619721519955652857076879361654607931618360141978746446005388248090891137854234900940345681545678931130372469877049600124962974879775849759417655580963499908031858209618184817729691581903161800817213293180896727257170217730130744695642325802886404912163520475994470202143023784536363548733298509742734571462285296113628210375217531462810962041970359080677111012908920598859730440329642399414213504710209121759212003815966350984310173574608743149053652562817460381318136532029641445097629790727749769261226662669074377098416401676702857260031975984627637375497467053924713829971384263629713717221880889728986096050852032837021087622201432522843771276478403228021140328941738070953415631397624151504384288510156635581402712700757455202191697494676319228737178922973028059034034395303749300780962842849307452372306231052892599758845431959458285167870667892517347390645831879830107947640980067803004508967393936730809909236395777604987538232369621354221188101079521629622085648679045454251625107676546798672822684592855983768505891173790984237698809246098700333769787820429127196734134396579708610612676607519640426363113212473101646533042975716868995103135967366531744532527844043607452184074654589239224830242703547558214031108535648969584947930990193544312836949572426592238586953730435310479621666272083923621381668942875593854307134736197434178216506496688953009824079059483647403614282050753743981867273064932959542011164398426672236479528716467471431306743996770219599335767601804856749784141892153472496213563065190010775711029542335118520498147585013647885400331313426230154068286079308589986354512011427428106833585139071322206484594102074883248506328886053188206126676590270513832694481752797319447572418821328326503769096898953540605489622754912648626506650656112317479686335554093336260619602915122730763509785631537146284616575839827644438921128640277405195036164611686699194090878568489410232415389748436287076198603262681862514036750286407433074808952195768162810580195970358132954313881333298081188925398793110114246658112048454290247961496540629582494184353145984997203254751107136780560032472857626780033030515609208785206045690011141040547887636617941163448189891345994040940872124975056876891720153227139531608164766899404809115026738876399926355600365524191270919847393663424572414923221439142752982139810857267817025812871900376788256997842334898463352662090510641228932988663392241678956047564517152496633467104959467855145093962316863216688856231839212826512371391805152991389064124737423448261754512512088979544372683533386625745562417348870905947679429650810204111065735558186700013653423933883097167249565714606670705681799270129514398122420540026499380690178867801106966120073449110936391161871595818938375847774829758981250923947113678998695123047394873404466645442899561414523357535149814573332265926116699339233174556638102139987127244638708944468561359875311176068332062204342098725186377206174754350081507481637885716834843269210398255960641150605661615950996099534342925946686595787353370479576562963586381475077859746996825276116809296268479088019873595703948609189870608852285826625754286228152165301591218742564799987888072975735647832822291311786690256193460135658734962868632938239176082728556339523590197117545777249100310607919371099915396695829494314529821234859745481187098445062647549615486712138842640872133639269035222968807434244618282209024184165014120780460749247749628030220590322299227907839722332809027523389248526768618812686065164298345816170892885808791376949479266232313341313411095480823140856557906080974024961717646795206622767764664535207540367586617252763934336977936309503492847022470148894653169044658644046515222374008023859955833111313968541814451236338824961077748704694661491424087609044004115774718435976453395267169604882061057754564138963958515945899160602770070298491354722288249686135261667058444398946562739315591676382504427826938596528297658459122587511965035069123582480227729185528040400268624670816588844993935896284926079612289593369378493614274201413039893005486058481249276054739749600208787243014765895119117646373020667913919609717801578698268285462017572086524568120779301224696167862947506028121936169763472771836318672538386151064211888942896221729932227964273088856800776811568673395085519569100322530427432130704771109558885315495916051996138598150891093219514157959273651562777665479111245083697525873945291801799582789460401825155102537919412402691404279493150920359906787677986218656545107443116807486930389092684307787048035026489818377721014586509971074901782297002962011634999933099246417229304298304827749781434036599553013719446955638178095231957031996085193362560641113297988001668713131204375978789554522789246184001423087223653817838624880442705271411823065514709603319431961724538980065812357231738739665843856136583743306302990112810904198213845555781921062473133372682589368234396795438575718503012583584737814070553675158836958329308272205177233534627999487142758391368069478964823172931858549138744193245146340601380495041505676867529194514745002368336805648661937255651845736986237626729045361220124719981294999305002127515843529384550097959438054677440940171220242090377914033485972244574971240560442395843028978219839626248757445760843740225654235606780298668539954714826307105315691577587084979393527349160229616200099858982090761817497921774195936876020143679872010791599120151114909200514419398516201623509951638847557752087434316408688516949366260903533639419237645459704680049301511952956946040834193267652128320710227550002124921890995280691442773058538937901145722310275483958968111114980603242191861108030175340012568063189614412475087092342445617463575204051092181787866103484521622268363755846742340630926667326219592061661184401300729346920118521825278244526712357536017731306069026691133049757877186961186947069964804537809502251543652637751971565373408373998333752229762491006279367187370379214504619278575601620299478735238171817796042417598721587512023503131262638650934629225095629269179936231527454961028869088699650362547477734907040952631581050869181160261712415817136889526103408226934543680509810605868149888721395095147020215461977900596376295043915366940229806919098598483257584051329696787004756584689625403717953773929891549732879304229358187612825146222487112111568120389376609181382249444215903545623606312723314563587329948610311308293081779473428127278096696486118025686719117562122246491818712949678102950707353460992255651752504905566209265190541408382037723007561865083323886893399243620671866885690602232319240404134547420320150782526107027248571613488333758893864113310420665249811130020947364487429249577583599965135327653274999416596781579055268800861522250795378393894687299945320111018010629813753462682052470318903845926305974751764175013000839560636206117082624823242637142827837617120463199458259997877767949755917096153759240570038862083502990734807576705892115900981955682869275076466917102695266015322685658355421012469546063935885424594774588751875235886152474288612911046016918516851135755142202918928466974632163202371682119116790855794164024530595720583290329656511781950391899159852520459618480404070468942370008565087325864718402139543208051312146549669203147853349520309213310933783852254790923686662297304663773804281008053511721034754593656570974549599280555407280396282997618548736549155714932862859971431899946603095396534137232520446350326898471261510592716725018437396459224981167015525888180839778904053472094490869175608722936993828268749128712303648440342171754091569508533668808115323444688453386036422248060177674915843046218873772472230978543951295677250740351928181323275005638600562235642827880207824853011805711941771359932534683247877165967173927159909564378167455345187840011008017872051761269619106166793316889306079425694236654368322904403482333201814656111544033648299863386909075251215202218639186668092425611296883118979442429357775748898123914408816412943818418336636141761034063576282966981609859511511019262964217296420970218490472237366228147666049158407041744210857159273133654408143862424743618696651011888596111327652787125009265571813341597954541816509768843354884102607140156253924922093846764215669410974757374788228859766123989922773298364131278117325022919436345357166426968123417099300519933229983774125895822060192236527574393109382056357644292499420852067567467918061584194178372700793801843617479937921830549629317231036460637098633830388806856752972175058054490138149518303535989546956389351493002367454692185206604315080968345975990672720991658400139196756961372624053113585531714364331474447723380570418440456649298403658250821239395053466429756910223452007968763832121389674116932352704443303506274750471272282405549709099603705613609164715915960136138668276478566451672730717109705008093936855748688115289620337685395190264173018283398148331430701686200961721561012482089869705771812102400700905034808208493247242654117939930579552209258391498850029469035303323475546682683582604606755429547873287685475377856995521539694471169280073267807683339830386025327864823810603681702370089006729336556144364707578962715368050273672234922933220121635541699380895992593167583222545255512342842102627167094839411868389075500045049156484510758686852446013447894943070359340821036605663818204447500415391312918384611797839473675818751802268724265710132935267408236197438965351278133651439423326513316536193293433260816509989474060991366311622875457053746154734093546445471907791283787275362942106674206022509296934676241577976816466386009234949317886404457452677336804186349109531965125202274499250902846775644720875500809665391046435961778014525157261533104385559941474399471465617189817846533986992414838511806880291739247683482342858397091420772392502143798852724093658917996759646815948260449745895174395811685146116844284029570132197075874851260828789416829468156661779419933429903137055125658184397953128628511979027525526655968533982459382034606307096936178447038247606185157529893180926461919772801615428995940506409821190902627118135624543701314667602333551708849289516511731083661323770781526328555800146531805528281158227439446037989365744033891920092613094320017220705222470344489815240933662814968686686152931594160938751930046810465623452200695465134385343102584943286325058168924040673029310675858036276078632457604032670764934339716133995002835596349705604126608431276144393116107614980141848169229045877506919206229705249417761811289450730919778629379226300745149718418914005720912245142159543259145978693007149822075696056545695314442790460561519434164482040778505689200353008887560974336304270865439051771763300654058146988948340860619137440766452801338693286023432618215595761196792388681826015258665318955544637859061754986405438300444549993440150149840147043970461347940362111676298390250819432158366617729963728068039343585318804327108326206103256718088845119267008657563469344062989761009477474451956760162186382284618428812461417026492518453642767534917147069923980960710370729709303698545264456095054453829613276500680463580689999297247969997290134795692099181056037725678161217567855146237502946855930884910417853807339873611121387099863114064231474294861349997762041898772878635261689579493115870776550692234273113816426462665675756546974946617789414157014895016555284397320160770164709488435645347388001414220989366406841442507480395717083324616572999097276193278730175956009467142060241290877987921269717660692986861502854139557116973795848409827465710537532898820969953114210572669372192969456390751390907151550933874300959864573166307081530994886161717453551558851583343925331871084735376263301351402751133789148327604933161958674561342041882825482751988710305899299276954238333561214725611202781430212017773492210486534186457182320348002784196480704789191661104305100446194398750085475739654178505061847085333703536540295343542345657822802155042932536594292481706337987377389931684941301616472756841901728970336196760322371019319610002416987103887838729479871305955548735193110215707951283834621919280167721911557123668619828269887814166887437695840324526436294416102133749758555233339024892776724070090807383375511840149522953180047190036977853908767344984634042995085876061970519110684675802405530224747097927150811595695084546442684555477990928171660757496720310560236416467794076447232875534744212000636729907045138948107536117818938510870915336188223122586669584464395294170909297864500209615599272720481435239859666639235812725476948597209074501135318135808021847252760969059944025458306758853844017309960883089564016509992334600784494478014973532701850398449235401272667134966470942306365175395746026442517700414027649064096863927197149703124000908903483052248894472588576047740677663340217963951717313518449869266235600234641789419195509029842928104967739373171802027587502522023201140175387227840216779935713766550893752455680337450648250552876296580644634069430453353145211016154645936272463816387189087394672667294493747854103385279322817175392011314321131330314118130922236588905770924873540557593734106292515220316518645157839057422577230256347156056168797510914625537869193137510387256292697694390082200644314765549921724422602168735121263974485976662833372095149690749211689658820671962765716053325910187356042858924966750356733270142978900826646592500137459151686635089028698914540010816071237152809865534864494423517049850196660716179863551587110492791294292028927973540021716077430344073609693326025855790169847169462449634331605840576047783969402689825599246721820510790480085784757446275868037742454617991854859957851692501376991186426370657358200271518637279855827279295890998751846987450108105768757018943799452037845481201757698376209418162379346815468692298332071843585728132085404444350749143907942324619785642312032133673525346366409461417577814739054945103523777779132553102345369757137089734783251977517843323012790871875255278741803538179330243649579112006669850855714113801681163856167114738399698556642725090779943711808358252734022944092773000420077041102500111507986654070875025294580497200187801780919780172714293479584644555188837793897365443790199879749187230339643035582247802767556783656376740138710037231634216411520508177174367761950058406107076213690578756561094260480621507552016863091758167602666447260622506169156971592202422072988283295870066934809530298783021063745496138995190815079204214610188568846396489684792415640046195664923838748502795405637149720196788607093522256036912969483424347877498863258809023864791925792927282177912433074355699107817555866792296597435757562411545614996189466278605956850262451519963505505416000261418070181647502865598531969104146455192441049781043560482041510895491583645715775657543533445312908979852935021464258838293664402767603232384510368836609834352428387894327434318355373336679790430102536851454521028793128907265930399646225945042757694501970328627714926251572076695356716264647777406889862974644206041022551645509013469396290493467935368967987973424860121170594990377161182938148134984379646358679931613238433235574616407208670624387872038502759079696156067687274946684220221549338564282866194944126698070006456059339965380992691161652031646367337687850020987755536801987549922030952677633198918218525724752423680640994204998316050660652076060661561280050959863976026758798455909510854633327316281201618162865191412404562562211486770330406799069465033157520146087912617995165152178438552274137912064561643371226304968695811653938391057844455312746547042413479720607053002654311494511454334182776211398669164343496492127400108712746071751779611368999644043766567268137261732644544052560670732143659935334322548037102371175518267350889876571467006850668407597190785164789644749105669159966250565189257845653619763539243738817058552731355104020784883573567682534896373788646639224725780903312362383293667871674308321932211512032512628097055021554255365093088151379021338808258423213640564508286314202752794919953292491398364103888206931815620657503836726109342287190042437318574619399387474326799071458451238796590246237574198416291784211402841586246151911007828462545805581821345247132309876981021350479380727082636610605681432332044307339938443472101545329927373128084879856385066632590455594395667949537935127366982834051196204969921641379139118229849583032989198482913006036071566687495323794284175087827117668335021891086659009076206070937520765891210579179387052792863071793979746032804817246929475894216295642095143825396862305174203999085488070977738301412935430561007372399328006983856101128888678373424607476107202298967273138634426116192760714376756760914969783871892458930432997150388011256081889060679478266905191412981964048623237456769386847306211224065091385762248058262335582526286883311386656241841280618760046178004200856132175070052610306530202208440474039886473448789766697884007467764040148526519110658733174717768184785957211053863163357012071742463342041281634311388797428393418566046706902681942269864822734557681010790846614291097574647045279779000920116390670474486769361853980256593471677900886365366431592716263012411408387160358183669595276287710998132904371792210840006545435309560966422055472782342064096990573021924501324881748925717342498919414584552920103806892832921992736032939019809450479423384632683815083237892825076105277099683975422081160763542754718184864399629792007304820577759416603723036755981548907098145668769595681081819780564128960900717899659647710061625346272322561645193461572709294331482660127757707597158033454118599847983879998622311965497294362936909321598290885136712979529389667240772929129068485645977408035886422472230491694718410770117370574087643603240529343863301272542543859375732209939373548682221217374491153417210401378652720491137380591151618231464920470843384404661573161780749743877510628502724183459030775325177644852884937115665801041110784785044289843518072585318444642419201514276706432921742040167320700040550832569627279827345901170919073143912684080155977545524933618821870816422732736476370850643423138208883865144297264970616539000696844639913505637553192789849344438570135274216496071133103949734571620643663341558601040194831651868629939193020711478105767827890068062489792206096382726609749334840387692062017995758117956900495900339505659593213692066462555681857119122702216938769424194984815281846261580395733661096188142690909896942496867679790676455182999419212396071879465682230487997710497386600167537982980819578934627109741101917386495655133687542191253294300825404854752360402100165281158168071613169804170958236795279611620591110503663842901285979680910290187513119426257404940228059957356905138588466217100452719433706210303116106082241220910862008479332545105785318831702070400689060038087557447600689790486285109592171048346053349822244560444490819094511382403674509096297393937921087603670069233595897608105948083445087757088107172980320358679508424518089283763326090063905984752172686917541676395949041084200987466480564749862250999997586999072226279663063533254386594886398404805679970153448407915178938936320476951944808473061879189004209833716015990647149588784475303588237854955810921549146212615461561155841845934626224731945267469636375018951981371109243425212256157391702389521323128850343458358434634161530464600881625737666681736338919431710926244049170217330708914543866819782972649320455322172405857999922280805906014705343763298368510366235475709124667288029574987377439270883487718404886024347841670041589475410871355115339626448929800431895377003530071458354489671265616673861433581869128864977189066005646436635801318451689928674337096553575632474247664826466700917736267063102209339264009251579198600562280526998819682787403643988779908320861555649021014816033544739501271890881297789918881124198689015589319955155402910074854477882537344885560378399234302539950919946478243159184034607678251589948235839780805027094140824221907585022807758084878218018420297296306716503486512030112948351474912981672814601159896162185722442634434293070078583589625955432071586124560364459411662837758564305891724053245241427099750259980778803323817250523991974138137396214804913654306413936561697977729706347924059954070465355142572057232261431019615597513203540678905005048319579860068022841072659782857914031668338608869510643391048702219244801132114307162066121127846165769159850584724607355260939808139863242023306219861775781131760155564723582953049923915735654626895667850681815697049891666071943075153685644076555132243181120163896818166814561210865876818114024403408803606031308008302416057054939350510594856822933121839268611730029646851744637649783047415913629997213002647317225969660224265093052677778559099678737183051679840308007194232877300744440768649808550876040056398567285396123107061840015578155470824523304151574687485690767704156858139562827615933677005427396174662717777786744316123155341488256124768659379637196568433533515820312548714757149015098676718616988344805354727313914572716325877180683212634399206871210303232604096438833025330851067792315289555746458354921730688888879295380710620170170887869881672590417546972210845588512068172674986499462231418794106767113109408793032151736654982600145234639534674141808322803153681484696790635437056022145298578197561471432766774071442772308382277550535981330226314342972953637864925687939407484140232726042341624087467931420366812440959521994912676670564721709189629473898537115952107454192154005171664495527481808184346032997180312851391071956890655471799268124223879371730740833913718437902127938900923690782433847558774081337451189832346270969354086294735131346005143781741195948495626527086159416726532932589780780938070179241635662072834265323155571724692828639680700386404975432523483669217933953211087177070806257583779491092348737861540121044382194791190523400873214944560780624513590101990105046133174905539932164844565448808830275359261496130106862409348617591168585458192926446494432782177470933074778994183658231676815496256588751350186825155451330426725896816961277558592577113209946639233764897567664132910211590043170518936492877532424069503691495370735341218622433284966319928843828750377217417023034646904742080877753754462557960354177523014850333538662281003061636080791645770858670658676915407653210243502178339407465876043513161280854840736893901919317582365740087259657796011161064312692075135007753291412186579932324400464515447455159209080177220805760537352003569024984580443907587456831379120346877840910276141829760095631868752460031105923683916864797691336537707428779606455003343338436066294779628472514794473118175294299682090112409373815866805434623766246287636681811408219386708284104107333004012757999895604688476031473376748746074198220745337279746706343687855569287895972205986407499552795347188824997661626760715430235717791209722962120705753187555266334924992935850908500878206057767758244730441453208679245689730913458840371710478844831802633666698481105574269850303179545930718994239276432747958254772049932006704363651917260807192671520148075318024310943953873754654510483173402693708718908790888024461998499936625990958875206785854198422102742413263996723449328806491965444050986829925534438508900535436867873019169953880726098473315803183829450272091175583909288995600146863588416259156818987297648519075331129837839014465929673385634042524883439284851401395173574097317735274365182760007752101642583932022616371311936937028955150029081316268734856925438502715002685918263245328415041080915281503206786014851018136351550190292779329619492307079204047891523567140782525498523205712967460329882765190189860223687242271343544974031909594811227629151723206631642911565334683242386029688267726864179332654102233798054608893328203017466379846321517440462949890573997618372014333597733446608677062422620234098989656640289947167215024175215450082436404634863035221465646942953670954203489677732301091879144670671807962699170297454629866291653298546071351727936497084875726557438163663083214050889388005395559274995508658558293273411320421620724278655081595034154265372101862381481517343097935767415006344088022098080464932953221609200215898871989116794012464282286508536104685385578414519126614839622366348768148566924826596655778104574119134224347143419619979881044728955005617840414817632057518921348506894136419962906425475047035571754043004785967617666400051804907643256123053982556933402577779019318911260702874037268364582858887945822908025645160844913309315137543961406911987208632139728764534686282103153588346723932025952083835432688238282943116408760686676402722076743457465672148090719943342728418569144137008510504067407650485791991081807925241082913720621899154414588646414238621692615520052624303634828434936718442389065012756168080817185328555650151159793547236490343517520412908962126550124943583332232188976220756028483969355731569512528493054946638243779600869607253070741117267314378763499971707179458656155600685958466135283990723719795283300259101392090550617841487089830346570467620569366549282568869566033568015902902105206671982919138297300712546693986682326458004325074566542506640116787641841584432381583227642435291263865273203727669550753385086086881396647119801072931237841102333494586140216131687500427034314475910525598775625980999823206841213168107255721993862874768396983577137624461637478818682468614663149772265555069361846348105310576014804158730969279950942753954771323651312848908378523724349615873255039147354180664588474052105704214448783608981383665370002863393845599564895078763306594124437007641634003884308210614779060082848900739054242059502004355392755773965878824983439065744760929768845430019487093076629208914887782205589021154275527480227503913112369942169932713749904718443932840305295068339417921760393894600721526727497525712665353748599011723526120840425496240298066554650928582308739206394337245221900101854563862571289994773290307744494516508731051725180770423891605009107257059586684790189777965676902260866805809871551466039263659504017234482486815151024669188503340559613005110109877227992883560735272168045353517704737250790870415054605925026105987616986519321110499858638095644572057601809717182728821091257765767201219684168771055769564838271719998080608486265189550423212027791604700574373513922336706900187475400060514593435329161474025381159638785514419880745600912227258361167802285554611513715185092660423912753884422820352032815122873827173376378702957365195382952674623023240594565236059086960540478446180595306869919708810465989342845005806113288487702852680262350915092315553198177097978715296641688567485940844596812204325571521363238690740626025224457118269391509499868520591607179880008619469547517099395990359293378077830428973551752221198430565138079786895068396708064631667671877800995988322371288202169328546708295206550963972287149757328382548392785150590642833771260061420151908128354335325707032985960221490294092461153510352074862435351402508499628026920941887437509596523140226779028485585942793549501962414512769778846764034928263445352210202463362695146028753208087969224832193536762742858754289784514974009690028800680463827086678768767714866758776416464442686265271782626474911105974260646337284534647539626926298858846260580418828588485041611126430520970212361117038356352323404431748164173369980544904476943969422944007368153390923436223170733767506926219155163128892842813925715335187947077475501356921990926096036464398657484231068261887803980650657186259749782300593769790268600877752798517241553048179564023199149885386007736219796793881390211977297135065947137346165652154817349675963395667340983331220101291356807930263358193887914567097999692699725915562843077082936124478857996905605523701903637723465780723167917030368916550690573046157181695946282902858562466376268899993944680048958699333084319696373942704850260181193044463493140372439008773025902460212978378231997279975891715108638075843549007913847649941864529224987031313828529159034879167601015725701367928850720243300290070544075646809934457031791333031460755479111785202067001504630930751832286333966435512251190158643657832763965067250110267493086971779591250201613314597261978689203436909391916366945317806070888354735311630620797006347332034364193358985868643193540752899149969832814745230345052283569990559216726428404887397187281554677107174272185589468410176036509522830208253205031943189745271612130157586570055757723701320709593493094283085156234453869696557926185932734097320266394199607969334424959590107399295606885150750869314702880996630821975592273924300045774583374688952488726853206532538698886037334222729309943226236990763170366815938826240270338840829951315377785657519747807453273041859273150860121822104081065569072011058733180250964851254123553488836914701749934874788272371395975584762283556455450681903886841361264362935350534174395971180680670840531980646251706015641861108690339425904176903044274195351516796904779782054471784124667882166664666963780053045978529802944995355340558333504726410267598368818176408137716107680566955385473942278503833327826265851060079097373990765024057573779021908446377376480516002536883437670913422241231652624494322000750069601487611416442091901437884564306722512433283345976614846368640889420538324000209929988273228003059306768738560226731114200758331927118529029746050744892372631943902603807404093825751726945855676159973083527953357097208723746027289600386128977699480561006251028589236089835503832490052573619298385297363388651355745131022463358800165102937697430331044752544818935822370221847827611081100357740014235690421188727792199795179639998953662951530919965250181648176303736022648659603220374773958295137899333318929626991861691189980067176608492568574454331541977931309650774880183945721814488404997483664619986936760303828565787898771102497319729425343860075571759582804891502797083341535905809089529731609900946228946777317431276823215520907084112085693779313893658001164306848823610576136069243566195062317518526895292203218646373102807419537038926915055201429244109286350866903375479759064266001065820890408710118464516856169433615864041925405179572407391404841767965269127791992533147372189880645914974464787848828739360064663813279114920293855827674643294742266327488460415902556956233472799473991625764885357384383889204802073894862596478751889077081951469196559234135584803685025811156641091272166428187711114249273712214318789683054383382758228988783076401907439401634441798046634079483937732440360969464435757108309124050447232366612036262335706618604826523370954649047255479844586529977144215608012581489090034519593977377230468273507701247964821322427204831248389406335540993822290856826595505184663082628981690383719971835651590895768731167249845816675225143522142893237611092304391903453697985521372669374860997205994297991783201314162838271063763609982313318733356001280262397307585615389909945006259347989394666945349096900616059751620293410358749362605418314291069307619432071482343435299926111273908979115589805496806835149934187886844736710577202747382039880414658741284990703608733018809552127142799550210329564905348206788099546324756701681443520187172212492714735467223349087079087223726765267978674405179263552361149229233732244833511070632648360480745444142262516912601151102345264161925242371607830834186713135631047201388736175104908396801910911580411258870669428407625840925362361043084721806675571590124006920475585270785948673956032086397154097467306353585916340186024064022170477821827123487250043901551156128409463966193617150201648165809726782024033675201095835972156025188434710532988201479472516364289041704140596005290317848813155588193318739295527463366891200182812446183414680269187319078278970818970191499070503659063227509400700525673320621419013640717621540223983326733559988550846821204061219391812584982143297875391484168055708393914356061481547497505002872056071278571000072872302415690298467987308684281185539879239617218956332555705636272633535907103558537168119679200966412439399021176229274035558028460019612944534688986820653585334050751489303298458274317581990938669745703275999789384629440114314336113392918647817402332426151499126659930462143099479689902151738868271094909311453605498679086888690928878294531317181398514676980952911013331727720548509248713412008406214104897428032733853039229416903993836131352714187200341936910494647050141903451106644418741924554658179985379327400069138106704997255192522314507855275722002751497913116309480325300869987248480963741291658572093832489680761438463539729438427325503147177416362936933250766112675394858987510092894532940393157914491067142338970743066728518008823252368553314513035695565455982532051073771194104473336454360272287696100837790176109031745385399389342899697670783261161351938504619597987297179049277555932837291461365802093209599605735932654216719971983288838747664909392925631999064416559968298756242621898018803902186767693477718787877653735368755181879049568041626885508526987567626656458201170285585342484880829854130180798644375827754323694220258606744869561686394898526022417287084826643842454382322263173701907852572844623933656623893696219675933491602508140392695776899520706024728289569930801246542186382485435085329709444494508078675824267699816516425192319292119784872284168972448286925385834780136532430370973107265120165767860798634772623788387406193680171534007960458812436383730462579687745354176104128536500176036792587305670173809823971716584286523645876970222443745193217138941309040929712354738294675102666530210103030801531136869703883842985112415316350466534116298837487895144192437213143854121723315700568698115754643255819516639235262183558994964288511414503306094746310595884891614636941874436165223981133074562125294815444008382635242257050607929379011859413682938080301443674628837606043614195851820507755892914920410821454526676965663886636397059208878460415558045949532038810079650969006720506034316432470733175943955920271895493238988778797141252143254984126996265434282039993571636836343663757165683981470679630418080285437773491521352397346067408614165267194527298592550300690040054062299064067192921576674270490042649947658990624906947179879420320539996635341999826544049235283248202793497848548484292418036523622189740795602171589580341522576698920163558480715573677248867252635811026909193766503663656936537450372682426632294176365917996989753289755321571561916989219548227849834614581356735167597460010468874612056090496271732714910558664445411366053543393905609849115746026144348565389088366108166792467217720657910278804333678274393826419652773016058622908428271499699736960875098397377590324323001213411094509518622017768812937729471816093945080800976921826383119853967677887794810337606992323540553258870535077251118698915194843132292433832742495448226535491654454248891762533245693541203898087075561732036027696219426223022996262095770428730833450745173289798464620976524658666746936705222416772447095459276627915748609693784492688907013449754082606250879230012210533763124775302301955478626175623610927343939736194399898583839454426949068688843266324486214140754870890307443118182388415356497063836765364971501555376973191418275356716593466136842105059036730539350300278964388839739920855884867786644382701489163027099256196978411989406069409850381819211205442014814146780881134954457911058570270266873519340594707451412201470071673617063763679242004631322202313295716520996582625434511444042095090648148943506443801355698225130337002926385381352824165848204123012130111056778506596433346907340306178069255462396825282251312407140730452528158072912510793865907302534629578356627265313847469403310687961752202464201739696804343013993379607513619857040721740537448071019578359555758811899906351459592719893989231138243785316609211014613485341478800503514607078321538492519737684612483465342892659887302329416991079485511558051893820868134485920216687750754078465689199632251407880526184025085014355013053971202085369247188645766965957333708815632354903433843630960956175576376385895086300825486045172518083944832310257419110714166177735423104186678306187876875859719268313735439456726497497406649746210969654062431139602686184943141651069619123564795591697147244820134554460491320993076755697129305955682098236601278430766039828523536537890611824503230914745893796809825268879543900555186225883936834948750828552971470109518021884398413221008430376024946875366373613173574336957309688688795525063030689876762516797919186813755765628740366864496940244675503498785414110464741303182657066232278760382019504561758217164279751434962163589571723840171654270893510911889828877216611372598282497029309068381134968885427942405031435585868374162288364116870722272200359093469566588379910320326592431945672801510837994395330732482368695430367832678503603458162221698749925081664910300721641753573294744815945076715018600300748565683869322662313178583925170732580187848287164473930597876561693773686260649762234249003874986352531661383091901068746198961347111832692359257169864067827123442902420826929865397732270416452499390670857547265649584246728311551126063044153575233779321826198059841977536908452641305865859192043692159871632527899857830573552321285188985803611799375080810511179538692677436459941768493132549863747946161812617939085920208850317322520422184817391901743475940514722899353989842847731731062098054668219921841061611171852876692354422606084304841128358641845160040919850132642943921520249130888027863574326164644934982760041146358146963219844722628086537056694817444084241930920459258251547500145289978891168229246642874389705990336526644071142606604613597693404872629243026553220805118210232751664197999662733595538087134828742106166887664981960658678046021148239271736307275460369408107423158577735908573931206496541135305628641214406620572931111414478430118624816128549051489391187141170617278835718318454602385821232922821970556862115104114306927006390712878433905642015688816208660072321232399523644896789063881872178757134089676257399217641456305309543388137629765128878922523844778879781477081053255174165125001085831844986939235890336244571431943753217133775354430795993280909943433957344651082589377323895510683405333879550404266640360376230781841580927381757334926319636423885870668936025047843338630786746445080228361710768892493960426282720791709515427760241511942492682705729006648509192833678210393909087391292031054106046279759061880267974492182970090366533137144535128041015785115385867925214757540194769291056740635265531590854495129631993616705204349350938707800721504588434663759368151489482252512980305047269094520273339965433235560899770058220007071509509659210383020318103200241090135961922455692097336644829786249816810715226644806652457631418081035127220266007662362957311840315239134970465287738865579685504160384391080382483486465425666481592662359525296585987386968862369841472154240136568392381747139736506620184487346741387717598500147934155994911639096769399399860048913364370820740601671602488805163461182756217885548578817845751527261255328727290708220384000116976190787061118977692505813742896102223219804592508921311216428378335058163678677307313961643914378642291326193849157202654001763025775473327143130653127471279138990854495518738955578854771356381683633998607776072308480450883380702983659317459684896899225559079034610395247141437812388025957415870284817872800644336925622155398968831070829881713716843772727677140081078902564631294923220177024926778398618244669072837770178072114306784905677179410966977100578523227035319764763752734348188321911978064402268447928632278912365701416896528655629106927554165321623380602851423175568242574285553684077556780046831106310389365387052947513483891154798187937342840963654097156994253214084065265149160122748414045186123659561913378112657025758745371922491446822600928159468268014540144680177654372647570520786230396889893532760988905596420078073751195648906040469956470116452165034186915816826733986276783861339072166570984515828574432272061246997691548580398269451570118710586992019723088166707601742991092355030693516413471923546863043674760122891972483249401739847019270177333424204612585570025408363448997790446952436940697902826018771120134865499579562221845845478656151597940919338988207518327862208212309730302873212985858895761587517606026459598686545286952302577304537593782195323543859426109673926024737980223082432662474330047535718807180484639615755041163084038043504270346698012255129852317855720901543819104026055160609376877583059391093997809448611727976001666961765486900468609025371683975602588876881558731915747918740107805047064779966165924713429836914049398637742789401893148086407705187506387760135025151367748440922919723852058933380734892243182880584060246951535016837034593574861191214206803099823317669319667246108191255944827080823969070747309170107095341405217671849978800497109334689913558625468487470286940166187207482327140863441908195974455575940925942694166303620560404686714424554703544164471810076495031480295601710720037403610157144678376967588488128675857685936389701997536514280371472334288769461283632866609990231837301426284653213113463685865937297521229833305614567959357925116026448981879983631717203403225946328939725268496213303448196104307745948481462218963423926657664510692880232637088955102627278123502794098883788364494310226555915173831066532516420947686225994492763777292205391295749350056827515645665576565873855845063371800199986789941866605997640263417865449820448564178965058307061498887057773950820598918237055496091937964734343795092431796043030142256509583966312721615712361873008094302000090816532529276945086843550438160122162137689812232596075126250913851934013602489458780243318066089252250584369992540537537876447588960099543631289357616577665021064737950106080858975686973326462624976610640496975310114006694129889884249619132137760004987155615582250129076605696151015165118593081562712897743188221563418223418374945715799607651783095091508771175363031536867941587774067161325846792818634134608694952116187160380357740139709334766835308220060713208627433307492050792769428676475676936609265354370752585309561501848593454007702412923431024813090975005589307349687249593518242385016067911335033677498365007722333312375758510822234432912596297757462646567059293601689007497885109333282289293386811713001209371103530748371089934392464379706624029108949284814456108991538502639806350143500927290158196115509449646634596857074436953970568023276264393408173995675483074009321824121544596456483887608703807062399648855038368699392589269938502030934173539779603833334950426234846720180248814367109403612578113156202212705091046493416564138505200675440600890904056083786685099639543544161396603801699996213276987569671015044521657264700243654012574995687030611998749975651485548717136233466232665097095258851904622532091230568522881507140215224772853002189775315583265896106133841316114458644466944612648023150201733564251519345660630109466848506002937657669429753754317115908305295343460035272441470852333873738841697737935731222076163607190489066292848865464823473597963211384687996656215136862984086174429647936941500300844683341875156046578634312236776615615994126916650594580634612481747688049216938439571270011947325829205245133611391076143070859903031696576328295566802606233527628530419063402209286501534105386802115689336386513584995199052663372461638775187644441338577027107536893433752210238610028036083287869219613923693107104332356582864262708782194338638274088911705874704686454028941314710072011470419866797788534033837511950460351995047388096491313791602584212935712435644389362040055209923409023015471003862437208084307579058775105716080983961024549576274356926695067941329181914397528404267337563527155709545686862521423835251566378568110779726812173861952442263868307983484819473483859261521940207875233715476322091152337927045953485932405543871611690008577108967193944870088857429088535517890683443713032820984679170046199071255704096008864257188679081740431637501978074046744991903629010079143502016682573223540861383049972896756396826459759904096352152649294147759862819043120440809511452317134334731706583967553642223000278899381129888826588701840755685915690476416785239010612122731933769654675592530717101628932935838981476633385194397690329453434920526697807671926471800448943782504464571316885913813152743119698994552489433356118482263772885680944259650294701832394848965909771136012898553080388945710791670787421718656293479639268006762741090040094219550194684662952675033189348608723568286455816157818325073769466093123302520806615899389590379131780012183430269237233608271247484908517953333155884376088776565849279007249579782146771294568637161892634100133500611365227934707963297379842082511455862002611811206747152636692782483340043377658958618535648605546955611362547550943362623554207046256551710405080993443328220534996799271532312586603257912671396161325032124166755443908870470353250902023754418620484696555588698925353614032241630732720047757478582769397127939016900132956829868164315620929742705053188949705579719800106011589567631815949959613791093279716703760231545863206755259236905453404456808618177455020887367735403068133004903348899054035905929032697635826234949283399672336893703529581097503896650383532772991693915833534740408337298442070362689161553494899043404686488734717072030822189751073664695259098795088197536553762274534621760110592101392815215475411919379607644283091283227163160712323387600199204131583736296218968961148933515124926589295549035259176059344356213566637114043154329330721623468062237674433960458391678696634727497522194480609071514600594502972035771122112082439610374753970119821124725722331168903883682589337286361426809794646860757138329062619958617931717160025856548658202499219526100478475548718327357420527577085570596897661389313665529851418866776442085171175183922522256672182317055123481389881434170423604720728021585423437841115184940301684543839532283350900904187384583815160109236154161289098046189707299663662589090700681145234113417611000087953120137898230006820085040401066101877670135031861829243519405819597472343653444787412835075098255749162701445313785310407172150733869355882523000970895275582872619458045686191702016950458096162299671091509007016722603814635543452245250341881022809399161007634795558718897983153055685473405314066306708576078219891678082076632600286810739720932173650789813269958588652621117856783330840138732468792787184784728670234118135887288959249469517331549695009119792597202062075259163723615285734522929770614515169473173471031645578806840553694265475128870669772453147443217035064400861829011667175352822342087440097040652429181188888257752366886092044021375650532996267151193944861685401559218236239274830691590160440076280881787933006242862890747283141842620064574848478138936745880317133448791478413070134002299036088807696543106808313853484886806944834422704252195583679948051136440068558999333852500126976521888854138456223212248659165027340502037328684269513297760438806177825986080784108037703671190470661522135866459876132441762384123144414755732869894169967671843600850297131777373851925269383485940346067681045927582718669444455362859940355473825606495742474748318851301534926334717530046430540501943801220738929600989304076142107124286430076363697966209073886315361298297280916320164795929836970145736659264458113988106604444607358899807549674971938345782297974290018571204162060375995588079196309289733519245528129005757088145489995870765935329137284805489556214063696773446313249374213818665532427532519356448783082937403696861020073250983595317071544572150524875928837791914336677222209625616324787717332925258185432783300763681132255574073133603647374489934495588435254794180649713166193868305519690925904637227612784306728351577855569442077420280174994865292777996682194826454073951972604063351610285608602826770756405687069670798321181944516731598391096595137940925973826182338762982526093096452742707364246678464314336034736379051921852564071080008111786293331957419002748490097901270056166960139030880807504480004869951319019692604181602220922004678819060044107113386107100967805888845148406861338243910221743350344622165457863525998458150591961708643950685365452982079755270296739084573474105545853541792154362344353273455843208797402032563932343957213009713272052275775420456638971296887865703330730883041736754445643607780382051469046310113547784584105226573071316638929678083775616065051150470722310078332773026877244766867443666528892231521855789957895658894410019079366444198976914305703871413798318365490800577787470896588019742260052164892196113514722366465007696819962098114025057619285930053635812284184186774901398810489189930439726255086817274815569451231227914049962904387953553392099261862687234011483119498778263184135739332105877647428331838362022610849670714406438247125711825704668530280272965332859879689714001478538804315480697130439235066664799372642866678745889472756568004894908537726416741352235702698167998978113743668522714819576662624745011583548680942720197457624548281088876415256206576329484863310666687272155459125254843497653665285689796079450766492818149775138067775062810558521691695678252770480279253091917885825485697767219730318870479855478680354607572475600986242221114422023710112374212679303652122647588365722590881116634564348795614932705398461314845597255070308185210927387054563258849930215788817453300451202888465860108593594392200899844771118201739461699532475424837406283631240435330330873225185135003201000925936655779422487740127787046751245061724518664404355096507961129374420299559664839337340580453655849831673073810568964004461145803861725629663811958759250869077999144125835042037845228420556075728588936647392493347187258751372426020125488652858907899171586246927424058348623226077499618655219037002924740088193895956835799652053476918577715271254144537403802801225760578337650201082776461461775887307257368292272696777574949322475551957696566769691973743781513389480418657627805265446351231452613697638887817579202800805581729219137881874376215073161404909848347196981792786470476066218483826964552485283585042227965865634431072165243701035754723319328293704761138655996108731247927440377494102822828748465508796729931776599107995083012898217618391773223829577550575755031845018801486859692746317363359341437055724748818629604024254623074628425643298447380446984212758180968507673231253041413725676195106570280619057365978245664363433734430941094464385716423703152464121816556728369344768324470731306794557581990880390536051892210867791572953751318156237509278401625023074166208696101619365555716568179460452598672182862926161382356292931986758503646291335337570176991159007181463696136377772949062037149830450944821349662317656317032457604131502437137589029484610256558985636126952711947564047817559447594304975643977962124939273699429225436296169734962183192385348669351566095229425518190787972544067102591876055973914308892876347369556455231501271776812614291221871603761564249152655375647912181677448100595382384766271000076227863520987111334469889182772508254597240147286025353840645723958283827525355153790169283468316219842975612574036458507769719960150771155093891517341897436868431606793370425890193231810373685946742374635728381771053177878015611016245799450086114577286188521300378102754219453803246159290072289404001736082150839667103450784457764232708799404561176890605558109196819633681851753289104935269316451810781842927763474653263220722307012071701359640850246342145276769702618119601377248298589276312268511026912140397612801898627139863948683184012740716341510222903040601628104540463751725995189307332379107790723628296130767082711895642642220969935793439871837406465423281644699473311545791222889331188702154110698166644392666583641641198520835017991600313229569383807465135980054714460625466769951557425294167748650010678551445323915641543494005720169135971720221147542099381640173530439087536690065958050162768269561005692305373426603690790856164792593284564127769700082375695681794334202017329576758375128673037147899806058257442022073164842122614323544388354544219269290939457478832646680858349400237482192439262755739303149327875787602988809797633832572097346013970785354165793480122050410623863086919058967293524991499011369587000296690047250531049924559165337307507537409811837315792751184106146197849082379943308606986180202815948532935738353587357391170389178341379514294859071246643914805017178261511689102431177050990351028294428888523840973187859461367661527081095654316438229786025761175684979460333209014602697396774872235295052484733184533132746475597614173171898646918825697127171711535775151698709520607349624330193143636537512181035106188989993226870357995997368975712841043360332364224280093580466560290069055800821941546952913703466976898673175011973654630327946822462032528363170375852007579242972991980742763953119923704377148552957095042226056140823067777092898146844227005652725879933507912308515277577379818402508958072284816257049414633980229873914836886689747916376119638082560470162797600768451037134066008113596231984660360387684834045568180159662001089278104694631839691001025969986449808951445719495209756935049717584864421231459978228510915748393052463530598135683900848702175091247107562925942831340131723951615169515355487880518483168514323287079075180301298107063349163397941333641876945883692295203264926283598961913589995432694489447740924020979022098146459856316680838583993053196551088858009820707311540203139418393043227120750764695622669045751972415456254539067854536213079647617713013323107666849385343072106394842861889651862507410460074901043424095145010846730891354407124134944999600468285198398517515264843146524349331449717171660473768396856891857692780503668716093680634689243508859880387447056568733621255082116533067399811123831644517222100274897336224169101110403200363464287544975908769592011891891908996147669899534749775671784280918833788626337675672717626946791210141224530468499991861555870772963407821826217829760606832310259988967472635215391422204489458698852848934006391555227183369092670940498299320195163429278708896823582977994688250897934537610891821381544149075115831402396061975168484563907902362087013012292710026984106552166769793668120592290743255846042138249609420732176275421917772986647073372019956710814873147914510507671434611362816193306634618803123572628913314571921672776273194725172195141486396729263130197022318312249813679519913716557103332676601353764242106137134274327706094084107990732275336682882512800368955875006797944853900911890113268809087769851313357649392596856230575053637563849782869862803089230514138017224047695824610242967576243063500799544225758279974718868777985287979417417675203633860426813113310017390378892430675881850722409381095089439114833960907717560352834469150886864173701433339890868895215418456358169759143041443095980757296483415458100630598701687538871239473008532978722230886975563892039615834820844413689710643493481085148460576033493995638068071376395423489271129153077699164565073878425261305244223518628198578229464204516653609154583716184704761926478452495336330797577158437090852213768258090869256812120556461688654406148170000476164867721137388215887377878386703841735011812930496798407458753580522766162214713025313867048908666358906894334822276614761000825250433635504424282502432235841371370980509530739278336098391549291234502946308029310674031957940747202833379263961936270697957603260962651587705951495124163124346491511218201347461833228134301619323285161368884359795425298955958738022253474687339941423972389013345375647779835539038460817629767544490797375429703211030555546084551896437323935855058093590115237621932490336715639219782644196165942309308608699389907635064591224658441408194083491503825826840087675700585305702525483357578185875895706826873842194005891761498665168246948383887359849393115799587961675675200568278105914855910126567727351186797562646737380715956334649990145768258579254202483371119645343811500424667961325447678408891588419872877397559288625850316070804251677100495993873900477016717583771666990558304966393630607002772156559023005949315575528990612314574054706108778620100672022235644384176254798295183311469698342356603605262327258798070088502239420051871252661013055895506786386567006328243023763184274012827744662193651350019449672231278873720284559425489815657916961268239075312732568983237328725089666371651523347767108186002105762626472630445810726989321435413758301154673907833160456962477730769239494092151038367392095433733637070879802572033088115953201434294783131757261575383078250606376462073716561844107312678688632031379740103248217476765636831119666211237900324614697079404923095518673858680376052637272438728756948985165693754492379574598574261493677344627948674301307762181043704949726982454000800178155722200947488362531561757427614105602861310779655645768413356664291841801088003298335752938876906450134232637223609427018411790585218911542087223099957627559905318161959083475756249856174283678037539350648818642734619918026742409758030895427776146515900685828640484803483956348815381841561513433945555317954992255898978589633232250880250099264450805657630191526940472732508400862714729111865364772271290971986597866889399182001230921130129704695108573970165674688586163148212038115159540374047336543130894327558035721066878059990364064378784817616159920394631905581919861880719438910032683594874808349493659597636884816131683351699265833261401811620703435182978803190095440710739460627504064378445142318675385898257580355683543479237664734134560301708045291575654976353086463054602878310651437533616462534879638417058755305344840014710463383137380861517872631839171927642685125422982824552959362625376590239419177239644571164611974814520633457878369098059990127756799610231910072725465375305029091983728091259086433605322782799950813865981770583151092049708514036639095359505236629279854196841579387112301390999946536878346941213897081191809442883615815333339029899256952963141493004226027462269270003536580387257831889561630337789000399756413721750291108298490309020542710853901491507264028747025363675681911170299492445699142881626970571006087331211190717110028319681170440323404487861678030401016739789547121283579115267867490091966468352214441646641551298689416211425789049818912421488917644309858892092301576489661456959856183264757393944632792576336382590161956774323160902850941630662896604016830732932746915693513429133639714582435007837720442877496591560107368821754803961115051181197699328062038495772130959225379839805770756508931683648486402469907818739839038526417780825396685616297834092316949494048220670344494603132841412469695482133684465816104730615389876631921244259783070124742936938799468908504434925094328120034041330993788536877803178011471231703125525702013457807553143102378622210113536457455143506041041710881421673093507912014108143732118399283203819625853043302770864172836190934209717898406833720757256659981521156390837111684947749999898082774896864398917728176154878572099755750274271069513258047139542625124484904739614611737668147051836170384923513656453296148746094962789975378139645484517144964513642044437805937815085590714033857223957721937636174894538938939466595060349320991385179853566953380165060993253246418948736427272249019670324056218760840692689497782292694479917010869374179923999052457767838625191907301941289941378634202784261859097506166865284828866997485669649270137319169936419328498155928911169350631716919581683177783512377463027196444172085943095794577945110972881460553050896580340745478678449266604575726848529840575224999387432575021600989043900895258665622871893771101217200838055324734023637620326155020106969753198611996249838291154754222067664963660712588910992709000588782153727894931471937883598816478190144317411778375662130987698004824551536124373743999332682887245331428867651674826469908400819170971287532524829473083413055767736803334231833970674050722545714642109608341972568523022169775372181215456091215864291223493299044683887485875396496398260915995664069093714727132726703970288302569835108609478811975943186582514445555955944341391468735631616859289368935913809770358683330376200903007352310377902712905268301792593806916254746610437232340250157547372576734445607931258991950036047906303644642062071892119790743592365127157097739165216743490519165743368724711571568144378478737210907914063162946961078846296085068934621195325842257595036138548488089810302164791491504954934938411241848354038401514832060060786695962446839298489449052136540862687904843979997436044621173545024373520431508319898668762291881744256882269213846396951241509715316744791512915651292839873692007267560880125104545933456045555084980290925721456810669098518564466796859854260084155319994660531662166632387712809057226463705705587724018586890921498566054962319672252795276774689454402763524825692587067154460830792518523750590750022472819777797728680897045799074046485591173610427824568230814969853981169667351259413677139903954691546434975965607069054357873814258803645221454007848448736924819342936097935604129311148032245970002246901918275352820804233414046189519899664476103943896203960707417463441073780148048959708430801867353302090504564114268121924006534279396411992777113754175835994317111181955101809445543359257255400127050209728114373608713180075356231103390080345246989172223129946138277331645936131362945467104770080702690578885183672159352972440311847488364931145233085794019700655818561946143998805435578963046600678504074278549929319710577652032976353448483317100830495518961318076197297283434928012537936833152898015511861290662607005442189273090110931235941673350241032617762046230894640585423492175745413618783639538601105845552848779283959815588567023252854950042573058263150204218304205377521899697621613952026413684768458963228234766728980477240045076861794316046900442095083140475708137092084822668818495054609472126655417684525725778642303449860054913729121213621713355656649302282089393343850902881206603526580715252139448455571642719165191770928163898856915666453715995627643335912700575383211020441690858769024028255555405213295494924497290560634039890583943871811296065584848128880892461780340385056325323518237353494452463186005536510586776590827813855407231537905673002933027984682058088129977078541101209906191722504636391520849772154873565309466462673491989136452356240490354158936133288956592349206499166394372779977105395116493477769486535159969787272325475065914938487503171480739572218283639760953053236518738783498531358732500208298290786308096435572563226959783405746505041527663229405077048800015061796035979004360159081658176238174752053899445732903888551435636648947866069723501594796076946793147246983315777408921897956096944950669459588537697914665641472437507082675810709139405652991876480555934068102822370939834038276049128959996526519969158804800260411604364991919338467732583001238574370472218293735718174047499809395349059057963844937187829063802936360469106575047759688022617021563122835437635045394112039991160422005550594168295137989707143605625186331541648981238521236637074502854632287049996460808334050911145634974746795317929053406401609194562217264729580236442537937822442001967185000873977494537838337723041141229617890132137640395338795577837049661629864787007090805462875557426024918354970397702934590314862357004895990815228451312232978765348477358509211392558298068570794575948576399036249000511270877887458833544983456634733919691272243604518992539184755243432474014207671955888675205201228997350647205190459034366374264945747279360374489392498794103793346390369005442456422705701849991785570260956728164066842447055557934559198374017688994024384149774113785349463620146710385715226321012492692162551028685324222948769655419493795450865523238159684223168836340585625435682901044238686037449163760982277713863897949745228292251426606947326384575197038397479131110667823862351843189707928756047282922427406731763450066805694214082875571357884606318960059447958038236833022132520146828385953083638910571787848261858919625744550538282196097149111696088972428219323901381447926385422909414349262615215341281320043469519655445937788042819523727938025341709460412584109616884284443453357162927768891586095484611389721783639095405218155657832935181747242862436186295966597840559256575470780474689979140576899649525859405276779860163953618428072254130446362268576889597799653636724080685516578735404904206507557197904841365843140019891823127329369815288293183416231107396330399180483936616556125258995764631719231380847459843909604651863033908038392125822607853479152676848786734189134144685375413832595806390183116387207190588720377178716945690289314936402602273820632894331402894205428846273466150515811276704897190870794621670799888318598076072738777591644864061218707954480887768756861151935224569282372888054167933988439701976092662629221599833069935252439698068126293962447935379823457590957308337629165294082059867794700734806776952490415339163071342349671989631734066527604759437647052244427926664065473954679225698222576288810668339027393206722410854143163970103666419546645236085700123416879999160631386881960523970091846693108380432992254170010079394703822236565925250235510652065796569431098012195876131744824023145165469068897527114722911417885735967983142438804681175402532350157846508067213592030458156510209316053151456029287346834315928059199424794031442600403367441567172272481193130449507133037503964702791951981130759119202667205680614076063196790205086735890472763692355709798520807987171521058244303146704669361869701082184946240079314376438173361574733248938958134635656351679575627757944260855964228139979691137260891162017438173923129974545269474899471170989811113132956192182301211771698602511748481780925327038532220727071131894121599489546404551203663518833913986163613753389723174906937017695010782503904824602048837479752697934468929667325340616068768521339299296117587485409364289499975299671701804534575727571803699680860438140299239174858343967895369460776926760766773418407621420994464527880090999927660719059448353441501543155890425305282684075783533705649868114826282946258905679213873581005899219042672637663348659304549703339636479562550829475817086558902030233699285114294079103877852070673795487146774684496017568268378842542293371553567780697547098793684966756709509305298085906297437323241425386928151251439222027206411884628299688750873422426995972396946793202150214939956331678846881867982943684976687930836281374293853632925320098473210340260660935560984521527439480448461111764018668087391742168038891045464265776929115116190830058117211548487091742021502795171481369860143625710561906781994189717711285646161998068499842618470923839948022974518952592616070543365345373746735415714453837152956181787997249667802799300157035026666999698494341890419646030269407984412065092184516028033719411670221242328274160863298687373618654559287648356926666917569334368095279195735935173249114833389831673639545643809284337650114389473811181763538884543127720803856503691446767444863087507543371550189100189781542181814852314768045603806564945788341628147894180551804625290958434697967257022274130110040616474853593468774671384287805142537385295855524225789749899271312159870822850687650835396785429923544374941525457819051832351552629910534590288195701103038536690572272362912919768764981820275895750613080052008080449336860932145261219951339586391150994336838403905064231807702030957038670864809476593582631329304444689819440805322375239394755770509741084154132382944348077887443761141714221877250601200681214125288180902494215558159736013613919643960550684900931609558963663966091678338919045731693181427491977555594782073030488988556530062929475482213831251524661549719205852623764225966436618121455787137343275780160522195672729191171446691879427606068594761623230127711787187450149956816811754830664658037798187053627131751377142589861987610418965671146855153707296463055796340580284977953357133456223268204025748192844835255293856533053314719332851330675914242851248899266768825701280783410005394243643395414870463775366738665228709102097672614505943985374062147513310060511143411885899349764883032437516913377215376302563189421290756076584538255767108581695909919896311977600443201419287373431462800600305151821257712116104267910957407725760758327144638880621855949690373854192049120696273785995559718805668869297944092300922495590714451357453835538476922723799247155068540962704622978782945026708573567354394746884733939733849272324551363836714231924414111548735326060432389069371710082232164804552268495657344211372563232198019180827732815112710602165239345469512216789256644803176156359852471920578653871843213499844998690744688447439402921476705023979722593675265547547619128089361510363121490828100045157766099543872315228560554884577270381346150552525186797628548998128821648553890973086699224385967052733707952412516792267259763642101361574280755721851594787483767966514283160890146849189492856316908115829600257401720957439293973653144313550369438964072287673309557660902317193328592595745481185806190409782417463059146526129841674690514508728518943986575093010731237350529231857581649354546246791058560806714438106481436883144828973397852965716605827567256190628226643768909420531157082174045822604314423565115662674942381474067847953116489971727554103384417754233041329028682993055621503967554527940262837499923459099644190104333737272729707146544387968650094938326614850538049444415313340072631103360560428429567439697516662658555353533412154392986647112675263165709973896605447447452783504044490790482027232834366960676101428861171546881923274901050318733020812219273650580100236187264371144695274205746668963552591312873863166833792945020552922607932962965433074370996321988323501484381984167429092536510536527662049544157529928656052955630813319301036701147048207470259216346003721847881025295636288202544291030433154765195440526070867900704320524648905515657752730955298531204167752843037673410336972082103148968197759228655422577700106537432096092858942588881132442175252845686937146866939195551871605851836629386835167159122073594998010114928333185111668113738850345914042321122579148427763056286515040120730673989520628881231704128710529999949023556347738253951088819474760532077696265652549019180748732553567170234909793608344809614015696747440491603715220069297235715254201651655202078404889437102555865438859924835541465578756170046075289680772711279061611094822967314355582039430163688729330641579596618946522865447825884691172698158537105046983192166049985679418056082496003309480809213243207696080976155087069818312978621230430231029146840274957980807739345222715213155303081877054807883615868227380600591338421963611757213615428365508409212054799225941193125839413752294270322406919248609175673799814994307352424491206734882713394942968005499590282668141469102987339698533029141607218017932218998543905679247076029048921987846429486989685599435212508335324933621688630098201668953894489326651762487027076195235787568201908507797964168998249200492666551537980185398235208948951163200756182007039389582617640374559016803240665342036019143348430471731118995761350234038811702315864197174645138919437913560535988430594202937158359739529216484847173877165236697995387671422661046612324642751035235989894971060219007993275214737295497089375759011901706167567506331423980892639162896214719355851677925248371595281617310259415448292306808744818626490586406867498746853272816935830796658160280662839627873517504599774138773766436191167262687950113380844214931261661524093174677092483155812871261111105794273283924884437257222399326571404589411671976064522605852529934605707012204392746612413346123973270411588142373635586308167353722599304704625106493247600551234068673225379804831276530165790052330365352562735071813323657245591005539597158798741268718575403024738084548361094285738428832574360240844542193701596619896874906579661508158813216746915332556378018084127807507610519299858802280782045363369199737023131288557573938521676558140927118811191307226752454697457964529860245226281454507317963397987348632120919059358826965873765978771732555607306877195567740568517626100253319299370269670495945150392729982775585721362834387063405042322493372536986336504529302952722323536989469001486522532678279124261489209608906349516371945648884545149844598947823430326440553051155920774100683078564328369403250091713291483158973690500121667755738087311086418461559919420744505503702872755538321005511097571974467296286245502188230838779357406253135665076215370883136609661656917915623560234958668863618589608184226524611164840103063681009450665339283245168198647217530906373024692166806516160156285356990534405736876263676621733379354715101746032770111741294123412276266034766159842673649860433864940629444577496048004132527228410537675895309047322651220175660717156046385518475753162124574354556092364198877549383649435767186507226221706896213935264540920275353211383936078425550902032138144874090744824032419456288825522673110644003324240058909396123185003685848189646828412674727744256588305028932872427358784157186518825878353091425136680100428421581384922423250300047097482254528016971356205105380090434824958290809244533292351636257957847558789139050935063656652910813629698699373894252093704771292567664456330054884768670852394706782111674609751577096713209793653254687907026293228531093215092284305932967147417483692003346516244742750512886685564910564420394446040140456865379943745197203694151895380319183129160938436506455356171323589807693164498963683207752003428247129033766882114362904810772152762571575405181619619268615430811260065981397514367858922412271146746747848430030459725718337084069080010541122386588430616257611686134257054691244958420131233437824123692787832991796590860435345826522553126158892478541192006171026210601277651761599438933260968999465888472029611121282605949577182287957088834336199413405661111987650027779869388621049250614907782297770850137263459149674652755011616075401801053753001062951069648709149302221781774893692142852697320957348344169383351627634037331807526020408030741418829965407103602249853916632974407905240019850729831664667765786002652321419619171757652096249592955766558416000229776934755300040760255421671955887457941544162134474512104199031750360653000745330247655439633434690130551053367002201065840917066341439563205530991290234411710843231552497201997141399297656758658114394170748629428924751195079130064275695640630066693881541682719844533838515352989065098328917970336387795734244864566859057044973311054283736181961286486354841871782628425060469723850543534647150049997568604144579694206547040941152666618939487567197410282524791437969241808874871966461101040896493935615979097151036734887525666727870881070063209261190860503326927531213393122673416714224371337756722812360440491920887803516592833631760234113095936410106848082541574709329922041233961910718227081856655027838600114216714979553934991641343493881301106888936667396972025796021337815221745115476910655211496283756774554899489367494737674919574538174115317861357805831433180016411049348991740883803725849784735928853462416892286744994542720958498611007685945248559470540442234089381630086537528627566558775378934336422136379241625683963580319262926316181565859165830387707548950728487571887357730638668977415965400871372020495298610350404746310747109723446077983973887234196030432510765001343145427455807921116460921593902054686949925309432110949150914893008341582987359054079775779641027801393318515587437935141524157653217914286186758195479231761560572612926983620359301894082115134654607792413491027304587891455817522610945261896825353784676697128755347486012574459318160892234724643182060239148368917074076241702565617364354072376633447117941071983222831578574101954657155117502440624681565196398444284433655048675519524009699963252236787871321623394893786778440742935689782584327866611578623558314200749357594262508828651346915202097864701709649158675722945311291994103449678254468826060125519083466585227904279081240221665383030233643442977678552358441955463329898727930023025640406574078850817437732668380785307625878242018418435022923053822270827804290312215263518143479309773707132489083171560062233442397793324665361317431084506245097956421971241429180262968436298767689358598318134626712441964682485993336795042729297612842786465923553175624982453781352267123646015195334783211784011978252669705139518694993988465865012589774760832351361351018606459685473084865553998926963026791027412508331905519892745253575885490807701979529901234739428025510456378121034394972942675054303534966397729634331250710065228814331425737630190377482381978045810997155953882437965120472843471485094662593319646857837873184442549473523755816202797050637926892635331173169045319214177160945080441396026071627142791857082350810811696384494814152248786476142455674593857075977647791032068154854136921880754892310909598831577187876526818828988176808687033734218218369967932272680410195242704057725132847960590457065043093263798749095381442377134480906641617869336672480747415714530727059366983707538264598698204917698944237754131524613303146761772887531672309535953081719985795349154930063693507869181350250182528837237805131871908449749609276584804662516462803283302542948872576024510831868643475819275416635279345165356843773150915903571002165743110603666434974559019230940458532595106320138387348340703937352348413982429233684937113747061700383741500131466066638395848074491434496220251999845095988881658450881498851314759768745289029763255191221121777830778979475657635485086899184087051261510612261922223434501027972967513916066302288668029445698877325185428467773169057810098434698930700781380209794145215632602692641275710471587081715574054108965085478653324461323174755557666022257041102115565160961734090718306579278261162045464877395133190938273887469947710253252483636994603324203535808213761189552837240104241449897249518121195034283683668623977841987739579227164282396224981781486725004024639882007293033817846104055818612975905568296297578013706895979755721370884785857378613932359867573536046701847706536558185101122830713513463623005936285886053054434233147529268196095670756655378943443497049332708207982286614278642439167829248926659593204922894977955702138883830403029417783582830385881771500618639280492863311189501836916685005003297447635477326231229358209325412052367330496504969014350222260854401955648222095743698261596312643816253786168132478349976170776711140111118017490536748783829497097276887985807990405282759982027467295308427860997696836835201975195926732442395062885798393225292400036527853783744644816833231527532205168471467394165476979474533981645888209922257035191508285259675866869718499557984718936008465202455477752542261095780860271144053198096354928143570365585454875911038974716029239014886931840059117902603554336748438877197354324948381685293104901469449770900038285491875694984228150156762194062137527596054572254054885083040165443488199622161412703572739519298878096385016908345699052826910556144360237214590192609706115806844814438736915015500582874028498449218672445545544777234723121589165931449377418017578141269801505875039011530986352519624805961119712666957441617235238436185543946378897466005512946639088730305535187586199852955879267188342808112081908596492742381420245047040360188248811257794981765832189703407601292453010205596902991533392655607259021515097649328291752098919115864547545494919617489513451872662444424910132430765440007773675909369017500561346563861674264853087061478034754345208604054800227656483366209164728400369611227007877081617254441544798032104215255049534084797379399116442535365268732490102989299378945499927554124622380523512673760524323213544457241879940315115584312152356464044090293590585869404203669443190440457724268544736202096905545441679700466311307582862173359354218756096625256914021664992298524147191236222784125826653551984088195865359937766832029952817409505087023380095483809114970152108037659737449720838413242097753894742544542966691795693726270920800583535829877535879989048725329594244974911871082086186933574125093628051261762400824191500183992782665539462114109080429923541572098948159350083459226109650681826892827774165911137969904218319678070390877099289849222480302954475093082153686191026450706626106833272124655498284397251025477867881842433843372694785624150737946938824767603688589204453840432931034806931168143494818979079916754681248015532888999928726840958263338504591994416694824981855853221533393272612070365681086727731507466879269738507675553091822123573461848881298150191842706710184199629852907021378768506510047937727758274242333484748803118018863884054762986065954405504184255198986362575012747909150649253376050126394832395951513033590175354977927763663559822845224549552031392534744638423646976853653034227364650230776051675804119542414255378768562832809655749640534340999509288039737969003854530964744267324563319333078648141116000122193317972132851277274160574256798735402476892981443988494943656141060561686733763688370782432859902778581604123731815539448768537020891508379905198335532376437404297559049026586426252294615553136614631105836552193313050869424676543473054257327737855717587382432771464312317381079487569995978790021050457650103664040349274369173532657471034676629831982330757682081614797551379505330337240659996732091979706277402413992570631735436154895638648725335631524544350667168697107853181653013404417444572487492627662163591363537711503660119649893651641894478832709174121467602087249198921547156870984785192493817442525640417724058845187352168871267384716597841235233792990061608799056306450597370383755820548394132602606319952066485706751824652472120727717251344472593218116620950015570724920211425657392371888261625432022589354482098033491983398710824468367579003929044302035108593618388678153251611226939387810076827211319189190212523205796880171481340447659238155187110925063753563413059619903931123909944966631644946359624806504111755374354440980810001071869506355280156285984099449705619769431613472093732339023330854325063030814725238947218497435297903498967566289736360721137490039408829810413869901450325311724958947084849155401222303100527273195094097402178840529420664301271546070051279249492069002687074971304967081430147647230932567107907055072781206570022389199183843999610802977756808293107511678009749381953219207176091689895848407974363353578565036614810788872520944752458378978168247634111293539046489333972779623008067454630422639105262505988463254721987123320844704640968142765590924337879932251081294008364166920898832070687624454084542800988906800421781402018509053526665386254557822663651371747466981320718895395560967075547640482908724630899604106253760356027849675225498165373658299653109334528324565089923000302505053727410598674856473359179276864159672624219125392155059523374000380603252735286395568434294798664542960270093635813487794236732646919103449211667024850091016084412387516075567384874761395688189522542693201932816109234634468963595031149078046374446917751218917463365551953659677619287090830667877736295500109587590886279049140883703703147563108239944817673627435373696766913831702372471586142237492436809091708281367103397516574026375261702542671668795085146326736514024651609376327575219860207722471250580797815427964857064980263279738339388585455185497201736432300811804001856579106469232309981206978264563262028475228862322716160501458603125056390777679724752664756637941505479971753252148042258360935654948786483115415875982112744189556496468848280460956936149249563633682411689624345106802340238615377165533005161599323060963158374287336990469872867792949615606050959067643010508795029190237676944856306200669643912805557161865456600578962420440698545377526195802813674017328275656314789245868951075964974263993422732777705086841063492028214878792564291232812650008929041556685288871061442713384124969171932562594087718616204389642425957361669735657119221118660961741320079302258491856989129344314706526463877574072615498361502605992021882684679315753991967836434895805381810163389173284536728125338141489226778094601280660397883156680396959556201927825732481722239353391771849777294676684919298040728437364499621189792558767630889880191138350567942633835937764227380804885256575191935846130282150452585964823252094066694037498279995549490885013388769727378858164901917493709091254466793042232596963755625140648131065556212230883693155558541821427227109042255012883564421664010584437833372678733166101703918125851035579262889161449032875131064373565223841848527976638115509259662362290768200153866131260563403241552652247166987040476905608090542911580286964528906348473337821342084061762936269918694295655931074067980531408399118393062572408521973286082195794159122322940217324729978444719724711498486281615758520169029971329012443185750024069103101993658110970083851969211879566021602062212198268353645918483392560882003460156085439405142802861973495219796793952051464725750069673647067384234317929401942965372253964455992927388178667501601371248227969805413287956542040711500027887694896285192539028932503085884228720494699815431231353312104392870329805656115386845197069351612525162062848301017155657986501606003263220421681226372530372921645541175440963468148823253732353347622229558899154206921762344774253576154139976409255776412610541303653610491489998130265863424066519307426482790110360840605704122503498218744800987306081668663437860095725258860389147308123917146007589004137270607749364278310948774236501962437391341556437886873996752609856980918674001781561397061184455859072942857091624088713789138711050033410131412498133640665332733102271360992943273875988271794563729640384141857470265296081788779117201613137717171234619147220609453174066308376089278156271641670538275390736278871801909876548409059849692682650446839753909483638093595186254874049826668491686288415009396575119592787562175168744275642208638111986964089299233494099001551395603343654183216126663711812717081674364271497972951132016760234470153481311129971718687397755397659129819245350515700933037651946484478343742067279937413203101227765227809195253303942883534749706963297651427323431648072551971155038809257565808376248572580133251683634869504835809737544075131019423150961083640746403016132509396956865747677366713204156792730364216603460309122211395184388916751804834701900677015270023382962027081537960820207031738116183298298414978160605684913238861742819473306866591982152819190558568412660494071686866342820058816894220850456003775657557641198951381784544105696058654186641895245478194022172714067543201465395492693054967664595373293104937893081559829458894567457996594246911077874105235371777589159464816936322801886309810060470247459107670558426927540027918319166156254052498064734717038239512949289077839649307911315620851536687951283413092724638789731459383130301046981629308525273314669980536754614416223932535015602388714515244378874046830167639917295723029192268136638651463240460595108981457139075373528717867135787030557784729803398864354024284237511000473238245282346791401893683250215859499991718750381102147147950564445247783577691860816891361427316993588750104190877313624097718487431443173539162728808081048863532959795847608344909067753413964205072157325882876732622319533988775470035184369728602336935623276517890036858948626616132475257592836754369978024948387783957303243401794086349329421046373562862972521722710643901329539723197907041018635962856894950219144511457133157568602423118977117677575853188518755387523506179502342824217276135075806170608422936607972045339028387507595559249494644342942267089323884403364899507120823387985998293074738090369716517770797250901205004586045799532299252013727523310485079838977326505775559927408577698642460608076870012491518830113035648195879992128870547996043818003523581120574302088421600932268048747312077539307893574314263416937946719708185676444992218558765571720070530473452068604110413020712236138330722144982533290184493191030449139977668229772858949505054201748158551239526640466698218416216754378339818677656886735598100650459377289850019426929733848915242228032758404142933468091456010353637141180050083752170970688844654986956703907900023370289794579836969512378312393552012772435707879242868151809015694457640921949976095823633800996030132077462970545903762907355298347998285299703347650826328134816925364761743640534665596357831109979962539114359717479631441956582545800211547810409365517797461242468576361205334662372946284624114618450856715690723472868009454008263052545387293071659574865790306440728473219854285127959530065143786311127788407077209236646550409725857980850972637403181916185472014619961435799693920083193649898587589674709080644890464118978008201632819471458712092359285444107584247642248125915498828552850221881414953952682225188524048184705554906027391810023820536047358196225092991937938060169874777673742638843563917583115501506705005700667116248964550803086234736222715230220366528698455495494456976183130718119140900900755263610007298543449202789232473186298351429231035594835923688856266744218077429137508858827921115760347486489971429691881713798571135178411053451930750244441708318052326582854082676940812346293768758922031857553245905258255843319645695464222312504357732329032574776800017165578081645251516751795902779192935080912621331695835279957589212842688939799729001565911771796814872135623091252229675636282455247923616192610577771055840161329719553622262941893475177880193010393288759535986558049161231670223186377719338717171973566425624224916617644099950603001065500647564789457540347160947596765321216818401284291137004811570389795840355320008138807153511678612372583596100510525183959631113003659019945891601066449490566130265005680820923505199650320572512307063874518482032395452076324537983329518501235352452300456355038296885794245216016291533225767516309770077614638492581303731744513814238513139505676328987031845589481311368425226342695557038165759176825042122172569771089694171936696575383918690678323346707702127773364839043210829397982580766723741741544743609900458022125577189237754996449458824905089805637122134850898319457428698604288681707930726165885519910053394326128410782143223034470513873888072123489693005337184419765006827434009278218803411621654142592474487925497156053064581589979281003381995258293024212385388001184908035575121304432651383489212498382991170090853797511196817287693186405781516856375326673204699704703585857849509482942157550670912272145665865094567993731010113685245390730734606984007768618335324046092207518320149796268859957836937764941478656972104918663132304092361496342502143254053062364773576558384961986722490309585201380400005979848483658502282008031620492138687491342238082162072216355908876058493965332283732247928896369787362019752278141947853199330099338435695534157571038418636613860357903109055543517440659738420825138845147589482840295325910908122495871730043715707268240298216512124717023845207608538347693303557359690113825739931811469426775841399124436297035354933041245376418418293839620672140979562937201742459690612002119037602480884040968607791646916845366492204935362538453167287944873867609067658971603439923223918235395759085721553824647047748031777158000509054597425458898658308161349449381228247405078419511654669659056728581537097115420861778617888368442098383276129311051798555332036188498598449233696819768687603674356300050043578789667714169000020327409414418896859176583532104792811168870312392356800616976779448759884849933974557120925805931181234461925442216596983919084054572075841518075586388651451934371057134282830764914174488947393130261093353162849716618490320140782244027303273300687815474376721760982026191011852387786485245886541113327350208952889074710154413036611060046614495734723191565064641224509475257231220505443137472816047833100848249846192093909729147367476047206157824491289457382419688620827100979858738993564400585963705941159333884545387208612656864080740232884285358959284998020098384472631602646882522686687588983801002765569844791274597569446419528594535282893857250628506605763585952963763939835498606426134247499109498465636364257451669880405823811723106446173983080162997362498339841359798247395828421613023024906834032474734386069379433249516277736606329201876067606613034396127251490614660324467827838018300430408692484400780153331905691754275724316848433214609059197742237181912747919200846865675349596164975877082723282802753894286093405138928229016172543668437155621540804909145250045298669834538671408799911844009534762386682890837651823402021861316480407427594916543974712273829855960067703433278485376867648128919623032509972466807399870428171211633043442308179726360794974687271621002916929909987561051491657158452352417112150148156877871709863755047855954923296872365912998543796854258618773066936994138854467502939842996336213389255368298115770604301889184523525151865379570300143918151555136008291459493649174425209617949683420175412990072910088493210751104057388968040503980047310398859612464113417289623296234745948476966175454418402989164762352505980227163558713539764466790779867472472955937541608591531796352628592302898862045311557380715225959918311638171764998681050745027800341936377682721551226940030749896164657347521101872523785138780697376759820667384285962068441985824903224834142649480149532579768851630722383208467073337160615041420775334310082682553147703045311860145972861084029099615201018259621286995847287920825695835292967379782050529678189550267800532563079013079087492911928784927186701271397688091592521124481750949689725991168430958027619517058443457019278716753632368895975378170055089230289749361986982551422818539973387783229225829000090538301171345252029354173111842261395672711225052245825773061743638139862209903401689891871438751821274870474975848134320685514862957973646931064202466051116692365133173005831053483281714623281147395623831212946329062517707083745578377033905926907520798196863497975073380617476945287332297936305771007933758141520912363856880114280499681877014359433911881629522788897839481095810111319660188057395843716326719927303480174805514785798783885444515532256481797738768092460754942102687783065139892048209046237707164466703097580764076500273997071872880219076189046390770923958541440823747340042465825759767199453853777236192016925999013540631064724449540450089635346200271014554728070665233778521522520138539717005381106105720861904441417435702146853826492272525993694752110145795169909055232325741878134154644631203828017841999714156218525081060200192675572882057265637318164216197494858756632367577605049059542949897948936952965061682531356682685739098857443230501893951526844327776535427970753800462435829779547775730816463931512766391756411552546701927733883856995913121890236180882770668631418874932572491768484992005900004844947240266905179896577807851724795045697137493235628157500379124021334175989950128432020383567034552432203350036027726502218740667121936720820271243156598852951779772658570400974862970331114322782126064531962342369996275923250093380886300880673374306919044284953466470948368537312237684882186123709698045600012771953523458030770455033978520624954117375536632391628411645452231533706222364384842152433926846131608554380540809656005874939160713162674944383904065094037528733967901291265560329983947487710794149899893275556794123674965779832811594393112872639440508975009536263436801039672267630502366144879004355134517906762516352542666604514140454494879711521545631121128547663576302903872096679889998275209773524548585519975146839631761786890889034960725102598102616181524113889403295776779188776588259457334413932151698982698807274528395284783287296052576201841132028627176107936145398674485121298049515412312831519541269877208402769724193387156517938741178879430733730666580338967935035687416835025519143950570202485615832042817362646491255801374462503892716904008219038689766468051685255759115396267514654272573658147089857722959466894239032250935220308798765244951521070253550488666019273745817128803646215582480857387148800893844816660815432912788940702837396120730784917701876660510227113551918708829383356954380386505129339230407101615750744424990070920252430217141728062336230742219388259253455658825034430787981408269214247038657161050710996473209869052319405868500433550081498251465240229984970271800622823707256320280957683601068130545013574162444097737046519483415095287866714958132856063198867740771059530384922423063407169962719422318760012767474286514627461792879368553172546327576608690606388534010127602288896380978198208600080012779107987287605759525102109333139628310159673687796096591335349593269475202007653218046551650357040982791535885545340312732286707564871243099692166280287385915862188929941625607281497691328157661848460647386222419346829694007171505125368631707105220672611094796528770802138950080800850560568436341924354090798778496463525508979292201001667803001418170861498246097594024539883721486211237702144368827253905911798515433909571424475642199022052213766804288505244528149425828810186947534736863163208125011281336704356362972383246410893266477735622477313345301206685832437487638691771962418505198173485596126194312645532711660598557938593854028720548908213564466287649928418211767765430702113194723397845351397728958374507158708023103062161669301578843156920387885537700707822434338395713726521941122400805286039363766260241751598622439188342362955622484244897034192373560245682709815709097232399411892804131687532032204589189689022144110696869696606027658415079176939903816549160473637784474910793613022999051971391903805936100409824014259080709754949181228357793511749284918657940817059958529337138198319203905708287924935343400893377330698714943682954900435381407662709659464898008274338830474093747814478864211686665614427173664926045282207702989825893309321598835147131128762872396901045605580020814890301491276198431018391219372642066107290853517666944918212219666430995497078133841406759477192979213230026040038728629838301590285474264221705642886459243461633353464766966497152700727383706252088839914384406333083333253267866651772144751344339746808742761599456731401215024761949611828907737699346889134648094318440480894728826470840864244667817328338002058585625684784656695735447264865264963347401345338076699283269492900761098755514161157729719474437704370660590984088341590953209870828699727954032791568261624818551085237651127907300589980325298029058224008526220315775470167574958404774702888766707416360305041683590957158385097655382216389346542599169406045391125014414241574462339721914359470659207876583344365800897838654056977428549326384234132986830063501193251564482103811583480915542548725164178964749066781950684695154425450601072887474618444444089013046846872317818214329295159931293811101957027639398379982651020035526242533952539818431910028313019879101589677844108524799326510931280583201583811486274545908951538409290598236066177998418764526324389501140915223189077092715914658560071591495492862507890164375900907047696066516512866342939043110277280397630816612288458860652795765395411638275317424435872125160314588166809498520454663383874501700404924449256184368844748388912368006545992648742148965159923172407704208465277057475685279808491420060258349641759810083986632951836491743379092186530761548581934481804945518914920038552859064855505692232794477290349121768175150723001769744694225038281953850622162134402900721017022311442412260356053327881387007443166935822207525033395034767264122722367903660194583743922720891302230865615502413174820824401898703021727649375262470540428974998764322117666598180181450852075413511867378037244996573137945858546948015482786841940413676401671823102399801949819381216803271519558947175727187200052707641292102924021612568788262527405952306196473277230820047950065682808750739684084731256037441118672708349136710570572677149059665560126142077397782461679605597693719050809217586976572934635540543328365196261600897340175752979184710909761869759215336068473917379437774285960440712745386204258226488321654255985160865469044484154743284257976281495764735717215358102181709878801428662898267256219567127151593872191172386911688611565576361541184832963801402891519477718979657342170706117195228010213786203203101730201173817429232664445344567511225752447196083120938219370492781281028216829512722017927441979177002571812076622592817126248144177766752295346938048749266156504591030627503750572377556699225396862181606835139182256277078494893717663985308681848794091915696623781817473442565132902709001738284296442505142307957062853227761317969561896949452638877383603759894001861083903376454707860840414761558944660466211397015771468145741868919113487413198311431501484556760031222998216562737972112866578953400749959654906895083859353613093265479696893241696134702255519387094355896319843402938497724459612992022593229444376187100036007741841305098827530482100012187389760576749904356211348504550055463774481185699297772239373829986732042425277587285222369582940835282796392694836039334728914657951294817558954609871840864439799741440614322065947995001658303656889427238996965400835830028129954431227851045769207258860755224763683805720703841168310155512995151263831843486705881559438481162827192151838095736835053816559070987248756196926045588112421521319624843637267475740257275115653350795350214167546686938517872542777480080293237713603951408953623054908551833799443152812134138543460503810516156547321973989575412394140277996759220482242179526576696458647139442056364822770916554116403775954927119470715542429722682697965533921023960520467340883633219376168279878040519936215856323348161954605894605621398784759297363260271350248580587649410723537477243435889574440491918976134646975446596136800279126220762667596892417043286441161895438802222266485407789386595783207462907098442937213029631613322419526035467396153747863716372614946778884530631388940661129122623097761147493014588823392174834016281223829662676592180435637809421453038737585944696960885809111965891174067860227685761593827430971679939516811313324691297682136561730325296724083818112677149165977746178217682530913394976436814212974156376078387982764611711767158707177524348646246560560780570272730435312352364657100321468481025341146690831623593374928874388171704595028349367319740917496156525907056383094596551166241567884498731098609258761232582559681202366710146625026332077047812930215956164871446122078572621313336183973384929256352278099414443657653421654059432704325137131637828783969959062373138812007281316341258431163453691509149752584833883662976006250447528273216778521291930559973065430093605453402821870517614188722340018416044522397912600557319505520353050714626988160847784436844180733638807284808431847098558654916021538072575831733455641877513075246600286006973835288738460279251021144169549006619988576082597921534338859494324497094606532469476352441775676562197305397997335597097446820041182356361081170131630152414555957978366776047826314001596493486739520053978671384663749076164276166434000776595305946980038012479971541630324564565961871267754867671373327103075208231477030547748323452105564096048233681387294850334363116329382807106420582823537084606943060715629039140536064344432779480859284647017456345778196564939463599675298214252246175164681435195962218849444328575630708640676804930328166400710188420777938635769179957882305205378734760292650826708673503389130008506450236974243294882192000014866549861348310024072637774739034861758887132963592480471187950887671387997155892402863583242011444368871479899980440566490860745040293781919125455998553466634290528568575464213537841711734592575728582435206109915060006241594879472897306753493401011944061240892286506618433658759322033766596497478758361692266510332952671276760076598770702254135736997148408519697486124558202822976730043863667223851473013339585668336512357448471567008528100732838746915085143888920179356866255862872392835647678849229005601602440835360748491394074598465225867724174392295588117802453459639697163771865891751491379570184874233047521202823004859894938379065899910383434160112976796295297499857197364536085191371644462073562232606365043190597703573275725015415636390141214964538349103745899595384003711697085302535356078450641053247565712514437298160250401560625074958891826466958235198548500159005020994470218747234942237187183929372797923914577894411458720930645318191428833992776006828012705874031699951909747962545879314705493738377201492885439467535786894507607224190277130553453809932105071654046307645762117182520294308487551518909866969358492934753908883771406865433165863640599628443046635442150223335838457342574542513925880675685042227455315135327190877872703068312750050991818117637464293510887386120130746201472466220708774139898627750800115823404844741522134563992358823650783530753312517245218538624575357890579575491646004073989736821847501923241040965480942931039114029838327297822806171858447182561988581083973385530752886311515026762875099579857165231149029913720286612270175375105063401915069760079772290975898274556758703587182979065545813472640509966615053790943414744986690412299712376808708824439350001462463887803001601351718645759430464469921485344030248161268804902303076100176154086784169409285571763581537945660243204149281994455229346039888192303601127074721779433628828634184215713737653264552603626358855687344190300668845005996287628752151833350113956438389167166056026264121418601580441998510539915512569399957317097603498755914222063981619885264460370449171572646547301551334060247986562264486828952933056207325972386771713378887635926533645155412458919103739412678331537458749604788290730249897986628632848031074139964323257664258911173278184600659439888688535781852504360898493228250051907493493143558218014536090373358370976874814280887635936350064991069713533478470869432461719830507077914645308226335085365321310979193331070563810545103959591322183977185094240999902795441346953851823072913871526663181863968702656895196826545619606285416374765714363413697058185709214973379109062089549282607521769894249122990257568656214436009138158506978300557149336211572674357516098451960219987865225892513134375005096500429318693015985568699241901555508104243121815549574685655322390461304652044562694519008625189239215523633032281687629023881779166874910168060876435187705751029866334430914991644781824410993334215963508148156306642403156520377950041671878284233417741522995519445051802184749819592470786291290722455302779490905368079279332989801227685192185474285577573572826543767099750220631860270883256683814659144256867131436997658051465770409081431274854405729739704123261381191119933605004827269170293927286658879328197616035077031440236219964999778943836286556914252648231187139186245168094050338911834291502246226372739166326797496868431772891422012581107552677908919023030247052113480124443893672318361914525454423825825591533469811067169240571586960111148761112550460561698518515275240296383262794898888131121527972254526949041954500639714391140120786028530965045471441730188142266817912728007521247681672482727833291305116904831561477966715587178184310114984038961018907151996363825077841396528726793321880766769732434887451428890560172573033372746624947489198204543433180489787281056502844381329645373451720376456210082579582667045220389106502774710527806126686516663705767646038502734328618141339189116191736738536438500366372332913464570273596362282900509909307525952472589107665954765919571338028397072576363426865517719657890486683924838186310576152244224411751772979706166566270942285404867342112019885870401273529186686246622292873671051406866633283071093867335437046158173229602195724168053914154200237630025869115984772998562824756714188568004856816377588463705165728285681259628124476505996307580515501143227991331795099667472171354124167788164598797187387007252698119601799877476293134564878990829974327781087895791314585824751974309308676406115881113920832839983489341018164223302005495066649109846391115371714112058869899846319268331779657735025364352997713710951251293743236880765154777814144664713135297631930190752502668413538722734626043347915099130057200484660158663504875988726974265421575046943171168897878373678965986155166856325211434594181114371898239911000548872781698771600009182962554421012955277570465533879048620691445832334814516851907176491525119771951209956692627906127105974165910001008560781782837157387084738438404963341325755277115893748406092713489139529013215668051052763026370622965132369121760703959611921815255531391721076302229380207598780936973426464075136222334347254021092528038527904670387511650246762276599100009624772405240170626065576976659764127835740556564286764549735953340929896943681112864604850561787504119436988108450916888580413092005094761872605851187875956759345492244401576421113550370070329871279908398362015791860177340881478970000014683664270433673979539493617153608719721065253681418719843724381111483345729031362770650982636780519573404657825854710552356693861400791978387536027722795318757214454418194944579288211156863593481679907473726483033321223428283898866445953447276808600117791229724369769624050222447517401005813977281548794024376740913480046759991360181362782272410813556713158456547886257206963746795446939834193325421596259998169201014801188572455684943597120348271552161556286356842096570280117515804034637821309604144235313185789106109183358752453547537794605633901765200954213294827970997230047643589306523262616722031068021462368195950612299085605605660847292053185116297980157368431601702358461267804449140792917362455386779343187013056740355255786186291294045784886643262448562136653944496098950651399054089636240486874991810008087358241658552084144635363951735336680818725890838083351902926896620949427251475348460023103990895618749526374155015601317032172855838349413667346448003954680439995580797700242616027768529058315416904235019404455733222262069629936273665809163518538652846589769696044513906368569005570065250411526756889950208955565814589285760129234339071830735336325816703768498339747421603925540984432321208432992618939531347346446221195421255186723142478365307179274385252196546546632270908263858351805283762139946211983988094474353109478027513015773997871862240994461784344727506307844622397851358440445949243860399766776741890805196630704590826931491713866065403566622168244797919715886337990226744939061529350362680352648836853756004552644851428627715731390648967688117362504660255497582541178273658607110268970284237030336389845861773739688873801945277355437890176182850789120561763994190314760014061655412912527803749531656894058337169518763160378371269437514541372803038599951484663937764288961079146038369898873177481627673580913468591161226128756070919145803428472936717891373904122070913361592763918264048200571218331850260688888045417942738716686909701250813871688787321427953258929629618586972997539062116500464802997675229295581107550416605045233943870231655597075141126649142966391651331395579919825137842465052204148154963413006811133877042309404490883762877219034062204560509181059618118307107590063696457863641141233289780173385320496729190658605553902486981827383781702885415587622047040716925696152307190338263807041695164758782228313785320986524250483575394839327173600611364643691001258920324213899165835707162197254215737485897930538348928429746247194809958498842587273828328263750710597733635806649942382758634588100550935884329724869082991854314900496961071550631603760521892442101665024611448616231045766725178588263534032810697372484233303081560456772344250880740382592515091909830108586473533694134911649779561487545420896223915492214734888177578604799876898298960171135199537721091964870523916977412194299771315356233020122383195443607462729601913100257927838376082233897224307043091670535137947357375203268537514819343317341478462943311611599148349144427182169331084714226112490757701985360908386150366087556562780244811699524275325963512365454388269832636324071943231074558983127816350611953445605493090840576332829242813777663670346661654201311522178132902986660796443916257318706035489426402621626958694028252093994917422941228694743671547231042553197491413269918718444253547216920016099578402154774977155058174526968468965249894774259539162601664164403621250236962693087228812719610281733649101869664892825804332744289372404726155226247951682263604198396798384775536729918945101634150490996525919064945263008489317699240961608748209630312280043089950612071786707424237507070807144939827357693197470359418715186365064729282123832686688949743318507031908174822599614297121578175019404419431353703796166306193419929099034399205341628201991781123441891102360344206813946853599342236831229298096500767484325105950140111057266766448910153844896765008633760993043793251292424146272925597601035341174823603079218935361162536630403901188085948024657082123491031311433507881956778093384620415973595985270605720766317666024801561590865082235184374752192667854258704770856441561598369823225192463447954811077429351565695988754565078384798948371486901092819808351156465400505930133097100529003189015028315317900263195053828593099634780433610373221779139935664799068108298833674758149657128102717831955521250816330332207351568166372330359978057249409022981543999705540772930608893439746774237459438881815019524848678083774744883220808635421545856489889543057102802438872903838902684481239306080118797512272422139795068691853674966813177119588139091124452536582455660195672308293555538111946013016857656270669166803009077747889017610860239464006689938707972757450382994495755369383346066178001048944525417140556368130268073211758490558927878515592940370076178460236760915033946912020674682333193234998218169607244385863197394655540368720528494098808717881934223397691574381737189578197060004437989549779965702878500544556285306883734911233513884875011598618708402721739021812930139714467950508314572188742218557709661397479649687083562383214512196026482467143100942798132214447077175162383842009143797181872673957249169674075314282517719768427230624797371183424917527467073214688805961543315324633551333844044686651287254438883611842648749421419104327562790630593515885434715999522063565813374239435924576924272675637927873738392614533863467387117365156988781372881042690130528669938498306147112418521534633949350698559210774830985818459232098328875425646924921035508436499071189338242345740125648817185360835613630944893231121063759640174796353283788594032279429751279409314364059073678217810761558791364107773264986884378786284256164167515282924604360490051364304503274857991230345705676125640781436428174036404162122099270349450260423130701126616432124777823583368628246251923791379225414759283816986527040775045937405750184852321292779822875951082739233640566274565204310115266968909592430787250839295588177421211643375222021789914035281031362668451859309560784401946916952586568189171940625943490805951838129767537349464438932398816886192567868949526373858520511463790269980963948701605622109443526200186699515413283593932826435959961157735974419044719665492606675046884008655310385081111293778031092100210837422786953253657204956658764979351386702927310446349510075643175589114382718752026245865443262978896722601516949441179943591862609968624377396025098151829835121163625070141475578020789273161386489007160183061120566481750711091336832904821979673055562285584672552818601287808957439253970036938685985712421922860085228585656642787676300864346665903098865670249064559752566276027626328867077852226797215475570049886988701548415494163227767354591218667620818365162362633180232976332291433119376876063870873225869319395778478365830415007734056340093571260974478004814741839027493823112505247882576027387075566627251826729692884394292345998312165164347713772817219859982790900471354997861539305939073797477210032654686638010560181884223171272168595142467517688148994579649596475684664201632250153402903477196343772460137097786190554543748565832414447939403507683106147129857423966070689405667406882398163150475446519950756413776394882385755011356001957284668799989463751197741393650619189927956859970788420164248566095823657306283889602193409744534952423819433110240828957128692533880345982847748669023522573356650331141266413511358892967302123857101138192636156382034610537707812128119045535416822173045224163581793247643988148151048889344000579520794522197738644579822121877714856005452376775243146787691847037762333451308342259441757044204017334832056837310805084658253729551112181640462843617519021516652455361071194717414367020683958312341100053583363952200324870764334976278052602365020953515389597152211639836383142369847364992294549770332098175475675122125597089378237927158407148900572279622389338595352315116376739686879246176885473068600514519165993641397785676277658325437940066035146100379050512879810659448340364683430240376453886490128061942166137910082166777257567230737146267435401862704440824231196159866118231068162302742062438673793051077237111354052086556747745785848505485228199343364546572838704946599413261992994897384115639699958947870396309394011456843646735593084486681876200755107350136717560012821621249425368984027897514118163528587082387570102437255660180762485485296570889241090133153502587647949956549202734875821388574618167804064262302806764452869543149035298880890574926685830132188120052318678253734880211191466371408255858847067383018581825901390106816686812821678623530847180941517912146185616692390609861954567988076041383764667028971650474742371499575841845116557362400779682755966511633164792039895512545168700120299305890730749761414854316930421908426833704258927852641104417826496639823693928327517874800284913903984713194823449062702963825867274654929528115749604130756043978907963485812008403899049927104782328295076831142054524373907908231475493401019989612438038752178156650258584810801464690713498688697883580408093593215754653900335789546459618450315023031639049894033450642030027571266304770544566509338168243226467267027988060345223581229318736957321783391768356714684727392721036224622567753530720929542616861986227345656641267973668412895361829822355286056207445475756296759888562950685685184045259143263266580654237005023280554771475572269239125371744886245503990402222397602717313063272392004935896750470484502877914537378914667735996315569132184941622812038955877403417960334344815973959662139702785786480457447241128754498060378749740497355373121589431028480067441259137494614800504723461385798795630316301815596898974374987359156430721858883058969712856819858296122053201211482262886027329350108477729354451760818511792106806817392318899612647291012564991382903104973010771140350651075468702086714562869335194670586918933475287655314153200748731957447106638310716871587699957540878511915882632988743614676966658941610297891183417645535225864331893572077827115813401663753862893602703368996587362158218006450727282146232131324532520521266803181774087045014360846507705698354934323987948281080871683835896600550843539890584911859075063970733156924451293324402123119902134718332037759311366968731028083412118067461224838906344296848434770018788182053973489054285225338915859666208869083939150062040274091712854132245544288522591948635862169700220071548672691782316978565918407468551296464733182751103904783933549065049885024393421778792097434313533649207975112524257063834075445545799136942177041468265339991358016760828441236259869649208110121666303162965897654263886029172246313664981973390200959560320328594013766264027711401657480396294882479933210553607338155168625999337724158515642901453418015586458242343351983549075871730644614667434313859865736207457096127746520720524501254079134142639559455116417952082753525772680026840161463060832960866285502242219150312341976362221012346348574717141197910671416542830797671377046437608640317510172970476856340957050168519079163727624754722948863510695668633024194412674482818781719662175689276688253154714964636060133523189546954891116020210078785759170921926608640665893099234866728267289096637373952143234937423932316186089042140404862008263489572163431814339289832019048500612677707375721926337456148539783019621642784025178321497561509470281530255396516977703526050859550299068566938255692021726487084476941579842617733386279769234951783801996868157184442953525465503755322387113778209016792991554681654445801300310112695960204775341543549233635736904743001614841069704342193955998995520545709920658838916173677308507613134559203768896445404782181128138610130965565518412757105239820942595592109804950119158641348434679751342506744136243846792570414151420838127100064066594537452153631153075153399406428901965317573809651310998649164662040429820224233855642649040895572494221803523365031798157499785891793630718207008617944520758623604090979733136145504162797354814447262275061925327347140440636559703522346640813106322928457523955324879574003142589013812379732871715671299066424753621259359142701711249261453689323453669501031509620373519369633551438195116772285317138825594881553683730057001523548738293864674787669516050770666586169454814984958227196290576422426348848670539047000366523361240979179102125576819916693969368044228481819337037946810306156044470318232401100446886132642084079587259328686843818396257158558758867864249713647453000027224159008241394940024704403152520821502397098444200390112221504994818231759572012217138022077906391996742590255540443315021123420151844965610072997160181108309637781441882028173203582015521467621132568592506302423446185965453501313603675123783430162200630608579163952364239520309832673689592523790037099329819609683744863267006595822091865446326029230174715923268142932052773051309233881475448005697077029398738158107453437458572579404578780215958644487735824859892113237540855749954032356984644003121132787755679401678876577465564361888083015596159775941484592657188882500595443273398696683491584602124942223114757543702576603537666328911603263979377578193355046843026772157640848452431232166141242550368710703600692478152815605255848167300220838157399337428098591301476369817088854061290539711584508748004262779950123443182843325105609251567520855922516574163452617788011803682846388413262476481925974132122928357666871700739991042913077383325119620868680337146720330810546682384937959025077331986820355398295037376063630110474413622382904554268689948027479662012812370866873162421191642847761830087785568763786497304541949832681091342910717462491697917467178168309947700405655373045109047141534992440307074097518593806239844081025240850098847619953369695705799223308829557639714958126351355947703097911712602166569655732171929642222147170048494824461981736840845896753467777128787811767884967418030332951677546389630839090415804238909407700456599197123075116820632056219728679290521027968271624536483037127953757694845693488575079822503240143338140946905001116240175228608158097765908826058502061249433845373564705272050939749262521341816647485549860018584862320048714014522759144706124404323843889617566245033826475055157313878961005255867548007918294677967367960626031922112197904902827380378044651719163121953537063372499198651907162640337227305725362285972815225970803223335226875606037433009916301453721549194559704623903915558439750047790559723652207983328077850811066522044481368487778852262479328873575282368115444366805227183340241173901957003773672299911963259957565085421525870804227486829271393594462655670619399124469531555036635387614135853877722937095837561574617376566185945818205363731752106435065493892149454571656512926263071796090069285526449342122642695585061550469241740031262112049706769310012926391670565863122080133000280429501295995443847108058246031543766386854094466493469154996431358183822326109405354764018450196924238350111743881852842979843678880033433590688029211065570770332226258819209237259287285595423561626903537236827842232704640707846707071708166456278179745145473947431216344903160636997786613916366289519649152243285815643061542121556919751137130291452097865747537433578729253234209269033775976606104319089718226562600848147837498457279223630104098373775519232227657812348540717255869604138806519699296266747820405898584566549814600613746880427719174724991961141216643706214809272691137412511548336581669105139591018298738788787999508193734880727622136002611220879437082220728760487206072830827628829467696127149857904679413604590157022049606039446950462020171269076396669591670359118343729019005107811890549276088163376074285547366934949498918876188776887582544852225860907470130490827036819678201990788076209312340811716899903366406391146846468187401733410222766687861570228924592440220697680311631238567413694656685070393736326407965979768929094982349210598051647546418690793928643154302378857949353811385060520929899236715023451458198727474656340089518553751389363159507621425020030951633729949023703697858405050582482467568897035506410666132376356521728377479494661638194526345389631355651712469634164022728508838752135725763754845244118755724343045403817283826540103026012861715234495411941404295681578668127129402524844038834103192030989486687017160571406813786610819132123923066387509336885089671262127915994310557819679252007111076764247322451120429316800060731738125023347704937540634856362804252447458608624591369115427430141253607750813115390494081462543552132356976008523800819633365448935590972432201261526469427082702185956604894323513351089437367271441725234472427378281544556123507719144955570577843429626928598448419523368174041626484867041718057927966618348562745993193088132881109928464804965325712828596237664536770273991955977867052260514090555020159835597608506706919541846439637383910044222304722787922728595399453919010365365485720267863166397123415612422676222170943020442634319375874564059985937526814270640426714632486115178512546641680765490665891476906245401171463352455421642347589445713184546644736124550658558285109970852567923092340563823636218101653881122196284583793723591018996245975036969818583116147927766127190606804811371425569217834893313903937505670495303292278575912903308648252299953896136587695394079517164563197275690361569621182944958926251443379894078097076260848443963182707508269001603038818982660144000996844166006477070709633465328116959064969140023974092574246744062821558586137542139150680026554850112838792899932630507129569910904893701660150149100810337536125902263527254443917730449477272670817605536981835455053134958697658686214300455057851503266860890787547106342255496934370435956316394068453701309665802984314685715576792346070705810633004683707855598544119059092300019949756778893402818688223144623024531658764990827170059571177496749132207997337253175539144004967787772063150154768924117549817274105439806830212188081669901377050573474137289720299708354044178949884271811481887825445315858264854160882079850473400154160233114834334803333142854528218011452103100231532492933760001874071170713073689243324108886167267780520300777434779749893352236133849691248337558827624206591682913492546189667360168429251196188856334028829519247065822544879983956713601998060791663886465182195656240366898418809235186892979752807611992745210987110555739496760163387212412857879720447521956325788044814466347385172582981871610833817681531045091609180404461253896028180169523922905680363954300474032707351014132126457822122464000572800614510633923990892231930460067718271113368748133691893524855122838697785133133863200730650729665184189494913058752432506658151200716906039285351279549342959701869415880219708912146774903645999836161657899088930801919536068506009780230447093737639788578754446795672110736617499037185150443719988452328681158305670402463338161435304111419836278886506947794675481268908935435453921647358793860902534426208771356051813124416436283526842114319091008903090863029744468363612384821882089662314819100226596301672327992120541005996223114191434006325132018642526533097789533659117494497862308885196229008323303204027656423534709668224232187650576037693990778298235879990883483943419191155161524925487482782357757380548696547710626930476630750504508601893640982588310443230532357360050982499569053005927719948087558928764797404790958067941504996052332859632349055651129145285389416293049682109888069435423360702733166006232592964324142291775917968724406907922201275916958890120551636704599406861192372539599599411975503884503329486886809515232363841928232155342911990926416712314833949017518671476585456888394676914999718464818474800758034462460796349108505760136367915080269142296559725425373364998413456968383305757818627485739388953876773425124553589048834191566108247862171199191508846062398182243958363782465380412084846488844791032624986521961207617117500541901049374669677310302641589373703003868392009393293965770556610720101534443748938620144179145290928270544250429737324291469053333055406249838277423910826381903175262554701613612120124570774285139593827377902668674207770919781488872978128619187496276319960670182638396256094384002238249971785421809471040468468464135054537531714035354138815512406204491610515604416110798379457985211300071505795201074147301191169981616111293070908298052446216512750406760388177904315844076694474298030023104312825108422640641185167575157989881672754904548468116080826607380271617104371324318716863564999109830019479704867339289403172214920599332991175636231126475648195894810132878065453040577454419808233140344920164325214955047647153768244154814939579681685064782935505925573482014734489985233066384844335646086288362617726664750041724859655308390135311719545511206193780115845566023511405529075924898055201060513336540877528455488893208996052130637742238114277090629509712823282271112113212090650166767538992944343058176640576524938144703382608479285368805077305088851977967818869179645171308549198192189059616856666106679182223174856593740101073713439762685503719542135758581201475510827825116523122694009591649723042651117187955624180888982263774930516314042793367030189692008232899835579533784387260399409623609660149774797410836812332342532069510034747739555814517409549164060049662466410675860843357634973428572708838372201841196306569773103910086897582638437223174320724717494409648538814129395291858221313153279787989957639684384277395310780527088739554198888436454255621043741966677108161993210004810545132710225844988772830809121268181708626675562683393049787241555532192050942990255066914170887304584553262948381951489524614015115279592305625608543370165497866060226861399390178690173679967394145465793384457063224690356447486104993216840980104053548952627596282617023441447510722638809385953951910233373525228231133221867415127041227474288626494540320161943464098722960288679788646690743424244423600574099304701988017470740440102120311990795982652806350820242298129249791731538777372055916551905221337824700527655640515441053981988866379597295427454469458369037134562475519008877816061343899760070109666743670622588629520923379853664769504236906109936255080079740823090771520492982304694815215350401173550661698610900622976684744544529999160840723968687646073878501000738174390626969149818569537249615843865709601289764704479567438442165373082685129004753142065217722442263303546821247823892542275702495521326215021595003376743119465146827080096901773957975411984719027233031887716900254141284828950626136724191475676564903044616940190851831810098374942163486551671004491950161526380413186974561964247803181039284484595871693392159959145434430837304202289558075878742460441430880268435554025761221728461675761933612019513098839636093084549598857725072513114234297811921873232765474186779573177937769144904470299185707481337759288661346050375417578261072998033933797209911635419176180293581677793940987290084038933059708822169371392657293265324187911509042479522954418899444794904426760169397135717918226221757898195193513697778668458535012848652164129721123956309356547046746247157555060300935062864834470205478725439511581542379130377735743136117194013731570192008982007683317115887671398428504967552776234310885406881952661916362694013236677946898764020937316760792948996785921844830723970287904062420521844117053655538030677987974516416701351971367815522920188969931551332061518297436679123172315701902012840448465065909293419561960948461693421123223294434454848230862554225479320930181333644783469133874649831396445505555975014894899890423532964155525898615637426486821447485422464298407654996378964606487070671812918830475133431110501624584300462354135602778373331610947324430605712182074538639917374283391347975770828284213135876819083543742853070611534121868371408511169636858440308023727710683183077172637297308671820121396627987030452704635819293626750480572002744933526436279798163449926749993489316291184398320783180138242215190728661145263861365392538401459202749031293471812999724832979728298598786795109498597320679472911501044681546698985912096093661434830953210075736398330169010459141207288951916055416302923239817438606864124141182945453174283682698237896724695708176372844566172448248507553067966258801159660908428037069210819609028475414188232429020502141790753016206846302066402811248884457198477310887967058866812033891340797319848104504712473664056164499265495292357682692972803628979368884804018505814265399208773755931419878559687481061523303191477880146532836020871347126769054377847973084664259083038195872938209703266698010864431368559514378412652285829566545228385466790280210106548099523593595166052729585139065048406761282977938900048910964077059966377220648746708494113169874039669974125876859640579402295937822106912844789913072511942387387266772084878610884181696510849090735285434447508764793073331695583776923328439795452620150062260490114635245541920489342975957338725626729231615941342250954521813931362507934352819570691642730529221369072941804320950041363733966205891572173245256317978859282027179914361678153042137392989038431795935879605667029206969892072057105320066334703039518669120626185212721708136845115411236698874788867919923135706896788894400224635051551913972716072497285422073638837405021879236911791941268798990129799292472730137996365697084855529139705789189793460720614303042902025978446922677073537019322158711870406455502330285637420931760068693954760683801557239017033206575218812434351657300995526386770675404367004558050293124634330663361305671276257765691941792606127531691023692190827432005433916524181003849641433851956212695542766532411555433091604378132497872134032862456473413915867301455554329221700215577918781633507767876857991382995594027964165241067428034057495538317471277830860411973967226152621556469508888304014748769061130326206171773411607978603638777794286256734639095214317881244403071776558353764704756046629614358763746495963599129773392567139155069333254014152451186032910201488092945218218461115294730801728985584001736908171218524216079381987180565595649642681906874706149041131194732987139496984313102933568783738021907746511441625173680797323562715124146196428860019059842877097490343456736202101408216785920791166500313743733574437160712095598377712719155498190052185453484249295494825637954025519107508349238391632108612523093834800886626895643952390523124293559046332242101671585551851287549743234293491446238029175380802901980348770297078230937024080336193277500675082715214693355574059364048940312932416318410321337272096917045797921111727263535737189881343865839671604542505260595002417205659716600685476496169123735072045940052661536776319119885911813455314728419852012790370091222247628197719523427670118974612168879691149288317916292899440230041028296209630643543536198982200280352727353374637430464662343100638534994076850386622124097548664829093762123555076885856988485843346053703756799373494977111011174527065629055544194515946519702039900649611579971354591797916737070337979184625733850146597137985685941299603509943960057675940974688483844940630586381425487298783764446732943301315301627363385934204093791877449942414261887326191065440256545354338945523300022153879110541984901929395342288620067050412390157279977613037256372035617992868578730367480189227886980235163115991158965067634841210357466672526374652177449922062388831469550438640587280541697860502012310382579307278767368539387570395436825659290562509759686548264649457195803115096401154055699520002448868639357674851390408760123828145236298099716993170439464027792508141019280943246608101544303392920238452437268475193370110880734870207440957144710786780262754264205374748639651209698201411183167524326236472501777632121603149157890615615215173802238173235538926216004849540841707963469296320236972568571828478387628727299741248035055300617254214891090296836032962643170932716024629054434666431581161771200950445553625993753183802976437752706907769559100647587068813873932485534675730875017859035713811048634733740061879909942071963732397070364954412786130206414078706942432202435049606134962713476616468190043063787888515996021263494550696323308505497268965058205768522451693315553630933043060340648582613921086596731819944223525625315542914773007568019960274931568079562993774541716271980258373233930829330715067871265623335886519675916585680097244443366718761544473871361784229509049530577208383687319530262347529876947214586733863844336164614807281586137818707069419259927522792829077033730700353783928099726945268465317142720605790762645455728203777768259113927252205523481950343449242465989962188784184055368589401385918153623834261170692535573115343983332451149253712635538037692581422419551111499914690515113240844193101275478845656055509377602437205786855141270852024109914094186441046740480771673097267765109790651661655854972737071393787716320971593311172524811097887131624654441287201855832501239517629123637177367430044398609604199845723696290625253609256830423884092985526354325764672314011859689809679759881576495922085699687864670692670937062004239973684222301324503607343266559195980966814177708744024711334700474526287021583788952572231474387849411143392263078214297635455719257702231673799100507347056747539369977496850481621358267079423590358562545531756238068102020944456245682011224083241910931834547411758506896203552700811549329566023514025935439889091281732194614969809499727869981685777248748829378218262456204104802483376644264581840096090737398997402311882009537483971830537133331216579430701853059437927814949175406891942463820356757017689851055582061474296317700968512579657116750242132895210943057499491914777970738643809152009609848749499524888096743395754088244736696224828682260696997636473180639513061305649723524796828209082024759024665993103666336412931257843038662896172919779700469824324351863664608608219308861482090994482647287590425937558314779757641496500865703450914550439060482596160097735474196540862992969360673885692715919677898880587260563528323979829993280593497392303971690299909008993858483888874114229455672809657040585164722437876666140982112404651998702854700988396046020366522419584043590657423077588148969265643517058585365990009119280630320132146318014635191802890830039515706934507661194719974071241256567956618433066205521085204034758892798413672112448854502972832132827967230259977465716082997027828174458841812563214213314750889743004379262195674585037291134809004336132731322741873041027759346355223293060804236491272040015019075447474660803616173602350172698454618942243442171082452869478933016802866470737115877677516728290544140143680873283406998369362119769823693112285999404290459475567241853623421568532254856494254007296753669092084556034202448873797992503349310574891336696384105899222385213060329457863458301261674755563441191162682217350528079438857858723791728771304572995912098902651433422457774717185979781821455326348096339246380044521670828804239178626100354002364359091248195132041700798212892313517914772542565951161496140275061461661390679257967151587409008020636649340960999790279500210853171323986496797789938316277711260597209087514123087587761611358942395453861170047885884699799988331101650786270477715650949815627327718449853613204788309245589041576613671532463972034193865068386318773086248236924130420716964759328271538104382710131044011680697678419668804870931661991490509026495245686971316025519482810091458743066675380370304580651506419349510332953390289350913520104299426032582045969297232196938684469511033502737686951614733001052649530179034627573130017007774916126596325490862410381721200632496590029909487010858627936019566557773244364381045547029630698258082272542058690848083020613928768320648834105255593733234682585771893690443108288193916070474153655610080067871999098975209057524403689325662910570030353517176112777027339897947836959630138231397826690495475595872632187672471529611573196288030525446490223793247001589005703135006681379184456569116855203903055607280759585206159913359521419420449612670749224515228710766081703615587751192831452727790947156583679350551393797864961560388820922439670514999704207908647705756126557514223106086022750609213212717164303559576962705338770048001583705788670755381224796464668034355964467812389094646642977117624609697222324308058006272071185201109541059013609269290703321022567827634137645873546131139757011020678275986123959026447678981430348208242478874919036804284987393797364842530882646430167498795680645688910046661803320671749675597253395312885627688360787771503584635997729113743024772019340331408832007794037747261709922881245083935632781298612289118345431551875632050035552081052941022878967272856615937190836724215722468044495542450130439944875543194105368479799448744700027224084045608941512362745213752362004426927637718478446705978273439763057003419074268477214191818671260885198356614694792322839129660293763322729501263479647314961757348920618278593664900753480813646755835695072806560263399656506877936894844414760843518265501671951983678006592538219578330373627852413712646037240152243316007944314439804649707474839131237442179657970912927807754594382009981175724924910446444591371557019582457574315120262879690776112982510516278799894670209666724604862356897996808912164264105114225918636780807402301265936842041752179208736872265270646892027752625675770747333864917966519103659247010891812851442685728812159180659967199763112425052541272313328933181168837740502017117038033750457066474201072680671567183362640739574974422854708817930343195019937087592528358267528410868228460587627376403926124907026381944376413313083906973052636052935049490711514583334987510095835980127650579162924443450304285315184918950263677043159891665683821285487357801470910677449546547186537621789285709286914159978080486018667639390328182630409585156417866075610250061320472805493304114002846427164107366764424087346160125103004854738441990306824901097501555687143527875516827431621031654387587046956148926342239482243637576981148371045281111744766564497384931599404828737300332110122876192227740049836927584098686401061002429357451622726229279429897349071158191670858099831127209382624064470756128514924573386012258783418736592360835070541203594299570501862445653186377537466736718795653827365498836847640742378998260953882769809927231720218471343966253100415572092655737265966970591295603072391415620283784956180374662891533943547900992520491867031502823036222750291366811536575072359562693221319137588399425611429731552828295382985100333256258166934086845330966030294136453680349665875399449248267466805077459783749103737011978777797504006944520992469695970375436265874540968330287237232136530958851880965823436473565706001097393949361650740887308297394258861388532997503931675552099030579763491469070107215377517913710827049292230574707912164378217428629722165610780205911018560596721133950696922497437465069071872652550306261779269188652689887284117496330938394264071894567892282808507071338831039598367793983761112410086185571227320689250015912275982291018490403149493733703932076255537260949243416083318682445925199356310072388206693321550566042322656677962472552749959091057000206972562664887028234320682127543314431551273169134566472062327754611868085632418709199247755370590079838777091836128209152607148674453766308293357409018043898326932366979411130115179370602551567101025150542460438451336435003043921064631632071952747253206800682554100377755892641321451284645925074443740373244779580550531417129214429434099624232282498241494375002846457972958177846197346541816028557252662602419076721988916501169146979078760103861375230584122490479770636193712516696928170795097042284239363034953590948509128125510659007324761244484750614855865077566982281189020875010140245101406152338645413612463842967542633915134605584298060101725112720129132256670664008206314767659510894498353508593999373731077557478904828918929574010815822011967099131110528104309035993925739296917489890519882977584657264015834223615501881144126582519061229442091053344487086484268197234479726888369705109807962801706894999456859835418835091934663221615405683683607619201488276155825128250589798732762359514881990268712702957688090124001893294070931073336227281775829853534791691765184543213740739249775706992854013595523304175842148724799134319804476499133422130981826693233215981515932815059229226594793090393790075770276902061979662569636410605641548194791872363467602820445344285612876129802673164136842551607013107530306115010712416496523503038148141156254758520648147368479753391307491609793261595534455318116289163281912755426293911573708719419915602632590013084071083692477275295474904849774790942433957936465741106165330338972437795228128721543744541146478545154321184913622622515942437073090891890308755775477554664945925312713270528883489213243658734534924499762256187656177859856013355511158735163810163369011632541292027178531186506214454032631419336240028359148422804699351417376596486937359093965304281053181168539261970911139877304458320116558607466665109082438830096985691327997183477488606404537331175125718554596366563299241034345303705317651933430635407573298247607078187206386347423237026855440779713003242782092071928407579446501784856327159884103087106884648573773401871371075481564089150396521104620652652133160741674797614657590305779856993996162823933133958937010725268959736808552279058998409670256626017239054474448101896864466578526979764309119927189959195625928624181202539265751546328475297927953999384842653263463564415926778570972788019098904781943268385766847681674361936503491896814717609400707373762923566169594426758861791542414644270109570572905665684962277440477106405837532808349857753603300308273336344125678542764300536218446999389158214525545803997818722471369846230886576476878235577577806046631291033718699986726874966414278584299135629431557814104399486705413110877128695392665198571914019694230705375804979400244041394651081336747868266379761100782647823494606600676082803207474943723279108497360162873713244065944164076197556411433093379428693186115064037342179803256814414801513049464835027684373834559943493379748420125217227270889931057856769863717899722071643059225908307055549027538999199301704991409737057809440861995567513811887535934296060999701632538433379932472768318965990584867030643238127615366806338512935735490803646888929405973917505687046821393592210330147750104048466173951200291030420444625778340419189226984132541306148394010803585229478394960781180908359268250918811961933535590907231332278080068678267767218832971302780414290318077067392562907505531573727972286011188380086946934015056999772286047146851294957219933869794971505855739033068886787045983049699433553826145000651250316611800508046809447478705798251733929553888331917161068914090284209350805072887055702161032455247467108168030117232304982939571312427162471492633216602419848164350125267613961388511769900447204306218433967049231960362384807955353589299441821516973367710899344099332091150462025456155117062378754841738946247898600846063210158250669352146369578725673683891316174408705195231367089317115666285807120742712816231085746114150231164555684991232730637072258578945621042957819186889910451488999307171700439256917864156022035263879864073668227690138487004696737549127445664425660861552130417354095374595273249541742209942001585056124318504863569685320182408475907245226101288198141208655000727155959229398982042632796831583025486052762487043243461748938490041189147753029003448662613686253585713340319616334728479368945609858378579757808347560562725978826352997608001646032009294401225197806153378379268417130955413321581772405841476315219840280083335186315292464701956301601635043461193411629550259085480947716683553789230910551348000645495035275771820799449288796829710092983762610500458698609257681979984974641621382761969087431061870968288598691901969476675646490984813812952336145335270926762747121189036111856317896404337582483947838316632002113645169497308197403916285254542627445647518239679055904131196147348227159154610492409803638188045297016835526290945280514525762713927926265872504190529412610555989158028922358680673106252426337833155583941347836639325607372164581666585699061941500096163540168878739302868590094348839380120008598943371984441638186253429338305898553477843945022694810698397492241548289064113946112600903739248496118582108275341195931698606724421458613361897535820707491748242777323783799013567954767678696504351695727124872425121550539169987603308531042430183707029085976837632245463725907614899801167002305813714688002821923531929375312687298535854326593218591727851718700314489863336973834053192195672503795668980030780198097832140816592993214102223604749158202875808792078828911951910760685650775913831512205780619046702044963323584369876028418957557863311364737241750211776384784586876742620137530722527206019177320493966670031909416600019393273654684068383012985868734504131645431886042637542317297400904076901375874834374113441857413758640152671200955849648638355572376316576364133639544736587265392996498522254997953758526639647798423965326551290052759089738809934294903299383090657329687874575949262927187343033766297101293492666753499369930818255384397192295047259873537834122066799182831303282331696647720207107232302186659747509390630737211300283775260975386803337268489704514222805381463718393663622235006802140712272023447581919307911989214120949518905570332981778456574248392674068907935029178725687500932264726872564516438587135158026190484421817353917607472899728166870485547069771144498305728735574825222780993350461898307883918505266314251695605150245842456798084703711623035271024990011845292515518834155577913510617334081322174930726305101778570077940750488410848241479494443863399125393795598901723644409497867453036234428291084374468066543509427075362855685395755590710387326822472299057227562071190778192791047395881941764675909549715582341604815653105284871660980564018765691236205604636048231030759873557692469909301467794610919887064083505547205299354512455021215731000840016327091121056557608027658163161762327319469420246111230765046927506729118330308525044191704879743533576632828686507117841903037580559715217722898981052017537413925558629384377479352832765148241912375453684809151000944972292615351772729718122476031187393945201108625134026900124516722369523556126357253714748440610848203382219815698462787006833441854754081818921530728472023369012413732815556538303668691704535039090390324460499370559379211214361383812533950931931935502816783926689587264119641094858087936059467016713161376395249361009343988103058171367913434786689871334286592118933400036857522754546851617752899322144123571464865695079357041124070195487961074519083003929857792456948273763769924419039570149593278835145662645142553234079735715016976568652030616180453806318353484988484730605426983716558602820171611182462457482785435180008367874478782378252291612889682012703339072991536599870917119685143753985855434741516431494916827375879643544802004914722148488979310265465552548977529055634180338228461771900906627587808501793266844288367448988750500267606336303418291164103809440638797732004185807400612729811113815700233374965183423556045361221792245869453852532618310792287426112441440671096013116637703515715383348150324004317200766026106742657352873602719655140866340564538733852446465022698673363778615252212122676761371618685130913492135408647851840328767060166993566326273620874679603393403252710659536842414599290525065551219699722851196728313970635652281237479327466936917623389557000261894947358160971743854134831621000007864801430988294569081144917536632322683599805556414273278538130552097485374386886673228375211341796176567190333759046446178797879340657614380204037977836695452562772257267676054957705007946111882311739139927521222381749272711515158381662692580280620636011674244327110604402994372958180365034098369813860811830096801502911490645063196570923731890047441966705879204923246848447876047225585751898530029266235413658036975121415820220901579199703598444657921710823859843611571122119870293549073982563877621915435362409903835545118877131153545041014630235103648857544605476237526837402397140603423731695657774273192030889982600703788489179574788623952716481801361815218865966745258501707739741063297383907106740605415491418931964529301430576204065822136821518080211874428710866076336314294211364590197810161261889800242476623920069993741458452419510105868599951675294811009360974880848330076607342579620529115370365244978680920133000025455416258832023443960086664816067629655401717207463872172449887669321582402746902657504960870917298345114290509843323554651797948890505351666018576996224150184910128976581626992952049285555163523245408234805186104518721450871686272299748531114912840107427203046755793719266956153851689647164968169030591673999084995082229913772275139525013440875098482338821127657918903162945712276156428872793340794027953208086933190429420513486753840965901838302840172332261468088289762722009235614475474129238191136481853937148741169625204306207995221022453884494487229125786568278953250794558851283403772011755447760820017169715028251597300519718247672156078910195655932240864750550930392893951109563271800508673888523036698128616801487155004219667435752067391248661440554442097836264144217680107523618191888524276840202187209432854431542608396473418427739088998816395796556254657432053725568337249906324898858423933763620407118824288214864731177079197332669535432466823652399004047411893851104498715912111545776816357890526952397613845525378522736667358717924896720026530607191829899055065874233982289485607049045441888185957000125832666061731540966315413517342997980155393224603157872983588317070694050675515188779667506185831689698991107478000242966579227430666064107025270133695719505348103128932270045799366895967519581771771387062707903893283392517899033514674751079649031495294180125735616091495872586973590770617866581109272099717042818974262768709461223196198817670959005646384682999665929776250204830567261372177131714500276706426201492747557491369751461701726283398160974296529813973080345892065774652995471841412308520086196609561737929129579904729850525709636288284174705133841829031978938107395144629241455508438153075360310593512994070475908938889845430914143481444284299284684133517835262697184953513119624554455094832812047299186865264638462119631064627971976779798799479731727816254301769240813876265471091572434503088684264404365254128657983792138535682595365838195616220261409830840912211182311825064941789214713164483993524937129159995749974684104150415186562206351532036585165845511289911833251109653459241764138522249718235602920623508451730536704419178206774016486429605501460231695333803541848189159727892077331428379790732635705364804407000313779934064659593283743694478147755690431251176990850608238713638099478120128444459532730089167167645747823191350319638802274252944172228753686087265165147578366318762535714209036637233209583572312680210255202381680549162322279289054461107671687063614152988228407484750701323007946741158751046327030059656806410587735198632443462551602648784549535101308532106329654409373202029588901528108610520623719052925998289536920361732480436213000521523214071341551895570328545115855262190078340625859501074489351087664561942856906312826332629265009734792976864563923222149086312214165958522714774414446561384017458726448313004892720556703609085606300350652736663903316660691487889324088681616913288033834667738087939145540654902596462618801081390243676182827782729545908570066466089571089664544443720946154843156232346586345379989057922888111081819424502881966797994412392312730467628966552638898777367069535253994206800286222725752309628786270700997727552664853407206378598437039138517619581540888767050973393803789618816215182682432809578943430695255401290403917545153466422248188767060201064162285976919374675645782571499482918404313369708468813345468699076502893295876374535598117597511402855569018096870126927074242075111803843076418625072724449926175029130479957130689991352966019393986881301138912999324787436073557907923844755875949610860292292919051337627026436761111566697629581649108800586315902151031383040120551312921547501616776144702676585400171155518313929456886100722027220776217901639785251160069604521281069734759431397774056908753609298401648726250036052579577349145197270764072730011805380473004225838293034783953045052689829687302650633913848853269617831738999101134064613050659966664720427330584562532009333060612726301816507483649457289244893862078632762123182260312699909926407384621088373174851847958353485185676701818087475081117601119316281286587185918597702735433223756121167512816260194759181766486274339391576653919089045480108418376581358677882170360593649045884703545704163282760479523230107414758126352538997207370530394610213651751539743710615935115354659380176936813666597238520910395450980051450328492587851683291294333634454104816492498804966217656839147341948664043324867889996003409485476912251368661862445010978692891074137511119784268917563660358614228936168438533234656160506700018849720508021747652554231907134893910095217679735401025087421403929019903146995566077400544258797292506199322849012912607052538468392040259222395499328028266367507333926405311690118811702082333746558830510558215048352616055675572658265165687378804138556212134913073275992030349262015053247887864024137639215512717502557375979747970883910488574951532695964312323986971301611876613488290683646213478749777484830952727321622413935177061463028542213689073757461755562135960734518548006704355984971382192684418900200791350174268465486645020907326297885662564275214245169639762268774406699612245427849619097321530193057980500164898014444527215186849272564565939547008756837869987713591291827740551450551347446815670120258582427868274059153166650051174800922554256861611562666623097235767828889860379772518852020640813900854312796334500325858615008259654943752632722040274056343422188160421456279656611074505719759998228391680888543453381661099805211268287077645519510644225371287406471729394270750181245702476326460513232500098881252713106219642131889156193981758015867521520019299915382569326753893282882074320548329647656538525460515904944614432177856105883998536859780287440052540239738045920449560138995875064601414957182566743138256556735478141219205535300316202182284935692349032656215896881903312429921872675240601409946073239653393749291448248094906329316427312752141441815614319119282895776273409402638338930252439180188126320312200528385877414998733306461592866766227659181260842427340373713541696748405502271380025066848757349793243566007950098534593463777409881717565782835175044256910241457572223115134147161919356157779614598290206039637323344273673751978244737677941487639195493696500087518461402593406277321807869647782860120855244555061463391905408033721236764826792883877967260045044312842362277582003858033691213185032939697776802485798385933099136545772726828921930979976854746520064982072474615669658080277318475580610107835398481617422681112184341167404667017412584888795975028427652988236101558030658890588996434153734870153085865303792125111325815176933969770935397009057614429595625750039555513069228442961513240235181914438961895763259391278975089105223007932820971242376228936288031293863796972101771369785491666508731675144688474388102619543370541381356400050698882205541938566312699864904290593832683292963627810739058828812652961243150944144387830861148073547021756417723214877671369761438462478200394801944645217347636972201246837307531389299871725757952440389939538693247042803990058551229299085612868515923915320482311343676277636648217151567213379513127078525801527903751580664595531866322411163408661946491645029433599631966544348334975168155964202960126469066455681431429476315082113852580318941627629973585430670070880830942165682503293251860624094091250893314009598830719792634206772086639792402185323205343716355336747846708220470813043432033631190946280026402605323817636746019852102834837945192678725476926750482771783618993268462424584519503818548317031237103894211500864867922569983306885710698925808720775332295109775563208273973658348154169380858342885169965501257016305379266592899372758786760346664727929183297089500864021957500742437273544930437474323701496416010099985869450730878362871304318010432813434864224898993090468087958816591076722759900293625671828521579965712179847130547749929976693157728494471303372581534813073624656483063327989604700619734477873514834290669385856900779833185512506119482403875096237295680951105295827437766551334115019897844240063502611217814065775187500734097755246556116310488610962631150185336644035884831034050898907197716788327127731928441421968719942968278601570416228418723865880100990470684444994104868251240004069945196135689528305922934427452879622713408092306524593056790043639412224900517381626498206181690085449607028711643129427607296906025503701649756847195040655479956647728978556690446548376165454460046328176222549176302067840835605709494608636005219322401760353053064170136603435114214119226404860762544033827210748599997581415768804634245664035189823621857803065712733618770153024055504400318297129744609284457090301724479680850859983798924076102582302247511015069397625970137470799630746517832668405905784590544198852229968078644460474390489589216192604178533719548876703206718758939203892552184965321480113792843751874880548776084506710941296638757355545284403943155654491287296013923036933570189922295442451963874918312098412065989709829803053529893287213195858191413630256228033542815061309252822878121313117580737032158162194997593236197815651771516880200200110432367381536452381825511517638661484973072738461751596867445765240933746694216095362898135288345570672011699894351373550333110417008963323581020356029203791491379182431138016649963055574167269049443673554775554266048436840492296840625617221581600728848970302387864703604251378928453404897280047087794620658190637386914857425541707320167634715689172643906990988751953111499563316407425346429102110232194218272993104379495217271422675095014680206989926251579004262757048714992167010340721809159118739458388338682924834853904000160621104336659494689770829406690101505116141517446925877625548133983826987128593171969349881618238075942089246190208811673174012362349552114518992470580224778639398436342291329057708611708416728673757224673616697494842822052025587403553260806034072863775165849259107398415720117791451588841409010971160995519636748190223087983197749344018222341873640788846944670793633576259297726524707451615397478083059857650268248715563028542480127138039126050865776927070948200331024399697044952685885474580350306934541798077029571922539735969228983252117980938230273165314533799723590910721106435739482304876603317196060262491245935943472390068382660431037262546370760821371107697628511867334128098461093179940021939291248852196624192158180735288854795794543664698479265169991316296599499285761350194858402523233667638361556126096288253013080496155670094763851136985966709584707917833491359269697874581288493945618777237427541459275794559059771429065011656291417359026300018373189589244751630448714398802971398556430695730575704297662221642454827221100191352358163214026637838110687568098656784690819841998034980668657624552766737433536616394997049520379171795162485151226409571779150944493326922963211226721827060454713070432608898414137455894653199812085544430843999516385861447782962813127382237375887373266360190150486910778101340652912781093096402635172618538615609483610908343377093722366713160777406632112347948183156338526032304686182594389554074892386746894268452414383919235266909183389997774051306513271487715196645910615342352326209102804541749399054411043417531585564373315505611111037722942140938985357140624186525806541838190311938926044419606604287403396187431813675372257301964670005518584385709453484842857856008872411437241742360655883604151620593329463463097114372817639347574724479390690546490622927409672970882583080981261542014960255376449578773854438303042645211437672183994299766447678898321385338292207553476741660818627269899558467051692653413096188795629205457905357979205005562054363175633939207930836133091155750007494850234218750614993494415906973640767760946331579821180540461834506393974747609415154885604109217529659161744990110941975213710096538358860870804484596204095910131398344330514530680758136517308827347668422920970139021818449880093529774320379370881332410060924351386504114960473950088961517230091261899779245639007344554361533771605791094736546126319255188986134840652528051290576491399231352237495247049656497786266316848344082262833751781280180858936165258802410093286468356494207486611569894406269246066288250515353659031413399831969957076871739044121472429187294490483452607426044932203143456800520511573104299198169314538711563682028034086365761724304476987425306342529400025289258901579707841350992596835526838129364667099473064980610424980830853700274119605087596480206848013709260881642669718558492985142333010289528155240194169168049828021018563030777046317094373618911757385408008576334113483814536162939199451273092527379345918128831367055509545123615661303446964588199189031160687482969898360333502914772425116556633757018244359637620064297526196134353276117876796556581919876608386113883200081101960973796703201698776834562328165083820346046038348802751372740530047694456653742732451667846689690103334998055604364915445107048698830687157155222862701058632930674406227528386719352826473743217750386545799897856033168272657139400120723075000487364351468192201892770597605302366502383663941011156135743015112211706600949621166065206102271110467979502466621929477630065433588546638690377873768271595164168662655004446297161087546372681466358686257235436478935652206815189466986433746806875824266301319199425176075004254689273307253974986728327681196785811228763711366928811832659450451264478575176402208845305619959524139431934460344398870959847519573567633241932816445897689709015904190433642285974367001806729223558774472385527710390541297409153086292304652011642565977630754216761395608716703696015151560838041332291050962152461303935318816591321290775551484972019231534017523216894744467255963511147523351453983993561945483310709486726059388143199322264550930922635845608597705228327351353234629061127276863571443369879443013883532798279957857977508600829433211833249441683280883022215400901631041409537476544200033736522704820655491156267372603221807466176588727503524162413564449824658727783858620886130822000349161460053332077592001708662576694565934221480752421403536176431897681994326169608299179311011781462853984055219343469919572090338029844276948369435998525351146720194229518110628574173557279837230318820501644911389091911903867872512753636972853776695336396311583484262585652276845977126398660411010691653942583271904137547017258937133443333360316073851877326886079247980959875106651983639694199442164816218985170788859105542166982673994180358779546529698452154873463042657003740856586780024108090335997930384107967069434188928963307800234454736914677167624122624181653608790937090987248987733428086850543057271595137943387849606632146198418733532682670549656668816803282167247823394247026837327493315993439047318733817846550545850712851697022422126734970635637825324170531281135342060056798358705713649171316585081211371760421784959959969089991154995247720725412973334075218393246811976954329450818670375244366217626438662613866406952670887417479722092902217955047357477834762159257419058304004045773798586144584956510187699323982580091999201161437158191785937138935728019890460480100277106160630532397183994467173530812092538623267712451293276982037975782030383234641893240153753240775503455961343080429005367640839356729561087808790607947156128893973766441316645513264893139731429344377675977274761762668755957497324824702259232329317370445926252027813203329651427997020932214058313891652587077312393025798241394330479898011174573382416948187407494446680059873216988768406433261765546924201542891647244709991581305166045216990497569150827260438913749371318960194147742664557744562455268212497932226517992732187648442998662644842536635502585957691582061587503749815355501121115625739768038038836025145922026510442912828070158688870277558467371133522039545504662078692364083555944119722281088141035056179341711637113555105208526491991897940889269351468377901296269944713283376406732731171340972696408140315717276676057887736864316200423694996607340272203719788712292115502362697433410760497187723695689118669394128638060665537843927572796630900562032174683393736465813351624108690864341165242334638807492486122880511239337921846701064177255156696698011154328761897719421338184286754249119540795030946074212790839655362824358421068874964837552973019250305340959558092617462572764603091192529358636787536281721331196630266860434921969384787897966228424989820956736384263643039233498611087383403813036198213289536040373180861234570329753659291777392167953669000927528514700671114929944927830575052837714434947921055293645687129819124719596817291519505467884267933544872207175250923632531990741363475185542254048217983462249618993515459339565931169951372888045931909978435554275490936853358914330897578991047064904533677316630808041539900708443623137122177506918835035223335367417630144531181851204101525296706088299346519945267515123784091577211818113916753252398857211835853969666277355653516669014154120240651049025077115535692131285448227679562544085897032753124057732154946027286806442203815821895763256420497717131587024605619905686199675788838511661272543382331780850581516518562974896962217349679999255543345322121070987905998364203994870525485486802654858859070249982212162078117198053018634181894265030082709560824547145701759384146832052189445805631231294910021720928727784296169728933601631779078149118955983696471556871982522497837496774442982564175268186904612030028108821976952089797785726347658683522232604299572950236577083197529689819751335187434831934654941614670893946280883224837225467869338763322522278972605245234253570210470525213318093146611059456529821505857339164699720572169368923307381341077191050211412497973656997306176450628883605531192488670711444965191376708247470250965216305433337992287455656907310058887188405073808582582055234066449445309424695375765900577786288874316878040493085167328228653016576698131138668235356616025389601891694504828040777885790779401083730407406320280428206315869298903080470137075871219832659614206166740997925261010793863014105961571227489401513279524229798449064718171256763628600190248461266713561346532243776690916601439555153723839124430575144412664974554436428109104183428449008345013206444197880919263412621785032620137967668957083109384786655816154214821552051834661450830597936003585120575118257301126379331931667071505108291267780401063684123367174449549485162249371998209863603837282516991574486020026846083756008505567146294109643150990009410736905862811831146411366449708350393677830837930835486137000456262905298534742896271022116248729262342717604251979987740220788533034375447786692461844069280733193928638162476144233952574374814487440451894855536709104530764589140090999681923480693854432453914568178459648585457939794194440451216572695194817589949497636234437809126203009017489445112065096533711144413377834474875083688587600253947504704588615979198013635885557513077567684769610944592698260805440980538605224204185602940511277932865683469572168860728098911708080355414822300181251504106335958128909995777391609715817552816276904689161139489021724932921201975379483485602053248144765829419809278529909846741980852022622163959347857511959202117367675057334684963629815593881350517522579887590987307498909954621023975969473830235390767162105847983329232393504046605007130605750171056212194154785768207154349206441241394022880813822345448554375528088530720299647524240300634593841476356958277765462842830510940935065989359133737239821846436008064543067677880270562390824546620725057240509055824858449716499224938317150225195333774187314185415794667641214532629384385589095224366183024853483970135145752024143761455138403526525951221599805421173568349172906425515106269897638720012993928284692580740785261462700975039800255622962673126616810862624799232291390710832533530515951626602516020020869037893738170087552463855540761109610939794017670965271940645602761992233088276653906495181378131210416163130667949989851416224103194668558632123384307157945221784957559342474003168123479700069436788154654803176785167471399074339476239754555562008704225354065943075161675889456001526895035054916873726558259793421863261274975624209890780957597409137128733440459836044127514675220665767411922247235631651057204169425848515248397157010882100287689209019134650915304165530476657504282874461294948728120073700575872812440227985058055030108627398910451748602321369497137110068432900359590896292750726383167604822737531073841426031625756728250133384617997462375857711808201918084562719069384233392748810825962016870738814269846402826994661123588045564429973006277315221228653751813932743561632981912285152302020531262937536375706303043350228812952114501580729222750157763080976422392320474804564251136037428887357323488503074571397649220345529262165242087384056998683954889123063184955188251067670943508222429646825549818016090789386405646923175288370393962265815647926098158502363867894976919179659683739285588591350986949250215735164115487862218648478784585796447399352445513131510641150928183268555886810303729577006710651193798416040408060642316707563384185563359943184523937676432383774750325074946921515830704196938499868066916859127976394533889787487809033140960713233850148580273793999692744694971635297270483627400154384803643305266245494427436430561633217319329615065299069719042021869831624762051307090836298507901903250390756315751477635372430834715764561969158753240589551177378487933167140563018063957362098572911060460749441235026303562337602065935769532743800007573538045658587190292983638291028916559011855723786738494172824603851882389874055947421567866068627968469185013357665075491515023518598718213475197589551518374682574812948396585987615477853823920022025532082920926030639853013981497602235379210507457225544225825645617611508720909551115247267978873459791345852368808903707355354763955718540294546986620904611961370095148317358936273079788278190606526616459688038669234573601961752135519838922195403110167340300131543355024633843995034499729807722725848638747273251231406724556999311958127839730684291188791628313185437468912298205063486820918619863198168913075651785283099731851438510694428817409944480176455610319154776832779510980311711360697470695574069110838828757759161135912823058796783857315962396899637733534754455571159738317423878479820281032360886301341743085754321801909566604967527893552731690696498266750594117851910171409724133764857258595230531590822330001796123132055342594867300485512136057087564901092095236471967360580974880501570031485492329618504024396776403169553420445137713316750041646452673757310979495972355143224068394364872963570918219126097191015725627959959841545655124559057632678780956302998152810501897383105965295906683995276963037468656489436648091590726556439781080975807305028421989337272600099947315111059930948966100399788478925510977958583541614447242047339844020276833978744318923125347324504668651917616080848985126898966708638705928875012314061128722172773265071299343739949904381104029680451073930673695112553650592449955479798534042589209258632217493180702774842202253947708251647671593546213156585925803222560312658900584287867126842169985151995235410937287819394061124125761542595344961029926657014323941621393014908103562561380251748024349785922643737674250729866310461603637974114933966421566533069325252127596151753891832444445627870149759731959764593463689458288911727706882954258405185766029583316553332655951079538211760827647958238666959792022763640769640228862228794125071754604522210226496436792260193434529604166547422495263830398975355938329400954491016641692751655881205804589856061882384751127888737878882259275512110866283535349503983384517523963598676372252949318870437219065511763770908219146938603412716438912922971262475364251232918131974903150916694964736160297010019621178540020443259992768282199960128375729984675200628396497583782949275769107575156526617766794851255386137387075585787470436634850183384751886664427514502780207701093562304674794705594751025464176772494439432068251019736229348372371710040585789516129735978953918717243839093327241202124725264452859627293213517165549964745823200579361627142862556771391894152141618695005461457744600621752810283038415312861976087110893246610225798365466329169275366517518250654332530220575100576746730185481476673283354171518887467580946254856850582273130713058188791348560203244044131008464617230051015614509176688771134450068698240410666245382836052620952433531187415751414566164537639687312263069402175875249516819023388239633326471785145739915260420112751276801107791058970588567383688259319873079813738736125850344614808541727688454076913534055113709456222082927437577452882055464770355408684021110820119214057189965815074170521451124273813434605267150858904346186986967905196604661441402746693539462512527865736695803799863810349324491364425928989397118272164746151845797521429276819249996468307763568246805005414812740910798741659046879188370187090886174362082104313514156675646801729402246874183146380464207638848600200219684871540843261632704768733191671706507842466484326589432756042937612444663270741473458441461485278727957751832317029547901033803085609185308193959775978671494561339995900950902796775789240071860438932288360950564932252116941114025098002788294090529908857052014487428827973854669883895679549945837020737964045783964533158013652207395641624684059814387352873902696177294190381066365184157671426117381135729258842372944267800675777875069734161748720686933764464868931247616521444517733640432374391253802218634702012699600789405001754982850600470585496253408906148535149310593535698298326609745178496045026875975735267409055826940509568842717372673439230787151149411641568049589721278712468204742827477444400630207022694086065550513554806724905734811359224014616540462802755663028672206344409951169545529170459016223626331573997745854198187316886395082951625057809375898514438911488613159829411069291055518937856157835475369033287297505774737539127521460923761717519450848605894901018112381865851887255371917502290557551369270123890934214192068207481964979823425270805500817229340422812863918892699300636947842289745602740661942110459164861263448091603025559916495160235542220911393658666771579685910360838709922619884202426074417290904173629136947177011304561884113974314011369889784008205162826055586740652297176171963154947154736744168219726533294599170218295938113813756876814045337821781983034040565999916072247520364638685938517339857495780175680935528784786706796118062640163638249627682961814736205519740521134904437328308853293029026782154590463577723486663230637716097831462359818990459930082079715777301985504984723996097295218478282204822277116720975158066929370219096037405793003444004563071387825093045898634318359102801258610952084672236519563717416701930865303564383267140009686477620826685225157400099648800236700821988599180345212312705419608283074015103245646836485840340430045890314625809130029425224770696664440410876215779853345740614497131674355844887284103388610400132490941294183550651691073053658780566869654383862934313789921802481170980628390357196361273606685706478752685754789185948131921446713961975580833439176586967673496810410634668214058128718546226944659240162810172527430979502774926045766540489512833530936570029653596686216472419984794795012150779668486306927364083707590443283854561564006583034752400007599098027746182318814112149238126355799332592274626807872734853023272160740711469717485668233277659127546906431581809573044009839805429871492365521035093337614871193542913289813819725972360414103968407806820698941035728488336336354549439284294689464949047935503367312151462081798559540121514091553315881451266232604939197818392441319338702193953866434442244793446027831772866976066303998318527977414706480132535392439913086178017890259047765970848606921086307230542412373161569828781557722555493086303600601372421902859587600218731869172878906506962533520371618365874841153130792803596724979914274707894310307337632352052158226797558563834937547510717039167268241245497219211973359749011780814578232661916298136153454002941448350126213700280035653279470419476211778539938063159865508793190302810689124215482569217643961475770112226240440417676749117875302786966239409055090115251772087782690767446227642254617995896836870388103231154558300065007466576731462587949720493229782890852131418876734200119079765517036275911764668115353599768142080691084248870756042091063088612233619907077505412071801725456318938228398984546476936973579438823956757447640379751558623395531597902773020211542684307587239752412759013753660769754044079248982357359046206342568239868121245267489584650879631752458333349598079467921860963776221493599829128696237570112856090516093291141066776429438973979857968124520835744612773089927587495720125517315407798960414768183087664708014866197466924491610315479895459342893115909749170205783737381661751764314286157493956734014168135860114689682414495201583952761277294073404364704694056138580813240576297511120303368706461695242849383651575561796062284926537789163379842108657921933285730986070264367844259031759397952554447384679934148444502548144551465246748949646208945593256585098098898952797549532129505882582389003085457044200240094622846124782604938278972326490572904175140785606917095834865291464412123614127049826855079208321546637561200959203097766325032690684214731644028181968165607508988376331027330835066347820471992690432177161125273245733696137041109400981733941760047434726350839178821788217693042440945051143369403806139695417870351394547432438646789945446079358333171160773236397395297232459082428219944611013338289190633632478166129374233474221229759841724891196928043686521848357987686573919792161316306555919394595760696087677726555166680734000802246756472138170197637790522580701187310668134884505132297330900682877192988179534124493023978286705551290087653518328237928718681934851827455733436772765273544952832699792027878704134753485689971049025853544844331188671069740856290906364282923117561437541551455296780939929313229388947111428111086072985489924532253823156162844107173648196826855581427766883227202770804169792194182553219148600912670359449565977434341152613712449537230842912350563274904294920675300354414802486139646258245894080806852321140624724422127333782556994977819832566646029885591742966279495084289144775554638742514972189922930268316933196130315273862117323877309795837362902234131219575434762327871017623803549901164499975995989742563559046825416907617469964926272628584047548372824558084567036147030242656067921569549182668887035419239201275705541597180016090739308168839003095362417858053876817074241926437062933308494497974992684902130450152886222945141250540490219683586698064768438153512438318988391862008251628364401041008053446805700311373548534799196512875851827726692227629129122477754046629851380045959499505965840568328099804148823354548188791997682471837189512788106740885509967000992750054226028076341297853558638593058034293866697866523440543829617972775477874504863952505236844137540091312621836111157315531653939932040685520091268031803254289752608501101870288404689846858159742881540647110538786103023865835585770501658821204013558298638631805818388879676971359046034403749269846315099739421538732459908466971449252956808611308000707922094641126573153036125517765293210745230705714032396794184945701193097182773139611021912403473624035908135630280328160893054666605503143672112892863047525639538636561090474779833178103746270520683613547245822815631468254689247616879318833588116807041831270011634536395985597063796436685429494229590397071424360704245097520643590096120462212171525319629181622941790080623671256463297674861883854329265333083547781367390559559594876825321423116930714434743699600355295743563760046663123394804818293223810798078996902752179485777793605784066788625522946990995867214451759090898383048592473807550681341041617540907407977732916588537125205478240368067197073563328993966766736754033571341804993185771247943816673273852216803579376399574563178716793032570492691094659293282572624268917998816919824778483927612995415614440819630553722195977909150543629706911024957898725451124603579584614522681753508038962899249853296403721912232184383582125481177521025214249403765798816906953641218667387591481562214069867008714349054285798585627392292867808003692778149886763050236900585216760226449931811384032301420971333711210988340031877747872670198478375593569588864700479973604030386786102718932515277752377317348288543719819232452509193856966800022364177660305270215821797961468055016856522782920372027883676062768036734377019676291649222717733866674248359500763229161729224278511785174843148912732302130549239376827352700793090184627632560478565492405543983952869792994636334440594676538959482827973089001991456723840488389925199866387295229404949072050851508010848854088250104334481488842889502034629228578665308477093298054997950790516671199934765914295742458741183796534150720900408190994191478989429761114255795533449707115219796288772869271369319919221952959743132543079271575812363328521187208503097386697323243781361204210724442296734987676226968867644545372429711219929674213430108152187347607258827496129786927808750627643645198861001034315255919661333680825950227602473504209693709524347204669182398111866178682126610486327228145244268303544959622508052979283219685145685898767677295072855410772398096632680340500972105457783438597917948809212204108024773210429793004517626413270540788814177270066497717402753150705370687258341071878931306769855805668151296164222310259910878915242093805305791033464816637804488475944118134331703665376969936207755221461767288695981215942020063591317444364950056822802517148118898791234410703801289243670420802266786007536694947278116597757921434582496867625467350699466082996302867895241432137807238712358914387786105200601263035942593143103041563237015491093956846224766538734661471776336722989287225132782388403508663581669248140290366078147312001227273918369739754346684602084308762492333402067193217169082185101693705206732024985640827667789815908946852206833891980647020939358694225329817290139557899612170721371098621077365669754158339939671488540034399114148270140858711985117765256747094264611015949464275201577943668365994238919724644931819411202482163368908213611258674349542468027896547796654209598506272739344640935848248239322751760467318562435515164380643156918964103742829276631111306947310100429851777863470738461075041347099296457086251648872744481183495216960047742829966131860359100932741117281042699786920240973940541737732690231243595048907526598909958284016016556511262439413662322396783466501374834857684199701036602107097637862456469892727123020061657668737626371822294652218556827586907846202360063745841629351331904452770040070131337116032788618282096505267615092051804907492845684813370494959374915749077450097210848304549418008020437992272328939994029407087557568190560066268087392410971845660094721681652664640409568263565773840167624972495302868231624718650870145960608688094058631093808649076919615463004970819772111453658109234398220448943996766235587095412979528806114810693199157854802639237415848899278814194533389417712937381286641680858328259261212509238949132237495712881383473239908196445630817168634200796852846017696634872082387030243029469501025628846654351457690545764363035683400392994241018177496405185881041795676229249185697959329583675620602340896034883963181208595487036557018270992575097819533524897509447168172445526151508430934601830425047534362207067493278773404325871949801167664089785153281733941833024010727456246451202963398795778394076656865776308174052206459532800514624605030589047939165723505988306153761665774465712441372222159264668203579566178858580227341496722005922175392903939375414570605385218789550744273033191174159112668366980149116960215186528427433777482359942319809326752496122541568871947993825552550438334123566848953416328140716368261231473166009796600717434782806253241458223897574160252791517648721857523566117356642985555990505516372033759236374344239365988173818877561837059443294863961746644231986648350188622305418021403199838067963827025446850300937556004334470789505145098551924028837788603610824907692601032255847277290860122296419250497076252719644892865733509431832351986722871222632216494027090828465400899899177722002761005860158196691729272026690529769084887213489457952805100713557869944987710917055506492510256445211835625769512706957095269632656776405332552421842204651260118698216161421085536472943221383034859590613262981401102055270231804291095294335099967927280139519997640576216725392466118966780416919978976268128113170174077043712839259202092722029712872392226707154439082567884471506984501555649100434939519083473718655922768746102154286857009963753301505662528518988159818104283310889617630284849425326096045435621716781294880207206531021520371775902262950235270333014539270917772767166374708802400604084085913210963798495255565019474837520976378821935365398974376313284926868312380414260610316849305273672706409697653163797631193220330370572331301050185001749070844075973284535953448477965304111446260281177854201630351730969018943137524747913812180701880327927977648595349337540732670972807668570238584655413357313752163791184512282155611381358191509087988364342897414674035351070231621834712829753805210619337542775538962430593521074068016200973894626513090623325512484279857396142231038250110792430507876018222660093985454745724029656479535400311775937395873626754722921366052848214218660528246103288381121086816565093354895910432281335483306170941640434754110071372558984508567609642911249733916059204866180273648794689078962260753230877955675419916696684358575691589411687102117972285149895312249216840306197988372701395431692847710508063568720514309062475668863201618544757751839031548115274162131015734247451909342210442840093620801065700903469143758835511435881069125052701640047148174773443064208337747273084084077874481638165432482631009543064621722358310482200263311987741639964218424075689027807117754395727745063112725982183464543645517304136868306317806994003061088509555098349920114913259880216263351916133228151906576737600085240887246812814979693600330019487083749371985482568771083230381024732747034366172567899539975614873497229104121969945698247780668633208519687706680364957954042951860291651230373044946039528542470798765486720814173686646265407248520456488824480779482545651121508181710712116478193942295140914746929856225733533464639103488311686427163661108760685259056623697883787537079532160025767798711042726643144748666797960681640291128509233766954226608722867670027412098433460781968858797284363776301108236295640920932511052951513806380315014473065969224097600372737038301049820311130214388207455300300013287815977451703926953369098938568010808281539583798302814657576710709682321729891148070297840453507973076390492165160868221857726626055072807185072864344098852902029221861832547816422183958999362121259512270243721031261690459879490058431111169443272817895380181968769909674286280301909494304323085594540932341487154476364550178037545503637026503274420756629063794476862155552152800211367767276405443999049349428921279295578938198581104977842133250647431200343391701026639689462427707875349901425962515773796871682276732898436157252054037439320641688354137350127222057462049101953167657103837058897576087629982162727435895268288905308556493625512604599343069509216201818740521428775027094809089024664263897843040563101099122309648039363974686351096980519179052493320168085922706971607191935325181796855203322349190996733721984387959943981965430586175287557026675387580782904033017455305819136350953976959087667585413675366274270216766510874881230808210482078632860182012795999773829844812235925299487862761251257596993025063115161170992682544438059718818988285552460536058163052132667421583812928244957375022713426817303808742362567432073801296973703303026614532718146371371634135372958528680676464933101797755838354383469239996521229502811090323069450112560057339293159240889547777960738076601891040820252557613554627739446516939578025594339128749793190157688198776693754293448274952425239708601796362825336445324200550678323591856305059345668153554951133212215940955561313603860129349263250039661736097162138775162288383626692484901652651388840040026924139372408127620285360747009414066930803596438260192382785661263117945763610571178208487972951145530770297859389865357390455909017672737910349440912744113898115723714375278917236543987674346261625388014276454373216115303536653160374424921879070896131986643516240162319869754630988275695366741750054717606279990498861408517500359477092511556381571478343605080210574521500262209240263147426674117270213960555175460800865030181117889684055419576020057709883759848711288399580987599146845295601629919401902613709258831763927214450787787979784919933536414832186078453938032003082891712460037617832843926424081892401785593544307523063122479575319671040620267534135686571860665894658838000399663348674085460899295175636215985865092136467184000676845255278880069191883228889791847828632243145319844739427726005025255410736283529244005708103828277856117369826324664981713743601182065441194883487006991000001949921057872545710956925377593983274609187614498052356702705791037532080889661376089851023785568059756978043462210061735498260204268274767773625995639178382325971523794455054209771600972970975634888207585274681803438671182295931191997622662344198215895532187927616559121583394535844351361924324226026353516591075535892744329705148922371640968468220469488766717759415028432052730935052184356193250560585888800132818920503872369774794763596395470275406498582449438521159977457443514781834481180967897136791360169848691263445749726338011357579992483146238357281842225143171081680602429673295467725730225942465473919304538444801526204274763849887659721871400884537336251269942363369295847922484029731729512344505717158097780610179229774477860789414230437289709414234612518977176596155923865334013357530706557233715070841695356971694672831059115385131862570525446055043177850037090172648567216797313092680881412550626101084890326968705439433733251742657917300985678241266634517684908272866768609005856544868880840143330173481329924769658871531692682797746545223039795522055605602578869876751239911188354940685047323500736683057400384982151279719329973224468065422404404020118958661316870362069626969056027699222341609780869573892685266529881852135724484409386786363616796806694268517627581055550362595821185866450012126156226665771519059743969792365151273687979228747491000830011880077335299445910948914289385668097123298362239670240591081943211408625123138502727179016364552541575895648756873062471678602702968097728064740110401443148762070100208302804892633333008676425446386638222558071008841157422986237896682357515277655242387916759720385695485966888586734838749266244633345420445653642933085582149983457562113221432417837098444488105279432517213280719316125889172209687707018673577908447835123955970060506783896835096043279452124494557581903092048847181261806163144877423450507859572583179268079309283315131262327202255219043340753768709724648114004805795386918337800488148450990552419516303218149299432268920732905700297909102691180336441800088675966632755810963668390816025952636382582119300412240657641902329958962084903491478746888983500956344045661550705944192636346302485265051816995809706010383144482055791610777676515225753942294226451625564249661133433790500837366218890627890136593466622992014163174044785597109664167566240914713844293458647636796236362485312368536859401847847801779733468721474388744581325238382691362723992200044485175022958618686490759018160738818639253419485716271308159053152513199940245250396900045680192145576590914447314581381780185944146894565986149081443152379315008018940762652811714055131579357633762362047794036779929613018259142336036617123474562208779672684313861566122958469994752824306338839445863551815808061095967124717421861205300144745374240897888180221191794723564429669160358733024582352541231630413819027669885051091468773343118299209444024418843618315321999203702213134068739896534880128199965138274300220439630944012090856095263451880520099539565930026853832183434082162957043328758618003197179923479161979515644779222825418352695952992282045363277826375988188467695217879059294858037502717057704870646835662785818214572516971391439142004950716900954536588607754110542056381885147462003241040733079540488218345939974677164928585184591438914776464142382388936556880224350735909029229089479288700601087357436998162037174925139398538584327733934691988856130396524671113137850304262161248437750979437985364979847924179539861508530255537885411649237696220320782482712278651838881507467285198858970393132752378867683164288515791900541833902901263946886058350810132504345115019912648660798075903526146975019237218204855236990173462788376794438463899977537316509439049253907560553103407881763268254611575719571048501642797189756893177665486041964481963664825244588847333841055282861374519081522743313427622921545041240408649471704132763006381962225810495238464803181068438581881092817325283714451164598404031208855065551217097378693601522147860952018451416284161444128352900392094592005011610604701750305682878444923081184669965773492641493695139984814941292778801667011665301569576357659965792557292981552583665568711789830611748054555991762172855864839990709866225626950674915460758529862262908350669466801481806933748816571024243810110813621286918585870606878145863849183665470029847241764024867890145089295386107730017057342073724677497076278475591297411383990141274762904688597064140193977576722014717612661840032262376561799585330916235016509556080851763895457123081386361547913388975076799120065229296230357933123812547431078427175551099824323605111743379675644800941614624175301465731742500809171166630429945815693898855048093132119789111782940420052868813761333091827007756137365350720491096140438528382212501865228915734870423143997316816029038657132178422390101716171543074648589315231831582880830666197328477872914434634528510921826256938036827333758014248820839637803619855126531270849410395496020393030853925651478908204687947238575770005066690438843377561442113877769620213455942587843560988254239817372092656548976656601390919495704865846361488527886298109119791529743298906462440344861374618443815859715387212341403239443620401768536982481095640538097912688675871213155531573376594806657733210567365957450871394687325213037959151024912348992162988686978559430056202237133932619367781545902531103401008645497438987502936505650254313478422680122681907638208138908875200050581725419139849921473115826896580830178343597198397808889120797470474956589834470587632981813065450881099026320867084020721621545789386189718985337745826325229722074150520848506325669499286414374592440998802001102800044474268084636118292853541292003663788060151242841782157309080246837375113118728727925628433147708318019803721809203901432681479159714117819118907397690796900385986189638831840237235431005198841662543997167642657358233865986094927594948847030399257672206833330588326652502660265361585080712164233175505651345407873950901713777186147368070723933824713808074411504586026156053753916439600819362054295124935946603035978959287418324196304092046148668116706632996159627052565469542049500124909369598050653524802473754704633219366032990602907122202573088480932295209982426556683922933468170423359263554885188991293937765005910420440402951738743133107686453173554610114587848744445627013358890411177186287450705071451119993633095461473179085911250337573631607161791875825897591419468148078848741297809230102026586703104305223905596387129295918232173512980166483893682866156134485764380248683176253985630309750998497189409874883771411926107923438423126762345387755016826715771997839946865920170001052344861782282570359554735142334467338539073526271733602346670377450669539782654877106736750456966551493436759568239272109945380649868327435616686187592221932119568490225461214981351922579989857971913242920049150008826738610890357524611513399170247586097867912550347022752288825992926720320843574224234094761739744992426899807111461679583362362648578404324935446648543716040934223740572689600570579947866788956125849084068302887060694402959079055999482908474927216297729142404899858752680275710039367781508250323466809362711614908245208377570355663590549369418082222221310548613703109428445001081690156584584007898483492743715805914227234523644725602225940396406729939571431765853178131136588459014475447553040474607288945368946334937356121979463072800466095661563674891659164846063651629776794245718244310150677354534520367772750460239862393251290696977486728256723504111516994948818968924781854792292305882453415091651426509838081244241575409302666736005259594907106534156607685189198544320840292343446155588852406957484711222524909486561950215983205044398016725313490612033758553365025793849388458063968111522438488324776707358630693447542043815026422861580529926413057650653517888912537344255248714316170849147737484484012193056796330401534075693466831616728396546334549365682729300815493641080377177129259964676663786753328857133787611135897110481683052231904330871291788663820979948572405486661601139254474316248550037982228555987574545825489573542760554640278590519012931462433232212445404812096563823465827258437801141680652827389282042220424513412480407805134242083813321548712494447177931823702057426415647082105908015953855086823208021031411358236950486853170597392271004546357312798166802473727910548898158651321697357252971358701882548616491628965054875896498731011080356236352895463832309769898412780534528071158086273582180488213445590152731403798970494636113856234672377091235469505635707270236944081490794094347589764436053037569043677408525649232999914149441892713531815610266827146386268644538253160471463108842406481239293101348244360795829244927459586814662712755521655107356565519978126183086538575728299979821117183492861763798790720391923494946342788449315373061950718227962562485766505368114852044764589513900457864898366652177399816100395806392160392212426058669852734184101997295915305752092943032095782160376686980569347317496589272493777490929380161779460801538183876760044908186088365922415105593516085053803841256933242530089936666116047902361678073288272907787767064161499601638070827978388195837700415457904836216520639312025750545600816278869843332753614354869539740300651546477670786300791535576981298652646782222929017077231962705710408031812147760794728826240608814115689276048933991442644111748806883027486741395424630266752203454407721345462361907180879461938835476714815885682687742918626813054126738576090440012652071962029859895834221353137487004844698113550323791367736230716574531924066905944480222657693044749505881450561606123971283366363450929994210716601493834319225136413822083027230915833367025428716753009035889335128971812693944395473854671999640646984801816233464173890681820982077657328246836299038671642248344113747451523623947326800395392026149952246905590713250717793964637647657585290828046318926899795365313756727438119862718295563770313251586582894612060190956469271475159648517955163064936753422540192886978998627748233585996075819125207488804114955717715128415173002081655390998317511934896757487028207276979068560465380590297466971109365214550417292361561018769765117057075801283167258167954170322465889171760954257749499959165619370494987923374054940258165824880327090091992243459455462113142265573024360658368950352503479325418657628304204371838113051180502064214745327828866319000273190727103242499948368735430819609653743405940732171216168673195407793068639596836081236842709517212380890930774168697259783570871056207362692060499708668402944742545072059581680820687400814198016895792579710556928434476601566852010958244628291678440205911852022412107611283525994710944983964238001319633948832962681201936949013954226700437356439042596171256244192511332496737277792699807619777335147401728429708963777668880055256770710667624812021319446075393859017166717975761731372745609800937636968606391448823317000056855825913527909613983447347620044694457021850148364997405160232975304811784935352376573721758318741072164717172816275377300486035750211772563931259474530028017017776299883808693913161042723084265702853822203160263124704403513223402314788921840992950670786783070977263785828458255838647580070989621799829729855800326631082727468632016513114996816093858505454798966915350135942763374147790001473316277746865352722313799001333077924624043514030694910796150803114948948863443538880356711087749589272726023617831986791959462148287171904654115864966317531880613805671111702533795454871420871510972950300299966959856053055875992238764420651133204207753046439868734579192398429444206013513549859967508752934840608096874430554834952865746213642470507197897518961571258858977862888077818690935454354148832653465677623412243183152494877362995275883202198533898308912541376036478474068805773397507488897801304197046029506545375550245257893852349901403106186158574949122060419010086068132981546812304745763415023284876177481795451939545634972281854739976202509995883834549199060554242520126640402519682790937103041180266456938556637546289561183187334781194003937901690045524646993093225788997437457539200177278701511527648163938016866763321123822242824479637005398780577558847244981942057389371853030217465106091592010087928094046469544816673662624202403366035053274123830326326549794132050879114047175768849165173564788587212008004194121164849923191055967139109810770927884875303552848248769932545410223047980192558804174491707845986812253712122528030364381722435754292621674392213206079781767945174187440271300197743007315965001846484939607245697914191921675311494472627759013293482208591648214789425212394185909135507867958629777283437880125729047094172547811628509482044497787193061729635971641410249991695408221952341950378696155059861199436225754490912316458886875364860014914406299470390355335041251602026117606515522885190923261785669273637567923785103005188048287298387724118661743142754447585684653596254412965650448516367703952860256141159481868533266866726546119765099836949602309393092491181825252660432780471909999417765419968710355959093974160899118988999536620758998165328718803530679952430927252064734399042723748598440446441024892607277575418647590815509564005050409263141558016609520891123608043665144249499741596537923955730259302865128693695621023006481095201839068328972769549161913459330778695075217330558836692309834272256624085928684373680057697953973258803659281723159482271862860538031869497342761784439042009711575789636656841535279981719784713597503806220112963469564217905174814746710394249750242575612485558759363987056904271485688909946615473147190955090214639711952277694709805998535341815693130978901862332855258936148462134487816502501162612806652951827421997898968365579947217649403694014858225013388877712164806847485414758740918311396938241840411167580838040385573308845438826227983667230119556612552382933115532086300857293200677836363526287120977118508506188982427298267762227835807648880167162891089260479697571176536026324020384235332455219295165656711604055536484553469993230703433703330623330221376333297441396569006419729959894362699352071950811632011681786193165788382165893846988644303390985170436642650204636622075294936163145656667264444032722821229329152206868170755372402604110482128801103277757852434124502982350024919300006450313501656348934215500796012788516218999475673509142462489910812133851147259742461161176578997278879941630346864682204298001118989863001564687837586947273996667944169704553295193993668593503291298570719790051261927891605488114872397373892849952085761919140120402463676014167801042671002953773413526130538498257551748626326840574804418227678666104276719797926277113213821217511401535228514289878674670322706357364129886096487405780803449056836498510696835007161612128802541428452149826394778090337514438706906348769247826829928643084485991826560115450428894399389446480082332697705281321138963842970974305230177746383108050775198060549134452485446526859780680930010795222934076965519105795681211661337376408502554927167932711761443059833332173229063827317607381292851153228861332553340103262845992779507497990343955643063810464415879167463547631205761299945301538511010491864027432237305013980835953654806429959875573147068888223236437312001808019359412590334054800953794732562631848711288813890931846803116346530847829846961072366255227117338152419119968323150569185378844431597311510005138732368392387198665272188076119248110197422760289274518766129910730354073083306931922472890177382249218078109450930434601450035752973363669957711677459010006404382328604641872534953284443810223500219529835900101172115040566635238242730540465582403922736768909163293654866215863218020012041072757727858508143796658899403634127655834749282506426735631654737597538151212193984196374368697801634276467139664162831753633327064119544028569751922411623384958287975578439482731211153274258081480896062753879701517194773677613129923143434949114363714708044835746123568774527670922152695528612408796126546847175266480776001762560329833492630946130181118529497785558640318579676382450482634033149618833401809383836137380361368377781202337769966495848988977800573702245914446415563631660203144183555836213693068043311008349024653823329072179788770108904113993879850388595920316068477618608505179198819758459265476771931258386995424866855262730057546798238128133401301856970538569650359050659051877937520578451071066298579922541976438531690843290501149785218533582618525436751463287350294228675771114784017094820562024691042314425864904328303368132087979640570243671964862292765032611222790469022888918282632274897995256178282976215163102421130701903366178966617359175716388519292209740217021845345329219035684698762874313391882480475041324407174093906611463568981133463536658626089262069248709729643685260327828803466743832583289188894001405540993005546594088618263529533118887907733843354442593358182664850779447929253367619990228784295583907690850399419032815574603258532466986476751028667140959728831148965643572238734078397630454532839347704792085815718397102979270597062759282187217016514032398579275954852293195790883596371134975633001717383101377941028738522004286175026361403366357739998900732867905010429821799257478121299294792179004359004289714766179396813438279699557982978858828662054926924307469925399088045723227949332466966898358110679217580027923923570681696824147517253065132449888743973744569333002137822016138575876740063420160434578933214939017250349406649158070454313099958613869906712438836021661873327788025045944514234816404349462355624630245647776125331940064572723357155759530664470321812692078769525455552120718246923785853372598505901250748590951715181823861847268947362002887219353432985349250535759048741338617143245211599895932940730414195632855649299249920657121222420069686813555499607670557651988822825889863025414512391741284167311472045282526380652997784977612999332049204200836815758412812363032742209465795299222429845913154259999093402903887990318747958878710727538890883897410216977282931331612234266608375381768616102147986347985978697743780524462371075574664280980306094924854659922216354613352193508923400388016615140228141718033286987806758721781682024049337869867880781965017613999383976858047936555577498932084198369922730058494520197046912486898618713243528677350126221479483086996483028446936719708596547869603679486522286574482372216755466799150168179365055803556753350303085095216325918930093450408480798979857600456306595799211135929420718389824070405041821792804734420810331596315296273289379345786126930231745462195416939126606981136709014553345226691044865715269967714730418773565177950958064251263205741523925272153304183121295366773242364314956440510695558488560803712063873057076324266742111398488951906342729685265620015900915623980004687816926374570886835926642116451989561524956880625514488525886205310245713443482653381912583468990350875339890965260691742323248797924345755673257583212181872245140046516223423015673990061243929589655659770763964509330206377965653583650313870032895052281891783835466520454633609727771701431775140735257559612318139719963569772439799512417116634494679301523267983544572370256718211117660570977683902041134375519106146763407842891251482817067619852813970627746562554392705851496655729311983023577260225047846091458759029237534591813535701288467761379445938039325631692795147189851130027996362859816167445160363176598491327804195009920532718470846684994170081576673362084034875720894413338989949058423859331551166583430849274449553255952662304986107411547084203245581238671596787900621052536687416227503252863987817644140655413020310589689892770158405497131740360127979181209346468634324242531694049710108383573154612941820144671070438721550536165177728229540385520544890595061147267848634971475284643526648059998391162444849061891406051678622180734900952720210075124550027757300776740171468340131554269839696317344147922314558093989381909746976419349798355163923668400753690335280319700958670303408703919408371472073312060650584962371382504322780600830087489664714869539422767924312323895982013485346128564089928264003261117597567115962528171328313838438450232354414872195954985286301340638341729596232450044874689663798099647440671040999878880822041090277137710107798984732509604305292358605456524007630388125191797345462548990495679981663440785074917026541294914759149900011454006194835578664065371955711847760078031064922012140004629351412735623409869044868093868244639828015693371994667862360487193489422252480933591511143542816703631384370023893844008448339549378144727313940100626476912931605187543783756441551772666733741413780942774992309655855111426570255128365636609319160672157717618309876852345811181959968932547935276310514582807524279838966153364612816038267578465268110729137195783983022063010101693548809582879870446890737610768838705326233889210859693733585926058294162897363770143321681731397896523974822593507425390717229641771964973004200268584344815986132982976026207472136382247197940881497736446326527317110594874845111589768398710866589855684552921688898065020803496324529978871454281995128019806054880750428339344047446911708257796897228853035877248190802153509415751891664729496832303550462355503463766695302266144875471679488738717137264990682557606356338136254918681895082827621480571343097097718889908543803955879959573675147623999495236807066707200241986080061474154378148461945563306546220362402071407697910017017533341762682594418773297500745475832625423282233800322969418945849216259086935013942805713208093146452067198291524089439125046704355749531547358398823820866608326277404470699406081141609970507779011349555512279383963451093727079174432948392740060078103297989608815314730996345845893172286863044074709707230641408911170904234423293473345010291016258985557359539546939072323520709356216159252800842400391126068394701212348700771158887015789461372811491314537972893801311817524648659843837303741300313455584420796539934238938817987184634700395182544574571463843797476206655845626211355255976562975376675101567109824688282005997865877194403201384244086370236685420489006517997211467417158144570581823583129298314007928188704383805007146275987882709844421998831890679565688784438917614018210153381721448265828090272337061879663526905789443337364439575848117903203253506093436976726281602305428214326393356032694783411538095011242277902019357072281080152572758693547499399415714665627237690232899190731682753572680189325155229841044771843681224623500509526998132226429317340274672396123518151828590649066820885455939790694010354020888227070800593087983247434006039739187534808037283631628721767774851750380298343713406333669251313505524883216923339513486393431369978489505603582371475113652824865629154382800565101101402219702723622872891641842120031376700320854346609073934892353815646273107112975660872197634933249440721639248279211679107176347268816009148928197748010150338680459243956890643309123604180346860590192960038361283932884590355008254109569801477452985285723566888159582528112457872692109927331196877395579946881031618467002545914137084718217931125144756584974475200556895274751410384438611753654248432537857655188130649141196371098766083559995428552099865427342457933362825252737917116907231593169335293010523354878087520773487882945226332112174506809537008576954851441502244808257977361795223003355998569692085378080744026054300950890531958821450996532869302822268266443985908973237311283367315330244838279756586859365776306946829393297782237040540960489818473784410264284963038679227766789258347258141101516588408078433072706247152867273801869401869380173009377958628713931760243948101635258914354295378199240712055269562164230506619757253333991416244135003583232689042246914110336727375055621976774485098530009283490469443636935114546846297678145416444331835472055274179959072309036222038945870456898658691537984206928909206350637384625660976529357028701284527742166871626278546424976336442804376519025717391894432487508067097175068627296391056920428637085621752841038511483577936386760955515793315710323592162428280804392289889443425006922083387482946821284786447089383940339783988928949649443485902083818239855988269333613506052204087186378503727459225019245637728405929949402619131628882188345412174942006835930709408269986408594275598338029831692578852527135301422806882524309621483646435099093888151867285609423439191513382380591294700685098146540856227855255690953881714850503259975138246657772916304606138548927717304519270637849200306541740703630292488825333390459379329148374774110606891826613362428350465260835056061001439922399390067129408444334111410836728866867935233687569310796857193026960040527030040361820035328805575832943855127385266364867430409944853576433159075274877666158691594697756030724439392665018423277948011064925027472615380726130942040503255982503822198458573802257157969631597803775972333781924694890367063282674042773404723841735460105422640111392830222437583678275196978548396935979355389973724862300987204039233951664953770051316543607463266318722790464091092588071091650036739734174450672058887634289025555607393322963917651182703371981646574361258555853303205680114491571118003729164936569084535028325840474827476108849963185541545956617311445397276285688063396972449644465101347098381738760672187051782397330650791429270989656909765249787494195444564627517928726893042919525737509735706352400748232995736761914090686544276145768340963873410114304880134084894115820273814686918590172454356496002952125618184620290651077763630703667890019051455081011352429416883643516056780828232821091035289852212005969106742830689547751176324318453308461181572844471719606110470498009558044745384013978661101622378087947352463340886746403688159149284727080697488171947805101522858905854576268543750398329680893612909570778851142319796794057660405679113065643332936608875018607853297265290920715272013858262677459797706331226594328532425076493246071839592740327027391820355692602612372346354866909658418663009166732977461389533210441049419631552440161681307366579330134584717987894214864758825277220355327624228004974342875001877388342160825580171608113924394706930775825726830808377497095279275626832216116344008496874846069043204763597297097470999600773759814800498708348104066706109560313245084600749319796622773740753549486549855887448378558586801380226685975127725854700235456502283107309848925142039059418606723694588926111303444042487881711258998343098838854173941177346297743711543163242771188329219360579903017396775173347760240118356302394998260235045155206275183865670391917129816871927469969615629669655998655101737029385908377768044127632120454185167246694651424706070479479496048360424696657445829445180856631630562716838639155247089747977673766384049486532928627664792763237029897055597383205747354627397386532095955783790515728972118295584639961482844557032429025770117464469520187430859033053671951802101737569872958549824033057085644595471954357740030250385006742725891707789435281003732569885921766906062090175617622549186587963807335304949877139673218990713377691178900875139488291641690061408032748127330146593836991606550063660790870482426535934294387423091107755952187522483937346098288709456755818976149826089911348871004894075016973113631167022875827046481933892724992217762078839416992228161362799233462583329213183270244216016408052298381102645664537758397607467127968993283281304219196209048445436784158655145632170978042872037018980725212716941755791714170371559648574112217891807540876397354923396771645755441745690085719757909349044208637469929760046023877200530756104054950955000050957009273444673790780953581211500226685102192415697244698806765644065158996596377651746810150868328295973281206456697316595425295953348644969361916525481360556378740813451004731549491676530525736639365228422324352736094547191250298685000198348170463071715227383728595667498922993514731417439960286863961622124422069782509730258701614703601460064796607561135581706678889140409952417587235509249273364059299674228465494502949994028874691552419280472536473987691517540636984752259510489152085340380936931916182036308315625567761484556648671271291028870864197824128910947264365946558731977404698248044548398088393969274586826857949572309089706561508092862610966969838282175479447392633740082990561283576905100392527975230931792708610740482074133784379286704432695460038055519634552338194835851054519322568677964320270439336293577360017547917117114944038100394892914367515216494257176933124636633715937953060695663893339126455442105619838149307597628439446716103691621338333356879569735885606800902483142499237921381788463126839054593301951305954396091367124079449097380411895259941058103430483286061092433705260197643454754840397786174088891953506778662384876241986220894251557174273232240893833887825379131546117833923113504379481513478841694579545789904358431254639146926831900421032259998823517460252251062608962813131265498998858522388538295051761630596339647118420706929986976423430544068968336847749788881539017942049902044503653402853946598558344865441450221449238373311677339564683299304558023697929818300086452149522047178437854913804272183420389074096706848951459988027507976394166663942009424700080077815968897775984545908879118667152109230301123459543199209565084992368059813792070718937549660037437880454846814211011412156252444368481155774122861457580343478285629573854944225867800845365826139030466012982646656458360096321301004441989877936757473264030337146771259240095606071558889095379574234573712565799793730018789485002514688324017454275405873703710916279322847744919397990945801480445189216141771862899072123702701540262964359004655845147878061757756787072842179331132974728865687298112839482170375876880770835844421318839669478534650053908738172974464322760862677953177706986347676536889812895314480889841851092153147939146760026751787657341864010013464653032294416718915943071126067178191124545690377530141233672389972896188529066671323930299260236938905183897602152518832332588754155875705170797822505640858985397128434705001501373118031391570520966540310399442540296992213620165255163527637499184240319068693392266820536029940440215503967588046513367653245017022199343315907374278634327133493911394129200080879189295088913611700832364703607675079315429101108176686153729988151125814946201292385844141103485643360126405943148121301145504834678379700473581790852983115940292054765224416986719094451556664389512805464508814066096093536063424377070838239201597913849476874680064450887239649225556507645667177476514511299232056392708930911660230478185417555733747672158000353330786915145994241402467934463851987395878731804198497773172826110360919998212060583402265669164351155707657612734672866686624060751916200280677910576564565894679326102905670505605948729346066285179510964760624172790379392442717473117983289880598439458459232763267286967704117930741829334078952276107462637438164058150598653474490449515941135214765721857101512237465992939326859661530410574339874954756947109724052949800865739895258587151400281653291014744363551571616581551491477278730210452381027349676144724295495670453202802345033783726130413792574962795478331730305700057210664529503712384087626849958292895245841161409258837041611421850053084452080447709500822052233727236207040271043017084672586858269575378496280187990553860998223034852937606311553095427977206165137169794871460080086274962633978122256177708959944322360042284755259419624638930386160336841781522460354110868292853784261911877440846049065509832557729312536590323083046681203703010902027243346175567481800563253866622935752505958423837196013729892729379965957147113441034026733343192201482092919623480890560592582595071632349987105554848824862334549548004538111398653229396413138100496874251755681704291660355328547024288303994230953600854954913579837791066551587597591052795951320626992520280055478280822001869551843221559319066167839987864204970785899973426302638762484085813619431955790362965141401737593143804651709516698519197703916911657596959823643898934930798631546141102810193690457449487106000797500900698057732542433641540601362161974161991994460800535762233517911775090812782744025561135821816136561762957029967373258328369275768654984352540427042492689263448264558705548034905340442269207178551204193117730197367195837251622245627606384372870785575831451730551657564115125394962599148477209214197237547618673179994620409034071537976739754959819759699435667176067267443928998294732611558387318057728787557086934987114877769493597516159400098400204136877235391220839856321437247657890039278086280179855889037521356468613399760318074151501790716117915436593206824508639490152066726167611526366169239197135017052989579722512456129353868784059809461783777286320893415906232551407181120028245640880836778049769771632833793731820994617613609359149367451524484197563337836003966150392853457622511125042044410513397664461455742222209397701535505541910282576324878582484282800938215300816886156149167496197331513012825337450650816913467238437041488562392539026010701654094556928019787464132824380338231097321033421146218325056425270223860788883084614191524332749688838396487391864595165949583092506377872761054475480199108832329710631022424365747196659514024014923600048337049228016418992893746924924679720809562187373205811403348593653416981675811027900875476296254973193181266662224879808957531698764619063388049027978457436045461787021042232920242024261237924092796042698143208706895376920115295881167885294812030357150409696034684301786720375645645090143477064673267290604712306190605098292575104777256484905871595004652748551192285413224462265584605298759703076738072801839689819286398002607375238246568101444799977438922575918525070106762066075549112673912213465191811332116599412821846096542660555164682322680227225048249582167510563263878208773288213202815299045302573804502648097578843171943473790022987679297960144534947643850945770360668043935115678397420990142642601446412143688927428422205238799380171108085104032998559135168018823895314149812276282602910856379754324967234328526993928705444210791114129580727201105851494906745573143865860474550678928479646389698509085772454166626831906330109215387905277876471027243062661534239045305687194163603271170591961754592824242888468490801740566202050743361263054912766370866858179456141169450866012071470092129369948349397297980990766521590016377386542261649016254611404006464721328865484736565246078180643705642322415533408714163749820227127972179351287314539645723445886763378814967787072873615785090441187474586979437162526926160840280877885741311913744317986266010679707647631183927204630143049503256078053836055333615843424299601414330448760597539532802638362329025158181362936902834201745573149510987360665141531551160950121515807580630119198696686194128111482326556999736856403472146017739074885643630463047932499315641141295508787442906086255816836970233501670795699104059332279532147166700660939025776941471121199989947712505280212825440565853808295948725800432738622684492597269704419283482756926952554005310485508037318671100549200011148748930822843470661753633020798886493074456361097123123633275355385892273517216763253701893423681972503250803815285057363260731046617167613517355672799203194884680993448602424424222375723191418834925145969118207876703530185361292406895336744151238061323324784609878296813061033948142928250899908382490220486256752491131212993303302880702529931683063332332439809565987464352228506478624686046463862057818322329583392901539400234741488253628474500129543688098660294647883311592491145127099656727591868317389873632842441364348910674067900502042528669071515152553245825010701466444746925459615924300297307184959812811787277750583157468074748959185178943341437588167628210839534153365886575353662510849704751542544732075835106636403369334761904584525553268555742847737863523223160137250558364831850786940444101092551778305914631450583083110458855728331417682527263293900930566025086540023500337810796500771173663183694290034102433876497603306649467015955235244425784620609582072566708334401300092712179949876754119886725300725960857198524171794321216155626465594378767588711358720463377071188762370050360279803135354651077154016233702619736354211108499855922436688327947996631101583504482882657572765077308067307012484868590984105187239561665287159409403828898852047277634112670578465501271592990271907006058124449682116240967006961432356805832069783360070254784123095973689330646962237529152884441062219665234796168918395576720655733893010645671842673216992497666736792112580533929095170200737097502807283856778790703701295024526656386713550438651867383097305203049283031572221776974147132457622830444807762536767951929764110383086611730802868434379163005389238578094645107433418575678524018727359233348228535932965719952487468245019128716657052815744549010869958641053405123104581190442886107526057864438824512044529115925892064308990618654133471101562731841990627906958318668436397733238934843918457557876859755352580904900211267869757124701149254527643650645521075107701605696477478161903437282720030241897400709551941775060830845755719823701564261846233016663411836892720432328197273170208862903393099952763177834652776789556530265361486102861431012392008698934081233649464692099098163658554339638661764966541233817313321715178964916624949023829925524799704927247381742546722888661293496288954080573150520065696148602723643805375441837571583740273074321386860925303036688536909173954348169898129144155600910380336564017301891374735120199460036131543743303804253666873707232923620377727060977765830534383104368076516939206555767007952758189793061096458081426604131326875405040012510522030090370845095890034718167562862253330727221265564036980421628601581524456168329031370645082522936452507693941464265122060727141200702238389355930619675557525908474291221214625944216895884748960543574188969515430004565960329344988134476976916294176628410712985416961558128406892180933464814540179106699811469279639877703814951150273844749728586023513782441121934222788248356849302542969229288623699771665620676546024817780432007791252901888576924423228439070920965307807501701109032207529973300090687954590474794711592644025260658675988825044446035735925575217512396867299172007748202551404228672946903077826895951702546271427800042612865846170320550107001563081807477574233172312254629073236249807942641402041752721455453271867159636632970954213460574972183091409365167771747587697561371050218204898912500847245693530913700884475674820626574676478248625888001098086521049840745554941053144688419316254667160361257222365104010186067910762368034368690574464997442090035154659489512401859841994244162127114280896882285646305956713180479374924023670990171890147103804519360025184637584853337389492037747042641833523020468160080992357356752128388329244513720273755288468266286055808831802671569908664558618750804303384386902076148439384108141016319985692481159114785909440234350956737884856362762177182959747881747653615684541171168611674794656153614347184062027757116148826347524094073843798700276818372825769460372034851937015449786057221937884445249851969902634261946937111822544203776921114336775167794479971977507862118693933562331400575169219627100147957202029119509994733187346862511866450265254430916994224689533228446932240817085803154534560214250529033367626947187832736300134301366141763298095573670896734200017719797890583577018421150113810406425580043395088818994677869844963167902185433617834565150003861012036117308779188345817387861240346407267194999957761479922247127605236313060337530035901923379715234151010237100125154866643225462567399840333369316324185562576319379769619559442896128804946248616695983881591927356959598415169483651097852439331673385715734901470535651996400362792269614962488228751362427573595839943876790316011449538724810128450349616056611725846091535929667386060488419690910674430261327453830852076718399826372163863021614046466498305677725914339263548774841799804714867426850359153089323869977611334878886509133163561132437456385684372109198577556861967261406770822349018661067410645471441331807652463552302609885502065354417703363101758228865508552732597298286888236427386396255197676155343541778987366085222351901756646945079495208234231699631328927610258965229692165070863417798534847401731009309114856077340974289000222095076748900194821288671794124912328097996552129430069899622043497837162575604570934841946756178062693177099219043157018586183972645201197323816721411086088679765477157465573472576954355985932452602858924222692258799070747140433940920166971843655764088947958452967037390624516513425033046844923187442386938409363373622911031682414464611341767069369551652125447061329585313815367457157606699710702189775970272571734211938756939510960296104954458985990803829168703855132836697596405509627765614005184656516690799175505117335607169452051354229058452982714858825291027228189317227555802460521339084247596801602473090123118291379427768428510921048938338435200091516184505896968293485669119188314330657549724705150770803204609606522047767584027034094515550488768091017325153956263542697595457807585785112149537835631026541838404187640771618742723019596928556721686010081103991647593216888464887872140213612296590889004136128672491452109272020192900228466296625839068539610819880804937167393949958382740932172217641472013227540130561157134524853616021089015211684099253336050165703853175341367461134823439569881663171384933070711573501091730084848899695987374359159653599004136570184331696988274201013797466352010210971649716882225474951193239727601300224927649957255450971846530743984076307282404321056377244465034013422397839518114913656996253376766261012620049902764844645408282246297876486391488425048998088913343189446870040822209391443394897911054648728004579914548355686604393049066967231893033751404958046063835452294744259362353243362014880600041869172666515666601111216472750524868865339582000005252966884132127448575960373127962284194085824267302068872913550693810271154955384804083149677957173107625304827814797688499933599584981958174649237053685070090939910984899699611814792578894723726352694285572008421369534510053355921898612470823719274497405021248250523146899247187544879191952695099949259930345852891414693041108152864959042870824565314158979027954273446177572587668887758998316959909638380389208656170129834144526483086596092686128093972145053928483190315133950986928344109695145054842893911080745349015321746859108577963628919900848016094437266334570131287297155543001737171567650435029289602026881832633400891008831804504300141049792752579320491491989768306207420922303139310356112132440661406428318631049216804926098222422638131541537269290599395484751758784366813463020611438040259357602779795667690420442697381036286622732533488406530794368808412741027357139316916228893564458852226746715309397691281065911529131692382463226888201504695135037792158891695857895440943306479277122738828149454085330043821136546315021877181209070030365893452838617472925638953756601477510558957874712836119498536451044971486232586450287045185294525612003616212707059689277069732720673687951941841435460352587780348943062734635647191926945956542454410258488210497371196330538065461918919431031953850889471290781713026357168272924052679865888158075731107877858808119396001054361161564181385137422285541929974793939543128692053942381548384409576564052542029212771650573420690425719475848734498302378494578739399891921099946029658365342458191249229329997899205152897124750757960871677262708054072166547298182981853123630257169244224283549836255874166178064296739113084185525598983753845577847068773360449816404961686496545923777327677408060519311080948027027667172987468792301858192079006561868898944903640578732659058138461421684729012136535297924460540034852088535244472035434613261663809044366240356026022642147688063997470564216093790849710984846105518138337591936646735613692231800228736162843849512134695455961378745872823200153038386915867067283351791500093165622380748660676170978302069211200495050601910945605490189199982348614182668721970455373197901214920089350635623230536747092617049742938390760823030105226625257732608148826415540393960694905376552700917140189231929099425805938061043004963583112810522541486538595610159123508851029697688585953140762255797695220652648390809659238385420815457898507661295858051163876634363814985359241716782526342068463036984619751913831365320210858786799492529644664443075991589691928969470135484127744908642656122633459700834375846661588501472419995812133751886269510952749908268060526696305296316020969602470329372348032444151096435617630725688858615052901712619924290058747825237844399814486221248023793216902387324057158899004738882881054008009813976300599195618831348732426301102046166053448298492242414935238220501330972692157783881598954444837134912386926549880116548711758182859327659335138670644819869100980603141777146523864093287642847577419150560139585570119891905229313919174684471634471403804604755910679197377511949205141154353856064221057965246763576891123546208832436895272265683700412882830122693591986452928698415616561026244539886488843594106549743189518272793758193228886257044183447267887511223477704199383590096325577197254247928663617553528463376998145193479823686974813039538292498350109173264561160205597496175469489332205554001069710967764144884959418158836938579363284698701716976190567007765296482894929921506466447407462725478265695946216119085863489770160173859189900087140808626704752689801267435912940697058959871452104865007958144707936945054318453202730167321304449230130558231716890642781128674877529436963426318851851366061076521201108964979517046456407261351230067565096969171456912612760381623544955317009046602316997093645747413252700886957760845541175558935131034713338556992632451603741645957842683378079405255442986785778321663577043643968962546256549621247524998531088295259225621778747350737236027276650464387908850879876999963683710075599641952376045110817954787176050908630766910525109945914761194350468396941763774962283749276639720192215392027727212862806938181944916096979892715280581759625396702491384662095949522267534824002097142423876109119547440402867097954068589403675765769087192328466618258891480185374583606328941163061244592568921521622558317172052553186607021621011933886145123071491041994559479480566887463604071372427623404981569278329449675098155654876804176767680622591084593187003885991014017799130933665782802285814085920069978991459089320830118199631457615052649525772756443209182999196009622949284324773131476244070003000928389327041133020819707530572113800869454689371403262139780896458121246164068831463354886142984878560297068143652939205816272530039909576045743247688633961503991626101841017658719905116954895913504055814130942267751556680717486760579559644187431252357922893521792858580679590116692320592743993878015734899921811872036858817668488731506117740185478096620628969146446686153458078280867774899340186135720566635674516199554044942239974714245374727712367196738102686264502002119876575969192679040220926759955708790210131843674753895235657141300498291484229957419605994698290007933520057778851119666886334931595782190315956871423152469285131110621986470647112502078275907818958993325817159785631899018886563737708672377552748209625661155646888911487856257638691589893676062386900982117174846057480984993119574192513314415249707111654964125240270025106187330469847872482266979863465196952052778087025047563069407801692551855331313697316056081839676731128057729400196537817372630116458960316942397677950974987257878986404002023582699695481352382512794077446969338956863073350631266045358366460360086895155480965006511722994197270668991707237684277934965329039372218278913367337555895452862257897205544904906447549680232403230124317112186125173884738196872456679567640034540522879843832334224637159940782871427113570713511504854264735437592661425215781452405619116135492165690170082623621131475388384006069355878044497590600512723892227068869539315973945227527306096816087248257738175045968937213531694142586250575219302017304444590218311955363478066147374374169557702130823322451651993710149924792929509080302097215286608589232381356648376416515744932711207950132123819260682607676049140731208749687852631572154364015422751261163948106942974505734408501226433406523719436665597257819119063550776580916738924477862107653003501660475060395334746600738794665702420415420373164122186621796243246833191202096552061136545594937012615929182478180353935330368554426729196476800147642183044231488062110667478111728748180678660813690481403322632711693313033951801943617940278282502296582535594197465628691309026464619719337122049890722211747518452738443753786111189749932032979436600677231399567618898009761484016198443812343959405834321946877364883029445162788032953543096731129819177671108171591803433527752862693328742856820393363164911857960730741940542141642311229400355677600987786918980229572747521336315196517446811415073959569725218567655262202333279573518971664195650748816616501189517681518830789045177211372905958335930937876462456532497065900705705482142296821207740122697981352250820904906805635109616365981554929466707241113327520747895575944184392383278047708003565273516132824051294712673303428473909109154669702662879134607723332005640299227527292782023153779080877621982305751395243841632799004574988602904387943335880638280970364863329810598359064727111550782722762957558600884364892397185018726173874617800717196592270576289814097253032771779038224365264398756851014623176681387014606049687352782553189643952135693707386505835239917232193936526274783061481547469543566762454430709279523221620356437757101910852088587144441115881815686022255735629631187632095563025817434122481102898117786716568014389658217834781010337153037514134909118320225905954871405854698338498627191526533297770223761402343490569377474374518833054894391377444101079858845262559691431715342930492407426333371338536315581760629541708257962814655516362606201686597517042542139549973002441719910653976526511262731451405287700401572983882306672232226401090455892615551194261725854095063297346600537390510042444607348332491224189904104220038496476883998757680696755553415871885675491114617916175863692933356485730624744023954006566471926051384065199475054267092077979925689698431034498467936680276715919787540613962524505210500937197791489529185163835534473435707608021129087037925532866418058474448978671606575855289770924543743932747167529187862305030063769291100267173029027003646056960978711917105154531602759050328622002250256315333133937348640993568520771729372489489677092917740154729381592098567931775108354006412482292619162570349682563033848123007303761074893082408354508032445777452302441392438859138718893062338683744849396922829773698525712578948936497580436984915080202989693430506218299571618371629389649639032608397072360385991664213551052947669173633577626656476309177484618969348607271138834194814128163139900532899184080977192262789619397176991782450174723004477785467847523177624148294264438152095769084747067726477650063008700831097480568355167733477048288762375022973459366664390311644734421177364349015119850023132814762681559128640830290114064917091490952717893237644290830099521847726217773113067683209521061118398363779771455547862250087473047206549368385925592452951779459674042671876044451757012967596213214653288146080677606218927038888187419974360464519105375626971713022722809269094847975526860833464195824055342941446284718617626633217021745265602278720564736822648727692713255840641413475461728355563584762825933819581591837125973547396398812594908039096846254629030853570201166052556592134091103401374110423187838286131713166594556507055946198413868009610574060668337537607231327115965593197348273110560333346941550235592074594767273713315869562878349253470509524603474116991906259966901947869124779987502050558889587710691254280849981037091740661858423995116636375566294149562946634605788902780637034961590940657184788165289796643033884527889335219281767497109863522009451219800034678232073522667527249391778038086775666980489011534269086046473465196837336346741493552775636710067358216675119268401075512884717524814272250877279361045347742620995574371488577812113768694211436904266073795039926627671491103731759852548894626625096259562982601139450730787349362133285230564495904044022414869262915120139296120121352028773381369516033359807055415029666468190059043809786004540204784160209308003915537230280702404238464835920279636613296549024107318377230300358749494338054936595140943790613095062470457869044337083297190276391997771767574531992487241665236256874400956967752018279836481121619300258309042644607847728709434300092008914731274329730488526030114230212521232828633578773560947876072704457402662527044499426546053644598658574096844031642063233439995990521909272861407506828380253385658761003036992508013625605145613532003243942000441961858409378759746028607826834272896928343397717895141834216378953922374857897372640749973927264003637625024393374184742187674978082815538890395176154530747934101093077642898180347165459065131969443266430808335298021518298786984365113816971993734019870785952422102701947227987663334964831658281178088859028532653481601177471093017981738711814066183418560803030564097611440654709043864656890002373753711951681976011296342488070183249188767927397401389334706607942523867525912897921902923211385685200456465427623684506536350736100915557715266547343844338215013676937807707486078739587169683337065604903985675475496605210955632275903794208470866467604000643763896581854226804938220639187682082043410830081479634139450486832350312784546539920850669244543294258918180509289436804450476177333857833425779457775157222922702301807268221210103566679457966649513554264484885736600139062502820080293246698509409610983207116112848425171720748178856946377862418560636836635452670005545706127125233588509381466352866259220781026335794846942140231303443533439656922335280229930060354443468160817331672488725712607639825930074896912537326634396102490076542022660936755052818180235166790275561286022994182207800029825710688099325629543225906655869776650368624878901910581949713757022937611836262374593732876425078396156663043851925622230200560071779695851426453394495142679421808222945453366820914507635993477796208764065027889956477307451912986518589230416187312266210489376220480821158560149061863085672253104182236233206846422010611576049219557152968689336535892671220653812298473273546732255113385685732154749173291727230845351483815106377838665115649360829351873683175895918953796272549125925990029299585401206056175334964000134069266734025098068444553854212334260320583331888831543580010794636689453840628143536384418573246696210122615448392150447279460861579811968698892620605197361925435894634187911972985049963574281204289251306568596678170666339825353306312517585016642378439783230649673967540715933904728950492132349400766710551785521686304713672091524862133260795226550628337859102020035045966366505871941427267097714706475513896344989917426192490493778290380429572633714535447370326098513162856649636178811040651853909949940892773238780306786055754275180556995317661856432503508217821100178311310721177266053032084107214490425686886316307637655830076167330920514418552541516695327347377306481249883391008782147334871693941710678759522317643808364593517297960995534685680057060410142334434468024448223662192246435942558962454774978974079231051328870092094986224388179387699321410869282913477149596206574837802621213073659657165521457962355531645490486057231195055988750737808477148424909742041821175076386627080699619267391171798948501318243039912013804085117551361813280595752301453684857494146582376845972565914846674889509052085909748259687201754653454290473401750795817336300873008770115078981175821497945883982904992746090315388018044068388656176154533722760944740407289383044925848355446255232770408376202046559519153884831743483723547516628600503388764752894446239660035261148654528448416688639302759803215636936424320274240699731392968757120806095394268768510959304536683911599071277929664264046361557992685945308423817060619663355001051044348569572355034503946826167792248927161586664049228373064385220460220422953702204065750935282526944143606480495916633298672057223131713740496506238636031729788216564976875113010712909327766418196584911167042295958635006064118018386042483009010293279886918160843517828256343607332490072893900879773112828298584996099866909908759496409375275160094673591734379355905006285766923319764842522868010291714510624934348693126354462499656651892897930684758167906907434690740233837988358827147566951590635198689418295200740321380014412742107108138045460619884138962954829110110268843636609076810925366177768087430467627302873421639784754407216346016856595283782884486240348823838090444345245174704650633222221445049351695786685873218489584610813541595803516251806867473063811561931265884388417416122972493332389741978998243307549166124276131405529089503668085941304254580868329927600966798036529694396564867804201260151673353214588594220995137378218950767093266580675324626323238164002242368103461198079959132173965347408253487325194539849277893760294767737080840252914781681320909358437309430732746072343173984431410110998875979558377772823713857040120606229723502197473275783273777742860909315062303227028559633917861711930170576117678868454464026648439682170221180316167601315426926070311598945851993449630903179666731270144660917769523654394083355278591277301946918273522443758775264157266353684551832384601702978351481543187277807365979666530012487200930796688143125826526530339713047313110314795600498539754206296066989396780224599874997676570300702701377400863842570061939398615234417219307723466732950226405793152168070079561081859543757455090654194261775501543549601349906954156487618395749914099375974266104684658623680408496855476545880171340184934076082172614899432000080000252492036084262218142356502755609563705068363964353052791892236091025597904427084919764187216833915816889426849086259145658228261212091953629508185185033130811382393527383079057268997479581950076403409350038079046521748321080721391959337291880997679482323582450519312696734563838430317622236548000714470985951170138728739765897550652989287105359106968355856856419952074445965271237405297536285010089729657354159805223249310236557977372267582143325630513825165085321713458555858277136815643598726427865930177692915510081483679605321334475348564252864334284726003478531870004947202160952196202301912860817050524762707606757015839686914727356034112557007739551687141811852372100009866895210761238661526863137389356480090018639414908589832109833204400483295899759055019702463393951668306921836117000472389732916211215652443536961277630758357357793019054364218881861238074138532906442323435085919986519300659795768191616211907803955470714481002018046235532320784150119729415081554775438165044381709797122394331890696044593539739148519190317557574047432376595953858268507786518396746648022011764327042334513730179102423478499378913475543705667355840282134731068267921280209802235578083887367045817487506872839996358143177428890243563156521588799614253035953230742882649403605920260480287358304370693781490158674212530294827988728207997352447086659446371761432222570149877735766274819030851707674686729573861203093254257069387133531083769241830081242109453923119939173256237428617012232518330384490931404211633455717065800072001812336973177484476593013522092687313247061015778943572572853022150199230398666794917192200304580452272310272187008621506871619536364725207904873632216828121708996530221318523023524895801682029621111859048475402747488869670922194759456460199143734556759753528313866536366934047896274847073216767775927111212723791129080520370720457384205983999628830044513001235799149520308970973110239749366055145594043279831548500589945906440162902146178395510564123739634359512054753558123196320264810459662687349854352739940443679067604606177804870221175435076727521572058396823603567589450157953755411650156313432118868047182540104334882320815865957811128471746852302418811575664183950494532393142940177470969191919009088044321011411754596386895902192306954504563145533679148545201808695207987737927860333828233205759933871233229096192291294695845275634374803616521602263429650027604806014593509550341378970907804211649827949799584615605130440013555502014356730877634172690979189000118514778229312849226891047534353767391196619930628126990757257941591506961443230804936912052478935267904828050155792921115866722113894954015783375393749739889802625211823306677485207948169434677374225146924601613773094359901400505352894451407005042684829387743463885182344797534660596350539372662680943600088070386112686411686726184474560473262839495052360025626101994283255017075854058639616208296987385314430159562294735457644326041040634756670585641827090860498360130306508694044066123730933283008496961513914096195206079277747943254276548608005250823561041246438759844603217690378803094728390685073788083514940302675886443642450316551236874598577855980064398324952002499682349055642678442877415006474351389612014254842436442067768969797071129239457904973806087905011296145687705952824377132082639746136275817348997367459693317611703545605746253871162074027846954667302445991519583970826449570607277114791085893574148255518283685105405044279972160283869735114296998411087519191366929896390244506249496740058533700899043384645421145685793550801845115674112737449689665911334580165297696477490891837598273899272269430617410084538365383473294465377484752442862111349930476655416386309729491659937883298864013425368867787534008993641984865984001148880993070411950117248390894603214188936031779994670550783794747865693838575646086239960977733176286738080244649885797755338344693560098479797341777009781389273764033183922894119896815439399418637776243912139563389848187565720060345075797734921978752147619825484363747289357911920884440712300908287434221949493272421528907696369414294239135950032925411112667911555710882031348705376250347854035786744320534575499274350890375689867428688070083738449881370110413325615212165658432342754945678025423782540924585362698779997760775828933799167605587203312143525940517537003974884148997133131917439540025323231809837746274491413641767666814933092551106675077462428600595899154255451986189870281621347106924618284340812791921410693392074431446571202849231946527234001430633280278653384214976838642578138732439726635202990865064223721884138182266258741868519029021931903265636998505301937050742324105869545992090728595711276594342510388019026894421873540397266420850527216310928684513285591098274955706714457824627100741592162080702719677869924824722695951862450220599160190205078759520603952182882684257425099775984896597425925162491292630592816623164090041420452249370143986670444887412369743567979210808513128718110364402798054093520215369947422114479846667011047884139546911510866787233778775483043753901714887944705331868307736905508733423579504826873769992076476900866074686346241888848648904669151627819073107712038752887563766009523815027383870958442851371842751996745757245899659207303950787186770130991342492378833137500072395897101388862923339707577570304249899215577935257031012435008760601179529898653198300336533330178558438572562001330868609629493336007941183057567125126008821373392697833616772678508205576983855388356860124945304116597829412731796771563336163446987427126079265422427493525449992875515782735312971208574450207913586595411032005365019736423370095016341064085204291588117967688190664183286831697928419146966057619038842558286733214372575706948631447776657224292409334384564955155722951187115394217023920274860743506786650312215427748765324786050459459517698318710596240060384970278675010941631034051101216416872917760729378130566410860505718905161980096751115462538085229167818174211563110018319840830112768373590314135320971743269794754226660335594921097702916775703367194992130939961721310092470418315386963453412229263164221407178475029343369041950596534197519623947011604420257690087220379348594797889852591821621837151465536550674915773371376214706587853914814583832987897002105872391222337268328291294259325750069961767175048916916033150228007934121218002501566792951213360132876092199866449265836728773703993061005437834039992956176521921479239597725708008535084077556050305472780854513082033763969890552182616792453447114480134995796078048154994049519041841570650494609617747559735466450827798020474396217527073374349498653693646450147376986669271544936332686496136541705993629802174458516141475470022109536032395294041098034273722814272668789166098785925173723705317937104704103204350847595869291113882645073318198693632047999932632474284549099398455933324604534975615185320445028635324983236793706804653592559667642622900688819378080493887660428108923687864730011166980387979441490757890782464944323045657473738978712000284657108674517122950366176308206528004047144728149399164094132739726517324969711380341779339708630999363399960927379957148190506195859990250920483388276831098127608058921961387579199332568192121427984946919356796086015065790216314448933424569998040948879287203117490301359433691079953185799261876904485829643342543442768120832077960316741580775788150014232512133713864564566920066923010004408862156537562406496679054991039492159591261787822387198744323331999349605431901200524901432409858197270389941730351749407705688532100143552854100871122406843873199675952853857440253648135501604205980187746819019430010831534891449809919677763017561935873387982326152003423802426366109402790783430382238908062768605253876427227961909478363003105058978292403959757646022523326286140209244595641212476660565247850727541715103719771315418289357790287315531917917148305438561185559618238999893414253764904683644894652355838790315262024829446649329665943360894471283385400900195372930241926244530709644678947058383390390367972308688875118797490107739345329038616984962345458396134139145212624741663566732394944213712053866548401457078429437579913488324610185419092686781888067937328972409953822523999610760133647942226590234413641569078272983577185591348184300460581407232433370976643461201509617056855952385467288883824948847594004100549392447565184965980272461358999172352097165831539741455825704716186005611820988564541142723462562387982888710418420425124995808271478440025208684761663880886739636132170959473062460660614596590669485693974315206541468203837791386523756641835866378372046892098072065715320032688048795491143339710672028766899191413352452264318118241609541334633864710492251770874478981155548475946692298417886011632809029963852125446932104280796593112708085729068484330885087892596400498221574688808915845206989288080909607996481152059691171724911329899191546082461626431196396412274466151428493248313291881748858420510822775036023316965584024527223807977190959406863408519431809796878808053723585989796313236500515908867399817383019142113938974524645717865840813399396565305128273232698172788623759982639421877839129039653905734844621296700564399553872878831067312426289103041652062345021725664428812501335539613537300334006724699221174971921053418495270529940253113476307280795921596329811169215510176671327823065588536321777695402540482070516731617494327014850182516467827606092410215797627613334822921931046215243694220691838342309066357286675640680130589166995195792345944271228012204363296363860343668884268781084350795744489717234796430205959474847895756788235427476678037711030457507474494443535370604849301695106496821742662379894565304660423048835817640237462382986437595451215262234562092336573180930968356068910170211777700083635030420332369035371438667560762696868577296803872284754331572139538605826344623375062101612551176881803612331333186586895684228384195495431489595258392745193193589148616333226777639433294284356886557911023558890709427798583010982427053908027179940071414414727095276653991988084878828890941934881676459124228044139704984492316834635720149718358347718358571907407754759238628154936478435094304538757965513515796402449187056630232628086230230010737580483640520318669273156485575453088788229223802828283693640694000134805388215610822481422130999046051367360582861696848430594477583057001392119312224978488581302737277030714965625966911537167029557924133855814079748783335249384008290128399298525177608599529179579038707019889700925854086925884551799013532212920556377488776603548630450389583682884223189890468312386101087324434579583331939581243219160368825565470379376145064867244708708074991622623098376559717245342282776949249032410599335181242213125525420930792974391391845024577373862324993897503210818923696065436415538266173595288877470847271242524443717560050923053235183522122177030085271996417526649356501178966602956252098780495582658694460494843916808897071065407176317987168708185077530527006043084783746688973890976642565519446423834241416873547043210137591875315558217101055396421502103342672421331143274728162045754304379694490729343681151836267462560356314993349837809850498581576655216950488365825340975162150618678377661534120226605590223677681590916564170700184899536918380771475250789204491775711169451914595639985073962664492221600020342071586309993721111665062292428748136927349543093657459822208516088860615203588039692895291029678260343483263138739093890238419079771935372586824339018568582994499489193222856470747169853383194289475059870435911181319159581242223557798827665402287864358786399398604466144882788222016906389868448188642987444981475707658796509155865334686154235528284725558092676373076872602576392089651687857300083125802367929789420449841728668266291076941045906853696753798126604914966098181936718783522602899668713458288931314430161470218943326314422404223726594124098631396718508842558554352117835908421242313929003127512638306683062187469489644584156817589242754007069640766627501783770850491487749013332708775355209722779798017481938408968247711963021811136479306767746666343309319087977194911954356523842474099766863496458880461214638375568530067624561817322958178812676207953605937809237798886113426238993574426936145208212662397817498378554931937753408198655353720240993097160840329215967037599686906360159718502687046728410821307785271862553131086739047282898980964990658194638574076943604025576710230889914580151115983206604980508628252318674769203374444765176695382257142021808415015050605548176431947635646884792505421513550570585684432977588961520714049954758715628440645922199517112619827868329153326583053761370613695264080130372032008211327386887962068352166759626439398622950942019662928726537957778605462015267614865783600449522263714842123286443971003860656456709198006446209523531878219633860952622063265537071469824782987750563315740214609284704447595920621680193153913933881733675854346541671509597093509435453878017590885863268207116322541536866180265599329199328975762769826843101909067232739228699545018441375015300676318443015029673894353383111396167543923030030777977655033067154746534830675000144436841631574395337529095705069882444370989435382919327913028136322153816579668147761562722552249446240399577819844021689765543420016426287044262221661219364908692177552363082367706646874776555226889553971749955496443287884095632299813104875930067687139606448756400403643787769840800382267787604252383663332530929702862233521247175982208869352795059994641417024332508477883382494092554738938727115168414170139614695832506435776254894156536726984703117722196764510286995240393233201063171897896261515732583916334822763394266092941165381136782800298169669241898515016220235039316987710002194297153437596977017131787964467407088378076989994797190070640289167664559945192420085429381727238243148846057352441799372446086825960433774487361881560601274256304949569149146126718833008207310135478724146278566749191592729089363762721960981471119152704252902200577744089287114264586399486868956154443892347897524085764576473916436520543365704099414528344464582240511446674136140238405823529025529550910175304043023671654772410117114034399985239070889648845122122945683651280124299974868726759974449058707203362960772593229656446334475798178591880315987077011289449209764846666276536089939752209463227350757925931028757331831358391221774349217978301807690275133114331068170809021376747371115582653868731629566031790877146654090532443989781117069463491853325052982984938213280512927859907485060659326544145815015075934439888369447081918056155783274449637407890312057823181749812164895900439432082617616127527439203176355550834061211668431597914058388144449942501869539670176976786287899296652877066968695343717809933096415389724767741590118815980808649731471961326509851768031686203791814357292336112413865622821701555152141310642165705741551896447400029310045213943305508657987601372655685806877560740343189315667693097831403161192864494116467229943895890940624704853344712899246220822719369603544479264295343851533841402549205832679410270898945863484129138344017536585733684405394202895193484507835644847116975916614088524740020100647279280425590051527119043722207686261796205501906190774456713694927703967790508383805912332403434790452643584205882797572592867332485815421785709882952007751002538531863642470968020129890631204340490049427072458005867902445662521330109583116362023776039706173224530572621427937214919899367796319533093319972781199079022615789099016852392809513492602353091486168203985280761942925715878613446592851516337046380332322789719525236960451818122174286931602408205479655497672769270589881956147947362827230119017591327782530441824043187006337345420967295177213562201399105997797319754428109803768723561635465450169360541928314761256026505972502133566217581348006434850034730566104310887062889133196356318576339957799453040269636579618136960606307981583543099324594943999402676793036508205975473971765881202393633120019541102898441956308116350050167857052748237524127109931387510426317865183955912825440760740522125279985333671558263941877215285933290310387158872722437502047339125327661385909784659390846087957337461535089064807432791153777030260479308923805667633606123709578532563036440675414988037693717898328313448845395716140697632600810368775857895829120697600127231115152303108674583346170253229803159320510177690220329994267325869440604424745392240402744949644939776707467927818546978957278318991112492190818633735965895385226342662233059430746188236799330213045536011363746763643072789067995287294594825409530817324821072003545573030160427357401875851639165160097012384476544123323241411431450520888254814335764318225628468275305208643437746021661102511052885372350227916271028955693464695473540836385671219572765937542697123748712864537409924228739615004636589424124168311890298109074377657288296803143788368799699554733940337626576040458617260456944923412034284025790902620368106177307406945654618024906567762784853944615365848983578464373559862323246259197234797328888439071448527231206412281606002498304461561065062790716852130054123831353600119662979881988499379619589285206999367161318933450040493357329199921444365056314689879556814705028339740664534244615059228654465356636880150992600169603947664599106356235870908443829561137904570597535182472271636137029651101592283625995287324397852045418566858211881536367433016069177528754094329437757585756744322091527358023474644890967061274076604877791182446632878772149172480065804262771241110795826967960830856824983239084672780057581171943304260693488647463770183131384482779272277870048243763179982367192938292425702543848969877006998517060374767818008897573964411528400083510771614338863915810458764938136472926080952024478951442062869627083629277873352311926881288495830920256474626179346751909319713402592069941745555652058401134122368618745287695911541272819551391424128038409252254497485305581155069702400477249171405791632177144491087327348761622790705587865653941711866154827597238638813704680811383721124692780161308139458739118268262399479675523315962004254073066490825653968003038025349819504061431270078918352233080288438749531827428691327520352789049018134925847116788031404900410799636364817587823587582127777603152890665509868358317901835487037291328996691150787297781191183815144578950576406750040575313892263352781751809340998116146283441791629126409313166743970746635335342970731820377578464672374032943278661057564364972928937666038846230643587485409243472005210170918071233173562165682272398069378065311527799663612065335152185505050432847850354619732447154328852105374157567414513324463589136418626336254736415489111115524468795069412558538688858042293713769410589586926317351767105365552032869057570505536323788672245880654639691298740545375494209186220130728249398526068049360498623713296795156564565156975392743364008066439546068519169734879501669085850213065467653761717629570028954250109642638926378109669649484928768459826662437809594508493739186367578232300385817955893548513971415799568108428145315977964738360048409237348392557198335849794053974250616718159723625466853699590325214047780517725357085625390799732743433262865104940840652452354891862915203788535592169448696707823715462800268602573125635439717185867323604086624002374329465701781927309024874959096051500384184729592950064453505351924621966102289171619428637600245829197812159650678408261077534134255200608690075220360255698538202086232822927949644210790934875791638465259269040763153396370035660574590824549886335089676714121878254070301153056725873186809119711203010819169063582998486974656781542565234309508129551259018603412760158263108108312666864559013627644827635640028642322497986391831801379794199373620170860712624445282542687010445501428882919225550638481742189318713704496666799499239351830289187022168814257973707426946921402651676593479100943613531903745456248205792260965025474299822882610534612187896459937946592459097344851896854757009244778914926221200768337980383967918241101085596836450910578790380641158148873166751715027244891180952799956871922657241310559141639071531217963020619525069668206653330065959601592574865962044418717384335283246915016154630608551478805042790391861498014525017815855820023298982064907189569364283040020300911433970573715856092366632740030751206290424615869379972423762251731132740430093705678448674468020638401874690706027754904464530982427307330424094990735300207920109370677599522204395091079015406774124487215501899690187268626487448898008984495318639396114795149499921964558888079484077755429969924273219443058447124075383995480600882626240277575702989379016920847495072809740444504510938654898499215323376821249724004099271366768930059259695861139192123843373338090335927725054051189904096682348542804884396737664577605971090114131850647162032421019308584481231387945032491114546036999083711729317025925005972923027453008662001872403571309005685345185826447125763307411540228283478382289243930809679588215492487549144490826988362532786750661359235835153530593396760861006008546215435625987241566074378536915510973179404443671905681887297794458929650711071871290947174523554112541523971536460553999077119043874906890879004473225116513972269572866597900954453637555120494076175899814226429400932366410216487258357366149280008057557375446608286598349165514289273462754745614690995051542436223375904695138822320286753726113158589074319191417240373113598048112525609393962050313868703284271031454274807465845279336966462604828785650553882556888796716910489544658683385031785575613793079474169436724443544572515506693380001632395216623536735739237809000823827404882637740732653488083636902574369462701421300955332372038494590882203593400358532859506632172626127745084910565002929803007154429062960354183815638033035216678928056518416930764928578362672135350266999989974615977537935380787162457534372002506728556813584220322721101974836051073319590047734767976907653919146261184626014331067798705839291362941819316554328173523393139308410496111030797326201591421482612684986902639768417608857444446201138791119294340202275256198756289977765430616206041796093020431408736513688164247038164752454147857261392617828682445367103651263918447877340814450090007449271184681597269446271037138528630174579473908437796908801383461077771749233519942847458237849537940030722929510696943423282162537550573297413639603578254577470791965284551574021340752491521477681508275754444317118833663668278513595235282268401333303673625789031216678111863894547304786657260708659261303567130198526407475222178119274087919215065065455984832105381494921314702338116864941344762141207539818504381760116839673611279208643440900354768142423168456227340524401323602175281393040910135397243278521422657167043616428836958787541406448705632767357958136215949564645017376517977955352631171465090287673742876020927647183306727507703420945124023168987492573397670484311415331691338716175292134910479298221290748775211217918588776120412946697707150881665843092081014333670750629844580268919506591543653171974094836876839931780733274206459627064940565804137755870478946551116484410569998610730887024125353194497779381250008210297791355278553058788140578140199660010379323438169971379467671949423575316022649462632392495423272567770419892701517880887260230318851045267323210326925687013007794309562099991067862311168682024117306094534768818091520316615819564877247142634426446470125110303277615574961266342637699071977062937133217176753801066011592034646647405720800234437203352532585506205372262411209536616724187282985149887724425533394113743642987517948834399573162471952019977540368737639045162616772781713796447528011725304673392106523211576312617624915331258800395100844107923612037577804080687647471507791339965071633607153498934773880863889661842281510142954633269123930036754000815189885681575484450475301234341029302869546735465902547018837931138899409701537624748560453502245386359084318860787235596412967326328378451988322741981087963107178815999392902432569353712329638489260443542062370442107328419984322561301186710716648565005140515891611405854329856418060740580612771887049718520183727206638703973995382447234465716715740544594456226291825853980227769923939526545603433357423748387528178829685412888600374778147594132079312597202430865913677735512733224991857853326916875695071452501089248278017922908436162225910583240531058508312771316301731779134347359473667546903189754086340647581077625798468029829270910562582405562711870027471985158118488014267748532720729453836531703822843971318086579383466708157577024469927147556850043850753384367979709735521918943459699995550170527878814680510060769013229223481062176930967206136576055862467848200300646679413099954542087927804641454704564815799175108867191084956557129740100077286500479949560658342600453759161320577527164878311744526824767666709024942859140908063578787252530497196929424453649860026702632420993601108523809499946926229518990416791965184665828157859450846047935595385307068663657455267484688117974820870804439958882218462922488869013247939171259103167543787979397339976331356193958434801807488770040158195314733584197382789120305705246130166255095925254320427376926091551535155053195112562065985343588380150396263000653857298952426545283675415753052870785465917319346701626482570105737147284894588004068753089056484005481990647168339018208316950942130774425164828513519307107289414501270408095705757124085064152761775903971254316165358612209005045358045616622939042431897748838578738007185607189844877013586800772118570637089608639749734054703743713828839038902400033513929081143782935349532187015741555985058083760471598665157640114720848821056397763553954723557435248341143552910593497695888294969192401891958540765017809714186794917693352348737984470612306160159220167283116820717541365985956295047143046475023459580175822654331329375774478944704590134660878038329246796240401537056974053503953776354293160780194011296368032043184412122735795767289322025159999785060156465857734664612951415405937787266178436169434350753122425196391984633831184719183302624492456000644094588951137811049377539444043055561174251527709951036812170682892981565407106572302241625857897905176488002468828813873061906930627156866236083135284993950924532769865676838783355591393315083991983788953711682192323682896090661087934829747600777110868352771774700273346107966636595107616685358888642684723774166539317143271315627190159550235937007453649760707716830249444211417070291936122799920979160024552598109125610045860055743052406550108623992348701404078840268816780604476214308478329299439020330348571262814605708794869275224399287206576676937245750481912936411022499079678505674871785067835556328466558775163798650499388221160495406500922032337393817440049013148537922078060575918721226999272098292590760290975775427351918463113519631361935031741680142007327467208905707454431505422868514640135089034967319341546197317203288282380780772217104767985107652318900103544783291553927696967319227033427703498421727317436101537346355668318435342656265578415894301556200806874818033343616230404442037030193218650501260811332415620064344098637369967689084730097842368687102735860675152055761328043235485908262281394160874271930045798283630424800582941417071546427124256450735977469115969884242942980759420811035650067418674348659707447684692001831790466152058204380668050383442332685733579468868533137435831159219226484305390863918506172674426996981037299956487886744231460658329407809801237555711936651050392238330474139543924907745904215732586754557192153239719837238753035877755435377622940195592395212266759565056445071494886413212901514345246595736345093755464340137134889082506100743222031510421147760172919463929046446402934665560123560106188614094706798574093989955819716831333873244102412923098798196635305128547759042050097287205386959359302611280934254184593181748000563578784330595124532258420281137005009908062831244663749206015929278740903315221015433649819893566385529013482265538302634094789163988291437516685316026750343878887583223118110614295708391783141873195294144484598070474613630771328375436325928029866468066876032213757434050569772291267731002953760639466375824964301379106782560960965399082205433719145382121251363692510792825636922139015775005517948379824213217122035026767153557811477476568506506678680392660124307631706899412667748114434506930007401028574823932854227981341093083014274903755223879993531043783851033966523683684778062474814989903044026277266425351199304682345173874135486587049577010079221145995431672059921438167991886563005376047316928960172108129010361715329964040957134380244792697522601783916425155715625082095108703218772145833586961591231252273139409412675739137608736255796223847567239778241686617702661803932666890471465250190451491064181931083571977019361712165171320917856632446178181628308541517226875245727226466081479015546629900435819273585336968939985501062750780185688218984159159394806044276145629385063111206132853919868703305107311847275824597973420306983308371140324871006568040661118387915879046964564743074528472383599676084391920922275795835881715202025922926561025265469453862160484178378118750583087855127104140065705728567550741545263601063202493426294396092056415870792579866759056611215586912979614632151923380774702387577130892379931675198691576164232797859382868521096075390843570651000145894291020817901627836736269486704125362636809839038151203056405801153922696883308838527339276513366987058503979890760703254741907836601422283599885228001529120588274389539076363828216102799278842108678913179071671555505620968845768689458111815923666016487755756667019684169499372292522711669155533837092786581696648936745151778727030991016858398474340824337074854428308007954131729324394391800345353056080506416773693743546231517156807866497858329550877027098865383187069484136240278839721302827616770109752331116962792816404772466239977335001678949228659174069763643147489297437205509487500089982240456949837852352393716685933357052222836755628280395517764866585663292348733125652286310454985988084407320610897714418315516158068812931918901127063646234952545457144235825381699963630012826423232684875508729589158015505735444282249168578332195504578491498363857603386398209060197017708989286415846830490147656006114636318050041077230667929013711904249024532234228793733624579738724238208784680703574164005912220301143929823655464227505264366528451057970061896106571651863799916214412153193267519073918840190585242916926560478576868244570975894839993000825790472227631917265538051328274753095759593407605275749961864137204868317672901973543555550817188501231195697744146924746483363924054413772126827773457716966837711104534311850602211527007523895556761921480595726222080712062223857726719642672032144769536529803060423876612140818288282810328695000098927673353358392715355723895394179844016981280457965695071481964831773872709713085041638104352203192862644398027232459229399361073827540776349779339420160309559716618884324863675531743345311617819186479264539791295577926405718674181834783717148786371661677464179985824197034498682793690263449351669766618238283617820855145671261354868794757402717588809778906927750870687343869557831856335638875738970704031825701645987125768956624137038957031017543481695091385890975345131130258291792933568406198029875863027133155523148093530418322900055899149538719619150783910996767130214298705676687956347968439641919834180803553362345767756460397797989369255723273554729629890790549737431412713269379126759273545174440841742429199931715021214476129143920516696287421442114059878662990320871229791735015833205999946726589520460592405275072201070144301327006189830042743248845067132629040590109520587535469150706085639649089761646100091197997629993408261483922196039862478682851876830288472314741401534359945832040070826263104978513339511633284164516112148478426123906035474673278579648984894911065108623725202148691045989619973316302266853933940875644265898638300735589993070495383239573580026379624430195861055937350453032369697053439714938079307598042499389463439941037914837095390179722905051242317689725776251865571495654176271982314122200940040844434863360648602156566470243231222127714276260833411977617171094153793788034417870523590406737178325547224043138104455400027090204199460100607707965042828374691216706899075383265138868088271434570665400965072131254216008104593690637155949289754077629844696344390296188829741356006497234335918099757380069375366636540176264398090361261165207214313319381332827640076551704781730222162409430873843913347826772275943370520304696315302713580039406910139028286744844162370232766015778539689142288182656568701037966340225352663004296589269946739575864052060035453655449616149945641421672371976985375154446362949941916013882557983823384015286768674035690949121741282138314049518775247761217177209535572435869003056526285086492674068425531791594078740930545774401619374570690202924474381624721221960948648063688034613759547541741142140390405640555122175516919656891120040863170160890692827926879312278895965902752405173219270892921810146028009978063928752118883875540829416312636308830078951194787514635778684714864146676172795256656946047174623629243194150350544912632182466054749459299497988746968704226669485477199147286816926794707902766658375361375316772374484884393858276763884419662262606890274618652234479949003971606387862886204354346482582938602592898215400500374755619287010958436824783026770032952077559773983329212330504963033927873458472054322579169822327270774500574948832825710931558223011442127613249870861958386241726917534625241418672433349189735451160923425478450636984918755922384261284923313238067400079772080325891673339840371246357274419401383751790365140937012776792171187330056245767111932964364334492589212482660841969465397346284566278571542047483950349376783428341915883094100938561632586480582341611132840271368938408604794812207429751288447379740276591468522896175178366419004545277408774641047579478275991266497294413725665398854948059178350744310881662530853058221409455608821183181804626479447430124881274092354113132818524920468637586614144514044172175795155281897441353813415704664880348723990099439616985402640954495389263857983695813876247937245878161933446681186149154275865908581181910371139065366479920173314988645369860545603515229719034936642726349790920296759847073639413474944151517780539018651728876445805885628344803480141694070135005252976688098836482000929964078399726635525216195909914996215974436226844867878184428440838971804162014173919436914736632210707995737482066767728234255046920552562973864072282137425675274874030030505445734784457895420915716072648947890193419302193749905435929901120888997546777261518699198265457565927108982425099481869524831547968095205770616367224734226638108684107506451999365783281333369433385873308157391884146068587332338040886006045004131773664528778298763812725713850074957492309723103016905124465943694863738372075153562008878729789801050301864274143446766961411273304304349379500808907277267815737463068500542156930379453902191747459947543882861863046683552551115153903943802921068397679795784153634154261544984838956414857933881781803358306015133791496111123145731190982517438847666974489050091968792892234131602338382697981963287153337380489233450273841948729701649652184261403380953462321299701318773116761662597244870385528155534841051624738557539727583304776347863228408362581696003333922806414741079388786503171236853599353458637271153909710343990406961418208868789913417482065150309351426816454208883947167670243487899445674466919689034237057849048685061061604365617402366326207077421498603445468552539695363663915184276086392328011710385377044832037558778046605594311761931475867479950709497445078290889952189188903872024666887467028370711133756772328289317765004143460144879121935176725718176838933736809710769343137388426464989787009457982083012070291413075986480402850461654355110699549403600323332733997759840108377594932136295187608174204856949748401997674148649699375871501200363428089702534982969288526344856788866595178735404317179296344655837555949252108438322868937644247751151647907159746133193067059253332902644853637083525683489892061036791919253964168620638374457469167851091845610121697218839868561613448719242363272904434927984118935061460873337447783754759019664083926181820201992016064090465383866306712522850891847068758628353385526437880179123632791491622043091873444627461906741391860621274829868019691718497527365237793153777441670732892726638706220373737881556107803872056713910029356796529660266097866269307238611140743590328592222434705563276281464278186164370399557668770790971583762872890554861924214276727931197294337081641557181712890566271463814061522834431471886672104763453546916793500745566701052529079990807725644895036674542363469238907791117097720279599633503367749566359385916776196449377320008601340242734737138661849572445197324132521532465258587716725698257331409027427499740823165006621238983224346253381995281321533533051824612672542672214395430067326762531718694585315693344360343812584902124031060069374201442100877485310171680055779818782385809503434275513602539147040484437536276398346381759234529584265818759391563235944460194570519237852888433121769173877375781857132126213502760909984697817621235509004774446848188390694542863891887715218941807382035128424992625184911716238451439894643624291704442493982311867175152158949608208537607483625639793145355750591026845130924881232088594825329551576440392258638109780954689328796510729787227203502247227579377190122523898630191838214502751996240547418884718996573723276378793020132883497534294059854079963022479344474839547944000811261790891178262451053448576230317674856213390658439385908786939101450028627909498412772225400352549235952454749577108710749048074918782860819377016229944850640769808884479164880041160128339019781221740904371909615736668273373277683105050786455417996875695298021347534183020009596675089654912108467266995394854040839993417070499017785290311533183089159910242655198653696036638936298838981826959620471126441773473800594505833689016932184162969357294232152218762802936268721132045274124044405580654348069915566850152275190857086956289278335696567145653629124931139690422348212007867474835129982324825534289728296970493260165649724834545148775057769253278177871585645828009180506920470825311216416599208218259174809003398475060156671012958393365624320031718349277166095224782300078815268417373363122049233884797009750680719932574362610857984000271980565848253308387245693173211046379406968012580157607645048685213845730267011632799884695740094285997532155550423025807856789626489871212909164129431608622521172375191645245660083504635871795005150844809320412528033097743935536028441976299772884264165321495152812017963541792624184505677193971436424735619444480015969409436778387105047546551130906870655245148541643028400853893082048651401932092871293554553163073566446869725329885951895664232322794575032299001335966686762629386162495568697321131714821621430536252523330516021705048665703255113227897656620968508527961671799469337438380465527891266405092581807234742918003502887617693974808708900694197788741604595037017669034751170596617834534031166241226483640335042877270580117965889473944104975741585544933721322542684559443098984483053572605198957709219268382800654346952771522223166030937533559988278351257912757419955985040486444540326980855479302753450149349147086227369946513490956416930022630407082173742883968052665457081785545499825350063349514254798332491419377073221297790698436901619575049239205893919917749647358170245303431436391819336071113787975596326023139823111633810030452014001741777098571413987366707829687828852191469682802678377766314245944433766065526436837523886462133499540931626216966271353148175570559675876505188606546439927953944947500207703068394984677852570749600565292995202353923133737353870162103575918607764666345323572210374919996109389826091551255615819208028300790852495676611950180982821920409811039413067675631982644589689335749070876856292240814503259129904051400951142651372871529292240460307081070620070374899354221585752416324083396419889253904402852560297020033142667320263467147947425589106539739278999641705126365284350871472648145597825591973124960787012201605979199871687178235908918709524741009724501060445529556365943630349922233877171364921960102351933901393153218777559015535742934571837223141282521770714889828801271367010351225415084130127793438783866845589285270485289511513001384438935200033520111563231916379037900167669277516178355494457776053842911354287970114333353497704694980268333733898881964911071248202906907028841923303871581043891951083602232115983204123533584288600015212465636914315095420103622577172783167777585555123809007268796330024054473924193462167717788587951894534430828002924265080527949207261658033356798861319067775915814964619555720708017532419997995085007960133427486646854717925263037560700066494242417933515905144578891629013959489546608624520418416931987746555290949429612949813432670660527177367217358289112158557159190841715993451464191333169543611259717356407949262522601472944527474469431194520546246651677274641753896523694315070037402958250193565042954385243082272801849863087687315171143152669867967159920520319363750702810912821572107931650475641152616313467989238282109570176226250828451966009416726579709692600089542484680297812594251910468586619573348027822437363928906368200196334409410567776011900416779196844195569642610064458013152864893798604677274817770384955934537126745255008170651988985962942909794969163139403654110711215904811173651755005287479467041983195177240563745643335415933744634954921228131458351757321026337329583680800246014899698367027965624978262730183338306529392155197787841369220910122174330515868662439821888145939195512749228542900485545750915810994859313217179740201917942375330566579457805315920012008516947018274397378869213488103725633919798014822019581322293847950901139883256238340728714421229691303779226446242027649500585483275099356888998886832334692754969596213533389275902811529942949395375612542410436512415756608987072937040803948693746132509771246319639178293051465350934295776835667650384309880020345404943077366938868063602335652294108006526432975069421043471495323672740114377089553006903925171125056927832462261184577322039904051734886609834541435048251839113380337350231524621733558347434561143400564197970199372053806842370301298484691068710146115969636141799555030119006994138694937679926726338989675231974264706973326231024647325060989602961116436926852862954071262421909741940752104124816785373200707586640945828778601966095202274044243301117630317050640332059457914351425707483903834046025148920923527932530210149587191314864100501353895163984346074850685099472220524124654171088586619501766193390928310048374442211447518807263765339378208608622245110715999148091099847611102790983625676002263722077888784658387026964746268781982143413802416864919219187634370061329772935962627130028388196237223735067243292268890123064456628364728326801452844053725835076101095422893750596533469567338844192237180491600856738273209226259601833517008396663898426302104751208466401223907751460632028862326965555843308640717568802939363817139471501896291054734793942825745080863255403731047651336336834747079910553337239976321720245369960412783627806989977624431676335190063488720214809719889412529249351315959387945614185020911420760491776430061961045777678645036692632110947981183618600782198363858923670182994711393280865920699394971370407707151015439879114334295801614707184194604072787100752106106194560198955457766750884948436510155317252771747352490036411530006628130901984603967283292308612375329868505323592210934724241718133295325432536256734234195337880598981551049435391618569544975039857020307372927911924186443375168673276604729632030514892585984534540475821326262602254237709934795285497831662185821548949428101617089739076117834535357085668719945237456472532866137280619131196748313627279501072528862410959163405081584681292217745269443991354743161381684887362956585644482233519021052390350871109526750247078138610223910952332614737850003188393693741715992049433660848813392681495203845927637015265661161691037760081446821856177376063630241353393587450351245116032532449803381430610920023793724357300119493364439651150394379905493914654114697081623330496802283264868640191870130522559307012150338159542897949741286629132346401099857204534221694098038417623076016870270161407942522119964130469666949476395565999417262293329763972163646889110464583169289736158287351120526771550600262945523776201366955257821851824624029819307439215537408379904718105817127801891854474961794783013983178215251475786824381299431769625541890741639546332664284475147621400954605420538125405276659564096604621565301467268007381885651901274335656797851741019784099206997937071094654650064351528456205476691243286990938009369798693838637926736257949025628179826515149746420017948013458532113044868864303443774196331271413273646539181024232060871343628334497235055318719922001502354935931013469424674722885348779932625479835466219213280274575583457185113128866363139793875843434043205542207747851596243703740748912377152168432064285148162132202922697732428162899646908895274367716957579155852279771704462592327287597142586637186116012570502702134926116304241010244992156837263655606387772458986706311967007148649925568269411199010748313002460495185775556022038234196565111129311225611366756206347892233145331452394911038777982624677191262525281022316847697367692869467565770329258671957794129155650248493644509839598121340017365602456389862622669334218059108596498996494659809015272996398024685139783498030221858320844152257354772543398838804221888036491992315408738878902242623652764973662730690669878799627405042772333789107890648781080895181191751778326294487164543151173532075498246683316989754059046002810128412511372853975060259197611144369432716690917687231657097561507380558813795747096212002443073383920200294354305645268706556225252969175453047816530985830148296495369079867709014280432375273816611247058598897962130307525931561899720359029051658692555486060056816850599902628218101119842101351485302729937550000429490813431595323986637321967440118435721705378599837704896739892012763990661143006178538550537453166859967921891480605544498757429542434758787419091308734696446005247947610585054674785589342759900860884513897842580376765854356167276234321771154563733625869300047405278780445129993639706239988205603729827121539814124873805323870415412930676107716268094565721678714834483727479250948274430344961349833985266232274485870187181340758075871928249813069233212417325539943519492256139823549034512877788307285707383116797916992366702100689466842452592721545045030020449832379659028652850863118217750280973663559253211474690419101345900242255558274810003470738347734704454318320701340531042917684435541332456629586809512592080760583543050004173754167993348517336898517716278867448770035759292714674869789240691310025338450464518184794663553008495379434275049199933009076154201604102361192762417305493410123171999000369655775494729822425655214750615362505006405665001493188540418438130656957659409069518219072515818023513825061510238531297037968646503189217169321517534326292860210942537258675381878108920982367133129943122274314843957830587276929383871425939441173942750606075899704798955176294295572827775739307443542700956899942305286184647375421048445038458649033231060499228480624836173087854544638715732939516052206227642797676882173947008184302819063914659734584721988210887594959672711501257339999275411705800007323244928065846667685253370183587338773237286304531230850968708756938261657995812014067269069518458151229228885652218622907338912223258051485522240279082317141338331161730294040519149917481057722063679866598764207912218784307675763239952502921879678473259410471206089059457842575166387185518410386056374421405226769995849504354583798123564855841583121257889784590736841303908609739279426156834344636377259851393190404470973490622480970134514709121141253239838831261051131215099939133706957209350286033702560660978251438770904407804468278675740608426884026959114675264947132535711989687145770678507273467906631098062628055906725873918415410510250087999530783485870715090979488498734392798041562289815211691536052544208974869688768628781739237667606113746759520993891176618315389063171639023375277835419645160538061557105450896139129786067730728618706890586354971583770284070864465877354838870832769676254431224841220114123466509419543646616122186849007975885641962265903127264730751022728746754310185207170483388699584321799899482639497418386963932672270267579180301486808602206967051455596371857108965965118404849771934389679655590926848271916144777030962989887910992912579785714464044701815485115922826431592950195974652086620256730630612560572850150404771623328705625833059058115129063694837112528211332318870580955450139832846935452106227542502054439338312009260697573504099525631661897815791901408265645067166374284104797387673076245987743250308048908005882438756045095142014184047331278528056558708242636892459096456766641802452944855530880404293200532302771624010575505752017651299604074139081221330305614852686442040782185320069582251696012044334483083963753873221355991573443623813234198569834936402399542394346746585762298109539896134763982792923633640543472003020681689045782069309036537259069710691041261894721075976234612306791734532839768230607343260115891929940640256868207687873640220725833258894173925061889346574587819860300393750522169543439861090200664506355961766159607217066953391826197318099808109498302961696227003529293693104886712434119899920314641803626781540166848915811349806800294573544397740791856875683687002492649401603525995999469357668668393040245297916687195932015888134894758664404004564177228333133648979638349238888696264041369279613090283245577490148209726889844520189905252230463738986659983828248773173530240633248341347101087633104089632958354167006146792990858379645812344298387968228770290384509194717163469317420413113232772554326429123980210380906114934003943235766804405478386545433848017534328477293664778715281567973303160739813916325017290084840872876434359914695894592301922291144063113131614628282013765706087668343923328520168117525803476247616496265796711107883650506638478849032003515033256600962140472164317370018717089080164068113452376206305156620090439003279918880942512864914131954303268330250987307541657820495873371550743110740533452265744834148410148652599496072871919423186603804585369597557724644870869678315641367711069615924152990618614662384212579117678154730588697099779617791726742441539380567446391462977190972286225112054123224844111798078127200472836999969642346123084388970134106781770114342592478237559743523644742481238350779061218157125693514667055305231651565452238377781748487017183665789457852841908995489875096146878152067532226563106873208233917932394521607327618502561627493485720089162354901596100997683329162641166499540858746673123747131853592938452375684552475915745458930468660198012032554995285419248441831728585698255289943493490759504686578524622947177214695067353543566491431727043293840235031308288258186044152335106482814826816756477836578288735419758412538161683210740651887890717626808482189634476312387487071620301435170176876013719604153581230207071817377463791536675442487844874698943958305222625818773142053266148074610951091089235518587636414264999686822400170609983126026913683003629686321567727017472835870873523375600693490166758994816888614002008185117664389495398873883192551877262516882913988201128795992418569350714553505800258184563426443102844511369356800326033438288655761634489732214569665928530453810582207444199218674340851413683512477868974752979492440141128664415534988404947925923527290577469438512482640005712735809787298774690455322632674387689647856846423652300302791107247652701264536640833634910973482513525925052933281925817448378979706267154497652328625889859259947990333302272397802261240038360828844429575966463384578006783467399731146444494129728219078256211809927635956094016984040942706057575878987180928744316390812774080512769474175467987088875147853760052231584021953402048511579717714083176854598003845942541379288885887342780229427876190186332509114591719996173433833650309084069376538666748596947721270312461544961286140228941963790402105486699133371923426586653552667649115332461459927859039212295248094426569472303483592437891242626194129801496708303302947967546939009524290982136386146770919614565253714058421603810713717372869315694352747602445636281764181854063676801221093546387194928694577354442196055319441250246435486385843403357190910684606830340689349428274943395004238725068094907947802909817261872994509796409029506367293183890786183217863994072674937491189767614634927662725983241347961611463594211229908719076996422804751735603876745599444807356471543314170639012616442514634522689408492476415670034221991731029673177708555958698973011417400794975407549789297262297343802817148749767790441463709758457420826756000411821926866953741520980402720254798724468984572644919027452943150051510506161239245047161220229753289301428365582671097205692979759849619981463569687880512934755389850428455508942230322336813429848662606844183071618699179150325780433339283179739973246788070720890736376714175740246088713650087896896139483722799134413129188519382580409401296232310288108040561252318294153274896635310104917667843280591014739911651504215709050875215185488002648490044888507444971901179867127440224778943157926760472816907019418209856351023323126691616115809097179761504955346496856708250848163659466143020106800700856719511832192537433512403816551503460970551522136769641360958782101520624699150542652641937665733120753716443295441215484996694524475527312178825584784972898389449944263096014254240992328586534158962327749193919246044276162779829883607074751069447268795982097848816403649315433189643991171393314262221117123354288418489991970837589172064566759043407466202260479322044634817575610366461959158259834506039700163906372880748469948223655842845981077095490341906579336700851809057035389691563486319182278081965484321008654670043507492712470182878480725649901431540865871127904412466437033998093624343060126214688480842376296666519878253172928261749653735977735982678776412985288442682271340269820069577416853237292675652140303008348110995952777404079727311912580704672592794142618350282176398716579579966741712804823477203559062583701038642418476796444215569256885696535045140526397796278786108198985534210378179356229615749574890466158704458070180809158736432641233749086007765678282238695960028663393742972191219994979651710361967609828820336712489592559425496656745897033348969488257281295248849790309873384514995660101755379598089371876967410151640887914513171785087195660352461198771950250763880391471190275729427367009698799803627432306369318042378777608219475734402142199607303888187817390326612120395352136266563995705196309357744208174531950555770544360365141585946443527148979366989746699211039856245003644520688748035523072915923550240487164560553007841280378096019907694133731379421200909490088404246529150640201357744469766288585993059856879134899572808131199146092027899911945841752597222687175772722051028544990377440595786617590484888078355631508380778315947814615387532453946598059649019725358152855319513451810855502730608038908449005844619190067039002330012062842824651283147979242484478477740000810359577589764837738146712241029593562057847915786232762053080460438198971791941193378265805559507870546069501956684948109306229628599882904455585703636237223520532659921067030012837465455642639977166583232391608788771747799264256192723667775921283998287250087989397408881273175240476321609542303920899708526619161335043139400119731249177859601053717067813764920441556487224682734647942233365436231929614284736738271877514565572255910265577546588003063269118890116036016798304147320838043337330332863897184662099438808667947667868034896280122135173442451883647557935116920668640680712198490698341247313833147370945739019238365450182021376860434565135735865630489467615445944187027918960991445941005995492007613994201626497117051789442563263879362527300750475182712260438904296598610419426883856182383830461287674024661540508162363853082157559120782591145163863574594780151281799987142033899101164475274935840310568671666642971170272462781954740362692251174261639262887356775087181353678402293055116767373291407142460667009505447087546145679891443747154991417863401732176567994505570264802052570539282105053713219073101108059760841057756072306866142741240386793902997900526313260648166676507663021736051672317656440981708114869576346768205902457726909308290857135473724343849632383451723578063582945376915275709876407336775355849609079019962941729822008805960956484405870846557735510686309518771106991215293217992593463566521376447467617906636610566951897139560965833695002513382120152637866090269173208191928790460553255900386348265934118750984926053639399562587928167140733671923308230748218744043894364863458663632469222458683713138463033232134922600606215728608135407244998855908012153914057482316582609286735792724792409686149954701688363687001046698258858166994658916964942918113147216427467050375665968611261305645607131935129561683840664441360593693388846583939156879751265909111797441413355124085378087003208880286586172891142230546687704840522688509724728855885978800429381792583980498620933205847225368050055722716285901121801475111389559584214461884421302991616820925537417460929254846932285806889100118240751838968232816242383427211251441527990130938356041425475637208236248069231880170899402661812555835436251285218454397304929296800681807206923200833049486185473410201397416261281771870804266162168614666996985301899306669870716351539846182550615583088731646387399122846321606590347255668252354547874825016217715291546329308893656840156195467299031264143503551624564815127921527989922956526161411930337590481080059239977311475737596311586896492928454682276614196627197754898420457691005734017331117391169955429911646444355041716429100162848420206865992434754101669364047948168749349988002328291686387249038616666533136882855512113406965492529028222213934002536007191103035583004948975067528614885438082026499999703103896278345228574487196485681198226146574193651378107001944961968707191891197421996521795342238759157991746408692863605604359480141899608130535178179991639619808952356205816016699570004100894210636867477452062488130709539561277094183914971293596228289089034238968376710435065096230410022551848313541788460117806342373692342431156468132266754177954542696457745588716758460875897908324696961405324957257619091669602688793033219582913514546774680743339887562391346718471915783253853379641855143174711475701448373243801265865773018466722740155503106113501330948750834092315828493065109810855744115797113049354814428290659496432871108135694717541235494027416306000566983477067774402446450151230781177267403135576549482535459413470363351922415069203359386784683413562114335950540000531809854118989829933068470046824336956157805968692751432381896281774066472611737253248353760834732862983549381458773786049922423942748727734135891805665337052636306582500318821358227997221029180089902912942761664875463848160685057108860611690143968440847623412141903477711673131585693260971711851202418223995269262115612898085698803140219676657842077344545669329760003707911788163761432293531637389099635915379437045216322162355070298973969918286503359762570336854718946627645009893565936706711023936273548221074088065083174843388251030110881956269224784705295092289201233183283062554667607273367049617232178064388021911472970223559288543561775288612189137541726181915680948064853730603556989617066972824992731227541059241130371774511745626145871417955013784075101870277201424954840152233773877573301431691206950359233064535811827165690910831014939007882650622320200058492889077398196294233322012478872758771413813833221151927086619523280560989020915556324771425274540210422117729728687137610841070370627440095518520921662103620888791214409985951256228391936081137220358874840299549141219485971596368414102088233666605672502810651680548864760987994032606581100755504022465988890222076033188473991968678241971963969837932510883680327600605294082194928522993921168636162974551850792408808201232876153809641898620580706637198714595073651779698756046232140532497418519522691140681924473866014055063994930815029583745119601629705735574622846119755701707511600241705622699147827687259529272189954580982219682938628646860421765936426231906641467493565507874619818183673583972871786919540755696373736138538269334718369439671226549271428504477961355909746985863673296202750780422505149396011678267285355927635731457068611574839948971795029129533495883031920216089359570198602173555705966257978599073962438668685463689224486961891065829165735006468222357501574974185935878236603711488988053984125233781524200371161440678833010920630752910784351288664831340234624002418683093043258327007236179507515117446283491218282663444773990116142263666008169463499176079678354496015085858802407049333358329650839228319227248699378507388508290626722321713077845027934244145913217308361691734277193089725127286014200885385660304217338701671146168005216285552653847919477754674446613415085801589555075852829654981078246278012509203466893868998391495213399895727898280006606683819690917125741263854611271006396737236566818392122571580339576460667333287689066170471674424846986344766515702910803142132793156837139178275127442527368581710002255861638223666031923612112953542725526117963607845915002332011853628655757327942981440578959329036759069367950338666904506418813328867916687804697562274023246791463188203250197562520196012427616724083337873946870628376412586145590146216014929949990328429763257082674347594343903849501204833359671273061837395821706782129170292928829780348453812572663240192536190384643385483340854587847736805142571960787567308397019491336401630676596081463306745783119741766511853332019657022515878719679782291849077104121223291337320371529490826171629386472030131798788143184350468164686058902011660374904600604456916438477709029153405073461980441242059199087552364799008707384254482777246885680125537887086561770180673427372478292435990588797856765387116782061330265929337310905216826250403221065525770981344109405816259510686090456872397274851554036552746436484743584555854115152931110364133159477538195231068660033829729873684529059559229032167274266189406403362047837972644918453876199651264653885684565727883220356207264642175360541793506316575335147276946899052307460381166290980871219331328052777796467346436442818812747383873458833690057204433328962355375196822899574116713869051274889523335919845145732431362966711430346699860630097454301798921939454387696458123792628784103590242169739467596587218096271649136391087668546661305972596477490177879156614494072299916336326438409654627952755853358977533678295726047388383305246402539720477540887917656678719826664957817051916281348677556939590013559682450824999357263903049905691863181860730371671798613137439953472462384527264945878993002182795621165888312633312996567483881199877170224054797046071705139887780568977449888649371728652112353843049862001502869107130028893865795045739890312323590127679228963916365979654480508570261818996876747154516483609976809144637046524501872995738404258971651480728878774031293520390959043982966590588788228830346292655262310124187438636196455968810370935467731223444952297203149475767195860459430990562154580808462571595971177688709991968018760688773991850831705792368468313725523015403127709439052728427234619341539226624377047066445425617440296580001245493047810068637755689537180165750318731263393111461379295618478417903167017192795452799993708056077522468665596020222559003410552656294055474331650494563913015055024128668134000633451106850412374490000060598063433083465957706103615210233472040695567484111209204663999376377176586469624480781145351959750396531742855194426157789935130699186855584234655343721984804191675171856572494583270480469342217765246927899467805659893993582979228252025433237847478957387322365070514867480801671580797986620572532549659594696431668845618878085163758441998574956861373584321053601863624516795186277059006344852491625561500793440253955751032242973041914867976481556048691211723561052439348046358165297921299495257140402728060828706682470397011296637763526308214113534322412718739678520256470539111466732121223044236370853669805606530459923841785955041221728808153296562987251499212014018896318594266315582073582912707174499327432104245278181326184085699069236846520574443088062792493745938462905354115889622307843224660586670778188685333673581502219451173076206998818295325469160840993436709670630948752458563692588031439563157035150677145286515662171202590956776611850454858607819466373284573427985864362066170022618145473937967458894031296775995264473876357437503687389976379205986730978624507297211862110845403754901010119073238355254613064533819543134320795809751743987379607817785120110545739643154160061563896085452751053271279564445610154905532658323459965907191929706890681763111666379461131199374914412610335148192971527742513860626926687837002010217376003548976892116937609338713310647923940894364204002966494298271864428376296570152239884023033140946928450870382405022642307113211806482264465834372351500287785352053202584452695695704243506815350183050966175267533914551097400396124888399508703996237634211631862843816568463994365351573133764299107594239976603685483359511016398090224474787549432956474064015556038924314326919918543869968169184909310923204169571068724444636779538249015165673083637431263092486392756473894452097770111553160194582712656480694849509911870685537530305725299185037154826253637759971902274478647931150234157380520777543239313090337715025356542039962100768897218625731456187388774147964514933985952768403234969210168973705550284885699548604934709275782502212919312919074449427580806177073765866190932494621753372433501681719594481862896453225447688806798640506233176731107384468253786122313488253505509919674675959290973865483000944112283603131627666781153384506242891694640779177396929694814511109244898537700333985013614232903100488103968305682568574512945096146047234292203824528041941845178465017070227829870438544663922700221352941491867456144085195870352191221846639884303763462521530682140199307427909645470084703800295144350115423640230505521698770661896607355730273605133327369672831094638728886596683078902940714300156142449908468782416864393003050434550964728422180843531039554651834898602364442488108030294058046992124519189402263365254608918055968587574355682982973512676404861409600558297582782274519224351800478153066188063045119591876827891360254956859722016446767590834481875535589798203200298860168520163027409505268012721317557390183565433317516065596302754299433302772716293001248643786704943729203154021780204441780258011087075418959830800858531488880216089840416830143294617766578270837747691533780750806936098415278698615195754080731583509136119330026049309904940571334849657623562811771512986752763014015100932313154103599241450597595226703892569238394808205159387892005252270036563306020995483416102330213568583615206401625593803481252980415268864352229664818193920830011732859504674156370012492740661642633129778329125921607735870972090219512773865894951758085365988668339815613907670058073808786044575169465399378227311524915337333879117494988148159217220112524346066948726057728995558140680923055556543077942395786023181680761221345276073791371617045084703073925293156653944671766039151059186920687406770661311965389006326043876478323383469644469697476566521550664818979532485526706236492127226992817129640279249617171611550090843552390712560562654556240829424426095182905300986022188312655541982982950788121503413825601963071916554511985139606353902511749593182044808342861508678017184711692741439763111157053651087453446428043192074443157906687398015964132195411186804248519895643307039190332929039646425190990371375939286753073330733486700695759687243170961771693048798867803143029721848468670449963297104545100320452147239943150202563997528131234959937509143561136005123842740970930011677995530553594056662006709064683357594280474078244848211788196219155462407810141374201029149282203854103719200558457958518986181213248193043806511688752402439502252999298292488236077262203516519763890028013925412360553072265900650634215380979667094215301803855643015551970981686454901163022348521654897690297391364648872580489151191922301854489949092904909581340337888463274682480056483177571347776271136631121281625336978305659175750990550105745352167032671863853116723074022643024967145618425582874351109777844719518354682253526614164716951882117670928975535867244590119832557222696985642184756196029287413453460592930901325237853578698354188568952860852199052885441492471924779829517265739920158327579850279460602758304982896949138600572625663214785516826650796167235815721196604368200775991695417859246289753575767303473714356419885873127723285975105003160200598772854787610441712501482475130063342626026285511142289795736430878974095332804707415470965751080135663789956921401864566944899061663017671288749271278841192303504204944824552022873342159657683357353508346626902425436567435088953198007163430739419321157110938711331142590751380773445713531662521035012306083434257452161782695060078870717316368385302636231167879938638418652867516093719336658850480400822980553804957409648026353076030858039098854106746662921161971964850687971051267155567291091028927828356316258691476907254541548464575781704631570985591936616716404768693318748116254000694351418064029677128595971184971556909505308803710295815461787838146186783836239429328721731734393411976660719337592727941770226428569851358677870226465665763754121298257767406578578062298388902454342240410909186844453242830264444414567509881684211713481229869624931574135710662825860519334604494387849270083382620963863035574498126279107258184297703151841864342123073898184083251547496694237411513767039323158369815431952437566705113407538115613605423358937492711630813760709423064273436519046588788283867668001704364776621927096728679986289854315183295202326810912223467815969126710328960375234475597365938133558010148932348863756270484070147460796770518439546926436995548433914928215422212248115325849143073928428920411670789739717363378666967727232260973578968703250483057606893960690975584505298177697176804110647596407300688095803752313457481012783290648043960972324674670549276536206448179761971672718887670667562077173980584304029651796455746242232997649461401693178028901083836319819696521917540548486152004996064906160610600549664441544724937795139530254821643959112886635441668570561863012030421818038077917981343011085168512648184169267721159731732238807723887180209649341295356871962268995551116589116932752317349453967135444853817372002682366048220245399421038015937945425801813509753852992107328375166116216156923141757994336055585068471803575600946442427814746708934438309602286873662656801782266095848994076733464594796260674441950520747229429356646389063270015032485900696251774339839094407222696367258124901283125121075734355405343738222612165082693338942160729600152665364498162138860092726862394315695342914540669282411700920591574893033469195551222798638289362153227924694518984137000653292024809061060332328150020312323234469228446690146570732911472962994672054869667679749348976589688510040262737324712699233684373292913897617974030752121031456527569350494855958842993119000172675812731317149656851919279443137144056458882081424886319943947337297892745499984881720754162798994299252199980914845353794358768053878707331824305805816075570744135824037904477672708717850601055926266297367745360645503357799083095922540122500170444936604212995541040405435429053663923154531429409866976093651278834458872273991118353192524721685704361034482243159927976572962322799221965233851289946552884724141382957156064391537952875794783029582749642084502863448854330207558486169544461161240481169007881568942447985412045316980552525533527791228914448794579466854322386463617863193074538506305560475070564506247903577749398167045756345580033946782203269677174268981786497878675499218152054015422985863619475481993138017321312094611703084020921223588775898838336890901034268605819236917248140739303286388542744814634849377785508749563519252428362409585049864329228793189524971105536775668390873106461329694490416740741611434157246390159161776934994697075799405816776614319093135280022980845622443110997206320338911824077173152533155814389990792067099798045731678381450995217137966072487510621308615750846574668657715777889081583865342685231291917585056615010732768414083521119266301783194965670002815601655532013190264859895285902664276201051589543348616323224863558761079613122113722537453269933331193524278192354923378512989282510164584270770705728805410552994799811482746298712367061420939760961295910046393992707273392601745645838247720388109849214870316503473554086371101954936573510339653773519725648955959766905471970746488831596555183969193059546691565107662182254133737808414557766128323424819036367039167695122379349105686760200718341993745117488333757079403471226624606096097082772089316983703301991723664951504659808439411471765628776332587152089408754996067458159468143812682520711844173092066450610816174655866821047137141477193755411156074578854449706319406834050300249491541516027784990823850599864343477223724649470750283591649863770321994116042927561410804886006241590835061958072876698548670394330022966331983374420264006002800665926387952572276439118963248455417114354822096506651548272695991582892570427901926669092542896147345457359353565517393575947645538730545656621284284251996205592061910542929878482481364015979837116368463478667111806171274689705117549700849509498120633369506801366936103776623403538661039839658027710654917426959459301638750743953788826777938978844304027454671352167277429143303515081074235991219949412333659718284735483979716764728433063938010618880655072877481843501040133584699683034575436748926345407266129723830137698641924975805135442001649189648333349391155634950869307279811408062884877588036505394013685066148879035403742454293288723806537869226626314309192263474755184409759927144199122749047768395334794272218558499623543267706636261656582188637021559198632392041486895117968509765364640752420400887007337594904048828002789024272575158158243471407965679042472595392307465541193217737664110235897297983567428293717052384030566371125049714933039169729755475515072917937207037798780982091734235270447436080418423139235646128228720078224507569730659707043422505555356348560605487918884042604479790454724161807315748740923391351120484153929806654907584626627421722511194448055980310876830657485227015527467471012735616210291630462057942392028552058848879950835452486314653379857017446055028718778244575616232620784969860642942863547314086650572341411372202132322494454889092428158657476794631859464829802503651282182047989920644660853004665365479271489686845857437657283625153317102993324473495690307384231596598144435097116147958093108543036711062457342574073162504149296000764800298871780550811120928496082343753489390471718873815738396744717145022390646998934214263958281206630064744462021089899382647895531576007319382692380306250035710920659121839859924250806288923392120491284418481414635722881207664761477998727932861250790414365132373485481290651692917737887790373075386356854931188594397789378834721457428346741723145002790885097772906459053368505677826861384300462429071717715492230564555663709962023226881799125648985650830521135632794846761413651142316531813300675710765306740042429436967252155099808540454073031661643321012336911194679926345905508151133213293976013730505299730134896461285366010993080327161352238073204081672501348924084589313129831911594275196672069198436920587829954818162912736230245496842516846722103794545711311797599666188198722287952806777947863906579023811500189621433214510818883384392483352371266382717359193709603016606775520269880974901106681094034772174066873129809631848799075330743014137632625292767868296164189264465331691247693068630690328756619966200446664321053874799000814634370528128208881903439300156469337092071948262131075977433500824710857772494188976331756637480207502235545323891379707765265284079006142755000511583120277148832091672031910080562531087186401624642690168150968187633030698629817258931043397514975217825512577588234915828904746671306179476836475358558189384394704379495353424886226221469888126718633472042678334060133949634061065653796054038955858184139024966534760925432533394912251049787830068397178233979231309243710126657169213002222279909915762481803761572917166359736966011548256676988680010793481706941123586836031599765618649175501162315412770509913384377729120059846809192507517905244069495223973783783111705386441452716897566036919001301466649414614713168678768275066342731559259668568220965384479916180475300005600628068770404625907807302099976047855829008662868427210306399590087817542024913712604101174920270939796496859389011268658547314255258779497926035235134762966489877328623613250898011480418799638278642181718350902900971601633218154091950553174774497691698774697719104982640437060984439109862772453843728058775650490109922451523644274899133450651349637731587406302346348140155609189318382963256022994040728350854817986582747164699638112887137866589501871745599070102478975136033906533320528770479696062162981236893409024778886996554079814401369771848106940780649449728684879990328625634046322988946767195490050515555528124747627898018309404589121457679083244175649345320873271614874032803889823326319856940328176339309695570134034148342989799092275742871881393291755670710600198453080684389258304428862319378473534071086627600086898131785781379443848447272104315495043481662770002858970878401378678726693114619432435489428664423117946866927704394678098023900719034790917638232978219736448854545494288877273806188420486573849970548720674250050728916546617984466653758912600187331942271671498276424256918681544658051378353158447691790548923852383159050679912250946895233550147148137588362379569498474086488783871477037689083857275195765382309084649526595426422070301033175518585606112511388337142772857704483293421604864244499982118371327089444809756160931192818655704470078380684987051438021442471755867412268910868798903270559387209491711759034193132696872090580454451354227578220663692029165532094921165805867681302439435453831219116933852781302241427868902826161608372557556955302407391716438585729157512213484946169334873990688346971173455020996611810463531438277372350201198265546650534648778620003643660797381644452447189977425148277023046918755159919814368562510215790551627412433690598941723678289017079910209466187275716703731354033968368205927559755154908966032072578245898954218054188885317305266844564407723579501723139780442172073969178781129747073908666223432142177929977212673626410793343928888330607972653977840857507135646433498938879151443748134298073487943940952666273460240696718509676346521162566676748906561542096796183837592224403263288414862118164876265008429028494916619063563569084265609393363028117588465033658954192367475595655685808423535348791175606553910394250510287995182711268625630639849958445241115034500714816018030559191378296226498800408410223048680930148863488121901356670553733328620788278479042818251969661804725074355472836039173168551686769637005321967037049310109789617102409443847200144267136116041867308348912896141490871084723515397781377571355235423011783125734345888599978666181839359925766901523916307639245574198383731146337966247085566058714434398108931218293685941729290676047163726941847797417016927159898394628921355831828485895064811440685063070866419598092094553240893114554982834180328048760260012234788746375247657911714004346194925351534359750641903033043141026924281268508956081353059142801792786136207015202501741379367031498646416929435900335239861053593675006796715680578648194796947875290569017235776363335957786504564839414487618707165880216042060665592524641752501051807487197595017620019807260855024004589722222230835588266794159788564268992346647143661462051719172584541511567005572860935911306734309570496614090804976534222598687475513357279466931070126014021778873109809715834268349314486775369120445601387555560551410779508389591020960897586597644974154028752647628238291483713449684442258959461917132579185507429118935946102078893131726674758172102093909989146546394697245671043278430611553200063646531363668147465254252647292509600907793376352449708285121943639682122362762582046856701278964012098388926783726187787305156056052826021225552279093041508861991076280772609160242796983500991539713482665853994457495785088628783292125318335817790865766970004589226223844949854686101685538711066830065571165950837237220828417124136397039540231316925557390249504418011955559039503009583880720055096380296209893525917326642622640055902603994910242205763967747697324263679791238575626373155053880240856246856136964461262922012818525337604460451542940214331152786382663541333828629437607641368231094217076734123914171334786332956857072461981207233398075244401822629712818253706776717934486971978067721129415390799707975086123619396393468005629613489630299020555207436764738039606863703722067143888545788696386913964754456307708781140599722329615655320000437969729005447297917280883972786737281997915583036731781589638500092606204594711216863436302232325334525316062162728295526249355324265465070364969806993893581338151058532851248646161453072039684053675750491379968566819540808617964178191487458842754506052881171615152623371035111088319118438472722106519178433449767536049097955640305116155392978417039771560488434994318915952615931390294880684846883580697082776552287944901547752767428726341783692982713835369239625385645782861984155977304530168208799924521780936451413753159140213947765452017836202105838380036967363805866436706774873300481073259148027547942648835460436542158652762468039226890328181618561985506851078048633380457028089067283867034925570397890083126649837395881781868127546849954379972858695443510350190604837375153870311153930635214817006101337576606292510581190122789468985947595078027183422868532241943059167071152466519617416932902555434848592954956501362584492766467686557803509910548550529757165640032274503882392606522031364669695958941132169162333087088333743957962756057657453459293537332925881433577561146430260819565868362450129390662658245471319734553685611211309213066928394480830698594649798008608016703172445145745102729125246174282559892455789879681633068005740999698037829801401497967727303080657808619289539468976590885771231755957166301598470046803777979643103635988041057600687292013755413761470235036557446874003733562322042133071424628052160227764587490899808064803584712420491464120658010272757027447397893897782486992088421348900203816078695287419096911670977978362469709029210902013315173391226681101961277065398964694246530207691298744872197950441024454131531944327700643197916671393136034484481997791577927287749268871038533179031306835322467150843962175732897415600955931896362843732575455305161349519746247543678332993026873383374033236181769107399353372251518154160479620490418791222574390093777345187001233079723452108029735274231442134211968591411518355682051915247841261916394344970487333413335183639404530502353190655861630212094645605672706901296093812042656006158813432471145026818322068922078147622383172429703685410345739281034930747681257153608796948699159118185066623983674283966625591721386143573397068636920408177672667583433701842162983418872711546877885827880887271445042565223231530217697676279557175450591701998875710961739905558600103751420351782440547293065801229574144852355312400578668481984615720852425698972574686184726141619994278242756507754128515486572110043926544646269305551015114779152919361899553631156074879373376540967323879616279037284790223287195734705333643411190114747496946778674807769865157602594845580129206408852260141968514666402299278016124585552012696673441231586824342302276305652829982721043323718467970802526207812231616452340553199240830715456053494709122354677356706849943224620026351209075105438596042830595113453996676833808021994874160193701197237531301284696781169855614428213859015538684793154944095065720066860191913403151933505682925016955941677685004553194517727578991016430054758122068976190675401835151559117180610573374739688546822858283991966532440725394713171214125170276484330365700191804423944392457995031879337751602780489574220670370204519045150485389602505421029966324576693204879271701761393525669107052915304138971709845983342820403352028638219329270893326122887504822155463342737037270614910867969775746410732920861819476633021246888785463859912319131204699901492843731885588798676194823029836754777909242008478798163244392749093544885364432083916594464448347323122705667505538335734890399227423518413519480183807492619028062414445008417707055194266020850600120262640969556563643495843652722766706742245549214305134123203490763613880438340540238162794291749661909233685939334421503354777584977348732258784215234324548948192848616600790946720192717530354859022152932645160396568817770071953452671198633166533314495354715569528943617758285224865376156022397576909804255689029342919771253631438357605551880039277140789018902046521865200845976578081773606097661202566871758106052182629079694916359486780808008623169185761851575867658630514518107873838362546686627719457970852903498196849866432168355035315838268730253542937942853825670012229806067057493607723854264007997872979288451298043280042718587372281680008633911006627591685367445055838569098122417424660009261418447055607513427203857187782472304039914789965375491848339284103500631773690598184293634987818940828374249384731180614177793240064963695441435729364396648328765640847070858409345883985078351929261334257316757718759118909156931651135553976657993375274459253494019839966132373503548957207775844853718667512639968281968750140795455296313894468147597404805712898959216038933581451342565302810130337023410680778627953983088448363313368272418672447374687116146321954349073478043255395453454673874954764227350030163949643495077253323405354678907349726381057124370394225001474663961592363099565811387084373007017129856688935990856651796667656030925437237558168835320344569671886126679560811625611833656197632821770510158194453555437923824679200816523681271346092708548065192799678569967530500553583850449149404524125983047029479616629429507007949591683801696988104456947797281475096265843857655094619279474806532557681910262168372972586584291022582388058658226631677852660106556355052429585641363854907295622394299567657660444207537341680301409028388901001718674514093957340311420212611553167808337279148057470693996757236630403779246704626169908811754531060292013987189684150112539378003802409566182286150464250669488891341894313226540290483985962167313290916287155347991860566881687527913679820030082872023892594558225949839501636388964681755659744762671241635086974989396197420177023794352036499666655610351517123704870466519756484965125564921033416705984731346128670069887403936935271342301787856496769760871125743293714835315300227817038955130776842427799991698113214093303250898237468546404932105642212060062616514038368614145140929177379710222107382641672813389835537777826821665812890110159333940670017050491559628331909049504238697207652759069884804984320371538648617770040276191857081554867975761033060876126491374560355508607565141493981297258946222978618268349799413109210564140680156323708974138261485618107232704242965372129208841680698708399137909799768125061223469364535156636563535758685272174568273855327160223405673736027094840793672718455940810750681904183053968343202888663026702659304954503391271081407005488782846363666248380014512358679548802546422339205416013899114650381154259117654798995736699209012391296108320540663840541172461326823065625127654218372883382050152220558348376622857279278994262947036490838141284871706614387597060416177863727235766386997076807566002813247512966293970938515230459382308178129271401271643161296774329305307329827342332426914876320441739317566703888878293983194066799067478364277054173384131573697664850778816580270052260108418308925359310089838286524426555610232354911603851052317016261658978853830366468975383172281020301958591800061061504531253245905654583487476004028135064457733324196680716925675833185841403142985841826954735990892211625995210630258256505615205798500940442104235966484288016039492820234035715907162153278697926987481436786319313149598624823133676674564719215881002895508666778076022089340267375359189533867897180731888910507969518560058347824716060185786888250881234488107906915607455130091356978553120502563840803715538444193811997753515771805033473804685701472899686143764982059366137855194194209069794159501533649551480482796355967299880104024642277662067226154073987880805220047228983202130497091267039977869279470469465475409006633301766283257072716960347098097077191215269197604404062314802424626847755541744984270794900333877285427275967436231966637361835168836474132525983825434595556611317056533291061434260298898107878481490333187300825284677758032759251848827466194329109570756144729511131338838248141365203565204849018038665981617336974768485686615111962408631595198118629250297942656282580522974148367157125181081692667483182229692911595419171171605208692449898627581422753087536109423102095851614612634674995412544469069326236089241432691248639777150122337230612776993791797961651281703172942103969615476397604996294042274274011004694183925726643713555177762684281439369697382134885985426659023315642568884450533525207808718906472329850743547086268957029129886803888788140723448315658601866800451718273005316720657685263066632432359703253395751126320862321162864064970996045225515549451666965083024922872177361064016818114862872752022865395342314028231367162353902859948214882843293325952729035159657996554493090670090474187373834578348105282899555267339284053331521870530936805948226719000774730448726873049992190469936427975973828241959661257856266033864912449289951816776042097854168195079483561595562361405537897128411498875759320796380752142834183887408503611906786751171834883999609321313582125776882224821367381686919710491325217239009243667649542744126339806383777225151454967007047511647988731030049640619226981764804696666051069745488031534389166893624639641475191775778610681172460834621684939216857474545864725594406143971379036133408982834095154055335191317411450259415763705246517492591496345548290026825356256265160315906984488345774083516900351350524533128755275677499264388321457005307680286942605027283167117324702829019975598272289805253402438962628056796403523927333322574847402130885139584820392150318200658481172736031478468358197203421937889609401499051134014890724704278700562996895376801289465156114283831001740778742026685815941450262993609588976163434752632545111613199857808903819796322816389356121546340235553632095021909602172095724914856257512276901495449668479053112399916440009210203421209977827804468470864265688755564530326452120738169133580424790221207776418872066829394443029369809887149622608757541493938176015294249982094080073749206771985262159379074375463168304528355762047146546256028152404542742295855772307967686559725007789732113102709983110964964977990938966106573295565312375550856059271076286462078202870341078249725352373866798523113831250345256993676200292262490325404887255648635051356644490291839843358117795481249409607396851045016108187601400161504868505831009328737572750896690485697915811521181723009212289496250321756602016313580161348558052614358008214161945415366751753571987393437380154038953362578406349471134577643859191080343883372967091597762350279018501051118374590858307781167279855484976042705185343165518094211282597728258667152777014995276475446016300842371266047200388611988403564939783746965865899367478735865814087560959733657716570684510709096390631874414752008047308179336263459277449438550152716523061767910507657220059983727766905855281748560666214703487604379990721082535343868079132991630120577610328136017422984664532202237843877908913358269383350220756515210699362165607411223826163300752054525777940515034903715414855985607024711913788034000000525681542634947677291465699000966274626753565322727107131173632819063116213282187709457213956483225698097614340475129910738775297208248930868251965699428938349324122773634281235914985017954214313019657189425908063911390988129811063981531091885526633543240483466936821522296538814685489079227881274957090418694081090986396894191668697512968796306415525442552325189311649428488110798967345078095157313774683487788570818566267755663079163231694703120553089071638837314621518406963282101158201239015063889434587266136319944819345414929661068036860092205559723961816127018934575095899127828043049240993391816011018504955801193006124421018658982083517685978603512398891598795854811125176022352510358725812701225544579401658126131429261941984565672059610871145258021631057988702862386241131963004837598615075132949582487706969399991077859136404151527629451382235520065927490103103679427372949147481856372082002917140111751964613329997978658055865095929921907379901079081961034518743471501790955693036992219432788450388939549599801033276550420030321742593654304797788628859929729266186371189440099691490047937655304868106341833974425868254101345991481374247632017775063527923783123234601980558678598095523308978603110415572843457264579981344570674940313048212893235563804327784469812553137732217537070519725441736607257543265593472025580527720812543120762253129024792646267418359714773524811221788319752950751659351424832475576658890545165959048451816097110065237257877285892721177934676708813211595999886908625059513886495422260859919142038610991273789601290314322830204714480655491824963951356179972767812277060009620129236703745102318233403658118999478366838499184032465268190849593183833472701665867708638866665333565992430433042843707546254660639679922293063289799098890663349274138707398470981291906706904904392941815216536557471032636927318380876919997128831777240922526154883870679474010665819189642004748170104363775771335713439881364273111075237214436020439805503186119379490751336330191895834390063276762911183506775923481016623082114402949618883772637831037397819001273171363596154330923955553885860798922561323924778351865951598451175903085901210056076559044813428336317093181385112894524815934340934172005957870687337792478475978363669338220845292596340449049255706683074312357999271017098721333054201672563499169947837751989084752160381171074867809978638245684482991608674095896910835874726967322277364819150556801034783590722748802346609566412165906443014156791866562947395308337764379333432741995262302137555386283436928400444483628023833657097228116581481869744186291910458700793399702058340264845728320782223346732803088022469728111239111249865931320477559741021846469771624969460164693146701036132809404773695264734318659521213069816142069998878129321545119474213127946982800608890833657051296496278416777788045783267450480342001663181716795451640302889787165073621178474032290939660194575447674228966815440463934391894464762440532425204838510428560745187738564039886282786035121046981633901993654130801729521251082356280812537451969878253934144446811875629441136897352588360505013661539501521454575709370635719277750335842476522395776417983059363989572995166696239870291838244070679811123914087131179003997166646709667162676508815500928707835467979876202520196952922333976761263514984269090932103876967364341484246220923597686983552651355277889744268043240080782740513809465381665655712874581528938134798484882738819088603883993829620017488918431100745525133787208533038297548380117288681852388403517455855963472154493843116513589575193484939245861007407990936547883786583845041180372818867555436839201557004043253101975306068437678057651224031795591619027511925094739896105891912158096088726240810769802620689671344569989363101832365290561877476117930218173687330763387783253802490251233544561425477550329831647768566015537774176983840752093005222209196726248024310647586614183025915974093526427152502858395728428851902696240804801393063638413285217222897784209614909585418218346388227275365484884262281636615714065903269279508835209353245067077764395330274363907793560005485453039584686779888075190884742499085742124032315125186921132831633950346579893396699241865174938881167578700953591608563839019754891910540702710765242143217767576746385789663645008453987218943355910572703342212930417773391673548478057667187086136379532574172179305770653708966297372076522970191421493157033128936708107836553994063942556448675987298008920583317465363923604977193372760231463808633443317561498924910219423482837905540574833825540689127096019268188705921422649675179151434171065335239751498685922580058629609123027723696984158561916768179454359960067118887530787806385125606789772281141348272350539271465859367425449645986608021657399215514574371567327881954020995493605184648191788876550754787830600372632706401825950659892048653349485213820942135146660024999307991364194351846847612839328974382102073101941348243251835321474059662687434396051734767916080436583450338747241590309370596599129374441379324904836752273210863485625185166378277889535061015754230956757880750430339336461383900184955240225016927943485877358163795104457029831271722500933214771296244602552965720841189752873123441452741951348585153049198162101694332738641090499239266510902414300934630797672699016035864768392832203440039367175217635348696224059130846450984773986005733590340671327195172547113500451006120841995077966524376208842402549695377262054787414660063164569185127042759760604277626355070759744535768174197547508101909123690951977585436226300462293848487920556022496860923680539741197233362019949071070073012005512250251184443160656582698187347680462249725636622363577864352449214065558955710629545118720816470497241679076854361788264338943957101536030715807940733973705297682380715046763337363938904281346346973408648093190686208688574959981162039071190173119964578772465950516497535316258037484156920956040527303150114135052778196978280066807902428103733512909773994737447344009433810688760382216616109353629967180559106282260353666334711380359067274249613898656854131673356178632915506027223940907789491732421209514299136307322512081759366865103050131335522766872262450455035828630461737219551973382103244268369048785692795444573593506394857667135573765312676729249142695526652955803665509223149285273854933455625609306329565063033734448882172221680373709775850144577171590922300192702427366746064334477578738054191166060165242971934144922845774628866457365732994047584928167816332082333841936734917401135724939905808456867774695682346396849268814245130094613320222155982237234397843022479622993363037284045456116663779262268111473316150723859030709429694149556593217065905212168114082534457135232342119023762542551409924696859148138735809935653398882179531770226840737171313592798687097132292113226256563461030011606826801320302206173694403538553775885957257930553942104625892408853019047957664994719134595493940138337263046559948353171823496707492009168099556308800893625015250221385076116950488393807187639934260463727608946228120745189840921191657434136694977080456709022512501405537755438026546982589967512754727515274548370408407225075567303161609590102881666728792166968912701145967684610790216151673696441769816786992804879902558131634526175768448681197845544087979098703261223098554210108953233353354055006312922461282781380811817030537671348497563428940052855623640069847946967367873750521601327225549091666717816651618172815159001961823092462897721749996493336125604447869254937176146307771025230610743794354896218168615363628567338711218946315357081769320049880755361208361379404903889476777787046641491232680798934047174023842497928087089067682273687525926312943589290702470907258638997580978399145964109905820632094364667889791646037497693533492786991290370920694806141968901325947955747435794315977927094492933418454393393539309374653575940928775777099067033371433455995677009021647024847542726733693342017446757027512738213683231560830704152395963295427677065220891478588910340161267953363535653217421847351323848682345178602919639569635986878383586984828789384407010524130939981525590587931821730930128167266454702238696972206604408772565545832734195235659374915147941648955031823666703183538568679240089852425502247206517537619306740316231866247621065965658416143566603198536005901706520799677264834342781014346531205952758800585834638408950929302107205330359431690549850884887281694195192536631617456513241738869154749756252743890550081491494512668416605469717061087521836152578720754216529548077872078279803662667289237729186534456223804819815167423014163709020354278344116160900679062181389810472904251196745692602845611640731976286356627308135090918212651423017580048157020960047255240973873239924661514723928239884100461314476671420180062888832170284325378230748551453287905641203321917992734999804573431356389836575314542804249645530570340936215557998551455442263201988296385156124145973054198958286829099732384205487400373377182855418696828560407971222546602039498087677408017545997521311495495874820355813748395861772041776904093071445121616387261105155784181417788603616848998492749019655499842269791086727941232178572663080997450106949528294800498211240673477220689296135473534992150304288022045477501494490142836432418403659705978287677429964292320784646393104345607848157275763388226489399052822057372504922227251028339154123476244576679525063028311733473319814288629353979016089620059870837680151666528511491516293565313909650593672374320240152477953167509592987386158845835990778215313584081041986378553359204828836000045906240435799279512794427087416540989157644197944853710106040065418991154870199144655065636002861760853938218077566718302059537423757045016528964591723934293326740435911245889923906421732165524829634395733704736265460296152141511835617386278201092708396947407791754101662650380968412406996444851458616196259795311752987668243031736748500742004854546910421689229485219171943444754066566926676298890040531246924206816252948022671267045278374771968509390143142248309771560344876287840774848319796443043277477362375956970659819205443416786413426755169157346445916689232719206257890563267011926940276972200485731946803422415137565595272197737034277625480826629181652987131490838628427408042882595228851640026745586003215828787670427225657945322034543346910561735892907535391966579487214681184485614599074527170295619059747234304984244417624021512469351155765296426563989954903797977565814974349392025340743576263253851299173587142539241596045790626533039942025380359009492338826071727911122251676337985989240017975947923173525297085618368546299833712064487686897534716139042560686064185617134516238425060912032963434679717522423426492662093350407030872044654162739237403622772028414749287606560718130323382529660622904825839870328205490745680143560799454761260356264372588825671435199978768225352801116169096489057940373682992513098950187800449770288827583303787679496391748532531505126048106117407742208152843102975875615015746004515501822441443330978874622164973860685201947695865040482508793144394455541288926884839568514047925540343149333097956539948257274880438872981849773792884607774880162886861066137870108348627881041047513657154798063609589172610073843001962376545362873904780507990321208995209701382897495987668374848448775500018494451512503846401822818984479290681645922551387269877129045304018886048711387196373119124500281918611491557921429830358792700938549202440802476244853144441450589392919830185471796503008824824381403153102072123481760719302688099225524856789078790051922349125364541948569726077493659103655885061818175566846221739017871985860333089973128374733007033270588593459161246765687048064149356004913863621003924052387405978110957208959879773018161215839718539254361689187917155021442988205566150249095811681039039693229495955652050868216017399194415554102865242123085131722675254454123894256006545126854518689506019732772241230085122371918311586728478571716904849172232119457849323491451312573599291434723040944144423850518798836383954140689220264829681407628133305054161102005798753863394301306732822992043317323820009467263154874620832043984782208827892657573148614115163199047857540644679482003391503442881872711466348887525156712997621934130441397607275066355803476265680358093226379686783948183450952508147540058649356529579636486116657363610771054553754920971919981472427933487333326799418656279774463127261108446506164863973903314102695301142439817170166170768332373405572601689328440672293457569487620312573111574033871918995123757230735296659736019459367986550130761634926206461794310025373364408113274661858112968454078409829116037271424318703565691909854082777672189093984475913876606091572825746421652474262620511639505309508894814075974603505754855605281626082104555929814955806132884182304937284056024638833280952234663769712128326822071132903916970029609439145443910272508794760217487233734359118328696257319779584026832822030653585013898062432192054634558680528002575957848080845031680399767282363544325971722880003909047397022575284678050512972733774491849077974705766636524844015161634869063514212105593830602828639327828883442293643540386745406794278223593038093476227508673060931606088967202463494222201309253465863703900571754036934826639479352098507438283483553384403492576679663207485246708058946558441946540408404888851691590605032223518744512667277578685494254267976379448692472078297940926478612596655083976094707238607756856877003153025418072566680134958714499573921206485287145402278093732946550270084829310162774521148236656467237827499278023969882861353256400757958137846961206356169896822075969291242832697231877363465414912004714184971204275894419327485884354914128592747210613233355175077908848166441773026960702792703287485584350279524131388234106507170964594745066126917726460620889423310133348521585020565907947954580515479890066193138952012735716316244659206600310202827412152548178356469602904364021400029509368990564985769555416343318876109808744992465417981859339279142459523114427499484410919845186632093417094473956148350376866541547428961000406764630779556536237228970751959531606911945649589482150933462042746960831516299851367248136783084253247755200284662644358262264883469835520066851091738597315181811734151210236740727215268413633484818321871684223587233872724679904619514589644660281564816427676672371603822930907099902303913305705124363700607477171826887167436881538859245610386646266035530278222379710525562220969044533296443759830767525399817017413709537299404126572497955205070943028343392406029137014548031038684323758661209932719637570207928535253564603608706088402834322618056701355083229608153069963711979497392040643083605304245384290709860548144376390544537563776652662844629141790620790232704123206271518830281565133488069592917882155898238727811414116414814744850947647877006712116890670196041794643224538121027488035975753164131703293852812759237551600904017081424557879864473456905935390061855616541497946830802728072980842727958746328530141362483637193360831289890868221868282639517172944849318912621646796257152538447381746876035671238845985909308392425217122306725098364287696547099748073221384183959001764112321612123865825889801801258603517222983077412720371051781261940618393942616139520423781032122729018690475451712670684646048471118181958289097787695870883006784624917942050159631888116528305827298509917970524867725205663266514240488267954381047799117367020578540334613019219740033987792561968376110240802839710956645590506275575651514033321746127327761880130210373886861651971914932166434200614525338327566304583781369268376026956450149610028066696864614394407643611295909637311863739426921117812404014661388437876556001120838876858276196752923488018699733464210123625241148156027186038238103110128245057385130959808691838982739631198322899137575854624770650274469167791125019162297109619126493615678714561414399299119949922030736101655596262141359045344299690292208851862381925945135963853732058305335277046410422902128910765790720963722289295795116966295300089548511848762779630613104517798787888373797777130606958183134254367260409187395334601612008641518026964654175469719363060893300773922068056011821289723225797161145817434697283466747125620385086599796120114202119870247733781369849260162758700705458780397861711933423183321558178016493297241002391182480473779916268375555611018025772419518850082983586640681455350293126098532194901869317873558281809134652761656961095166347938522613285494600431939408922966071624779512398210866269200522260579570749011032983751904950313723665934214229016006650488568123697799478015997555884594999822143564258250034564918902726118527210615881357445944765708090629883078669981516975120039687913879673442444647112311289002736368313116566370720996766358690785650591937772526105755571678445054517480505248302090408844972408901449251063476362191992489647954430673050409521242073717317661254358594179329429904178329515732115912425687328321769161225694072128073302970219141982291940015004082253599739653382326481998679058682262728934464188282785995970855029817530012411463757199251983534810348908941434653834826125690051537422789438053676242520289281188644105847192080632586711491327378859617936086769712901257898019961622135246806589734353070209507405374754323217632024416562626123681701645549115272619281322856570638128458416382468339696237590195749805123649471355979946531447103491777157154026728769909917825846297187087063665728782946088780928554397583928670975310206757281907296129503937758667380634781285455260888644869539748572757999621902324431891528850552858358790386855387677322585915209244072283055684194444693915968870253732682490938214607803904865449533493572171593321167749135121304421069140676563926780823424326901398755519035932558266031422487256304463465957166512605664564771166876770610595734021331071487747378807062176986613295461909027627233048500353104939031907557703942150506176371923650386258382718571436389781231685055812073842147382725469656918789150204122419673005342119609493295665730311151416910251742630878014394269621700459544118345506901119805390442695207081757113623142333723925267697060093992026970736950195975802120243721625843090402056196531846976040527971907851590247104593884876804897534435964603647076621216259032901397792434614739887232309178427646999123759660174109668863802689690165803683764826473755257789414573557761304097207649469477905952814406557315855234512150203908121321639057476588807549635195362546912715696872013064649859186453037585656193335536103769810149246077046741180391476198220647992819693849683102340182893692360317965394736789872024931050944078634477411075402869646644869333571104364881050930893006642041807998072769472391820122956527847154301562262811811842232375357779082944386450972589122151761646586320533813668827193234719147743264685617453804351001397758803338090078451876193181677526979328417784616103522280023861605926365097985099192615148290201129054862291320670393716787168053918865433851446654267593916144845878754280554155799564238604544776592884436115807105697010433425412075619210938451846691086723876476338766691397964696904642624159641842737713122670741487469278572976142809017744606417901189454399181203230391889161308773935811105805139983094352181586790636229859566360282658147326425760423741472460537846113162899385561284579611292482260508347235655708485260914207987226459391692271271915867232351708710403081334045883713633565335653081981782435680847856762502544803996279011798215043514050342470939202229249448543677061872978314853037268281298352326621321650073735740653653642064739186725227537978809192404562322759709808436830833109049014099898513662639407358635901044769975657611160318793832960597850969301034028737940836501569349043367999140338094571729207949064190427880049524932499739929896040882137716227678016079028602249753421761731593250711065035020713243867214847782300313939564400522545177017324461845072438765123229218915200737356739180230645342513739708912347772010554066545973065208807061305345565477669296637813272541802298132973046569163995744702066462872652747499646700834463180013565484221237016643319671721457969175707836803141277377582707900133156661772405199076811874257610551009811151779444537145106913700540145052033884887178938489769004060928501761243141442803730456271290340570429278439322148723161136314904851732096855794833284738413491008198264336033509855494659652077973557680446991040204531744053336725688276653214376438084948365520106720260265649341582367431999926361521866205783223072697194847563752043962138688881674706538667745522816810845446059121210993666099420076665561387672987437115960310766198275884248577256024701158914265163891076144449874517446016151387972119751583046800567051568499413167203202379231468716095625968610890606951965187865333253721451076541915338795181753489918240514942742220826099914238771525674519016637428171507229618506382699103523386507581920423088754768953296893423313222490642332413027508610779063442699628076859100227629993769304853460131134072945319235634417298753492998643695326491189317457879407732763834914056882432753054247200022479699380474263894506425958892940515087078532392327131554211688179375559013049750324183571002396279879825846738239819583562862164385165445958766930573759314334711205391239323314386616091766341992224720798527624233643529009761099412609723974488910259801957343852182974329905201770665903127416618997196124741553202209453128444881143445477244540859132778885100243785650512259192458804230692911976826942591153339297316971826707716747959629673103111023654091633003346715804639813858249671147938523169740623056841694684838729030483428055446888358207707707952899241275126541823506975423581985005765469028172873327364581570693823625369243624465392260967216383459970161932647144042458057870095930827092467311976066944125659305110149750714512228986381274095165741142107831279255655938490189072007449026763486117834634279806009266744476899483903223429873745455545958586940174070731485596464075835633493140654614781171138722676546093717661569350603664353776707273402113926415178679199424013943718326187347964753456494627815008891693321769004801723233473296853620470865803316368486802896535150775938776263034790612418137592522676084270732223451846383299202730903002131072100882542337554361463968963291270171557740807553894954927414567939599348370144016604192406945883742673198288370715266779713641374515804696167822404596271273479006926536447464290264551724733307182612469296683805725787226601930879675766542888726216218592051433013291117650393843919119421260927430516338407088260952621716375007912844327054808028967271386355996751554144883380199216463318603231376888529743056056401140730925134931008711438649479722624603119494228868660141690433171324816401148253511899117296138035033356885155128113733682013670447831625735340153772576360965256026543395257013773556721525588028184913423777629669433487945258873050668631535754135673557532976142185228603439438064987565529864682318092130803418002196406515490934297559792652080522285519484731025758211441031403941309056201846249103427862437901818582240899828555322183689983430434795379804103149193238415086450852000990624176268886011921725584385308894058139947509378354440323911691369504813237901209404734496346100206594041765982448311232304302107214568045663893302646912693676816589468480545718820908246154281340496516453363585326068723080427983898967211864837114345796020327953855444246343725496992482433523551508183290305520598524742205218453473383832597346513970964350528955558512510409870532110963352664063303787812404527891178237104884238036827183496043473439305017244718363610080949375912713948103178277607511895978704008716953063781398959759615233448012779657758326294623699953513541738357901620553524094678399063356457691172762168143673474476001583645159534740068033899038054060278626870802459367608333584642460828608976707571550046778929689199596305204850584965324497133341973961273696452865815180323266537527269178114887707646630495213954210556795266014611785941829509856811038144417483816369350068726629426490600815259256261313814039065475529089199612603893353856753831749782895918303366206183526741054749279544312344812669300734455063156857904989464824387879022084363827350301397930446161727670932252271528892214570293845982976518379573152008809955192707933087709827115898175075756868401526282417765877235573808603102166278863924817816396371449239998186643179108528961047583754599298706526886070846068894606029490189041860789467412448293931879451957502455460347359791582943890392940115302414102984274449075377969683554567708363528257718568978413482666381705140310485151931621734441014110668846202227098347571567438860488740453531397487337849417048477072836713441680591938864028394607492409028391705560746689655275208965792903583451799176144620317878658599922665405117816246360157908178222208617141171127484262266351909117777909636126746706095435940251523295460020051185317945501714185638480589729652177467748804346687002276635781130168981777079257867649117315579832299559828121403106202639061674136715451763450755776280107493277534390301767536456665096145046464641261852510312900017118818367530107465546388137228349348968395790386044247772252086047486462328065387047263795250377461357205379357049972460484689632223145620895689143679926836491548762246265385836199898386137466854924549806130973560631535362241713280965654344918035586092363830172876589250325059300891754230373206647168151180484866554517080141684607245839365103973513554526408767355485198414050238448082457717922206786083353665421260686833106032856848518147753014425272126625930092953444400922610481921145999920279965432488597875885271717196095477431974464394268352697056654254057206503505121608773994758329816889472766815086624060147088883775834952010486040505164357244151514682389523923559045396865354848937048893080358997192511225916327514448123736492572282559871753301115664275363793856432160128880650470238793535377794321366672112748642636898215587815991950891044186971731829348565665579643843939420141605551639039388204419165561580336664529592049133818373367488872014792803527765338320698045728332121302840234739770866207555724764253647060613946826738719170680462172892746897888803250958614663906556363331416757059184371779400003489168039420627924997598513536846572041339238084270376914214984932610215856795733007256070187463791666661234460939986083915628955494025228923539110676562710657421748450217300090198696344313663837287101558852299439356158712382738763000741803168954186002159311342253659492769821580671495536321802255195080710681833051618866916721852149520574290304521569671505639713265124532524999922297780084754985683587365598221337827657035008488814546016877362037030556366131355696662259900655359794401540908184936136383927564446659740571963433793882702935199685219661165378199159114919751664120985793609034702322326329578915755171755980315234807615842570174651278976349351827362788593773913272244317267365163096965117500927340797752296220976993909808209145497781322509378999091001447376196491506416027418648002347267655466526444720404347619453520259642226107031617245334831379573865130165939481109936435339648497332750029344860889610644829598924722756848429016454045090078802697709422687968595837660059466257648244816227584756966159593862237463068751538729825389356070271583383844645699792442042265500645560857273746649229923662580813160771661203266930749069983357007743525561511384546354024290726724097123230662867555397065150312818503422817467029034155428681144374085030448063166548783368904072111240387675497127948402574910255944384896515810125539922770477237975011435108530764713581321734329969983495908132581692637592737784638336636160204271509206812440539934437679553920637750677213089649931038620470455556920161745079609646062179502186933484432392316946096422023897369776028193702254635630239656931092585169515189886748531110249483047222271069201647292097416463162447673904989405450415597360201865793182420350539054074192415306844262211878411495016746711073631530650516202001593974216639898398029004262186093501629264847821510859396266186368721025078576626274796202860590949866406033756883684891751085790436544022157915428297820849414472708235821704293478387824496914166434780241969251319047283721387123934586321107189372816465058309647094211671561081271162018559406457825781540982921359207414240493989245291901783883823297730641129097376746391290499764748218628875059295269362611640102373720857577133028272526914032304018121654321977423974121158577215714555801455207226492418684847118720014851265505141186548745503599279085132037006243507158518800598734101803795806579331822513709609371887307554148402906123564104838779586523121131707104954090781649184982768307323728438120972440273686166887203150489943451464265053454929068091088525779213362919004172910212064869221322635525650119041091511622434084767277248852586267675513792117827648732430777522717700368298095698055130497196446705124242911925246354530990872567460469056330887569629984374783419131467375326551772676714271980693175126945897370442574001131666663669044063678622772133613602280792327930051355989871123116989932044258098581660354278471669971596600870285647244781964684797902247410478375533109156469493905478261134389034897576530837591160753474417023157210789076174373639639845202255290434971507565653153601318296427139897132396219421200760865682291433340036268957197223358720678000475893104549290268150743953477197051067974435261364236980010327873767859317692852570598903260103898862117302222607473873159584176802630714240733759043009603765755584403377819256276435760232199769295346289811023527752753507794958770010177140428229394638860972938667193500867995141809248326274562808385775494577769202854267330262084255359590686596860290216976135850538652974916196400609755728830203185131772682570442701840155496330982108943733138300753485626265884109705625686889424167037260624812727466826852980551872737648973168782289924369792256334486143978678273433793888518065393267462765875410227695956902542136036038888753057995718628823585420519080591954740983425802495917167455715717891394925416619823482157964167004272728691191173657751349891544836889228664562041428085100374048129714777554023141729127649840063531349161183899416048820551854443902341962092526158679277708295512865870225253864507808304321800613318718808117742032422518130568864250661007939213532957453602134914280713752147487540234611357276938029606567138616974350709891044622645067050392516325311103865578695157591591101021806904147868021195920961666634545281166127946308258055482766110815340482574617043153837524210989902363916409935977264395675893590507510989170717118411305631454465264023771210540151405013263344206563758624355954336766024782697514841116394843305766787326250411819462720543389882060123019399413699785557261817801816428264268596011240868075699187113281707187381558422485580517248962836809264648601797798052077398897579760134235254833919758832605430359935579077163648120764274088425698846485728474750735337691860444954003942953479474212987554255183168759058004684300715912605206684866301738984861627940995566124825033503952193083479576040055575135307032439586126116128301419504054419689893489603941238425354488720477093446516218657688877221737271556042226569547252563770886587041314740329833329909507265773281299303682076863621426460516973109932916612605132014032800057343491937330784121825630142596950112878687816025302765686319602075453928804033300210404886472432150133490922398028641955813146489117144129838403709399374209393837443602882396987941724898630355861820146788132658608673027889257217288298016818455137383984603492221542958345342162109476216474085562709877499241769035526249204112330564551820988449402295291449427162629820311908332075782210763429921363269018462996080077808077124777751861170511996625942883570713865960312535150056598375600978874986650192392375354384859886212926723540125615264216558948675880410007304070224164045767995614282085535451062140561987659615966114337621359149780864722888814992890290323980060487891710162398201068703417956163987734783972118667646360946258330420188727711656791525495053866611230438496368468013659340280038302660551056754278662961080738823882293624695179567851580883401388866987838243214472066792293650023165320478437218753477148653561762356813507555820426268018698333450536915296110757435477624321043392806708744054105195338368447808465815414109692307038736890947320935618968064636509504146444051895980666754779901045566792459347334434717787989496066880958060004530516510401224551806065712780928323159183930942868423645979005793041134179277638701545513700995369463899307155961449293999272708776618821057786954946573551616505467897206772371597559716584672510397639597861768839890234768605346886042597532663474915116523341604007199043693740614921876961246978524191304398300857419870146477331402313310668763441157414705401911419662620272798388622855477050179848869911226565416940485220100111441547153850138582425389446857464706047705266597612787259174488114562866454559784654133195520453236002673380609874787433605975750120995439167694949897224368330929095961082517594980650635341455120795440665738102597476095799836354550859466200820772417928513246881596944486370028050500647639290618454872863966847712405812731730220409861263017157341520580994855048810867122058086100064197447451863512150277875983965067061091040816278676379516094597022900511563920336618937804651221209993537739463118144409834841787176576724821669449125226105236457110743615205407173091161395736493722337831901425055447033784569311882812856386699410369878625689680150642152961161993722780503827663924526427676621400650026883464258960722401901266808059819189911614863025878963311130378022094261435901928894350535830004756227432045244819695338097428655554325890341910619319455251650569863117962137232509747531769300610973495623326528808038400082838362545321325662222624231462407210439441285099349319221039477510322159319028808606123570737841728612684782068352035804807593564969656023091029269917730134082625185180832220355049165874821766413566196965048957542012287442080577109076729196155151604847292353956134182662052261061931522468257047995411846527718376220522991821989455369309902494166254356598421390242153900658257740639327031151495644928142079109439397874273498675793996351255665876469734222419970101849726121809600823976424176831637211700306675350590222783364162632697012493713186854703052601086311737794090165822027104384554027785771948775035443437700901530170700333391517405538188941585598790633736924182269457816719114383025296670822310421358976262433702286667720085871812789030651232524472335642708790462058394265848208220672831603037456648871457397421408926880446698537349889175640725234665607068403272195594978842381251819548463342529477433807445231217315955355910967866602457814869654197798746041846672453673338012881181794933759110565666169614847107873869027405112811400686298846220850179732767486308566570648408403437228147495656262401740192900438977301878468178726242770547082858030672369209712639161517045751229349190525067679403316080845748054638238776303070109212120190265170278012964529086502033186193155171717628657060393537122230356891677966436881065385926995750234638239807371289461671094486866395765733583845280079285781882810470191071467040314805007868026561117365506127400335776488115917239315570952582286255626770422950061395795150156467581862514273659400498049893499902509168669063130730069432286652912982700387054648185282690157903158925531838598223384378512767891104301983680724856157830667587661678930132635872978298024841202711929053661383825009161871954805396303153687162484437862873304809239844887550050113850745577689102134663910991861032150983275288254868631435538051964982027530184572161155155264397416500881262705015560535573333786854671037790618714741020753778904362497828896552789669278512192646422768972479325573252937299664114453097302932125039480757216378932589411090999670524293315386810373093663246801162690342466414031861823080489083890844095102778499833920068921653981178678624898203088551077827127480580704959916984385298035060597183310752823289059102851115422254882282051477910211224035174024059962493001846369596442871682787395997913837824014108019197891045656878167444499966148906583324726901772969692495279703024048717268665917395100095277624276303955557768960496951219988030326462233369869771027413636521501725605098544113318415630404616633748398855452351842656335988266674381312317241384266524699425316286968245568705594471402103846122819206087654799182549499192729950731960242095370689084311973243946549780581240890037241044359352537728884216980273820172953292878264728303067693115102077350747614989809299624301749902938724725413156182886442743639661423895946048107572998406133284985819334220633251851320936272092575890699337373306220511261423150813968658680423381740824906221105696842993342368293572044467461480206547380682548339839019598183228299567150695214881461876887644134037926474991318719736233101939817744446936665702908932390583616502752670440735515148179936094651084714969506681100282822443768377370617344392165653660192590731403672635633776852456592763448164237698963131985859124273942196552759179146663400964974885961785780738967863485941249769197675854465130620797214549886056798879862365990375944465956963404207046309041354828851159603298494786884817862225955050847213636894653347265945148270720733841337094598991092905930473986255519156048007053732685046979134667332148251887605174640925921712403123927239489864466922642094727298696614445194929687314493109363182651818226389767144905319050975947467315204469969192681185854638095065329240430665870740732088224116122778003817618768946425969671174761000223489965823276398253760047158517639861132118972006158639129834650793185453707938466860781354155623723958832080397392431885416816268582984350172171903366452428461988297817905727846048367184566066796115632426012460702245111594409116377443566066718372730490936026878237297379790759078725843319923929427224733668909609051554457976204197396291954039800917438808074079191800074563751740571927943218239451579976936716532649994694046417675072483034969368860248412384191429941936872942533444962700400072948392110946053929392278373170318088033895005023627974243144012159286452108656179772177417017905159281681342111666911577360004445738915124093250761547709441117364504225652275528016448864111834536239984191795287455517213571335389712931265243304643342359948826357262804307707393553538387761483770637807674297036848968974780929614207718660925402213323463651910612433996282350700577537504495109110618693811371491371359018508793034092560703843779356751592870611028201875216566938680172275179341607294715819119774281364854646239824139355633377924665131054147424947372173665429550091754002523319079626903102084936417576247174999117847163544361412926016270865391036053014298377272829212867117148627384474428378158791623246596776866511991545838971961369239428854688385998866856931587183358959458609294795644052773940385415583069057249989962524942673771233501478959381810628189711293504966112349138137992576361055952339077765318399676862486713728257241152122300893224340532817098246718631761505294133523832366433575231782049513116895044063793849948323041449433470053818537785280400245530612917342730560207623006486860515370501977910650802554542574287109260955298096981689622144814739062142541021805939176573450538250162768514348688807503367913253452235664975739741956753182181062384083450241754477220726574594490935521014957955420675280698202913953333026967156284581031327865468119547508756526305968708623607113989440296321379444541094883983289471832536490494856433492524504664384636633117556433714090686111973937705640959367525515255017846023190221293207267364085573556009463289547110180511612126046367190906246842820326294619820010509284569862406207952781672810059169792923711305864514505587014048596853366566504394950833169133843509369097820998716204461613561860604934015170512703239911080267855683525480461665460800790248888806858900589746861102212972344436980183683146202827455740462171665500440104841478260406173756010108876423866338451781741009922732778870878312978761257606174771886265509028799393398339682183935626763026506708137448137207241786623279671290705957712258970150194220837791198505844892358298849172142363891651350448218210155312512669804450324039429116160498933523449100898831961242697546841189652831166276153966152416705889405299107044959445503829188009829954579927639087447543707899729197249956954714571730331571774470941819650704687502003560464924163407340946675106723540718662528377478585348032315041136097880876016064667838276229606933024895809037460834187509123507045818609043014281101715963289003352738866112007747204274464138043383667837621579572504249715858585422382313991400893451153884046114714007995495849412668392397581279570672274511537195291953727235510263278727349340148119666845375971552408155350674353206097665604169403527880083514670861119341016693132079318990851483260166012994562125798972752573937197812502077327999221761160561317160960174433257223921419650080546217083371758957702300483033649975497548206267770588103377856858100194680481813344600525901045423884104421705651296024586160246254179225993532174580754026097504261045339246135767270748656796669380950531434207606584077454719085258400302533438832505015346619785995534106489672040231519133678131869214535463006989316882829756910513184585135740314022447711322137872905335328519274460224050547392353841507465448958301842519117186672072892140077150098038035743484141336102717027880508070055661679386686261816818220792716619836256900893384013501066920826394943850312188247388984570350060651147989169927045450858260062851934934220191135978037742115583599196728394785062434782863242847561971039731401598584081359650832179178079249008214302336484445375343037084465082629712814991284212486001803323262150750183186562104995837613162175144333621613890219629814364797361111855171305076389876566224879125000913907662803204323585082185304791897454941104622492482091781246865736198624218747200292862726724937712391619109707478967541991991668506944896218106209523114242913948710572162514426351246229049330080633325024008464761225710839956923934290105224703317200399220143372170777792988087252079459161522053656598098321608764378508334072170358067279616678345714651023013126100167037543847807525310998005136520949060103221795321111531548317340483870507155060479539360662205644385474428916338417580404519308432930396043438163858154931208872165836111567411199708873651455225750457930955490896033851929803395996596160161037152420825470125316704875803942753925763273213056351398148395140722274675016107432520264934013042522869990988190840727899112074476004016278678950632393066544630766905638395733055151793332224127740744691484471683377084443191631902067469703590437365808038802935475798613455209150786012053702180823501379036073524265407582185398216773967421380301824680960295411235965043096677575232549429595301201583912646782637278580786109132462059026557759933299562052956650955656215028503152979091747916184196515223379237307717162100255386383919374958682158170596994573141429729972492956654442762708073848018265442273075627308290892852974949290387303815078730609425835837535733670376628320332943297084843233818207888156846984587775622881908248489062209807893790093762470412298476667128941154187122029533035790856429059595840049796806531483964280769743859448439112291720586927976929288544477462884660696958724633314576327495080657181939865325947373002488717100041921702144378357612266805001462685257837568563553100937892625969565988944695428904669753554488200892981963273822443523132576346897170845212122627615988663295904675157834762657025577188545471213219109328054998293196983341738494844141489522234784347470181279642157159259427841057247752083374093999528646071823346790809755268929303765245657935959048556560497381788734913178001374684190379836656057366677183935802069726905882586122789257409693186972674376945596167966666553626934599352176605841360230696911258766591735324585566394564440825212824602006394919873814338336561817884361333986736976894625672281260590791017711575226887807149578438099668559303383979604370583878903449271269150405767886642138060066252329733937606669598603347630428584991601869840065698770427728926386418028204648255445298349198212745917265746112234633140379610405312384325877984555993867680616552142059641996071518682676109017118128634942983256112836844614575653792806886786498932821000050607357031925646322716339331623781616252836705984310984229576226981928463823640480395838173174663595988061414704975814992807443807503664149726152603795850950743253962598646861991747926683364051258444421395036112377711854035453424498650311090709170373652698658043630659658918430871095005809493104583007094037277155993790976687619042193363480100667748245653791302070474748766800875011824876260445146955991569445777537369661736924182586074743517380705605941069665717128392371006466336249981989115337057340052042061649173038688301119857248817864853336035668650802904087552418575685963849010749437720477715397964516318503551876930543993879391090785789729442728505127178022434894299756129394750572485430594629013218240319971024978513609558350970645309604505961515324990016437469493018244018302259855949801452724597257034817044219687455717257493580112016851112573280435985055873265216087475043604160217264984860618752123255528769322864282047036454701552644191280389148688478546579114884626737507985432641453762124974170729539578060167193477826938496503156159955940670908561699006592289932680643204798352845100809533227688923944437211355104109316523143689938946568361401274810104846756826763015444147178734897384224922691586644643055935945181353926358160257036626438871925695747169183088473518921105159641583845105899694455444841892974672634477838350931121121870103115930409284814298757461960587034193850574999035779489487087146690519738083232633426613935113023074835725284534430355505910085793681050503694525808791693574937351880126616925566561334115510906868770021444317160222093503604012916328146750300676338073195592304426589431150263254694596030031956170123070229158230083929287276019881276977234632073069654867946701800293091239692055352469520778583283543824939805991973226078625436890835378619220152981983380115673132673947512091309637084733653580707702496886641879342413601521809100163508600079855306580350244876018001507839196839247730451855042373569048071081319137733670833620385235891419096299952929779356502651368053804196840202342417782476919895048436828095134365799612563017585278691184544088474214802370553257359832261492617122491285457479706043235235451884271701421326726616825745943071101002432249095487910212789496237708351467130846515194337871809416390347309008451019691108087183322063334192862490485091675112143510108073022167061852560910785316678823813611538777847791793379988974499533183247345048041411772619254750687167103879723670748277221322075289544852541828222190107577024931817114595598099353163114366140779748063666331382329148458786256572761572253071375253263123580601684080344761059996041683327841237892313094878092583059639361975885967612869718087234188302195745628301726893212463613521251980228742167677526968944695326007589415333681521238310717530806356066492819677905134587716193255111121726424607127795094658912654132557831927962035439956079923965595517096292008922857652215752189946705980089799187907367593473253488796334341781485821350713616598471914795880272439200690675803665813016405419222743396688184264717449008353482261912459205684107257769523011103360073610564760701402046623446149445902713526964332297384833279836245581557646333336504070150215664956931277184639954010861132060714593031258470165262985426696096032465527728898569982025280120003888981307038792631319133719521009630387887749653847213003384500334078995037548651863666076930403207185229336034991404730021314149747900012317495283211384632569243608965482456619625454287245168765031473145595684597294184884459626358986203824815130952334857365135879208373865055366463320065199003091962312219489542182478595860562844101783211307915222462418470168113000604564675546496562998599902260424155722951864214674840224858853457160399745834617805776280373817866723918729890754631244824634026556057481830711137198680902357992404956062806727359953668484824701291109321091192217473383834552913722913671176302602611351703780818554378573273373963687372984395414232233201320392239122718191290080872621390357861951504925708254886473877595655952145168937981038297730338694206725971603979561475320396392743195129069389347146950670939823571945343140002467120232132101354646288929988057572795482139482509778808651203524549016620958482676573400642113680617043120151167305794385724123960042311237236558062198991948552981700900588780818358296749418717756206423000975213043847238180641750639280098490027488593806181112228426979065036591550975249370441937837216807151635096539709636357344898654170299361550630707963576608785636350238827361126029511666413538041149940972067262279203446149758083112366119811792716119500074875190870984620050010165722433867680667983880979003814517335951389339681052531004469515376770607227731710231583948091870028757050689261384040517282276208016740786301636635911646039277080038702716694428659881570558961238364206021462099084664590558648856794986499211677938631318840776240351038093814509685249972069099608040191148480565698343485005455110100312445470931924105924160797823379922683446963177407399226846230682910446869019484065472121230296774455832320341962333600282395172551518016965314873835773796219228434947707368857989680681940629553698266491196928925882077582205158078838441012929056873084064899905992232746179921126276649706967615502363180568670143795869495434011107098809064120122311838571408388679684411116583396868261429078610543517474572403836031486389070910905281402780418437302703571528305337934354210944971398846160629180168306215639545178655521973338780200867800965870349100275143303781842467794842370261843336045046447644861562161545041580467236457434887479851545124412666268081770341899224629389742198548448384923215534088029599445454904941219396825705531180390140055962805050089411282150590876460388923555967118941822714266714939109946930380236792329849280628308983303207174147060698576729623968032218053646168724246625721603241662648559697639523756495324242169927441459934397665080458096055020529942245551344586477399742807074943043501732495748047908991782996997283972429982783483233461252038159275683880154715517273082339120474995257048453095735413510455610086247840544459684946720566265211197270206910185056681463631513113627180501634944823404366348255598759289571207582309799046730811077684704702128276046049420184041925775826499634592013793523843754932826235543144920767030379739193386499848675278275933701683282191842412256105024194829663675428882959069477026065896267104248360722929100696513014830476512341800697784034564935693057666045775230672445897983644391150324312327877148800877016530077477787013774725840732858609502988312291291769709642121062564332392267219046572891152126371304740498633960026248145203092519678305280502939867789678212844178846082297383285155491890535205100668329545443993626160139990347581917409574087698820029613887274125722782436650135646408841394694430252985460872225548155709436652420257342664746788474455602583189301796571843821463054141551015103579226705214120377694649272463338358604383365385655052393830789481655690892356646346507101087904412570285767288728894163192943021328644522367317235979287079537212934606685378289290017477534742033562576518516563556150317190980342023608558541452699791413550408812172129048969028978827381873137385773917648269937397248078935506212253044841844255429449323372208603812547618910960540113903698170319321287213392407028201879784041986558423420210995937567220378484949421143452498652226882369426990848476848229702834001377167007632390834086928905660210752354605131374514091923371155521469754704682075897852276941083306772976331050648054680070710130921001923230295918040010646090694840679830861907528721828954741432822548964656656445618738774800958873715968834301077052682744645507376956889228693143439733472934209586121228167123942814269528159599352207353129843548228393664097311685302360412208150258178235487739793573534926060585351230155886133990365406583024809315833018963909789913781349686754252173363210333817479246589497209840846993750908868117332364323381418618541056206441181817163190464057877577837830664994307600619423471014779841074057657937991845544000520541024063182777675384065003849907976005410253047969639871243610859660157825536604807483341284570009357087453457074115711456907377898936940233633417252798723406314019787442107121321049311248772832941053261309786287212620431244869692852500667871534114069930225133623283660318403684239696263187067130562850560543410709799657208866879679357511908498641354402141770537648541587434461755816267288100639489573939671605937600928640339179413329625009013542734533817949486155747828197516910321458211398262968530627301149024361750763556045586336810564836777183184631588833453153501502400176676470020876378104323458334861936090176420946185746541248358187231561278091189335794210572366518676773682778514917017338424058668648456042524282833451497478489899629724889276347889064442321742910485400588478051547094343617050371801275021503440910570797171945254655758102212484171736210210048902636070467953783828704833381522659460435376761540626039199160413369135710827171508652076596669612093213131799476915515177666054460413705139354648394081610415348847192242723027463501324390007196125142860404418443512407082397475260728033705652586365237910206668707650223924127190316150861316636217807578394863422608991494316099267093294189260982459637280430520007518863119762257259332371787716829501940848125582624115487536421849608559422704750366478108812823013008968522650810438415635506309250368774987762395043267809199983119158200204485021413033197507953438170413623708462638267654544492468824567215237526192887287248746804427508211497936008775873604657699883101975113909769743860898942193583774002180800558606064308386700110552458568757106552664631349886888034602099006389927508029691883778898249901153260705252010075216401314828749435481347221718723283530554933728443010838147726030181767871339546269483864495956495463422161790816153915471130841743700031470560068841388897575785844746141974880098286227620620670608779066757079215630548172419969503182690455892349966062157194571795477634226729179725140544816155644963262540406021682306053226778982297605403088781932078433307487667775727628076160282377919022010223338986103985413315133186086221464542891730374805377725947592656984028284892993781534627193507761861707194371145890110907994674910291873583368003238972613202139443165959675909719842811042826799787955474058006062762216481577115933596322793551347214798938393018261817693071514293766222582397719405062421017524902123518759300951823116119662822828919811049719610059415791607703868191405577507862142998004898202521958790130621080171751003078738595587744838000897190779899557712791329329711344407599772273645693381718882449016932769636646820605999528559944800295049356012451119228029130407519158591439394013558992730799380295932704024474486016387510902903763261078349882508266335324897310853905364116827561236755129275379559255388043280180922093223208775502455528017316704727061511326967331606591171654544597579013106725912358550948678872422029856072279062493700553838875663991387397137550250215560324147213457626006222056358002087362185148153023870961409114002390263943352177424046775646603298389223782273091430757293493220511347054322705734932760772677290436604581638272523674399265042910919342163111777807291728044336443544398659879274111261176614991089368191340315340122535038075523595578981954865348556420251410253242479112986123651956718691479050447761048762326200393566466150850090228166973317281827000333569844072935968981005267661174889117013044341316940649270200024195673144784785243825707108484904689574173394034781767673214795672486197130024063439054079169153577862542981425985140367104429399696335963617911468741047113699968606671534183485230166430920262032962850387585337182737836004224476019343894072886420848025361552501194748984360680695332865489662214299318298936223728949334181632849124605069532117519238528046647254853621733675931245859595336973781306832451533595808199333146054497978068956230418295906949267354022328941061311555200310560593044910532007271388955942475809440319738073190224866647602997989033529744049164924898458539341475451009615014872382604476456782502086243021409053527172033827330674536667800433751567400639813390206194356304344656817702058221053697425746467040100929700817444264271419838898132920126119951686108223683722192182943971541507021708656198321205346909067803095344245089785355567195817492513591375243914235113346529043363678501562763700492754157462378660001944355763125406060283441058964781762648840103982326172669141770475072094616153068641794980459451739057444801960550105311498882369114187172486937084238943601520311992317652544007921949676082007543967508205694762940169707521128952878162133595965145951644232228074589868451262470286608572186500725175259379957938592072367247914057402681053222281056968123160359281782972545438626732021791483073130559498353237585694227735912984081722644392729567910451168339803364193267828947088481656953188151400335336554209240709348720526870832246949040206705318582870956107827199474577217864115483072221477821896374482211247997738859879743269495729103242521652642108905898161048586267841189911085439267342357311927559620939758709373016491203827252226337018871564748450014860481588015204038516125147787791673882057702243773581910794643121194130168350806465632075381133173179828560846323141769809614617119648224203469692964860713232016366815476568127691474323620471903700756565853648645831780097367937257694704242996936497210196457331716524675950629149582147128019293022631775826474743638211748095987735333502993916424424681315507085365700709158028116106743464972648711282194965868757571593127040108804664968130826501527687122775875638657912625826062808917493382944630889827707338405079755999946116386990325348292826414549269122226822192602499043690174837912638545221821718973775623116581465236361335144403131690412548148081586824755174786304733371388805905969222447151622490090318318511100519812092159938015816999607303087301562482817426522047282555424092364997327888133811927213285569665470361301737676530613726050448193491406635325884135333764490062123382792365384940551286649554065558466002665477952342132733608123877897220870891194307878314403494132170738240241230437515183777816434636925425148315765956887271225816092392378311958297398705806614042473408478833045769779735720324004074137434820061624881016195840919092324074837247270483545583066222483956226155188656478770942657010029885430382129558891775137456031766900499489359349303867936390934376647352355071256679548552759935239900342503383932933918793757838718565880826861159858871318860530024389407489284831840714804730935246637987936844713022264836574344477657865312787837048870515959449994316394627932462978599484241694583662133603036512157744895470912255785924459490193768821088224330886190247336485741602088343972573618936067200771343037805304412785874666698808464468283472267043263036123903977895986478452699160586796185916627954589570550462965396798385311590842111904060213814788941968104254813342278328063280464302765687796468473269028823074802422683922200216918072817436780324124765000289841689334804511139251553671569151785630979310270824903365381097283049197985100495882480636232869539634560976099112307897217329463950491722921694547116843462441238046123503947798670204607738591025191729226097138482920658598145095037319391158394762979504631337543734541180582273985977430684288228832997124748727126095455359538700911758397445990559558949710828053743116241048438916182648797404847995459421673868214517073467475039672143595425796123246330283073825047522627998021500640746069045750334097934766586393124406982661921094957593050499838635589713492080382291502423186038491266847763258416188850596171694437895481763110265998978740083740400389477376939239767993286350458746958685172007661507119531963202498619303385312528336220658863318565256637119970594497080929230604905634594470359403904531017902376690953437464936468443751111703010800009143336647722547445157314071227666246410570258361215093314079534037349120977457727466534464403031436432208624564571779957072187831534347697986413950485918381740883790181136028531950953307224318464006423049070610510592451176853931607166515462625883444377727746725601531290713626847996694331618367512089083297990210222270788306460162385161956283265370284077200943756730390704015399368436132206544604628174652254982648758701201539921659041620403656290363437631726451677422346240060434428583428055621882902983467125856293619616970130908821568546468825249814601386377805145274884350765925921825975711065074465759139146047539912639984559891723297626199593150864848824484653825950176581612876680878483828787434619722590198431004438081959220324353806801835375967364823919072185678190770401067083277028945642263642954655824210249093261130605157105537643717603242330665671796937454272025372555816754500443709613017859257166305348591838843416952853371872017778139117302362841817295416516751724555817050081538146394204951627232240672103347565790741682005368723860671980085328974714572066818636495869363066410358957207100842876275179816000289001865291487206689696053971159438444839067700875960474652010656224642057657487359674239927485839066805546112508483454005601849838271919740041508407844423214158473475689320949944718847795349996555688894833471460350517495749528057467004281953641780267735248173325226596172171115653020636405070872919011497018983304944585321956458077600111852379486124894739589154496696739874812328834963628658467631703618809898609710635856855843568411732039066496503012536541795063168516235133729396567609586135337982218507774842767453963875879661110715305812133261281145812328605384391485280342679572757567864697252834591264780881022213547076190761923282946282113624148572201188260409194906564910877622889343252109433864053235479094578168487884056295214493157165008721661087565804949181521151699030152144135380352863209637677328151140745727177623723830201684893027716113146057758991598961575815027788203796399189811676676089409130424940889015359276831205905406286418290298624568662268361152764142924029658795038669714278760970194590061004854588515778169771587746148148842778336894379805046234151980399063528214926263779194240715484052250148640885423354644420369852917765633899764830634132259895107524221963249955131744305909777928784081811735688353121731688932972021276531311961892109535291953399996053013333663680081802324765400935080390368841893842513232409568268463867700898318319346756104881926768886821604554097009904585320598988429462791475538509084688957768658584399730042873338743914252932061046682023094484114949064884703778587256236129248064052229004179997381887964337209199644431871501480761157550054632355428009260054996815627716980479733181795665484782096881203961633725811601367521603377112512928627670593497368248834354678402719359485187079393861585661437032407591107887389245467003093120954472966946522171230996756647292104962586968306482601811156536073233025548537740501676277665945587616052887657960309920694132453292191007195432594977562624259500775137648138424521183463737049572599206588575176466800990627526529378702929218049740078298760526744451152569099637109706296230685677752524077825558022068183260686902239620877894576178191136181382133680783658251737203686038054101800050628498484450002783961381535913309894048764407435395835591098411435507592879303767678487180427492478221147873744088542030420558940168272963261302820782866972278784753134209248253496266509945106999073387131628114532362795700627464853654360422509660135063231079634867281308361200290751044988531036256888448788513640317792055179374246445028977982919718668266457809859712657425966816310102127351539244078177918257329555861473557148518288871602623744303625465330729359017160581266972200865711283553102962910761897092798333991475944220704481423808234515829970189360245725776191541254777060506340014288442058516420113191468354410059722500401610983346594337803581421235028521889220808583962960927756832596005537440507550926513160897534455413163126071647242027942172695546644949500815398650418823938794945179761072533369565208813670552726932032731244404278623065886889919226082251054325269153070015363196666913324477611448383432658447927112861342729343880476277360246478095625423067632320800436328124991101677197020706411704813686654889582651116343126402938592459844983602297408926122471047974023369942216224726241082664544065605882637692154316952801858508640147380179860993455639723183121959632087546002939786745488931367532175914109790763173394223265635223274905439095782430629127323023230772746173764440605944965593176383312076380599878988576317907853352205935646167602576942704184608729377043731200993186874997547146010358249231335160871483381943413993893371957268882458510766580764822895084965798070231650371782636245398461931586391244462200192913776892004453777357577428120060496179208722286800932733217523914206007861091894137162268048175075948586037055427501864136757890848013101116049231358685592571329458854459626332820655615619032893729819769210031991937840781727022643895597805441117089375156692945022425928283033465604709960398989458568957479308112710232974589337881427790953566660254521092966975449231707110285496040101025526916105537905412315315097610814717828406221125572492518168117698269155351123800715743696219915305532121114455035209240965900885970938388897952750197421841513240309859138521841371148053202913431356931143742939902260426505350456989359527567395248362434904452592232028060487972835287619185346925400476741145268658769037486553153220067570222065423803268547373656527833165248250377122860938420172103702488086251361869859624547831496999769640236233670488925927218110725257465494890619877076128520822184804481221477878098536249569159804183090189576381894406725014594248118915247492025467649394234558225338421561468810287140901133738553298189158277991565375043699661330077468234535706746982449932796354753414244772430519125549127715178327034961608676055835093975560065126895965375963510003659004290235973956354247866416914993195697658884632876119009091132801610463386272623022384269064114016467124540593756493301637675380562312805967718891060434270811389416220666240536411483297708661258488418385980173660052404781388387646523142231482735548150482809504049473040780989491468360211718016537664174874203552460375100892371354664949372321925552401206041554502990631715131809968722406599947421331111264393719409948955260187143965783863547195788347373809167944314163113289451302352761309953283173166063511350066356437476530694338309862984260026439159770076091112343126311920100772560553214659996164372891955988059065781743694109212755689038133405172322247320080280958706959393143842760429061870868378658562738905046528289827151301669154018823562189320074816097246354740662733870566194355099037572428673484648565620947908331520895547383789210936747239914995731629204773751916724494272067477043252849129493579889940010476045535613228132360657143287892017800312347253533217968456151200348439775571493953356562612522711608753640675150416761797788878759661217218145242550883741116088074706061774734823612580131799107298491807237474229424612310220700247083358009992052094326090273885537350937618597747001975265815407083872292798766908791551014190077725088485480744673663277451193163013034105453995737692096686618836882783236102170351724659389929983454014178791441535908956842527827837586139097237124250710377093214706850371122259439413533480756926642209862083875564504155264910851567386760465139287696096743881465490404277526719949587461532629497034585203170603456243259492093320462753803153616287053332974970109632441708608501102655738741066910438661580133808724713272407031239002488847318482805751643387846839292819638435908358424967826188264904728211161420757593371689173562576467856389847935469194313338481215555328392638073392602099063057895827992021789925301421684854352868100425645098345004155532362458276189448251025312391729727263735611053607734952344546711318257046760913649925925402738116867384564317895397206526032799622581214462986456313042209827120275697929013271958924505967190325698064824140236105686374888174707408708388234486457013693997497817382582792416051440986880403882975021794367916125886897983400353710777228140694211685163865454013890246015325785784067082346721608950796591849396072566540815244267600022717052343113419781939227929205559515585786735624014133872781396436354840288011753235844172039189183109878026388385281103344023188630505029135643127049507968247421639924622739298236403450041026423872269891144020673990916115122866121244679649589385478062951356018169085720760101821881644174237133652434234803984804431763445500451254004206146971564161812271747960464118313057315294599468065408623048659810899867791153115448887978721943152863077345594482063719688737789062889935942278392351067812546068880744881369660154869472089436567682750706380272267873247496428786637419903446613300800833109188268697744760871129785992653968199098558271550680263844613963245311671542651201466640244569002126050893508795934978120984214256320410734261804018436146137753834387912606535036839696432929370395180313199425756150364653715627081302864025453942835035795799385922172190711311295604818218662985044754064499114108997984002922603753350335621627448852513936254654105259154642588375319036236176842528122718701432710097363176865357600999809560422648051478723338070507478432121217290130347171969442088379671397258580685252671595702818316087927459562988254266855161940767931794896037454009525633266719741767994161524062939836700503543235698605602720140646068936801698097701237700689118304597662539600388447441617410004075004172616229475366667212156340238035356982320200993754361710997945487342939439113520714568112966476570836430951990806572230039577682408056344398116369547128154229594982329517932177010290138810334589563222476859092468096511992102886196143665659256021307890052456990318037545265482050050624533241261447596314327868160527127471791894446370023264077351491748193744577204431415263196581947537532495742618485580818117527361484443520075955776718315827761231591032569189827913812010839472648767920818646557376850150537987161244413907495594421778491363747900602015450116940229411758951785052003063201079341291487737892840073345935051021678927085038179273070252966732528998341800767452027355379311676861550579731653806803779557655682266647956313087122516632214085457272072152778885718864436007747699949057245915437261006501739261383068688138992800235191208455995971601511745721300971117741643730029913907945310209305108773065520909596216768065834494372904255393091549666598296980317199011566698264466931648120821945314031984554478279199907466757003645387907972118562991003985432968679627986396613576895265705999675032153869030160266223029940886191358140802486285726680337916021737763066886810727890430418121071915121557349789451275271995672378719738265212109367098811699145129139126384282349615481451706451900910883086113465864311468617832303831168300520804510691239681211892886824255308216093944641370014745911541198432595189788123141357939166345212398394252488313213735989445455194579108077673306398435859528968180287218322686776219798578087299620773018479888721215149129858324816586765891340848383564004523679733715819120463491507801206540339645264435036091025144298093448625352183855713304889127794724461579115912745736856924330595007418479495483332602557696662570494573782052078798516405046991597267832849483494882865995758664887261428432502988386253207383826005484526726918922774865088053297957569417922853265600333986005660451450865633437542394422390760540956465261811104359298276853236693727199500098473620051842589916036333161443951117937553492982972128089477637073001786322611895760579353681439060627011695655461605507964449121602548066471862980994849908595186642099122304083644668419292076023555909069497643148602581839053551406433272583211634378910392651656083867273173918409797816967411073800823459956009212416307904784880018070204538123389274748320655404236364724747567350383507293340533979937715543081729837435629240401551611311332644133770092479781609809111922522012243665656953129290710566095728604437889250039124725142509971550665218690168065739865245491941233386344682605867063073057163113945734321166329831889682520899804236822392638310389940647451017116065494159974950185859951649208085635614909070760746361039623260675992418755755160379954301073595421012338093744161778317248407381845222773988260312402692470098940523981134020099437200182631196023060774173358099653215882572755975513294919549084983171982487206497590041284782369646648385105676997427828183521350181362222515364315038900199732488636854845639857664866333959291100603489789213410675900681473421614336161630560081243423018394728402552713182087807004833440801283922624875753470874487844794330396967404431066283570816758806311978346496817098452437067418821476549134044165219421980100966992020341512312365031171349359635776901589666549667732687697353668362932099869863822352890639576101189525505700853049398584360022301865411204318511020143764540848953676799554843337981017143475607920752554761690004724667935625896024088034378317560740121548413119150034799668029319470905490189596688923311602153690484652262621530227689266842672055322235004926250597013757870532757198176477749211558959149862638290302568520008653054034459247623632582109073213947116276491272398291367958010170535610377902126477795418515163017769378774619537372004232066860210502160159321434026124482238967699963447448709071402281678120762381000545212096342251138096823742003789669402976962386407774253891185553116004879603342735126224010690059072616541383722188726357669354382379316790500538300081253474665263209370957839414796915052789197421506881158274115209571197065646940633265654903469373561310576041603481729834530078164813918751104438774739008650012655080338629055109483458911103803826846849046056255965459063719129819517683643897324840056998682427280548175859255188568305947425235201126688214780848534497913327361676181852388281936396663784144854419725325354440064126673740022119680823866938898355745297207011939724423622128218150400140498422903908091583300690809929480893275748986758922856107236022291274863850450924736817702757629020410486310618076962809647796673188935942660429123596272295034222993301963683055803021593964181731863747879271330758104306124525648680872893053223557158345337506385925406651052127198833943194972513174738189655992893225251380018252308124399758326733126400379505480199171215235211014722889799910642968174460113984870437062077305313245746450514416532097250031532329493896898191510746908206117754639270769351752904955864630234054333994463906110464458387550873765672163882543868060207359917792713822906567245128200226351687367026387338394673396673806571287198680544276531471240097035246829951544946068539541156335858545896750638374906391611639176606376655166931337961071287665234106051092607507394041835837410963448366374250439716879931567804631449168901028325601692249437202337741081280863190400518493430785601856578307035104706143403342581069230664912613261530481870514849006563413338110694665442365360687026387620586533215843677206919114181318664553674861760001422053204475802137568708140859363616296566179139546664787098077209972569599089606498190274683968727885424354166405989716214171573724690130751006386812260621957471746950424183980488871368284512369616888445070896190505001235531284072498346488245748855362844051158103425766172303679201679798399790628995321696353131949337425772313895004105736738297496999080569846452003358884071026135626907117792161085238670594468681675542745122253041907164364115328965471817815600514449872763320203638107622536826191270887487717728558664986213609158508477843844172322495491438078467000413658854523467925861071139095160220442394347289086365241619811765910350595838162420416551497797502432706020406958071947027862546412885073414625811700972843288723219873823020358937524010317138158817080079949277310625956858226591006533279966224070836959021110207675246629379002171340481693317121322286473045984793084183336902958365678753181706558766850332061479747707112263879584517026028653051224663170230489968676538996397844846306456551370465534454178295321079881099072926291715693588902127497071388090294220704946395949071851208874580280981474872074280373890583453440888275103807990474857758753299451856940243284903941812543107523030828845739506105942966357094267293611330850066584890578020907032030095281438943583239905179761186387318991236528870540072221704706015345220072234339687377409425223322868985828375608365005206911891501141029055441145419967394854746626665726922678082492338237179762805463629252540343049389205204006561653004874082781040800414308706370812381041341613523386719033721208027946037924595283134457737562001602711802974140260268416813745374400941439266817193416724798006678864349055342141620291589097732943465584033128541664967909200494410681305157993422675108344400629753343172420702264699423349289381019230535254252758295473148832678441010097414254916356040562103853181881599197209605882154797304449333381697021492240351469559944219512537186532346407248453471631129523772337357150678407167954272949997008440075643282489252274867379756932598310106038966124633087355399452197288627435228747992190980901005554629625715309174648186840544071263440810734923491815074318805386569361100721601898117717922853005260781608340490708444019189452009735314287543427295970295024501926452291933067111956918729208379706263746407094429244104199904142867006278566306279776866401192024064051789879289173366656151169858696278807657804125002806844700316947050056253899831182384122552633834234041658014771548270493209329985306117705975806067870820233513783906519643788101665651687279709337334375850585578555430210988444155794110448435069502272915843331056444444661183040712849203338457969586062521579912329692844550070059846316317373309228360522920978334659653962035250753589558124703963577275966506552847167599999858081736975697711586776217451625295196352850554391728440582685275336368341935917929868044483050489480617433386475549850692567897888878260962965253940490396818667657304626073081263853960942900118364047365439282376371689802929598105321419074304529178013154999501194215011322639390826850883045811896460116538156055816839862644379411346337301710023678654521260526900771990957729009223194500874945011541458823000435496894906702415619358415022379084488338822801910124509759748524848541290609394328346915277798480948474471000947701370041121026612162406627420707993317352832409585304289805250449817939092110075676038419272211759227968333679596739414934214905679838122225184399873996867954793919155446596516006302765145760698834611284940741668391899717410431693121996910727764623993616244370815710168356410072762149982419733448697371905606560059344366484123354683234353059366574551726650126380203156775699976087027990341645890517600077869090313817528161201793045008230255005458485109894505925671168822099308686705694792982198720463333161762054217627591163051333673924177765766784493309281112085948232645069089816604109657143483620896140347390563254608836553749107907405845886530581376596954533216145769773381831932257714608818357761773011504582792287278250855766263222082850598702202600813438861312074928821647931250120158965321198148260737976313806328100952057512217063206812875168914338880536713499539768133415190782879999517288879251874230642913230318194455628494718436858400074992507116728964706574471166423524598116943019818701410772495265106035259041851698601791969592588342860747541967863678012450451810790308830901361388783520179059412708727869285983184918556435248012134456002046060392397963191564763370651804570048396004050615276516567956426062691471520845942448299882863168063799507871432334600563177474065026516695132187624697676510467232180955355858677861229181353703160038480862638342480952488837861561085218506028848528240621905678308652382746573899519910178222137643498300349003961301287791027072022435251662348149730180024038306577169767407107864050284649446490109997244525296137018410528674699002435132156532252770137401723453293623155758921269050390891344588168651330169356815296694667494062645925828777456129700642831796940522287018841556512221224585990496236619824187279473409516644828346185645950017027695834893339970765407712485516906753466003942705178062758926416752509168858735061920470546592155685101325831661994277950645382316712479391292542446452334557281588917311204776277668442448165140683695957788785460504263208781157402675411946530954392938289562923755498383935689118106441690024705047096706613419338155560575445904727454426285723329719364641301296433701896308631688874955362102475582412729182067779041758930836252441290843607631233912188091018914772125718591379650974476837838901409559519999867074943018503996564419929632782268305016491880458928291372845871479973751444228812442779063147150723593434460601223630162712672113569441627840521114171722210287066010204116710862121808164339956541656185083689413860494486002881831776254036392206398293252002211690197611799854268053239489595251298709575140613134657503169660090452141850178819504263309101591823313775679434390557080686591443032127070651669885206209374520462951181861885481941264272719191306785397953747887404244728293624194122005997421737825204055543674022676044262937514580640245502951007013953654364409505115995584079400619961634510697066808126274269384381605040577358768583049642503841724179872524591868700994904717849776964500933909805703832020096216213640644800488071591612441780646650805542087431137128496745364963587900990743112178641090549896600125069038436240130516806401683537041857529739445869603467320954755931770969248992424348355603130963703554607554962853302870532811983310315001964574336045347527502017442234408850589788094180193768768476366068765430520905410861211376974269987176288200713493253171531170871584983762400788655284658997720615053456923641234087183770392860300102543668882568310147524037478747563285233691307128243484139686425578271762494355019360655731669007713103982904036381276062211444822196937387075555614005789778903840798731321556282120777632474725946769938202257633775378091749911778058886327207193244076208797329788463257950117201590243166615972796488346328700851955313153541988351604150066287094916119462964377917738803584282692017611593091217525474127616510728116311629268671583124747013611227648120418039676979337068404922614916566778978984164079626463955052074739160338677105203354781635799256635865833587802079642156481904667679552270647681700491347649661264158447047020645740144253499952946969533581630238130679963967723632176384895184118844908948653297054605130055146898201325640788631457516643914920271586435197211516093678776597644652687246378169163844629755092610663401132781833216381677104072634664090614256594555649107336593248480953383888855188442831163898383324316462147143384372909786386172906622108776280416708768024567040767110258141341580237669485446005386476642477639701463327737708166016383478223967829162089538993954177898991258272428023447302419188802671843693295921506776977445053786451286668729510805478146823778588883061053313990346786627912457116561190354851147886431637839062972517652240940844377398650746364367903727588867268511049190938921077208902999101024753020007442085069076359007454267353774458943322850709605366391090993769444978443114123547598872599819694574140104295762080203670281412183753120386647017074320945037518619050787400406121496225003852787832243149286653631267813476614389122226368092753737016204539299117077228331418518103165738707049248261024996911341221325228203578267512524506647154871144636446121725329291680735531469803713791290315907852610155826186084109188852025459257091671621530584987221013247021739762382664500468279212051835466011089780443623282203262082072195271783990747023310207702093189549197059739579006770714101708891706823317252579537179730173400499260023305819714203266891686360661349341121375309468186230650188194937556057434729788411136900978851531402071755995125382276352033455970792042484594129311602044247393866768243768128470780365870463218863552652481811018727013024692760598258105725015436440340394080309052085156776918512014689893798600934877791806206494409927373414883670328974066344545047531257485740430486630225122473506357448032848129160044091974242351704956487648087550045414783175662957321947477709813821196910986376046736732119121723380056238232938433174639902593135600719330090741911199719445472222456207261285207690791498563155745250790733485604615769899972951714779977917414389245011410434999664148254243592184297007851362861241523054695673414437833002544888719635725774920970213159487038821594710539500215464023024761790789198742024306755472006898634526636295784929738331435972735355023846487569518167560947241131782082501591278990819932840134236513479464329818590851017817887309844713696926512867910477868350302141070190059521253079828415788850209376364659204680028161531087195492542254028336059087389576058204413935800290897397201540471518119706249840543319784699880445785074646955891940999684342563981280907897570319324531287292952543831042070702867750367194028748720227036763564021898168554835908487205803289948041688103620663990409854277556917857249887003657603159849309784875271618567716402742099478079805462730138524454377077128531525564902965477560220109888794422127083330074689588400040991679939666674806618758591052771958484457962385294658934658259695396060357775751858725766492073091725758390474885606654750024316849973940397049765778202526842176080355396486020747958248918156203271605592632081826291479239164310405623506190980094978060677786051880885206619215777325176617523994609724787333894517105612878339253875229769443887081422734823462204475659665227710296183294526947440493886900601756583556615654254868796921101659710976119788880808268672357280246913406843277950691602512091759297585524680165325738501995198495968247068957051899803448514208794263899546157177852940717348315458189286502383030946871938883573059173366510064259114678556897850561467794951003987097595036133614971475723808756110239471516908908408274482003296654599586714287124043320752412152877789455147259882186477605093068388842847039102273022355058190076618198220559754604760976125461303404246204949796836436067231140077990839062614962868871493011842842174718505734731382499013207374809031806543898043979154921200916503668226938405481026833401915327193747477974769472565861279968024353869914926305591702723780206902188922253197572335666246434833947493730009937913113941137697989501200270764842429382302167802634882752393149586785281503519036706127097419555773200219564332819475341325137367152038906692733477047911390879455262822805663021408470726149313034321659370288710320765826231234828324738535200482999974560483740702242363579873450294928370862220680473503079152697822565675388426751070217096583610220905016166010236137212928456418235917075625598327127203036605170176368833999113894886978681133165319186445567375773611933653517726161864079602094134536912102035475063092434044985428426775607520566367674508951700116998775644246964525233295456041586474930543442158464941727021722977241624545872191191307513131746773375351704502861603035758664354540625605396802939065283647843461667319507524846774489150974281504641834306619234109055679746352321295273815405199383854963405712255081908734981336810089356347979957950585809157070708621137948576451363875447184624832824800381240547683616983690638280682115305432021095744966597271473550484729796985912529333177036209090180028916054916471476247970965045702544833959054655881019869216962437281044846537474860590533550434071795185359364003121477047795146745562659195831486230984336588130715423430466023355973666614182199245734861353911388068752365426325885755598362742800615247679961238232993377804697787188608631605775240508784628457053183740677467270109090569516624279637881391494373017547540404700256337177196150442413934536320652743746877240580722059308861435619694745795539435031816073388511974796690574578290628973736458111404343672506330603227771550500240396220930116775137958151422481645483917788463320202502140739734687990860333392753220715153746971253591206947968792397143339404549804646747057561607795193838964605576705868523256322570740215964675696139575257948863450439886416214566308758231419909185427094871789668911781107305498444743909213929780052617241015950408140006294654159204017455671452305229372174401738686100795600012794732911166916466960900382801430020665712181494972643834075366718979799666963915876450783196070253579581876599321121334116815623649605720207404244659477700902563348241448249822663460999202043584234662237068841887048644887000752132028482872303738756269672487121023727280024332682717482997503360201830687967333777592493078407907919135081605920881780684683992404123556199343221429473074508423259309614477248358558819571432007033502018966012964908644307155856975203869080817439084681410774948634293723986691616160531449399341717297044850844376264308514082432356003089167416218740949791680584396507274745975905312948052356208545265901328094127370822330339214800486722765220084025453648675982293446651841377243840515166164274566793910525256722357725439061045407315836627084082345956079304198781266836726000605630998354004326954368456570816533207099647919985905852766371739242868539574408493229488948448503490823874227719639173531844702252939519009289306354292328345665907706950065144485243587610092232619820904769383846766904070844896985780008800858346228254500984447119516977379891554520862444295617785583611960969926492745936681471602231538387428395935602776397955873214167696156339589473681335967702313117812899509353519438466609268372646445986733518293225983238841439150289013934879402978557013491919184543662506514193605043510948681491074986865197682103182866900291652752729187260887871584409457625697740201726148765850542301116169640631130374047970485228282845540784368215547262320720654358402248693413438177202124611598393830549098932284531001201904940455525995112409836350774503502042618385128576372450446264106203005044302970299267885085918747787020165082652483210029658438570126397537322235942040625707278068948238730321582338671731811810807096886823646531736715192174171866091996117938044515879129282821504730992901452906763007585335322854301973960703933859301451922988017496887295769115991819161460673098778737865371733919190429321337422851221160434108285059736092960523803582481388137847605133259198116020426829594507652614307961655989089428258049517547076947201088843344125235378791970595605516734342900517051881630937979743695498987168660576182650782627029594406447811532034207384280790538757517134621662244613170335867612938019084276599956516953016202834357725901573052587366581442818953999945359297782201427864882028524156132110507350155940456635086809075325878550090077669094292921614729604200469808096067531967375144067499812893524835614582218266397902040739296142226997631791957707098968119603797093697463382063484815704931828149361038421133308141351581173358562724463391599015750541415691566646845334745793300058205524807335300176524852564120800221911731549249301947387328892863470849564615544006943808392322056337887147449668026413941623687681717752371621393667266624916864402487300394196332241359630285986721704937864240245453654189297526867908095906097900157966319430138914223696526214337972609385997178615785511528284871994012698823885464094690175779275654728912850744406669618130992913187084257897090383372258957891372060916186893395544252529466492107657009350781431382217138383324887508809517336497457029240125326312128487139708454649537326408134907029095255890523487817340673128008249093147306479623198336365114762541772205475168376683538658260837268230709810993116612234634562241217692311907695305230614084365436532224939897746877351968594655655650108330326254692451150379139292830777705178218619744979345687017047838996504683591842871532970490507794915495046279026824670904647646014569897712844876771161250531940551786311671490023392248781393659934469818993973461961722174770169696911983939511886581022597995220234412293649593192607890661550998759205863265987494301384610828260538523625959342125724108259171711877026264533228462829225236183472701880014433471079259212178190560472464023464250603850232634900960560538130453170038668124617997919274498410438890691939890327438327765762702113653804805966490148711759504727890929115628167942199736981507788068239563258434763827085301070257949664402861256532734954581226256707876381134575631979194551172577594784439122255024534735745862617695103967523811502240342055548267035593538366247786382495699341280872199732395296591652919986807901844572275568695830388089061559411548300655225057405875023384509413297473700873338098012641060996259117060066011898199996105585417265533124392550354009681095097841255275695393061157028276392786369184869641603898672265017966857226020119148464397908794963717311609571712835776535200003171820520366305637865586102866613734212448532393448144039997518195070662031834600015115997242121170528033592266067718291162979571450220380377874793833086571826798815673069290589960410373081487391155786503241160516491331816004761241934552116443159863476640582802195723605538427293928534564080871365926774385300934719235859710394256422555616398255214826990454816237448237756794077377590063803315089490279301870606819671798827446128179560402763632905570700283857088471768161143727964392778562344021693884513432628947773874620334897895136877446764092691115411412757281007635491532896172893732096701508704268193240887429931803123046644045404039515501379987823316061292319359275887273357840119302900264386535024219698834476803126450180466138005141485683751621283030807779435169565626279922794779117750425653142030586677158826521487611442111546005662576332226733646297409419824055290927597602374556745069023365706773260469919196676466140824121943083794353035756952379729133509681044160121132869666706229426354272890069863887916245198953650075444515807602524381611243057066038696045031446350868819902573390842110660330679244419173722398982394758646371028126349970429264980994807515957333664552118726282407877826664155686469831927509012750133997654673710913506714427493162350063019052266318964492099253184244300507327571055219896954028501065412917308518459776084167737968220904979518850232841419747575585323558856907638655069903976184910914642094118302158926952134946637157734024952461611161212699635305819593373150854412547931907370321298396834737135246475721962319981025355717872495167499808382859840046536818576746219664292746556380882438277839215540577833670568875219997258590433406092438349315103381996014208971686703366070531221430700166760159194710481922778117600965932291769765788480151590641206538931783154042357994878818258113281961650691885676593891374156040062645562820074100956929820861226379572362825481586651016926001022966851558120960769787832140686223634286231507637375828543315688248200381242813104230113172822345289507775090619350131837501538730853021437764361654413782977739172279520356775068976031937188504356342635173043660935784450170631934116718146189867489705906226443444722905636116884541616571762164317269777858896742667122317605899665347117484742066616052160501277589737885499192175322850973324409871814614448016117969060313115944803864073111508763422625863324804202507346777170141911640197659051428397189679909366565355415302972019275532574153651466690133289690377184945670316834620870032053426529597183949406107137305422848316085240984622660044334248437646772259487547482990650856231453740236487240535784112314816895874212045325207403155826043347879809570972723366046648693336001173878361323476403075774959086605682364879153413979604760313270301181487394316926254426246951978233402760692107554697949121623899493799805989796951387250876903701843613257711944013979026422997624544223856324791930260102806948849003907080873614101688305110589872239480850348406476826703320763216297494710414387957298965111454800077449826996385850185551001664355544879327170830019390953913307725127409940979528163867783417747386548965628391295177438504482276758997706336063383541883667269453671504909989467757755609076454124984615301483244507556635265116388846284326664926235700513963526598694308291953210518930996520876582826444164592720139290759713585347040263523445580175878502158675224695555093797534156737374327126526490544354887677364569818501308423564113786070577314963150674018032446736063611220438783182247832589958957959169664649523921126701131329801560043941553689442344914047296172071296667032310387149094906719438084044494740626819642102182639629458165028897115697653391840468840245982213246831580058090117859797793997428794509767385768626644193003092411479183494320729444339785093761555738127536726569681951512169484878007048956860818048361631700424000888918352005638340258094789943385083955282454411258860382220710055041240151173371480483781968843412043790893967027817130810472879244819517551160554988024678409173949325402730250786172501478206943902692360364194103905382034620221708126190197120457231042391800755938472839357365968005292090545697704269016795071485640433558406657028018153024658156382204695539375877024950861858726530427919238173435232244668701960570158750236971311301201660431436662241247428280883709163972740542319971503948673167422680634529829403675373660227005411281969986377172098005231823310739988047454854665225795479188095836086071304406177151021861002118866713637739479667897048917414327232062963117324617113775787893743282234149254717980595373127791169529017406940118229468746693054043649661994336005383716487552008473733129472454143407255514202839014858086598215748317162501784983612045609979409016659915773393036136252755677377724607437008010708313714712890038849858784837849128699798627942740965762702479353772267735348558465920672295842336942148353554510624365965138250386295685507769473444184502347697265712184635847833490283216561103183426352993126645670391268946106255932778486807979195247818369501593227089711263899184178538287875877111853060069683962513966715966211396859451371854825855390974463446946554332010309210058507928106852967705650445266613453834659573808809538108404743239594240895394193113260286954167302789038379608975675507766419183040882216368631495173429829225228827312795188268981531466476619871371937526880786373586149692937980697124014283432920356474611447732462595245407142511650874199983041182380841827464036819580368600879104337641359119264812596972516866130438541405008607940865226051216387918153309840937379941828018644155729404584317216355704387932888033322894804391512913406386492071816326598944868913592192358608269644030076412309202553131672003996433400996227651033775402590705518701799464355718310477799707613974820799189444806315013684700138966629157794702132778182013105338567662697257631948388252798780828663715999183050433261426470344342900073059041420308459841311582693728705238744759090185912860982476655466481175660595830317739539617723060354606245037118927453299221312320680339525067627235307030180871036001088143500107514753280675603395865446131763915403576941687064387134060751801522157108015505030918770446002694494546578181869146807098243171934754814585392962676458604386861037769336671210780814814044363227745300585819012165783183798350159545548203831728533450105963080190397736871415413262898095796069488220485866495790618929215676130770615734571570079788348527347788547993824326629703794957445420814263338448471471186891706302910724282318250467178243643166453420466241736478114116212246610710879822129230920462725662421045487030400520819420503499485682968732701596347931048016736036514800772380532631547728446148867458942037276013626728974724231889308152171394419250914465448270589481864178672828206705000125398874206135064780753583637004535236347951906481042744571788218051598285206546131443546932640551653917096236151913930017297998458866952938067017658684108649197807866271986435307947875987845380293153209476630387412211095551965958791396659854693363890286529124208487850163673677680343587197112908224658024328924409239299818669449391232343887559330234689269536043040447183594945590293510001010822035163406794852960076681168507559889049076323818335918659112536208978188751551593833898135280608217644180648658795950652229568075508777262010659870808225768289536903843591590194340792325812534601555405788666022264597157144697376638916753304506673747547353299532526902586169708946989416857213732583556156404557363378950192682142701900663234962627579826882016142961296716515127786397157366785006320118231898197413670767625292927688755009616518772694059756627334716486651902408719151091072423606850957549644131654369877608273184871898591323276015962978844202370282859915748991285035204393797433403122517309317740642960313124307853350224015174369581256747494757820596917448256895576369180721861789864110380297637601783318138379892909723559825260890785091008408046125167736163344368952328459634634170876664672181194634870023653984789482750035829158338631563573866386787089748162879601087749750650181012802678966164953068128930182730198227001207707286793173302850843209505373829599433567028104264360370814707010596526875889708230652585593827844361927564954963012257367713790192296730442160373746061215729069663879402967770548619328457753858269495223194683480106937469980054150940861402637314898372424248573889859183100880409588626524686089730989258298497629114076374867983895537595419386555173108649255930794243871773157990320384567231807030472997864873596058351261082345706685230055162040679916850175300201188014655663237742308033904935312414498803931561627315501740461098196708509419966224088166615152974474317351812483668228107602354220317182823918680261762973326054610942077615965527295738289841430617093219916790208874439801887312895184441453810585029034856889700556748089573827462275263809398866068973224414612530554630885187688120926237895976767149442703971744196628298278752655326705716030887777165559102791927923130434309104007143341783050897542230258163382892114288876590899501385846651653380406335299361103355265271594184607731240302433843280809081896373837438860592182149273956748586509683718713297995097720801772834174487025913954224544637779451797448898883600757291302464514391488637587210927374550112115526411883985647942100579327775867387214840075275570400598375017488694958227679395268523475429714304657858400337382296777654349574276416831712588056729272926569273863398926978001769151057735199718387283361201330052511041315901433840036400310184246302237542379357094173766396378742690936353904770916655277321329502532143621523652945849581868934583573640478643846863355344232205464614139851921164291509660197047313738594410502075814278267773969120991521986981857775202159738381574636558052442240869545882005161798813490123052178419963119909649524090775373188198128159681522301826394390416225239456455532269673199326100886129471274037473265136864100125004949034698000945864000127242025497899933547925606447544306661505988477632111090368230690641188840323950742735475259846068448236288708433471223095431608771564496949626067312678505848697452890158633141048092829030604139898167280258288283116196981205508300005378794944727151252931729024966637116202328231763900981863999260120201048872723672424272086298343594186485830466538973747869754400650834301883317794994785453148998271883618792489706384328017060769052917064265064414276742048682437312247458181851101092779238530964924428655696420084936756913200689187063248012652574369423359046336244926008134616840862105130463777229866255104244854515154042920053763021465096107649766760952862275272460299673214415297987379014743898682067395026867933665718299622025495847941112008798657599768384192336393877391883722710978683618501809060347865858395683539885176456637882478876095537012253453811562465504895304769890801896835639923615620728675668175376684460918058464017484890063482839085042993648763740624961710731771128258993825517168800465526102642520754151968506070099552791740159902478078817437630273334163748616840023752894768669387249102036425781661674479403364371112820987728379006218199456448237942927382758262972028350459629312005746968603918003632985393513707753374075829546184425553925888245474179351172405450517226170239852690052700565923982206413681494422183302533990718597086522596677630745907800057218791428732783564108811939285999690894132172821430943656437868804975618425832115643526088027996761497469118737997271923887182784642084736775463156900316790593264595274456321532368805418447354158506707582517568272184215393579290713192622368194598475768624730682028281383828913911679143152627636113936605081264038767302793487407694296952710359960109024914623871631436714345310723217201478052440989687093926660468575287877909988951577741911039033577104883962530743302247838742687252946795146176342971461859657056157102019794790131783906058119483448032923614197338466387978887476052860040334063914715385606093678710089676943151732429798552460758021553077178855054424241245287020845104856117453382246928357184649152313268812199276654109894441045656290653555173619819928896392880970054095419997767070491635783851720269516744805921194392967523040596576990994061774291761648240688397934384670818126323141242061098406818468241153218327516930499072966464395707635589684507803258767750333168237090995511774525918010356126627686972466100782951358640851931560886054150582930961552186968650437370492006404045435215348756742383355466902514575339200608522394956994530255879010513153881513440420988205001790555824693444981547405695795927416030201657984034948000095006919534306869339931735559267498114752656864764752198714273957366958709270576306801439310856497653807249346414505401705389549437896098543323940717106655730968683365488076898448178936688154040526263135536147475542886719947820091043500030615759735995709430392650809131522751304168288923098766355467124713710300290019658192956384483195780339464576094799236467032055572238864790862044622389667223372651508995658320901425838161450290900957469359063041437238418814448594393758603149436582126982140062547638028449588944642074158694943791575634720884169947007573719748433756807514753298422432796405638488137705649373157419857339360383836329909182813175514025174677904791903682712216069290119689843062491460131700828725969339278920929708731732300370115409818791899290837097584499261930690508347964394693126140769902545867830257939187912235521762593429995865819190668239680263785190278252126445347922298037892344002461032221199892604783394263058693210718196766368253534633327022275200844243898453118698035446086378756754299744735100832131550711260627567176312265061010398264152796962792049608743691722444954432062727200198522081171433764799317319820471726764496210091858705092061210445488156135381600304372929475641797509418748512541180851509637043295945175324263620666230719458640557610698933572217169873858507885050646533141424552745648198851224519805854452977089013243742448222772165593385779007650107318894019015077630007227801904429665747488438578667842426497291559956711541277330334717313208229854041420061864807837004192383932166873668160620663048893085428761350710977154273693339724575937368539808089446796414332401677195075715550128441711742894857704721501180800058230550351665365148847459451919903083197375781281662409975931537281079677117738922557040532824582617780090700784568672908057751335569963475737092784273186625489218384996738304197928035370210125635374547133385215404556349594874238727631933301271178012473640503960876334019609154155577307468297663129973962497878523119075679411123807347894589234987081062610082032331973173752551747539323925642638658870171840577164193145171110640505064920688463448090021252473558771493617711437762732695153081867327878748029644425591984978520741317025836349671793795952026988719741812010846859692968658643047840340375304758994334965404366497542401454591015916958932092700397187545630968947630661835803986197097696779607326226452260009612246275452902720541977281888697245175380071256531439254206832763493532935703980673934761002318840440681219611593297340628230755970966081338097189977990000995921710562952333248297792992838882763835534214246601305298235182275234826252470500985890303210998946951142592128055030861814548717750049404232346439807486762465615806333291204975381165081799764714315360625154385777679957838125843548849871842092921003182173009227243553229202811200962462398318673392068548706722976389772634607890755287321159787001758691661190332015899644395721413113563911893120913295084646272633126650215446252542667236665979334220828975258245367261601059234321690544712873631452566542984191592065081684909056246692978256726121136284075222413052972574059113889816385840933907273494208673868335664675066262541672233168465497334069497191652397355328143380288095878822633385009499784286509260351266983854018504189457177609651132720406626898166591686651778324008736416469175564702819945293020098456023019819791878738960665327623273717880234141410221471716172678008726340188622941122548547177826076276615401166344619188325265288872527156206919768745428220371997768635209086778694609522276014424758834974060917776729997449288785502702948819834120026271694521888527228086588819465798104817472743796250655656107148942673324444151993018442464025045731199148415718270823503133123549573753177929468209490066852396210579109662257993896059876886167796634123871149014300995059554300766092641022438067573521860915597946074142587162835602979347057018192280930469089480121619487532369525286163893622501508179961923704755091174719834094293134330023128407202908968474630114301454541923250367384309891874972507956871067289748501101310188500135964339283193456020160140139601153857625253005176483045178790828055797257771938502936003146159263198299328364241038825959100998283912815327426278348641467152860305566823159992108340042052312385197638834999534505290497954756328463717834903493048995731810194883198899850692763721829698867467036696238494907845647175259476531813156326815687187889429220793051467249905543145957194610391432203244617672307117728741381017155401571154598465828516234317508978689825971441761463711687027657214295129372898749664799305985328290188813586447955460188216102280271295210377960607817992336602521891861763663106777358640315407584778191653490839916739211347318063053787442147718125085696681189602121448653496927944630866694401938400578137620662925691345277701690418389056381346257569876715660366561082481088984401868978691994477944672785623762092237207978238462676321092315836525745797129498648728552139834937269384797123854221905591515451403479960934871620005017066865240611317681625802197792514978528498960853830292385831740622128065934590848096350653500553748088857464519699333523578532629719360139224972501394555511783264268106457700829021381575670914244098294015219627728513026981339855609692950908591566046774414226757828171737990794796039351456171954904189178841534037233573087173437611734993675706661221029572439078530083176643664092627610363878236152487397596563763406137081695705040801830258744498976934833901704385163944251999806293708354079195005608367936842432540664000809562452384853616373992503577751810314994744609195303125195077426254498167448627901357299831863914885421979648439972230329647374803305840515023424775875752688798214244675137892018737231614791650608463222954530285510353730192752295889125086504854815369280206026223977388102408411199497089197356995494919094430315878160150583942377258248935234316057822154374213266204365673146466951435564275594447738106795119218159692552755401390702382712047668572365654888036901648517833840190802220297921307252863380013384600789795031392634063861388876265149464747899906025677438969427018051917231540406682203341880097368946409879814390162092505125671433413135354588638724485073297891009283328710234740440935955157072916787732690926179384594159451138441970863408337852054524840750646841055374414602317779399088090107598705934306310202608891655681086026931354873833371680251993134681188806479948834745604655293981794567910295690481101634771769986333649074430274356157860775503546784214183570072643325805616587254116477100595606577520803929690991951056872166647585331168517256108285933504460488070892078077491283745478271001938621890492514783833913361249730687342562079653928458175518023215482627822239095620276451667167067576869130773988094626447372777573017395958684799389351477230249680864490783552501410260040077094322817232832515544827979239323792470070733271222216259688782945467827182777607606712842978235360569433485414903717465146714628128356066505686685366904900473070128388206214568626259513338517710670526535787307043985207031150952655696558054457211202983735923176473502738467916242889372301473594444472593445228680448613617288748846219030201502841015160487103701535199804184302932600650800941240495315270979931226331969666138942852652711881511378402740002135809661792866576499966404024227188951755844280645087165008763410671461380104128507497864603492953038063319695273151439515818719377753874409405922184578297168649444764311788063388503245133988094727580836406504580372678478882829782633470946106190211072507366153251416178251744857620230650265601618770589227895275986672093994616246037487184070826246476580359127131803216523569193413693031907511803406978851437831651956196303125768538907724523155272652693429715688008750206457201731567389860064347484848817234183844945589523762320078059492094189261894445758786059856222049548393307984125311440453583643473255905151173712041316877814140593244569487395641584575104551109368856280372928858644866521866070477907829020388012602067077120050617476091454840942159626830055411896235409882875463590020170332895519428723092175825549775474886867411117793765003275153137897303884974392662544849624776322584913266795515427917388478931573358401028664857389328144985763734220805388988077488686884135381056540142765247428312669854112597383254830322014004732712942785472024398830637016253073523748510576112936583341004005123042644652431510976786352073649480389989326110869470642419063504441304244202624285430037497251531450069496899989091240542925278591307348165761452139856898682390288692817277517296783333249798073249693003408459448459399718337554831617968389605353451011508115004327278940315650927531985641368457020581663866174623191678918945886230037266206118952510255258371174915647161835142306663948112673309503513214861854663052479470324651567441790678124217633350063747945740410424460833530052740946544641774465252822304871379743659588753645317332396262029930245863893815980231925696127862951035934679336507935367571932266670326035214912205344291092289256348342993809256736558598531237311285648509815934132904640618704253140034650780254217761974802845119876248424658791417901631513302028529574597480785100127592227446820635180110171895793742304757600146931193711319401715703070237573625408887041012568232979890874482595416942393089387065597328508121968223405629328576650046898278876750390948971993428648022116035403204152381144892070433993888015797959929128979631634589216970134922956433868664386066563714552178733779094612666849790518067197764972219051517723796435585769482386214089833469981674685976520616107501039542176244394008741980027626384711634948281984141683017398550851716477672357983223935354087842945990272586685389560466554495246576152662847307279045067521017735115343995730434901081435118317996561531096071133929918384869499150052494176683787433509288877931675173136936215321016010366805591433733301104742644180000157321056692795368825481068582605121681045261082929910614270957337715670421778040458720037033224924260181771440983083503643914781174860887458846022813511441226151613812964707287503809653543099927735654098121473200339383108533666260606299921893620423132728761416445785235831268262115138912165691510011153174377523694704040913624804580427857493519818271463953781757671182314887217127282879719042142743246323409513620078027009044604006428298472109216861887192746682307839687960095555412091562707763759132466399939964462037572887088995284103326917592044631268749334538769579251706873780895683546561763563287308617163497510904633342330585044454473186176736339527713038048757637715040368987964332013112273056967971917149237851518693361019420878592173548016982049158798636809137589292840626693263955162332079958030195956885247170902300243456225776279232242771722929250023396055226281687303172677827612251230838110178609836134516817930206432672891946882387112718400982780112656641301908351133955952370880575591276961703802534235327117176957668804023384774866145316925131839370786760736658232014471396590960384165805687726205873719885313131895988675834323712603909258638638860221912319795241357679205117215887801419200825587393823799700784568943086994693086781969065095527082188661072909887075176048106496157161659840804436286404820957219871144346773571135655259761442858633633170208254001600256365943788059965562692229699832317645521379894717715028614065510780776934867035546861789069842784117169406871142500489922015379200915825835892561284955384831894679528759542792053474973493665539358927860219344441589821344390349508557763741144843913560763212655241381581258218313538444718925585060086843418357599850188176053783234450126601091316256624464228747921339626704177310941332738597457125462590887447384767911230244323788916454715231719904531405283649304643591174973364378275173531115946306805031548463899720633809660613974980294570289578625874744471861387261534150432413296356903665181477714403903378864309185253382295778105654939257474225317380742175652407217606820685380907389484549689177405221705041344835040569839934206189044919552009833724092041301010746816331413185975612357887391752580187239897382993093032372751786488575736498075109208467042366032715211269177160972298799843347697506201941219752184084289665946793982198069516480898483297253774387653609324370461445356284503450951720255209876402848614227942474489196100211721817866512259929835547182903926069737612371604154867600632714825677281362976317595757760002968912634090661320641350678411054443793389515659253593515132841211321062576186745530192150413911575133941300525309103268738411497907779972675952781136826033139290045002879743658018164446248389039024170379685164567392647280142968966764316652247953189025614503810279633232176083166194647726074716336639422837098071110344271490949142825109862586983338625322587458294517024116591666140292842848404943710667162572414285092294971162079751627438196736129239220016380875878594929106206993617615583886133558378016425156493297491953655894336946247448797384866794588274479171276940260822890871333302754508589660546875142301370051227913388595020592469595229423722908456343067621206252460039814641978615224282557916844447615571113605024979283197547142026589389705869701612411789068524178157987978992735749261665067079227286668792580813920345665266222956776260548778939251139375139869279407270427975314784172690613696122885145456121692237933514368396124261274590942604388131696371852807513141437400086750959790353312250150846905362411363784024764570776270571201976125359087831140623974789294341405071354440634946343438678987120443112561229602399171631228965155114408869926207790135853486658055403005807387871075506200901324683758580665170730324937392024691568713453420308287426915261533276178106849083969644150465099050703561130043693276550658469268953902824373331527664597473990491758291525398533872162093145894110202827499288708765379683164029348820689601962764531068898596807770020095271846739213182588526458777409744403148715333588780156153662725892367606388645666784489599091566395202120419493085135872108188358690528553402827037279980185449092217316933753146719588547400405138352461419664896084777357868779956122274368813874165102609579944033609761620008666936849343709439807005247380380580498615814685745437219947993829954374583268941584592483628440909499652797206784481263102579944677508370502230176349236113381063880582576794567079196848862138536488927784581366423348358395720066696088899361313931730442026175942615854695733557532348241429631865306323738388710536547275805132655064549357691035152613671417168800827345065851656602818126437064529323587594684151659949289344256371937130970512308823665247802179043461466189439727820636791641168432635956817226968226548367544387019553907173751180325820533177272124779815850490296345359828351855819642197092923448793769559720930374535547040812068313781954130174846853361653185843016087690291425425134930524867252317514287885390396818803661449709001001689345275839980599063649240986028336243274929654534792296351139337329735914516043835610632462905384989200057162099900533806428533901844635482297229252545124665927867931631014476750523659445576230437341659210789901201802978429169421956635632847872779506283321770178639882808540422951010779238675717052662290996326615534956946436668117410676222935080136541923112180310184197692507465618102494764230432694717311820349748890788717282227321166349471158541836990542465643371880884731467374005316868213564864167041217092206473248157679034476766911770662195485246424895007474857989156704300778856791358233855768317278205898820000933170419899235791873461556963318677216151488168350906307143040971377256008252813483356264339958847801355074258460878864169289587669370401629388165887413026272445926705289058390071580812107416694304032418847131563235591109063559283068180910870792458318410243856216550126417621508208538222152833936467165000431436997832226605129527088979975698134695437702476273517443985707459070104325452262168335786292075888443793325354626204186329732609399294563342262271346259258750578345817359977190652712350404112314246103508321925528681391154178559236419028221522755508529245725466159589489725929343061910981900780061059903601916906619740779799514529939409363767779269932830406045836745645950878201679081331894254845960705199147864645484147325944814428663036751488569085910603881453053803824949621399226495527779012190168525249896415591112476486803372254063671605595155518816288499779046577187324918093264297557233104607330371484569357586319903292539271201551813897512032671050108775119673465606064794620225413824810301916474372153170517831472830189495361452192844296778041492043291270501874310905469019348319616881188648987077336138706959702495331672037242330574566970352561599200288278657519791415686061178619292050609860202067711620005395958158711194036541276086517655601996998778631187349129473332440536716535222844453633091093304310732343280638724001509643784484736935693604111135238061935696256204608025246546321355997932845217953765349082760773395817519126402747638964400531573917364822632129755712414389517669273727219887003329131429902367535178321655339168278758103575544158968433151561998452325094493604432568190851783960548637071089727812114304546551451745175260952598535020286487235543342836397295248209396898373440598478496296474110761968980338700394429170839918373998097189216090914843666870171417343360931359277003495525883990643475325053159666255168305373703119660989558357668983069118355539467703364965511355676648653901742070249758827805206450292283577935605557986328101281036027722906505826359898491378526677461388981194942668520993555521099223957934900036246296386320902058252836146637219986327821971087584352832760996834141973450810404582891422407615640761655852767988880455323962532953167649090352169448349388831410272084823372804348792507674942305832021361894482782277880328920262110842711432329283588741252832493673743824198352374587947094514203722216861241093166999010523402580410353977564935785986618266272785336898688099757183115888156658354770228614046657365604279832352699840606865366358928710350237976444593143633758695619982227201113404327347412233122337433809002730096303173508455127585928402222053988495163185593252648085307379339117947121933463037486514710805026681502827374950400702710697703416302192614644703998937823216462478941008942718280568282059974101005721344898477822716214037663368657254804563352899029036953377552499223590139035388353456675629488676955427629140040863739283074999790051248770947190800913604621119098871944421156151218843081939072774790093944968924455665384528067129918895840430584357379881134286958309427579869861702446225203366727342441210125960889226407427827644490422938976870696262470952485049362988688356609031451662045580603644236141096649540963704226499291841705275072338220402263522810289412670694987588768427795739566308123071083953632265984313573987568891380999821814378494180572554836861501990237922742440544904455171789763033143958882899067353934412578127795415895155966157406199408076507590249044607544286198777507830805828545116625826828504793299432528915851023468032947757433935231614774018019141909024780967284458887724350450307247160135594768458077135179439677286839069683680711022572661415536353006099001572318183042980295052600064077271113483814849307692148905180824244560049527057670077732314168399148089519728018102165632083298181858693973656383698671653266386844223743123087752154976612922994060296531821419341881498394212574060064552740962481921590325411119045451232175516318727816213743104835484550054751945312446717506437335112888207701343868584655251972172203640281244717297585411889707472786112341131966268378683806123042933706260580807973601376555198504314632449744978051345858645593972459805187379817033297484585326013926260740908216633664101768593903934740467376432488426578651244979891824194700913968323734447553804179097904507522232031788060582525203604285079806250871469355920469362778743243199097695744113660189152791181404553894448363812623442021164285369746738391930578103323339346578378234401575386640565674790636857194978706711671183030626355831576864453316506655637710658076007787026677588436996048000306059918283163477654598159636261490361634097090080139119892608977372988449345315449749478704942320197899093309071422753083261315693152199914481775666447435601353549236797996317121872112607282349567124943166697129818407107054753878089666244018397142534282615853198458018418111476264799014016018994772307009170110277116151878633257824745679162412119014616479172512237258651630275355220668662771047160477149708425201703546887132595402543770397452906711886885939153083726121676522762841476466782475499509322602101305724357394566610980219325160859246331405978303334631446748644426925625194165556043871933346051679468187253723871271628802385654779479637115632973721616484787914852542216012915834230671443805548586631587028893683824440377208626705597323359148238086293355634725011584983557489223700861864522160382469404638333705176996547396169364016536387349968791602475550512618936257856724984382822768151023261923648025015264122315573244999118789225518413437916022442489192617946269337865383208873617789799955309510482637788549397048245032726640144859401930726809553833430483451059746934986968612227439913922994678675023111794780839505187775293154366591236941827992040673391889245786271567186421190349492538408913845354136657450111780133112816685308499285379787648061554973796433203919106131869453184060035076430140522450726972867974037324394849708988486652477762367362253334563513719269215232874975146781225483677111732702900027192212714639375608475593772113884051594552789507665015987031728619692839616228824266596913480926546819609109787008179384594599264715613629522893875245222018981090111931738600528410459421348815468170325338395007162336191003458157309763100198626053674389299132328683068647345017874043531825742636484893593398015759473909661646830562448798512437216608900316572181607168150385150771710375730920241607821254181107450890372908032629319204918313439618544178897282914244035880600531353030631913694647784094776528218799376232196504158484033230849057413993279741144306603438624846141244711074211948348146841877496402580349446391664419407116683864417167355286453245752173260831632180870599019864816074380006421296570663111439560704882759649364908435722845783437700717183655386619382646969403989862742481533215330077589804792953241763007782571397326872880417815448085798302683365332101089956483784509147644459189094214423069252421978944751216880567186992174975776939875230032607573752721737899963748431640429168076933543596378157661920624478071132752349456643619511656056690487844787938403452851838884106428496706368538719976240088293999987625158828685245824646441268557302858166272501672779374017358647791820760638569608905561416375839013732674357029757745036177882991168097410110573571858638357472155971908954711677003738870928849453425948564846658592372541396599145677178294849992114501105552843610177664853939306220787682869472258831724594277405023057081700323446100684744633177433959240857851496362414958784661293098780222535658123465857854277126042759460959504808511285663822147872304249713051029882052080527222763360822481408490696793581318855592485794171930860743598726832470383404085652607274777618766469400234315132010873978500207753939839069834615718450583732648732206633300276026338230306972709849640740615959395065162740567645089801997973603986796869463365255814561828747362742388185121772385157326869386972100912708304093287150196299106309384481042935495928211808159207998715169019329476970482121089615918079327413820199650938051961576862329923969860758584211120280406260961506225348199514293338853077351908815649024773367402852344195670083403544758244098334796032214352934610667138719361046476031648917203525341215125140014410328088487766014968438062558681558430405922230960659070787619861947316472064150750538053733679109368612835143655329582367612421766772702031941183196597477255682438560590336731188851989571250350264527591148272472040138659321355823455112776827252313893805983490468513011308015857701653333550717727345867740035712119548489600551329241226346474307365989837415065626486990074085791416233115074663046129786970253943014466954665828660376610196925249578991118555503954007545376350418242128251018140906444406702822137824111101296942800232427196329331130156197453587263360543947795743550770043322354915032509874468376350889053213362763542188011505443283611418838385572427502157113205834520774104524421945747316335553196097383547575352276463797203730156103554039837229875339464622885565532088218647649344739679062539764331146533653314942519534398428276649437288913960375620206281592603276471224529403420487302469571588188290503631829780399785366435834686567100246720048883909066809387225265502517852717883094148983800466635553676927536770715365125408413969352101962202404922926168446319684601332268212405328256042804414229598811616420380838381653704328813370728761604652401875009998392497022492643312633449195920004670275556584674874117360719780598049013550308770917727009402184509372727143745330044917844163289398943587338689534284520792245233495917078425783965658702890201387070591932549686311461053675465465175433863477407317303700068052416609219213339523436574440794746442328981092067871723876606098905759413503616714862094749410404734775988727255516281776224457588837211401511180326846222379042450446298196093007763961001775067241597616235787580740066964529012749213402118753136203260627568824824734268981252836962372134700261813369790876707109659472226823029130385753424376289327047553320329613702214903825559978137114233669387042649346263151385339174195529467363784362479505530323527181654851518658874783258468739201634851066197963965107044919789200039801651734376999282995818544626968872286812147707594110365717453400762045846859185985626011530050976458412950575974064487202058393238877225365095232209304171067750150223317051986218460946003346270403937343466307096173605466696658405843585639739437733532491981036062661342873514787546694315726838689586280761339275872277679354559674244953294852289009613139586151533114555068686824149931312011785000039951786088725809818376165207469132881842562411816418486977923709429097189731877127444148275053571736477929051155525447665107794524331838413217045719653366281011411752558701412625120801310353774977458995878702603730086233037166268490978590766979744226070802756444451842369457042173533955866735293607389567430622234022231181914946563215913486836856594119189443718663384802998632148668603881159475981023112370457785356230073397862185501037298919171097925319638624958176064520045028283370396292880910087403569939988225106093553236977656519798746664761545486819688189976475647044092718729932634026060479916899149132873429845428874684911739030155679386702760057300253106202970437995871865152187912744287223437347735691603480245962602257743514402185080205094911202341404829596023885045714350372935022703135025305220820866518723901786687406719622871252617957691814721381066254248626849742854938324171662868264549079370690503801338922649251704317730090601879184789507390562369685837476134454887457674796138713189219991403623833492968624439627069353165955415912515425874171424694447650691138447646189625697640700743311951328901137823903367224582583524611443311396119426214043761672874122172143612399887736256387817516457833393972443266150714156978287113764827488735335395166716786689666381678475303698815169509980900139213637428194383158053804034775437222558556948509897238400597302841569716817194568937294933750586890898735297042649284338835568301215362741965146036761348044914038103281393275682516355279175343313241976717197776282902970604349349095978517764823408005934797195430149605907351542565198998451866399314814324227275678162677260051383871477022253538203695051726752121712949359294858806197723215798838683040225237763165391923330268014984189423067648778446299030242381808843897557219862518792006135295197422625603733639823514584889385823166105651514968261448545274378686857434549679272281581722582407095750729956436075482300297967979625027306577200273440937065551183786538060594634291985755434731416077011823198140466367890516192468086609745553340282098589243074228789269992928709957266952907913563759212251002740852308476361060343551813704974738741093631563760151826829616197361929654261110027274949906878340394629675720093941929385318419877217711198188331316091180797558338220574217171578586802541978844087134568647286436142283333653678846861912736310443782376450622519203244927078941731813036397870318073341025063121205546916528940117657185382604101906344682100303256156875280095238676944917634825302047154824661530957570327912820172161721528288750444928024258262788674996724567187436200791867870315139229722441154767529606357922075399535688182346398342350614842062511762384209791033190229967799349229513014036498387640867808135358772994749275940451092614471602824659994524928182781251386931147087514126918723642461471409635684843705622911395476104708792164117386677437865186846644547710548119172711896908399588483212388560942968891136529451712694493329503749276653723641153565399267491312223835324050484136407575645963212599478162369328927271629900288824051223779884445167964241293317529511654976033853527240745500577633390282863382017771645544693570278500276063481176779975774899748676632821591687840862029476697155492640787006084133783964674865905414018944964025120684273133814692194572773654542412839207169320098391933061691284346385857362221628813093401821529912362702928526582593123909120420764044346226043424987058156176125348575184865853356760506557783969462949442998349800277597580443140993396788141827902016902879307154241520361499057656121659905246099386294955092885080089816135802379130183311354838613117029775244555371395351372728140918402652879312574823592834030725811213218642258248465156744083547941062776297535495967542412356348466600893032590329821893825311032205689253416550345016709231140148295968987113943690205898041115094893986625010322580634247942865467266523790757036668732140688918453536715943894249720186118711999420691465535664917627438635076641993818562180546960758679057128720618216973876108977701053572230016604989351970848280807607414774165766840338318151754740874881804420908534035869505742155603746481428592768688356517759581993557278365892884889968682701947536021938347046584017940960448059938244407175752375902979586864247258822725930243495702662436497952777137775464574022273680204817661361980786761213533171833309405402895524756647641738882379968729945159255485994981085205224279568378194665028751237595409257409519709586664198204077013511258296328278118920690857054951184398162009275745529289243870496876429752741523335026623976696014902131273526321925175117173071981174756949408775628897991902926145861649219084405599324060404063474300566657907393166645902630860769704542913533486265150976016148967834689477312447773737838983333547227836380984944414982368045533870858515329339435433889839877293730725293113342320565182060100813179560153382576891360598096755913551235300032264999185577376350368234856008401519925733352144694537308225668081835989454554338220880087926959980392879464285634223172720422193611954230401610977960710190976504836887273153327005809290664378154628856904831533796059882084838927949390959203464197110541351758113640093569188119575810341533589368819271779724905619182091655689399113032785926859379365437976900930809546767369307413692028288258474605005847754289828175667768626979315109688390423215110306591173346936296033711332824726553152526931475779283987597614304144848869777387337087790328684394007634397303718744561460913722099961205768030961646973373271747816574684814823637012314369928476416552530233557271988559613545924722938966133578927459894527004318328824244494377655168014206141590008183142305160412657280472768810614290046262646084360967905853260946512917717291907728315589837011402378557391356428457785880508985986306006550979757348004932053412963052748796596438106359209554401608830630883309706477367734846601346549536818212393726584230209932744288609126279911707073528863022337560209888713961868606340847668576527675107609247080743483451358104773572660924050807645536619385904632464573371517083408252437277517320100060056814436468614071334611963964629845736037881250882469251431649891564992362549508622257380583021905650509973200393910802838195217175551967488290401910816732146756858390328560058518438269202565180767736088754803657960488490600276695326428174087071650730161277751647739752352515409592868539599752038578735679381763212061364670835314070405370444699039959253477525628381312200515127743176603525648385881937782544699496209834621453243677456751323214698258605867295568400342411684309655222405935386586527123872005403283103920484682492010056407191756232791904890712994792554079670475151759566837846384876478118041087504197139862030635087627803155034825901332309167824171548915577892685479793302215144646955643294923751206000999483138006601965769840323641948569444495572305125036907457115797850507576075141691642812423231738617145983923919541805328578774494048461978713730850898217786277483826567254890456734777220365408511788742480963057530653848097353902996470673954393532835733605119475230598122912516354449346715012131218804868002205048553073914803537994648240717576347999923461780182299495739612943826993262609859942222571077645327945022961089326789984781071417389826936601382430239584735033882239977659661327690342227128390640196529732228289759670676531082051441471293165747312948160963340199531945947563747880157256706806021487167669218151222631654724026719703345914785931732829576930364044272435907496458592452022078943318870459486451102889116862616353723968719212673267695694716636875384090787729579755232682484829586533762995841466176916214056602487588150368863519962354869864833970094200827469832821980759879726448488511663649338609224334378785091344298588751037139822928624506077295384158921115223165623954732185516303113345714243281294724772456428667565803752307233884791641227311362830963663650878118475687910124630611986492581086760626861394639905959462272082135473553955527522839890721562863522376643464685750848855518610880851296604859534651534750426929991668579254045460753016218402163923263342568544109067965087069620891644742181468110117339959192343445948218113713056304823525498104582847252857720526017434985881133519796473274064501584437683093035185603512528700990729542674028587901593415011538869485329443888995458122161281332368568638868649302834364928475770213190950289262684627268975858124456450976827217747642096662205492552208500801690714117828413400384052431725601975382140176713331176666233899091218826804210539477513576631089423301812591365591158763894601616789314663565980503915126488405979557523929131271672356516495669028557302650271349972033393898968457685543741121909667214249413268087705415460499845106529126025218395636356041814519296100875800432510893122627851685177889965426892899304501465318652682770210595289389158910692536930508803649763852260491378548679561061864056109038969482450065691320655812546373041588633324813599674498490910560410415837487651991568269681298752045005366861372094995870130893273374158576060545062752285446169827710088484028043063135475872075383832401086746448866877804746215698943460640161420492427327008728523138360087978566052445587229541556035413423782300114329977980025649628300034669594457264736658681243461409988193823145600220440971927181362831008969401970506568757342515916343853403075577557971379288994469110252327733640301385480920249703668292822977998997869835031983358653296119945354585701710359227134487880475126477997844436558855749459936319283186610367801545420988194484542108280082598882670709053056525105757424511293714060472037267774139939013443791925713525375572105808239453952184349936358819265148648141008133044421482859937690676912925360169641715564019571905744998815616727027584921747269162617706019612474973508906407495894255850055087897125309777075622435258222716556236203043578715432090227929289289723036548804663639207126774823667810476219213524916465269348180379233837596747103731173061683410348895451279567044739097187887570380636530019864131537842897815869470503943029053949599305688332191648432658040716100021695152358368149526189995061827277074248017191302448026792580688810342432976069567129716200678617539500869617689070924400288761784087688399879702190632013839163534970396841612990308770790040012559818405507831802220823957140564834425405972739325272450897026247034179101727694282826526598338899851166654133415090353599692708395692970950474298344654905175861365379595295695531835359170780751819256063715190072657101420070124656799837169942369835373912304879070219094190435476655196680873685925124605527641810695147952667913939890005374314629425197500964312382710873164407991137028422072891700227164167513279570435398919925929435293213873954505144680490829870570864453126662117681319473347961314121833580146849942674820961278360775070325897417120146506889166618494773677950482654765002529021409219995908096637598949692816653293210922841835955030881575677862531450579757989751183603717350476156005030220920016508834085974448102875789432974533148800671544215152222268320297072993049559702878907330656941416316306100450583419561624977583849440689761037242979157599048084296563983812177632557501772635510080789838683118400702007566901777172346600051588269923668540047789059085712904158984516447078548977678157529963448784212721217918222349100244816077710669423408100786381796015641880976122621155752720722837205371768918750643111223460220483939266197716467733662577205010692450615421451027340458521414776474295748054076733363126997056896806063360730693178410359464116363398646975752806444207355195854139723962548514049076160731777083935841561239645302060744190769989201409942963456805657052684098859544064780149140009920334228406587752903199358645432586561635990093422486356192578195888678415456589698271566615684346346703789633708747322310451142533693674475701201218291211531465498517743711918472907841106957951638902409046052673566279423316702930662230725920527438360629315421139475069922056485119597187991234241646827095258628384600467791160552921259237762283771054171868747846347850849616233547971942056947378955573216408155415957879973535434939048463563221958616614142273382858351047974260642186600485882442554919353354439525221690767909594287604686388672142858926081557254941930452655752818917514136749065434673436625782098577055411947846279943975589058332047941130442370390761995116236610844429495156681493939386181068637231415704658137990997304951249338835579152646394221433684966755707833238120601338381081317075787542911188114821282025754909557329223320404350489465653739035185365240832394574443643700804201968364846156206391373786025216025976732390471006954065707302220349450256897550186618584289724045462374996114436267826460211710670448152961390626544037189160983992766019526733577439623994317316361605839739429706666072044892977863339841037982932459697376464928714987464798108046372061619353094248911839196920082081887524391232530391254474604079927376145084563139907507369616026649563121524485618718921999104926796122451781943760091787916365342991559465786793425841251973050858342785899248094845073743159255215961797109167493338564462229923214633559185889514317848871077536536538523925211168821383419573065119017545215593160096535465191318824168253135305900498986397469102026418980678626585703887365651764646150143514957172810682990778656671056473801477694806917470590855878001542175231889392090741800678509046708754205302125837716451737150860097871418934733195260513332407050680260035729864325600631032442896150866406679874818739602046897460326741936328969208096605664768370475319962162475268009601792426302297472611773164465570735739292150279316987180703574370175086536898923261545121972745647198861870070973371108323367435221426590931528315504624145125726811933960794053787617401580435888489202636530141958041532886706769394591882034273019580731441192194884872021810945151767473732526106125227494206275821669150075729877647058635813531364236654392626032411638373015980163857183546252593728637515646124129494479209461967844892734787511419936763405503132628924624937946987008260919166434272740316899095903689660600578570509178500700675647433454463518672986298030632134663967912801294974928893359170106448854400853282166824524410735072797292640675150433226623354645153889282989688838750322403514701679350774250511735239652870905444100403849452495630808977363610038028720356394932198807647955117656962311079010239509575563687046343705651804026154364841244216129949667535795587401938953034696849176698987232682869021850337019467314592422773340296694799807428975999088014923978280464262694852679568521604857381943438676016036070539211099630602114882437261305581007192647080720753306301666273771702309580661868280667872157144574502347028827937745207482616326005953485434706471929314829595073473300814466148665678709286426795734011440921030278194912359732824541354241054753197567329996394764969985528946820301553677892414592694564784257382745424237263032050085443064657281064904280073401574369205176819291679440905432032924537209965702077628115495653506819390464468079627290295736543337759952584820199149435225070219840180763374009081724734937570804521074159302969081027398671146552091204575141773855413387581246683411527951001610372882102658794238615849497081316661520588468522403891821722951912943440862425972649073986048633851671224103998746226663430348202099791273577336911477242241291066620539063554365256677246290080973800963002204035686836274495294161216772315987317851004719908259328453210556325560769241432321121978918685262160429326852562899083846824199554534261448462258491623766104162317508471768361780414536740149006407766092231399731562853722513015305309241043167184009940534340473019833568516528255774949749732408998962343966510660836481989797249255010228185405704209732562141044693803873279698307227615230704272055776472600205616806744615939078064262021860752657692745902370282285869400256224811193509826060794605579955556244950040043251053311992368572722779433518639031227118431616374138251373010712351404196038888864520038165656676459218176135973625997494790963880743610319716903892347690600156959126636545468427578237078731131949494195151732855117880074737541003028168320511293429128518903769847989745044758820496761305788416864840492465595371772737705937351602004272744729817707126058824642958836542471396154473436480498944029647835786846973885939099437569539278424284339783634277494029710722259672669538307576355910532005489190439832095513657553981312543260052570156371795355674717196678299976710278051020628422053760217618155924178673414347669155054596694983008862691342948068528667017224573338926853846147750950980366060410095309842647127340884110126875294185428679376082093608955425275746103170223754113635487084462286407269353100499219718024368985030545748520524398129883557601228220392262760892359608159008688049916483532958757375940201879547188198078221385210080952610356383091507844277159336290280123453737752068342706604325070390890426968182302970894930752799126770234463017439748517462837557396200702069777698378055052283903192464579415382226118704029150451317687027092188344596392749956213650620883382931685292145330896086234049667900445214404321722110062668419602303595128332177868665905257779622024723472974257136680651748708325415268551880852213957573516073607660236012044513044239734751327039536179226565939141286788230563253489490355422290238949725644444549081793978301218317383829500195657068142104273595821457004696965797935179754682594277616347154013411709376960782668174239170885170977018426662936509337556862916123452082575349607077680629491301469888500381812000648302815517017355526466595808235984798229963549245846981284153028771053190325676303090363566002565020562589917226805541453287285746344885115761539192039492678843105989221811751161348587345929831577338745634933503598628695668132347505826699533910304776206323649946286797646205837209969657609362969069849337243482629130492843917306236154398302140707884728247191948816573473325173004415438100362855283777239687683162978138655961406367166682610736818255470689332279019854624124095636334964052714476600291726093692368071074321800237884956304683198567139181541872807284412269216347667231664274240327426286634443618662731112027706436928221093244212190962360982396681409886666977671697407117312803428262303848488647780018748780343560068120322766378697052760040327377165352335148743214838216368612602182958885977644541016363937810139240011156365750953822776989269621873604615709329914825038247859416618493996726034644127165797934611784602310488023363519315122726336946505631486611972988273383532122947249603569465102730391221555161123869470445244470394446981210295953191792499347746574221636637475403208162268533799666073724788407437124714455792534830754349408060822518159715776312612179298029228259452942088194775152320302803779320934307668259166262343108871230019870366570932989154257518410453090736288582391164294673621103910306426471849397441748536867470165723099126683087731163134255595977427261152812724765440062819884261747942233371399865372862355806729759319728077635036878193800657124904577788350661520167759609923930130464251646651762042217811519738917653976937093678612158637147259510958950492382727555151638789274521718809024041819025643808461831819030561843175123227766783711985256806041481115714980592766074202864685243366899073569606672668200303982701282092591638217873528066913540638390381161724917654493643870175941356837615342990494668035854618218455307628319720817396680100296790464660590984893116782245385308263229792142929001045509081716812907536672486480214313499722195403683336228188379023219992302821062948281077738824472970377462491061608950341933153658483022179712287532520928007922753579937298945926701597709222994388481554494083699010173519828558144380183736579726968109041299968516680851536323039196560116661293859837531545151398179232803869028574005655101487594351554231763987074738248532263015909630026078370167881731602220474100298082177995907423466349784666143197060598677327864375440981153606997119159391696811024684221669728228153669052503669748798197523868464810434188641585195684035614040670939300898372079823036746766301621967621924214051368595384184742090541524036214195998480097272793025412655244301368318896787066519792269111915378813912369139381761719645048493089802002261386462731696458017816033093472019822272700504917288617005059316612636685815040359380403818221809855919367284109321253315839230711454419942882074308669322686719941554304846862445823928446305965941144750408878971863009084058967653253637477201489842606521862589036422960184299250445034043666522530856953415035230046703763088680239559678321611507967026023408509503645187343019706103662542652612772098259998316136484749125078762838935069318969304360773670180365147260422782280718359083276498861459555657986588835737179499482285539899669406284296193867190082710014659931755364489403984149534882029536711486751032018573227220662047545773411720712387598016927851317044978202582986678850195347039000560246423324377175023766277429885646579380082635543219551544852856972799296859866494622480245805409811593379635212723813409886394282692954731059344838572190245122364968130645175513556283352824143917434848130488207802721332091890836704830100867257824769551738714301266121995050234806080817276459264266564826279094374793424272901421822147639283140241484610166708426218789677621364354312179136627322810921125167050868587836499862989595548732299134311949135937695846981558391695938704117195944939202077751010726301232014372542765629683476691310946521672228363739325630873206556829897391154928892513367448504338016052746006632842654745699719558247975070942598072593278331159813234018566278054607978373036573832135919579249730981047474820238763597023622610678026109118206989515707412867164294134804684007915739845338920265486402612876517413856806438695351217107791993767507611448560323301377947036400640373400848617292728432528375457431213157055971933568886643056296965066242455374450842899668071391488356107750837515795155314700634448021961579438953502291074892065607016222488609216921714510342815372242772960312704176857705442163004438711356745464003454397797073608465720329086938855110997990304757432440058822397694816190890994593798276749206681330467868849552760643679206364352302003255497455631207997550965237089928705692969922110595683634910598700728900204824645039582633248612543505549843608098879713715048112953281348156640710835987305705092657273742692269809735933627940592465527291308904140406821754173333249386273988231391059919143624261309128841680443122692874941729794517151518225632201700432428008487066134006505599933270667232328911788055264464810471132555770607706929281098515800868414254467599196838659818958142698730019566379570454173292772749232619408387361094492357713284931711570047581287080851240942142850011488286057582617872910029120393782712792261858592088178842835068784893460830478136548928825515963683497424767218095188559557646009011507999539169586103413954987080618072035686953344096434478198381848804608311327467984609929046816710985320623828083818316359875232959487829852394842813985798922623950429975398653896681056877538081955202935406438937938507991598602580205105408522443373322185946892208437076442725597910291970374511057036930873409835779166102643618950300511242442254315517264239678914415412596020929670604472450082809551618890385496197786703979780538877615266310080264465654222397453176120076958288487901736103424624479206093002766143570484923213574912414047067730354625091771133391399515306924552035869086101233135659540020970239798110145685086381178743005173835628255677343683422337783114212884870418479480610858439071791541176768435058179996879333112824206906669847319484718305644919753560862207382431692507373652109202478982427413472996289537696361776534398381187138580711631883262891609284344476245727520360885403012197749579735100319009656555689096845920669285667474824941508296002090135812838713217293258280691853532230666567330240094631142831251303286408300238007467040462266228682370710647880715289699990470375188195546957281553637007205940274528450013193777446073689987638386882113294234818998323740892910511552190813691890300153744817068194479198052968783571253738487890236536748423039466194921967277109151774242244286738082447229846291202783025926239804981216845875422849312095227195957666053047982471554296426002876835269697128051260337952594834659301118087037734256588437316278401280817053377316304688798941436615900979643623077984024246065817118822391075201743119765970658577595526925940115658094765373227064353841475356160806342721821246011509679650899734496590279978505928339713542018815568039072817185622828470605044136039915662137696251239654968166210376608495853654072139710645070546361898773987273351800208618482775172675495241579703067749307552765088211335245452131086559060977254694167374885477547102859477490036003423922416722993996787571261880583555569822188590384156248578258589422532474036387012576268961092498703883988591366043644512421789500967490770075212646125510896088696908405534237610722085230514024262116825874504499319928967665638255197732929225522283743186718738205782623212960553426259428209576642952277339158627367881589717415101678450406905484061625584780789693064563676562546946115706221994688777114236195262259336141309496709827762181792390711378888761885804438503044759706560881074579194530209188044548572866293933961529368493131948946309071007697830452453115719091912346768422242345266980084478151607198624184396374332726449727330731718443720215616100639117844494291769836642673084029723836347894212359043156179954594511688446338203755776334291763087261682108277026687953790795262131106899020083726611643199905775588104265786517561446606786640240277163855283746179862229462164291499075263204362501958595049932023948635246095174776013856389573976084817482419848380496613078665804651883154671655463668468317662964343134870859974801843527408701805567713081957791467038058710249288210924840657289547697116871486461464610810830518952854785158666820609228641278179461543282124568487836390474933615754259739715263130773214127124954550363344868328838800928374962412669798654005325095496813444371484559758438601211459419165660218951950347175687696911243803172846043049363137500359407724145271298416277833616808220166494747239955488813695126867013766828927458738615889483579279775308586034262368697601498405524767128237728263331283522370985741025994338468158281468550938665428223692007564180759950023223464760315262707059262769999019317358054407849676293503627486529667799866039329647966499667134693155993242654762488055820554443670287800952884341161806388889310913383822115687867048531758526507096128303916266442522848438100903002316160620455011274845915378382609325911137964346672481953228312002226442026488915334365609949925458467265537151414079662312149609068328212487214041937484424740584380273071541292995647477577660035468996793230307285079355923181632314559037652375791095484734812960534884349694553025457762356915134674293994215443291225473777657701838123846922219370872964323817564433348934634860471497880365858244600043061925689511657788250646095625850208577312046370485777685220884850505328937565638782056379481443606837331015316665487659707005561514322524452488577347858321996043859888744715104702195378049674688207183767278166976184914556365278557796630784099525578538439209447290712576224625297019874431817866249570322856092703797948427311395103401468365956230993938537480531725535847699726212850724620799750453732501392678687662436560855330453965564315327603500816190321080854193662455643922477116135490757374747674732520082929772881818912108919648094340664061676569147378830430557583050310149307338073595774879049592012315195547468805735886840780083985593332553682211241872117850287422206633596353864145689768475751849671201768437783044742089622926351990462977172586413290269323725823002142063645469416521535436479136471303973560439592835574658765893593699285291694886095295894753148326964052057062887842261055776731662733293100244458520287746222310787484215950241798984295027449764438712771919730005561584239654929333659918098230450882647786609836516764644211578019492256080396975682846168692545380611083594176497190541805451127533601717940928727607436736134920964133789201402520819360142932381996179072171027835970115756978960976850957452873272863175335175978661947365871127050211749620498723468455848558225470761036723809721558581808904796623313769613794789061108134774446366998151714538518698306275819478642431578139691358838575495267399015381666331594974196840928908889726477617540126756057815230108729568774162624514147324073159765340808530249961250895903045602224560535219298848121486775517339561085281649315790346214247765436495646845832221450553956227731931266414279754504398054383085327592588296771362720866902112008960267631953950922598559567872907451647329154405696519905102181866209885711459881189195452079807524075040372033740172959829696916796747756466935921240526199363192720152785221653305507718904674660595385058663581014712057302529042726020856474678632817433791814411602171216615655245646777274175937913964828253511130615224229899970729182940772124256684782481525327002001001412081517978417019320192861467397110456016125106312996807475494249744376352156484071802083054675214919505471173167207665868944002134921269850382285899864970930001855280810887530757749946080168305069909046533704650482685550867527867644499455678360898487969611033273149793127424201473708890010997240884155158869539585613229688066255357964954105282249370979222814165387121797760302808199957602093513021005642302765482211058856634696234584660831862793405098773264104484161443252766893253834583811361751446825099601690705527549590286350843765795072286135839221829533570749168547117994168038512515981464019916424689687673315408506432376592453833633925124114527661352444750080402740981681601250738305776002181253482853421065321863782005813686931795978888211721672477631814280779081218212595168677193060852162814970700099022914233124371735488333512539595758461068531192810508733773128368501525317082377948328223566104606917877050929627194995027146496255009338098596041585698427845122206325341030377163507751664371107101431429915692919734504194757395447683700705676109400073006123660061558448224024064347535667220975307690088925075903265586822756635682987374228922606251384836546358501867416151240267029440351652799025073265341952649888613344264623176592220201564227273826329976378072097130619917437448742930235647455761670092314187478337371333807188254792924432767209649641981216288622325184720024984349499987795992748824619924869528029661385837546219701257969409365162781620702347030224592932198629561320643650276846611554436883155070423230610810565066631395853414477038181839298441186872972608234668680482525406671315205729832652348954059324163554443720739066794650426463548305637370454235572064934717034535275115909032078713925882920164483983619715058648907069109501315510515262072086539132569808778324053342725249141026991699339448807166223469349145258531049730796769354005616258493430852365680217952160004458127040403477163169749593850544627587515825388911356365481211320306640809245366254669740109235990813626632106170105253322014955525093238017853031697012405416259829073509197634703598737629904319749416868470723280802922526339886124813252644801957103781772836631137813143138646820439802019100553297019964874641035959738344429062578730056839381019790442535772947014653313900507588773339361952443076878009107978991550431038559612132920113864282540852142663177846813567776821037078978793523189949221899855737581643871830850887077406903706565624298117437121565952398361311209958308294705016003099735708398373967469630881943936483806791662429518458660006451766809093734521967640897419885016936999145272463880318151446018367136497270541260307758987774712638681689226534368031798526883268019559093195889615949540760500155254806608892484489503990350319432057229819063972752915142503006410193319845491062898540156843599911458531221682506913463048806940343987875608358547727910308722830544160505859795959885558268784609670643098456787614046399608590866602753664374412994660243336631052654783426615968841570081465606755709727487996675009751296644729623885262794246966245030290642315575819499794476896857053607116003632805400455417194176690511835534129490464011730698568681587172819876864544913426613359840823581508693586108765924484843637856436146436165657297973690745197674225887287906607346611581392046792964329973503336261537855199109689429718691145218857875184134626555195153695071760130628248158837210210955904588994280105618122751528819314855038492662790720092321065568384078770733013011554201656237984208194668770994647888171772773383562742338171185827790659395676718458320431103436570058317979066623796161488471207916351047121517817507908144586985426480403457254757912796978268979505848320772758606339254055616043406230081341697022737042102688477547348982977686571187999731842549843914337405198292400763585515457754092669058737179225244227706808414206114107914841432452985561066669924583806985501847217826871627393827000718961064356339118813342013152592753589494727456017210740469118653800293848824506513805784761228779437557288738577145068147257128000991594146511968985828310513955335476554084836771909970749945903689225893787614964561306991134398753655530542412750997103292561103669431106697177699663618688380020579378640919804147035826215532358749902445779467145705900694629250739442983523199257832125784519417127818072749220791993669588878150721284884409551607050944918842790657439248408623055339884845642443662723171238558792682881847365010881898191985537419327318288304400613803394864138829700519041958904851162215166804732898354941652193152113155281796715401491049685854034633997756336195067228233406173136445818662406951497730291056789758174133873424214018941068954975290340919029718507341650583706700412347592152966224699661079543073613558176225328531368496028436699209930419005286012996257166456681068449732512959169692228683570679168906173570736178916422648302387523745334180049796112347632349164912724096931910237694624868124511286979824501870940346615475439107860399596901879223899637000481595044073057831723677775706226036745819721456087921741287743783241830426592856948152950114936663851518619995735057281940864281795977533086259632647874298075244434770387139273497652655219792148779350291616440369596380000080379319591310639590138927101230568466735115757924033371481931102032903038009980590595663003214897677710175281251378043604069528411521008499791460849657693242956338776245457092031340423052877260302725848973045750348431681335820206601069954812886736185691009075606086961016833240368624385775280701030449412269526700949851545093547958584062558858339767291031380971324154671872569191506718940539501725015237748761570017569364453498575913535754767358486711981052121381948747938518296657932267562734777501347215255214969311047133576695218812164774853808609404723182009941084397839677560349416480240776748848096437583109290623001808967680159217008053535453362336336380998019827326812403805787838444932632565878405948493119730118253000687727194698481552889282050202241876349327306469775689873745142608135399806423442917491201887262303545290736150267397367024982273656625616007659133393397363668421591705509180199381788298802299711803651242966711291730374748145943292977971631265740231940172994943313771583327785359602655011733895181396739693574929412485490775494107313781937717005977826032408925250296411340512398110397783744440706474203611446195498443642981572584642466653110106437788500583318542067268442952803498237280756869621890272757075111209151233678853263591431712063445941887432992168849734388695476850899571688166957643846290006785107371408449705206712567330691363794239529545948628455559915671823689862963556207061035920813492265929083607977118585540801198556655112885717823734168662307142430534995021450184426358668093276386107295196429103362416659261942891677936138053472689091377595386957961073425519216377259754323163680379629815412581677448464030665344646390183083854864812459250976043140429772534825823726579932870624587764721073718366879986399080341713162277469813565570060209501854771266280430526937754162639378448503596850779527281077086034283122617581764261692551002348763852634167574131718675389533812611034747256279059386832980875022585706939176304364047411882737983684768371443159498912978526394262132245315228417232108337365116483044179026506833436928556530123476543121351205078446627855509945007492897118274886148485795262085486016882888483602784819695927144788868867444626043855431477328775373193291929071050035865157459846132785258135508756687221405347955459141312915621949942060191719503771768760713036894411809896644410495624723717825150018844549052781439284212275987515996725142598087487207724392415176083081684675090105214193568618652579508753111824344676411442824226650489513567899187625347210042839650253037205482412352722893971974863585440914934916896979321915065837360903473013941217292602966658674446936975991727202069805866563633396961248357276489787576209936386810032109727286424823556350909445121391399347403114644618827754682553428537325088173116206759448678502171020204064690289496934555438536823610523566812317376964580040527212485644984101586833220841658096812989871714189416307469720019305012838322867223575981700858798015907257073554776509577293404710884511821584976429937696063673361466188557684186420721737047866803054558902172105503963379437740636078454758367223778212151076468748171569658285042022685899650962343889463709701139127472766635139136371930391782952199650389902605024911677954889052993630278710348161760893526648207955147952636280463678875765946457334227658307016695755218826853161850637392709076494119228652990935742702110159054097805395280482569761723121239417829095565542252466493825399198038642381797605158167277804876469967897206370547811779183316230168090042444932719489312616779959256221698549990212654063180066756657528166177475748341493021726325079142596499262425421661543647497090942502054078368385069381816790394035483135402805343341757323277467552088823662938707157246715807663778214035095602647932432475846916816666034617140556268957951845986352347891950549507372661172016730107078219139409794598917721239114062384525252615316122202321306887423626253368743154251667934784554745715833157870898902080027539609469432885080749761178524194267413865726142737957710773014314031938721811338132027640672760068176111171291309586485703329734487491044759505643039820112927949293834836536090845817918130829834900094251856945613064158377538508968914698732272653609487400927601240867696329547867402162069207504609606795454878692422326348261841450627648967613523270905573209587296580409553539596311585163294996778890609353045651540944891522441501829496993605527279960560976743232877989590415959361105834198378614624356640495205099798455337936481301974049924457814037386990618563951028749934020222354688167913229444486585125968809673661269247771436860489266315790616087941692559884357483272453374735255853971354132681958021459541413602536334303165421354616477455688923284183488592913990977924817546100694910828140841534833537923862676692441062211284577956906152405220019802854805345922370574301024545319915756426579537034452638700318661314012430048460650190997613553867126730430948198825670188860167468470461654863218184636330553088651683892911863314692283241129206054105907714244472908571127115483598091236004197420666144031951952989205474824652611681694001589496975315367308702103379210263585928099396632923624872853264533612958190416213471133683251703033526329543066729122423103958421747752850016302918927606279544325226488665261724995126665704725683173969379776587041271679525198949984833164635094601521153688421189683287873910827072733641595106530880343819885624772998662674155690600796031342419779849079962055094985265072744839788277033410866068709571849475789378228502899227735992294333722032427424306069886628670834798051013426662634946135140574949471591725800703628714740826548521803655061288863805107074232674859991944964557328875970304257292870298354804385119052518115277544294587816914373583083409768535443164277165697909973385223804340431558369356700541705707976110180100368577840705461878246873906171724220159631024492060278452914434856494489791381500584453028359137788959266078137613308456438000175386875199515172786800930300203054232942587147710407349375434103086881359592410904439712196985193121535013131155461915265397363737380109348285491848064069099509731064394215493995966518121350313991534168775408747667666533776214942369019272764121776265207024520765068406919595293554901450047423754549889977900741901973653514120280171162180308689130781911441282543941659219433595142457644243023011975530105727476354971866039170129827288344520280680234908855684233970440045990971238002034789362331662979257710016926547258347346143884506160154091870327010124199211833917658418668143347140517868216455450828221241031226267613916876945735042787496571348045208456324059105426145530965901443356305433253811634371103918353438679491325910281655056326168763549779854546849869543177680705427920415877000685974819409265831299477821890046312015146463750044964555705382920333885343039062757647279222473099435904824610706124440126696972667534937848300711846905053077468442221722759127760715394685629792220034256476910716147552405422217692763675698509790572035936655794241398958473242779923175711722088953947812431150861659990415583222506689141901308262834363076014326210982187054566075321013488042248952194236803061909081213082600318350640046706343287878147588830093213953939270768639319007595881526042509147215012486481501513089637166597775395395632225606938037047336465695130223431217999837798538220707980879259805924942621819932283863931970932185738780515820733039050263163546682338377345951326504150683650797861933927834531166253833703751299013304726903278420726688720425031302975084445481256488580588465732323803770381868718926579925208941200554910100600213064058224117745901214288500315350580923553862821283513713612333957059739453658734919366949319721274268149923272343398258973562963307292546787346809067864734409614869847551461459913506788019766166601667593231158361812598206129373288533089634085206077784076657943530969170279583449817318344622316928553076045233009640074137981969219575632183174261120088565825129344289597889780676431439130412685224153021148834802242941629872704452060315775862433654998001889681766150677124207850148620259614083200871309124274235750884265515177909464671420515241672084906175269806990797721913501664347176559331420996377591039514122812984788238913843234588966609727415189608312194237120027005955874172874039890584762992437023994091719463489175900495036588675261229560183160575746508730173412443944242600123100873581573979700468219151411377598188180957391230118256398619839791001845558091121711973581628798831337055361655682707450851702948115454811526239293802815755817156977808228440962987198386688412966744705561843556654700330195337435379605479117189171822506098799956932017456129159417312861437672195158666508701207284748379998826533760405718519418921291076943425319932667695796973441971112015396446495362667967039415946552477875014685997386370708383437181322387452589084440164848103716128382380058588452363022297129019447558994945095854572872736799647514698343637448426627740883413871048202511498200545746393831318052732289815626361999610271384286495633909584815430035740740222281385077821866635443619870796784623280791212040833267085969473644838238112885974696453150232985439757938776844725355531568299406303251692218951649547185303363217805057765885488730921409482231036438147374288343600805535508403877451027993304806953142080200556868631359230792627681561422121147586572025072778245145817320011915715328459135682920698074702377133828889620653955739701693001711922466656970702100819867895092474717360292555862126813926014799155438289532692197787542897676231607434825671203218689878761531639615190017805009042800480924616012464334767945124435330948207271274583907995241804954911925365897804225720354460735004074445327204160972821628121317981464049627445407877043894751666366713170632521208439086850001294946066764922050523313408982539584747591434485012583752825507357749286938916241245219336078653245501086117445751904997560040728276187108248458182455927251209928280246927192066382768615481932563136916113615052703409427572224067831575298936347038493034280888833707963554725583219680464003906391844358295904652774099026360488914796086818916137296217443128644003874270525205283165103987391326344189855105496833968308361607885816910662305784579950381889017004437745848394652660470706646741022444478581037975396187503703820613478437072635198521679444454509682628379240183687669872361037630080399890995999881762363945377443696044528659717362641730247282275299238696982921240524139383221128762734910014135239210264278392746144438839780065690392766030148880865983165035103175795227891563463969453708426037122744170595622313994135119681980407805662726531815416561805009077232557386503639351086294694920574363772739991686302163868089918526479788844029363021058123944018814117674074655084399781379200878990804310274257726547068589456102687918820741789183589174792454001664283967274417484197087397604640026089425557268473449194764701902385962187632381526442200415650097369647886894819286365197092926212833652855592145136317141751037495383665549691139642380078522334355551524087643200989707980573720704802261555175559299753505764601825661973551115760484187975885386612981053793294503137080173933966283588476170348430141418068698654209044429457994797187587052354295729866707257003193744159957946169556377352243511377685498575552686358530961895768093026377382212292797548321196166916086900833894081498624089284012341725716272541952584567850650242284543952275456243250937858940248405260353179140906426648124656969479515285903116837338929381126609706528702364391168719667896913183860741669915884853435587692164712409987885366679482291026264690536686908405845259211437127425428167964336492550325585561829647281064672435754636630630479169262524079952779095098829162719677376176188417882588222406216392191083951114492106469384975008842844192095465339057409385083448148875416980212632892895902900376238093739964325392698135275307465951624630548165133759471626760978482605998453399974906445771548006171486399056447073659179507157234896015469513308783181904902675164628663925120358805261339567072993905528078151967003775682195100990386035998048125412136089329100634125523181720301096971508455943935683533143607473511997951290607207057264598938301942045309038875356410830335029372290965876939907931860932950141002771298238711548577972979073658466248538093946116915425276486524378787495597813023682236012018667612042755632909151323029921381925395213172133541212588780793238784023386979193624561502471446836531196759394996134212008107843447662185034942620741615659445410629505411147111555680882625338220073459396415614250779054496051410212789753558103379425176866379838893335256867931948842292655596163948692196674813515767892113455389524720386344960505614016596256142494382575425478605631826934770770479273633686457969877929428710617902971946084431607313988300296601675875503833570890011314341874870903760536705441186302238720256077559580799532756778553735023288189256106338731360269918418756406601525378155379260247799543824436936619263873002560751344006104118456940989085213835581635182214573140457657604834458045927497350858823850453914670298879588715465859071949868148174024825559599389824885929180836366647152860891393359515944015207304071185167231159849283541750522363754030460414980748451715248072961181052187598160204589367686519956341530758403907714854039841064047333396132332232850425689141548440819431379059248025043492222220493010610648302224028654583675359598077644612992370775402379440601092901063096782204558354886345212291767757168394210086047346185032530511226676786899411928470128042344952141002888155145009035057082807935910750506466471160423627638743883271082036248708208342049068130454485842704729864902573114103010107120199437735591180157531131126206982876926660282530663732786134057325927508099277499274393747370287177194496480456841609693562435659403294542749876873354082028691894715497740317651138333727146904372016592876349037971047422908777565665944540178931742956863643223113098877058174488797846992480368543538753774085261274987738035086677401233188571196004123377757513955041314863341854592527003054542953596108487487262353659469149165019022705640599530095966703671590383229799538478367597231839948355079517856134546901339022938290174646515762708931500409586230189300176106267102627066512067870435000020124001801555226666050039367550414297921599490160010301472973802853400329305728880062208494404440247613539215703917953948286478799869990956219640718485621721722259126851487592767636931493025269201609692776050732506559552993486591686060952252384698641063399054910898398203476225734174631710295157028064635501151160118348498279127216443618682517956826202700569828947572074681350394041271787829391382102997175026818726808788708458767823130328334610875799153794952822478468588828632395431300054260900840295577717095230805093819711150264956595218102092331614514383055354104834995185494900836542769314266946284377267094766824809639720047286302248713593712902601246293587559551796316969083752059113854631216476074024009711563251404165078672981069132810568379612646142672983239111490819790821133929298572726013603398455680644330369164475434545587483583937255853908933412250963013932460757235492339190894915368186069759306418186999047401640166711300871043512748469565370402869397927000630587442036821659711169246094425241083781404657476724816446424538184507019901249969387310944979048118170095199827881727437553003731341101604970201331027776002921239768167983047924404683174137662449445465206114717173763691672124505420013373317344507864698808959076768064674243948980471837679343380893120988220556216315171614889166735684200761250382318426553232526847856758281604617638640742456108251483179998396931802935641066811496200396725519791102993335073963696722373513981085742564741728261935753854846083397637455554784958415064703729860658897369744782958945814050084812397883816853966227287598257366175245267147830978203951078418519646320499289277397076343769415658287022336070097812448160163209226443230272409954654414426045093642415555432715641967791366793277853518616204906917015047888198379117169660008078995304903959046620112072413202169524539385248588058286395381131971166363088402277502913608826949183091562547335800996500294470221119590800512648904052132429673364054634556798757688331814662535472300466990585823851907664105131463111313685498959305527869837369943425037625984751703571213681214281496379848364771690462227825715686987107327831049689754257924329132381977147984287845454566065847400316927949351740984753347864722176172893993030361150185616230273167809121016437962463280178549828063709631533342471634757651377854387529348657369874886313146975508320106129059736615914317508740945686612843348666407695767150877150822429329217515771701847143082961683895384200380110274697606331757525870680664314295235765875761478223870089841213552850472335203778776001780974790359292519057278898266319136717896957346732947877554960995714519325105556050169933802778581208913439172224729712570803701061069990306299281433706754486011814129739045280780841389611480502136660711373113069170938697822392397947220479672415924005081515076514224135553937021744144418615554825349088930825728395112788974239152385398916154866382327577415839924831731956337133374344132408888817578275768730386266380027186428670468061656360809821003156005619372053134072372547495619691354751244647968987174609263762690419458515454809367916759076583004851561965475996259721242217858678393895965230814675148365684711091257723412542677737482231602141254378898412756474367348218924774042499434148662319931743181384250069466374188657098221924992104325939033411404354832856012177135953381035533733875303989218401998659825923856757172323399884253839866137069401189754250550289663831462523814226152077443386737466008374833348902451830459291570671303776920710483815137142961038548517952534546834452599122634467067364833222096853825832543067491224110656320488156529144637495541206580193858213788900334486241506343275419803999299998102472655442294071395073094625197241334278056088349756563526849623166894104616279826565907303731965902515563416086246778769486720930274568392323516519998820434497570138883016070652197026382627366825491605540545532531878416428001294164851124237728343382093380024505913160635301126821862689301586296620849807409215174205915001476911909530183125675795658961967422423423934524419510487245481064319562364420584608513314867873943239134071758497619272771056237205518172378535834470979714805684319961226315680439651483242870565505108397409335169032795186549179951599729646208792269683388481793391338582306741505646844550557551881312873438618088337192262185667853403885229382651821663218311056177897708763991779182980766941234667331544808075243429426645640409698480432229232848416791765760243224014943415648150607954673912542812498459347183786668055784065763270446601737641644607844648119742007027556315628018572875020880378622240438779924301493154943767822386183705963613572583339594969901466418014997913339809556806009015665706636174897950967105026769726386184733901026747965750230188432781256025150897881967546300997024633484928047101383101181481691986621876338220222985087343598209699660760216709061598913990785223661751508729456982008749171842463143543656625907301983441059103732592339490731842403791088583189655099326244502712526311687097549776923142329583171357532948112436241256938641275050058320718494078502416960776840220306948099199030479230736563342244150295145238467532696027624150539084761038991042609577420443948927249422292210245496684650654211122443042150797649110594731216334317918556971299636581380284866391382364318129919678210937294888234855324320120831021174310647594716635445535398763599016566302006599968494826471254768030443322393257513415251304198267249569572413861082926327724577355549167537819290019603803914481647510772410845437989542211477721280255330947193951812911019443377312934907040961680158197604665068556185707623203628401989304124794406385659950127162144091834210278131474298938061752174661628729608912914089615989376337906564992469022139135081031536050241523832223680458768618305118294845189597357881064727223295593103017455061546406809794466800242007181705308705440576007751805940428913987051173258146334316568563734160780415688729575896858747662103464684469835707383124175681769820292232426218061614720657477837259124986452067077118656810935257999603763621183520231629391736836070728943746135623377384741586749003279831664934027768808870155245164649513153031315370857248367935648042206205202892434356204149729944211854196626336683495002005830079064764741749177580500415239820595851285601560855303171495895834546730226098642691052404791914965767352324599847159482670607832344104199483643827620528449890466268388888536504455150711275991031886994109074684530142117296548539246212753542414262600483398288478254354217835896109761476584868545040094682111688814424890898583214308893118915933378954671169362135685694858207478718538144509145720774065640083341750100610862235756599362144141206268847359881783553121183486278871730981988791415245985767834493171457824938049702490522103006637315359541121892155202590171751267410316041306245044148622512629383562280241878535252832515509538140406211159656562462875912312011367704404742876125778551497795841649668208650839351756504858879739535756353536740458678851286394932773471938901646528023735102846243962524276913510797657281035638961523392103363802189886283035782268280821954157816513438193756628328714532299376401384171052757753886841820264114172185144019609767793621942164003556060435576438024300334399477227040542578865449138464505222344917582861545806019692374705180542790123499088406066014561953433545957483401273282435977817763531431819911901617725328119487614922886965507605024189337109819666511921458673579793727608101243137814439707890929493853948098064011055320356111242738470725562073788242394030772650029511019074154600549655091581362013360448247627684608205687941412606652845116470155990443327722141941879513326882698553040184173196788730678670923905428759418717556882960200646669970486004774871360242872750871325386461518582403786072155847014807428462690351980960839902992537859272823933115004878045868527213029014165745929469207160716079187122100998827720810390938679720546141536040803497926796792799675490022790907165302438321050805715471641852351473397411209687531000296230912411012020077118266843766605696865742949590528000735912864654131174006652647949325242965452427707301579673833239007764435066133215395995424566619768179909805320582884542933600952632101686815140622448369777388182576926244323804891721343570033234803658802685341642292129147393344305708664469560488124507696520765762652599865072000733812368269023836776585004002998057664652264242309093896441023940299731512119278629074464459218721001929207904412729533407643859715940738355865207652109680047025798439313430566771338808165926794452099560097828789720949436309985439222399783292903894454112405317471969631320256243085339535664042037902336585441256049585774318017885535014062250201205305104559074274351982943179188983403340657931625573395034205219349254750631718990058763999702511302552336809063568431978266064926402426675429303626644102588555383929689619728960058366732892592391222972027403133780240647860653911821782349683219006186921783582131644944674920434858575845446628541853547914543591854761026150028740643154797909779070448775476639933158183477917411566774644402689156761811344989564770488013828152974736076543457030791210522611975424916125392218716916419503855103849169545384504574334648487174826623757605681511209767621214574587094205486451743480857875359512887949228148322899977838920869094409679478575855432760987877000353029912377549552810814977897814266911476417032868895169802506357132906170783384787716349445138023722908076980655035967325672838782751421196056376554880233458745946598632871397651954061051416488409720039376552286929865648706711956846904933799736897628250111865062130452407634418351122554157802552904930396072367859382548614710934788018555410184783412686535592832816029194153079487346465344409688891265882644332498026540874504149666725139733652348743496717960952446322212515204186848891732807201309943360715732786893436749802225951087837870045276056035020598508081138886099205353566933391654988049643519441601708547790490685041494153056991741647983206621323645421514494464709041212674198225885718720400922946157016672797570171774807885508049879973826822092240515867835733050940040207437647717171570012163606945786264484955074705304661094751833263369501377472355525339481132516273492801980402051450131663106251429890773532351667479591263423564939306132280267699444996876716164922162999538868827842838219771591009889048661810930795151238048613866586937268852855041068122163730230537544230033337588058697659197459305246297008262184156138595001204988128269164199408884676481775851312402602617894637061731662982688992962943821701643517242413620397832092839895256789429253217773277710245600817577105521499847429756675950589373663276410498104548850110898295703630364776762171760336717500806313171107254312154893926589801397959423094803452344947690123050313108991549002809898509154244920454311754034062266622160913815586961946119355015068651999260351403797489554232634083647136210259623556312972739640610810546457823972674824276245769682464977486405320287730701679867208907903736405697144810760315757597831623288577340818783153447419829500580186362189607553909890994996615032341471102236675418241119972511242927459726590465467451304256109871485395272512378278478094639768750464739813367655081570969837648918742553729101154044165031587975258325504744140368130732029060371409325754650954519484521081207000777759759573574576984960021686035147959129585527323839221104340788432143826503502823689793323655308947516863273907876953421649591102086528228453679587651006818979878011186231317947475416038714422263117523915973418720081993686712159564953116503661672333197509099426028902095065590013014727151440134130983944092538006899027664025514400034573341909518642930907338853553613565307538024923274374242274388169050307850501782035277560620224515285730947561704230069604648592812479160132692308529006739613064989928627461371221120322112133977513490357313450213816419631341276212066405192929631388095502382338722121085379795141312464932939947846712060451095803811380918157047728086471573303640549783376215274888749409341849238016666152044764154207015886057897507054908422934962781539763750714917935634639139159790379857722927321513388717940706359348028643687484004256505843387289757346999127595754185907208068409117432663786727119697861210715747633369362338256600311070050567975582488852555614653928662442505057719831597863657985547011054982824796721665877091433396446206349737243049543812823761176402671128906970590214196575642216990860774176689995705184388369962350968965332013134710391131350471620868133803589636898513563815941012108367102463952879647335684122406724101441442656805029176569820144439160416839905302502032607708729315988129395814991665103352468583510722134481141507656037504668660999189356074356158455624228817454959066483352465045562850643700387425559175669659736948159391694303012833087350186625020395336448878814587631113259969034524743815329958009602663578141427510673294752257443667134433389328526783057351328903053712922416084062418932939647908553010308447969348704886694216635181737749061647669572730170674775722588893859338929473804713165140364751634854900251270612203957870114371826624590336769511338641916107023975406473460372460200633953083844989958469960388431977334868984321432669715026242908860805310910268340666025808841733881576887657070408660017036447266849254605004685676502413785234257451916430609256439113710368740169035723771546113330902535438994028849966522752969545148450190488487648287854266868162314536194016739239844010285609883755079903439348265635109804191111336253768025762396439425713005682312090513430832277894660173662221232165549116526716151603363900720373595169604540160904428228464670664906000915899814098051848879071596343668103293386946408170382049501717425055681467014761118534957485829920983261759212087454360376192344413856551555577745845971330511039679779592611833338240345550156336116691214626092703932559336239954832745061725924910226159268500974662142874469323335562866745568926744464596622170512411449135688119157059548793384501649900896051376312408340492973191213377528122692579560685672634309559509200308727321553823997268301518196165107409951063687051720235935143214790317190253072398821305054112925924181585517473506279087565992886714047171898374080820091533752894497203430066570659695001574830692533121116229505946525741368623876698200609171808969609590780524053141971783425042508900279006474998689533547622886430999528596274507616718509505572872587477013113869214664625246404827614483012835658497828391452484309931536126733246188688769407033273907881312569525156068372985399835524998988359273225236138990434368166538938989983911241688257208082544519998081407762951889998623185128400427718369857255574181505421791265745554036011319206237756027499747696307682565745365081896912855955310687926496774111442956313548777874441632497842389427355954513790876002594102701692566096146050297295298719224392241057894001052915163020905551600214571232862028527585976609778184403761670347353177943576141513491103118602756438740984833615206276193759071072874834495323848259883481836534821275358559467761936126386381411352151889191073454060434697600247069471748370812560833210697196785859915591497724784512183288247612994413104347304671240828277291613957969284814192157726008775004357696944833159388984238103712939368811806190385668304685761941444569105751802572792079270521931197193239922611154703896031220610359804560214361424557454064660574140730342544999074537772221388964073061276499513723821517695859936097127620220643204128614124594546279799755363455930583494574863948793784293003873500589703362140275149458681905050176040782110627592528211948122051606528947559788781044611255341041217953045954423573104482537604257557318066458404442418064863882513548889997077355319912823907062412472986587645710605499756142174875724982965769075880916516126845165876210834098543038976562515882939059655363680456036493005963811906919248350972267802531184585834575176471022795125729408786866876086258846848888340972280268322339512585199836760688803535222050469255605291338492998678341637119812588071345368587118668949084306276494012310033228553550175991861042762706995805529904158932502922223346023124638780765151276032554722623016050770100736019256418984681817261743321176443234562248030943908148804689014577617437666574319934339921195265119724077969818405508800614037326340847582756205479528059994142128298219571516851684024409210884013850692025480811713929214750368173017019035730807977386877688423528445371423222752983083948361451326396342171761078948211567373456563291728083620436441193949012835861541127398063363899385795950330438804728048352598234656341526554183833724345273951279979661279047805509674312919320246141738071674610197653448798585196833998761503756642889227341608933105297476635969205618426639595114670757717558034800712468298261821228079273325103309011528553975446059144645858251834491148732045921614157596454803468607749236262099675287255040606591343134295535914331017679043527874624496562951712318615705362656858661364993915520608683537408725955853778780528447336337316870482279733101368837187250980986715844241929829404229671542572626194246814683227308088657281667584848180439276360039144755960143386474287735806877809751742840477742300107691364335265417413856394763085530161626571655819564438584370807941686936143781626177645377517698305896085497230030679699368344132330101921399010188389070056233022101552352734481412881070905656200805582654382624396605646778360974539640939762997533182618581515663310953706018147017580821793203923029870320308474751029357794514640092956377064144431201758988279280990118641189503750272743973034713647075694651928703912045848100613577935572224081432883167598278261281837422710053561661897231416434547948397806824600879502517535357138907613836142874526472478621260949548538420090434748676351299390158362919869594516172122053247591732675614306933997446487395038345581206929101085641411908277759905961750695000593146015953413133293360120121614113132726386139757775742183510130537189775233902641206135634080091454676196609330925438001254004595714936182208466970868634317167576679361279508890291778546161079230349307293530483017880474147124157777561175730216376559852463489426229452702271593257218410093037809931728538940459107660945094986330393079903545821789517165269296510530785118716866903624862177451266945483604024105943775360772045463549910000278502559485123584562159527772611857538082371007237938138678872712385913655526535546397813984271740643059718641388661105749804188190154725975810677431831878523858777666249181527978008815276473660589794286330352516221505084227410411479084098449169873862942469962298134583585055603589305196353706039917839527084999247404703720918278945888832263347578628524060332558278192572935815616913868997101539011276538475289741342799215339131796107582438186389269729947626723775974333168613332459658342741949611196327838089191823957578453725237298813627661777631348089477850147612372035287839899185792019871605468272065369746523378124654275986072890054765964434385484657252063558574106365078965549447980619225453902669178564349289435973792019470301362920497697251357595846322550680344354665173697798467312937274434808303999736457625751869163068798052361502955214836545534699803448573850625194149602692128953175581074572116540177868684404163550254784579410270585660638556394155263334416415735122822915350932064823262217339006654885283044780024222849060480761396303288355448110579137371197414022033863749193354244420819798857192167826023939086567783922539447751051599378361455422477654739895751543775926624158040982753692639470432892603567011898577168719652125743364870031852429554340634251459774288271052582884606265714159617537722504335957628886551895040206011317378804855717338841764513669930373321413927938575433399749174103837537968296504041615822972767796492724772168720588379081450107185359374865663320040447160565425665561605000746185753054924307803219591740777046655395591695823400163437869703707096304374132647062641863929154494248745004320432835113764109155730450301132613433875945321467978759834679815558829879127075358082914992436676552804314353711805271355605004150958710688234061505137318800786970935210736275856616690076214177366985373038555866225704111723240161313831582688686660695644586393673021491931971280193207856102066630087123048402300761303276013236521702339593899019391344112678053964110081967640615029332501349774677499557049852638343872366701474504448323657606854268565878055124696256633880074236901544199688263506315658384649688873345491820068367750211675768938561200338884646852751981374708469085860359410290353334236228738187065041319938990633721379952637598433542819972587291707923830616979637024499978717382731351546569056125368061266829305404160352561044918583081781549641315040101885785375292498563426885750190064872513969279506426133486073291794009311920875898904573909078885068955486114259172235593096592883540565385675041661626430439031174717058418250671818918320842669616738543187505389498695471928204424004367128360463441712225198514165148721168991714957267737420117354072090584772916725600854096732540073841657650282842159035717904906041616679182018024721588991466708665883945910349218180807504662450853972681117634366996847850702628601681366003248093630140890413593174453945823173284717570989526446793127173458414368270901688321076295572719307675371268387791264501060275018090621773979985820584933700029912625908033595970786956772628132350217274570322015149451453065605382153917089068115232034551044710348315809919921905590269566751232410028286400259485624451586105592677916798534777966684620917180241640334645074241628555892610839305182090677101382899679501810579495644167693499813203458188424724807022465667595147127771428375380931951367541945225317286214831724942957035557124143502772265323889272723832956859440320800029386771750167382382466104497884415226352324018690354748217818584773485807450511649836978203449782455271358697949109052149504356087795596558234403608878296220444164099268152357862088039748302640831804563714901563640452199111534285797339408690515072755159958422686018876797781842933699795712339693674452419694858147812386618043875360450800197744467036978380888327736401460864799381179949918027593505193246777360549997552043131015204161466618978516744412984033799199417832581958699632742780324647485901533821241623786931840459953196998837978364343832990807050099461416615105770915767097220920119421165800119412015075969071819668230865647208449821042537608060751255263069351579985890630891730265255025693047473966616948921697350876752506032614723305122252145720008695445726633897428176110634756325410109383281757760399750781957882621112471396618956107588528983598001892007328800032312656889844792483522377767105599874604978300490831754151152560825605927599291740890045010371227071618596306096508287859045383359269326932706986943966181149047333142890407366123001922163563291248861883097609989960445585534471996859736098831961116670222423102038924033598792062226629166563975997619588314363720159059334722429109269729137006506233845786783006914767049551865911077818486005568221337716063044932451413237332133506529210531209274434521160929017349804472978825077251770166833977184548724041523509299592009322146622617698260110168506916297942698755693732815953075543537083499083788412527050349960009645550593738511062275597411179888855983257050192132845931057636133627613749559441763537426441396551730957683255243720362027218563188646281522402176119371195849039871681947729674658157891362673581332729066383148280766615827007535904868311688937317780966961168995647940632506151668005942079970241487842527788366596359411564933112526385784857961338244357604596151003353800655875985466619131552003344413550992638859150552770388021870505215441847750488613860767800390163436643864742401736912957850936150755536373191796319341109081084410899697398330025367567293598329166800265569911175466564774557407463631457549300316575461003369518039361296700647191458206868891266996335538884562521259983025024211871552712537386994364183030892147964496113050972495456730135644887630054449166014773062013427372453505953239347380810443368301893111588978765549879516929959113892090603957201974353973806085448415196301409908328570513128394817421769283211876236747683050877592650457576304349764820545985143237280070497088830490210788849623231263187513019998826632255014250587112637784579724419824828227022950582682626879620450162503552506446812559844116762950299805214162749812300165541780347593312882990636398231915765699859419614598319005379686149377747826226682339425035277566350255379396377115715572320468467886343183600535559413164470752580987175334726950286261746995496199645001876125670511908547211151064302018932012770846788262958209763661653016211094790141755873119976530180508013034827435084607779885254466419329039511863245356475218168458249386599742803639446654056777745455891819806748072332308217282485637765801813232659049002591196408655015722068601040695758828870887488975868735512330035472662275845417483860395626109405265584978782348956008611287114338716133996374954151522475959299796733036523716256665918179785887061046364213414235701339895135418509664114774478554034962880428386023303601888621336581860232094388153523525182719690445931582895852244281911226041660819962779105399044863781991047516213238602838054697442252565705495853706622381275726876703400265397985643881065265248022042421807419486148214474464627859822850279463211006755642239156957308345981646004032419562149842633519864905692092490985907705638314527232192274290055321626512156093087219720219663480886537239917317364862975132356280357225017544194052682986029888877212175894696326633181880869294698784153238982829791546837021185145400050168707014840380699141909599352334299176171276723855984931704842311297147026047239213042899256084228416087784224327777915692739721589746865405132901245820951397675322574594260729765206573361074158292767219080765546776279304091429365927714242268448466982271122222140562005745387793136559426765745715706522708922359123026879036929737247099499102913436617852445561964041564856275899398132187123374626647783546021217031343896140584441244616799848144115673126200766135361470076164368441634931794185612930326278626075516053260396881991435547221772912328424769707695548666234402149920105224832667379027027681844022171558535318949305668028149331831468107042071114656564374848561327708934431084543841890553939410762707810659548866984431362604736835172742233106982029164014815588606222746813306973453693845670017522920922110657904329459966922328981721926826679711335494909348704951312103779429483389260029203156203889063047188299280396881046123889430976188572488358633051806034241619829481252937980795109938813607092554778307809945070913781331808562326371219160335667331217167803041733730089464166181412985411219748697896533408790484079739220619966191764014351602507858853860411502262779880747082192863296361351141518858161890953362567884290959113451898857902286462318754486971991636747254826886775887091504038558425378778146586138669060687081660506988195185741933560668604998591964294609209089621228852657859286573942035487941750074139573749361679729212058232709534272772958559244645942289348317416897623175704406074949116237385802477620866932366419722976085424889037443808306921839615362278981273824072501666135408578211036617553778344891981708406668242088716454940061252557621030382475495175722606849561220812406280270429486032852626509437580274236396384201440081792701988707995262529984766089414568375833869926943152305806710050704689289099383386849023970702784823971145558002195144339993993199483124333234909387070191161633738149152381157024887947242882986986722499631029881385543351283702126933324222117959492545439894493088821576957030598787284965252817484604916756306069179582363881108243803379463522427741822779359679243327116440408983688699283205502107560913197097202916423253438244049155267692759660561781197461484909748757705454382429184632262363729363664613132548267200971577514398306217990344783487420109472772668365730504969202887721502539646403929158461745007288171687164507105984933043176972905667644429752426812563823564026112647573436718362618237131227777583432756528802746124497936557527886122724813155638973733601221828711495679512132275446881875647901267859592184330590891458270632978841876884256318573058796125872491967745887557526061319375410907572760252498088942501107722257572762216443038759294498391733880972514521238055082319753608490413636648356781666976237032221290140836002301011548578005662177729772146271142990761150344284956796417776507757353615361438886228310789159439086222478235310946521873712026738427074336761171186918936376346688157570091597759700092183007618861877949718995031328466248318160207651528583026331851370802820063679281230946514513619340487464156615049468585022745693746405913707166899992453694486252773579277564476854326928523974898366344779733564194942398033078954153103834787820506521197073593104310363079574564944879201800102824269892371676478641674210804612255266554150187049666476870955942449769554385109658049068222405124176579418700009487782779943523876323922754917258903891576964570185858735894353889280846335124336414141898695842090935020841386013006887174669572312042502376879115781531820221704707435365775214598201014828211729873940273452556960407354178974193471725491211821628263892112666683881801085394271516841971277005361629272006390125192214347607238046188099133392209572738689677422288692637224107632375034485361577782079520365561388403117021551961398873833074097351170285228447053775993052746009602464771187879581586937231042177227782185484663159862534682765586495691972012305962759224085607273525628235323614304273372394622785571225275216668397656284730366892889011456314135872598341759914319815426804295694388648848114337086627966578407853138370863596667476247918318746541943202108277194442898896623207375700204325009860008902011803820455594416156523876484355734543439498440002415546558251476140958576418185022070072823813313982979208235730768455386001806679616741535953042858214531381616564372136425698540586590987579099379778186256790474594984397363997420122541194541347670474070212445830765201032579835809742269717358185095056483483143912082532381577704496587357035180409964376691304962936358800367063202004159409541696290190060313805258664574281328735816764236527561810090775828167417455242282540204066371032225435957520610482229483320279465587504402955706079751866986468568731648487555451844009054571795829479759214510026192925220165646062808742978076403258226217970199853485323753149674697265717744891967670154178393603435522457613116216087648873935823816807469234014908114517433333463662509011649534763802257504604449361327157170066119886519536904556942497237174107307457652582705657349471272272698540534028945882679378048746518861415386639234685344267467429353360099309499657310642434386570853878550723648775646726232113459763511757403127503449049228594184823689434539711895848579729501837422189516490219710848486692345427324548108554435125795102704639426942338746127508275722728837720419334245957013396823636748106676538637301732225839494564966942319947718747253958101714558370573597108771832157838641620309257643528407254410214530131335315706501019377833079811693943865882991393228448585176990167410485420588546613484526626714644562424906291694181399943987111370576281362750678560346202113379490510319209931526123748910550633817022242672117863873255386128875483131854607463950939992605971739159065939338174311900330553501984099878951030796774631259212628876456412570723503536430703004452870714576167541058758342773352194431260063724914867489901353387533146526156006691721264454551270206807310023459774951589808780981823473725886332001039876437657518567958148644838812013969783128484561640843672444046885574935164767444177902106212865834503104015268958429739478982345173811444449208559491598390090246671728083031400627495133361994456133637209314622029806586366807744254440629816298139501588864533446512332553323226766779132575771549449764581531092538280288753612251547934387548011264804015499057958946755732741177330457468397841132562023339923360870991656028663947026449039444278175720035983808456418599161537104595249740388096295875848276428672129548125799963342856690807159989429803622619383278555924825932093390688900228632290446549719948755666501921782665630455299879664103043271912271522988990372339510291664705573346923128967663610178947211454691097526685845228948640844918373594725131622910468030326620641193590786627448280112689040367033152602633344769552149894846100542001896501238603754909254911447352227563306066286190084130010260802513527221687788297094812125541532274653725015316788333583658013807897871113567144924141346218210099450425795344482973330912005235085122348341560958603331609106643660304203060556025093798600966251168301811458417373560242268036641640734287592579162709700251035019448123051354113534893462318384406741021484254581376249350119688179034536444893022165411121023466722489956691045297730851580491576792903895988935850462290548906975608537130075137525921942006210155736398941658409550461669340305270611445580611706857593556835073138526720788992456414794358168845985940532270310022546793425029579898257987982901306130675067050665582160602353583849446429453600087289226576040569085037088161455414507563672407612693097282367640356553058700583236061299633641015707300040247294292967453330699737030211661846652094357779602739804571914184320801891588923851910948881910878005233434632275818150859023544402845460884036751101956158449464110837990383138762469357699557298767688475284021663988550904115101276798068173528440230771488870426661662676617560183701960665691539240197185581620042317109217068305989989411419818189451809527954102680899041257184504965659895500623632409976149677449184595234688091689396878384856702261901007004605379826355775071234616699004900090663063024334229035415125771149345740246157229396526344847426201039845938782147087517369269018119091334041662753404599550746100800790267864873499106589108430743252822853848775749196834254427180729236845379749796166206571727375469299625469226725242490910518712279911918606101898764745817076196217676819934206224628226968486225956074564507986264890945055188859717170924692111099867583515575104604512306706386454967450479946753622823423231827966802427214282147723507442150752342202608629859050117530234655298816642519168059676357515069466925605451718241254146160144440044127961678716069703882413263263841102046108807287311848666154987117750989142170198621738303602378518953852520096700828175507761133154483649025729009984389911287122322120243267852662459278099989385172576502243748406348958027032863656952811230291015641186409965808026499507342109908708307559850364182852273596740922471952392527509153133928947079609745955665904577318260890655925776589360934876703197541137537136615136917359832160853648298284571640464180741077267153304371859946000067591784340920475460039011846449484020881822567663089175587112295572080001877216094743547414525675040172431308582398097294975281427143191209253354263402173861712734996406552531859172633712062827759112169042598008399980197803946357999515600242353812809353766934927551809312696873865080443887586350436231602796812828164471788056718012572084241502212225682153479418421900873955132698588030186296338669859113154782081890967191547894602849302446334766394084209727250996361328633832373700110228205489141978191855925282390023777363026179611137493018125626211078030298109298143143376361209358676544141930254119174575827143126827533219640837836966518791289903584015898093354249683694342977111069108866711472131006737656548059223532301911335863231949731428675082203036052516313431741144359726582416847761400904431103790370411462268272984438534470665113242467205432044216017746503088625793138529964017656784732501663508799204991713032258768179431789118223872259338953616039444839972597342704424312058879158570457828326025751008153060581988573854312460424319971544685392216775204278072843373322947856742206635402664507933215853027483277984261478851673545987061608118984947289562586495711769388311240122615520351338057045710753997809301807305834949448556253549338643440652263646829449646814253290853623834646699060826669827758587052538419417084504501950738257312996157611219733093426479212186751863535350412480333395419156206474186711234528612536566211705887501119263814601127698374500883299786316985348512130922305232023074735465423277298170884781193495778513703397208364751626582382793858290489620658978472670173867083116798561190207855118036633037214368322790370669143384889041141653306810278714819457015009166058500611004904536180543359348460879338843670502404448389947199502446098662371875144547317879363373745172470161611118875456397991427838036513142969657038523409785596563169448877842930579164438045918922515839133407863899588068698261374826953512046808941245571068343573175180674204002799319726130900163009275004442756597039639912331187219087619175298560499033488991027055546559595710673086088113322563736401333065884857076866694043285084018494317140711333577109705513349901393433431209099492684207954142853754024236482099163628308542145506866795503977884249575409427189326403516200870329788882171179829005746724868073104862286446472880862945707204091268828021474175138454142543117925119236682710692802859197282007062649705169703736604981238410107793378331763869038690797926252611476211068002602730285625046133498729697737065978538989297211588160119929608682342003301882721190852831278059200494090406004025539410228749420356026111031147683990199455631492345690683682130511323451160198186968591299114815308475566011704707559429314660819894831631523105423910377413759961349183828237253476121785783100327342482773867728988456417095683258148334821835187021717771769074559244692130762813690406026648292572407934894545842651796420523969818375445598483282479784920504152595965775108613190752064943050737624860909020648057238352901733261095782204565429888650353944118438299259902107707539632543764435860435487529435387777803651837911391776626721076094819707789581095490394674149690221369537970137185549009470336995907883275011059219133382040126817177242623070049542437414038516804094276945828708468033191118609323097261643031231591861179843346529554659235244799108167032370526256428316512818058774543016756137366111496943455249391672739985734414082996477279765898758691730582866207375474595415053626862784061489534243532537928214040512064105098862804459763659657954622215015535292710349125564110517419305347288511612021849317253262325066101605080428097372532284664674576015088188440000552034289801422297660761629687297551034908050625196988513685063152276275032513842148816017563833172691565866215522355462503931676227811582985930628768637936370847284984689696611143677828729357931246717601937338141076476182016446734687285036036805780532767103038350015260593856946038597685674451986260653245536882559439342029239058921354980294319553397662839592215094442804921134336385273417237807761076674795944935214531791449850522227575757714794218970967416007271618189362163524238799750603981622286113819554180230201181598016856561764908902263578807515603113673770997110710311601448937249089207318056083599675815194996101767685830677910145601451764161443793383054288174442740832707953165828897680552910327496761937552373113824941458161278426483238128841127785420236186574491053435943483603336367540514170831006379325520525570383107134629565037562205711606561655113698896186987723758146149893710185493234625278891985224192294260844762395428111630549847579249717986327755893220198931085744351488071744482544681596309123229406226925468596303951369512957072411679073810226031587621396152546906736793005835463842122869337108062826213005135602083235522799368160940615500501096638304895837470394773336540622954163278626118627866787643438291584073029607193145027216516446951201847065571206699352462036641177964103055781996160147750545881298325237264147139964087599540000218484290698353599276283913470328859635615619893716324328977239075882687275514707676610075875916336227284448205325642811203262602842688749046425535494507851698236790843357824191274464321903848055880238566844915887782162382350827592511117150539464891489416775080973166139352135112164900585825303013179781241343176934664760715488758336576274976171931820374008924049159087029521204945419844564622620087372428188704958874845950956993476172838303492802692089170100638401033097570362758576269317016980234938165256682753212144370361294417454231624908397853042409801905184485960236552815707188423330365515846587260582622668313327860175643399756292728819419191462779005216630939754738818108626066888557685177006583938944400485422275667869392887472766455608514938857082948854472450836967165491876208784197407009693037414351655397749639205314293105142623309251909992570510413488159603067187929720507122443395965512597514851218803083899656793037298859192085099185343138706128428425121045987422946156305764708860376835971588123263961114379736109038476595858049834220773608575886068745367876035596481514566148761792316238454414253792305493562447666091319917726434758238669225039932249075257942281777417862398251580887085330800335160396702504237947576526130503730564488593144530589217949466817869164387702849888761936018839423190358095319314401985684891970045645334976488015912663176790087476941387962806706927651557109994981356111636929463253895079290413155500437898857931516445036511181408807012727857863078634592485166799140291107300488422878765941427056120797080098615459314142349562312153400209200207977073090486050470192186944690781668455784522432362898420765415092789046835666563433092906444618925473014943677024927803217880197118289113295732323771804069530401927767698827196148086922859990851933635707566489955120725590420673238838716101258218271839449283370721183295767229307686473754978741790372589441813315953501221583519426192042126465788253008651672027023531700401300845118244005077676882482038609278104745653002855165949689568405957673068184960473087619480672365080693982045238507138493202837728237513323804045003911520844889709514649148852579277101947501133306242562704580567885921019205198592458340798095181982448653726369620082986779571993397830534974204565078655088484804687194453552133881656614215224921812097175554804425015101710691347798425859323496068975705460062928724742183436482157385763699587431725196892504327709319464321387763636407510247636102149042622362334649980205173481739077681006478202137641759003766584403289099340590863989097158541611274666557750853224983470489730861933095595875616267909311922979638413573935131985022532753284683330744079945192204478671840377548067836054575104473809086344451595660292847785855794052131070575001303060719774156932730296534267745673064518620427851708095241798030661200993449743140943322355105194602957495379327199502607455623714752831225961953414609371647734054899878890080433199952921181243214686464735107006454527624324385269408277434721006508450843285528242387457644305898397648139721713874434421662306445835549440518319287616244886566071071925331542080559641979949613568202796882414480883794946232302735811225736646690885821265498000242698328350393774399907914683791683042513641020344796743578728016675079352500091307213639448622676663746075866552926529560927284940280342808564706456032482484595273209982893822830062128214883690406424314618478186958283617247616921138651600977998676445696617781037495026320719080000376765277713066435374330029809926663832785872020999846848328434064700076955321013055162908818567001073831414275136877475863486553576117869982040824581896917291545997651736713641190806665120447491373229990281557900133911976932270148800071646697208893977787577406020690971666410580218174567866807601876168746851501142509437505000295420640222459600529329718234199887188066920133235761449091450764385305180665270795603469138204856967924959340014433199325293851647082513566929345210521505921856845072263599090365183859167361273749769994261966184934510295529916871479356332722659984200628593805598213165911467193753098364264259552376044930762764355283665017029794668104156046320852217040015662305530968767033965849464453088633599114702755001418337232263535139827310205085160202242520153393547527950814067458816011800245926865782899826282550263607965639873600073568408329629255117255048166338442937434576989298140834291724061359759262331363793415949458091825092536957970511071373169091959309980534113631193242392106687051593837495103550369860142670122827672188302164924003179870060464669712484302525763151997151352270511854529877329535631667728258161602315325789757938761726887610076322888531355336084904894939366804269318449021525203850946121767994243617490393705375403369617764292253676133795325044927277190019292911139774268800881737868031874400730961582743430025559696070668135098935667392502997993135530459291895609475757999592712264744206967088419429865077405248447017910457533228013835550605654821639658733135128744074596802580776917232535564377694473586755064295345333987684738182109347267897518415501071114612422417019608676726599356260023324427448469829160210860253601472309555092678978474931070537362614643920867049849551227962575301190770657266198817729282946573756655729911068544066253523303406283637451386422299870518009736822138988414770768595806317594280457249684650211969417402889496372730054437978345327786238718001261133652906921230917390994697806733066757987271789291548605757948948017990696693004520017870126377340154329516396055142911837959454100255390937717475038614583526742340218287116720938278543277229424749448401998978589281541555066833827881288525336895688549073860930699756495174629488302215688132918031551233423262326445986831002418854261456728473831634560779384941841753931618833592965514087696310953878542854719242759710941878203933199405269204351074017484291165618381764199739704768717298869880139739745712922319229335238049946723732076994581901811325529654944093025258663532686205033510433536494778946345722622304491509062573767535018569712939333460977517993067966570004829185452658659567235576749996924350847231844987431964968694968719046493498315240636007042849969095668534929407727698150048124033916997747406720912754004632411890115502178063132772284789104583322162653630244717248767832221710826300561177596797706815670911255016779340229791818874937997374178979467184760295634989960577422603381342630091004425402778141828210117252395317597531878376949639580133467807111142439016169050281430162958476203969309595408400370420386033524922908468314425546552128912895771182218926584333318278339608600152906776148747628885292981341795997758886232465760756474887625161302414379420327503102818439663775624951989339075897911949506604610523641075763274095693514920551681087453410350161239846365171622523098646543376597822306445284389483906879525526599818646451114237992978791681909997383548452290150680576520329274384485730840769110919642842484830490314450429744601893659673010160334384120278237602417926383513633393984378722184000552897523913118832617185953538724281892397079905464509450225594182864358126805809879025345160944317034704155505461545121403582171336140275819633484616939042428292453085857145157903089083812036121542456534454839649010278558618395731357766217312859947209047334968557125114974004830479765101212661678341926587974505273669428008675328764660576731598185417298583898300483886917469088105045554501336271000411682438288486898662794915482180368221808606018767918498928362441266622429856661646447412610533900348460025000479586462016474759526100288802182111401390936487485545427767977285736933967277337073697358645023905152518274623808222128084316377822806258396844208934387938089934151994686618053579397347265646938401269161392697490365664049484319683513547216617240215213935121002383133791635361086899329704887445332704518083032643695515456592088953043582902139962562661625658098886192230606046172816133747944971062650729508039312511959766180223975509591790644615824586616332062526374345596362710166168461220777440292278123959401091886862150126983248342003882453108818664997433911455377055371550021333844507899436182071387654068031087486865602091960570422375489075413460672173133060305356311812469970119349766379381304451178686785812113669901280828682679617944371576698837259810847829230655570020931130761763698622070027066107956152690342929699655801886716613683966594168659500516108270372560552630126166243217139747525363640966087813745180004847580347054998009569681976650544647499625457076781677225870613657918901723012277508252208265787129924790797550741784614694792791325629831499178450697911497590849400601194492822275256559063454069574815471225214235412052477431986338966897898398737750019315467425232370366003038449881939880413426631577791284661125318748250471744555517504813952955292738573294574442816579981863129247646495195798208016831261206886337995838025931745918969834699302638102612342743296102903176584349966929903884403220574877673454168937670476226754584089277733016850277724856185177565076440628879485574874568160973604143354986018812479383545591945965062188805714281148358107129238901273610440576898237743990244205020058773298227689886630178476445556972636589022640579554884487226977252329376817680114134797587379422267912206741086698414595836186935412061592865759522516209859487841324276306956675833088511297639586299133628854484298745516936230946970622542016932955548427900251687271352868808386437088039029584995452486988173255770673337226033461324750008874824480913178948453627921602264133772376480288136730380479026102926707850617291206919630258750646044332582691214973390839248552247440978863661608904059482380426042626054911349518929374767112830486430560142604287160245363865928569193603923948955593389960683829486851912368899893916767529405812686003425293994377422135856299026151036090114827737241996435934508922864712055768704893127834314276398068387842063007783095274420360737063244564248058222725145534952828960972280262986712394607100003968831185893936120750004767624657532102297188192038768735185951691090683018298736886967850746112587069594932275158370247466480251923708813834687519523787976782340634957863685263499209910604428039506669226911792180066707306654808271650421511764040732347651442139701232994902380125870865301506726422913540464685752763911596418352807936204590898152524918571030104143740928761441430731981771275425204165939147882916129293034617518954319916691673801636919063061099691385464776317848328366572152525125772621386366578912595037111012727422004414780488139253564617837644757114640745931233180678482504384680575918873195595877770542759502506363873076750953499246386652425495975418357193738431157282344309306284051282298122823502078893524776049855075537579295876206288577836956597743799668954463771505063791766631309619364816604846573022734521482510096845573832610840358419901885113115373137498261137576516082268207560053136906511459414116999780890206783196357681459840844424418583285131855969831826104226535761518526703672361379998797978853760377371088930749215494870543791969531669195944750242174546082699826422642561918856734185206151927568964846235688740195161882145594405016014301924567319758678279670258691701213602073309830226360082206385645599789587658744533945482069311276235966780109064252044791028610422873452744910194849688886875490245837711121427543306212446107087634121497889539788299249939114589505687495693849896978914571219792746010197005984417154214178826361804878931309359459018372411149379182760891395479314671116376186659273587591309473622617000578553148808837078565957329208114879972390103378073494730105078029828237517550724399944084463239985659443410139065562243850644097018570290219228671825251213205044201853074452675568695754881586771618021063842900274244684440970695085261520933597749535750351688691536337235617994462449810703050890179526138020259806619681111762462466207132067117633230298328476844838460575987100652055296160816150158977346348594957484602203404437103418670080341986238532049173308072200359845712664615661646391943292837798510916131291517954962324029779425899514237367255185202391889535473282544484832941557578741974155982916996408715649500794450127955248739606940792410441990316935914783839647009179603814727743704992366803092482150397318592892827684743165556391206529585213093031208032843057247656332714574203747496196029642167464815316068622706992862209135878241601920437588408513853639226152399074032438808971997168946453785372110917181800250185576727645654407767405560079303708408026650726893100385310275037789204687274836460892846112373385582864508952586307257171301365302766524267875190293690804115717122977287649442314324563542116279874717850366247403645198598194177524373183914016021912563933861191263385963964331597827158318527949923074617444621566946906674898808430859593953230388433465724988873703593773178122442873920484488885798315562710963096448379505784835756618883090953147962675459973472762000815140753204400680351825714653039271991016701454017507179870997985994252269307271401134776471688604691716765582808542463368497573940796151781495053366080475688021019342946680703373967329168285828926184730356180907861905556404054352821942501835922530626903521645394748016640509402336164170656605852833762325795549219616443357609605122667829200511540908162426242348217195547731775681189196939641065168385213520564553230149750023835896332360080134446750266009484598592980604426014568095585350339396977763581231314641784308073804249939569863162881013019473379375693802912796616240280226814744492627415508871902161702722164699715855232129664705716672579415537430111200835226956997086251572582262552390182347539101353461440059931455713216736078222267070744339375876713970490336620207468764440950331633203337346807060536152109436555257284971503831558906782416456309874965099140255992404737911065864989109865145322605294515907767548948476167848994743348280989315153618597963027223802405146217004455325477617974051279074715575021460485412249960261621860832794266166514593129091056857204061726556995560011080984963959327476494321837711938708201796554616249630060832856484205272437802606100946475343401605644507340709960344091909369010933903059800611364705380083818324194400424748806657964440605272129608352580412612005445277329467877147525373191453294466352085187571328335146903458258622428000734691167025200440677650971720965142252657001200179402776417453076885155919909532254276177633653092390933883427411120027105682663646005588525553350271571946945108427599630624767006765510966904737878657592045946057145208687847020449581770749347392368164800017021303025453330806152786004099687747031624869711561475560257885471590088318338222193491511530186392226446653594025439059517160879999946943672389031809469059975156676086293092215964392034511681270793620629904347260968891304125027921063184742605875556312537991566800966154680796228258584700895593020578952386434885826839699624554850616997883975635048264152805485669001661452251062403834285302628526791457432766154661153829061497691320582795695914817144371254471404070344351368567071028642482777331134750371136057879905534863670698322226917528086765015814864509799409662729171099385456144706828270032715333828080306059221865741619911501288234906367774204173716241943090190183401724631053906672751352048715767478015413797330665027373977847651734419745168055475529787103439766650869923709003259479048660144190069484520153221753848115114401951201515522469249552876543178332908146242682820074466422300396861244403985504732060818548134967771884281493987289318771998225023893825122002529749353726803108908086027004234577529481188406274304157151455309690045084462591592250905557792704136374995790157832313679947691969968198297539740568182432879288124171370627693422189596411264458165572130270684010208807153102349608538835830691164185154560224983755320617029849221244333404504774305926229146534122189514365913212734662165022316234215517170775903096425969673758302700107569573709614992565782053347146006967541702803258460360456756221317286798959949766884318714080082173644994332154639364250156235373419864347136355823357208181814387267783575341145848648135378218198133936644228321240799323421313945015369644952265178565062979875688706709577398089232782483280215144615875228840539708731559638546086183019761272549615462738292303474785936374592490704939715300838543702217887728958136262531169714105387313582293726895538793198787336878771290335820900629216379982574002506276225554862902267060299057487142748915117077115042740969165838709912440962044947154993894229693827990186866022636515432531279326826986264767674080178444315041414420631686837317206437682741490107382085741239097979077968838565198001183357251185859091417537937098924528975604855806058347083320915684738335299768924591482327155956510351811974369236816749675377774565930155180177601140072075194097650563488814848341437624114504017090372404770165412814117446302093815360635298434161278703914152812727770796272073004879373276523764605665785258208347251186652464668450630138374102388552855904519177380087472687320577410466535410442966569387912888420619244130694482716832017905353312088796975076942493954593266709817949213383679352381085446711034360169186774388416986773380810762002999036761920600410621750933140389501167774965776502265811223958715826286018508153482411370437149196373003392055819790931042362162462018264711952791111697390829040616579897467926795816434331772945502092805520780748117279359878094691707496389943003590730786557992907406729657024820615563994343805764180909919410835417093998502729687251493355282965918704693672791943679827299933697666013365333460069374609693342190449502968738301436000017753680740197802045452531051152871017346138794467548789954235173132144186425803956711600810689045740785136981831025176873589078149887391410529331392691034243243124366613277470169786114221727701941942028093429613253128205285256438896153974879609686826757138756008720464143315409471435228811242829299032654157915274992749325381187834031724889077589874360497035846955281904445644335285160601770158921141674061990756329295576958175658820692858458087374706415043820653485210748810760358702228136871013933049483452380062694396496817688394438159732325685965471895888391845442333710302390647748245701563534220821495180653947425661911577423953888197189465444854356132785107107686414263510532716132394186560033597936416034196562790282863857103892665049506957662360426096084373915662345639820773304021151794678058653911811651687086853268076843324170835679622737071281503321309667033939323367787332022851301067590904267695651965358706053465022759730225634843830768889473584279267355391247904267996849710448360329937584423399569352594122604934270139362739272619520027566967704305154163393463806079289961038078037711335170603085558883096038169828976666647130884981688203635303570517575764624065972263820488777000313923444379154738413903831584333610611021464284576834211882168693749140315517859429791059160638535768586121702691019959899195279148301319868478768762544844277154037036935552408010709554123609711904941324130409622312192030609990030803194092452304921479454542758166392952013711694931300951968848344672916704165214360287758625353317687733455059899488224705091440789278123715460014032004209284799140277927581403109865910693102463456102745774505111022235894216724251600791672900391692960341561164641950648585761071448352692771824755666029339174877643087944059789932800331800108275045476995734332698605080404664175878074069837868980051989208443756714137414153726881885344200785687980013945926360195109351930016592175658288348283300648108601819245824270966943410156180701513625438657179925866627505717861693161222040770131321028061732328919815411609848310999536156724522617553139977198112215482459426646951742794264241952519463614108267393080214441411875653557222298438944967633772851754827991283130038695207720469922913939680683646846912903554740991041325224727566031896033847468340768972578058776900676984712815011336665746341127750475562388520264768722413417348044373508278719871250374169545759555383558326546994724900840999222417178516704813686711259584252863465716196531891006468844998990809391766065605391393168529627644505004972565015313554868082960411367865302262990931015127223511267606771522917225587792488810904490603987128643506958988739449250266864045819210662119337231200006319053923085008501104151747737074498950334932748612083156375657387117569603198841866939064904757724944009232551816092773827434547391223207737461503068581067786827909566337605529738868308004028362030794246209367205984405746395317998107889984594015034115739646473028593827333337542260998251223709775068269448800516351609318577049570278109463735107902631584417348808857823198154910476954059600280471739102889847971050153047198117195348025856946167025954404753194051624420638049340915739200625851718503896671194569156828593583349694806754443939804401306651450570873131115744414379197604636188437381394871439034338368187728528092757010000509334123541158729738348434229594385049298997864349560409549037542761343193708818885490409721481819240042876932794887248567953026846621083996494956995479548144659885236250977483805038260041669319780329878623479076141289209801977921162076402294079539042547721980142489121143760047891469058723771420108048315187637471391504996009659467353405721951462086049007625176356475326194310829986520032465710147026307687023321874861269570304513085036027640956549326966888442922440518009619498845405594907063194277165146817521619015906080463684752525868946827717645026154564425683919303437089924537395877969966323949684304132491193786526426374057604591461381548445493743757139458310489963069603126416491926161796414160306117448715709336879401254540306682228067644675286696592238245896892598724792238500299725020796126763250357652207641583531559438843195071843190290553500021123251327597263971838498516989342943046062538324743577469263159639739826653992246908278160560467459444130914393722314907615576076894393829567296233012000121854918943434638267024499668378314954281222889060915145011971677725147155845550853210522653095404158706321076446172135479167017213545782557329254731412138747333413207032649253378993484743719691286256923409826571500302129354096615086593782967164112491812795967810909712207550660518987610263633566089165097947465467749653421380823101282825817381832123335524892165897748530724572081705914247552115705774518778229078077652968791503219088725240355093010535195697769920434386330917493741230279518895972229910149641795038608751305409663013992152115508344489998146850125310867211277563335332419164942611204527639524238744658178717745918297624101898279130301291417756621499920910228722472100890670264359900687572031357415517079044554302073752484684099024643015683470272513738715189692905583534757789027473666069997554920076596474258510877078868942708213950421873311609080978206407722619499633095355353602096372047025155065722117820608883450850932335674233477325583143780428413671409283886359685384570148570142285770050187945483253011788909623924972833202023991128922730831288213633984703114425615065840563103700769489720252801570094254609862237339621620534199178599954439660545229839774152831181333043239276815567971173760857778166632301475184162591867742344765520722487501109490153035571357512977325953876068684770300650497903788157903320340816321214688846790623612196806110621344551874140546197562028130974235254257474714986576445336686272333652943252274021687691649377930638402221971693977187111137558634000399581061458921902269302180706215125532294996439758343436363615795312519263069125605607758051514965677923054355976993094279319463274810228279115196466238977261213729972248725492233780853268247653081007573180942089337418375839654526377749919986256116620444691333377444827207663900678863169285554881128725854613753114765369746265686776709224531570411599927274021432049930842664111595924702252444068476861954419878772485412468762894091551950687235071924402314014647594969086207136773799640886872735002272124044336973964173394777091687782075398630923252674991117764357887806455458067369169966241978805381086831381440361816877462818566087116206762636181621452574618700503307792550886808985473266630522045176060329245605550897396110121535643556473411159742165925607342415223677052295668962950468800585170606503575020621456795669001268892269125106693858764877788640169799604357819884969252447824226065756604519858697395892615401470495826768581416841317541746548560227196228023471948321042585361434395255556519075044395903729435834120562065473942276318321294156090608374683691546126601654638009276382787803160096326348210835277434942939697954306670220597414901465554056667070001609488252550363006620559151187895010971047118028814706973953443374133350883638947654316300062830291010237005826907967415233622537702779093091740231504802078985927313321342963317580671715028176750069793856578888162376364198846162877170888617460773870989523648800805370566584579236443142633443333852575686432835032830736009306148860047025415948246136566684649552030256381876668916230522533959748806067063159409749653750909663123850248240313712044579427694163540012183289013966838564476895271690126730646436943095683849952167195912209571863496600773788992113069244773187287373948601273083817111904888760384841155123053139598506156769826795478948386342908097998812213300219768676408449181602361719296137045795291582418434765806266540962572902209075810256987975626143383131099173145401416630424805214459820875921055035886753874172779595206588973126084011699748500900901407150288314784159944257966168353991026212010260803467690774101679537036727912271661377657859336536211712116249447728680370221958295143782065624811096844246942879320834253504286844484402567231859190856771150686657399298588719393544066136758858810132580037572964057839716612877762869657906975795996835386540118683161845757834065114943654670604837332507769295245579252906525532072947328368728790788059173255523355063966565913043335209408895351213349803751016858951734778048142243797876003881648503501232018652166262970776595725275420171082843446765170317390214334950234266077984505355549028088094345830543010110741336212068501131212702349448297933168796912630692377240104027933235273769590190449735800619618896212920281576413141964498693492961406097071193794894197643331572748102751948700055544096082160675160163390320634333522809727455380295514656894983566343942647121883495537289775731130892048941881487707917655649111844493360025134303114821371982573068797225895635271921573275082752797023387595931294897468895891220415374575965487488066268977030409114395550909990000943002416799900997939586185356669878131209919982153156391287935087676280649565571116038050895108471300565579995047909830314819929933861875361106776381681651226339099386837712971900169328700623576129726900083719854224618663733846310567472801008956473151320271629079256405330009495644738588132940177611266499404546918396433806976187178229903730451429103524168610828419285601605816224030467770534528134202552550609703056548477460436050869702367590292804637851424141631150570214918741074774971700622158521969393244214644803025034578428035363105176177735495229760338777334563750201538305930278320023550072525028715008383673119912223214216919393285484435511218708801413059962412007580911900764620039426423738450835347845843954761617435408082060027080028582789303340601088418577872286693014698275320253137712446057002218620241462690376816218461340593882959173511438333456445957824774656315133779355498992385973270771862539637889525106147542159307970652620960887509512136333141891811156733218124369173368311869532027454775197631933287264325344597611306484902881490490886824194237353558703501557175601141846345698966747167722486637436570070400828956093522821493746232609290596545253217166686286687168231324938484023743383743471492746023907007469291205158984227676902228161206406578970632881382581084510368796908946310540805938445801639325479950117867659073363019636541923657076657403159166351122211228604978027012310244698434595639562205929596488400167491269565492514532870535634564264099041718064374331775312650113453100292822998122970322087042333466906064229825812489773625724531505090925106182045284666997152339833804177241197892110324142885055875519773797027667811244037795957947283089137897942366690054382594603702081127915690244614421475158994307911541481597767903906166205555853558546209155595021533056674686208056245181253314953323712832754306877571448566296957153210902286128691439657286295564730237834389185483248048657332198593429204375657603454691149420560598361399632538595699142536142410563411416111110635197652859270728156346427855225510681759511923848648291180085697271962931266669431512490718741177334103477643579193635293489526020105600771171391723497008305392650702291238229765846464409346543569228811092521306442902818338406812201846933745226101730047775055447404561794316333757472137508106010920594628628458719709937065929671714617246698680056195396109613081649218251206485817159272003715599258955126986108400381417745904240917439828312563004877717110016680704292586771044995782351401172948396300184611855814465173274736060120913510374031154668965301805817199092708756261376336201655624514602032454560696056553742834123135680651989492551085160035901173080253197761078419799200175321338665596091069557945816421960451283933926783615538022748002641458556351199041228630038523430042567238594636971452344106216473964344166654342234021235365116174971460891185777055780608536218550830253237424787169813782079612039610227481587150915372955576137041495894409204950980401503662635189997973691892954891578429354241993995296478896988621186225681710411507595948308377240907275112197412562335170740114171250901158594115708819752628088043433220452530975718486859212171066327370962791066712518480761226706511301345876944503843738238135972046803553202972839172591152495025918417725666167393648243239260885520477590568813350152008662258007404937347472170036918398082226814838149106628672493640337298137033959841856627205337235168360030019915316968927316940313250382395412353464382406355082388929318483600562987909158116360397950334350384514353348530310925517377958377734486417704744885729200778056379191445604719574709449648441670293909990215107818407170428685272054771826981001668020869128300141147062851959271694385768256344934951354085188245094719899458751777287618415356356181312714818391309786170782348322784759280144795905635648078194096975453180127653296960478342182136273278080128111410582384725676514760121630357681625137173268161286440049128548239653686707837642742922455115679997338999017515189973967191283203746951760157048937566850950538821764016223333713336393508796979133213450511369889415262676382459118853867855320937445834780486940033832966067037665222325760521827591989979368282999256168881636058341197980491991216290127289596888864559798044133404926574102261820612410658438254898428489979952282635924139167688995961558894495752020776586121849883486809148421627037869525990897549467320198310682775704586304523129176079195096008661672782579858002377417473362739182954067467008947473954884863838923934094871034510202826933514764114432005877033053819340022584591109388891783426040244918624640836139507009859413315441628095805074353235898434847373947885775819647855903284313880158982833437620388289424519461092279796942510801713013490301471794754342650438011446937527841553039037720020297858386185265967850769063351367531852131896913821621494459597475222685469744411459572488136657306054327323181076081330833980812965897703454696599145314394254006100656813660093817242640199789317736534744390783369358988747579989852686635145671462053225362859911280184896039230718579201033840814652057815020390229119346301872053218955732336498279304932870360020225669039457698834260942136229634328110260479631135325226487876835615190253649769883922563495658560983031235540901637642592594871067190667761770670296317758863984233664970628989799144607827557509757219498853600673807055860769127655434981280157853599786882729888347804593183993856709988539662382833362232441215498927817067611309720172457363938832475408128955604013784753610315590135423572121759902150473470654679451867315412647722255769932429348261910665652532831377104619845113642847124743385544828477088340112706205109516904982766086877608451173415990555361264889433103516245673101568937518156963008681799413362949424253444343686938548889575640153017814965516471138464217672076987742178241024281750960193594639906801367716180270498875114104874048102410732890141231848734137898092549598844157445181949720638610751829800547407310141770002985159671823318539962818702749155436916571240935650824870714996656226279556794819477247017404176200803164852030581684931782821733973314545315373214775884224501763943432061913718634159415651103918226182537556049126656136552842217693193252846310091339666232087985978249517188930452851825834946566007032464236560516357539174524974926661480053765310664191727757181810898582828104999577733478730163939211215565813359249300226629563616971691814780942606276228181926515672805616986780546804708859705046447849251858081048476949645515066626340277305121282945242124722003306184538253262580165082042747482008989527583514606904856024025668372821879113865734844019715504048003244111660544434973120074653010517550666808044604802199640900974765785611777930548470788926010938095002383658097524746428917272735749831788625749600746091914416076586297959372273033895949193130074451494463109526322968503713859191084336321176793163724327330275285726483270429979274724717160078674206518361917702661904482542784553652273246124778323716854971994384538345235307437418776057808214258879058296839802946909719081587082294190080505181302404664294793632714681439011218073332097910157429894042897137347438143773431724553340365406174272427241199409954563744465413280318096629227883925758264301204064632919842630227972109847923307353196947298435090702798796547005090431867551345209585402176209907374326169370537119712679938037775804404501554453372585624909876617279093058273089323649988132706148701862129171271334771204205472594292326258873065066419608326526823592574420334969676753717757499670716492109526118488496170059900615593673328032625407523521308198383540537645971349049668723974424240729057342672983433228836027181942397207410301681456253073497074060881572573533416346537950050530629636067062991020884862724192043781496487730975461214729186459796896397180103585118686631216465274408923340174565463277992122463339335729322494290314761366980709257250908564219570267749764497172596625422552160356112073252533099292793458213106273475024892654333841806385033089222995975303991047885409088687462050858273497809050619502984731216111953985011930687086727372944967462768572944125478509238938817467518943833207000599289505042864666718465564899957524395701988174834560958174573959163335435218422683623961462787084763470827460703371647160459908343578564436063860965513918265352934818712281101866108793053282454690768795595444243895053341395098299253278247197605597827184239149755268276173707917631298261644533748486442983872099245571924894658016481815458769682890922486466808104101267673815109831461481807775351814379777170087120818635005789201274500564768975184932753381944917681747481457444653855821677266739346808794004684281224820067706420509985341084140527660944231805380630419577751870123108777205282767215482727479546600925007111712241765783894294663626726509953100593012087470903727695826640378817337542940994347297276139139244952297193334896620161012866852396508549781453001670862896396899502122556058194434719939055029981123308948335574145875918198955874574314067904171730753208874848133271764969362956294439980590463296803622427280355174516779668780947051992575213202411709475914179972548331520834968044968657601738497339910011271643464330103846370344024276313752297361389584422936879170200015279335150792023992515276774238006667659378143624736404914926537742070792962066162452712890186374347876624978701502404995135809784109840735023158780144006545437755708153477915897892741902058663168899726790795806501884858609187232108033232353223251978567346325053214011366875448350459397418708563520365090349978481733076305083274152924517324120092931285561856540314155989172941123642763801589416038131822214109835550084746019775905788052989037916569036053735557641850431000546918895461671884476860999150513108676171512349213509498491960091994138408775583763721258755830568504545997695220352143085455235132787963637426234258643158420648197468953126888774326590268570596160316056334165769605746044064854446128991093822082819330721929721274459427329609508058442976679897832127692906381815982899438618119519337223649999880570989966255395272592012650897978011776602646446812150503092248791984301568267515261353728391290928866231608657472458648101922717120333213085125603692869924353590259553714184489726534527479504900686968311746989478286801069219966764384308436188279212193179490619122555494328031481883679344668300953009943789174745723714957285859969558368609455715404459811052519035012547351707325400244021079207401853980250515158048549366363274003740835016851737715432523107733217574152606583517260867490264581732788158693930638969315770887394502933068318637688070416774374603814804361150153978642256765508392003903145963787085012605747665226038395624680932632398786210181742016997991484734463371351515281459379405263227650088751022208881499053800199329655570213340523937615010863517910672606579014547256414307038481176778649259743947288113110245213150379446142459105271003557579647003409692204707461377194033141394739579085679684768936942994835228113914378474906404137110638447639028392559107015870896558239708478281406295072731896870192706621823359023503344832310574154141508294423010444553091890421016867901997083117766398225666119446824754456410068576843820113539683739154812685519073816444069835212438594223270483336299553241248006157642519486519046665963053810493792910652972761976159870298694166444710982867636899003215921814291994741582799035660989928317875857773411232586042621294093256846097356811356375621792622403516269082373748261183848498488663207351796511881732566810422314777220859904527351088295883325247370980992272884486993233812540333715031550826277379703973593533335944625771307228620838486065358497191878934402072249914479366295624806781474388993006837341512087465561762145068691104109079836219248168612083326850019945682716420054697987295229858145215802009455479352145474525285599766870392383523506064345271926621186828565511378871366073590507415644475982104161482794305491262476233477265927924227544294010741229242345481380508360825710987698997903664178363628133866103271372067939589608604104525250882895470977833724558121379078417559524425890768929105706683038168947240724603455198993341040815068611381006112281532524546111715599259053809460234196699894767517440456532597349500532849798206191451555267797484977968343011448187566853370258751595559107109630887653181531368194267327143732170139051323194727245565937578670707548871561575840246754434036590057534169991952960759262462091138966904960634384201345152933922884762137046160261665850098137841830897844523863739744199535758715350547473117699816135970750870896021470536674622709100910776924071913424360110245654506877378330503495998497393623778037878631379293202783013564864590437441755815348699751671949498679432175624561001971788852827871567426380611858192503858543487567036774012206229830201915113195740710864835642219333495725243430450095878384896747286043729694177338502501229860924391753967678783548584151898954326527872456131000390115149469092716196249820769859654291121521592959547738062693880612207063785604420672616332455906029462862906988376904542277413366035860552238517822559077823462983163493326718553408520627499873192079054816746701622073765029323275977516088033589816671496326629882575254029498804313978661462887795568952969687834081939565619864671208380085424534965722947206583496116363738043091376114873707251107733541995749528124559239950514239596659375268492779373679078111384604917209198964037213046305821932534251849449006743136224512004335870030648943033099650042655170225454079154270122842258109655987274568974937794967585592077301300541274788681650208796506641044465730353349553605403854642916682527419703610929846338338772324769674220535616648941330645934991419266402849960315518545230963206705991318742159027961935819833299939821111057764293067425304722929674711154949661377287412569461950582992241512102412399837006122218349480385016828937770320920089645084503951755516179790977993388448220384547103542667429315974232708224741540195889098545908792777872409301269082499328490626127299560779020481779521280773201175255699499917868147606525935059193204900559437112256917355619395091187837391077257838382323420007401731708729782683861404107100986791292764017305296287906120432784876445291638466823790088048876596015349149576098161901994164320885018252063433616434942087559725232301170440923012443154369474485854930077256632673959215895537183216784749832960363016891650966016062316837684850537229014405003985858817350556230865451389510660570291357587273337168423659760323162762984933278231984909188279365226793491070383971516743333325213099713556448779337574894010420672481903949945678277557511613606535082036393577898226864237264723273008158240970243838381216942970029993237419227488869917330753068303471372636399408895969449081506561183385855565537014744634222995006891128207941314000615208701084650670089662217467754065049169046245311271771349524707696305038763034735347003376474933730371052566701392363717480780363730479225255832884157392416204173540618694034861335534784769310244872194710066519887002845558732848514469586821757475384890991816014110739179698414403028436022242560910384009319207203368086618625459825085798332496698513764104220841159343853682190550500921861928266833898398369991743386489966586231660152341436046065595539946354513039162917775711326597753835276861333118754193683215010372214925685048820649102356556058684020171085799390559669884888133313046178006269305436445906577312604269145910587998959105085832764639162010341064722831404879780819660374224408956908951875106021961789447997950707985215891362545848278949312022183647260636647460649337264809506331716082361703275958344937568489008529215575405883565119331036089281443329906762298977607952615951531543442050661073281044410263662993331687207053141242810952752530359261778874405060377078231112138511752158676661530970395381603850184111756525162600898155847013859691952160879199572742410606003178071451185326812870367957654894810264279064657767996684554333572760469846861792346711308786413258481540042557688796821769363019168500325142171152061784151758136290157740124433949763586715565444786238420195484277077036011072445024484075336447446873481560084805048682431937003413319746893891731287122727801901767608551517383362348466531518478693949593158615634254317881630944395224075757515621144544487138953223952920400597128555479380841863585308179345367274937579499890540634010644351369858491400499839093358618713274332408729084624905934591643459817495312009901476390603389875840926634867031976728688832569384713408427198543729245434605204701437007579264870438203764359630560503225009639297168734746351065418820713102524146931611621789021453100770697385102578437565568420678151059068874969182456072752312574962461529680966925462779688754332582585492482531812828802950929772973938865902031075872761324425749705581599740779015711902051452665839414808599829215180869992934948193451871893544973385252686014889854311024553944830791359425863147228395868988018892531945333228049457023928042302685369079756400243494781367128053103217988865454548294045892853813859019620850126326981845399060243041768664343453305750805267456420684179410249252221719328397630888485601436626119512818942785366888678677603340841099363466788993961114498600222233962334990638192437967181349912281590388876219183885137574252242117591362139012510006757892571962393594077063639023581877715169372661834194057724182316576745085482349525640581488227852834073872996814019046887047415144951443010503150975201125776196997137296953435215474543028868541987420309632473243717256167105476086848716125354916810783043617801714212933564160923366667663277267933918112571010653334397898566382361917839093622670624074148663793669256935920576566124427187515283611295478819012455721401327267772340379726637890259283631427258579827821812848964497608413016128722925147727930691408096699965532083902091849790022645508730121189050034507068162487709180139084296328657895428956323793231517974114822679687150785799485220837149626633509076230829326658872864411425308196369989152243175857140920612487713712590672126155956097428495775462903626838946419799397093996172713073993340407306113554746890796483909014929721559464626616846429488823752047840664545010968084129963895067125729054260047274452026976179785359951519844570582898891047375963075587278038391440803818738585513484359413080654030783440717384468931392122001403258779263343545400796872240104741277847198963235163411187953584851520268878964693018625293098294363522949656776379753200262401001938061486083684159297126776702556901053917813389729140665262484873324723867307519057007632635201952444311522441515173845722029400899597129958533432131606894811190331127529499996460731094076352534197220393121875494052971633409598429124770715089401782312088484266562953910762658704634651584237349500594298431880197328796506388351584774673561644729149386517095971759229769928367695167210078952020107590380768176224262518448522271210032553972184406673281900510861377792414930354371066211415892344015779658669911502880937409831184764817523490865080158087767657638041109812657122368356478989848977528378743226881896320700763386915350470953326206328902100170538909612401945922906090666639742079391660171839573840110948148772089265278317815432026088995386838088375999540815369702232360043487469964337336065327653245630601301797015926857949439424448299020853395985766866003249058880262607761684684325018960902798161419347688314714015819714520144552036245414468802749316759881795427731093070710124714458507322340063304072115272953734874270545913614375081982151159882679625210158840887569222779751459952702640258209622627034943846670408152694213917262826835882218409059128198632037449838481659354037673461721354625383047620774263061752858443746357822731040975133070897765236415994917268167184779126699406205274641226226085745092550586342337575893512899306042375856027875947487592730564811529105512740290701161720515906123175247224983960231918810737173358543790261304734247829883782190212559112319280747783784478329708282302761135227964108623324666887014119001892432014409837582244360469732706276500777438180595139650067005216493506036329907296618448375513704108871411581631193998453625799324844376182280265402865202255911240455075539822974437677507422858272276624986346582727789362151133932249296062039830293593834391380063084789250626851678558571405175736209001644946539205387623690180229508652158862351925113176167261199807931849162410653719674629593148074614265339008782143652340685356957191284560960411968359100394405341346209027113904391255140664914423916860633093067284469898729575989786334229436420832555671559050916161713112155406981654163329500243627750997740116949522414019826879436349668702670306981955837875977023557794507079459202574281896837162314290478442259261864519630079503870618704233170550742988053252679959352088524208619336577613524177401038041068429743254934944174999999601814911042043917439632973249321911103698348134480836654988387727896628146621457828635133909020431069420247010656004797797480859606074091769330318406584136244744616111825520942669913125878590402528698432610875516273376149281090861529479010161653985451112102050001795824433390963688803894343991367186240252200985372082698994117987242857474818051250092121838453586390134378098330593320483229923786382286530194048435529021325023234724083663644064516261308349545838301793984184315137216083973656189511286650097658530434476251871960907776708332728885702078504365113186776091649830271185861742768964947930040047475133802291363945260619355082459050263002147761761757491099934717620838802895214038757380657144887465452061829625027722081742131841773537473686223641234566954793793616086603770809280159935238104178219362073386275586731870369323435088670944110166239956316105017208125966437943353797637681787134128102349934702065316389617961890372714446520943130830503214773964250482067138560173529037595186827725492254036508836329847938467938464625413349696503999627873241723403716718768018609835959695196141491190621317738370430561180202846326180910874718453402151493633160980580689312246044091055392582366107052174716245917572123037133464785429845219077249339159774227950306339384022894053458585677103388036370887610937845717795677376309716089745276338061262055691651966183817665024475747723656815405446122979915914292146890211908465905641523011044712104468617682416411530219214733169946939505872384081870789254989514604723996172780233699315261599222994813869161973768815378540060118827708867847375156581509396622374751940663816504794860383945262409810949478373163104473727609458317630105387652404701041403573295965253385699250719422096007537395174994247475548862231392625251799798616269678575123210251925989449053197234308541280430657189547490231714667757676535970569800478120294345063233388119689493735395260338317175136172154154076728661659861056248431043332034260403081177409174527896366977138599843312439462328727091903847672839356975051968929599655519412921001168833361645053019257878378161598846106127096604244834029111998373025298450550096677143730677013940215347882325214690367277716169613321561303130225076529736653353655739970490991049170470657909100590021587297183740393447687619069138222145120967549619728804738655242134532574253606483930041144562380746568912468864639495110204731205084278315156036666896492212561384913685077166191731921585455544338934568596923053844942807715507376089736629550092152052653352267619969414924239227313508753579395440664137290643235647815551214570819137155785883562962330679096550447222247041949576734808055923736368189874145086164070259832811925253096277163031991187315330436415615502855544582316007061317425097160119496884903999681318411808726331400571732107937778467414222686720591000237963380922783616338294559287245938953260132662507222951533511392460934439002515912004585477061557983511977281880320325341172045921130781695994467711330825809450887708846028989214662855018474075439911726420414773840811035114081746221991189360949943865434272931738946031805920306089945873843354995410562472162799660324047832549208276824296388810073513463935967475262555276451683266936106592200013605819878838971801382067094807632926172842733330524467380141455876370063411589505012583202978662230785002374929247337003027686489390595708365706585404902853473995715647407133293620779735212016486415273501416911594224830538577325711432216379622233558182564967143764251099567982662180971481325640004968389785567569240851978245299268246336925893606009694326088996839555260884628879997170427589145933682181569080058712799997494368230341608362871008196619448231856060063085179146227778970984545724549714483198529979234290490615956958929261355123951183788086376442319265041407366800562933747201382078256834128694937260910865588959988106270303335317198837575328661448057139498416556692170911367909317189294304530569213233148393863762082471225838126711823164106514707745639706045601796702253572901926284761908827334999024883127583036548068806366802516930791043881772835788681984261391791636317841591560088862466417382326644328103332293260922142908925569082373001215438984848372021712284513042350454235727187732032353872184197518815374381278951610156115064759345541889890219563910862940045445482553903381880659716674196919768634029991111271586511421371903311768105195165896850873628005167011733956757193968166669776397730853703931734916166426562461784024216330051670721839875145882405391128705051472335694453371123633210693721500477741668857130879911600378955396240053272385061281803507696554258688764227907080901057545335420664271322528145383206382098202794571944345655058527354760627468459821316674907656955826221960056711682517180906141094009369831640936165557727245086303420961829637268604899583477057873330969353253656774955520312451582861240335888779516206796069484001965920347696540666593301228876900349173400624172839502861204806963781060193299626070253605878570622931196093383077882551794273528903716833006685777957273568483670873420045075571409665486163688939658808965186048030815983973414899958646396046729189677601232920225746459400111775603381198177465697590496934723312043112395452520715597220295680175746550842579183863433087971940802553687435008348647042654050289177806822934308326821529529830520871680659296406111793502502561226615760415617561010146995225330423955776573013809683111473413965286652292934611588974250455621183047562229047082666621802571598560363234500805599022091720800697850520049803719543689368044243802509542911844579918096920902129721677523073671993844281397431126934139422400221621970228628483181375890776435642334663737622003984395396954764591996698729221241692869613947163276910511328738780975957608821998528257817036301375018154376811889598337861270302780224996900391017523139570943823674924162416635264966490558454605488725285347396710449223567393310321057457056853855119267972304143836788759636427584005292965934948561149584374569044244699341234958528473420236552755270458486332450920834030091181397574032762514991758501920769493212742607757425810942514746053487921655867326441821109058209353038903300758414146169528652347039561679356448323242792166022547666683090546723320322786792346774845195334367886931867894466415937198244402971903622287335811247299372542963931319867124890606555030155111563689031403058424136725554624465005654183013351563070571415752849706686332343602809602139557973363611148882782412112912581870085290008233512108709102854250203188937789046821615910415503194116738553129505881868529585703761886328947873482527710284226979724631036052255648657727393532544338455506351985689103380800603853212242589889152306284083001523414052800045626683297001689591697082960516968072596407719269818734846156114977234020050765490153471281843297106456971202652528457920018801335132674902987212422212834756533347232021731082298609700838597369231669449402754910744133514533124429560899952936898901256371819149592948191884171438050102890600441621077249190201614835665850831927850090779398082732796860000025887716037479119869743039510606221966418167488107720950312808762920851506261066698306578539948737227087186886779812602731394854134876274533132983513273028835615086159492937462663736079271305585197684690305493412900894513613145220050834322607054916253054573820844882019415783655691911779889518556763046517036310581326665901286730558474756016255544553801559678376187858197439692401715809047057270077862436366911392817991641913917498751964880208907704691974507891859804280318283635237788354592439137041962981123214554031164297378410045410156268161498664631731278743974538463182248289261879993886685693796428475008545159846811702755725349214912676451245954717047221722607872535645756994465402358282718445116431446975711112319570442270323302622704463568523691362096800483530741665727729807922637719902416639730199942837900224778504297686859925986855135569297277654054967652888438934706388477667024609305057311695062079752661337783911818089369237566669309418392728816569386595302799040498143643248824535860104473153364120992771647033009501723221914080384237771835695803321033754649343854613222896631878711166687002755460247800522072709924359208263910322204543750855084034920829812196959141870699061759519626024621988303970976162094461959674888273783022560175127877167491007856459031816225256886295247881996868633308412426092179969990648082307530475833288981757315179123670468233609107471278613172060999291503658877243498226614887048534380091358187961039220761846444450520825612437022149468564748185552618339147712961186484661958019474206187684599084338974658013130328136411539897906927002090800532384117204369305770595000816434945010378802696542598074667637098329993135140305518379399073366380708860236670144523010819853614074915560938320234530298510498815458038905299596319388458695883210105605571720517238163080031189371650915626921190305141567538405973667733890771400084349396848146140644596869662340651170553915742894337671583122885924384995616273144422170501454810647540694431515143773329765459675830929049597085436125254127170834644375343123821965259935625221069443378003326592548996989771305277115018281240796935157176381876539574933083345827711812804939809609720713616189810754608061531684907086744591813902567159382575859804826195754231256486223098823393143550407506860402612146079025979188899287813563408987997492092373046520578972007318088549784503272566453265712595483482447011827358911011195575653758914274959982408024824798492604210778072859897761095215083086071193496079701262929024372984854238981376098159238089600533978243243696200975545426828047839589075927639159383409579744055856932924118112518677044994298603456138113173705040447598643329556855160778504626872871467774285553369349066183058883071005185881355339125712524171666894207283861082508094816150636183858842110531712453470440289232171280508476740725566402735331865472343883424178561804781737334135992726939150305888469380904374530824509001058756505243067457581791137436771442178391855482125361030836402033332713477010399139767086761851566464699025065052071895765174649108695829990187206805905874251583638016682011357882774721796439968648363869272346053705811984916847963662218753039663001443407617170361779110873026831087791610886824163257667632145461896189326178845194385209415758221021265341452001058980738847209546219862740908682616026568871333951854459114571353507489261475698000704808878396471041295406429736589237213541572589656385683389086144253360131755378147526572083823962781301376254192123364401832071256751907252703746357446782307147308331629448225103830357840080721251406216069532624319734878258245132255494345315353666536127886281992151552115179569625331242166333573920092836325609414583640306133587669807989589338029883670597832801721871746802245592299916217664404227640776839647264837919532508166855370756959347018558082010924835615307438736479716756449196332595095015360021586287506991600962644809163082700820153417857447159780633261770257486356931657947537001436384488617669050333708752343200361319182091738820845436001492460823882450000416872334108463267920892698826282082889264437281154411215082308379799385834911329359880127573785000094091808146828448338289366417891901876880470449023994559689371159604771476646570082090685100402231917614368138998142463055169377878093746762909426881329866307621299478180643725007943331211642602090533595324055849461359337020564543566168232265575737203777806916030320852252436122608157462100822366851767141203450170686443347540569050557870228589177524319976043344516037297263534801392069798304785322433874835741716611362722766805223076886432556678141347827919254580777935687149417422750319320482532448985525735598909444335331214793867109843165951808990832097926214386103464172083716944028408273855232587286824713740202875312835547888782241150542944812668216348834406056394644756528814564586482343127725460031076243240380390974558799986520525213649331896561515751541664518013036844114051255507301951043445067299109871519101928965211705231166179938004951386325438326097990858808535932925691670709545057876675176003469400143876185094390396216537195386440912445302427651834759039673211168385401977452616709676083867840816505515494568724542430439657960824636668887127540280071085353347596087068276905459090954833835317154829384745013939892994077226722955951806095051393372534155551336963248966827951474666105392469329204777354861281919820653199882819684479906460312125085839205741140410387699774776661047827226365394597005062241132953916684666065171680297635157998029627136127105599363660338706273496791787590949533529688831076480051843554511957026185409014422472409172997533482444270458999005447110462985378501235122151395144974901702181889354345330576342158645296186272348450017450369519148158176932236321969311870150700561090541671119455902873064385711604879391320761125499471022795751719440381387128351504115517390206142928745111615611616796161550041850370839459986901549413038960844271499051628585141333149374277966871773129257989862744825626608826401747873914308684030814905179606970464356258491146760489666477212115405869652937634535897375379479395855649364485986052542854230722304941488057928329512413746651974538551542715008055858786725050262356674604670903437296640201932178176570452122971363717570591152498167632182303688832671948865078406443508891067981324288387648602304542916088224092654325172104467898971835298175758754128732856412673175563737911484499551590116852226174920207574806803409462888076290382043083893529419009512178202836813408087254286433861656363579982111411264328288282413328304485243122394801893814194235167948461734230063685702686110095847367449127421151139804855519848095089701198368146401261562364283287997848965538431256635331381423452121918505435443085240233730622905522475312987980691978125652020036411065990481961581176230693617851738301289418231951415946759630072339884410788303861465867651317014892501392926094513139710140284247301145929362651212612765376383463268872107387223790776536375679987073608637025579923322118275371483833591240014937412466160744911428100173649862556195574145242313678443434365226318416699894937567385930898995233559117611868932084511209633626229388535065175715726956481318038678026107987495918806704859382848953344619779237725977407628428842531777096522926710541671184288064980008182733235418011859351683596654104248200520486740781349483758692590095796554854585133416145643118881877432121540859116397379868860662535510130056522451513462256649363209110000688418137431234274717948663206876990133079203886889010353909624459186172214374302729398659835256061852748274660449597210346958556789885687506633542983841943639371652708210083389691174092138735665356404977902117205885811166672337375577237113152992835620675344835399133621887268665860088780230844728593257628658638075038963145304199511671026815474619078152966237800432516249798484510749324163701208548096917120484067086176985881588490089050395562700235585260442486066895083538388213250132153957114777554601799707830838567525328819831945295348841180745814176708408026961356825765799853625196431360245963290235486280337683033562948079474181975516132251843223512406125802210622943095421301780639544132379804180838682224471314160061676553858012200509217928001871817266089072912784892659408918749514207241793079915601950804607401987847152255875232831133847133809492374901316162707474656723936156116536702321312928359791219936867563056005661434264648186346009345380883108008659768461018637178964998625893077447755492565310509727696517981294836170350286771143041342339594412089342660323071896687762521163729481050639505938210629105829877178994451288686113538224344946862807127445220964742506578192920637043746780741199242746873737889965783038940455190697412885159425618553649150128393362933973647764400980952143886352461718796601608911269012424984653463227213689749560819840844617362965901999599295802262436646787810842626471457161856382501129959098295235827370619260164217939678194915456461205934530893241121057936755031929081637365084787691597244818551115898597254781459426117626173513547044196797365561762657082430078858959653737933956473089545761298515558376927649442194667202850033417320301401312127138690309390131070509063576376902827553536955742762790188146862582457819616016763358064545695269648906201941682242485710445653587468426031483566872100003200593462157390611853159084203962713729724441772110608635343171874708221212457718178478579678251436649065924364910343120207626774398731407740172713632528388579955725919799288144635757830218109179297184828168815445506951702793500271320244874258120193078620967289585711717556502255094626560817191129509058840637516425057484951681209472048206525528349949948881712764114928182163097249896724000074844086418774307165820483019991101176832445205721688129213158846140491732128088476336508233448285802581729597390903336632068513147824540068478566207327143298726804341516670560746868384245023372735592635537210151471379181684695736222115949471711080346770128727000511544242133810392105600212163053167203225219367425108181929385256884948569180253868327021234929640185590938471972822213262688477443836490683360138359265685146090922330655905283655877530454204453600282413667449212206806927469490617024358246438502698236535682100860182847820622824992806291295334115927696225453611515199757077037590106458885659404482949042123760688662747599062723683976024786885654969140586853788227265816579467614724743083007370364798866829228500622363142593373804628404030625523449603196839968019160816712994463589279631671187502683741263209166778534698117998282412773207650392457222724368525907589887301244792571577817577885780331559655367013482778071223437278304244954433769745097358910843694610385273443020255364085739254677711383305607017656514944617417502542529987559704739770649355875479760737343069345782770126724217732744342321490512338226679348157437092139356546822192418153276077603064464187670398590952318527467086472844352402701389609824473382767703960793478257382346983368331723251304242840742853882569462167093279462287348186633848478452071377459057099423317132006964149106435250896539665527792882830831199807923703667571589742460099519763433432699855074891108040631192350667251690379596307407547452006496473288590082236707207370227908870567258926543863746169604286069063748155754450877501491783069235495803164301076440215075523616148594300151885366592581938689021294826096333429486478617766144095761197394949123681100637046509472311870859291490672326398545932085195237124997495663903680749290581800928819204197373030639769340888599719032905544052297566405380675368421704897819750951493724502141135842144204189471128919141306233294825937415030843650499841222882566686346180818561199787935794643656638542393468522327927080238532906831256054391401099766651972181145890695969254530920482516675471504903309983904964548731261629759005361434047325707684610487992581983595587012250712012260792329688044238042012059220885648089143745088445315459054484239420307345800149942240394370375786367079929863471725831303157970813100040765090440499510258144689508292396831076244850596872127771721409873182268306976777379055794373507464277077163738147062561424576131536459959136493414330817095719345565824797121741183525851507911998869875347952759352329699442900995652203731328710508607440319134935043659427040972950518163170656031629555118982852352900713149344902850003717587112496898628288207023672924844691477647615031380151402177006421155691793979523576151039309059119866692083139603695937131761921809983431601140691168589922065932367319431731355650279439184080508084860572983208366399348791355956208968754257690365282512147294517871728788832164014146861182950689773797690428213725142788759153437302299258823358637615363251991187876978389606329211873355459976408798115117277799857991956767923246312180815756649840619107900926733415439299853093461866602825945832918400797435996379385852398699554733148226248873189694257781395056779607581323091595593700025016380379042476124546172121354849859231335758742763966740795011534289069080287743127895329299425791033772314212219954835364836003833645356994952909534513977771395188875803515002238524656185815030927958773233190187505757676979742045519910563840264919810827851426697037634876688429333723987892362145772221216966418800413774900233317035743647089072080926766676829580417154208075142121077137381934762699670874481230400995425711848898655331958613796498729747842547335190742846819426154297171721805402244156266653241498988275908791324102049778129986120938678928598020118341677139998686512819396902050028113231993281035052935890596992354609653534968810241023393909026958823098303135471526844304771012478873123775577944651895075009782322582274418928763605298607597716765708341132178462269676354537268606881516359586274180462120861786799840481832161085155949835776023847179371264239877995167714984342616120254020538242433788045964778991841104363638413743848191470676936116832492156804171343065304912457727389224040399931417796377197918866259827223062021943342641505018451800450815779734785106154265643203849210854229420219753288590433215042389531152486805289359047805426492695272234036480498769949517202022288451047411133375175467168121774758769566442078286972765301405084429870540733615815001071912420951564302102114033928538710926188731324781746562088437076651041469087800854542415374401503598676655510440767174102197956141225773178732114507764641303215396259915891663092444058414289760910778901150083428583332182777650489690523943049903532709899313165461068880693447308403350051194884595279299946217617188059327142851317229172029465983847009994559557434973764010637234525920007476802671497468097849305285443956183265477327152997844028338646755309430604882318822907057797823476031697212106032796935358912240535073889142146213146851748040810836366978752308774486136559641413964424124110369545842361431051516192530351105123359932197862437764650983686417565003882506855002139962076246890688524972863049326929376593870935450463624503053779867555754738513353066787258653802139915926790925829100784031951417968145105626870056135720672543160795584582317552080495904377553201226284627385720125735837462378345255198871747361366619272927164070219948508255847075715503651609449781896944245188690010163030852774980885966924594946786966612229380341726281561649851535479993173170977517497420302069083793358419998523672031655042592975072885357266428673098542838028235332378787575703109899721205209397300305261617698011242784375914968547814070087134648400870506623507083560643033643131529404155907889541114265128527123460047951199568320056820495467308510256672319960447824911081370794489659901576717062287892894497661653475689428470109147198921330593013569096169520735651589342361480127574321529947718441852827980413443405288199081956740728721456285936341617877158922259191016408137605703183488639865844890525440477693425684861935139246177969264545329132810088070116959629861750202485595918198725268438103438608383249066840277938642489667538702838615491636848794451735871673329179601017408906585364594151611686146879379841090560088144525177406525198406024259673603451358218608574160800126821847246419208508126553868766733091827603164565415705834030736030878136589361286843184985187311051917634843484963564855701400108641749406711478194986159760936386749836118794792736482438911676448112484589436665506521138622224378316786291964412296693465998205521623290312010061726023962332961390090749683231845459542874897863983281192614858421751981003328564630810179992576270173010316473952940375792250674674160090176019127109113088648959185045872478047865155036704723206758890587890770269432635831093194902370195669600563066061277169592257392029961979260096191940605764444271419240136410744191612140028799622372114450756257965258858739658260001961324995927931370076353651725082254504287814035267655760503156405457043950217032828147487013322275490603876428794822237771669767779490033480400188452422260033998192990296791383747669126898742514599054872826506473372171126756740387624976401826790976763504666284996184354546549591659069484791652550681506920803752564879058089213677956594828104401989891649439752550598256464138609531315352921618001474647392613703495423621741873195645052074066893294381177217964466717959278450968881267525399178715301646159935617033207806954276156468591861121270491020504921748774283637013602288578982084553953360171743909222941784314741812122407846024488642578476527380951240187561798510050275584098142382599595040714695034846679621345351366482151198842776912735395964506668134148990824830836418082280252139537419306389510200616615982311611179240857508618578699678258557763662245338174924513586691225075380459173298078514954211970770904698930651327423296802059923905652273003536043002937770528385513882447629609831955663219325231463706617315649953934283694206235418360159409453331920516955819229736398992847390874232136080196378928367154032324039789827490355134178378657074206484425557888380453186670754192195617419958135981418233451683838805372524458598913519262266027337619464527987706138444808355434030411010182791722659155751001778910585847582549877746832513253055009012073022471025253920444678051041495000672170756499399220014418551875805117099856522052565191241940414246169736755767489108590333130047318342523090284854711667637120120586667645249494205297284207807905069753570556673042767219667332754552407107615273691146843824812637195795571789738307077946698485124909643802361741781699023421120922356095187319601761389083973657346008828887949479496259381511602097961097647033408446842869244631437593955906337680130325678164899094816615479077506541703706792565146452911132248184331480275656949326674197877278031005851442397246497193085819056208055917254646816647250322786317178151099035703402149030108797365374351736878442275666118883167389789973133108372674102493014402519030191069439233077461125303123010721688619167035938150572134929933431070283605270710066132065014993264275931553435159063628905767136675839782990539793580176918547740478075974258260793765801885808033602596869559394452028823234947029805452461196981543444706822726143742239123411960498385204276838087940475702020753694577853586463823138492561916905006109362312040251289209809261415307165377095155058811107598178883154223687476462328435450612687616109255280116019387570839890534371435119091865294119294952536971607004727328185656001375484401127289043057952509245692411230274570020647372735860894701884802810467572374900671758410561333523367575771442396397689516990983337177856899278913272821360516966972424166386014251960573022495605118284650158679804652560524137781713101843037612865674546118778116025117792056011476377276701719930091292975502270362527841218846559141215795744471193827338185490611809060092210638064830416126262675873904865217032925566480503240481817792146906827833231706650088620066603085896170540221025816041985646263761038210291922680787031373962471722485992561242192123752373382191698895331955652993635254586834109472814820754504835006689645395431387110300234830428218159361504894721316459090050241951627040382779996169877329476590336456776045789859551683558690754385141266214548293568106844940590181503916935312565601105959869979551621499432409714949285419040594058318813019126898745315997941305989046089982315174949111899290646018220157518427663454343216551579431852770444277780553408679647068642332993689363488317895251506491918157915702462685503106168889051373129067701128391191381801038517655254640030261475055630951442311861071556445355532379085644731540911193253988197034169464923473382200364249207207354790328667546242191049876747828450378947648515035977825451009691798160089728826678703834915261021267422358514226015865834050861533336430939594447179424540670610597426843695719457017937620320583950211215595356421944841017179063999116029627625564157742482921022456740520469264507854352394945028028392560523288899497271406029570734961525051001118691450914697442870953038298016959943869907939427699469657567547008357919450134876691636997852206634995164115259139923218088175835933803337768320963201874922735217668552580485046448959037087858710757245737634490437122517424443030663414806644908081568595440341787495521847395141961321140246821361883425311255364855175494939490622152896475432693263329702775662649591265491440406693752625798238537566803854744349624847171293131442908469891788264022145329413629260773730096997208282716823080887580725608908046931539153632950941894276054348962181192650009826161315581036456621080322129818603629010350433123814346213910934247827682976972291696620638063723209748811365036644853920551520473305173137712464955810925417543849722343695689213030153572444546319750538135171006219333981118050487321886120896853871089905481664745740904612547212721393189485636082615561901627292770500096258686320521308651819774052886010238454363800290092779883103231881046787901320889966338177324116681264407499554866465847977420005610685490919515849042908907143538923633333534862929929421315799945874624367261025763454541584982852248958327540974581570736018265683440632697630788812806738285806230219094280331290500864691251686419218536924576673023771145817150442187959796531789162842402518977404735263017456082534571787085490866692287412016849239578539887373383642331686007852757183210087648943371549918348375680277338752008246785477868303289360154614105586692269722439297307289394849749528471683395662769565360457369956587899340083184315037590744634707175997696998089058697211785653071342422111781516462666329525861830510572653206252407605691834448283891348303491864987405361332945093786412113256301144583462722399363175243360775914411953741159446753490987178357230667543171904284573608037072420659282254560942516928425096697380968199860564795860814843559236561216225651136691885246876502015079578060003364891728839002541903045120578263825026087639831277287416342762385517763948921613016770785955655281770910899851915908478117807527366544101637869804076694027044571653685403289086662131207127807563447994212214104080974972614015028112147581747720999626765080306621754394420978936661975388514175979371035815011149453166730273133519482402304283318466482232498443087140252162130239284944133770270931377753018108355670553900776229043672049809468241209179236780340776490268825648101140638889203275144618684979561478707178181045735901650592961158844259336856986487771280498528987784763929604360358548981518439859812866410203806520425760147917564965959843547401826261051635641039092899822938433068838504744861007814353009327073781096551190228303921798952175379842854646836506368561687838633390335695552409996641305756394830617839500958468830946564897327589137156786617662370087138170432069179406581061417535438033140541232439295421930576769515808670260782136157914516948349462217560943982260767157656888667482887677874257472333118826897206879124380865682478012119366250387808547319260178822102990628278292512133692690461374701307293652577983771146706001300864200563094126439651622079679925529927745117707645196461537624041919940699214821411672343927883825257371223554454903600246706629117438466785558466333532970384680919286651002988815043914820717957432212991052205975180920975041202174447614756021012961457402671061967188066619395653127646103794314591454204131557929529987979228023038190912313457211360045255796182522985617905090552452138450148014391540544167013918343842916841421148837139332637028347663900005941770782149505603908897399838053793829303833043663871633390611253707278416893955684302803433936919809470489187084752803929580312732538512230646437011181698420027733144222681637968034527530538149022034572568760413949026546469109633907242621748185051421865289300594336121633577959126309700398439128198520428295085996501388079220737945322619461335207683583620242426775506953209851478277426305136018774630560199640588201973164398367584020253620401268036199895206794981602739457851889132249962177958696429152548009209581730531152870176277575172399258883532707295044671154524233326001540067377612166339220875138468971403053459978386987115412449759092807927437887937840936087226109177734330313452980063087385614996197849838513313730557581613681407754198355942038954899340769331425601899394498349122346088964202339500868629343084816835804072537117369138474776144571914624158355579324421082940476905106484417754566656108334259615892036293861414026299803456425181647246442417206676259766954328543446973276497870004180692748948921728106460453366261790301576736128437072861549656837683635887053944748112150699342414704358310416364521536186538492233708195645084620904082145663571351253500516897169743815633444291000924207531798821357119738744000850184554765375172658957555458939780321238031498995458979448127949099429100250440296945662278653360443909349063259537489773202678473144039488861163379783856720788993726274931484805967768060159304850213857765229916335718341010184440064971485999850390773569599386873182241360929326344429239483054125154967926880756442194901731699157135581038240519166831680617653731695193725616289084362433248790013032000748025695445048723611873513257240900081683655130638420012452396368010805935569660420541027043814383496149945786343281050925016542288726868910052846567444369570859677580762496072181723253716148272800995408708951464465867149703681170551232535143928904815757173255998676639465302419479147041463294843631349690499881720103034740969821655779037576796370622285334405077192455098837771723458626424564282057318894543192026859958048889837854264481213301400943043358772463809343479295337589028660075635552895937866961462833341561171426467436940362172377868789399151612169414415173842433474730489056301378313605840165853709985740307391060807755924425117325508882078891486781620653227670629843320613164948915395628511931952799617759839938516495503508031612642616059879469022407739909462746900298539914113246147955270842629814576687780637018552655471535566904372819653937950017039713343250712845932210113286646585628248404920734496015766746127130597413073007989826599516470522746041051750938012315144096120211266201350335665915470248779808209613897238425201121879156373923941882587494084980748675105537260768928959446082328701882471720695228317302582030339815202571727620354018356721760496454482332946250496889992008329124038340904049921566885155335651248989305628543684393237425423374846455303213747500374232300955726823972487397933620132403097381846679535073817714732129065754784090909636138058647885819603966982703566960591026755406953345941764380249527622020720498743188371121530096480759769107404688017972024433372858319112988983985813930649266164148439624113658653279372400826316922635073313392363611415361683137878883804201513065981265165596054810204801955599503673271007157844515731231755529501688475927378086552069169477432283169666098329683634601042556320719153187438070622187079621913972257952634004048636481103923737762054056027721402297561402104612457239617305295274136712418351014667485429002788335007339720450445549582599171819886806048367666901379827015400746152099104421625079342703545457372391223186439131227510146140616051575344504785643962544171505643454573577662582291674719824024128033183202987686544003331353893448577985066821223285221181925425261756831831345934643555108084671124168064935632857786438433640554606498594411216500000810373147042087111594423440477932065593380035149717472061076090978207503661960855109470738548298723176977576570942671385269553921977228622101124240301738317886777404070999116579515166805863620762974113234009383793289259560540977635298753771347402466591984698245025056220186033065509994920018415356975604024534633354282423548876825037762140400634713988194375273515053461811001786564595991312737374853636755177160781017841216347269218658634907165713859806510143196475504688982086057102753862742301292548858919365675841969617817692974878338546019350071410581579863686239288137705596871621556562618160140456232486686789704641489315756637401518951023086448036415016511223867037067689655386433110255610058588964323750797004231300847412523199271979870150885002833710275871187929698906999366587473990934073472162394005412388271647898738623012173142359735381717539805672725486840119368725482696595735841763527064587285514056004788873043054475662836723301523898383098152196447682978197903532146951286671686466655370248994890820833501913518854380767288960873978336737027040164307764938465273312637644059843188097703159184642068324709230240762254451634855590652049133906134177694099896660462978502516880744092772797251118160145331255828118599574023735716182676945893061296072754582835132336184680050689000916456261636774437151348425375058829118899520139439817819473938535891568376527055320191923351899462662005280164677170595551291481681790043473391343031555473054646326522559562163129410806132542311215284786776729863679729686818718663361984875182467214780844276851111713286880065228475509945532357521669912919680699383486630273570862220824677589285561189074274641735536519828788477329444804399437313081979265364523138859763579191708823678630037790690106357541592688450687882575446385567825396884200025140685929771291785729006818993184304029502966466792575701470872227135042787968534966471756190393659166039815217943385005815104396189414126038943127025962308945670272926976061250112241902183703213038471084824690683082445223181283626757185764863337840976935529954839529511416128766473667059231812248061035357688785252889078971034118732903044696420303682303269937489918289785870985326545688917330222013771389967394471820373780718510796568145364164057886141429264819401813023246173773646459587918330291054838787384911582709792004918781856245551553315703157841779963457017416315175635905791197907788656671954255575046451724666604576636975732932848296417320533433292752442049670836287826037213306274578256842998509329415830911919672345733328921704557787127474427960511058203418014419031701847670003080029974878895055096568082224971612282257466638859123514287733688939393530387404044754826920598718301267421645159996016530211327126804700200202703882701850911403996856312277502997262158690046022518893926558185569335786509175728700142658560771448397827134347067052481850276268766884146863067780657080546901512409254286726912874952145569373163877319959605325854531932192146563255461280302369558120129857536619179347967424678225312121824299170278421381796887762317509370722564055511272318440610934116313661466103574474251231173798161629624156015712298766432089849139777798200431908810336334736657757787585346746999176088370228677306869674028055552348487034966699242328070170700752634303578742486076375973979611331345710529359105280919024159148002958357801076555423423306157836448373739641362732451063576891253450286848793067948244654082390858263799996911398279147607006978384307048813328468144670053746998573516548448558183356500526477606394191100099480773099368550943390414460680562030639453598721744448498784279430137360724949769179239967572974959639942876905349728941628166480548163149838866790301398684681812567586573914199902277911349474127644600057586332892243379917531358861329822590243004225882251162089852344644171654523937951734995260244504361424812075696793227733226208542331765399055038788679857693983246594885613400762889788573139362906911913044248980734486645423785488989174376755155490064213933155342505290302591067859440210701716993583303434614783877557022914471303578654384695670649971159237812236810138202209424008423965195621509956135839604760760427961156151905485491431161665158872395498330026007846234426021125592851491190722944235859729755818668082912538536822514646292653844165234195197564391880179439950963218657756644224149199030337417196588486519037182827180242724994648840806472234270464973263689318115112645134912022780344348384137013734560255709112370716539493011060886272573600098786647818067418488255538860911506166081452131707315294627926685479937856244634789979882055419012343467029796744114715793855852675947787871894470584503445523643480482314875439386459016632537216014562897878913034100904471792982660771994264918886458581406308885336271042325199201251170841520638459457574412066695099324330835095364978383014034049059477555840619978066558509379152118417005889977284079209565877087807276884125538113610379584924550935961246862965984274438484245978218665564444895177292080054076498170705453906856032454121991427421056700091033203058379035403447580397744256162540328631106335337481931335758147158707993900848942635081514216954205436463110405037279425990628473260854213658206819002563060648347017471017961493012422955129850106706261831014207989607721662610839561613589659970406290795157025891793638736970368650441027140365672595327512546981174837525820917656599028998045015670587510573832103353348048365475243082453723708089584692698064979607357570487954888302688555400510923988985403699474169120646621458274441954465090935052434381246528481630944128548116639776611961958831096524151360899090359337010411849893957948420473795239361261388085998220923590301547095373462209842038348931589197793358330343960211665942356346424794340682685860366521902379468075933493040590394385423083935177723102761230148482420713408793397400714783558617368156224189423071314940840264001366537888276603535071188307639847154340213255734523109044962140369634601925017440152987016235349710225386754575557811506503513637866565303949650649719063787099479532473402757798279824245235466003619563748809091156968836581790592981925892352255825411031879597530410917083379496803683838287613290531150416479667769161313426586286639330850485870782559838698985642022581267106116171197781096293184184188710120479632070322083672062863211335338082372832004706747832417851824960497240872276677066710995299008108690984456627717860603433461177357576460656337953548533402180587840488928628242795355388302252389922984369160497429623214404541275346191276536053121364411230607407471476774383424141403139358206060271429052835653373669414591370153535845651268997112144137334111394390083625355595455678839474970614028376929232363655756849875665124713125567373008831921399014225612452996280988657828597570252283770214319122220572866387934658060340083275117324239697555366109726801398012317462403921060657818187815295819132407631265950197348123486720462907700315793758011923262032354934301601585755996910238811565629575029777651718515177166276205374187157544979778704738492014107943032709740298782333720307531939866154969995590254223307817846761324828179689784094041209305877234352591370911817442206582747171443638871431439486832712091881383138620961864491226742161063260661120372741000667908195601497751541977215140685735782094349858370781116921791723388034564966422849496212943943844456381601343381274145831119037465542933439949672047078902211808268253635568539851769994567844070821924397829343947131868991395502269996554314654995369674315267983679386818890302979446736370208906178770313320939861924497672230398606410262875380599021711794402192054200479446574089378733836895450728604098739776872530878825113330570143060499716871455576512598069763238870592976795854071960763668073042518761859159457786304772523029337415888613701362755365450998917184300630709799846022836168769102562237828178873630006313358862402512944925848072563431246417350383772836589940603313075842297634772746296408353190114631050031818313954178556482932269426902470183339783589613890754166087654536839327680878224578479909968437566384528809669083162311074615942434583556407224164678126167445653405341841837368417209138033891704933712226909679081738749751927093372792582511500212852795647591039818418648156933151324546929499523206391581698486679367180805085033609788598447320965838478703348228476880574610264375001592738968185557363121607456692893813242781639891465111899311334294968808654916380126424190666135656635714053190157828055653003106824259420547840789540457743570767574937413563396013808120590295147802376273292351145457759874587614095966599788269803558961314307598769704803293481489886367295802566701307623696339393956924441417338040803576531600730348661250833872465736664832866644641021301501476027685602124733623867350919056268030067382410509716093636820210519954016851350230112972106644548488242405940836788351988102673566601900816455968759934379260089117530273310753036001105074769692871439252789213230497469892980395926753948140482546255977651862704746302147771349985581733408180462378758980306673477504592332115553860773619212853633582805681203585351524451103148605565777391859790662028075130268913471086362132030982377125021875098884369953885250355584856398224999812090612567726273647815018685228148701364450821883256624250342355411258073721534062474090836376727510964906688643096985458394310928381170274222733642566969974439071981930944102431155740384879725273507876388351140520789709638297263366551254038185204008329425242867286387007511246860535630397350617783592589083062979710520143481275220932014153552189035645712480795580484189287214085945151101447062233661381146159232746189054039212308337737186901577515744135286620292336613327844624897902881080647844313802382654414227941593453518648268693421520009740900826200380623242668110756111750420493297094783379764620936271025259293333344293114749141757642236241144300771172236613852308831518914987920776434496906556812569378793447519235913045628898450044321106376616011595633495356821284778154476469169258438496685041948776863663886060283475788933159982244623981968643499449761006852411453614330498021450554882310392862834942132088956245585284983192031270636737671717417642962636174121614315478563703524843565088065240749582887839228996592660543904736446073743988682295251640504678757110812217592225727821639587312952683804706997436927330412173424971310995113927078309372218657975921744419575970994193300973526222952423448403980637530379372992711436968938510310663108774855659160917714459020242992908273612770836880776907735468457979194090039092133111288797137812631032811595438648159069003972917838551694770737451063287809281122720967593360458445260448432706644446173459612240542732941177268097929249893337207387012411743965387437054794684820034627877453063014767330885429326706037438376094050488500923951246587488767843067881531972603181281273300461703879723703049719407775049842262760769695291897765609580978783761589973895709307330778314369312783221316090683880443044993659383449838842083793178514935714948560446111944886354904873117508158457796584880829331467694250212729981459971557027805234671203092927271452256018620257060994953731133257281852069529935646639132179827839374881229915622725290320165053782018445456880278327593261864515268139011595335705271248417631688292667530902004314913830061454994457825761057183722245063284998692188989529826205394320447647027502289065596675646978160548573905207479197180059837195861539191169803536244154043779960873188194179859435338617530385193745846351222233864971486890633802843062823390639212575008697393453230188130174548042442221101928028381176352167494636124928284547390996725937512031373900688434590625288268933554825385360238694288564139939517178107390791828818835312451337334213051461508906469213448232945537415012493101689296584140318694565133720983596079119645037397727850889349655896700632097309378974050217715055358299337675466802631881067784488629739115412967598557854240355910232913983560133591493604111676467986474974843674401777425936099110275702914159960561741043096077770687571118909175792816705053715453322942702094917248030427972366221844998404532564066297825937361178806253936578932765862341322294124037054173174761415820391279379471155201885463395602752536729763476435457024320781583433713028160920662691466994633584359916519844209796369131770540063008773676004461147703641544686011283658927818613699033564030308778971831968123019984818674031777210183323218055298664564548107603659177564379187008605260374000911575136969610292885191081199856834183495703550288250548006895141171991169594497836796386758399070927124662257428107164490404826759512246200723731622923689724886395613953584300389243493751624348844464961120771058467760893400896610534593395041917128738546199499437257077186977107344045070765476496554293407552181702389522630484744598851899167051984149856104902836551761973083421012887207805159968920650848742402935251524397067458542357692409375587311744377405376337211925374643297124769285893539134664458226227364021539068988926549421619013672304769128141054917026742853631721833063425236072106349872437463195783914847167023788813471576362037734489446220271296174453032933700249730979124485090873814086285495480456668806683433519663581026035158873783358267793698212756534991019770996458171514012149995431041078124432350159110914226890736114443991904457543279080625311460059485904916645392512107839459054716658542864582152386569552811390850539525902515378592937176305458404783367573986762625228035027358887006112396354914045617158412653524370043447436303159269158896300124542867485608413239814549467531595729551775616382375427319545648413189992782412007591360697966954633439819026776846771910195178204014779663327003723928622135056028684778857797985192940351582882831971739568828146424372704222273900546146900737178052262216899824312174822031619438744665393112539987552998355264181263839426791642407822274531672877476781927093649633404336340419600139204173286151074601746660147801627504232765323026939808655808419947747364595126118061447742538415282984883713519871736923160044513198142660932506392610935165633797467296005710600221909188223921778334311908235207998883646799507919562570324033258029115870678247802720003901786006966329801081302045028354898835839399070313643928397609481640158015506667369281798356034121498333550603828930507172000855372030758121976144243123600794312019486962875368680199346093378099545899602574296183953617264707271563939329004671375097068801292050821155748695270163504313792599096526807876701811142908381375818498674904387878307552762313180971461569786025955184059909566541115473170865519585234442622138280897947799037353454987585137464966571331651356392945925894883877883126898726084835990299273196891452713270003794375838028917350944989251947106127162101265501318010488046696442739910648661742647019601643636131767677381669870850273320921953304766206114517467371130760532412754003990558359418517582208631955207301354657884730249759069216351033618111104585201912814873818652568171224919755790383879565535410054232067946514565737378763544846706511108209122618163982306510528712526145975402557089488966191274119612680565993777577690712774765357815686674524769431807400513829139608016636172847429460401108336544823584786271207091401205745115034107347127604071196667153411297988570846221898031023961347987351520614605395664546667646204323325173050070314111846031476980753398094616483485112806473569427295085239738717973770035859621076766792066341663529518575997010566274088300017851167265853705039148468090131411480341065415420656205248464547936634017671345104925425641320917924923846906010822623824982918413452537262954408038058577065413976083057367613932780826074672813156777957406841462295758024695495931082635412908051025511868688927844710934742025730882117425508971397051907361908949988167510296913518264139757654110207680173093573968748805056471650138136412906389267244226652823652416308395556388183493013179543071243960945175772067817078137131566738379184181477638274467528621276623672196378551099184737370067942454145870049227356364144129911850963604004185329539834104578625077718885626635563738853792431445540335654635926135841600711711021794635163442327234493381131847944013702116253487095216552233417765876818081094814410248282283980526582102624505322221656609883350851705204114923691308416384555834695794054065053847182248977350558961561887781832246495787149916130745955102846869560199404028205084540357225208484546604390994323621407970287179620632458945425153259822464801324458475147328707725154068443816138505191714491260116298888166278356070450061854344146234319053114093015565571778324554337629522947678777409648090396272215622226310010056515500462813999455824165389363730225594925342129604256737514929121137609879512041016248996614410632543542841392101970050853268706463320369858772824435376338253630134791330049769856869786473534196085268718697869873271129760802149006572322215139780676791254480050267151329228993190348713799795546843243675183389129214659029976846710410856596306283673294155748711659729183559940894637267510379870883361955744576327945866472885505500193562399491890228294375885179666357565424093638365939788499941047201849529794547839541691006139304800547942533533189934764357526658383212044491960176382186209569081838836072167775753840255749688972781922147591006924743872326054542575202761263313056147725869430050110073145069484127671018092297572872756992947741806715280342687889944928264328935039859042581530089132678034119875360177229627473134643089440406927326079114977648744767757169813863766239258615574488846380259963385339711572578383215739993595330908042814110248838359882982119570977553855333984260762106072974364388421030642871661725744108474841822665545958002426552635188164625201978662600181506411357463792226678032075169099457080342505561421278848371845540470235612722078088535891064677319398134385833498789631046843495008783822943362771557103269172587661915589001815690247720993492704012853019623107943873731371026663926977610295772672464859001466002125782594645327338438621463351998432657468488961366454112484021319747840729424340430061117368275938460159038791855003822667168672796356614058368809581223594099140913851212595412439080665614076295792409726532742750291329170513516595890161445197311554577573589718754951058851421885276844474346861377764891035957361942517921701436739762540397459641622336489895947688408235465178208444131918130401314355634750773485842769804154068845383871085578473786153982366469906010226995903673281173875905998515240574890156802359512842885933512574157989119794679169454846669007855039170424919074112941165026264564297292902690294946295864083085432604220244910841472535926478908884929980720761366972220649154449079067116560952396420355298918899291742896152303404891207578206388111565648457095856606830523757866128676575005492834487533977732486334157996988827553880834080154244227602310488620197392959588363595986197875309185666048967114652794060631259318450795303607488700528496678261302833580217435982233195352487440861773574272173723597643874088102084317136606971330143310553751205820615529228992888173783801288344973791990629122552168999072042640431763526162253313420644393330048683945951482968831941081306008013815426063670001055373044729172477151015457210362556709649335453133086256410205746033744813108813972853371254779651601674859584280317773546869804506929295118241879029308763460848082798701350989089113493808591951830628749208419598622613117565835158238862856638705984259659400234087983282901766804911024638385348791333256981461133595989586288703792871860330486002490811400223116147038094679332706034339331263619612804638413269061745378829246922260548341747990265800193117204373965018914310466098920838107949874064512099942295424270580758250348815036504122377685145320770485390252755762228549134543501146511537144224574789571312329318523186796643339796754307779151246742399576052225199824814492917556670309657690385470796642929203568272414692515162595534298573608806829049552968359149971448236226646788371765281431480987834791135817647714141589979241457298667874771980754403081406205802143832929387258351597569587563589509050446989000740957192220896525127692255406151375465965997204675439231027847518832724988581798720584797060771820628067033086351593750684998597100186012515527227079987100051865009001587297225771072292013915712599089161032328114721027915984355925329090823649337971867016991702504358873669825546408984769350917850927779907325534910568745222560556305091932247463183833223516523553252796445876853526641714652898219829372450507878899334796176379626840780490120131745318039109360720620758869119573058533496578416467926562697269473252301634687751267686554045088682311370695919607990763359097502513549498423757367069906068677790133627890499076078470304536842453380062075243926049091551952411633053193470972453852568056115095449848277355870776353632779215902599462521776446120749321443923569770249156546050410150650988852024693058346603649431237923474778503582731019118131954663540512609432855527970245900401978025046054025481409480174466060064097291266286042397339137289541918768934847258030382243197365771200574057297276903088062135223037941629945000144456955060521073910396768864508653686877056961090961998851661255037357822557810614397512238663373213905413195008559782063836728493864185164928395682843176925302301287658212959946961609567908541302153036172616445402753005814871002244984649648148162078377750895293496762935355863929664830026737110663811459144113274995064455877187459460136021785178661346806981522165511813096603221017619364426505285589102844463960100769822862433582983576702425166883227275384979264986850845966434131916335657446790276191103408557147491967628957997748828355357360926447443746196943450609259270399793518358621351573721319805723753010912512653361849617374488356691731219821422867634592854878214270899447035312858607352679127128704789605947113158300830516849775978881242473983661247254748058682208154957689035399172026794704441443895235511126351434174326619262158265887788599783585213998441552649175264763076277481737377013513828843038026337123828328746318399955355509097742719898565697930341068161768208640508123076700597618979466173199792503079847322574376268793126275312780152561094881949653134537701220136620853394875751593593427513644773335429359012925539687778210411123934269966424944014316090743216939207600766938753367373727376250288422223979176320395060617700423545669301660353201888068482413257919448314248766666136914959118005376197030786490815929901462149066146706923776704744342442394519046580426533434106539508853519815751785271888779328368658337526626895941289748443338378166727194439302383614650585281890700416828394804929876107723193566212101159033704550166572624054945293085236797985263771724402252492778401563767220304210378637951412719374986205397053160969541566129899491291498363665285741356580801404179048895745584223529435847875224962817411320650013468238345056018134456240895894241496536220301517723653195915457385457911445672236691866974380980648739596619755131735962026188507388029852220909714766105967063895043405022717337587076909240673973758841940240887787824219326654589162712102938171689602301133750298306028473657711555423499930812110001389383405699676939506983308523651288754352217192074969127196449011428554685482406888114413622638038002531269901335543374029038360709643118755333986008326991272390402129083563113574012076115031933360574783561644415128789233707780181728300674851642544294580211964868056787324597191592166553560801469958193101629739063890530538562008889557689999818234801553748238626792634268141477425238359322345416563939666331264593042218470375398120171286146589380285479710297348966286354796555223936765058515982274895311721281685471943246015556098234819701114790012668065179156204076639397666310988793186316435719129329147797220902495566035204654532487818734249203267936288115338733317987643668349679122008964566971492831265608106559499093479842782759349944404956841330896646903117858954952903828696239766188240981992920861594272836933248067932475760470008498831115227084831890283091220465048149607051296561519691262611918811561977891608783166720609232457143378835982607269547678018699385811237894457800443725231027206080223668923992250906836192276454051171681205734396841694253728939669278745852988338178425257357723191661695404144166312640940173426193987653872662539009931491910041045378050727179120309419865684853558324050918159173739294635311327376356328297194026794554336389217678958614866382715723270427110157168929328774882360430120594213451679188871463176910974569912011103694406344839935109138805776451150984837773824387045125440069466803525547320296938387546977068727407994223792462982628985935917291839092693156661458294015812622101951612623619643914944518403485286293449942032174746917066961626974769421840908086644173370960828567451413249259827258384665656511662188968089539626405359755168438240979641065904877532365412106067344145454775453184803396808175147579954085557154125191137203993094168592028539323260560770374041341451500355835532167228780646763691062691193936141480630902888112927973431430132329419479987179051860016829925142482321451452526205310222244489000392050127465467215807093339188352856735280693906625854218149390465690559610390565350463250340063794825283807470841842495674468066391785635625428709918297082341699869920353079077385651585856333343117745895519983445168012462608171872491592847612476608437666083546560093314379902117657375959100197035996598872324901234235782145918432403220882177527227675598423151237373340909061105625475488355921652722141012469571466150702426857552729517765389366313002530898047905494705817847835467436179556586467337106300121437339193987605437152514727458663722875811988792104281579057826492032177919383822563383249959574936303734113774302528557488211693093686824547922446045550615737559691090929304364867350791711963107122330285296708976577666902142036804733984712872917697098634708576472364252995601487166595255180774346092653503188551279344503731451989098881343240823427728817043298984727327368124271184003322969711110416354718898054456991776298132753933190654346620466822760476892801943854194151445054699328348697365057235272011489217674315893922660908031299747555531315344030448561552638427175384962235141295731402113598854973479408157655875283271754666989822406382411172246499530584291941662353226243375573731471765456724592165887622764786749909763708700896371361434969886203536864726634995807469348151613314627259214055639948647653540312685610739786240506698006905508804330490136338855557594641252261890058796759715201773676560729745521264311665853642531519300230226808800955397620410896767463707919778792274951860685306961974879755669755513414449198388966263608493235948602690131014403585633916280535998421923873635070365529752000171738530114499845728074461981540731330741145125178870918711777641992299933885223812213808214449516206455063915528236967056210901756046835509548884263815929694588272916475255571981280211491121202457884125764933164606600931555464447066759370921832558268345248774345783140949590881121790810322514734170547105368460338419133968950923417162107747352713177669961310371307617283884289704803630468978135130210992753048411975002333716542095051789007344689295905478393985495247480033777174050955720978183286250987703032603454324865904522242476106786741406441585004145272426803980348927153056521296557268283281588242147679843979532032134186136339076820445231774120686591370464284271964480677719472728325262488396728413814808624000920215182209778498702263344164878295873707436532620078747723955676235070825502454223761509026421815212468889396419758454742106047733256738998352239809037261407105731855140393248656985310822651896633744729704139048608019626626831038430114967560546237952562782234139232025074721879779512523673471599041089121192168450455386076355531274123214043329090030309492344795091731661336298718444923201469193616929054918230964300980395026153745753643175669433206049756671119147824071604903765415337138617417811893209011085785612037317926491586236128571771769748425575713422248207875626257800018763453528904614968761276515593180874264535565711043443080054418095730486482756457429068819812397295997335526394997748216126396908852483107989270237799416353595198213594454547889741918355899630215489863345545098709405872157721753279888275667496927795571564320643496143903937562272868956071196173922100769186135847165078811311602033219598167717857165880219081844559217468415107709435073837649448967530846292458498686197768757368848890398847468825504174306024323223538292273020468264584764671821216324494253059916233712662706249988048103040113663429128777343824275353825766147078007375902590692715768724636452199348000103421182321206317232330796953707018362496310183011680803541437775097081669087118525424645013740670626064973937224046232969458231989350545510798958838645670024960197750362995034248798762771277031664463033095063761042080271288635878248417776354588903776025863848555492209708790677361454561846887461966407076879983264986145401245702154198005199479844827577038282070695361574130689335220730724416026465704995102903826979433993678205593566928182836969761087325392841637666510077313411645194564425958003213531626334812094654524897026568371398910919722478153185397320138026649273662249539227638614516438314123502395181210864839644282090481629711556606336824613965620767225947788043203939151905950190384873709170539476415707308549039863159865145443053834592730818160938462000101968217120129142443175010491953355288668355501158808530679461417960192668320678342287014207180822630813678953107129943617543990100765912113271260525098290218727733849120842037725373917693400787924978521539406381728597628762116370248420520164196428943345519915465906334651266237955904788083565615833443088958662502834236142981247683571560629964378381636729213065797446514861317341849135964479119562342776973809437736620207725548739108125987313505400785938946316637235295057434959759416603556471047522302650620550428566104397511948577813868735485144720284779373672577331713808008608131084701856268763683697469172086945925628492982785964849491852733143223872794528654026561945427324149239249553624788300592165041591608844124965077860518310172069181341840978521889396656809030152070546177794364545448769550925469230310797627663396390248669752220808712524304702714898511472189550873592008702368476323562902314641119492299360106892380671457525341745849046552799526363354781053387878905656515412263925299886786379460313248628870428515580240978053121421162659374095341528194218355811480509638227222918074362626890580555199977164101816279926836017716385905936124427657360211660696542993832539589084561893810933384229347706212720660843593092517829292634928370189156381842467129710990719436768008037690327712805815821597198274704490900090133570471669249217655409634163625713027315688284191263863919816904525227380704048581491252678074037234105042358455140331900183144949022003174557037859076479376362096109412059259339079981332187996475063650621698222443323510689867000050028789498096204731141939758319849681329244335558195603808583115785924963041174925230666374123773831270239562222245283551291381809825945651248724084056874825220647987933973226352869407128945988268943500934087612146779326187155428581636779886909344687033470246837267954871011033946986797550853670355065126200274896853499442106821219510691754772861237934731076976770806944881022255078377979350462658177630359335070515112303100452922828860342518453904897850953760851069301359424728882560939732692130781723655228096048229254349284588505827579987278017495518421191970552884634672654274909531610615267687708230665357332264631782149412819834403513740878628629185252103798273697101186211997196615272345021556664548946001076184414068160747468224805891807222951193781194374150435701843064865310520098354525668630337969370089430288590569412882215068912100430197353079363804297706461433057839407642681336765150034626756362369066549239083330119413030030432979781897017991070847646255108850371149210148114143452684121114843112632294240778492360256242853921684420998286328128158033917194502955924711978351288490536938438350250001821738906971699016743555466155791286674940768642476664781940010186646104323774313099559885405083523213137216989642684114415006560767300656908792382256371853372503906460834551305086159883620684146660294829696355271483729745239454112382544261501306290656269075491770350860144517697953429813114148419915774823694671365702089917428566033516909746460109400518203216370196573933020397952434176442845265497891102590861868672076476136982388981712801561684652630308594678160022059048513422762540082225251625466865841044916891848910423585123982588387344936344158095168198367710708065796918098965129993138318515240362518599709293174241332723934193653358662293426514504239752710420733449326178451986694370146812898422646142542905461007715205264628848758683200821981963471110403797725383628154215272632246328190713816429100498158253897041642079539621722960833742341298840512840426480514023028927189313506433940957899929682040894797890868226079430641459751731875664537145209654117721383375695069223291963278448665022983821721429226756213716427212266285185027001544629628465870559502161488391343353711300288650632562488811325859664153226239335372760791326005166468577494880010533084451840158743723206855172846115608539186535753954298687716820689339502422588357849159180820561998701573490721678300670921217762017593756680735651892448900359734455074203612613215178057709916778132762503320268778594030875302067140509743726101217843664539107895269800731256965014503616754649394529288615675253817116204723622193872218755472088478894575460303471132107786133010950907584373252090444557532965244421226964969322120984985666193235929022491712129280195811223404176697938599309809744105762670919758504014188847075082995814360132302759280567918255153276846642156348421629796824454416262199112302344266106525426094007955255001847727097310588192149941841816727095245042107255927626708338904939888236649074873233603055464094676624018835947439887802396608400654802766760791749305158624084064807016652239929359226399325229989754795939067232881175527184057628161336372050931745785095471190500251997380138414178582525473042105105931711015296491964132532489862732290384946027673996830291962775098291921252787838061972473439773363827246117756677561620110151949857788012692416297547742435103746738699809243978204437362953261602178652110623317303910534955312221351273998862171422687560412527698066006089047724883744797246217323196268199588109443682534736375198882502877539774253125993052204520979762937628661153128798070692314941420363827359534071133055409391433269118011463719304617354756560649851592143476810043838597147433665055718800521913679398990161916688803462970610615458331666808142002020936236261290667240698059797082287842634216170495473613108784016868520484029580253579412710727473444174801604414563164469368816951916309577354701275388812282153750983774575624638700091007466546449466646829882182337836111675394894657012047413844194521226232784108295651572144280453264189124643801978492034887864476640581079751087832185082141150380741113246272227735645475038192389898858161377192214848665354151658401774601390593405485710606677534023820405541029446650347104745001039226701029941121842175970593854973695897534590113793209597120249513289059969585871984154675576869166968307045867576694433202705634408422800071885378164114636220036452251441966864196406244231634424417244628826907894230598833032849755705987344593874301489147533079814565805666736784961585948869787412980565153250183502023576790912482445255409965612458542543169620199652233982225753589389067079339577263333431804729137645934095993364065805070306001151199350248891051274985363493786247930213112737198198566370223117304896394228780264797316793900907639072636790303949708964880024559079813791389794057351572099699227189902017880210034446492646927951718583317382021879525414944095734546725322352920779793336025673737910575611950681194244616496357414438861655512113113060848644788108738275668169968887532030493808076203352062248161611705050643658518545706291003021052658937157192270355476704888258819537188618814475217797464503364137971139207383246184127840618165695759405650107090576408652320245790687634635771694669395496043769076224899408220424786664351398926674652271505505621990971184923892690217414145044976362615470489934115816644185178808369943418342115249340085242008669110754876798615986404588806115531336454604793224067194911875860606082696308633753833786374253534447466571729039928703051735286051945879990556487318202132289453304732150113301631996069218691885304637932321230996645270495563082098839521230633770506864494806348738332640142297823655190514345319908424579676741486067285517119959387697447444353471438158622201447998652270237693836111833252927916101606626846457936737166185379693925332884365583292331892199318011808736102987607231299764724333862238639882572117846473104270352698220812365124048817812029984061005469708254439298327374745934071598749900577319179735866703192438648906446680156613017747526255225903322017123127292838392602221810105314821973797407433381412624709359450276450478728234990454069493783158637168113285915293438540347293392080886758799157851311010598652372033819308444564912845779099677560356080351251174753284704270520355490585003057007948773535271871683301569665475623610529238881724640630786079248024048777098265735969784988931328922703732480910891782679136904390336568835273016070922773704428903696977687792641524896018812968653730057295579044665478333487048991871999580522451469023709916941764143499039998989458281647217007589633059246848358446143903372789097771512913075718339721310781134200895684270040231199682752863759279933820905715030569437188837837964195323203764019215667353875861708464087212522934220125164340511856173775989854391441104650414299848014043142858525648286772108104850236970041083094369079600839683715805643429897919032340399136618612555945220102301373785292303251994226784019931563195554394442769194927112585160936055146561170741447483535674712401442044754458988385673112068900613532893046895031853532849841266029430829282124690801794658609061623931813370115104069811559268069062290582304317330345584837907616771947030253382542145707748045208448434149206253468584194148668687566007522680235131783029753106327640327204197857746184135271823429860644047999019138427069266964099311443657149391153077172563001798732786215083525818657153223650040058723655827842360003146174837011883378735973412824325572657082548108118097042496682765138034928620927503520485317132660829904276177599947494616429436368769036014571724445225733771259734784812556075591757209071721344527313478705532808192610391708150958889771874193755314970460620821604925329957750501173309545840111872783148337925367458064984714267903294219533709823903853804987849752745344597170576959798466999042545943499581527151679000958375218724679264386067896774397121878765633727380742009133277150973361378081068275774331112909647576759210961882056951001757472731004113032249914754647438928033286407720943524269909557530276201806691207247915691673891454846870308058499187371172517673076067665339138193689633833623723516929885537589492975098511032537714698061803005229083771491099237495440309817476545293875459388480743284609001855760662767249292889735375721610091515457392923959626703577116097081861406141710711775155776926388332322417946299583458251952796304258196686130723204409716649960096312567620185398332327529210890997835733984953844842218999407659802512783105559455424771873119055681880197539454073670548102760494568862217803525979533951085202228358907312622399765773556934452213099290244544953029691388283637796524317618191740687071655615157952855980165675286705877946802822734737422148562428716028789483527692692527707890116133352817425536712959574506120297716688105552473002311894183241152477797439153631412293041817700381094637416118641717742183432245363741112269299547885449563917412279148105751080890950728665022125561671440592221659131998944598472491229661439452225940541146872496798792941971820790822773945108473190815892044398756084549238872811767233753280260562649311672499646648118854182468534420766250521758008075238947228856694565755514674341510124230623453276233543435187186009136950852723364206486867281670738843927453212043427527623190121609487466853911100546307966260063428098466623710325191295723328605298053176574485370873426683592177834644973203380220992839817417129936638466264776345168521922945853257357948571978836848348550797788799661340818362045379418094056670582020528894394058256704789021862836027459429124456466270078084610468127523372480071941008415307099811935140130880109771380921363502841924014655424772722162376243256375603546431606887332546600101981237510774515832256242695146935776689942985630998289568714679723326769200382922569205543525151576099128268276096702846697631135863258470097931020193033075226681132392638756291523323903123421436666880822897937579881251552122160766910040527844190110950009101964266025735163546732490142404715684301804876202643894396523876265056417091912454626728631366682361622120066711684263874141956731431258797697971374467070930960879863600866233231402716216277258685400537568541269319826526055700960681090164436870354114513708156901832957840842036453510569926446166980236789302979366100384484234419766126980676562377807306393914963932333676578779903617482701198443547772280814266337507321235506646268325567394355953587472054758645025587847425803275533724878811574849217486150363134869065564096044931039388779734123940352016350422067971056410233033520415550660390465709445904155134436989198037522737550646658943372436764762303521868028369005991804455696085551387012437177193674538900380225897943755653499568096152782169818009862901564266824101618144686243045211792712469732505480981800953522316546616789331060025959678517414747488589658513720935083865901163753011324176346364219950705072424882741253049895494143965355474081381252804282983024148242694636674369692944449294030329881141621787691997616478259836639720709432370419549110654143182080253982498759638999915292845670684694766368077579238710958315334151171540873027116682567782557966004314482557134177177506133291864496699064400723572358882788824735680380481488353132580145938651885665046883888133600561267363819054822949837025547142611436588251036155456754081281035734632936553510378709283997084412797275846621230176574765229265537920113320416080163636852327208646844054977930758833382335073331414205309078575227917081775744055935105675958117858841673276686869996683050624845123403669698922641829087192440085968677957089175152828039915669634291096613772690048995274444331645057918020623315015858611709661676774825023286017366663099475807105842054607448110720758136130284109986477844037185394316045236663592620947550891949516552949306327634719104964653379139244977061688821980391588423977200800398287457884320738829337188251359013871763686865148678813523017440261998167064596126382221619991894355778471665883939081355683079001941185363850881829982256051452816467630482200851058126717790142361661737338683794480461775616064948486369343785719939090542738918030998417508234234189304309222579309603867821037699617957450572007861284139329713851788396088130277638444095066792928429749983189540080703738554710201967636637039134268831042620742481838277793940623603653959861634532915825392401440179888300031498598526241365224986555343520556856601574760424061640817134372836094831694830455632566639890539361641750356188173242587990061766067385137851089403300279405957798601888889342706690888591238613908196475774096600640644281815322539080618720376883791334542052904933074655417417989266750385032278966773799397659505889452261567363822658311224122731834543464097402137976847222009053596122138904809616000481328455834521711371765662958199262614611013559527296715929739255720443588517186544287797730165546631906580674318469208269185069793656750733136672944061135341549977217095151962802092320307121203658510870614404493673137258438206028504038812139125757835418966672386283709302165407973843225793607842932408745114914950532389861896319450704842845760569216635999170689784369406567278626413916069989770756855578564832151100814473746102258928492790507122567394171181235531406341241822598807885840697980955172244233614277503643759946874682871363970741495402896910379939441763941784067743506078455126425471660578348362872783482729668489573888464431829315420694227004210202413110615887049545486620411533282044035239400161813712659343949486217078445714436438304332919874647464136889752207139850007794350226409365166993656210930781039745955239896193994062067718346173852596895421485538969791377500699657842066030131923760513807905009570791390763556659378016219428702650408859089521145423115713139031931426346988118986911402496548567857896835398335151489712961200360467586578453308638198873757741531328961158454809116796568632956325879481956462271453587780338155367528059661891034795107431494238026196271323063964601158785121833106122763946888496273726057789932539876274033165715152097022408066220526515056645349076448415841316563882293497366674989741122728860787856667466890760513004500397514254894166866519520815879826980879502990609103108211079265506686310902253619379515943863822825818521653884765573078519233597470228263079951351446511612933426819188568831387090177295797251690111006792858162478733579434774469287713616383152858800395649080035425135792952826232553768160935076696145987449382660385087526329953239964376949269085505406510439711147016578423878808884955496308147454411786556367942520538171165171149584627386165151571893562108403681068409995923081984387870798975000544690816052079586937557908097545038059597051924890738051463241572443926807456038955936856011019321754565919308964450260220231205001629971449090683639666283659394956828205188889578069463775583304728368511909328476183000788100761448972390982640825848161973554777450176414630687931095592129546860716777418593405234259437066336396306028275069520637491766617574261472248357419760131713117561740984313118199518589263608640283372953025518696911875778254124651532161840098341035271823860176019688966105874042412822670567639872620935150855800233594854463224498011012351255020520490748506675377500811015781610371016158175383022078972221689650761022104410525164612188737713729690707764142550446510412572722623164456613862087729097591287467243899974603057125988929508228900735123476807904994115448437893559710092186151949435459565875507742851159386997162631790777169311678867369027576381013310801181226438039137869405676063943019057297366717227386904895039645826622302928775790365276273386072071904511471969139911310769910041754909366913251396030625375928884630214118969584356853715353783284246343939072141605519362984554410315321682399443154587174023416672693170770634596114859455126485891618626510516748131299127154428683131962624348411409319480460385737274917710064880813755764620438904807550532606404416892879914998539443001304530645955681550984319968197273045766903485125086955134603606345611066040151515337054121406141972780894886808003036753651012626663185736809914951743693482215596060463208623326327422338097092792937602108686295068487286814956665653855670759876390935889156026416086222827884938771829792807924337591559817217747894382949904527939628072335896501857065506147630648332842598148532024890807373019420155874128899714407017294796823916871371750198825173009067804768882398595257444528898098668433965378714745678522407590198135716514197665180978890582825336840551384551075551157852747090813549756625611671675578659557529134778457980762429638138178022286374900466481787182091409040219370130034661303157562926318429500834039829202715208474078169546510327540975370210522513925012145882920677507568985271792053892016357691032307764169911624947866962806393741687883987664139338668533086237308988057776026699349942816412487958846934110800608453497809464858610346235676261093607142525341017253791452540409888241390945578601201237941825493688550453228502866391735691881759886843891028188451264071436807750829124143950135668569186168551251531765771338886701355443626185440979409051733096430805277716857383269680414499208762022807704076318564106442118394666317663213756261174766314715376616084388853391741644671637443917743476246133373622985290299436010390410393055758634273719656386717112557543140180499563494794207809429436835076676886090365967892205683838702571983428393122246812928876053600001948826484740250425516371723154379848542696836193933532316507249409314119297183710137097600707968902124629414307129056284634582958313430889290588259046306750363277305906946801119401197457255581893419444575105611914767939216752132529877301478914826695220933166302912362496598861097156707824223052114959404926032312442429362678059796650983441901050637558714587508006696265365983982509371993281971096895978711762919202050826848783298838721445984183137946721524183563218252096481825901301169428806730689392690457879372584108883942938851330068619001414783981157293966927441856623540050247243609005995850503958534061037902262802484257759743417595464979764043791985879779628961326738574223144665865141582643428892250170895371342896815579527403194963849054805572061481036029163823097029891389020965805478722165470406270406378035082393282612180377217954109073209726498917449764778043432625016280312230567723926552755304754978196297640120292101827315661663738805646479589197964196671873794804874950475359266738964825559320334483038180641670101007263254063896845936012528587053928501384498047682770251006560409876081470539652372377509006306740377909647624133875829031332808800646972193942241966552971511730188168534848574530148914227371108002786756970738016949055137200011610119795411985384024788784595997179624318458984817395232652208337592014360387941228055417155026329556907618922844435981133859164167107793782194950590366148189827890218645275443627917487097670647021007445374586472195318722434223585772630127705908922924393598155956435971711359902718087656283290205971105212146747890359912173793508397268208894749604293607434431841911564177602314709579577004715472504833387394516921057645684745788791420440921242547975646662416067044506891409365108369993300589728419505458516194778798581524398074397804100434749079653296030258112682393844799866340693094007110623949746002157580838642861895788311375535457324863619001149129838948504589679526595999589497360673590449848416551151515730163020379711233235740337432771324635671441288511464035444370854957025139341611547190636816474331565336654737658633886975709583593542127467402243898232753419076928017222885223093966623066387004491927361387481855390420464020386808963766600321366769181946284801803566458386646390583529592301921410974993112043848240820137879877848295631891729668246473127798339903597836008099686741630215126733326709758303655212821900884497406213710411253406520275015085597286384985628021315516076600378962352790524741647908677096838572572392450879553460709647908270024703435781513685290388846761958203869642631971608036966398957300682853539877276768105588017581538402013125156588793667701222542242973671836821788843098958226536114826128380936273149340000293321627385679180967942840219219747103673037893569396751186849976462187289742392084315841802987985270386192204645889389711655386798675313748917806060130348623783686140366271469097067581174521775664567151502935471608682533674835458592559769406078275856936749385991807137753082105328494766577392593381529310671522165448219960105480983722914846311191941320483427294793425624950694706014958188098319441898379677834503385949832899343278218842186908932816574869460017665675871312072614920264994934480864698127848787001863169118677527462063485057709438164887459558842571222530744897713968812286344037303995296034707523023608274132239870106441759659036809943725793416048927423569294078437984564212991230455361562184730392924973517750572507341215409509776413898795325971391501184005380431848287444209597994158509698376918127579656758809847041687203631604936736249183110116923494647463284766795473343105118160804914424800629445590936269159393024868658165402377512127866905246196938844701205848814451051150075787406635982149376108304301501656504439069267761509375355744080227974895672205403502786899972235028050890219122976553135535440809075807185204276280306624983968963893877324524548454465320370983326595491961378113522051114418530530128193452626589280465147455114526489431803966634918717558891396259108327032116410193684240327911519754780236850981155917308503102045762280254524450846626988306423565727543066231987131892802922651251324977816849688767789979579080078963888919181615566908420502066229162350814623721240282048577820870864763444711498299736899692115855934682850136963104082179145846319471322281667423984018465993543707162631057813239445648037655276170083099317668169611866577211636224264735136920945824954235657361190782612230032589318570158248581354245450976295945425252073045223354607005160577821362565598650789878805092444930810738543789881891861919396318258685537641786976598208228629257246845736662006001761351333857724232619720055988240979188841992881061842297673821673499865604422576816489426056603250473744443995684166176902095011890949236083002378406703982341905177770185743620575861752742001421515200936614434811969857301991558507125623871838915946933094610098608501671518258773213433537200389438568897941698109727459642588237595740860708416812278155884772643017950798282152506601311437702355643181165148209996845119149925502654377003950945841739564639611169046698341859838867984339563225042041728567842904082482331739226886505148515686490722585699806804036326472239546843470982928275353005044104929752685717165553133544024550489383534812424203754215997957344488865455448861870192017358947597244356978160661134973316047338747993859478383232085008643865056124898353684875888094725012658398468587287152461639221398380251079345892803463305499748951175919506208704259485469534700862534543145256337314331254597771934696761869236853291156501870881927261081804592626868081732890142378640344465764703241964270781515051435326860460342929172725934028895600798392967258496524339112968696434303146147550491532765409381585406257788362808819962905075873792175402660301229051845331252241199237108688043481901348067441225639590741839009665420074811164740629609209897985184772335546454627929445286092973759117786044176305348797789609776633577373675047096034426626060602754950611674104689627663325559079015772323357107224490127281697277229413855070240399866004882856958017415002556388403018798426896736968131567698076496873574686935498328072009686657043709111891562954958610473204670098463374036110415406983721791974487228776694169799436256221736879186903663847455092015485102902022032177183187639086095034917858069908109609057974073097630911313718023154688823759014998425042280209635560189491161565790112728040293544984915659972479222384115051636007345638375325810836866595491311890312861740899441836671375714659963230273497154010947380240965543035700284865650062273209393409688777213961011852560067105150029170390526186389833744667780380745723496182312602855687216747603856892913035064766974319193564594628805301963989281325204274635327011426230165032160512236664494029253633432925928879999637171593855392509165526170019240270971054103619712230827855391965812825194904818267657190376936118212568568909002281900215544285432936033473189431511045014328651945262915158647918182580229259470891668815180968423192444626863399091575774225864461088406803438839381741499102982966478541011900365432539045097113409846771752569706109255494748366234282764384589317514160148517536946398767490347797551005978938092532412053128802517040840092318897334309791343231107972011580203683694784753804316822703197165480375583296341518363269456965212678034103508599375485797457582589199254862383195880250341456441972053129856247472854811639244600177543445952383290226648704416937992267304396454811789960504092248961769053620650269444063287793651396368518122082773179643719166312109419480177882650496796543089089317683553904616095469046978051709670447094155864437229563317293488628703651551977906889888655104904108237310907519965138178010205677742708308232898740751426644996414715780711510653087513769902950995042341091682615718157781580017276333508672648119224772924099059087474103751358514629820220353993200174281877176012895989037076421038143036540152214235961465560990309367304640169311508812142747827972999994040413157300144460974015037068775770764212954548437756449209229923744530401664330947068622914434629311536837331373865431112280271356610116542858589621244226791210228747039587332961870904230126503781006074499220164031522152018077610872953819498988917289201766853821445657504143281266019939089763897187171332971910954293613211397486259721962488601971313640314236075864898873409926781761008006626139536851780554078287629991914861990417281567084780315957939550054505437110881913005202667480590857628056554049559029282447950265688441921761367500555920383049991944786693593576292009066758288164012508115730249260667903167285337337628450893542096523918335634115592240246766440154378770114061117844297281889218585620717046155640009196594347963532671788015481907632607645195346614209850765346841740759132197629830356871827263690843533337922195851044457975777482649979677414335489211863223014025798250538208179317178672128172491514897068182857780469904806214902855239844833322412404039790917819099845854243549946317862368761497579644838880529067363735089297395667593229412539883702007216787589682945767403212454969772321263036346500381408431818433325277196796190222101072046999905831636530939791890127956715637190627026572265872522656770446499349140234835371395197192822916942689179688303336138846264451130950430335032728489989989842493974098001009420295270149563497016347084727732779177890265942742573649066884192418020994816200206864549956412027907059769192570906772212231366918064626986913504071324413324400147505457053353482952294566982498771728846974716590891688671504370809215782406905606648025641017775517993211638826583458906120788821760931476319734366850742384931401499912847747989942645561216210321131285595622443129098782927724378642377579646477826779869647630661581352375414961585938713885257045728366568088663886100299969591344258967286916036083067398947677684675462720512385592509205441889635924038027466642782135005638560266831701326376838643714600767703698116128727431244117344521775389550773148006160939364369064049793607500022558605904643575245599314943965265507255437296891971557344223686673625915697948014907808481528232076474377077832041456356827979791847446206902998790235510048721447116075511109865714480226512970608649725815469560821702101269677641054129762854360292060412598301633395017842236386528994469802084089142734315405221733402344478272931332330546920289417236287479652588833036028523473198350538947834097375405346104077345516151874381120087786051960140185372626162354537957980222532707911014283075565078203027301292310898190561205738754449183755626349462372755484202198612569067794900261046324718108861542927236391321932997968890993637686071258008717109724121969696845513435556426199144277042389599636468054920768905807274943503252714551309647638329745623846499244146858411840897762487605648398146890241694306280220678312926512886585785377627013647509717727928922537446247670750788554039985758346526786003905412183205121309202061781539567986380972943770273119628122220969437072382821732556338530036107502854572980438661900347426255598791725253895703323789356250621922738616365689891622008421321955922152815085388630354425241364929856143997179965957512690669767992981833010172032393523210084033061025109435762595467947438410886934646621602614786699094050359086728009617026998306315070233479164629439392064617166528172073758973237388612406830220864219414786380912153432722608450170357518368056588961181038494634657800542607576836782861542234654721343341661850551044768050721498699040603754420426569764943987036285345714359927997606832035649179094061363214684309716984890509653090257764823916153980198699796821654168017310685990542386586976783644244320953931806012222757688220192192101743655391308905776083027770345395424917071550317878564806475864822827289836118908069859798880223809927682685554936496895340021916447889660031356250756038327545708252360940966678512250172501424820921365464973042196135879445644420668795093568842397918988995076679435496918578891999888973200775483895348903450870239095669955148437920576041754160167207715802622612292003312553082697806447507621269002594128509196187081213398122817757675993533949910543940117148694382225223547223963280414955961874449013459616698801114740712947954183654539913174582431869841080304968400896015014527712184320981183130103761027317296458614834442122949378512246359250617816947325909237797402250459616869449327016567150394021536327540299494870917494507699092943484769664071332965782596791431166703295835112199884091301636947343319831894080366116593222215577248996496329857024247700460666831402819034164270819962220115703058586107607020036412967186756650110112335388216068600104721846513433373139475234800269313906202800527052259640447571685222559391366428181547380715176293695775521698560405563311188081260377351182636217346775037218200381643211270455921631698473857501434934447588022781268625146171060532237779507931845670987351482608489613041417319279289044564855505862596592791520518122219592180191402980331670025716627059941236654535520912040745511596141283436598637023254516288558694314870825691742002020784773361072647638555175683346617341234947362160917414937786934018209576675961901975338939126736126512808723573320671791107717042315194086490406715545477055991955351257558458532169797624422796716919009683963388112006279588829531830375727991616095752295294589752809189741619642822518720149947803465720447825868476158781712058733941711482812288810343301843831901790029513370163568233939014211936655708237767912713941935854808658273377847884845638987795464075964354694146050016109570222673215938693408030085682978596048424739167098453116862415712867235874359184767099212094891649186890578073517955541079032429738907592466942061032627316288757913590547280980308131116462554432732832630531904150109651005487556713079053464065920907313648545601960970348104245808066508641742504297164290512256246717226889656521584968367538121715485885900367341459520833552962851457253812630138797539217743250229537590847651022601249518608757218165311283720116461143258986806310080422002556072383433160296881375752782156368743197947306463955197221784392134141182579725642874529042320895109453558852914159113350317377228690871186984474895713569344374240222051437990122856397980739045791831399038682066108357183160027348872012092677205645466387368825832377154306577017873551507894527770390732515007356665906075761545533839394337100064074253034389263948531054485230306820195745736533105342318422503751907415496065860600794794985426375167270779418213722617636789356081236261433464825685243113735637236019785048292528018048455532669670135020918556197775191237075155335003700950337111614943335418774171467860039065057565927270988728404889796931100656583246650032327229111398744883225952158678326130088949852022610137417738324156567794345614264895898127511980085617802115026668931258533191972488156620905225410859902225193435451699485711919511563534638211529302307072508028178869772755290227548009757524184585669128661053446048220658482555007669272855567302449357166525251058087671780469413799534875993636983793424139224851390897352730327057132459299695274276011062166089855440661976044278315702850424849415250667327768409546423905414195826435134067285768135177333916981679334613428350020836705755271589788491178884404929699523417950189302118641504104777507138961099423198920913567340515025426904556975496246741325436866423516800665858381469600065023511211692488881294497439741272267060571838205488748452750463591088166550823393348378515093666913151153289291537841011243224807953371758992088479594260336931459712550943102376203950584181553695285352163810760706253701013936957194355555207516955446980921491743421000815482024257816541993223466198963330991121454690561358924283679892980633678474210671774817640195597350912294380159347667272239217533888652813752065795390452471348433002780198605477624764824309569773318398347908267050821382166938566046863076547123082721036485272625016043464081805811384083074820538968297056314832807796053480981122980780729202451975072242229503456544885371426119383788781402617667992454477805423295743362509170226370901699151041434274578619204908432439271840537485970196462211980451407387747365637484169451732202536635560941180040837892190428797153995152795979184197488921287724809925396635904995689783410679542847845891100504957883077921087148598275402475951172628066155812297175502799308332342972134692222098563340380133334777506734197692272234322401238953580957903759085211691322371648622306133863238154776558203134660328499817857121756799556994747062226980613591162594250733987059672728764023765440737586052011051532717767394594898479601339317071282105937857762837578244110827906784652396424634142443330708045630279656204546764546549837147803189049532022101117451012887796648349949223020396130856757164309084720179428511329635721714442298409181805584705476110922510687711373137165776528065657101978334605424361984560427296481289917354662898809347205418412432363774803458565365276839753076954151811219266617771932981404325045748361903834648431134857959139820924735813311638492923826826469730411819901443094572736076699906031836571392813280498299185357758053047715893315288823020202779428023208813814004819298339207117234436289168547092116372249384450701680367088926207083357038090584647086012833336811063170196596468124286125390558091469844151379590834665286090730126188858365716450306412557696869106171109648210003918758297240962263909690161966846131169466154560823932551601195882527931788277455793655100788135513642434217808341336687845553822779033741773251956381910291196371210750111593319737747282906756157836168420038779475162756110941578298535458375310542958957630090240234413392706305460293719564067493949974017382304903736210264893166531519983960770053939049394636100078540321415795389822191237035071261487363438973815726149938644414310257837510215480760539773778934949745226309720962772640793475644496320388097137841486326884961146680302045430931707301616878443430443321795329456731185608738549840204422221735366475276663419718889342364763337066350071810289641750605436550534933088799670797520410898520823914724875925685006961162798346661053583251523557530345751524160260185418600266124362919034431293441935853478975378270209746513283384819966035692725580439625066538925966243936090642302899468772624986866474726416279349685745416178387908052504192898588505001525399305034868216853740642863971252123514318588504762795474788330358086364420004485026644869119713608520008300408983741210085728271976371895678581006638998169539077123704700680880173568492643301753362460360631541999182404341077344630101627804933703890530463638773397023863379940694017751226074252762351672152748742636438524297289358859968530492463196697495069708711698919940297574983389142412825880064415701183887794942783730266206989039983239345893369225885524872890565566999617294481643444147222047112936706296633315527654247063677590834959235688936956521491450303480860190695089116466093917448977287495062502112663344926806983245725917987958762415968729816440738960518329417273095553217182840353246981763034827153644974620564917407966352541379745825999698750017719748557003859602917410393672742472328318629649585606204047400778407685416775887444986481507901877729908892606677561712617960155899155495315376857027187796045627564348850154666886180396251735346625203004252338247032578261671955281470640472045051060585727203339027040261007747669439638534671694600424533009644381210286102660304862121203833302543913272257549389513924567206091175224530810012033725988047615313868698582796535200508360394568734557787964975519936208246484399592504499015065139476941678593317708050069681855216609862931123709328297327241752062182075581672830104772431392805749899628073101462592242198801403266512970383056382384292244853825114612758290163038084500621234198429941690769041032837029587283924564653131050900686534362666247365890812202555966539672074549098276231711626710681690087336859639668442875285201280506393645403486970290747447733331567406355267541403700366668540624672500876907881904595032356957001449780975929089073436188060476119317055887239565778471218060086387201824778933993957478701875417160322464590850921322952080139477918443834250870506245639238159107889901860619714520414140784952449751566852696751847319028818063026003121983569443599690142780155734952875090714420052249049524495435395366250594183763607009280931219689855076383210400448507353993485318095667748242417433637403023480928764397155049682578687834073752161440540926189713951759837010915935207683270680408983134306875122615561360800094453825446043011980813232364262035733829473091160856005245203908828858495273877043830088299977465572948964210065629750464016168779415911123331921708425028275808993072554611572908342356635750897353699255237867604430454380438230927265087306757388676929609342419426383491742783050291215950627599946545967105804237217882985447991753662410522228572318142413154754512273509008054668500379917706214690892161851202940960599662997523497610775187609318700593811939052469326739801251224583636525793767548066425682207670089169554767179894562791808485261904889500025700147259549740070342871870002920174443678550981996236358679340239921269181257197778460907494714800762424270386219350498439293669628629108751640342878468871001882493103656935234038153792669375001746723153717165314544248609836886526745409031878141224263313976402871125934832669640018693098062649830714249229569918540902861508621786204318066353918838080223266125902796248135328642912075917816764059527476168571450678477760141743280470528605265013592119867565672997026786866520129020398671247625804423673115377160415914856102111814461104304226838667110917717585459948190735432284771913741200501074761747049914477754088993733164114055078866533187690131223469551680511407374815834096378416056742266754422851172549742991787972769683149490249767955079350056566932909334460707101737073068097738251240511030266831776709700397928352048753513327887645872935404101733962875224722972268643868837128795460078120225611467489381874710742957711985440107534826533686217871210781018099966930359696892393543654723713531505310141502747946677478739276738192696057571305511808453010306485857536609550743450895999337961509878384429504646423425785346444330039562237883279103252871487159249382789220549921025430834859104082046352455356224474502937837984456321828841446404527972096015111351280858755836116742509150656219130203168347020862530231173619095952455466098527863256228541390455227473787012152505543890961880775869759199503076088441447641629731497274541608433564476058168134520576891590063058602201353374739102600601190334678221710857341384011534887531850846327310429496394467965392418806625321603577988564463039110097762112283590280234991124765502550246240394346739315742848147926105194814235594246905115108756499188769097541001067700048479912452367498713950874491389418903005038954637526930719822990428932238239885840899937327226852302049877452301217375319998593996885359928001168464352855230683241935619291176180002130632376236677137926667279483882413419642636105995731543298315765468135774695890516496154763599138741773505314302085811581617778409715757227082937696422003532517381945674976604389310750343248461134252568845587541914423969424438807213422988777712184414660463950347046304188582725690212714541310487100454358965986079079868082822727534634599074484843836849403244644889403989530004689951158137410875141578913445609557033130540146395462353246410258553819938170866170125102209328240294493723155598502108627191521065854348588328080532897570814609739253901836267070761767866857492640129048249805495530551429470697558727142440634181014892697687034171169696175993488464884620330613729166161691352168242503204950354020168194591447018929081295306708722704952081334454578051382716132206899848559139972626757406646418453967410952233193300329829027431026721598824915468010336354376640061119862745845736448342817432839538779494610738525539846966614353789766132884069155817793256866789450569030659319141297551604373266652337873530766051964267340518912578947578136198498635717254052561146863717679242288701371152145433181993114358438908764101954888695841171139538435044301696411017239508700695706201570413336319322361424476499122674655102123796695101131236394797601248570576255596854730540374263876916628698511205240146280103422116276993249330862378811096462893368531228139075542676317452485161829598549567483013140316361819082478676761621157372930874261344054387889395760261772767069852412034001803916490463660491277606351076052632355630668902251938894528460056993088834673273898833749588567772065304713150857968753063011970814222918173001477646950531340870311583950137765810914296093455633339373442500174600459043004662377585403208533429119099452738846023507962843332742877930751331379186931588825677797338363182122664487449190197721207168038353615034434988460303752215161600957090131940650414073945041583483283474686442274961918033702842487486307803853630635975630365069198930160798050348121225686222285015663170424348811075563901422956693276452851322536305239154488392979029653154738857186073374621409373575519833626953057795766570239963295581138854057921975983465258697720388000720028212315944041047749600728263234810385732000081877969230550268927517249535677678814304500482770248008982005154750191537287491790946718444116951374998783854100796754642805591382713377803627204513816266688058145022915789011303945347084819333684960413386805426367153204512100664471030615173806242242930307696403288178428904532462206543476172408661425170196241250887769329409076687396610060113708197132339243928816726411193005437700501177563279780714058983139736250868523708925907249409281855440469864021119300173638220659602370070152547961898758545345563715612821775563965282393614887543757182944530838723592888802818289501293076106971239228096841091769979178119918530903543089227950673036048908142346085938173593773739051270601869258757265639896111253638139869919217526487803663454643491695405719525066560452436836566663574719814010860380281102317130999728440394729795114936595559626368679622275771771920344424329380496690245100271274930207854318541555028276586914521125302808700522110387390069966654004990884798888918477918708486463485333378330521488184472946686753519024753130420250163326906717727602769449791006070306661009806674050587894006530749305973111503148803019897429131840392904198235056666107240521016728766647503995259480324361740334183461239773443456136821562023760855397766236685967824505232013267465732234942187924015722704164259352611377603816582096780508241429317801659454452190072049683704787516491880380126728073770495962589485596055427465109804652101789876371470602390539744625062292549186821832683656874742165832605946907642297050219828312685098168243415736116833691892502717770152105087204315926032007583307476104853805275329530783210302394763525439428848094040208687214241133370761275192059575093770222936770272039407702025463336644726089837075368033666272388058689663555567463454842346457925477903275194986592912254537513939177987518062553864849882293585094120875896816854628626479581009092750281982903802087082195201320084047659046073751747532035918009574916691510744266570197697314063051513857462281472348033049540996797151803104203545427765330972529506983826958199403091298500216015059565524124197188691454132710123917575136245892208814537823127363883683840593068369049950745459007259328220794530233845271295643653964466964427956706593958552822678151721056057673636991732378131742214017025649413120285671716915998835316523246565153129880155260518140952929116406156477223520762980058064216639625788835127684208141720582618524769231048082008022887129691274073413594663536500724095344765674644917321320400986564883970680812304508621847093694937988101399095662021726697458687547170274380847692367071622263892669823120737436645830539046959801229715280303720230370147705475866719844208986863723808785067793197868084040094056091637742626542019306596426172294912479148423037903711927696685085975106263785592247466109196443223477543640026345773994609597007820714694722129532384614259778832984625165008171526483657526437235534332372322445255675237612288803686672643039849174107478994245271909037328366593276160050629491496213630196884001926715214620343766209022758912931426613566399008198762638948771207141803451436292771151042583348893728853922709342679393117565549139741126308105604034993188754186690227122445075061032908508169080903720191092076207324865491910790658592264204663447804847966802756671245072683556622217732924562130833535139658640722375616508929745111229045370211562777458823621035503545940917608152534709243675074333816457343229670079055388102596080078760834907016909255583396785821090420049109910056822011328024558014736053800479580217747626076932834229425783863975709967674189242753696321608981225985977548924956471576836728278520081985709576962441426221183931512042661991429989662556055267348853366571254757017136321435083272994092705151534604697746215808488013982502059790497117479428435715144713180624829913646057468665886357763200862834812292429040553670547333651362897085896535734338860940506077719160899012281786991394721124632228038560231135255330357315009230569643727846046377770437181532574493480555770182391767681469098899051931770668162725579489579692136071040762547043934313826683717486023172541780611432953648021364145506583271865625074128377444233434286639783650595681165884006383176221497874971072169586277546139848294524684728609979285922501162220485757545819306944522978756035706068276536579182932874034394418510003562642380209024281013927298440575544707150089107069829495962005045187705707036357673821335853490742505028659376116924993553533292559299040778962430994041796247112158043135724003397603826872328377236449704630188416058666805402912662066349231622324523755823071205243673622516831298984314656407414156799519531802455869367637685540389394925718929092495763528253058674695600983781181172777044492324922479921861153687963739761150163018823557573826044141992538091736066936181951995163674278852392212460987722958666068245685222666251569555806659676786057908000692345066611295671211167162723686827126978098557310419731858553190269884430578289551752817532511134086525845798789083061718131365201589704351312379943132015738674918455003856216357278911023818566064567501551735930453076695176040397464921118866195831318090373954263490270076761722659902643633015952891783209470680615589099883399809953232037332955503511596561487755049143735792527609652155812570768786655676199854224413068683483884087019000443115500421755206968909030837009040882626974467188372450078586288887934398816025146729597319151849501719151479266417974025868504159671312336554860684934931571416843319601110835434641959570606931602779771917577336521990015826362153331297863556118593246241412969920201973626227872700787616755528103992270496716333506441931257144295082512808724658545674030315706927176637167050096772576483762120791174253563028124401167950446875451469305129077935482057777147308665464312484947007488984944367941605873940265141257528076566166034331855394369197521947149238848645741197915063097995094853385250923564556767165202590674301390939161593475049403673779373595042214038984923009839047106809900762280376583034371936480205292866070775201782424446964791657945502794421268490322061399588024006571285449527442241297093559722369802237995446967526789337369200261454209151646222247595865123004768937880056471060068288164540350561633451151199559153583159830750601343958692173895909639292897022699497552670198284510197437332731179171492832979875051878238725033291550709698027300637896441684010965089226079009391765921752217747365660406713060242783897433525300288364678371936472818381091111643258880955355324798356135772562834552577551143057438382516655563636522681172526130870112100669971139835029570425651239515390496063461381482512147862924868823953216908011536035188868736807780415696844342331884747495275524131426290354595767964959540087602991208649712268834278905436982721966400640113279036582073232355062335885390570743247807203992892547286846468031402696603072392810741422022912808658179574935884609559781769694901181351677536236319790423309201020388188232429769449480640060696158498052300236960553140356713025315322418869122908625972287267909007703044070144885655219239390831780707435604255327203191665172129586939984485516568201090083149113827558972278106866904517486272689993941302605571511955951239307759172542452720140817595414116333785115754746200098474442535704073025850464371729122078714678796436215259136707056627372734805123562324055368823054222504019474997136204300316672300283654340092704815197608375385820665930729134595430413787633574713545676268075117493070196275212878277257825839120768320420793629567115294190698408890274423768457045757899918534847384353260058831690837423638146133156012613602544392963317872386302186560192665781996408348591899553367511126670666072728874144872210898121771423650934448725605080944467658742484849315914355159940209877385998909392115038281258173016851639360608703030761425786499138569461606581809186488525930832891956877347086061189745344731403839079717253898709136521512469208597269046192661800980940734310360489203963952511774363508687480457619641910105580238442660081962813054545946376364440035136399615401142157460385539046065321594287836452678804643764856403277357436952874396049366539992033647735334362490287386015394666158203170038419253770112453509412776750122859926706716008961498350189375196025204997775590825696568092066233453191761454975387180917748068160184101313934713385646967412239838866839780746784290026473316001839870166719352149731925832366585427389393844116629712910474476460622788505297530116142636076846507628935579562274072932813719573537163227307505435810581162277384150139228237938036887687872220236202974648659794131292087492774130565982798258013350894149693682992638760240155490378759777499691317166666645210904417927933883251810507915893701395878657006964968860912807364714163718541635991146989777204229316939637128223199675829354390819032661378618050664407461698324899104643828586630156228966680442026801108428304480270322936669320079431585702125879439594611733208849995347449340826272369771921858841678431875411115301205084437473565053864867144245278097627539074597671219839837478858037549774173256562815093958502332467683225718739716488379289707529997260851455835509720609573484116834224703564889002208255338312435173679176784300778042819980399604959512297431894942804000641864570487290876541185927952958938415283284399078339039090748024356247900520921013004201069683065373235600076760605899729633963232145724447360258831277216269109139930129198630877683129724403542662421190428174646762123563560997646628851146310174753478721519021881236851202197569141633127903950357538796725538879985247377748472582290951410333909351454690156218971579745375930866413655648232249113347082865779304392751398793445697859213316276538003576959101120737428037082201598245780630266316817425702622600309019338696696349387201949688214563204509869081156399913490190961884159302998425775173731067569559475035540242306889864557395443511807565183547457632198834820774651106232011723507166946840526409648010043158701644873475653175370634827756771560074684994113764502758085813648413308449925826710296242673818983418307613037074128814633917109815418246138016354505484370961046322735841413977978518448385461809528801194817061222370858577993708476914473334505165367757174652650597917710144489751080033248757543334605667652434001745467590622324911080556582079594855661547181152022050173579019292518288491604480112002808262914629950565664144512519771708235477787230372609558466121142987910965971899204721651832554164456987771282018146630671450795154612910689376608854933563867511731023123207837917020130096054769287359423327236381341364742108473833749958919512282425415967624023071875001889829996494597944853134744881977189630405910669211095468612245365458524957629251596922550379371172073237679520487390213386379203817812290227137128575578825382343102408598742188571179247380547789789809246325976270696007315497833710609500771871405629767174326356825855399744610211441175956104830903652603806022134133977900136810442265046486688271135688509763878293318672851847134341611822360115306414054497213266562220485133738848102375137024254394803502416072502844999554888523577791794523210774254661730140085838954837620894245552200482388850360174503471639693811956554243961428142218316685087655127374316119251125166106745614012285273414341685675168554505854660351405198727398471314189292750057886994596143927931196809579117888713573210403006115281721977708011067206708125214938004749816064574086976467866701740533937279672293850530317140255053638315281894105667926082701408958284486303265237753960541228464063005800477946473282691152049717884018885687042989837818925195768407690217705803116094082549805444275614578930531917683092440471365980639455356574825813545583299117482325791040647484547199325003431969753090414154685690425101905679941620242544131988516161243061309554854139780758685144811801805787277759915958572703975917753797939605362602843920191000390427865521428315216348030584536501194118636044350173175091593145681985256858933326446528866230840559087699792641706063092970820157548281941480731002901278216310169472656379543249201410685516291049547526175166294844468877162801830997350065532615816193332571871348219252102423421025602871550929017062677332438449114452291927053901281748251305430559698727562698187707820558027431906172841296846292549783240770042159316264563893406722199836046196848568049825840544164950599674805777058408347565548936124193464142655285986066353218383205281450947784544731322858379320700283800671551614359066208281101778270403615299281039935337912998777622753697759554435640696299557805197491609442379086622632280547497596163281611679983783233396791905210405367360086064796733934992473404917723311054366530941059580865368613491729889809965194503311997363661302475996353345813888018793730415485518519829547841387903082419708957728971046111589422649507222689390574729944978105583611061126014326783184321139078598089400410188083329234460002401699557633053391172221161222240430869545074436063918619573356033680679147491303229918009696181584924945399510708326119652662874920370432998027564324460416775754040945934038017301704296056450797797390872814889822495581979936880140403840335240123982889340997371402422389423828578954796034400072133786982997633888589356374717747255436403960707817729874102339310144616138574215695101290061630072959043622097089226019187236272995545763563987459119031336831339556248266881812024065346648861429375892554991179973826932832237991272856018184611574623713058747065290393349011121040386593899645850128566012276237547442475058609442158473523830809460397794409509476267544820300678814524799499764795232695940093789952816642778596837975662861922819737635723983186021278572541150021926822433249420227981111015552247771036279039410371489302615574109246896299232300659261373920719101150795635022005319884792316863383926955349135794104607945000460450924850814164125346660697016021640807469106278304969755001515667276777220488936202748811656048715966627350859087895066714252114658888263335674955566746423287151162469979189371740788073598157032117103030344615994925782878364593165500916442735362613480427538436314485941868446526124883229504197797759361615341832265067843539343979831213996343153709752428385033240117607092566288931749950481821539426788090549114394437553583041848046378782557287298979995249725411869582015153013480902665329374224704407703723315307104314041332250264554723181576338985419974094226074506293680951593546925187025656454460777742751108845937041110610352450570170355538819139915433664797144490893478131143991382208069832013806978303100542952694423672603622438752849981998276861417376584462740495489158172306527491411796223094053707028525304238429188231526573645976621809710225588857167368389022144539830184066660653793424573978312659091457962349703214634691339594993437100618030688231127076643644051870137233109419103460209941525256276976830898381876812295271331723954970071888672338993891744876246221185283314982739069315689671435985850101961714973702941773743124400536811645995969531557935710190270668404292275145794197424226751598073054263398055536297453615864360767457972316029752419379857036982210503800909329528065959524042715018330211331342820233406208189485221044867885059973904823646655168978521393835639030233019197253236360053613080142935130787814546560373823322079577786941501738170977125341269237703571646788870857403457434062197428392131598181378672882477481906995973493888019685724617355141706737892302744064244895743601045632460910595914726303365942747519555224468419342485205492250979642037832163331897779289677419725568180740848002056921729594510408474249799451372689525795953562315461735350676998179675399844577043847080735430625814376167341285018670447092172341813082708892013547915222896400898219024524662229681438016607304484514341349854237357353170421495913712112937065994786675253214923883265982821181577395032887159375837156511204705186280368649979477463730336351308384813522245578433276550672706621289953909673038510329067921892292343337355042881097713703026256553935527549766348401287595612773026984855410169635457003888190902590296836148736740744330062342589932882057747881827235875141851483853019329690670627355784157894751438760194899013188364026013386972372622651979973287506602231497889217368090151379709394209338021812825220544748653156097396196910693303206722558253966648654299475498812585653622720660787484222356819122943111941323472719837016497466208524921264766315340529726945426826710409563776986980322406546205828596421058252650265153858385090844725655841390223140067554378500338427947516889340856181703247752679912494883939311241996338686370280254032346593861133517913649562446187688515431692222729444272803417351404397167720933880832825845796185857076625199026839594409019222037527492905993147841760329486265856241516905017322583346410132669452679104146947693271492943132393173325058949718675187523926577196245713736614780502090704644112513007331730697461653103710379454400667124328789809381819424180799711676600144345697923843519414943236208720053478491758008494458942117866490986618069234284305093953760606219923752132270949179878568956367187777498597460925254424796518669213533427908923186751210292058737881589878636051188414225501876894836972470618570332487069066828337146063659572006361054123259694543147775034879757757077883962150902657874869582764606349304662519337038840288951319608657947805202687208502395291358600737848586418932011628990971010581651644845079044352544860872509724121421130783783789566226506080956634713583873800051737041504570131137774050520318292018147987853225318742727184295611725499192577663727065128883403149712224026469435738870910286120734780638503332828769722849080908529162642314264839226908448943105145054665552529644670438744418586492666195618808627932803370206515312486945348098894742584016154111616739477137189399322671725585664334140424423341726803056522279015419480446534436124653704563247680097534293912849756231237051829990674640694914445344778682759420436613483594040672818176481607585853676418977806593278767088884701056729089362729823011218853430519810575600475651424297206530001541217722328349137835113262732960591035640814804331390108521868373039060642166258195692757238120879274117780744571395586328426263918754005982237462847401637584676865644228702250916135148307206665784423843638052705136451093500749637558240322455994176976890017948967902975061868711380162144021334973624681274575008284723863437493171869994248841035868306862494958560616601969420353399348029028092020295969975224208510214300363747829019260044021243015153966322645818096546978389712706809655467130754262043045076641783471571648997038076115409047357729218707273145136981877117854929220191362938757891380276592066714055039509239783195929794512800572099721982247547016837049148312561357061351936983938649850627533417761012187516365475737064078883867267754573272221068081266422558655876151169826998563499797703365838938376285654826795001518049897072080571702408384935772849290732160344417120673930886561146199563838210419912315488919836847392107627012922156524700750420151474183773064630889129077219684114159749671729782459382792987430388183987501040989928978806220614341593082697277975712246193813467133837358883860322821936233485697390865693696577623255826405400111041786987751935861852092469966559187124823398024871170734185529248294963811250113549581353676472734561210631634979108588384637591309457777678073806152565866939321056771170855786486400850526052087114585751534392439326221568347734453024265952900957410025688704660246897723635082572832346956385804469772328582579902200483303618352994891720090934095219414314092045611158806560561312178409218691185229146931724696122188103562887158090443867795795953262957622424344162288901571104015719294838562988454661895794171738237440484945613881231194938074250636212928510538548840139247205196628284665548358806816851398776418660641565352468198313259393196406460059278203764205896007545185904230468282022470271589136111928870315443922763865795968736852285335115842653216901000191379317340847251908890714216905120941549671044772714978203728208619857712436307725071106638374595669460492487913604992347411520980606220351294328867256662351537723438322052275768505535491626246100199388952530579137393477055721267326016017000946785729380289249115051594178713375207977865798638311935611304306806598998479976962301322331000394119945092577375004268642213668765210131333493263216344595459728061066237031245320156980145159031447545636384596008710132936662050507339175823091347905160166937550076315690130027452327331031602757546762774609474305495630449933495146335972037931956666967549545648258688139627287685981389922369013363678271748761781963777041713831367136606310827597154488812752552503521264304163354911294515480757151987505146806152454737227942926543652809585670440024332127475456519917599074503120920688430999910847166041070263828808341909200230986843695776837917373964147791843029636181500873624385973959826567571038056066571402800127630933993666475226478073113725538115709735722650881193573117595258490130796376283917848188442756209866325282270100436700287949956158107799143625184218408921103732555765003841843910996670139329689519063722027092065769932207501200152158347383809955954717549165073550832021973832990107417937661061004514355397085520136687313528179056773588868225158709268184567164599362590885582449921485380934362705916543501543634578273306415437209013682832998664051129674667484267998533723866480567188005787385911890007709096059036616083392781793907435597730449469658332239875088549307846349113325029881621382730520897488479769905520411692469958531749672407692941374542693489542747709233328733269889047480163086867583448415795653869019462766841634909698277577869736682160385856581969288173635186088439160186990401535276408180978485619156859933264551145530369395918993463211918033877424537956048640955810787477516274459435634696874289289042116680151130922361058937844859169079268531154335899533268152587272077865666778355035371925690047749252541358001287643350940393916539568845835297311742280556435851555524211568257650834617764290814584963006688471214186154208339300263800179593613528055584400750782976713424152126421676285766039679052007085883250225227079402566636761730330103074100365634212234976751510426125074251984192614463556110475584786507701065920860261207819730355858410409905495760917285588693451773719830697810008779417234337981228693171662936357441219767893076827674605125206010120152845721206144112441947253559800854474803339341271513814469941908510053789063714081583153624064138661089826892634847411776840751046902637973895965619361131849299707099177773484082780058163017999721981728936350560498979957003445023310371071739427592866728886024755219724699140788948272155721636115230384177923130864524746721415300519013950568150828881847533040257317203888319084134002027501569247828260898004083277710953820529885721932631892443807420856096334078488145910817423374178152972366894152677606180483742872620584775875170443066774979552857042591548459557598343855301017876476610830467394576629567827773722257520038610749050124770693326779220425587488772782231449398902533332646380600766497704244387623813953831568511717885297894269188052377520874999841743556157670850274059203075552131171224563796435798747399412482282620890634192521049081811097678567098824001937142598913418827761659915802257440614268605763437497989173182509067870565912301726211175724287085048917233323741711792739644686333653305728121241244727441415953716537136144452323515257138049118378077310782924733444134143945987588358122854700551790834599705373458887539442725653123135361815966739284766800373948661134003907298015141131365964523201515187474187924811045844243160512149646555989240876880720536191413980203680880611801285961582502948101638064201714870826075065597232659916504225470673556032851516230420951725848457884426963538307834352759333609664429135941564805845958215481759982962551295677288456254211788723346314312676281244824968843623814421315862048975341812955973087158742787868282377718103889646982596238242083448794682944692032554503220328246299808455934364623665349845526462144992757740219742752119241346495873966441024985124082900881094782579348529258748481464994681343664137091810328190977822128905526500350739217531585997435963857650056405259569282119859040205049713781259880653175176478372372109937315083921668538935495643460032161273620901886446571135147741389083702736040695666916399575501962668470545666301076298646943849492082133273870914742533629676389515919002841784431588236494558085187487004599103163985129073570950870440464348413252114876453674344889363935837416407435512275331440924809652418069163205056575530918786945842516331373228117381200458549278432514816472439566250824373681520427718292833080049914962893612571434175503574655606376338505241588280899115152589098443650422959385034141126475131023133195517407324904930827174711828308597238464784243619672476472302015635183121104523711920766360214994626258830936020961655996709775283705075055542479640781476605449366477539257524413825486202398528073746795785478593773378603760107565455567099812893667690919846794455637039356425964046562966309979967651692741838705924989318537370915077600747013073034104367285089405497052147092750325953400752970368183152115098626171883525645589760547531380804586214156257909902099550813094203663597499738092940668152971703754262697375754843904781054647423533918574527579543556046818031499730188449281988203578678624099817450348743132208926449100643523826332012407116784563830701743050492425843167760574457027420963012349772789460843472792131572121688924592986879314729346290808626444713495067157671040323995741633616392733995802695948950537370598866852896240085436086414476251144039539530777043007918822066874487020162327871771968614783429185026499341097410834416949968296888743859498321221093073733193578402223200370692990534695765312064914749703980659520880210006065904400857016191316236376844761088796075012968995534763333009032554525480350344139050676276968137325212090331953599899264772673118716998691263416327068003969441859273377932421656425078210004775729495233674457976424861488833108572325972363775405586200119323732764292914550343190775709381747526045067793781366126186298582397383562427179155218526038613626393443953318284243055290228396386451760153422454229176922657582116195317830381673850276804927325234356944655457148237818747687866528701453985556973237861370056168697312582390676309684749248374387397571504934504715406726540720530051502970830838900540453584146753140081876524444901392105583515777475045982905943306874767699249199760259369620612987545963230588132072414968657641954866588514959982299466163154393364777581217801019214022667474619881421819174381265516873226192957957220296239688027258760265247069632967134043748831498639065309490776562116418415578994866289562411526815235419994618921012465080245852857013374284121291798887764840223372224377192027257574602090487489494749660198604467491705378460633328139839762786009050697449793659478119221413796110157664247458157502078009206953822641720126384599661079375667454732405199427957579998915131045361798753858287714012066092719021601251787043624283304419633435953876945381325880136543161345257004450782252418326509410497255061876706975986843422599605408309132709488019013302154177109312696973977590338043258296618953168238404206343903314415928490287408220641967957720314559201105460931086724837014257096662099424033523909096440933606827535979151968013144637084195776921417087714168010930634525981679737695692783720707895668475416287684732277286429904053710870321038228064874384104900815728108525495337426470051662401975951938384403018933309874063743833022667590140678254333334148494574527487127671088472129698166389786516687305995712365928836965137897077792796999170645424098076502056523635241436665756235674985212244367395714950140095273984668855034046205130887917727045610945099679243136612508043805360306041148754382172641478662338807337051708343502683798907378726766633441067284791830117024796036970411527042216873021098364226049394289623296947014770730863569228605019176733227693933514092286358258896176585566381375407810404604166066042659774305581433882523754494817472731307987189652058265875010166283912747527714317979626653535416976985661115271270893624620149205400032417879583602708854311644146711544228900431683071234958027145759101874416653177881824544514010767797372901337221685661554895328856327021181811992842011575932461358796696377597231450271020766875718783509284381766008158986345769703776359147905338321042860992887428681424496094109667512873232075323437250087875490682304852888439552218329564807694890011982916954726482868323028219937180385425221998983096786580324317701505475400960544548879278988902808802670411913260367978494560611012408588385033152387848185820199278754303809673316343936626795646462579200484252215167884878674033828507851954398105671715079697196645507259515125881065984458575435623194231180156892083131348005353930702111557948324652849117690444453256122890967782362000719154461271719593579099049721490284661699582582468802840458604782846959088732223291914995276276533404904367400623394748338008518676644202342894412328676763943237220796886691410014796750994935961893172801492245738931108656072485426132377301333724156390380228834341914062346416621387898790712716685110391720151638926041005912572481012127525592108643444316849899182748836342766155768312713184802830503823145550947566852183321498704532778056193834974713816289897224670985508138518839497860486782801806710294017791439869555199892066846072591912197489684596346312108758448303304327207215688590337578093115882565477731139767110802763499742772507642946136788561122052107349359921975416317640519048060482383706088870056370688029977761053783104367528261177892167266338363104980718790296750369998165980162809399243574840466821717136610244414893432185454825996013486345783986745348964096251445284890999817391400338177316985635479168787536883119110246139612446115885589949013707251596858874713395233737184628029140628126963543207397425576953664523123413202859141955534965011204229858598698959943826176470987203531183448887221764268598879972921253273277120289078920584251949352725895729238089187338744673447956353590049453065407153852723610656072375761144049933333779554185613101914758133783904805717403655667075104084727543484465963093535004120072770265088641897888825382520428109927944060559117594258056475751927663382344334830336733605290949109449035609734673252865152255436873201404993307210875380061883281993169686038136567404495864427160455176645847506935415257670769399478145475212127250214768606456206000663868439722617966858897836558624860612098937638876795570572312818173301326400184419939166900528369988234085864539049824176027060807447618038263230670428220502797922632787191529522106574090207864293057542517962893251134325328733211448612470180318284269741199130667012925822962257609781218755020349513953748307731882317582607862712699048780433807553424808822870423639756861811514336192313651787108334616141459862157255050183013913945199890130250257962673485015548499113986658744511831793532528571008588525598205662937652675175352898161596269923142902926347116227927164751387441871778848402517556893268208433360080456901685668306304214487972755018796857909407849629298308575655310761294895059784702663374603097331341410319842604756280492658525881075310433907969594567594922545323767147204493237710729140917423511035551646363591020560706839180006123774042148704374975538972956264625050662060060113371384121302051866266741716591387352165350680865808743358197273768608836269352364850252386888612422142030609841517053235667166493062136599180721295986093962492027862843066616382594646209043606813029846336062470729531223932364245481463114054718507809177277809231459569563935937020557939325641847523560511816675872375458994966674231670710185778303753066940061475717608379232959176668020048196713582803465792518358814789294053852730671173654829171440815262988100879645766369321860966025340718167646755063085450404443230216671897745465672421056572610892777342511419601223250077062411961606454450138400192303862797315184506468333842936395883931659277553821165745336226840873279448213051067352843924407268301127273617318288728041539588052519979075624966267415729215611500576578730675621308924639762172828774491638212933500296062844392654340820626938947006950919920856659071622558923831291345397176209717756426257434172850770422910837024888890225887196883987979211743465689751472589883773106176925178344487807950464065018562702454518858662014532512493469315770729855001042442860481614093000070339321174296096084552704466700114797757367079989006428901501909537789078714881587262592350455424011813844509955893353427117429549636916338784104499620768867617180692503180355030393354607971205404865680320255994801605827022481551300786458189254072017640497782000118428119693777711180754430643083138374787245497287033704663286639012200499586209618109237025605526283721972327180245428158133877528182782655049382937776464940421385150845545015557864433331174524403202515570719319885963391451349641445088937757427891752129154615159115687888903848412265714232285121440349787606452425841780156666744202284659950782095721691611613386633537892087955587772187955808050974831496736566449995064680325966063657044766514171921961041854991059308805210014245632037919870508455358580064730553343183635363394511994011736976880631398568372454127506132528791662024055375811312739423944094205831715475505619644931691037372521316352432525812508020433400642236116467332844973025700232140924662121601428915617475619717427748602009138670066089075894630707280871700557543878510859918609057534349637892185587861824381345059569113859718616126300453588225224690052193968717803163565035300829526819060383328081364446131509933091020058571316345894394193694605694924825132433123327922822262329964802864392928777449343121374943859893355531561901099230967877771091521601862716343164281043945040091437672307517882675057631379965259943678688043859500759536063515274541827667706013451452619872284543484071039835253963408022503871183495229161766345792943794003222611227984534214208822203085570323971251900096453812150208082482892792911123036387413195034327949068987419541557398897827799106131214676944153053733922558856679483011910450168933149676197445196627427892662087880362888046092937420639958966575852800729169295366617749570527723506481496031249075749603054344705662445573222025632321374277862402635447962719317099061985231572621338899176378741966717049177254177218549088616152803354537310962645515685768898304055379665397678155470087028491512584990166845065643235154520532058743926516374575108063328912529650144308540779827608659029353587527338047121435636224502377872775703638431649105187509029507256578742293856294060462989182703445269851798608633908753017847696139166337142426885131571071577553956117827268703881499475475695383674995937758246573112348056636892986375384501792266249906518979527627678663360866042904202247187673303855865654118966719077979424643280992999845386594651536833463707946180056907786869784351457518317975977974402821457689830472075775517839573873704159388114634883821209680263680646623826440671555152805137641206962388938125982918827881818212105642384620512223056141993474896806361941565386286439698348912994593537309506943863441901260492501789724923709241506852055328151887685210592587927599600539162105499334859464327688375329032645270214491410412795572062960104867093070050245150830860898520753749374848175138294195508941020763786917194872123974474154947011678281179596206165972816136347477694076579693070851850580669672530789327971859778766047307983153130169228759499388581142129813712911407686521399815010677431431071524889737640036160056126550840426229841038535567383050838754088709522737541729314849137708843577539068310099033057169058596131918366146696226252276107284040056094240211779877260372121753707078323274253187652526520327156304472757947266835601414466612888988395106863348927497880821115303354774213146086708436260220283308009265829625573404246099441431869986223651965719132412147131627615856636919772441944676595764566401432680898523291471777189849099471469472327234298317164603520894256424624400720435757226968554032434137520382370192156915314976146874165987103886380862170541094175440302142425651324178760132682912264153643939591645342047257074178799108457014518933022943700309891637751641902403474776104144891096172889852446333294573094410166719136463306672459146082461357369440447129079769979126432890630686744328307761331473555320707265910703904406424419455097841953608526066333371307242697494936746957535658852544769365662671133428601898570267879312078038951383365122707542402662348994387363516645362128280364980649838388372614095074325065345548211176051799216858205420084690599236445695374120407134396672998034027402689582470125774358429011984935166856969097056861134592731716305535605068754989389050106591485705514750248433174266818220173491986060995361989736191676318770449912397984753137747056225093263931581996908906862453033541811366954854908900083737629451917742953706453346807356843098112830928403215043418238311742880920439525366427694090582376353902810851290748277883560579836324983277780877779236481704719992337999559147224950905597442222989421379433865727194464280740786187710341604661716694652406471390496203166331190365345168093737812272875498987671900657780779948836436106756090381804103960737263822314624575217093419589245880140788524601603118068074431594165915189889745738115145330875342895942085843640255679627212196040890478694131414781842683046640497541661474346761948964858056079741621058940961568600458487963285716933241959118397243738607996358542510809772423916552339186067197919007145387303482743952618208360567901558823128029619539475190886942075811104884126260529517624978436923107959009683557161122366500957652846215640357429191106885699030853241523139367613155395508949427816866917431617299287163422662105642669465017654541027832600595344885264537206370816921173598765896335068951025560303620835676698773853573280093942935797982023110871692512732847190357406270754027489029411755142386606260728613847493058786228865450867958562108921743508729179850682868298583177652979773302307241877598128610614528527020201119318303742684346407993549772794117812684732260726885013501899354178268785166625933513468274430522763560214350051330500085641925909873154657918434660777182421015203948695311785380845758402578374533048589652026592774115969402653799687672540508843290437679301859646935906427156147448217630840442796173500872403876446482331825312346714652600242305587131028573734400400092597599721998775477079516404156189003202509473671766633250674901258314811387353696969981558792438773105515829549438562401282479592411290397744976278618538633040797179735512216821206158662187941494181372434296241664744602804400767843082026441883546691811776370555143754747358902684169356239111242936486128665906117068544505006465966975976291748094337346983346369002664604114318568566503987723039649254946407691311310710702922619543477284276558009575350618639595245238436808723268389981460392080872657881681044906814820630462883867174796314603038856515851197222308320038802841357674313974693205646804543957625936479711251072463863726606831812642338069221107492815861768713696562757126736265711752440384294516787908605558813164389249437420719869319247928676775203393999735860329641243460999079739546512534483150199440311114388255856565768555256589199065927946680347145003290766107368958349363646841541219283462118698822529822580795691184360987961975235995118656445291143467206629126507496525529749493128735934358393482362711874420052055817317327119270688303450724458036304363205838428941096790173267166471647700774007917565282665899901243657026927222550073170984120273716429384303166415369146953246520960611389872566445514201076271955092577194548889788569791456395652668493895769902937345870119041723212248042438644934945221381498917834291379388274055440628878055799040257725193724019690312787511436213377816155312848404671533337491916197450842234157129731731117983828322413886979050145378777963170183359788165818658775202976906768505832411225155843269450644900097727000724993093434474988057657289263486521245982307917331501277027975403166933677717387829957502466888723716082806263458989625702678429798972247158289799838160613596318636677900338249850603172084403104046683158912551792123094602635608198340330946863002111318876747747256755947526317462677958976131467823596213490457142973313675400671272618406363687779608488253596041334933949140330354360551630715962868375296633544796004207939371720078054516651757700373974370029071831213028360988340968668933622215225641779550680970831085232746605089905312762378522642821751007762372277657259802324172302404135512747565616213774256191043806072610770256329808351100493769949521955236400323640854975742811653132831786936966012236408740170325845960699436917107668522892242400035850590337620671220097611544820408371178622736168816417669464374514143551275280582956918255401409209570901597049728872283934741118604251707536046583917753047754876347424884430723645899412417644143095401692392638933877679369621881323768261006845641447885450715436619219911824792160588421664949816619936913162382725094233714802724263211671168874534812148462760603143561290181399726807799928829629503114781238791325053770477867939899261230535775473922044639461591002722881480989180405835799535797834566562927247647481751481438908147218541466876474727130610257856377485583943281716723516248065198487684518875921893013809226685807507776328778573770546725464791273026762906848202175023663877668298447368107156542374346004597643957354602755750884627664597123338073208789957516704573395994996916571632260094264774508491038648079469591218736920323698802536193983045529868559366019395572109646410185350966898433395918614734214364829011641643679888914342209442883321926390519177157861488724467959736992622072254285240901774908213486262946663394545483055044302715523006437226079893417614987230757704747490666202074407661557246859801543208333585600499076550862503261874720936779105047291932188158896816875631189833918044260142579075513244641713454507815775704555237184546596943692117596860368498625880148997536942208330426148926977393329903093485395564814263544032682906170064367061300420263653538068159591348440493167271633475775381267999233649310715301023478284502775492193998709206949921374614756538692613144476257808797395633577772542628657433986004578531269860558885216766073775041521673417825075577747707615840209811403661506814406670481683179486863836350814186671721632216144494642082439041668641230774062877346485153554246935399123437769577262177294191950149002375532464110268593260125733267681506098628298074587514053601596122781701255087560199636374111353300636150611585803210069008155772420598329845698008388237939367800865812857613182875007398391995153832893029247265192553927664874269618356202155705385228777507523757705430416682624532188763321230106571115021573980912699511414560862023752324437480023193014475114409071065362749793166045080715069724270712911125105333512401101524906453046592538306479575434691995093575277077150152689564997320193447547905776263415745373076358328448561219282576639076788572734044052612410044708046753034129174133644739108859216904486726933427272086836921400248902714394696619611534740031511282467950519065201634928233192657255639727096086349158996171623534200033873435828487278218400919880440360993950425639484972907476205863827665535005453895007480765946235191843716793720684055627691115781260777493740369517267033124724177450173219867201439003540992151574376741015348739397597124398933764071592955079918194880492940811246496909093965610316925182008462882106169956743354855560456951932770196329291868317965188751769291588690158118629570463966987678243662761385640146332506850778651471548137244555204124005890316919326001953961809565014344432012046939956678075275009115732376674388811173041527946206044648858744327635160897152094269438338191519773315616521239174760810596353565490598975171839136813247764851945093258604383087529590355089220058246257396384118298135294991764302319350207954468386013070583758206011831273356509734110592112028545570653065241612720728165081369536572172031856024252369225951040854284105288181340621995525554159594500430413208561008826782311843998530170718754886344446408426417918920057793296631595215273525004922509319209178293711821573844176784145121934158894799338376419998922226658814006567654252046449235579739855627055754732046069249784623430562045257946218904646886416654031509269117283012126552402529860418363837862612042789638427349464286937673456591798426661810839198707925103872224792809034022805180343611959930191261054023628044766775772488808123660059908796651639555329156173052271179458869733601243962130354566524264355590301203508266839882394502137916504756639129222271470827360013144987315559224228144784087959491333968329165319457773774494840088671769992043720801964290499460350940753633340562533504147899258405762744219482735919323336341753904977222054403913566457125818954130760603963723377001764650743855420702467093567442051878429301499539836021600158535434927735145381980284503914953670002577320609374534864489053120123797025125640386812604728047809433584180806180649016013302029063589007497788772804579346905784047702538940946642905784185477066130367941844403179985395164312364441782046388603176545497261972509993019927538968744882223229826298132085692661198163676019177246438246036948155289331857641947159945330227447935728963151181627189369918285914666332856200635609783056394748851343599884947696450361791371442550713268621940983278388048666268690803084419767360676925138490338103452416893804678074950062476053481576810010024562582055253122204857946472146745779922605141716560570118924964759836510934383904660771411740951914928008138276445911113903417183462049212374915407615069036424944264597605470403843890660353068381536318173866333831442435042785207780531099702617670583589586706609838947774805503563108882814287739338006507250433176153636925330310511895554823272203901002830835807633361793537923591644965023802217211816130347431512758531324952158767911492039892747475896872828206980538828021961086420127036872898490018496233277448538121958318782252513798498645039749846083816454896038642825951060318619744885232175662063032226058027132764344538160150332202530249744250692724066641324861707720092408931303524560882242124992432559766017979917093904104976758054821692179221184304930405983273003830074833815904116553187468063437883351415323686015007977031812147060597192513866111642685838317033472585493883169099653450362459752882994929473053875790978738219319311867911790970203703228552194686722467228763750959178124043777262687202379409403695220202473936877353837399632469902299425826749174372658170455344998586132990842315463753752152112063827506096509693678248601502436850104642221845159364392775616385809420763592141518344042268315791101024442628349153950908775253549880230223418087890592664262226640896698279293428719772875401696526254490498222233088485097420588011412011808073643617938158386759552717385080804335610316909416716340803932842388078617496591808998606254164991291815784923457087380858653755607372734482728931581200685779019706372559229491518506263316460036754188863423886827954970299257135632441196657596972769415206822685095315890483048590748381026795714429185785358826306331008008430223071196096985830600081826083933527346587013222044264740133478433397822488561639839532487599475472889920826655744351050173661167950137769170278426264671382140810994178511223172898041421258701759449943166738504527876074877954524712918715562008299150446005741687017620890927897254548229671622453204424511227862945567718481454796113859346001075726258307794913081276048054307456279984074310389685088726043201933476723752669402132922747393826297260870393651573829957378593468892900896844052953062810621846173900062223078904569640989045127492116345424474018365991922714459608918542944594061655134458175508312578389735677661441946605200984473578597730774159228138673426510202208163249508125891598388247340222612070794506926356077742482328251274640182372025701874095537836737523666440281198347226696551696712172120227192244857439781872965206102689452978790200752967506511836663085135894166577420611167844145392689240880806545908642952668436210900524350428973546647049967858857481361359158681770059726096032516274229872813212968236883597338590273912048071618970353631406542225854848029946549323843966218905261356244680469724111238110163271738867973691633780265684449976757464054513376301903140631571677696167747340302442340687656588916806932913073788022516197391621758644730120323506970744301079557502416187261493765207041453784939929071609329484126086793503466671185273677438983113544418145864675200162267798453204231162996305185718085779811168466800518337103068991109821926436739837778314546430650300895500053738724105914229927873620997705241475417469498668952256717298041837777038977024200000443993571930056678371003709444971052034252281203316544855721339463337350725339521620688727526029781520564550722077508832945970496987937020729825311395024337474755559706361629128777030564117260369112532844417032379612890117093468831445962262516998066834696630510957581024493184826559366084276269518132651880488820686337489229493124954300045521100569400501500061838186253716275167093460220935827392217555057641466574489315240648150869019349201568326472191693245808450755395428206034439377743957518977307289328803908452243632304328357722322226011271686650464996352338538671139651956011005555133404880907552825108837185221991215126117032353261824111017691861349198708017301146655466373898809589227641463528354048004508350239791909342184522028489839207124302496215643129941776992288019238589978161317077907632419137902836297326319430631228534695206229946578386227520050262218724536357080547112956638972932029233294746783716782310942419728063848588894781122732369145793611569844050783129370995574141774822649306850275847192140263908853366666754689061920092295913042693250563391612538775572205124678074744349169541775104102318077463849268557288433390624967805188556349262846686145815667906051724809037939441188136330899594148902090884854441548876645991705664063739463206417496462887394265941727031481274702204122755878506379877480079591556124395445289215493057093203741673361261337541813910048828330223417890198963412059641311779384961394907681633236171317413690079789314812877157115548391154252999408821614879799088473654985512744774018564579956948832122594713628084352239880158500804967121179371770752260987545249542851730016487530401545568235406729625980721090374559743440710482272579986486991403478204580465373624470766339553107543703534629125350895780068887453019428029243241974067734015434840331127960663469053499622306106442212709563685743008792451369240416230982302735249707060555884318045809753631338558606875516133509427926032234145479557045469579169050674856819181243967373835665367002114263087448578711233121607975987492375720108035488452164342764886795763473255549773021325024727522239054699390391796838876441354169916913873627686606400288649071124696656525019935696593458031099159007283502269044988707522657176732867108747248711004562762888244144566173875668477563510410427238177205390505485053459463854927323379943460032283488114623381156222517789663333643546211357305297733442253582414740292967248191964288178935791131641787034853593776200580201206463374541326291748209844004321980724774841491930463199168358203275317802528005475493397309111046468787488366301210748779851335855123492256707374404427349078807306353920327250641582192583164102963674685940610305331037034138945408384649295457781749017502226069337376065891079490411089529430965094392803483610624458916990268634930882492807653353255866356479964453872393767186025825196124244367995826098505215894415904462900375408445208259366819197647874659385351129469361677465053682068440069056386011761982892877174518223198282222829591882026996248557270206741908343768183112204328731556939760940893593427681924109518691177922684066094535628577123420997681319246870718612063202257013579297043764611455167538428346799978207408957007592077459235342004327649783849784942278890274362834115361195380692115387337531591381362576827023582041787797185002195562759988197442024573840971625859980620790360492178016963338677405330776040811257578399440751055829129428868260138875776145918477819230596310180014092349066925314378120118440039461890867552188866656061308633076163530414467457205915244635281255520589973725545422886602668289561598161258029995340878408484772468644918941541533772085282265622976437862670671416170551833485366366377825421061798397528330642067301793226572948375540536758220610197398031977067852148770461817704656674350320738354652293927731133232493900030078645232784853174556266304376738635779112131712895816847550644264821176516500171603762698110593806783367358540827667355457795932543874788183996276149426824531629784973734734639927196847982250569095245287296893861672667065886336340292856936567714617901078060716670621022245672558603147468711008259698670184916728114731162589082601952500782903179534262152541505613263604603088390631076814318199952954247242563655023978448432691211844402804663558497936623804564821222783890274735451227197876703160997873959400010275669157771028748973606682637863025738276287552245439020800561223115046960879908937964094774842556422679426116828032453442663281614559229415110548596628743505686119458894675354682994674968025709712246788974593317330659836487592848795744576431024702737340063657115189983012312145279390432596653276572873435885772157430161330896165386928770468891132464020008552341186048453781000328818551154344941848831430159488604801375080809091244564916544616593141576273755031916834934854109711183567740618838894779210028030758420706470415909444199847105362452416711547129454053442811862755467417665961103486311801402299555412552351263384135428018721285277750732760572629634074242272870277502194855412332184134570099135564147086144565106744643680426832092843190871244848714005414166080031710317016242227199421175334829440575180255968698809629135293894384852180123311953734672372825876464699253993281410009510484020612829615266525796323077606396767733845557870130199412373392592214745546543878886331178340957557066709692263767089943088932153750933092101183358881404468949309865213117472505018151705306843381128463892054388407993137059233757796798964612204914675101955196129577808781943889516027268801957712173191073963249884972520189547910063904138661469746619494670802672055762977107014044170230772452029089522653028598314023265537505943950277808047724394878690902773769420107081361856613215735445984539778430366645979712750832402762742965381221153536058664373072926865475334832711154592496903366786627117953336719288888843716249176814480418860696753277836519324841781967590809167146117426182193330815520978950447879178852385437192692216449990516151284874732572806417377290291593049677160774053263620523274874389237334076620995788766564674586403605094501268147080249749076487886872272611971467072624298323614221678240613971332226007160017791051917156602436165806960331047987172788921611798291502032554792010742840765817038647949659204479830958542053021637727379631523195812490590298601433432573453758630674271408722440419185475552847809508039321466477484685389790150173617983587524450070255272637356135388084407133812968618514958791070866477384436440082513926218439530252115606084430003849520708777376712397408204998174390437303626310367839954861365890514754266207822951430637441532114965353267957778534139645012870139569589824641563900045787804248114142345879131376661596779079007977705379138027293293067720573230022677720247243960510957917379034756615998533339409987794943621344491430520788996345837733333349187877184478268769745563711727365337209230145939296527913035120323050405757808973414017529498873666245764233351320681219918611399102248177277264724738919565351395583596013521929125427714911440370664020723833466731500466989704802952733692203409036040338756559446678117210230624263648426961796726039455674094382900053357796651883483214405000366976465725434289815590563269555422995215139989727597704701349308271191074204105129553822977604636021434289180170605375741198632805451432237055466250606311882391701156397117035414244217680717534554677007403373846951399289726843196286469960582349255213995717198303243560405816248965978726130359352317157140179153462777546998586219316899345235318664357144296908999655133406939271704381530073602138871834630557346219429708519137621034562096520167778135103035667136492667605999198448951423980530577415826958018340629509470544687900984634535091933295922291732241060599335539849999416585621284845749237056511782173086478730499279188041034637310400868094822467125339256724704404596910626496383860749141959619053137759945112500589289422975376054797817447736745197827452418255315200677424192134938272478294469468795097057269667265413928440988976431853224335698386664082621983372032268736936387388133897607722995968238834563029529348567926751850937256486783642119271880805801555280205508126013847403583309940245702772679195585682286936167888194078049714719728278431350800018957750290723592075457328689460042218096145748623227819106139521628384651210231841562009457271201261212883279551276656011809088509735015072708759636854314684172931658800123145267891275276273748982802762490760331907592863582619891176614786940549383321939373912736146779999287024165608401333725559921576389877982207871041822952219393215167263815774765376947915713917348332818056211344231562294172530449665761849888656775219082496634812245068745378157627234876332782070649464896657193439470139607447706635594490108527551016538219144892474003444524609130298250933443041134567238383812256284346239809303279960712369264535710040362050659120777644825611914860818449329917917785851570060208906301585000596886686295788837937753178877816102101441406993544040456225160286231035533677686516838219210633298348336314234688978694120993455992228885362783371053743982663799487982148139037660516135850666155927465553685254404026524700745120376084630683192376502823339250437475090244850622990033305811319427283979551778167722545561179144319694290360953615913146079456097014341493049276287032577796950566695823481626697888270457432274577804716870361605029897849671499513613263354775859636255608987466342501468824780458301830296709340572631879039355807548186437810748499044186334968305362746417374869160307243429438126947743936746247773267224106861580977560399691753457053990824465934141158910098936655178400095031294676825682932690379555516934747293055328330653609945982551992990763240993773353111187581513229297846150705084477553039418179844848095679407558365145703922742378665379535231561826128423657198613073673486606171025986414523105426728835580694321487309769620354462912486280507363915255903210212092548764707855729054798394140903755018526620080972940101661966168045575395913473263273731669471372156334125661687417972768817968364023295396538093194438132749300752984187560748244869698007518841550988592811750183545267617489477592471438333522214650395010621383622298535474067869303898136467786555384533868302985457271752014403299762510887716332211343047845194428537992532716026797193249569360347614610336696471601014864873720511876311643822539330151407867175286602535611202089343753773732928452608459739545776226373055897996908318817340228902538592144447817860422998212687447502029325114794045626966388293469200910376012125399832555420264950333307136482216331689035920835171542001599397997105604305248384681604796770728336867672885666392735631747283512639940604174681230789962802298830119745668539187230925117675488513648414552994672605906160840401926568769236134953209977899488599116244046080478364461645395628382703146824350486492965666439235867097586961590094889102171853088389171331936756435907806129823410831449959907353485598708452066905645136095746655503418693499354469149777242430303096140638009167924973181894522070402646198401107234882728232988019028605306875111488930589834598239619243763137350834405172740943790929026811853853146766369863896075677231798811940738709455683078787876913577282602361256142096344333246792761974263771199887113965430370223994836348983940881173377841781890272224054058237912736064172817322396632779356998897898336994902648354662573918000158401723668442288050105694607549749746112891853464773285464186111283105300736296695909579967713457921721200873163725928475126204193760338648297284124636055017337730802369936146111016909003901982389708920194977752850149058078779442877647584983623742152246606119110084382727137717716234670491853602864241241887763741800598413276223464124618508061328331812294793024768412939727999116177795309289908002323174276092898035676478766141103752677097919626217118496543511633635664737306503432632372231763107402550167760175403020475518253070639615344157923146904613143715504369130994425225261546893030297705398896787109588645432422523752248571573611321891339007176186152606454471204247584762926249908275150968950662846265874559420170667145213264776504519905149965070745085482529412356493448875702017642351078957048574544180097729569365370376391796782479502282768684394800752478022676963734689295230794673318819962099768284386973960647669624470285119107651299371627411941841380394420477606671544961485881796556221772280884227458011056748852139481582115173486043708461571644848597241618407393526058226201466819930660966590101836692196325016323765513936808197701955443464653139411425121628537767359415828486067663441008599106499805270867006956984715907666021164489478104383113999942285335346558353943963779214334728053101485147416137791806787848516838322944329733642995534297053388126184378749298402342070227647368174507374298408685146348044594789534447412268540065710699175603008432265081490654956501218829259462453410741932791474231881889064913730149885941897823174206316744655749826851769759146162216027572688446432217802488143746534947130526688762205693335565293437506089903089585956848120220956886511071092385862877671769692693808847567838053708775739395442112322090826825499999387601642133357943820179318168835177832081461339198524051671737078510786615333410348373983190002239949298490674190422522988753134801651673119333028176542856915532146713864918925928547616380442872928928351901218074999734697238494239173897876649839617788107469896350534751228723867273731596420968471385819607258358607716998769412870679100167457755713280880968448512298397834521193851876691138879396287124761816723662820391163419396489986615030023021955424117931677682498332469767492472675410435132023596801079247740165501846374390876619351643436487561856061901752081307048858852634018092207984009046321298800097500976840456067602041171497171304071199457395689402204029869907200289852490218736556284878456645294951536721948907026763380817312755217488348015689360756133134638903726914729935310007538502229225936725238273185878458830850415863874826856344741405440201640103287644433932771879078991186212752333163904906659183462471326610665298039385049059471662575197563937986347575766047240881904036490959992349991771788296947244065058254270216076062381288630343122659735360779291219862040902336359364921823427220992333891904656020992332074965770382800563866029809956974382478058294916300658278145366354589360330023508154107583777079405094418951948947917559781839789644952256786536323244558390971299064338837257597539418971638079774413318989396623556733526595867282325992688599957884507748984625932153094041629250429014469762034703058641699742321571063766886663347864629820426198527399387313364425221356398133519544039099855481221463473819439345572113476008437044720541930078099769448638724145552551755897338738259603834048867903716273318016792734991487856956706642422955265602570523842087163170863500526463235904535102329347931685278723139165015253328333993302590890941707862083158073909315725969796559010083577126960533497845359798908539697656883789611524762175592042163818753851242381284148542163733461394231078483385598733259241063130417009423898308270729313616673647576913275485994739515308870493931328889021736518342220193532119585513172782779210193552372310033927891659679504790784749992862842507484262819837096400981698029100938592555265876875019169714115881978587394235509417106152741511524363695067186545862212144889959230759440566637806098886089990288127152565296219105908494046989253808987125655017436386017431060802287275233923869310679490491085367956768982084866240833113384961226695603352989606952163239781568481423236047983728269811534297914633266358133845905642422775440185697914963460070826540153527853348258927427250225112910566176040974162966055498521172719856752298364557879204607243590032396865346150948851668968624208161196984833324397860433148928515689929890309283522860502284155591462263140618517329558693904626784919114621301440793821141181737479682956504652733311635668758068992716129052618194575624290542316086511108019738883366097289149574910935953877092793092632898249978523004380248880228405000825878596192344661797709096435023851494411005867613178151060977424846576403411120535702293177813147675239736914108762622641644643423037124990511735526781107122515053019418965948498923352379259002784891959631235144639414265862516017504175542319422921793969628293875354509398087387352137978012205194359138379877568089257550568237594467793363151377082891692858277194567066685082530971957359840201091872397041586404268641196921131113634581504146072747065384219649649940321892477636608700031603783902141865364347577062242903810944374204658646320174434008338984680472590983911423540117040124575360530358689789238758099175384402920081463292657184442681961785017128584168618432106314495404858878294695205554986387948070979850960116962491228702728008759340745872001109545177186305531067160367232615118388957080112900256782790763346344172468295794509045913879529606157546854866798073491802614392645222372612442946195316434447582760949340315513177746786015258245127826623706310854707641177263975387418051020915716890155445630312181784591341374451036956941530398258835580544057264943823777742376486430694936126996196085230239721048625457278505793980386829095234612968324030787907902402485936244357118441514232284752584487660941155085853554450577129574950036125252202095888393382202243042546158836138669726798646414914114018170001160730048440119439869766084347336944168096645806345061393807462105183230722388971253929270329051825910068225678279339856987498943772523198723619630919953984437086788950561812849840507930483121577982494380035586745005347410468164038196529185302496646348786607907944112694029755465744876815605660321389183310230934456865063585822451164626827838331256711570848610698457136420415373960657018045483817556358172237708737163543340361206770513890252132097071510335815470934903922015931572465764634099161965510297084656022803359399662619632747961919470244383113311850302342626725098602527079284079983269700482002002815041783825895140790951634023702262732677340794080963665310607336317870356465648505372173704924267496939199548146424102544898660861207019000565085142041855297965270540085151422215892263359221782038331566280119529923698987058618921085676192501917837641554030491353690857147466702307572642875879418957008050565221383627331420008537769963555047303956456575527066668060598189232184479333085326100080515471944404483209028798766160869825453781431167219574935885694636173675854430647575823376477978224664355105777174835189223321719744166059770319881168168698893256595745916834131720429709253258829424544455404346042468680745596623630747083756980078186735479529510055560553360605448375583398779069638929663119541870169639148574009104210219830843902781147121688740170127748857718327271107741964565537999231035337320220607611501720873681716136545201119750013047163955885214772067408101043261040155091297217421048557972480631811417506213009939819146861366262696772582275720729861422252957236087849801141201098616124011328384159612506633312788628904060440908101321006770229388968827794616013668408015354325376579936755189374066196684435612958939753093225386196374706508255727059724160453118692404219809992373397125054865536628197869029411959308372068222988122938325513151494292851248608553486123410085375289023447921538103454689770752977083108835561835190986985837598739578581353641338148326060799464233837279270767476488622919404863000461162698809889691257874903732867739250280811196344202566010363877779154495964198661351842242691639715541894229408480626581641870363894452457279139625142604946679392928343215074338939333328253448537512267742381026294752677599963144889769663285480181498681777268811650354240106474438628147638178855719533221720071530143946296286166080282314871303780931882656948356494064876590946516565265794601879113331416917949575775116233064039386091449743883448444989580240099194278449726944014532140169509788690475606072763949800251166900689255667472758185443333884060668713734100079529668792096943896701768193252566965083568609376471489401097831008622558973047284420688064013550492715977321536279494551761215569626807478288136626787908089259513026455487068667404886311951810499082840449840470169263783633382558446920435069152807212285291774910065776177554142164008265361836245521706347899377481539780688083846257697204068752821924084664750959673499869367145576624949721686700963841078236468353312709241380672327574758042947279117381861063857448742616200308778811374345653854941580273412489277445378406948459756789335659549915325279122323010630655653372967516174109133080875538252554997723614593560225134972826885147818961486131789285834743978108011453938249302674940428360763595201833343390092031775209998745873080694114624967532775791991371341610678398346122450628186998797904191339737085780224654906246304557686322802715399602502977156138390726848522289735549050017943884928187938540935663213479293629173696743772506117319936852057263897852981816218145609961432456221870103703468481571572339193645863270592054346168374863245195293314434841105862875531852125197636355212250127448987052738977059229958854761176241752066198258704844000319810252146593470247030060738146365584223991146817645158922760453304399409993567678488329158765285787721619771740414584548942985204888808500024760816408715188498424119816835674337914826809245637965916665005829454999059603889586705701069950168955819274639668058889717758999446836956310369739173927649388482181604512247449407979028985838202242846386884475896649858418295511125421658316719936925235423202732755416149425942737026408810754356557074177066907675370601553272690713041498190763411436556915503500606490574217257828898268857358303392932143718052918588413591850777936964658752246575763570977950871746272920030600204066039545225723479301159690285238693093288100444155980941460926576834053544122008895003195470033823992631003670840847265365745760954063879009691583865347624035584924995825658807563098452674356773582732321159653348379099576421057373552684657187705928225520890590991931053767216892595482883415004248805149046861987271555979304685724440657757734626031693931990675631989089705389479702810664457128029596481385620688569523724998240176635065184559702510813699576131536278295684687469203092642638649913475129638378498136517060924318553467251073732394161136279845159330891497331896974240811139882066296087627804973894080451608163491731749277715169907838454278893526867032445889306588493278804286057542011812741328330914617625795798872179197683702060068321522405596945662095244183125361063578208050888853615908841748721108667448484644745808447870731621169151184060342125628806113841101753022774310984747039087751922195478526624511614171603336680885947593060167961678872558889012455718119664336122658925629007072110054320777007199264977410801553286218414600465597812908289475053520471604102031287193542490725083351360362605024734100365852461256975859278698683496924011575006538997802803448200202634423688746031970815352658277214467590742848212084067319350785038076983527186334639121807123711982860264208182555100393324828135917196826749895310675717104417120931981449807067540622088423816093912116617717560800983742330918170829128265480543549419628376146996270227882173136778504857150696975065111916230599864150175806876883173047245636962606542922236662979842933357648672882336056650749761758848449299656388552820802789442776310266635571442809388280294048829975826273246396899338183033762568434461471342702447856691882633359654848479266957584290495780123355093429589950900081845429260460762198559204727663802639090045130015944124532666223352216387455031560296035765242772909249417268909220390164028611202814985232750707174586393087426297762111117777776798387675649116074528748588206934148100683905064019320544417813336493550992207977083207295860804516836445041836459912288841121279028043261029851321174440664110639520245864466467456586374950769452480730690576998779897585788093561384561386833370962871417403092819928034405360882791429794036984986607092569489341507357724228737851506206341280925518191915594110343659591174944831008361805758732311273396410179161217978749786371292863313843424529153629301865111186021601177637501520712435151078601368021953438818351108878197333533961790985787872779599350353513211241411858962894682579686163800552435728524579446326269182392043916877323036421135418412985393205165068462727777862599513695109208890748879010024042912075945622399427618346662651575862440042351271461655927715036064901866313806901172863751287035372179777016207079021864969743251957441056902108471614370282235613777290151260603337980956188735779881263784903718794991491404240138394419058437047938543086391918140834390667604567469727007314310055393428339010585219323345490755347166172870335593306314626683970087837726158515544972883716794700431559480443646157969680409740595623725635083573695918417789837079702685939327107844613570880502097060021702026992119268140333420240348621143719380194574254635452966914821768830034795365827233537366667715165602690405998798009178241015273857294725380179204803860490283919549399283686821199002704169893742237578377595616096031349001086962388832253542535675458189213760144865900730800958583750396550097603204731737851067372942554461823289365870148857281811329751118690802631662262437087002594029081806139013229276630954461691570786858525336510106730428253050781654874726390708074444361560276979579967282081516751217863593063695803596212656000007357222698867384125055815705926031069153410651066632749452044060659669386879841134897436042074181766174330533425837728934561300425484186265231072647912571207457619748241403483623121560181027652662439867874881118873990863289064709320456255046971301776486467024970486909566930367270412971147653847852756272252762438717017512910906906357287319710376762844278301986748993677736125442014893147437225333674794496503101480187624145937668721856696945722787786786428185537636473395536774038800602926906421959797849339516461577077201152353642936882926372995182496537667511670072426508226894787632974318369111690265744430089066567112021797378851320032325743619216278728071944420603319906902802535007746024563181451949167934920224167303894990983604353919401576535558433614323462631186633258857041188302119553519817885718186582265341739410016016932869221936290579806885751539316150592467536386362938224016608736915773282124653586135844240027064721674951396112678469361875436037386233358547313093704031869746766361464162579886968771163543766023548736075947239628268413506482657164937462482084535112156386008554924583389847058754724054236899326118364001243136236826563842820739350517078469763492413805328042055821642578678554803277524242098111311914599464578339207385287354220643031653240601797366254436912286623648897200156217212691700872249843115708331418052304726215179823562939443932418755643524997864563852230440271841995262642794156796277096757759221119000553743588261162000393300883491394529651660472394202032558972889416496311945206798694304326988044066557707134666483837709518373811117849449519990400780898380597313963237503769429163572312451264233371141132011641255571048011740005830626939038922508352024887977686402040973076710329705766691175752387098373039916191950454491419766029101404619975084045688632611767816660858814388535938889421283634408109634866253493478613652090019748861803062074006650078270555339636785241567915352751264408358863340226610704774877212872969058344570963003253321652638602746553454332652423481714521233308157746797557234976390161735650622781446795569795871572373175978819957380820498029635455313069118069801200505032143290265095071289207625883358087069684494039410072333757830319592657835016639244987225647271535621042733194064122493814432585461590484295927850879875710350631985428968032314738755345108510730860390962043336950066576441287728514504320028707937998497755860046949512586677988902948394355411245492082452894138128474625066232329663733996266507641455736363096592012538180491788415906642339926239756258783146890590728548735875713424907399433481800720735485059014113304497461668736439835782771228587556992851583478479610558985959721052671698399408884604495329452312709858240661261499098757781784421607340222140147140755670954343809241334656654804141004379872703620427320130602855682382581571062178929331887016868890195906812624429072046916863601685201583937825384341195665068888991776804804203341251617570253943575195015051886996276670617735103756574248126045378265447311814515855993546626888897279882590468342692136214450699521891741322209847095819927627090019492881533883937252335673035443217057399724321509617147560239078432447548867831470280438738181009413893254473036236434332104075657472713631451965154621405088819792447549113115129608820351733200644106818960495879034566247333375927254707353426137509449296835661758362808313128027952763353971576322839240025139756929245722394611238017616153089462774956891224730832502115847433539494050355783019329992218533428470903946065159847491557699182314662853332301943835316509435328852078593683575027173869679145009935993051145021443841394048247865585831455663911973405643576398749513087327438674542816870149932307495607337446789665841119283091984788005741396152120308045232514982192596208634556564905817743724667629688602520467552857106021393210295101713148749117692987273663706744715152989580589393530459131826694409044900358995933627469219939375564866440022816781336173776204413237769227304711898812474774317511734948786517164020670536489564207582119062206757115630126667371514608978206137121510764491213885575731046919579520658119809085960310099183822357874142100720610381457316350315613377784672562001807705884192414239231351484061906419310789828095364270030417378966411088964228146780970214990374131433904370698453980963356080293833328577366565831773902690512751608425666209793265018587648269272244967137757185596118089988421549362237948181685702894027336331611768631294663491176064853150943695384136800707068223140275502599872164117786492153686732683757733823592051721975528739730216678307366210535343472084566756546520982707397553100953418684712288373000054258034107635936842725209572339365429251030667364131944207971523550272532623713078465547259159029850116531928133064912901729244523869417586468274374384218908022000778221062476902455884633194289032984301122793634834588938231463216771625063361709501832722103556777871686485293933222278370131960856136821876967227585848669553421746699502293241749318347361978017965859390898633577194681622607227674391074133441277043097194734263315625839975464964281297294479737474146000676250216108642454350642081516713090095698096660854285746303660335230195458060848346728162197743721425910616464965104891669631046333933214905760887974367242918746747496458960238333675008096191445014134156740249451523723519213458829558682979958096908001893051771767486003594043596202749473605847534838618658345195444667526821408485419073278703040373987602895459054752378274462539069506295216884776341436506565793441806831713856832325656952417160302964550350469013042939063142582244485538701097863723150364682859539482400126880590152919795329661066332592537875530992876897129487274079150027717437493578485126727297558805692698593665392745484517593023657360855627987178042640227609661217192481957498719789026422260150170129108249468762158552108874163231009352197559252426595829609831678165722406753105715522305965987583923966721689745753189829755188070663955232911662880187300251098715948677337654026705735786691975635106930841226423335591538192810984295666263223726693429849724042007028502175235399043277860451861053287517861117428101347768479825442906556603588622411623255745371034579947295810149317660726109772411341377614420031469941175800960876495881235992743263293733220128343507661435346967993645441949732164347256421888718693026678622928575986553522846863604206037597846363332295733877018520142181352206946383769164948979954984659989791562699316439660044783856525148628891264783944717745540009458458352326547326595668401501273818274095245395540442484270995271546439186593124248684958267363955242792871488063224248030758241360946904943552298097824381434262369988881357626779539184879640193712314263526889201392052470780545387430098008786930973425219834514491124850586487758830567044188247863152853294012579111887802855052374360592620157541430128612978681567825047436763916758027267515331341247473456101114640880959357660681367403803296917061754570794124061246074019906236955333378322180044169181618811318393039080036046748500555129121018942856019935460908340767972866610827219436583110935675535375082120991526341419516500174604972815321846263805714666328797399706122194058062334014890600455509143106348971712889743436200551041154856210937931006404076418375715250210297301130361587577919608233811099968651068856092685330197193379388413303114066447603719257622311967621644719195407872221187268899499460995463811314352236527676698100724018610411275533367073781409247122448706371137128338738554600161782911338576957102036084949378988502489342946157836218508695641746329852053115727245476978660817325713343811612126405666011056071142102187566733087513440251273799139542771666905156033472353308735814140816174377226234934104322788380850304245349027417140232268397281335007094778184915011676159382992279288791498242269865084434457712707131768815895295782004933540684552716709796026863006083114506627630747103577510722075562335894102561424684799189868093693427410496326087358474328419760288984888830763844057731586140755210344712682396435639944148377362886923379562219966987312432016491559334812521762066545366179281477692081471696212327501082492147648760755797215874841272267645309013849741350463949499234933722089835852809077576936278060806871598634404439963790304327685923064564279135492333660636840154660009424588576624634277859016526688795896334047711535149286005788012550461092158445452431713365426703836524096378745710664240518132838194379106950697982767059007562717793094613711111121538018145751729776583549038897952016215850431064762728747198994711739017767357921458547590654335587592631303979044123615070858900811903865310826661292365279501924236471109382804886938299865148242805813324598150913675935322166309144841415050439979668875067174738015253205754965682411369590508805637671928757735577507222880027682659790252269502003048736880804854417168755750891691622406701866607353939560946150348148902080139301943913326530913571028440337083528156566374238032408298767546534546357819282335823695850471329076424085720413548434516332474556072433836753824085359204134262274673238820113473071906222555764806009067029645485441065237596375993701870303791632817961976219902580301389582029072099617760515600759831801652366050664058840770645333741514423118369079607156090715715354474847380972895939514226079646898090904821136013023729374738362910160793069207948716774309965665265834046079010886427123696052573152656511217796979400388634086179074794823666503017410828236734419991555927931421435019622478416413208047834805595939766557322587027224401723443388884582417662229184164571890188274218684345577793196340448280348181155846088494531354224834643090335053891741765134158489872088201117344595420474745368097472072325908970565936826499908789690947387153360379372283900896298056701048026334520978839947666131816561998634932275578202868554785001072259041086310226448990595700142295326868453787110527208287148060502104994549924294320574116380209609012152110794375176282593838507758085417054204143203016965984193684681200818370485086523635871733383761379495862220458581336924392078567368317718638001030090798492419659946306802274152343255192730677400479662028333649008216626252402299270789355082908299181841181659177968293821342692278890287826782957075614114901395763594958501013502063758636719930731883892220487030180853887970289504133025741001783611677608474102029499249910990797635706724926086554518456292652298244974165999168304438214749333080277595417800147398193036171924099432699020996383720268099624719226450723652305622307099091227670654408665905852774723026833383790079626893150907909333419627593534216137779850315354453920393973496057540552128300925838751667559513850684850567446539808621213944015432251537179535575173663897455691911535526659630471858128943916184807403456987368503608718476666424470634122945771338552748561219459880033240815455530077209059885510981195402595148286425921143342045545225121713245444403409616582527514057748417660978020521358314780801770832969170077997273413033338579684775529719503310408058514859218703208176865123210883673546179155026040304065492820038030181117827223192858531308369394744378006547853753336560809766183737314653489191421321795417690281346059084923539292517171770235384105702365888617852092576881157882462218531762913742397191670642856330105429218558395297122198427135045213668875266381960385129379349799224976516715999557702514640192547760721093903555975338955806899105331880738982621671011719720528547499179836139385142777349052207932102895146489201060785159329590615153979388256736318603317151515665530607842319837130905598118818506512222951060559369144699366760132991281870691420789033881291750706663177858056588661070167102474776534589327433594762004903207091202222139408986559326885432365045104011792989227599903867905373071702162358744187283450964634624718000793606270838998445429769299792494727400950301841130232573934828510395600054563073507103431134607664139984629715651743939652177378822859005814497657821363726392643711010281524306295741185599125319022504957448271539565199744377488987269139804598963597582917927049752942158651356930518894026028317209435965840432817281129213524634187837927443581391890818462545766810324852245231974930989365002343704870674257058439238903536546104246313861165820054724824197789069122105394870472372917933983608741239354513294596418644719516051135740297634495429512407408575106067001247441300763390695092601222366217174701289256242265117146926808495364099997271338391971299387725208908269302436140409616546424909495541391275154116943200699309956948749865347282026971534046466198152442217182000629021842065233921981995570958781481720749357601919868699371034972670460996957402650561942401176839521737740443378944691744555457605510904088398823519221204309779920725012872503724540525871119973686312599304872527001240735337075299143503981095374418980046579967201228608113730445173902707801276639454131130550725530358059905119252312037822416863993594449326116571813169101278118761055629863517507007892120383523607771097670451685241263233570812291582207888099540760742256165069196650922368935803444579941339954225378311974364348927336060315958083445537088900887432324873496492534632846979707011183488503767667730568138460193536265213544683307713605146591824387770398997971935753378812390580695650291716938996235193221826612750120420130085244699924264920127481335740299397999145049655002413177428488092954797250872677251208754795926794340805977093980075200795989257208692497936104648499410435330558515094975547564193286973415851323564719712446796841352679270596017676918739024658945379397130962479142168933681671882097202499424461334640410341820644845008746104233007622405476830011651372802530290510181432766041956363041553441856907202371667898926922583444016457067960128647150147867020291877716548933697634253995943366184116788027654394031029644170165373633863161689432123285066872528146975664650637608132591688243155222160061281852155509543764048311945019561879225649445692718834806192340943228120374218421211715513169438244302722323917104560451598123479669994980356846678892295814711315973224900390776691889043440293065415670535600061743686978831526545630855151802071296469018135130012968540710673869175089259031155527309164230658580735933534981714687153848220671427666411487424468859675432511599445423675490222167041741111294082955135999278988178421483066840486532821398490105959403925847444855868778308672894600011867328859378076859149617264961391803301573510092032384124268428455311811790562010667183697244214633888497969316634911985890639801413128444637032264427139969714207545913635211442047627530691782840691803900313902076065459424899346528553344305829904010182842706810121337005294446285051269302559255934870834162419766447162183461816731056857380432599274758953237718337220345854117583758953886158354467773168668121879363951451521296164890233970548462910054000311694892635532524660921147372655113946489130121226176710179539217700637664935246915857581627807254310772475311403834107920203636790387286006096584247721735115176429741304781679328740709560558936421109217829171733626842527832658901875324943424351969635319032938541444433587917973179188044039339042593794989950011187446477045591284803381994398643198377239533717486083431335411606503949961619106761863486785154919548356113765253424980227758817033875314477033501877177974505693940811745196272248057440968910426857385980647341481162732866852093363004268822022744759327844571022280990541623065075296656702584959945669318490416891122580206422919301880981082393042743157593820996415063102137731906961573672090137065435974064989162656763909676895936379980919354156033576549404300840317935365875048015445108370854272851995488568310170629806113801751085586778043332811446089462121159869531986565522510748101922723592914912528131265680155603082872160983151645358393435247713387349085960120259154729293701753203920666175429994461157980698099124119476223873536068353440819376562643593101016357573953917785189947472741395042855248776927245707100317952685731147875775332495840696613747688179425101777895456439332460665010254450722385007690129278934771573764123393871530516825700492821481847476498970691412007072825746576952494527029852124307699035679385064885968140136154423542008339050641275983326752212611858622826869558651805783456497677594256630287419887917851175908307082308272197076063387602629913011870893174317511781733260835760213814134791039751271049736239752390769082720367683318455357005992211005010281014112171746648879371359644757741521054646596778410786055564367941230033423276622126370142164985265901427535262271180274806252930419457286987151837987483877860499059299475328595411498951441422793655979017496053006264935947387840094387339516459139317241693985295795084480245904508613295407325995284928200855481742972208339562450858930058088287212880589929073925092861418485323027549593890355445722549273985091513509161648214286091511467976686323412933432543697089105751422773313185198536081911059992341974950099477004004497029663999377756634027340149137418803640732077947542546906898873968744313589279085714816161752245363845697359082268400836275984449596596238666956857451761996096507392184199500794666702567975862515527342068532708140830798091685836018215309398403625246226220733205888806663536613595302947203154134207391710097995750089750044557189597443243444772256161718816971005688482738288866708470546248998216712728502110768203172267997982485138647964699530730231399432983699026248915543855122395771770726890465451452137570143952387252359866578172011898896639074595797546575351908620584461783749699710087139479756960166698818494301004483039262293649033325161530796885643479617596649679559625797979879554144136546895846058966626685754692170003762917759679492677522988836733198763473873999966552159057251878943057965954702352386132568272743167960749032435871358458183054244329345912560926423254438008321845501322692636663759049811797706831272542404790967931411339620948428705582885552259424879981196865533426815449336350234014602967278638535328503136873950008548479467779516345405492473842700495878632996783295722365655502259938142903829047640458523758967785451580942236205122448221833745276962477044133005600557262458193822954008235151084835714771326657416625225880721058570077568472086069078575237613016010063472869374089786835080927714629447289612714754119249229396465735813141498505735558343661932537811506632323148113719109374274722768558790698641796832790814600888927035501612605868852817513821773240965424760576529584140498293029743137967192635212442752109148486117945075381313691409103484787037128892967596074986979260415930367351283699103345584044465984393170789109145798436661190880317211053919470644061732340104310213673982399065909132657036266883357013758303389049883476055342776802074956375775974695793424776291284451109579672344939748173424957582274860368089343282239258731191641074676704327211611992993770225528271785991910943095879046527741457945075169566401729964371726329460650159761820515269883402967589346613146112243001775076644842313571775037383523283332616754388924145271542610798355004544386787550972200068286754430795336479600870004736970687031375874848876311926921657164947846678231304264118148295798233293155888270610863532922242749336853533909800090479773031854157999979662026193920794779182608907930764983609040990462041268649121230757869829488372001046931922671687101661768210266867866791694673812038226287431699492190632243102117014232292367396343119324988068834089507829052454567940488589957252574879958230887469274974359529437657068374888133987113626398174765818557503611567618885860460905022726522513385200996879610148345121207577903625228768043838225084249761708887429197992457552197875916074773737055535830692318254234631085066727523886088657818858750084448616614186324425964947724378141992644139960948919064590830291368475036082382967699942888441598884845095987378291756228310030756186783891460869199841976290959677602919314864228495290542266652514844088038896629887692030486382067193260539730992449988760865211315053148290763945553568013613954064469438398998954575076554878160347227355174583026850670859054530604934384036195071276254836759559693717676959324915147325503413190384519927347804684206681065895398145202752135649477661712724892690039348909507467420392597476699820805690864256664366830246775832204779669183081145247322259713963102970786050248343998181051841136210630541534527897090686595583515792379351753223302605989669773564153840198228152710781224047887144810828420097783136611699634526646574839560813420955375689218124035603228274391633244318893603829752269952376169922241361237445133209405055495847836391243821082183162310652918748284240016360787257935129309167375057297320839524398799722265609866861560021177726068253145775527210861728737514299113651201401044725445981544274399538684111818484285505508208343371887022425277964591329020638737312819948540217780254400084743854953861109954615159607495990419590206379210973639634700776797319882686736738011514542310139251052134179003932102167342486701214285990101457932026309214114383409825701248424729341305002827555687899863436841443541442052585981737818505561622556240788218266648677923191143625656238136244162184049413411426041252400721275302576535150872833287347236756298392108206320152067710893923769859438947689907530343437955984895483158762514018582713115860176275299764499376281992947623703716980091070463739793668596751486333788001247733592509477854579960094000371691325533397498836223693507286353707603703698113736370600618926017911953819412751659992259392726530292895832208118604532243246828119471038744538310054841908441948157975704261144224940424310394681371627325642847002357431655584443605237034966780185019967970187270196436445557342690425028258622745053981145561373757315814205401492424965446256617752054260354179322451848671124258642112113861153093567284387989437729031548675662443045774433649485021270385445412890748896803530825477893443176032279432354691298726377001450895826323706092028627913249286220519577513509398752221337155493358509525258103524642289372059311159527106689105633883339392364579804912453980612346653185197407720944930224985182610358437306881780835216764718438741160083448957630685391582097037656590392697981293009474053502267765325171805458087323955605293831441195474061324693576023454440538510272589818716325326905956295222184556135679825928863094663174220088632030681073481179696039072054486202831433158824362754254021065700202038770557741829089840138346823216414797759148639726527003326824158553080383161324083225088794021358441474811723017429566954277571257422622558016310995033873481822882713186121567515987601686322738313849505756361136345398214891979304233674482507396513129370066442674489999931337558238855513541797245596617945372258796610158073318733774651752871722955943006383898999190009149533852075256177650441166810340961931693718904601115417982152036032833010322078944382959299127097955395579680467806680287980478121074650858886476454611875713218465167971839259654584734484236752246034941256348212431054183345025788279763729260358361192877032578956460388801858082714522730701445274480714965420205296518439842090459397807928371365382147136544101111609471623509386734491023146742026138297877841152155647753145158730825382943338088677992440597953486179992685326808505025820569401414728098203177806873641487526680813673866635714442807578579760447502890618872744002983828523786686108095946908143224183831196733152435918450631988940918549238189131685801996275208007027269348932094787109360504469511862335060700028703548151949096534135956279506690357583458563021111706689711403519145280831929248725798862085914381630704417260559135419728805074885484383570007891167441381137816007936664160420739538328407516662669183312288131897099906697761121983660475197690017669479491050805285151764822208961275807394334274432852927992429363658579657844455685766834392196917270141059479314156034294403807004174088424358044995612815602268925365520119452760682408986324301213440083077945416774156319424480422367270851649856689071487417808545088559461756707471245816070381008099441662309233110043523290885948859148684764694379677474325449300682072607924539140016473352469326135453111173996322064289064570501484663745032581222799092142185793747478856769408368371650771971270363140234480505720840373600064854778796216631233598666721155831377405116047069649895267613801761885226144042250006510645171058239492200914709118726594815208178780161083976724089910523363921234428377460406611624706220593960171036558487965862491047932230990091048894545662059617462564510527885514357902109249031432655368478651695999632159902840196854005709366810775397176088879740765343028869855862504672564488732202824356099933133727599879673715154935305705657764093513753148012413766904835597284853860476543216926910636966901193107309704887889201935445128346348717088490822231330719373749830145896313564676320585026283330879275219620913171488055632614610142656653242721514361293013330846452369435315114911539092085704746623731739996729780178762729809315151901878524927314860072309562371517567509532952691458849490521163808939798342234301108526887150235631681662141913233577698879014716882687729594508405242938333523264601062591034852037733029858751118870194141267290378478733039999009377426921988784800570202524888151436012951296917691704506350111011800864592431143460323145071140841962602215897708814994930676313009860299269355060103453798095123559260990531567426840314608561056801719610012484543525671218639959577781235974082407687403528708961109588411800293321199184613016538703376350149979422455848217324456310395335873461341352068941387643297662481429074471514369561838940556174458061902985675024531508210814030643334353834594076497711626715460447847097906544309750313043748144637043766196567612359053342044601217855131267174888479040216793598476282105919530795802710139710813378865780515839239967813766242338989133073963914003373981439219669437822060260383111223950233527735354949043119826846156203021182590727106207449607716536325937647553906363434311133749026165097244578446917485598354007741261928440123662851081001020220514495330926991902930824458960983661130961719009171079329185482433682709294526201069577964168637564964540649308515402989070728309725923822623425538078956723340850177330999742750853422801228845195819844686354936044162320952247546251761870999211814002745861617969570941958599452570177424777980337047934506531481975772664304216669733256826699067842798951032027223561257711221929277027949755213238129294442615852172093971364844698693212324270103414455881219606607611650558250147858747831752827419315961321131837430292354755634035579900912107798905254150655189879947578106797881850288785827136351420934947290247690329055438049771216193351278919927674345381474252510135480178079250148249079190657509717747054635492734835893783472056748105038946956914471361383799975222242299019533248354681638463310756848790377636947915930768130079009714639523289612915889780747484414066514230137179935760776843627862183049529036995258630169307567248256559953316909257672768442243845141812263625913472592516559041478890792887947722748735226197852923023012066986963879261199617805460035169775584749630362016349717647117628655585865150087573356525788791150456824261767486491096117107978256207260595451045841269366799337621464089714177655250442133017198803861670617386674944719507694607826225978892060158950319456366613719921871477129145573412287905936580365630095603832018375940333658800298241803903790982627050758304555812368832454483592771102599770449828460506475320231179953874617336581947729083507590599367844092584433269071911729930751214102222039250395420181580111490222577201225261889200444834572777466949119813511613045210333664491360390020882766966227777071406834513803728412907494844357364429782115131683417557617945033972751699875852637254290771472972581100614846355977343021353341710686069491845093123528396483574721003644278395648442451816940987702074412750311881008376384633050799101037938728727224620614691122050094374133225402495760738227778595429418139166342252475630588811945442508280488478847826453553610882433641942217043561987210439431750547713946727142767013219632422600911709707873883374268656070518328329484705490944820151633554190075312236009872922431670927471875798857134330487611798731858613970712268543181434152155312185470711239871521280670943660259307052951237562272262092159259892280878394536176936124682767767206628081326545856111034027559088161681424885780298352230665375224671562627736667010344917287312598567832238712671501709292948615524846569736767397982608500788168725956883881611470419819626276495781256677987916618760172161196249124023472944575594047713338331700569163280476823358330837155986251796375192071773962623349624438569289743445665231196815719809434282400272057422606333219845076972566542159473938272971967135349482570912058482097947411219056052408388775136474584604414992211590362084243317572191202564273719612931114389646530545351699731544343214398849434703898625641861117720472287985797491758696685819013950761248041096748399787585601085225855173285551660232938571912412495952707660206273841584714149323024875985953310760060219592213674523748148353480988444711852633701245980061979695429214641952721454927282289926010210877995101536145291919955119581522540857093402137382386866687024339321085781514592508357273804210213301707418766406918606977783810722502756728164653195383778087652762128386445165230130554628082595875478049696554337920918547093147588831274654817698062475936897848676883042986085966771565692791171781335281173680893213473505077349437715066520823439210890271602859318906200383786123810908467162313736514932409225367431384273549389044100034859830134896729340303016732222382621706213699565806751646516809868306217971882085672812524385245248925348373912459913715091851136813821001035970167543181909476477528747176472508895349792461388220973650028917481167262392130244097860669794056445112957663564868344694629259472733732321430406447769872327069833252715853728649271063801012944784608732731539560364190931043784890639218968674411475295407328934806806586544064846851992724090435797643482423831877115438465544804631007461776802357206224882250277664478249271955575156702500223834132286919423488991808472444398236527893611112015100203747934387235904676234220474843289199041559594015636371428286147413406001318833744023891205380780239458032796715138523545106702757349131014338279825898497557555142796165882601313556210712687130674185033018251087876925018860239661837878626642548719817150576982407082716886412056787943110153546366327581078540554958053521804865107726884092330140277383303270185510004687977985939128819480049386603711367709909134500203092204984503903970090248614316241473872261590104960759773389885025330741026052616157761924735598822291669527328482269023784347318397602093030871972912582175655191228885587530779027997284543207841644214283786448385364447867565677444568753496052500488880923819807605537220255342115707964528935871600798813696765488902469792280354592057863272298129677683117967898526728368194669859075085531161403563614170497901487693161646070697233383548663567605845525181348216669346270019045829346321893142448319278478989797776527960811182614891920759783670430564595890496840335728341421211226388692203690201573303474813399339761360608865328932769265277038350537189799993270767103843261731420731040187181698843908885649825406645802355175309136274086527950914254442338347624412684477960871463582521971677738649907989572722805146785589970204031160972231357525167195874330874297533213355437879774228029893072417745333020471810583247148728543217792254424040768075437761464453583486112970432848610798331962085232973955844274070668445912874043236254126714221203475973514602287530547893614152188549463748501196195371062027886147935313430635276473568153479792961533995741420569682802717555559997976292142400367419887201892255721544303021351147258985116812299270974116604442609454220282737491218708019593546419596039681602603902330986270361809665013472306336201094021728310744108231803461435936716477102907542635408571224366680568790861117189208085636819990637107999939762422799415051117638796657730121567906523884580498730162603479072241668471050710172948571736179945787760427590561868361002994455768090819426095829266446383176921689032359234986205531628228468598228084304519012817413893262654147499297886448158197374647100789284131373874642420919190182239509033068951868627845832853965652432105447032429091821432046279118224444495297726487772261593048314915747555209813894071316247073910116951386080728802905483366697228757992544590894643855058605284853083086475407795674430878600870114405522247257389192379241067498437329414977150049031442702818423219444062001888725375299253630510615299365805662225419374783680884185673909897533693547156305306144336688831427298889010676170744133893049098323733945891889781469937403425669381978431790247897955605697707455619733135725693453388234818801660737218454727910687649619855624663400890926243956818293378110744331197622962759083417379181130613465511874887170978207459532882894596221917100124348276788856358475174379867263080943570254601975637565062566355811181910132166101300749351178467184611796063697526019958763568498603152892594827771101861283195325179435903730382286518170179736161833646328645227439897236090932705592174625320084023980749413205877250579249246927228535917840058987289308444027337722332445970739532646105020315707892975802986376789845935119268033485033467872198899795469467748220963909102828358037730921475212879705258375128364671249648898337831035124646784255273906149175263250726434790238113741932590157450862872713910665973366619573102071504075761098631222825932776060681583887492601700729453731451473366318965909767599559768950661926811322204253723756651565524338936546411352766681916701828304404287741385838685655885134241623286689781985721605548685654285063165949248114977677345550669379628921455971582245575577388060423969848976547183375761556735012848474105284690519778635799016732689384855597113485329979640446426890887673033753086242669727354559549171220511410598545517172978339350042511434469631032292922355809650558234443714126692810734529520970269972296947527326571340255038542570276595259072337993983505769974559937766802705382356321542508839228851815079849587202197525717760273997743783947877194595313507581026800105876938003923389989338576864395339926174359733453219453623742637200411716659009292869370281226734072149996089797376040170546545990043371438603601337241128859287280716198704370423411537865451135103828301037968522354339783706459181085812770292600538971804859821198496116447654186757902895651203803993538573759090246280327716917909160685827949487615104812881490984553431075892815722948812636016630989349864364809708337397577823043085953893222668385610376542343032988850000163668564785535549618421769852256059288910840031079964247503527806214952042222284529288828666444220662886416382200229621083690379846120087711790461366114934972674592440141801239165677556719991467556876162553139483806243864160035897825445452239570696507295795724754793814480957202236942282605013273816882157223174861902010334259272997307151728203438044896957380569796380600727800744059906756262612992827073248846121196037836677217571620001076295259591272745276409601711942050374276058649768653568382998434924471597214607769168904365748685979217039141605240346000227776393438833872832086640512559560151599321053276276836516842872225796060225293607756489624373170282410617904517465835479215828909462547449917859496081958633004991930124824294170220558687970980782318386181240914257663014875433286291912132788776657436128438070705239199540450781267843037702353693087599010942708780940794070357438900277038391041545006917870273664419295146379054979206375407878436005107969135833548611244277143248805379821062459338882940535007331093788269102251181807515956660847744445565265652188526366002843403283574891845996264334799318590704420318285795491732366484857228572366032947627999235055065828119875369790230063785448484381801288229593767327506191563382783759222067685258315043677636183704474114993928266557342225834685016288258182771228556096875607413781646687928203365079107612906677395002252922364569864098816007006485049594300469952467590905296622691372033787349190258708051424186063258112037277558165948182078159125566405065000349156103057902353978283217637239671486584642226647196338529177936712018943042184738424265330223143240760481836857251060425302989411029588431009931756577407780216487688035395648549329008953552351717973266891277574903282948512977097995600544197021859355301996638922462770373490058917145589430061566922234536470022783680239772480291183246185614651682233090073178540562442804477366580766779233016558886753417842084083034007643842512595909871839223375132323938655081391553987400897999004746142360024987877016401373362679168438025895291024412005780267429132702369486015780208898157108547192622188088480967489379554458307685562966231213410567459550819795806352041349612250820387994538178501359242185118197490294043608852039801759373903001881201927362321754500001514733298831520023442173268499522190533390000981906664404474508711663397509327088042294975262647252998379149098038531724407269358638409438931322447051959611653402949578091348847263904184920660834169761155783820587597228560667990128515315275500636072154654573991824683859466469963762961775216689733311130783228776258191725913637119953736688368067498843254410193541776238264851970012042636559586943429904771500685198286954187306207018603480324984928596633194500357623188469450674578240477211318700913396870048914189138009258973016012767322580163123354091481084933389884546378532268091215108826516376127634183146046688546444492742329959846617714326772336639154227595069737068496840342059697138702361690265869186970339072177635188126536966521774399308653599967815675579754950554237080487599006873416409913438921533549588768264571063867364430381180954012415326649453807377284369219976702309874582425786628533253223861593064713447479626046148041326777205287478429298178637900706500800443219616811693146054256360501648609831024451735893085065087768438112012101400674253211359604723124935968464629825057818621600599850250604179927929876868440819410183846842102515457170733280974576329308686146892096837770587969391089728343773806417513910211228865550332754612583603977110167454751665252547828581966352500397553569561186312641706405289007570644164876388670530433456538399777826193408056872125433229872339866533919342971746254574682552026786716123129304645235201518440494092112097982424692368272220249716789395312429426834631370558878036252422171257135511319203150334138521559522985399916037967176084634400443275276210009415627401519932441636302843743773268786878304484333325014898012706499653511758008817958196816584866506463336813791888516172897509171475762355982320772099003081825143668486104418340224997376261377705419717397740957061893554740205357171603376666340430528748520816603609773214180117881144486955801253210129037146849355724232760476433116115354965558189500178968456512996065645157837442446144689844628184307371651366475809286315696135698140294938338219936993152486566516595947196326973696586846337982718385830198900012097524899406262183207500165446459064325212986676726459396078784588210340919945544490565267293988024542367926790000211979830251672022950837605905550338783630089363162105929885721545646110031549825823991857022786740687635284181424656639477575541920767616508988479000977998873436633140970569527287324080724909294063910875734337410070003191119975135385638656575726171274350356340620342904516397593489671420128704018083267582685658030364505769614199131830780817985038799126521045188010444724984812612387921057765145945944443530861879316393686026430853094923898309985260796068875189869529479768723465247826163871419373517495796392940805750207401052617212838671704707636746570395226803742551784150825127267810579050872298627469776281231920750316899497728662776590372458209355736259394774703578755130707211372344258206439074916605461397649846343176138227294473897908616470098477152063986749849034579725899661737360374097055314934239159855187273336727780333856460509099107649017573501790280855335200040416514286751939886797950152430066151035989538847808387155979500793747092539127531724427749004346518404377362542813124877654461399535543396242665201297081750552573040930115009362334073165805936875304667817209690997439835601845712761007393351018896994694375276541318798205373176230936883656258701687758412163581948715412307145560129193804100176048982148931524079894830804632365157739387071006891901388878581353740902069707555016714889456018648960078044602344401494555263336943616590717062532691279863151065620734544223493548812485176622318665024779857682084783174772539592937625437272595555552931623443288646679910574271223494187146751282201032246305556464460450396955592017925093111872664284821112882777366168907450612134471350471913116255710856050425542075074092245015129583351853969697366576262316812639961326641087872738514044731380336798873780215253438715030651758354425745878610773513833902419078386607385472525667092909104729856913034732733604905822113968326240232041637517081916149901588814902195449603174200868826053657763189943658919631279963381352555122510809111575220564837035174668272823045608934202368557655320068323212737964602084141603873982402448898493760813323873986308544476226860944107705685594507174113619335956125256506243295189647963535579496645130036325919915845862052118163891448390479775729138920507925306115168337209780027003186959690766869049524688012964717124170921845456760859017936929584143198040215043638222147646680228693504973580724902852815602842186779052586314399772553847968902572018013733408952998414718185307823118301274429269722756466341785246991145592429770626402495279322095790144850344671823608112866767585295226418508960461582980841475369824003140741502203361468682662084831584734157706279877052198370225054778775064796164624257266657264789498500647026383862610486627071691213289446344889160734321999127852842851463989584603816300631957497304587559698682924371863480052396084065433718585920779805304114470685191180633642921983414271082401880588598306641480673613664137390754620853587869446191334036552382992075000529852261738992559050199518000613462830388728643503057259848156564136698363251957579267880669975814623297402352765416772899078561571840950421505695588753234982126106550120124618289994819904607672868037421618825228233048609538658491370577671632158119501981899892369607563650727977133686535613690239436544023547276026788814636042787001014197516842613063292197737153293666816186703980597156301221324456481207712738086685039105541313624368334355825889884975375842942838084677804048467828990258453379232586357041646787169459556844271029818486991898557013702982084239531064269070625268737682296904629141032109111430243544946313545723819761459994483637942297188532368180378231367806645506170679538839569958440818909657641870195364543895369163961796464221756853608806262611098070785614645120391839691761194460153602805293308135183523886620041034556891887896610867529283791705952788800572324380900683302283817017540637017220768312299018917253387736488350008456079963525198017589365523314819275343164221330696749561806050495703446536604252346280790443075832652365334736965834317893812727240065584037880986709619388758588262480952824164352904321808269826872704524762336605309565064235989827045624842913229148272185727053103625697940639459044900284896708863720182336024590946330452925736640205181798018096079028683848878477625336031256595712107269006120234133109790059690403565766948320966136860590064548648807182257346118110126095168238987031321298068622283280494435539598077679831075029583452233172079856340510822752944203435707786373306901461364958217104512021056792930248897563546219034311500714473620738692792494770388601209945893485322307149345704200731613534897351888060253408999768457320678455021173177786558981260809273326116206427293988950410213952854147310891742970948737241659492879859406812164439093157029904997213424845560931672070569464604215089008449243685394599809959506064286770474162701384506004787645523989752058133691761254224501387955523153356229926593446286842138757043321791513262954414016102530280849367255304728794131814189469899768584492643283999890274021668930242671241511462787439781873833045182651621266503375595191617777791506107550397067104422697803210851022088305606844685923962451890509207215672161782515555474952370506522775104065441843240489354220144021248903667432964666003622079486875277887325403555843270143715967780708808980042411098923594759374050096519927764404582302821683941353746574830948176222193049428800531673203140696770502929933493047552797346983146456744981796391108987506490884746303936423860885910049100486963189356799813084100735790164650242646791524943526111822742784881333662949914035116977021316841120794824518338918803639406909748370074593054389799332431424917412216250118256130197441997979096898779643850195913992220386758354369507681319130146832250463784573858559933774238596193416206044439630365295881226756381550780932970147668707825773148586628266808253096542223494595507975343215959248690042355163432611620060089663812017333271170017422416820265176030381096219670711622876891395648112515775686279468778956357180563565246068768617881229145227733734449637780625414437538304323450723688083118896123539076506541376958997624040760058658071043024786015382737175040148790783463403352195994427060654378186378588944578648578152108013362657499727134843868328155832993951207988011576544579977789524963573188402420880901816600185920568961622425887830047623637845994427716098814199209818437588940465557500939659551776957876686431208206381509960739158629709730902428534141247340038960668134216363710213028392706428182689566253705506125817278946073500208914128483792527390981345513911823698780230556188647428908901523484500269535805448975294843212314947088067128283588149310044244481795142417921140477511792333436888676572053356345846839734558671460375107999513129488036540748774314228703585361525623277182823622246138998902097008464095560286300368428810741613003516708752450879892944539804145949828975350598921446388552810884634276180924293994070568935241112758448673543907351682070542884059932577721729775509201506975246815188157051970907445054137900540154624181331381279159714461998138288119447522315209908515110297203970773089128005696054071540268977762536154993312353132140174754625438984513046291012204257262390643977084867275546805202002589005931331111966475459154176363189700777984878445021014273672891646419390739727843501900206321570259375648506245778420481872089794089842787682082209304527645164019011685399232024930773339803330742019527290971101533658635283584534618481908500356633721503053134993335495287917258290118980299028963322345387820782446040648606956650018358893731445477631575386293823402019537598358742628922228349199297175397779400539728693320055396427248430230664913851188635480882253273829733128356512677541548107722772802471913970206163893829152954204692036669112081889661447020041728121597425534307645864247483002919453549556704486127541168267628696836618934957549118914784991420128102189569351036842449413210623153190592707680822825387916898861801379828285787316660870747785604216952649801327363600346899319936157796284634930973671407540023017990477877987726115869892281326896751866680311723887376764592240002398498663405456228400775408160511926845252453683458781883112404831093636765942109263212313006193780161376889721583145477837344380241669021438881040053794801239533994368447692538727658791488905883825190845643523171996998230826497325933923128376257727297372006241115625941793904810455776028223540386441946913430690954422472691762034192367961826398833630942697610859692210377619362921594796842973662129360762101947484196769511786976816412684827270676620656727825461890965948036370642720855696835887504232168412948464417034251203962822210209507911272186481274127923063287688823962191350902157331555759867797389048300558365974617720472963523741597210840590852982474567832200440662935612093214410728597674581660373120497174627825245390237276991437601495426150264389563551303642082924427088919283474879862815484491286330180321313987479813726737489573607303239825249399333724048477875905630380852466478600113266577717103444872841669580660587805368325540127524776019149119408524126013581484207509576181171874637134853569805754274942519865712487836669392052332866162587819156561766135689073269005395313022728530169928911754085008902438897631581655635319654038702581248738385248977769506873447821715257345809667048314677744304830588980857946612138795328672999969010049743551135392921439691561660372793871273346675856038879052180842520396607106395035304277692953234001072100692784368268237668771516397694805344741997347130965558507924504599697640487323238789108476727258118371343469484928260043995554722001760063699679032060836487555745755797189345923115109805935732431526385742429214231582847853721161454728678982133672893110633885774300223921911656823302686870225421478324123590040944249543807954612806744149002354288949028874347160091919936482653349627081055951560172580540303634570477045147244721014343116249809569149585811843240020228093348567110876921423380972774633272467335173723525656483951595571665993094392361272816798263183899421338859446775068323722572751392797460581413616916144437568001295955102928757730026085750721549539440842274825967935608713367159985611304107257765982573519364693504964856362423814278015255737299180395289674911101755029264913770140208431403658860796893128802754986137343244336983236217437804946334282040633021742207105432658205396885161667328022207501968760542185830541923828463503669248988851410092742298738576272194302212570946767548888724921041167742051105575383414310471566026216938744381338808829008144639819917231084824152740857755000351065383277402963131400810169873304008073021775660751102833160008520633071931284108359150775474960133877346295116025440135817775344477288256157628361178892256946583985044591835823927703076494339131869648197311121023405466647325218348638871529556871670165840344748642160956084926100212449121424171949263254463168690363193785329880366776141288789748593736101537760596578444068988481438829227792496802855479413254149094787249690650823126147587421449380646797083938330318967126721772274967385532832351478519425871604758865863638190832523908895509742128827690433332354348684809356605978394421987372400916072712908916683773537807005197190455533380532502203334964792534114363535489107290669371844861120287650738889528099039624979747713162284910470643658252517811848224803385329578924066678986113868140753954714084151690398466938470257086860228546066669575753509292859922718818147829498448416405468296126600660135477250684603527076883312801923369607437013478451077355257319672935788299444889240758295234006851862943861688007699219358619826588449478250232689579300977530433167855734313511998509308750399713230569648215450865415498447692671100285968448075643427974763189989166711570586632085122435117792033265866259920645798289194949989212775108724538630757196732844829662263616604350899892541989150882273597176576371042192097291223188527864825455115877879431044093760983140991537988698502366862037058848795595991690193693561747217203651301462003367998307758167130286055308313322989357617918536492178820699527803733843690983092605933707599975958093617789221703986625777264608959251459513925614938062852687206688227888673149033140454106883074021673224132421489768108182468745546486286239105061330806335742824507306149605539383533582997450725971875472295393399612264832856384028134099264367450517095626517096102543113079612222066440095800883008644783925934330728893427166480932204803407273987501835385451746424939694121197888930600071621589028434389072643547860217798686976441128257249321330261477907667827377069450445256715653959489722138251423538089918921082077216888872668190400521493381192317153865672682059593961906309890014323052063706088414072121429695039197135289993243045043302146807130565787864004055643696155340858661718204108741962227233170438781275380965842517927147111646286042451833464754796019467652481101696946550873670018949088565436945872326110562436256683021378157675504037681483059340867066697818460019453565842877191075382295018840410976453355239444429062142174429651157106317623011022773146272268429751485013505324547185073430394815864580237913909258836886145862468550442576280082611443110491863431665631566787557661856612278541634705520254904437974409110387361522109735541012315910924669879317869229571497517148177653807239788251356143054379043864209239569983804672796179630630772927028747506963650273318273186419142480327522597555588140241695717248849571898278965169685053232376465407476045848395754352532153566593671897225719451426944622970817164959125603805647128084565084452010104785328818910479525120681106806585768306231980772644443327085799249295668270082450285120962825829284131073932868434572780972534198326887954765155336075472007582069515981214410999570361082278624368732013579902904167179801735605186850083689404730238068842615253347748599640679962591160906734433229503570892947561200391250174393829636484807258185994277602911548330289496266964591434345591950186678824170186814389062945451679955543242755775209831717785673888252582577466317035127207128189986698869569644733409836871581668252866396981796932624194551557572710658563887865043638404722590096564794463425046863329510455091731813344254107840279485348031334772517504662120973239629409482470668117161084391289469542676349218553329337587941248962876912750268318760654989932578320143541354846396621333200841662807952274266005738331763937831162495235688624112186335257450611461844576120480548369413593234432136405586843702952612522317380360819001815801887284481643474175686152290029373401843577304612913338495230937402905140744135127885618639511588102419137841730750157481122804889305726839907545989340863454167131576185424281222584851673924330159609179312498957970632944108798174568949430860267321612832195954957198526764105004227717815140958805402560436577476534636241617231128237622319962851675845714440690012405898676795723002063377214846950717648065751850241586359539523758245386996752313021700082400420708540584139914749239102812858494966072825408860842289491006103872874254401450850702010282885890724464792269363123070605204482843439881268512102155440862030973312199416423641419510730986706925877398106735586815061231145983978432310155533873226656482890583851990095780235728446562461518308836054099832141958664128247668178843673469351152676051519561478817367410139627865229665804704925595376941663841464641544920205216619475823403842904779567293904144373721433137674997254686279108500204976018774299744565921127837644259512473199957166856420932744740206369043578075189174946084105670647116510024229386075465944891657557295016706122780591903156661529139718987142637801130948048202219175946519114530539116801395083951152318079045359069137259472427661932026525577327276595212954847417105515638127982096288361972232421439001381763089103299984562833771933151126723497516256831118595937465943707229079350607249445908542434696385196132971979523574653914750572018908037399250905047989809065890615283080491009385803804276109359234721061473092274366262046059903993271892796970831226453294703745827594580566606419488912520263364565067271026510833980221410709277834747596982919459328632592691002839829737948892214061098324627902655103700622687349259986533087767023334403474151759896117298430373125419052648428787108560221366742615608171736490533669633122435134937667178905693521538423540594031083987053552202469212781152319383229589005382223486669795172779847711272675502101774545469008520001068017744163348671083697914443710820937983525666216896953377155963038412260338433382122139634036279174074468020045289972927877778451533612010708396934177339563249200990464076294275614680017017275288460337093048016203176835580863678094278975720703568957253777600391314613721496074050099628091551052879000628052788317683385789063383513504072146081524115152702043087818337024977882814967975446590389856190892712884724381513844787270562892631903900643603613601744078694933351891440196253098307894753334923437109224360194943265607457653031482951392003103993412815215500850249118877200849690354258740595356404348259463706669698878077261819573559972914289063394710209074406672851538902408923325357632512077950392545975529078720335884175116369037891589644501487803379872167705715503488341056935645794985471727783658129292508984830258028976886690253711813909211684781657820570219787673823671196032686551494724081352501338713603195342565890577832064972620585196625147764161344596140919936113444914804565806526443226609426171251184898848208147318465208411863105413030193428616002821828438720008845902354126827855604345255202085351218178165708680259502154149050982181284481259285207518147769807894246453005291185435669793865874440510312848345976235190203435931098852331835580253434139625664639847310965230445870896002760855483684883468025076864041730184841636111743756472095210034309210013459639136917596772747951747833351295093774961374077581827948911252980727305663892105542597011823898755669896028333665200913729528701866862808046186623539884625443718855977041057936554572766641105357239885852748017326349106973181149807225156032206756107825332977894129583871675383281672003570421443635971445628016805858799966234235954615377294285733659349741575086145990198916369765937364091712890458797106210367472376036480996996112738171202535357151248522421249124449126882887653328124213375006166541042355934161528762750975648348903949531898424309381060425054816959297909599257924829555216202986746524424733012388664501929688575100938066339571184600308230013172294226131578928984955895925062839397186421448455961545031495204779551609919832894545794275649002679525687025171527310130047040894454014501231553377642859178105373839259796220473150601209049899706371248756797176191589708611789261847451551891497134902534984524565744018882931142763334199894797395877261640942901870014039964407132741492686467431470260938215898932524490607092744438134519857187642638693017250596712080804475412140245114344564334655990932380882451188763801090841279522370379635625828395924154781600070667966995562475033095932801080984590014925330674626181567609202551519546018950197684488269295649162903523899359154780049869687058569888526486874616723560496394966843870308604522636166451588970703988105591461617157967283862071822311204501285446173390147977754113985033432276776953975740080182974485829847166179277931883043915289685092922787389198859874709382315551427666807816381292125529507432942536852808309486422953946170782331940666859190063122588486790816906983354668293395473375245646512344807246184424358570532256966443418662215795753308633121864719198841428916062035850458557584312518293893852079576629922740685868166128214128662525124999658788375519335984796813160595282904837296826160526580638217208830768121939696430452926507251927498459332824538103460592499518750381513112986645523242559044423207237369693273135672144638150490560871426234949053227128627403717365188540422409513786177535273343838640626719912867677130229018988159524685388574017520006094579334247113134755354836810400603046579348485829157788518734513826988955746215924901900904005305981460719614931469714840002563714945859315746696183286605997794223724671882170239644772125313834552038370993092433843715178822810934293548216023337990072802175942654016463053563692862054618759229864299168431636804975219951384925450583559669294076970705326524748929159542773100564209778504139198716126730944502588868396167140465595439549335476939711846597280994437913235350672652577276634771496066041156748402990674811221041659690977936977405284521718163170341333512179101348947281553855000276699745142128173514919807989872982385622601495361440991057441138452740603778081758087732161137879202191924840349482557264093736427050332677777133968666169776422410455874328020338255292686352651234002063274624154429326013835552451277178052738481036599066871404213572028271016409699215070844396008735634754260355134649258051478013677843166966133003963068774500603319762823337251722113599525019106958797711312370171665773649441633938241632112291583795983245616010799626770446607435902667884279514781881850709851003121795711137055097484348327231047411839424651072561041021560013108179038918203548873436093799524771152497203157883193325207747400007328422264586858109685387362650196971767613270788245066875072268326571209033152068896148612234454476451095385666656086924451521684538132281036862337839137759000820033276303659774426906258222438213025521662758771108913172714322060146604570953786397214531173196930593126767571202500601014055956138080112053280468872572894954613349460594392946844611784133874442798065962217591324091424428041273374033556254921183145725653918371637235894181512721996953641358940259198159842987500122075191300752710372253867728583727603531233752076583370774137543145668093042064957436556315867669555088678016809529125120575735419987351204694641626588269204608559354572778743887539396710785659564288276134688103250208418146582593543135296215341995101195137584301775643446814435394013309967828014772158118998077205091320989301878520287829341525313996448518072197718954194507035358374931902760174850479413170050144728763464580550262167891109828450908737671867846274166238150691450804915099274254396771553939532003274904486050278345071629905756531547230424634250631499689546385160115214893607130538693612229516540516137049625756431165703748886303891960330788818635904594120706131932783683564036757973264432729810207340836807018749054129287582321615976921959582230962942554202600454774315305872656454219479877876616770755805396849296278263619744452909398792435240777610114564415821438427736218689274986756465966954391247627431709975161032076671701449615146628995821954540294034088929847283171043891173719127915433356919947370522734906001741523058740864794384592337669648751400121984758654428513174335756739440024229585386797223310815197218709473609637219725337467675735402438675334443363596178910720222162717470114538067882337000401512543477011198718417570902479945497636610748367394534091638057580738866672836880945328559191924890198555551499628762301914955497801907830097788789897693145101153360145507209844409159608141419614915353284939349956397088230804785573010260827771811496336709624625424215552647324107894340687361454002604174566397316636450772317431420933293502437850500439715860535887968273274194080134564825660783950742046127616613267711829319291478145441687565781867664116074327635160715010234600295169978536270841314670176932654753979377861250239517984648382798365575017253329508776519736455124532700266753932472037884233576272102864796023359267698083542307814187124812459371067869511212217375848993269958543703139028278596509214041684726151086106620617512459125929442221811559810379860023772606769309573356380832255398941698944176033022642410638275757073073276258783491911066735745688005166911981544133795717556142945629584388478098997354345927330193022846564780092945211084352848824850743220675313526373709948796663351619761095949842119294610781901029996484073633465874612642201365143273933307936711061322707177277765305169171946946168803681523539514883697694245737727706237962896109865805763695244727951445476560266866208663104471705154650805547339677768755502701574665260545632262768144450223277186078636840892393584638338968570474330007740681441452835361873937950849899154501918999351761145660311785181682105981515960907229848899060374340448038060936022000515163765594866933796545573182523898329608376487253048363965191921427847859552353673418987726045820884931679327237894636090645114568403247767978522436981614193220586663208657962429867568721282270387766903244553235301863041912531745266629954798888371338414809276561449601652044857075632447034847631923055250616786663439108835829891571863160804554576008958335128577167232576418126698617839289377035125115943504210713145989504259154503326968856148216448900785150510445948300986024357564375235317643758278528767621090198168579506623061539362065974582831563085780179360768283679545556460762458725296144551042967768416759323445279226779561783086075238363747698972188786018847113516051943547818488826058604953863722885183854047378716034635354282171955925803443519322606505141383653314091608461490660639558102016740860591670088513095885535199348511949281574844623980600172464910784672918262077425845340470600082817252711875292308389934049560508684594880860948268686809473973731072822319601386801147473234095528006979013960193747476798565155365716063819510971089300371588274686769238043585184104169265350380523471755103489769365171919469116175459321334479581353306309497048502384757138678774087254369197202501417100076821402038777962447005935247759763368278248652054264100002953275761615578020490275801279623705511921558482667014991478563863377664578801358721501202921481518929824796095821826924989329207097938565633928117056361529649845107060085488738012689305487678515279383091230931268912860295448495607127960179717998439562613646132418244373962066703435429472034773600298604207454741308418032655162893874820434146607259373146110596013889080197554439139447731084431547207757894497032065841588532779985398141113855458379277886853082213567979764613976064431984014911821689482551232890339448688884600015071668251156018300817825050202949965248763192769524199847545491977936970873643160987561392657457998286741355168716790280170669587293394937867662826173864626765098805639758611938265084649461788501266296227187655784446683181320824804223682652739521626873314005505434037912621144092855786284949991569781558534736820054713012865279032352713854696090040167788802762551924900483044835166354182041909162011236642607637900548881966152183979545650536233958309291407085476030595137623034269674765213130774388538215082431058420596588832946153074234336160907799776929571653436159904614321320651338080680576358481314269596702964983341330395017328913599211361129620494268561814067148378670720896480626503391438508015025513283483667219639464124401445122115540023754919137266800170862287786954969245641755469429246610940564846233812638460988172734469614320050749106557137995697104906044361346198081109199514513646561725793832057798288929804795760855987395356917620545621560887866756911337123087084387166954267781474188874548009312011373714872027357618851183988222845893857746016927218819391955430804637291817198085181421181382378485360054932838001281301778274776144464537549612306188442603292206351754533510668119825303279963308950428772799287394062081198227920581469353061933824284109892911862229525388131439055960405950282206190102046419368497088980090777302538205821610243683426857879076747871057491804780744797795378457601313757357342110021213954428028047212743198784626896313121915772802471351706242673553416250013554743488916034687571532265812609261583003286546348286236537444399995571845569874892157351667084832537913200179308473817540134865589232378811287263504457562355286501518414542905593886709443698128699834963518541510471175986778123484475509965770988827598208559855824784736972461448818255431335887238875835900241459354799673494452238143345059519197023420629167233290654215081700523664840282839314142522980174935471040973371672348233326544029479569264786036360390986594655674404846671148952159958825349393406643112831190949463698556511410529897646183644320927910219257720217504856011206464564146706892952591454271993493452949039580290344074998585502073342097591782171839619817887599727095480017503055323923496120226977971451936907231222101026776812870443346685614845185746735499129230043944504613112466097586715732997288494486085188494475495893132316053991989488014689741391608793713083297385285490757386940494828491151794467321530365068917432550575344193721624915624676000128667084727883700784998100714011026234563711214809822016879396415034642212863179547899829150244423758687752075194138354812685187370290597980071761605652800787954694308412389620348209395948238270085769687391293786900910249858685913777489004678714950859888902482283216079595808257717390518470147278400493848212587673032208106024855573595433447114463623285978321097511793825815495751228202522838417976962488150850473833447141529135240186065723461932276693698773232674137567122361938023193309016387577032889746065147523308399704128281386461177828463374722914192224272914017674647120244547489258316859726815518092220451398955370717954716183232530620035879932235055072786934467262606398866723805359468547502793212411837576086591563948454613401091459456933153878905063795913591572806589411141085679073763624216420805485474544345255978442256863361605558942933836437406295287646428387447295897062429310985559897935648125195520174393696253982615352701037195276546604242283484218678263634629584314586856657538010889115573628677182641358475444012952049870241296904681929683204452067961093657626723731097560538300694620739986434964265779580807327967487803019919106445075897113737229882283825656768816548842753234787708367047922437997513602230876604793238604101696117902138774981263953420556552194666486724997549959275770210970338747144887656208914825251757102442129930528456582427395746620663595069439156283005956577516296285589241836965092017089503448044006895794074984594886383241433012312175925641321435604354941721118258771108356179793692113684672320358031588338997752421185593114632125881252553205827039238666051212245701173495485030657520108317316489053207002405351988372514689411220713139202743089313676014079287158544995271976488419980930038072019492541770834597726159339709516197959184643306201652663614882199130473332297067114761391925668657234499057148169708710001839135810928534080479006668722125650961869522694636787654280788945788293528713387396365893446735638169043208472653056308187229210986928164091086850051677180224385124012029595383224547305751773866122962587315838606186034369759559075603076425894126629727524501000826918262517816237219963505794755592205493512301407536844873589721120487524777820053513496366246398680120836918469051834243550209264118336801817675256050896916375039265805717307115065742176723061307665315060966039318207324806879237480503122372945953390280101683565105395824220670821456164990452285040814968619083709530499436371280926619667468556255902664773721334532684705951350599063806491127588557075221020702926607735235239901881769988773238701699402989611992603708881613225975692769583005375142171685923110080263086191087592097262101381084217364041035265223059082255590750714300434772354008752612303542936028407737160344239451538068872850421246569347044322545183815401472925687492617970721250971998581693557369511149035951668550105616496157390535121835418287398559428715494443918376382799812267143738016628373695044297168289842282130184253633685369486534074041327014246895339251411813983418657634724765879366905067560854316924080675180817132438148721739800761720802080862645160365291151618555527853815642606923130249887126129345531652158034265735894739567026060437356105121031762702700549142613058111382947000514826412189385379430396299062095167232854013813792109276900774408454634052403733187040642137280426645217244303013022348469472487203832547631447525810953724679456946913958615479363436667272606008864587931041534977897902033538291581376315209389153695538813308115957077368118757678528542169880778849404020850011256048218130753502266394014422375803561567503417670020713719180196950537926170347905657711067287248898226181808507178769503455540143141278155504018379502210596329697025900096181077505720612973795051256109633083087971785983218485328567098543351345227242988416113694063894718548656629972262364462723885382044891828839009278346534645585367571423567322723800692739601614794282490181961399993198191168145384884522729724951634692531096805356125561929796634304985253355853053638419440296773375370917847657125515339618698623678771985329962520632970020568118004131309677984052112001347090111719618652211392815147941634208238222332740928538439911076956785238946613748291428620736566306806335941561533354627328961080734330082343381018919787759399664113271950389500367614634514444842937406875887314565282316053521629783660307056768750276315175667334776707881942157415075315585818939243038503740549356163072241033780346524499042900528616207548837199494462137624025843287879063731780863417647852535436377635927974153397265111088421586053833054851807982619855914607607833629810886434995830125164850095400088399765514724387944046444467800427753610023154317369675367064151371371656463289658458658829763504771196859074534861322840896850095172812165854283750643117826735322065608284094230239047833021150134261363448882395792519738880211477715880485690724586746797094108519233863640358664614343527784099342685129897271260052008130945947740849729581553894104454961170020142318511128262285487179611974035867143348026921455414033399469503261043093708186475465888045868980975470494737142085026130652436282839520553947836613875892041685762910088408458131695178412674928681240581758980256860853756255532519462151936536982113880113043539563949520888845381724951021993444235682169774769132004891881016573210789532645951983860503778318361095596281959794180176946302303291037731455108839092577252044908282017736431471429884313294246158105342945186745797950297287836006227008326136340519379661416118798372840061016159251031197664029797530935304514840847608146236587846702549420337516478915386678776523856034237005207290125828523674446129314289212806265143325384047927293175480532202278165432390959345162639186673272001208842198202621018292269777525223899180878597827309044163387075349216345527737948598682279672332600110447976964023252539517912594317923036567748749081209286223916317709813121469538663390705444079893381459860083223198201765808463032304567575021329168205887590436240538747950594209702213659013091730220270069920116920308593468034352259907820017208553778616814164711978920456298853782071495004385399983428136043527741631659304900303484084099037279351761478286646647727012775211328355488727710637791839157296203144866943439563633982806185974277677418596671108504937282633398577569459737630347161990483459347038877274995758326732316769247275463789598995293486889248680479192350142130552052181014886650221756752064297807444375187548192673735720372616671738087162645729015391697274188741728370757780564474806914259365099396042304976395999444206433530879253601701772712046853503249771371389134972777598566516864518758062683401075899163834733932450665918747073135587374565708755484699778088522731857819825161935095184190203063427607795887261800926970779791816192065274709276615207979320207804011758975414598560477241067815943041028218510838252690421763398701036538550568105677700008928930635378777991325163944910236362570301816484768176806559213349449873719878117877416330027557518223298046865830111037231429837204524160557537156761695601178905114776526754102295972963858731406108617558146317455882359464216270031376643324626059881324260889930869992063169477656023236923533254330544017465845851907366242032862766918077477563124942541145546265820936058221264126429884246407911758817662769744800103436728437573996049477205908922225683160691213540509076626360893680409491082723431643639147263877022492981785356602003313329555197512596178802896730729791228636544486036995192388736274355066664869624371294272430253385012381190300120924107599268585586730911442265971477464632010356569154951495931587428012713203508447433133040671528835259315995835605476850015459726976528642404729123809422768952275841066449393727826828315431550936945869038197350972200907731703689101228421665092086934571453514342298012967847399805154473901811040985324200408004711084675041893076942515296625183059673277559468217948210693341189833250074565543924933484070480728428411543764863047005238643758274204398319162220719890864527405601414013891847427067630218335226175298699594337786622013822086205729112871641162573292681235108963985172166871695474121489884297214546690666762909944035418859102499981632633095396384231337510633575806561224447324120353531499049723015470686820647502314276824090550403790287621969047821825499373123571795358005603233350352757318650313010969317399315319813018332758769808306050495115310672750389329134458645961685414142984806128187753907772880636674949835429672804395007859119878751866004590031176537434393722178315765217647266753414183622356620598818263231048293424900445436676650942985107748279067005086866721851929115556635434219282776500018165543959887048827898232151469177019237511831006342076610734249607097720693071738331466056886481456994962299364366204102759121242147571133658441431968610675261825055913701970419900307335431057583434857340232978205460215110037867047522226252979839398435305435603195282852517682968973599268103436159772238513225257876965988297904649338468388185883652807517038788765103386434012336829088976179962129132985492309960588155780025818268088880552866633168729699730402020821862698510975036593042473240991819045809210269588758231283080435681803474035310721974843874643833563536836299883881743515380834792720831924264965118450050985318482702507841972614440405541584384742944510182075545314263194670042626452405111476290041045331389058879077755985936674364848968129222957477751217649907905352580729434661543710848878048146231312943020728373980571699851617589165026681381944414118444989975433426597793312038078259174058524550474584553236395905081595734233942939652273250189937413265557204257528637063620143989343406169397869608449072333312927201642722168802969555680006270174264606967000523104619308844040584026473757211613773048527564892186445880703162451034732638709448086018571352604103550464202377520597895542509106671388934259751684773275759704599480432814559492892246892424106081989546347213799349953535337864338148114300907673145985347358982519190294427894781718476463327988040682721381178136891792912124237050543896298413741194057394665298580306211707707746470868495112642090562285819541167671784145852693856714700394726746426899332038780384302135654063767833124991804378257293424473605345394451220730328961479676609018817925269132919140331140952492633989058158846518765482494963672768511028498531848213233584112455140523730561793217596755132214494503791735145653519689094033516844608390451334776648104118817808794908220646775398606970836208364550534561799174212482465343293625311313040822244251197404636330716014123192912604561325076144505403257866404120157776671404880364706831512421641118403312280202007976228509501617407994512118957618048924330502374191418810080784398220758668641373270845688554937574769548755058682353328471069543435220052274462894144951501062622558212843438188741644457981875050640231103364633549062899716194906628758331117803184365491941579229734936917141047988757013331412478263064609116064319539183758737979576050660722097757145158450534370720043149016779773832048265747955188171697583032737166778305035300777167893511416177128231679873029615397751583877543312108557828944759833525254427493408454467117680030002071722911711298762694954737251607070772240006603283219912344298804291916592763521521172638119632356870828471161597131180798542451450003588911827279620267708142681156277948342558080681547878866556909210419449101516896753377048756019347455102792692599473324324432329889302841500621473875936169544407129459894815470946788288077989860388392660674454607438338393612534896680899359662818949609900655276784495224845200521463910607523859933660959928678381228860950642735926115831489247059628575571243582332365151938655586573156059162615169828858477520953245914187141200846106352586053253600767466498962864827152716589879527251758050471029246913778396372531123693572816114372493161942912310107194010419914845256530449535232777577808769810867409933209158455561163148872130681172998996773594400122728301203265557455155062367607227564183953679978836287514162271882269221802189411897213433639196259028373175822203366907999284929827761515829005850011447606915898123987496945939365820694173305505702238879098846285957814067005840538096534267190407219441036546656930833884761909753907114109339538301538486200228737672323741674719526639316596546774137100869758233007997974798820596525062908350910155910558122073607663651096133734015810513049402460045676460871027734214888786497394683913726778332217162338267418608144416248811705684402991564227722317629532416215553398830183707788866764425998853913599973059817142617536092877203700143701946652604383393449681828161622174817085384966434073583322888247650628593512396410523172665241952312786921871074497562786821037472016482571968766325912691360433655567380106895469509003034998885722898843353217072140095970898244074780399144203758077369388447746249123349211819480175332991317111526293457158566570982449775688850307117070069607961268573868276839671850992949185187742191043855979594647843752024399957097680045820091414515618042026547010839392785632188123987423626032334264838683429449524650893082658040340418616013116460783102098226350597449717593977447048941710232451255619201448715152301407872645057945084779524690544226407404108677264599820884649045364259101056910393149667779104365593917478954453934269275512717471125392786784041046185924004843792970510859701812496947219429622631284149765767001288429765233595902474762293861755017055610794045806860338731748553660732260148454999798062093919633995871895509270858239936817262279455530174803085869145283809830394434739442861717284744615672887572602840873989027910189979255806861900995013695790766245564507243163619506852140758516007008956125530312515091385675765418765288280937642480974289317314307371773356199139533586373695036848129339071468071730231881990784980776258997839317748067266991885231301595990503703162282676183884334099619496827735122194742318561137377817118530529181885988098644201205052300396208248793733929028205811885706235276843489910801851740742369952470068950788651997356699904398874156592730081786026348304966091744604198885551105858062829379900386065275198811517411582797594458211353447927504118761370018867532218281627549368011215735046834036836636420886426322473649575740974457553010924800652736243070612918141718478610341035158233398552443637412708064174950935657213226699282902153968258913573471359967640123012183884127222916285630822467665109143665418739485502266784365715529164759811690139251745992745261376891139484196140231722350228723162178303181504699499580263480502911954233817599633419287370668162644932604957738922041901952342201868131978810895430624298946283816897643850057869109927470448170460325948061713858967103096198936939795012621100258254092768513619603417920261282934424986863190298973762369333417991592189121010086368583575908928879688833280558974083715000550863541091895498963125632418693599028816259422284571213530202956173162033378650729912947650092126493156116388946275641266831301743358298195038530753898084350162824489018011383544933785429063202527979520695031602911102727737680893154664809852351124051186254617101492334412239971899283386284264506396429511331239739078921318861605876747724315882400829445448510393270376633959553512394622669257789341676005184135809384970502068897449411198345464412726205979472810447694873996752717029556816977876640116042300750940000664701392082962401395196947453355730201767018828772669489792148413841468376886113704317888103434916548592066159431382372943557340018047173220986147830814584672225438557919342245956182387666704230248862688764067690883372681015546896915849596378606318732658761240082434795734784668017774746397704906875957894231749341076640242069390185361494409636064324143879053879029419001701727621237855729764439257410974819461479257466028183981493692341212336021240495043009846089168167340173462800655681187927972458826836192279355656090861521432353823705801977944210027441850456447849347054469221555312671903797457607384808847426409791078518070611395824238362507402545053525680929342304664933898196937468325057378341442235703170536749525716496149168882824017055468011200139259426244691572129486938368623349228723565676619738402086621831212697175596596418256989602873553445315893938845191605509768378264813246990784867754851605151703691658672762038630322987543967624398155203062848964130329435842354805193100454192774478805877712261504370860048555785364222207161927908787021824672573211004712255215709762452173900109524945186616478256397748194579352585733811411116974047955215705110070851501094929624453860954398166850520596460433729692290054895808853296682371701546284305067476823983714711797951295466820768444971754170797753072346296995327570103310134578446961537762525389142233512181780866021870453801164398603227339080778101616127594946245109858215695111684035467467260847140020648786365118382828064034909349532975324942734383330659148169146299758217172663660150428810776319937346638906949748161042596811000547890778025364220887170300051519263803373681602780808984491663624810650374824648827688846852971339189592195425244471891768136845447754634304881463467430377753543394943359142364119872739960289463148782558160472401175988697469810296762985286502705470343672885919940938444172668054257950541276115921107510125311124634770491487153204999116892570336500056791898089962569417264917977554141563386836103354389661686159396797017057858274939708427696719107526617141495790468236348307079888781835865264764049821231563011176946047236223824242498478818027607584943508889134383089773974793766611651605228949858692842462871055745691065688385655695806455651055422125965594244420763473512327828681985079995174420505642870747077355567744790308492705935276108930202621311416976909417855548540939952239467507152165549229237129561149698735757414594130270083297414305093024331480920312316932088104132072131218896793053944222957695120002174083157516806314007472273435444908185316980511835714035084549021867577471359301917565642701057474161002220797910076503608592424268597497292179570670969515560146729008070433381659811204312945591947427563045441096504573848977245319137759236978083971927012474669863704691598321961645082612479871297249299096442689601157235926761565634786900606841165181196074011490316175046567014612203466140450840461751145654391665425782730260878760498729615354696871676115944271941422880538327096661111127573028771696091946859222289571968622785232334010383570388849901142119716796039442454775898585038288399172769307921151409335325737413830800887849035391808413919880441592924947702236905249658499741633824748911377271946235170932529017036789124060620482111519317417512770473963440039250551114208278396685349459817263200568156940865419195626991423534602227755299115284264627829167127415671813374154887712633254554845040462110571785870110271093253408028139102618367532154206118243856745232613692129547212174019432927451522099586415384908003898968703485929992780692277275060849044209283594628649487004325248420353047314852859455899401354415878213205188527564169380316657090784063263416826476527277287416824729776472666078858211610533785220209570130831723534566498489047626302729366952804414096136782425447435389013925130443706385410287608111873708097236796674565324805793301771789404103685709702592615129356247093571451020707963264576370891632992632036111393090742973456934026429143576676925257892540381739319698310325950232217706141092201047558490805903142355751734895776460051535510678941968625161158130471458542017423907212464276310184108821958147348461271310151873270055708914593371567559112494196374883660725512148600729360306693100490528107199692600776272998034843941728143926219789290801574233731002674325251315697554567861919614239280589985387071992511671663482490252421622574436076230500218845266088834717404773200823880510169906934833927056827972864063398705865124485222862511077356406191647704087323222461220280101156964168392524474235027512966235106390044649154254760282243458692789338499857816244926715578532223860563793745894833360346240041708047568869807209844685155726524248506247956239288796333575520653610802299711530775561588037811344675345035092498602567131153304452350052808094996220887403728196763743944682780429259017259618445443185562670366482874623701443321289217563129051356206245808966399671980712207604623091004515316800105574558820211267057661743861715830681079168978374427929531441165791682721668526542199871946949109793472785534930057718193705942944158201409621353626056676480958355061981087085646113431784559411610519669111802102447464934958232353931804027282096128206098476198177185342557177656858511949970771752846432687397163217767470869538709313896947184775601466817148411812016273327176573574938906058082172366939805812214579577707561349517743849911313649728302026207691384064886887155386559008314502473610500170073979973035880439304094512025123581270669993857064669256173375850395345181272057991974212885158228534356553990641220327834392457230527436140466212619306175199907006497267569018602246031048500554667011092220213233762125810277067493874936790996206767132384644474463492144459519468723155920780881723382356696101870312396287090469986570885860166102479235814262199458544152580630602173237437626714938846315004948960772189377384422231811806491130510139955655134807573086024088087874036413265518550137693409977065774390059020556717057378300426238165097517390319937907886059570890822082532582403541301594462482115494740988088361358557666424264011879295377291403855357159621033642942528891509975495295033267479673770934360731551827474224433792034835215950827638630527218682031326273544939683537998808597350903037133915232636892482400215398976809916026697578871796758295361365670552647323247976866474115757760806384244620349910358686070591797693592387423308229719010807803101882319082496427226093324908203815675351501041773762730039186848794877316416210347942464982596610220675858927112419496596189258080209876009809626859065918014964409409579294968629682974342676525067524375641853788236357288548522805947592616477671845908719652036562417238585241359435287871726534172782151537302555730459153997948287583130082451792549432531458133003469932046318278736397200884712686220611575493538474823996755406906724950000134837515426604656414882043210774801336655141015506832293340318590826329534939763753869406822747807524111676852764329323829857599692481942381706061829312289431658663257365162919646079603478682044456981615954189573190703798672516603936610759197943479944322090082143102776675598170537066733414294336716223388309974160318033670458789376003730709268378166450707228431473041403930618561479541589239159017505727792468685808058107177227076185308146735635315613987077346168443663151195521612589336653155026516948735542127656579674678121837984783194639662802795542600936768515062936972940486696325149827701473764964409979756149657165338821155708434806003378244226355959987086934859910498643961810210942600804108095628633367763842362481482434631834850755115910406423587358617646375666704509041011489965562501601380195406876921847081691851541208683918961452683146933286677652917006533887278727315933627089209545844725014735985653453049042309251751640008504885974126675743624072352307789486952619067118657121199453917809723940028362122421709710976218966548022029060116343787369611983501933519900712090852835803867837829970320595002190269968538520824583404580339436969700869680712473370927625797009954900405326382570112624232864952485819076833457857816069537170786225273431333482803119967827031737969897107544101383664277674323959585352425994859270245289046493529829117259549799717747924875269372681426817972920900647900065697169476780931079800443423559009572875998635925126142319216866613278884671976044388543742023930712311930114652357753510807590871799157063876541465075251276264036827393474339900299855163045184691195397772774819963710745989169274693145578855060159165262990288923956702906048894024698488911193448884185012804483093347642324272184095748969667077703359879986059614692976669103567378629090709218395807165611321060567677861197328758668268976145947603358053723116601244320261668746254360830356012976531563876526306876310241667888100798125412235874763117658885014600648761776107854490868427835297876592363956948576140870134589808897596317306791236048691986454857449712625988436277732006939961531671147614198988230027389375150714014293359585680725001316931968282387134708851526463439995448580801565087055459379815325635695589745850670272038759681995138137261882282033573540950874203968931143407542952518532401832434943214033378933611644462261128788155879844448295831035630362329852310157234141426132472126809820588335920924855082719344501359322054421261661148617354276169290351996222342904713768223435417963893884604081731732765792167899917070778908723896643921318597177315222434923243177535121694485481263588372828647888608570816613471211521139280341407125751796671923124628028679054812931799329992667436156709700806460784657814788441427120898782638490537594779140497498686912751839118624442755176871110645574551794747337400177381098256498723202989880539941902120972123189148076623216181022049717522451573898429785125712918897523409201618097331920520076111764163442777476279258756912186840214096734460789800266866037845922640964691031756241871012729827941680561471265383387689245343070219153666478622901408977555155582193045484040220469365087178780442522403496242585277258829131510957222496358560183984363402627832783394773644837875722795261709218701045058713468278886574598603845852138516732468722998957717473739299150894060669464609415327816027424155471248760070827860697208711602687434138420858960672258580304108837443531597852678545977685002850065407090817779649136330558938559834261196918509416880410984158756119116972042355681937040558508042158716883937823880712792504227135044061032907336112277124315948451554868140150769454296613897901303026310933075416910647444228956090532596089400866252041662782859217551200454656546786889690944974176633137147077021520898131818259877328445226863003576840055298354839226302854254396296304618424543260630419100496506839389803331223421012529122143096185807677654824442355275784380896241519899731350316154049165922263615597333664773876594015107341808227260694704829787457818953811627928611416417083188396676706584600678829205736848259162085398993827600402708659477831054546979962605149811309275840750661864666626794871379342832180693443888993748862338838505922818225868847954306619965408067910311709327684675424391175631588392147610638410302686956750545231627703792719141236777289429979945005394671865134209729196793842698880250423104244418554481590960583818465168657576771766678277601642780265130452385997294477897746848087700337246860267176473516387917041134690364283071678867602549326132509824106591940563079953491597094198007634205414581371727099439105463448074241867901062391068217856960840959646727341580847196171775346561864550612674322793358638976846011974905265721867663828942627977809994329153921629842099895988655776472815218546919066512574680462236687121210469438408421429629273060473620401919338439879981251132956844451794108790678611218611386401404645095195130277956930139285167933762436500987192052462533926457227851393890835584139105556363041811009630997751784905467817447998483269658512594716971344718246079002328604583967076006729019802187347057877955241639644453481647544892261590581594961465203849375110850573758079222421097032102292194140490365556875161913825713941108862778482751036836945693750752194978533014267239684050886545980451591476121819803931760528915449575328094428100933954094793202717106082162886013426335165316734669998683287080765517582888034282783592186743087195029997873376727612809482294332025011001128883587629626564041890327145036708524008738776649599213079311457094558221114654818678625180997388395269137214349476737507824776313223597818752547031314391356955313679161256827189384833962268360326450987368520416497105858414101189034596019168622468272233763490920192513933133553055526502775454428918678574047502777432623138352244608539514702083866625918412299844682919911920133547340300438301760932405178107202381693214856260628062414999254278416328670135660279062120772230050391500618009643851560894378608222107949959071537185413185965758293341861037630521914230311064410190589389297632049429658676865433471845982722325400028235847902533219160794132316881009358609822429895093865588285377104940671344403403243159293899553859315982796118961573758685321035873864582344617430623033673537512367646871464793973631914940039613684862226526826173435213395837800358915049094348841002317963711828626203150665320977705575087362775878443277051355193176146151363837608295685580724383327978164532559868108993802267887523531910101740921077461218991045963017239791419142266445763585694356000388827536291359469372991981825220552112109012005362395943197822240894530005813803130947083849042508602158330735017988681204287483344817949611566461191950545100580741256837899944594607404250437472417959429505265082109887783025341115378983684171692483495765579994167375173640048526096228293955734057231774788823070651639802525627983580094116142668225391580567262796715892697043930029563510407817039827574890784319520676087328793151472827111006760162765025510152321534077962768004170023538971494963879931071314572773486867888122611557506285033601079451778904659881496385048670004030275659123699124554830806134393809739801956978324652917440810299420446318146361053125352415134961401414712167752735255943812633476059323712096370088382617875331218347314840088161733182847481478682034776342342002273546490470874306588585979773380489204829013318386153413913905275407570725066890360194931276859057083111732685517327589834606376592551017086526017053125593765259482523403028909353239246999578843556299843141622906417926765360634310821645665064178294834806575272534436566349643555519412868091723320004888711445737226962657919893664071769939884961730884017290646116645000386818971662192739364534655188425432838455274541214478738180588002483749227381798644725570138442939614664955784634195300503724200472300520235169990567192353078055845995473477998064701319087409383359312682787371982134969513025216567554358432946580631073488600639615365619764844133618729117846225346571019701479689792254628629634922905621453301497643945983431688424469924212249908278630470006455344266564241105812219983079728185163294042892908487049572967223531759956475457351130155916614687590114252386081184459408979251850195823382719325575868405634604743171354449052308981310074486707514735876511806149508418581824729618131534564055479363078468873040893982724036527993640685743911964866118180294663775872380637428536968334614862725577605280505205490694271016869422550734709503033798876660864136454095699258892085036286463534820641137509939175919082270176447515363894829520712493654291033283724718912353125970351401856559752184380744416368714141438136449474625414469720707585176836526091142123647698443815521776935659398473838576841971617668144127863632837624171259476476741414497255562330804944795773706925647150592550140365377524815169320596145626084459915797409883136310035772965624122693184566152267173668014629784974852506705025505573922293295741098356956722598651947037254166633723823272989284459980284294391080946514053052380138267018831933100635708093547119002142914854872458476414080337469632908643253502961734301460541202485275124672736781027279929195581192866468356739969801919000958388209832697931990888311334494367911787157537744494447699146071803929181072890832943163372481803036954280436820868719705882473890221758166381851005473362832715176327709642111195560804818680231289287136750917287412750161258754655515263496490889035268316790919205233024294236534058651752320530735977578085053447718292324469774757506859210249764988725584878829620294320363410291711206595393011015534727801828660624074158988560710191720099143078920500636740207591716048876999399800581143192352235629547509700735982434797848651809365045337950465777496277092719680887068439848639781702512636896341371774951639999374252626860625398291399829071341364073790548732147609918832829339532372017985390434735338521471748085211240013993572774837388139651892406508395661349560124153794960000240426874231433232166656054842152894284676454518260413827764040411971392142061065601421861574852894158912835867460436260317167425749329159210173642372037649043098536790455300445101291606326698457914275355706813752232329495242066638196038164952668756201724979203344315644570201129973218147170599640137421681263495146732432214843429869067971247779015559234692094503709377907732554569953533867880493093975235545722615682503537497795274292356900040998799144896576761973140627878117162926362027237796862116694048622418339410478415798802192896014034271110715115904671445593247050272608312676163005291043501044119112118620917803417262501217963955670143973094625442287885984767407828104395367111846339956343138417548077710545494459382447320057217075561311849120263883929392310191221861856150232728088904612180582040857175778077083444539327535167960260370628178533784678463321891145166533705862885902904211715138380918468721093787516077800284212989361323191798516482974166050707680480547423941726861941167536693147365309477566795086088266234232806640054887420706518704239120100015998213436601255886578201275535097213696785053728750395337825324875174876451748003952633742919414975140867527232610408331707498747904638799771371395237802186779039805006622839408502915551928907348503268996838261395326884645911478964088869583669320844259843044681124319374842206517889126503243145071269147232340007493008795830821352241295932766210146808399835045970708431290636422549760220566532075047691278412534459406188387140599779765396265764191284040029631766834518955124429058784333321130813508090044653372770362345821664891991909248318564659056770834013096064208319816181900592559065106756041171736885212120387273225467993325350999881845065473581561494411739986920075120456572561697555849657423135007225822906507903021545601853338704718860122077328479806666645183134223716922362170643666912324642884838858725568619313511462815942624757801453830065938743039447657570564656282083019299111244747847024311650567437821563055500329123771576850506956674344670395525589280186754716230712048043232125922637996639237889431889709604707470983277216548517448734012742746724510253540397361052741534274951106061583050120196746630884248871995963510379274315369926710546066501712660861781909787579487734121876168568097213057712983359116866822914860884513209459519615218102065484063256343776120628972009333628935605164068402929304593417649453221154752965393420383888554527837543733349809796921031936921149030649088418547357498984051062511241393993224533816995475905731428394131467085380623976965941451456828458300451054101634693446571734548502995403524050655460210964948668464638434125367494579813083192106472821080226106731957440363599847956252266789102837459614755135794925094695989375044397562336744617930088011159104874992445314294539365929681902138425580453160476209001627215575682680205126317598218180394175301109873275394686585580932597555557608320815301707767791889737522588549363249026229522444569772027309249205632343540337253484248583712641920460126813904706789728370523306411979588556696490994898433665412941462890888392133346213165201140802255615693882358621547374425645403743089250141727360890064421406487352727466029438220517698828208593077532567225656411620106930309449298170166055658173714106032778707032834283119077494107743555099123496274952843381518389899370117323108988085929165996631963348755877413917200282308383689750518889272311950912199108307548928164163240911433566495856786089874959141742692407382271436309381092906840855680550707215208949022632646315002326331112307932437324713448924992990422166098730901167181897742511282510839905780558700556080914101808838821436429612016766621866570952886636924444361882852695655733241251443349095227860093817569641196475879517784294464517831378721846732101173181538166600584372371212866173087034316474897609140655050815754257524258476245628966372295631756298479582814623840690328400263470205025792634260736148278497025908626383252290183710425317915688561311548331181277343950407738637881814540898566437303790965752605975707751147976833304905391422978963705260326370010944276515385628456085242954103208916456267162544709106504915136476612633493034713301845022460554509837621634958059836110147644855495823868265099737329859100373071585540065935146752629968051419469425813540853618971394464597202374778304731419732222826423466334661376115004938968021101051755017247464189313524926592458533765576696722743555450323504674127710219119751853566299457115120052524556540661354348929504940941483745321134184092446264301711477046177455036534999296688471160858050011040645872707489203518989949560680960881574326013918251914684393648867712343691680358284910104989734373256331899415771867549256336059987579860759958973408589524078879766617390727409744101111532694834513096959864078792941712631110235661056154324131868974508011980833151451237955844848645878445185055684937695065227901042013630941180137912802318517984165149978426677138745456123371686959648203691224546958195487660002514853917355757515972158366007398789194955954987323988230415585973526481768341612129914105337392483515577873361456353258162817930223126589478590488456054776948737153991616612993727952443234194605400073272242484414355849207844612980288463088725924012912641182375961815195338276759168693349355086128125175164150795703447792104792649425549270422776376093665258522319283592806366169680183488581667225033570950374740434179027596935775685247413319388863266859715320857783747937896046904129539143483329655221751295753369828233930272038771873863602102101890187955064322628012649515719108208870208726106744296529539501671349859163547177139514545402170664606496821568716863638800866422778761617907248674191206068049025891922092144248583144353966999126645146347366652451364317432461031301250775342191900579093734041458315139995617171669949090428197127979785504604193334238608752259473284811851501094655368517614573234094562979121344911899032216740298275462304827706662266495295923900158711440478590101190952477596810808860486528292635906283653639674822007653205739879819161588056669817820285286254815710405320344558433001689211156908460222564353908711681113831446497939045708648709091348598936307789485696041042503653511809672121974837117517582402051892939178340861182696279312142781629006924765145755871178932815601568867441503046581100722115815097375657695501016007384166788570500376245193107220348291040896244380238421801016265801725517334388155821018861576009885352828302144033537442797359803924542932904673635833794029726351277411172739293094803947615923535077333639851042657558973009452789509615470382518667523402516119672007163401562468197689777783589533995953798960655813951190749637059296573662350134421122493533611056718801191495887899107295259419392232877761769300181013446007061682801417448399110638339206165376636284674880457776298510398726266946591234759693304852409821219461420149480261319667799216572346848395993158100596347342438616157724859441498341805227089488036660026587883190257807187842909392116800185604565345195398505652632876949854461022899063257109392845060653924777017644984199369577059570455974953441112165892400932571846069500959727967042649821319473955342818846189184641664663992783240926240764663579493315449852637668463797889025600638483520280893839168100221247967388046989339209961073374279420902839334797892586448910782527151910637082993453371478498503381666461272532772234282084496862273132576291948339460875594954849973293473525427021945179963255133861891251001146141378147964077796215537440976599697223619465654735093841878347345367299779828579259155497091798231967650035095674302566916482985822398458864750589441402020992388482832277848516285343153224621632370019578916159383576959572710687082393127211235344185928533276368283559383671557466032174799033665634163372098836528111148248934842589321645887723685712536153900931199912939498290606807416762264892591077651407768852467470534150728277845347791981076246371130384560070828355731581910277879719883959227067875292794030636723939562032809620815624422025942431501591940280574181629184107322012848363980345884753384159581360516731153353504127165527860401489854446507116546973394163875030389591847100165627096192900560622487379729355385708567497897737516936749460714959797777465828901063967737857631586323552485996627277000101940143990749348376021511507810310987621484974570752853693666303708973324603897860781123489662696388951975506426699707338463688036511698065824953719991863459062771090267080415600250652408694181122704351179341032743528834128406197238876079775074336936470060274108169799525310178124267277871325756482825414742399708588326633053415683906709322575372908996997547252702150526379076396269275398003416028224917809603144086242648459803915881741029096062519583087880673455407109747359275002672497303199726492389605707799325838111570816385551658970873235892987678789875286530057293718276587003645293434557053311942039662170913741614683074648100174383060722154915156935151806416538615919498749472067479760768526922620456951769747732811331512331621331348547238059370527752521047194475858972376464370648547206897462280479512795609694417069821328751759103198300427832102203732456149289549638767340288477134069716953398539384655837140084255691779901541763150884708698046931010363229800896878215554876415023060881621179659666642016147829840743359155718984073631367145824174833384011846338665303409560865710849568095369525958570373843957950807450447248862674730362334999865807657758003526959464856527482652998365020549414707279349810682839854124146531093494283226022900827079140891051164032822809413182643779743906220566349291654128870899928127283219279325280363769828858654391697873115624002908557478964264336973597519343336859723071609370894643513054703923391383386201228924363226471815127615439360671292696882881962348810707148891047109710073796617965574040935887032988591943050191096913084249986963569820177323583372328627132374138057916156835211956883468724103975812174091451713929170316877961036970940770482996481076544324491196591568501164066871713493780023210536474478594648770515698185618620505137010699501581669859029134730090972476241142262702487420623369036395889301025823337598314173863731034427429950837498756600476732140145554585618880765036805379942087334108808977431897670945908122294716641901881257531258551035544544235816451161225291061438268208406656395668663586793484395031881003742709431664715397288297009658207764816238547062066527999940849354654033095979277939192255321492506488048488724380178443346900944285727406728222107218021772206191852056235008678475516088466214082239120493591334470072760583417051771480735222062703253860474759844512682186348404604718010960681498645486081252354667383786226912526033498167635662921293316055657753987926426769670245768367062666149714996477290458847938228517926850285168839177809637757533389200975150844323189175540990218844997860247551459939958526943295387535670361924936018338088920473911076681876507099393694718716856845567416150590742285397866165605673840481637324654342922961622178496410375813185109835359739675074502436913784876098494695199184095097191944276150093750019304788799074762530364292818699094338939860339783427586034391389826746278111332837201341940958131039650360427800789507357192436264144881907253222953527551985162021720368554084691517128903232661304513834738137836709525117961681269599118454148343028501669659452692333517866217634669076787757526170470833159352858649487797238349486311644528732779901996934485500358962595389136584555355852350824150366663504551232213805532677290015806223663342251564233864761032104810298269829745956216603615132724940311379494421964521844648005600908613074100272236572922172626753541994992158708685267532868264813303307147820726609979349030625965049743708955425246338615663844144436206432395426490069792517071911226485953902769242987685816773187699859378329587113207274768840895734855038282745257122236093948062765169156900389748265050751691934183311166588044969993517874070271687402264279431584641515801550904466518691382746276464992548968314029948449962655571429544935587206643740900308467673089959267709249853685593996288579257120614918299620023085445388509770808230063475925899358718003847573655541357030959407007718195515576890544667719810411579646215649185694039936653021567170876159028632728344155257907447308146497567422705016900501462401826531344808825756818816273495028357815884711700580807320823594724972717139089002782861174523768895922645744200148998292312971094646648038489028614843316311578902995194437046810780198591199013863309059778240058900040290907654639661537484501652280927243838667826155332546169069948582138151177759713117690981463398695458517813874326508076591879681166413117349759211488813355560746691149687593225299451166981854142725857207782393951190180718368443264058449720970753646948432554378559067135055742730520680641061832615864845430974537917738263565548271557536052388448140700329563045467275561887770168052656760024669332489618624082520581489240925026754473816223686157092941854202072535841563982494738056277826073329572118605896053365067600772111629719568869881576042632254094105442438603870205881668745921064451044741103744760914937568248939565432984223910359835653765853893715905785146694958834281402122946039857998358370151998703173385844556680747427638641365538608969694748009765408637707601201202896849541253348669666699852372771343523534685826072352748496563988644701730506934919745484351002349059042101657903918561366755328653376592932122564605731255743214413261851361522538854093097521669760689245327166380292133047362993298582174299424303565326448015339063610422872964490987273050780114929397776568992539096630094703428634265166757250007274536902095407504799755549320699866281265008969954321738751894666747134807750866514963903427375469396766552830790644072916933272581760707566040628640642781561561191769120588445231490688498088667657348978327610053280282842912482825981659868354011803735127087304278248709057518772527243373394676942908283660139284936082268245019277474756296163681114553475359375292976819897493546644855819610263791864061634271615202351013145716115297143316737461988510441866603207575956784470987900400667465283441937212687198313778984101775493101426196241015698318970909954817707874543776434594555121011374252165456710974770067020255846201249087591948418974406707349211712545478986730605747913986926234171524338974833440303318576007166576495241814544811798300490000922329417045433267506029159931401701222640396742225412471553260905035854229814951831437802791153461830840761385404600919640826342900130733184479413273511687729851903911550450186841006006889885151481972247824116624660381993014486645603511176944495081923860376750612066198986117538560599199972953046093107504661381316458824436437272434819884906624907985575042453740559742052306451511116927486726167478716074815832950242228194057738735306691920674744672614130465989396501676027922177849950844754405649050462633964767545764278970246029475452680561652529421048067641618966842017694811308132960816416013499876051523206135859282018069232607283171569239012658689037109485845328913009476687917940312046006326609274789008182830010831488353917830217423669676358707197007141124738058176930783791743973813543456861419912166322882233024725622142607010912934984224938487247351698319054645906477545740674904849473980966531981860486818246619433004834063426251917845950162810208874484301706153954064063536015574941842883175712744656697262887351900968265899358326477097647160102588070741053130112885073855885590148296264206220037365337983588826481110308278225771704890764551561419890037245196406642462765995438690751419005211916947328423097797400750972410944446842830502191863693801245206191861271315261326648353942567143617903641682848765081197157483053960765343773396134793133727806353947606157769721188392482563933394965315931022446799592210882870189380148064360337683090161809038016141193133767492241092953317046917129482943309986052231959519988641883849588146876105324695180297484290369722337885804503376351826524487423822434233163315998346943478131900153334291607769700648922200232388293141764167003665318636334970218132125677508076272381774135617101957750809786299767880408753916035536032041492491905573215955585522236679357619192187672496767752238732054347926228913667185381400601655846012707841104180317411459467515558967155674851278780983885764875840950853702653069119780311940668370167631828811319004995659574446627967504323122603852574313098384676384932566658302350480079230253031992765891744039035098459944682568026335144095746479382374994251959685815229938309262184026996408872855471051721821177983455740767653690098248006035370403385747478632864448140461378930486092008561017132789064819552990264056015621315324552837762755042189076836855713955060408878195825218544927085664764014653103202211817760005532667668478419806444336600772348527741996290507223054878114167561640124167557994094778774223044090713290330903059018870591805347259596046626281464032224418115242682151981698657906323246019485111458702117658399648441263924260489778041509706914162398396253587666202928243853202076326438058001853237495738329253958588532185883353202880117038966146732750243157930717563235727950023092710480239340114448119125649180213030212302711473048522135578272444212155610848564976293942793561677256458473802544865436516106880450088255064580097291575669377013683121522128777070146056259690817441724311900025149038555507132303523318442828907001785162035809823449204075088783114888785123947645307280631521562084939715095469283046573737827039331549909794488776051689922866858285879339939219152046728059841489042031148377947397334967388513268978963916000784485250312810187392455488182034437768052144347208331814741983901924038373803274286000414062914564401022054749102830216628109089492257972533470430363306316881733387571797510637517047866754362600524253221763924545304998860937823278743055049277592268743209756909236080050131719292738743764585861041401670335217960785022581711638213229785971317357807871121862066387147139409729432368158035269128141013075494761034589028117200911498740809867087610592677042101670717699337354273119829661801205721406852406733850404987483576767961645130870400260053863649517830083365739870346601246045782528989097780767148005405147698994221180546765012109509920741318582158003736012623083097256031269555081394202114119234978396511739920199493180104164172688857330828489197187394444703080986279677863361958105723735676736396834346613000978888866114298307058731886396822260385324703805003033884317092218964112127954867592441289709937770719445844764690789585356907120839983334247695310397281906878433372207854602690734075192509595040417507318956811214966692842172217669642742107507123449675359892987154763463308992493038896553940214625227946959201316938039627643506987076557942830411263208708195947817927197975121253214689819651362132068111008665358639755043493710711641233885355799519444372749751506397371842429708409275323414569682991703550404834170202896700142218557533668224229560956227967643986052872071057657908752507246816381564631697638579598090441940828726996783932983170126911191238683633905327536657861616025759487136434542805695184998138747640152773813535293995947764507783248879637719859447491993484518002187490588135219204334213213251156853980082209025093961911245970722336178347331005489620091788713812526905983813124124455010656917080325525415242335194004645203764478892128228516315957785321394832793277689612020445222863933933028753271659857492711550996571979226099675970526342815617675423278199226742995676473870014362937062320082158327509406254232313438511269840918647592370418058472101268170101990157609420241091029136384210931784847342396191259314062724986312695656145961426351267752408438502038674356991648263296675793662313231494735355922910439544276549988070229559154749543303372106527315534839423397521897595567141354537693529447322492941018092649642526272937890136846530504658047712788648843467880007446116245635013746246566259075001644168803703201149674040354930909546890116584722964660571724514249367218687748936702019372034762816996897340968202945432190062497436653134202847180831372471914153107616978564343883636302554848294543801838414560943731733072144822576475096827896720848295999737446320811514948745320052680258287516011469285183561730380815308271841263314792838286348778153295766475516897927231463423879850543437915879263959466419183947323336993577572933209076194881162449203903259270017509237598786247903748948324183883197784239338804912274924345787282497045961266174868917963386708248998086303976541367528131008164651041982593648911353062619372841830918451533558414451969287640004201231935117371421889724111480110952279748566982694917596185111108055836617113348258486591361901049474638132118606809519810623475621994855203440936765632924256603619673893409183778484150316019503404733183740742983432179315948080358308198952528093687029925979166379470577686090596018651260124720664255978763812047956395006544535525432336385445474979891478395934507768444169402420168805388971188885479949331422032232479541987841765613720817683675394239394207355481423704050884460846928935615506537584812481891851263069608707938324533226628591133875482475530487893987861419647221981570373100495342426291816688375853617159971030987835777592257286590117553358682795548384016696476031328390379667229345237304265068522131523130694033719357602381230013907921628745186117970949876589012074632071194451658582760760089889509915511578706885637827585946685054599757075315919427469584028977501213790944551799747510503772755124870595629051012180169870882498558236145756371414208467875491297850354366922095386301635284450930155876838771218114413134758636871715295073217296285278929418697506382959786926472547392505129329978834100654589960124926766029049055553049994579153991063307713208827283033093747510113134475561440070519412911219065768407712818002728995086762970737432260741577168182659476083451399808058995071407125139926205580884912617138446835436421477445063422108052112512791077540651482841409360122926424812999244052681129736390246838465729990296721384683836093756247836395447737698749791937598631055011437012737963343232791021986982360833375799445510076265468304866320751954988243287990674051629969630241910966063526759710584232624940228546409987053553058994146140081472133123850875155779235142712229895760190521578742839373654532056838837542973597431798368488271882888643371861895204909990081302225949451935851789608905183440360962457363680100629962617033428295947678420492590990337344133824291947917879941044504515014862211397750188683293962519054055086696730272031026865678099094533946846982568546891976407161426100452730154712272493699192797102646479567759320969171081107326711286811619666564532082311063892873392151326129615941094337556375233049178976380920471977859661400727924924506901012968828740918881369348888490419420631976569353911325407557315216947573330413087786616178391465095234704332232356362532333122638971826059930662039521057179803934096744572099339425467551331970581618431492131370867699294540713565546858911649594367401215991413278010768325792225432849605888237441489916118464743092843857543627562928245061163832991898321696557998474531153909463499859035948811733674095354915612612124902725641400933789927555218703988611981102099519589926624909736040046822319363754738955789894451057722798960875530877811641388449910642025317590395564742869034846713522966165497293538888901978101625826212854575454359831166229119380192220051004872760151068120500084842729985249740148950122912167032645253577230219028239880854620181097857256013936533029583305071620211785192213931206060513247923404072432151626802337326085796414720360103199967160530445537600508451189997954664173710595459706941024918618394986108992855612835564189370774025672260190509912860184113992702968534885981301644091162349613252598296878313047182619391660850358323661432654661529710325926169165151890223395388080674197199987172772179951619529245534083730890277691361742686460316621846554385378096083023376848247643724439618766460714717082563425532316287146052229941762170126749626426258850653570955649686775835554419945638153043942119306051836914807991982999362957337013434210144990143351562204868711492365075077659232750123284204387506598330302665675221797163997053840012505904347046578057000726375274156427160172752118869400954128473438038865252205380599562279172915519199864973193336230442674836946170433140171012209739747184923252748205887235395072931916806695529781938297082946831483059059008671017593091215649179347523132042672869118317663296049629981161169107717762677093428907264049312993889244721956310627053618689317292605143961724354542352121905371443257566800238019520104109811658500177845056932351138810457769168224655754308295049175491726506483809278958838055488591531841809261633982967701505981041003737713320292520400536056571450301440943805540793972377898411284928759459722660516443329457634570343721900925001725300255546578703849665081999271003498349392132430373375330480474430215580811701085443468810282750230069767474739836734975744090941557094424680286240571848331140904977995630747396459223765601845659726312503475646979076256003009482420613110476470794099792985942862574352261939366199473641709360196239814212475007863190237406935500534366737518595307768901870778934656181536136557288587849503446869819862281632041857579954450175159448658346855985033739885783184789269197765284773045649491016877565525692033200139197175065158192003670759485938125240605619018697112584946308331994082335007544879723553913481498876508123381263571090858172592180869096707337132007467334474743748923684831013102888134990751622071626007364423693301743439516958142476530246593346656371804609201658595592747724867861700042195050037447802179106030505237423908497636950343348145323500648488655697877701042348427131431519899493476942867207622102970606938242598206036080061942431402732460618763842149808667224052845390057148825904496843189399296809882435139913783589985749625907545875380640239750924320817192604173898880897216136971688896248187183521840368371968756026113218048959414878856850635275712734578883566199780284626735253529610431037157960662671330459611473999477709972798373868136902749837357896452254794751978728995213132510152796969914915351998352273015125274532271822301776416754023827213258142716500193821123234939437260463607248195416145112639255162143570469301692423504276913011941102332824022730726502683034329470896773267051517237645278197399233418579235865041630837427327376442389240774066576932999363933315553035102488631420275412476571539938475545158286928710455165988635719923844928684830716695078636086981366564433030108971353654838839113594483376049151806260192245102476704200499681132455563852278979336296386079765555524062608094794055173470330275363462934523229820958820907819732573574797681784531926741693686579483993962479805837429805403207277079397371612853522316123151175128471256145025071012016575521260592777390758733561510724095975647822894413771383900027305016612318461785209534746062484486122634577409644232873840907909210362664401849135021654580371104409147799071969715605765840514449900502737851917353886093718546727430285733893196775529252197854618805339893960053527573607541938111158630231966188358663500218087367243826738238472614536891881497470299953911832735198391521167470354405295610648859629429644185699473014143756019385910759162800420480160922928308691725003585108585124744486985101031858170199752063497231063924654882808301191630552174282483294036749846449089156297987699090901008285870835516026880252181288846063813229853650437518957688431243111354324732591247833152569937183177413001694728244194928950960541005765254583412541680743612086801096838169988208303898500231516487634941710520808559176191527966294575744974574018892729512996146644649720592612244738399366596767562677772409102026707739418557316683110775357460713407856545352621134082153574007314823872956065312183945501364250924094288103234715896507200302884046340686966715490310561343452339183783433515297530136976472230105507914323293828533378245058495019412915470863565341955704460531972515135720092893291558174260858724584863701722721953811911727763854935061383764715074720055251134216842329550258986251479541998757469469422754714680338843552439043730528103031016573922003515394722338592413731908804704474732569732032404681327324479533698923407895152318711585912710729530984927282823920378461111546137133500504524926792395816691022564121127163648185866354645776453897638971955138129041332197515984186734531927545495112071423486392017756847625311597084993451887360299714258675602225751294703248676508901033397057160364818707027799526502164411148515400553356782456122085766441301676173894281219242062272903885837677069044827932479255182169593195471728265272953039125272503544821863616918332885819281805717197817393998989231322322047974117811520599467898487966862443518915277848052212075588228065035525140752919266226190588067528245345083312577117821461659110248942717927738948409569045223060762817845584782618136136064382628623153989478540580749694927341597271643458886263572130370406748512823575605765834585967102466436238146088652677294672092159751185308230220867189949715420102507745161930023081311687075690560278312513709960714683677217275583119836190742057517173302548405831941418102920079510685169317889450905465671132372565054975099847342913263293186224073357057253457949023965212454147928883274647618535144261123233471717818775490198558992624663249316150767189805036038074600645029663634361834700247489445621258929038331501233350117572854543727071555646282791669578345151469024289542945723772958019722531587317417827470789821635667271286243606687529279893524647449026959647319689327326102605691623954908978661307739084282897205923395623820049004255412243338863764840482328801369459876267085259990694657615374240446834330172558316131103424598266870795226947728514635448706368357685064554629120321799892677861588526059535418550259237484223456084589021842811145235884215000832351915229752401350348331469254280838428969613633343059531549775770700030554508096219928472643640586118381638673682902428764337413336662566085518755228834939633457252718880062737046413710884524634863512704246520550819286010562705878781373583936697737483667247722013111507428973264531450255931296887159542410676216069286949278910117980066547680422135192991281315963339920003174413405160866912162551685170118363181065204279909160752626302418082788076806532001127155860131297440584350141863098167693327661725882267185757265438468021399079047724421232016281416165039946204042720806401069658060706394197066177013938352869592054193183088652032775888908953200561133110994736619910263075853429035641554957695052627984275708867146747610701232412985955729771767310821317928302178821406547975879816810460054818369166289316031582064399703382341591233008892492595532956169878580325856020394571268329662833059827514912165141287027506244849495510118278539045673540841273673523898074750219672922170074645229588469918973932557675983976145822621169322308855042155490665631780145266109030720206055708722071835435404583896100098797474269990075489274368215174591814910074644638186105939583326514159549702749197780387520657481845539826813100254224405352166778267944780584906275843009569641111235032933689358740862200891643675935332797948811510894709536001370239326113984435605516940831643558619013022615381884809641644161297207946393474729395532694765431436156177366114950433925436141718363914514220800474095975218267540186257196841133846093543274760641734361978984901020960301796406371306772853097610937690766512421746174731574726370825712299279589184744485459811313183252196233005887147102502062514932577659662350697898711476060107613587181342148311426214150681372273788195649368651070685733080750322835803607137041665114951663295984178219075055693837903734054622282169597185962786891549861773244173589651601752160877710309871135049012235100865632835955038753961770937682623975391697443455640795767403196930556620577463773801217663995872647373514878320033168955311636138039455548948668525889850550162439388652873712166900423870417577005380672817107069989615827734334018579950333488848078635643982134098258258792412591094977759351287210079788514162643382076815542620616181808491323119144285235232128132684941576357834722125592776574023491365638818128946755682379000834758391181543462635076659052709173051132693019587831550430246102978240948193606491399083916425780031111452823499837726606423046170719076675104069724713375619303886856096003493101670028787789608041913786273742394094520495014561101541633759147534805393965395293659590727911321029759444646798932934806626713742521834246402630896117750163950200869061933727296171101835537692367577507155800876115777773921916079617250623902643585970484409500821135628818593151581050974841992585773173885744179568163503428043834581976304037997253761636815879480652058122295807254425664260041399500559571441356429831784404703541260065365695102310705935571849275869337494343988340934149472669895751556074702926322427319582746390917149690479670869241210654809372719871275482505113850683727647699292250077698356525500196243598451922517276136720922726890783159348028164631286746108374196826930098840269708973894819028493594068404054754072867380764844994434578968084801462973444498148031410075223785019314228678796257945626045559457453066593480355372383023123708143321301024482221325297797724243919141940229772392165213625388994575592683324410802851894446953864954520364810021466758599530243847506094790751760098330075642807835968079865789926257796640768656553349285329333643383377957888678966552343564793203126070515150597080484992929022753745170416890793606862856551282895290202286982032107597823339330304492501490116046328462800846959274309462279973921765328586706486808197804424579881076804206755718952399029392114791521457790938322012252720927280359628792845342093199770513603552501514749556702669773393327443086143571342347443986275490386043082693465876865009324881388418342013350362577305896648326054650237612847725154471759939538096810175444132420906564885636960282257415364774105832177925812341625716779483375520552812020855847950553492801665191227249113053620272553393827979924734453054912933931954376569385084898848600620539968934042770666131276893485753066782112823220748100280263847188896435899472954768626961979448078979187942886688442985081758423168155641808722390402344114445851134805647718487370482790306997062823513651427896629139742950890284381759358413928828791072416727453727772587305277915045236282937439109598348573640925369047310684889033321846609567304198588368277126481271148587549560816366206348822931921743432114598758519129946567076371801127309003807183730109045069719269613006495807897823494103566360668036911707761090366276010131240401073540060643176083685762693396638238670976433213602222137201186762900816198654670347851578703646331819431372202236587112493275799191759903832151791607632093228995426585294030279968891497941320477164325614197054092089985505126396974387470855413395600336907233696796284336793499416527438555463520241196828323203997044341070205917492939279852844564492145891397703077562846173942545154799970833858752783108610610417689256032011085742589897180026519732880420148044340933552713149541954506808493517123705222583669545473221560712461122914028514292288920507944909563127075665859474221206789637533928368105273091497198827875735759922127022047216287454678793495860522093551509273501870314393897895548378417405456842075637094364084860647813265586027611988607489494537444580967913752976827302998583795801247807735646082393502619365491980395860714813621361847035560041417276687053284025871113004261548655123297721289393115199512134687152814946159657878362436937070915979562295156728539680675564991039293743859892128600020722785383208989686162616721654421348542995892358670224778199286340767121145326853001761182314310352126441736001255941146161753024136307559580803292287524423067138262812016210560040737124538721482788896227554062818582715606211187034429634400834491407913954264526316798623456370513307034265786651137192526076437624819035817463582843510962900175055879833070308830164152093526145776442431796455931612961995335612834706382506988901601304906044575288920376602776156490234673710309050000243427355728117057721282832931128296222623027769290362284443545778947321448243660101551475859824833810425463516673687713556920700222127094390864434049394997182944850308316353173855313597470740967167754971725110174270016165154857337731896054910443708630570383111233085061546715853344074094254772881579942260375567918391072119999721032607676954145427655478431103059430809283056401423845930265473552328846059882804194870365607204417437849391634120124391940955774589986931975127889665143945707261824496553363468192948652845671889000026399982877614295539089503748687054179475727194440869324734385027933917508476440660676600143850443156236393930906380035430145754458512424306916820292228034222419835003974824741628545769128814156838718353668979962818619383793835643956557087274556001385661157530803511469698019008081294630880114262254719715571513051848917095247351967474878326795052059248374777397914192719412661500920765501173133282403408404289169361504303269114131351260907493827645315518778759578676591377185123116462615653689621030740052500346063127965465609152892616930970397945338094191467867840743247142895671206333242123374975665247626144519062635213357800814209147255731252517068646706200989535001093084508085187794229094544392722868857604137792378791025001054702720620623406903259122551421267922426419695390023587257219070661371077901069278815057105348812091184566321733848792449277147735724451425920074374239713261964603513237263058233513138949913138204526687116326820354580030023506893737276147721681965526522774223402788838001931624708850872907527769260998984555565337555883561827362904245258085791911006255164417061423248399507193190699813475585466387284343791927111452850708248206424863121086985000927211349809062999158573571486726768696398931991412108993166157439631147086652433660667904236972184963716219775688501488125037753728418641493178113283667019204836951328175176662395819543477137665978961258005963398700506014365324245530905133939152224730476053073438133617307404381533869796927451743665802243409578933720734984260902454153169231693462564022998363308182849095666072420780006940463063350663872035131164737588888101425931326117631551499697946155654173743527006615555344363836233350270956113935769561676594183184433581376823618543203791508972148295224789650757267526816103639622450013719046448527824246303721629008115097235345527622328292973630444826613918266457438634087027108653511646168990036345012634486868868802643815198763799968997192374666319379923441627576337073290100433304176243149572142107806396745676917034263345932779011479444390658331583133913612525962489387106245620053447668229248208070787965608992497789403643143575351509590050641429269190790435970393149390294607781922204574431592364297764204976578309747525176693925671755773504859880797234801392525820596637033686628463512829971823823517572800097424162541687614630417306186279707201552120793076286716542276368793846302545002605938624415504268726877330884397965511444940444528730111955629650377545559723201431542701049020594460857908066059080610384156109033960771779644720286326496072417893187184568079227533061067982210235637822527128216039414777167907177991653106092881530360243150149911231706254789780881650740759734641790039766143408030964818592129941656708112956042243368339116821096688039568892483407082729066319639629121886917341261145268055457626586573488391100375150989135616448842220448530730156626240053936375839918838846062840362212428203252146788650027666328889327815103703549231824480409309652842517850025536038777276808374725120707615405904657892747780598616527626132613214929675736667310364229157319664611099484170264344896293676638721568642981353301485928758413654705749694786702403316898669095909620078177036785310550106415651826666762458734608028646772204185288340103511634707791543325700135183062616837809496125594759693412741180761293014999780526108082700341775646528387804339806392584434797916464593058475569575614638969663770507642801182623007121952069392655504284662897451608280553980748932940894649631071159800558411504953951640475432652869813880507148279216634301497126620569743141204460544351685551870966816433243593964753922877707172840498781405052339346124714099697400037333890470479661967998126902194254649909455983776255820301668905634711206557858576210499601034231835302792525439855055382516742938765224929714162027393218589475718276085807947293488473205366520242936228186513951039844949515329717718129427297102719914728768900296621566612393521157775714498976944386327933759437408777868849894103548291329741471146295968885158776115197174192681192785861834134154958515770049825951913767201017592699349386032473820150314321440283253689809572362037098912013681861479159556584876393411271484129259685197884494718974375930758542324535193780423202584063557370785235832434228030487203148248814092401517666574089829164346376672498607527984537214768057933488685081464952651424303434143622166105534591770463490712481582473315261770782280800981242089993675053807802540054012790279418000807650185152329584405307175831588541036255176848492543518906234626471640423089582149191940847008313988124022360953042898173739106667293760533431043654436946204661361794144616027492603366261210318673636988253210164431189839053471178762011469881759583322143515025718032209643194941680665407535252359511292887612345310170127344035663087235516767949474267211266121146826343062269810514792848673364119554732941457886182558460272691958801191477856788013390528740736118604008273447691742074274862450563710103143947468076956889724896199621288928509435088939155828612806516215947331700847764246336820676781944506351715665866833680163296487439262691587934170226836733543577696087537933975855735989464204905774243251087936667633592467418044271478168419581930584795623209196373936765735298113660561160021299808079450377634031657662773030073272756165582246563713286980574727201233115688893456763260181438217830269083386351764829594823503261340612407203405254746633724146650867386349672075193889385557947601367379616316396109423277120725468569599976251584483212164173560942184686055369515218479448509142116016069460062295572091268374970889802192660459617453766724278607521114235405608290076720725058826656320881375452055406349329235305755907757589524504112774324641406588016361822295462309463899400374388421001750518333480491295231813348981832731225031145129175411012594746134360977390771999352698239626200266434014291421399505191763729737718979464526455653224181908743646177024615318041339400905213873253581722704209658468551171083707855504367697694794352902408640571662695054306571025665503897750718788885096018167264844098080794686015878642549965733668266447418624374192581181095971198545208667483385799235952834211273833720915586037618553354098233350536951460152489404653267001731695198097706236345742182045474362857986619957721477499625645531766859638731336261367589869764756244406832919264923277163073710536767695775373030879970550882205087346193314881823159487471989267607911020445537141720199093359208602213165427940730310161300119087754141995693207264681820050931732506482736495191119394855594686287076353469726700351018618194373128268084644267873902877917561034434414193570651303903527894555470546220939003719515213671847569220061699652644511649955193423286319758568903288402775708629076647478516435943243019360004446497035174890013981647863099247260392805510005586010706927619579691031200909473256824117227489639616249998374877775043014917912933775593302088904295662185051880404724986646391965547164166042775643004637962247263076480313820644433215726590702283853278529722863417229826015000444023310789573513021505355828805095761788176708070635364835565289539615253404180234309429153314534022037691060259531281797475525756156410974095373209816292777507138043357389571093950743962166253930983151193558533539100716852352509269537374136927812120721624002889866921733259881100114576010542723051661949478215898557907450837675937063463723574113514617429593571756650102658115381983730694039634830181205632244277662726195446502769447453503664985478206536827977869394814557342313754621738851802560929130534869914976252334975267783053114558448409501315823801868951646134460929238636727225848852422012934526168659959694282070038343372595948844232327241421443328514939561515883849657900969020348011912319652560214051184706127574628397030561401425953397703895275571033715538112787224547439690797347552107212928761109730824559246257087910288714006195266004378749275558302170179645205547087126308192178634189500684768956868667629834204139847459518745413320433725990472312107494708958064616220214381857223187651800960788798510186228002356055595905532810913080097711775875122308897726625235995610093529560205918933088125946408812818392542407208241806133485814009614541783608372852532024194751131725359493625573001615878258425547265527173745024905596907295184388409264284750003357446497606568148891246138755563530644639867569948448620075866230120294443957519728229764111702408871330338772803206078969764973917424475101176510340374102852420226009408313149384733939382741800123979135883047934991271532370726646312375787296929386902237765425856965652998449454076036977088657973022066355623670911145818693102659061452271819144636265786078434399753945967383789035694385602759526438660410808776040762331008084858007878893681814854746051414167545420491790302002337951236719530660117880164081459748278664220756169426548235637503701639055277519058085420233482104476532800707045787301313946234514962397293263311695111850322531707037572651688178498295893904601063107135553842530946457018994027794576222372915760024207982922404943901135544264534923652406000285289085347523254256061089400399534660724996094343198973544241151027595194212442147865775498763645229585322432417839634318028908075875633185857396171190311193544306732061615938782648780262394514867358611651013067249086337802009802433618693247036241995049987086641904260863348087720945297366124935835458522596390534095246911113403694554018256903106679100337867640276375058769964613552126846152822679706852966214119605358479388549770459671631175600885178070103643979993726862053369302081603600526405918613338910197165493339872606045619476957118648246064754925250146612050714358350826645617675715144288839033541442997326472835691552746748700720237798490635213235909030171175354411023566994727641458742638813139749600172927871971371502556693137251273037569331086386467304337299057707905160137916578089716722350109764292946141535693690166314807486611275665365962285587651781720005741921388002747566448538568098442505552805119060001998259350243799158147813001948990326158292494186562785645896380154296550557445160679839087195169633951815065678117307411034123158005213232872458325663037661018617287439634621982834057937984410944911585835599831319767010891291323097050111815699375710526095983754483874467751658951586691952470634827773154544919520287422774900038129145706803643514902484311656959597227709567926012715857464465066166066967363840083605934600272714954769270609994153323929516541832299958325163440485919423493225316193000629734364095469593395153492923073304522545971803870209144333603361556703253804678786420904064902023112853969751443211105633348382679364023633560894203869245270515166120414005262209984257770819696325334419846354195262334574808550622056971488367237814949259226434765808225819412414841849682851057366575057803592162990727045604872947027783140970455748325899979972592533843295435635111921286976634164325918854480640198091428395607061960320937291756935511764615352307310080811888453885391196385108188190725859723602005818335550254092468076914965082626388595370990424477331446851246291550176750534000405228471090603016680211998059632899072827648628306613452078269102817626394201135124234759956962084030897237237948933882893706485755577009225711767645401461038036014968741029701137290486556886728767187019972184739320107508316073749856453665426272052878271975529944289088269287622804774126392995942269431885547259199190445857457057209622175072973258444570954013686229570776761123169635014014099738574849030636041551922851414652268777197348092710879737889527902189002140411318758400300610140203562766862060519038136375884767371815120758158384530271725812285788241967931625082861802808557367712662732047388747950873828774439823162947515151395515803951967644978520567061829396319052007048491729093764426949735834949142560728049012610432320113094266447480716572823518485676413783944549123942198298203596316070280049166590253027996325112271462829897788977589537008987102113639130137419132430945082166407228151874699639979889854876814033496417420684196701171208935928896257079000783519073957415018737546129439964727141353275731522655819054545001119482601310895675240300759509312158192853856055547306212434300131598032823540914353210252379277418621866048441901056747839833411733897064914573464445623096746123382907933113484913362233553965485421915906388490542869548969113862265703444299153332999771990701784352386802752165399528844111425028648197543102781030385368753778285434454762588988505091117346441412461762052199625152061791290775883189092586741538291245390078328736758034954448593472642278769510826099903041353113842706784867776804579012200938675995887296469936028815047822235552949501139494093683593652243230661997866934010026635060013260595706108856244553328470361487856265427656357327115720435454158288081057895142152667817484724476255606864506036006792807078902034569077073184848219699832418514600462043206636942543025043969013623071086137825390391264068692362357928074443521359722323317111234124492980528454744319178274785865477135354886322695001987646069468496543035395067089869818980685756343094591330041866555709019046622973222962389544914928971632050017483923603532379734409674179789514943218228144493195241765122846949617678216188514271984868759936971207059256926821203253703144465948380345469283185894168855349184664994181210914009049094737325136760131073388527337965295399038616445727915637217401126848156662334265569441440354407473225878688993699974103520370439960284248463347561625409557056260978154264902423346161492823105542169273449884532223740429136912626837359585599804061427213487597232955019186467014749067397870966580789553970042521090102916669978579304810956789407050751005157760747125825624454775169601902669449671959827063593952134975597956926753218232033425921100691457642587281525141801921126282325963449682564685225452102461674189406777331934727004081584192208074858850713713848378835994578510946812561451646381448141158244947850314678367577619828348390323552815885040734340767690907952155695838445626563304788702501106104790628213346769177469319857842202936500853092397800173098136627677463417508651522551441621679738346323657684138019764597290075164761387287821085530842849831930397473486750475790735423379111121070246684489643540491484517426877337490688655406989879795359080741423296609195047909794540017924783609807181494831193876805432186918124351246172386097967582101053363545350606252669299987172694399035212257688590886519009419261086075331680442595875158274301299927017322696630256963334398916775064919728033282574658297767324491070086120927646993911903409601613771110067361598242580656603884384363252353041187104568336895836394992577658513133809616891208636394734969332495553625379472593404094799440519517044516070424556001484554489954825300160676580347883956970848471465015242957551482676673171071768527027849220040435413385486496267701191299607496766525893098934017108921376241795926315818496083260034159358901762911936548777052306418483775233997357570529857118464467390428610766539875172479905879684912756369333346316467324275108913111294476992406602615964811082966433696930475164871105074163512083640366824667500533420145323487015290710960834503287228961360464658173939681130181190296879319311792220656236039884161306620861083140907970041129761030892506100120360756425233726990527028530408532911582694372744825853812839247733382519481228442334594915313386050305159844626096728027246369563624276162019918299347743622125729426893296961306005534786303608582534531986144836083038173105598640751135838639942994988582322070611217133845153065669583877045624442668687425433903821300709681369386425530405576736169346749468397901265342458977693950748561118897032742234388407865124941702260569080586001189594847569775154826273596937414049298204282952368699953769783599319857752007082940093693771665846146602635234208849591537198621459395169592657062408976351217126543598942070623944484219339084840950289812826716848816869227047325818503295396816398550836814388238939556295659185111833499664637844789550629204956250379614179673791691014824222759376242725491403892184170906219344364133231054249535299780457051662733167060243597665536682035056533179095093469302986804823368258317459755586855380267691647772941479982402401707619753677151107409296616763523292744628911031954215479687145580368053927302726452805943360638473592297844576859726216927946767366707213410544322024795445753452260638959614402789501687774017871747181184377662145018335266518293537926080624135974838346621438360951252232961924296648407919456001432987110948571711528130120528103536951443112625526283909134591918905346106627509484848042275683008420681732582714814514195622564564640878448409774507799493404296125449074395394560110714762806779872150377290454394640229555273561726765965118123663276970282558865928391335876619526810378688140474684634133008143071554807483218129054876179635436711207830386283301925546871642159358478868414289159848641416190709074413596722167362420570096473479737900070011701369618393943944710420945348179009317578977198376905084759610822260610526411723844124985351219582786480421612260968341400202498293375824504726387746329509214509166297087087546525965164106511696769347517011251268319671359410747687224718568818489829346249633546817392990014266306223608840210931821350930113588934965791709632741942854630759367409218854109832289195195970093634618787514535241862341747487207181599327600034812284245987036596098995914438251880186303915136852790880501495839361338018580849034844501975188503341539397943168606441688262521293403988404875860406923259515780914669326355369167878064451767565661272929447680476770264253484902801427563739696055783894371219914196609657495043266506704331409403932557554489170928316166602115964121227735726182443263383651297287927233928533228333830726795866257781228657526108573203158050433229818856897767434522443040641567745621563543788188395529799144175945267169309663013541298620331041268021741023464807001596766976832721621527794589154317449642530664290524969796983352984931710381373739203461202073836208607925964994180102230882921011076444485344124642295043850422868697490286925352240680787662604298877385037655053517978355773002955424985185549844301283750226700037709292867219084485557057879635959426260402178229719538815562355792403954882203678830172415458797663881258173931131465714974187636865569860537914656509233092361980210818766462545115884592032250479272730560216562719863115659366178261299793791529853360088897810904076140049460543789840462318401894174211123631567574862953224436886450117406597159349867258667099139895583562423688143972609543994468884468873160774194156283534642305938815267923896815912134373403715336481554361985576800264275750088041792913401186425075912944726585537205971746629347563984747152679156848011237022423750438177215002233272375595232450045683797136168209297570364537122889466553255441235959144331666719370602288636607122436341857649759069427038660229025881031121834873070042362653761492165337226805293972334254655447488126139627109572829687877075414822147125802497505937930852912196249718739748196204176955906098415187297334904173898892044541109110271440403511976888843032926074044950899673174997315478134699214835682746111818709469873879329282628793076185264815336633798905662943447455135630664494065813134428553502673363751662229690401419561020617081724809890252124190763075329380820673876177396533445833762570128388482816171579468708115092703059432392391311207258881459185243076972034487828958243192469215401104851241651421557148603422800063038703802531966226223183501087253550363354478308375934588610127624224880747034946871979405883676009234643934272636697046785980284509882237607786722327008266079023599113398396862305289629311961791259984023909813362015556916848272442669862822427122770936881710282933974472923846230879536293593148721884485171723194130053453574294554937447630555329990722027255377540017951500273400412920958698937233098052031252346067212695120004205931343226411750258284060932742513612992674148236906251197938740539229360672671098339592244715441920055041341634892170243051884815073111461771336095577908982273967178218174232802855082776848096739746608148713768431929306795293027546499515007605717484770313437085956400402137659871496703924103375669711968876629174353311793830408782310227597077651392871407814663587607423232387541279620932311159681462262843234222066667081389290486278663820509954896987773248493563430001479218612704468250642279492056058006221902587421934365357088591306125208811137211241959076183929370759254388142517308117649616208026664810273635671923727599488315938071868928605295861639067401546265408523158716816380624533048151405814943978899034790504540076036300757312523151941835827249972974438944888840748521108581726167151099646364965860136707753680768435261571018663349430907228467638627744544288606962048085597459715977948420268099235313849186695870321824161980038552644439804414782460406949437481092816918905546244231590384925970590376758571888981153623270371618889049128861335661526857853654653109669088943131246802612444924155704785609780889602091863522962640698116933018578995704641146276246042407508614798543502820229691708405898331967078934643817696512444236400723774153336013177475913849564782593330191615441556253826501983274815393489704415753237060472759080413388764223083086353095349998126664509743455950464520512422697159866713141957723302415603487824915719100687255817339229171413314647657085084844055099964684862516874344914965817150754501107046494256672395488728633018597396184444652499047444572935392666635711575190616724621851365939184108159277905481935591432881820986639356733277159014159038459471185353087250342001580488042309218776734811487952571649749398996471279378342461284948952034014346375085496149297586941654324001308658689901671761627775335135941181703165446471443115348783911851479837669811444988665167916208795181781972463877075500500899953219603577426252748255064027737203032892617210914395830162768542579407364574381876444333111973734304296731094232653863330169409427588881173906062467455986065033520627406588240676886944434512296129745542102660517566050800534355451889441397210723098085500456361803516243344364352434309735048265855857642319635265750037814098700964877572620590070171407080675605912236438461406662333179592173512343739810251633778697152063951590977445650885844658693014731923763938255860737979977365333768729649954882208574690770300392403097659528843944780703401145171172438584357596535657928773409545068627240673399396507628770500415187981385833226901626396363628374070451144485779079757322426756382136991005165309004295885114705315198699390393890921388792158407087448103844273941003830145796829958191528107868568645367813458139648531969492472399132426237997946792702267951611100986368799015633062094740934282063181501960843377318587986804243508431961348732355232718920480149908663637247809400072512133670874799237031557755569436035846891769966475136617488929583333748446393357890234959180383656472848030020006651132321037073408233276967397800772904853885741971330008308034186136363781565818854399584261546865910535541219609109192503630694259440823617716524161837321234737832328114500749546354939768844322301646481464073239919566726113161595481935529628173945602239346555822864661096144141128473970105363296713623942203980996082983103224866970493645413731444028737778843405386873050345993395212600794694269693695291392962961369992748102504972245795708009233333649543917802158545497758494677516476833321881315878597233096417006572403968219502757534370147355815176854510917464892990547262170278069459177672052127473590996802397316732405436873747592817547139911931605937856758606859710096360915362889753880016247546382373306940943283031599253474201658109420958642026776052144685232201382939830203005580011016103269570801844030179632457464050508287049491921480559575313858196347715327713110957030791523277325471258062319526303600525122047673220447682001208089124549256468542429706745003000844319131189632222362150460436812416482071394702634907593918564855177939460772990695138651230231562366555327663741493107573762402918673310647938790446878639815041287339304222751565709665893412143105804829451177071262885872146542372157859859021207357389896361697244857449347039409205406580789078667916735895050542424871609342118996762893522416748257358251579108314209516958352896101316461552999503116548812741646134161860386544823700894073710585107294689323581892767064073401500530657992370032057890153224694546185074600618913542591131713898312624306303660473928568392590975218152176945461768607483895534247990240051015457238260674384781885565090434166873083309138109715879951669798616226514795780853846564099565103531335626275391019770936427516552331843031216179720958714478220350679052846261361278525640350985237831852091669163223473619475878225345611266008248987009509478421553928214713436495786303145355915808673614245674322654070251453206163245450825062917685986333949680359766236076639402992674353214910420746486408659747866312845862862681888112931155669740627122314350849486133712933393726480200593499212874176328720695515298220160638917859226739138523722920623059029846477659530481013326876935177605251834211274613719939239462007753316243205767640731430972665476470446032343626769446878952378998505555481919122161155308386971904340071158506365688590134586391054270510923949188666422307313112590834595548413259564899417390641418498048387545731127337459348715748167043756680140716405690407314094210746938126791625059260338406370364194932118698357969258091200989867205254605698418806976321329156594923693162092423821368568983829145540598176350621007274214928957197637413194615302375863566559742885771179461368981164577648680284113122232109374077908241147160517224580428822102181565856343374850002048274478310848513894024717980366963686552737800016991410413360573026830351660832147462756664009953910670514538696011456470239001680121576104588706824575808291167644042906360313748976574733436069489699450534827678374607550653864885549723118276429898687630280450786720544019726476798040579222433245526286299509859555014620505861901942949372905893031579148472692821077621777235466700446866327861382052319360531642100668328867610929127791848363576614306047804126177064855526745377222477297014243242883747352065832178374808226148610326905361312046680813425011055914043537798107170464249068617792071544845516873975281979099431989478497255128054459737378532612417914604923743687117226783264420614979698923705567588061870214856811447675619261533769760365084171418370163478938378258154897165809746378661420909297390289807589389485594662056477761622364328935240912859588598476837974623591604152551686934531145588382172587141378766260340415858272545893639625391696107715105076409278794872519471797601158814279446261258298361937845378843353823844757849908560743030412888834208142541378434925293117244867532939829500468625472541178842849265152861892192315940312794141026645656500772013216350007875637524920154926646870888076590784237770791213211338307919543194960399543021197931201696885306290449186062571437757736311148001332870579697718701292640271124286493003328778719111706094201432711741108444367332997584400517119933309618568740990099613018013687759360509963402365490123264269934754672852583645390099700699503486522815037522727596524233698977835283796277723394622014175487358174003156343643236500587266683404535280230841380998738656498367640974466235279038899652395034070814951489338876949533864989490124577232700820835819274578306129634862649500769388209421352361116316753884622900597125946167261339277241611268062302103350180013073810872254075975366459350053880511357724307605590574210488670752553900169922193572334127610440792000297288870807783962349617950113038643323894160722236019170907957774363159321936120676848756269033533077178801967839244272501836829889064299395466678314675074781479011937338944416758989586960084471043733358353814458852248573694437325299950888683769150784892302867503987915446007903963791755769383497649915158326142224963423144939365794326105436491416830336488650162182647941874494633096772530814899370053970168998166947342713353558836630163367301624211674950350763565375601664272334967972218533893922381492178975383190997170023566375166518732853335323629576832628364304771851430421439889678286652816840254773227435895043906155371973493175720004680449675587239141284675660240279325769085609752601766588003391557869858496318796418373686786193026341174982049397528713691238530538274019943833002745833689544789797288985660234564877629262438064948567420469497851928117002950347374787272524315488994584031082998988052710888004343704604579960702347012918831367639135162570827198451621927718361986567982834618758263057228559722051619892300582263811666843519701018818423701258148127356313421962695798035140085752251053031667276648173116249031160350280793168623526877759440676668836196950055361831013163485871856568203693003227590771396619291488782952299582385851004377001002736885796073864077732390260858805767805579994689857852641077786364457447593850500473072935587880593917206650569713883053001282903492792131439233737356784484949298333937041891138519410388263837411246794450163320434102397974289578629287275933929224741581708546374228907107663046575897611682762483993162326536081457641492472484737381742730154727305931204029092352601484293883661899285850216980625176766540929256041422323140149088108008715345736414298457450263063691536737931541124597051484674442041189014632932874050310320070315022294490519119357725412221983056008530750004813129398209075966213960807603256895696331583423866739988661647463734052148537003295827062332062726000047405419232064584325415351660569483437270605656365547313951805333115769791924526900014021323930442716059500532181767331392023597064016728923514458461815767657434800564433877689114216692192978735958145927221042630024323230036439941073292773914569877040663422513567399924004769303172954941676427579042371926528446859829499411908360740263423990347397025028965458444715557489305854891889365735437058392663983279663300567735841959255350380688778886278618669659896026597230217952585499904060872313598571896863689680643940423142702622050973903450101509733501734974008045208372094578254064566178870636568859679265328847429096054380867182788743740469446444964842215861528535219912847785746248218024915999140431187494161210779157778657806856735580279674016121182180850788128188825290882974030553220846801053469351310424108936151016539461934843004997922948673615456520905464291797510339634048960570326952954736321450668619598507933657059887745513528257718550967620935860026457564799511536192851338792284726369974849357655066360824670127226632120359696425240759489549657336260148225973779065380179266589847924878813180305594099465241117483533058416121033610325707401817724460663096437214767737770950339289626144975261338685808224900866180716614960511774864038596107334353968866891028248969581122580050544118627452249377468221049170777306309693596390445461388138146714046955734973880162167565791352942246266729817526840429908062269450373683639813711266443232380345025936945981998904034723532891198819181308624996809842906137136922272903839606693913880041431432962895064622805931366477595780754971057176297815351256572605227205307476010901320165352105461337753767987466919130961477659853797585528759720922976300136452657715474832966973148702787181628527150109204079288206892888476444688603928569290381322475776643268195063124387307443407732180304787185991884486822739971458953862208521069370639208188070624499514025649126213730837422174025093519471047532516679118799072886421977833723163682760632963823503471037325929266702361085900851704392597400488583880155747822166535162750375200559210773170062741659464482509998071801573207890055789997667776975263979677897270981382070501960954104984450672429459304642517847685840541661290416177561543738362092493478686648718679289517571839176460614903566551555958050647447539526801826507807926270663079833800862339340728478965562016162023622224504874421549942324625356429947301528508712614804573327117658159870334440705035956640978347486556807615882566714674248501993596149455910257739843779720327408635263301245908795959086808810230844073872648325759557815734271605330176148014855309037679097883691138156493753402993867708372128077763943954944277263902311624695626013214506921448085061518844367570181804172883972603016588808250208848659302270642301375567603946844895391626321581310075866245191790964314427776313379656508234337835662968881469372576263187622772355753360669012183010186848097322536647230575670802119487295593146084923398023887239128474660210181758262845525342787219061252063942194075041013750290691405541918214216422403201379794800214570087460203687762730368089293800760129934079495912633460729549158269294989340186858993760746000453532443442440306510644987511851629274073293285094094459883670720541046224854249523610624459179641435444524766462415024017610107007620606979828244773478043604469991168577324649083072282599371335442290307769180987142288711480423926584956897064931973414658766217694211252291455810659940247492822803013154781937511753343949858247300090421262170444967208373411550997408637836380298903182022453708101033606357366612776853332058891753062320042448940067798970614778899051667643536566300492974049921399953420790770557427764526543953629601962659519817907504694029759040270422351680951076376777355457631801575649270527847821524179681610561019365080713195430147813698015607781599629297591648381571169281184741396877491614267463017731372740428731698245841119045532455126577582911253921221683028868176140410178004734358783123699936835746691655517413177659722684977504936425414129282590439176747464822316231408445138583406948374686269741178208820877077099047182298031121696286033704530940657281741687066500088554158297698660914262279968188322917122323223099460775977147089052316495731747603180172779636139384923445831631387920661574247850933337841652622046185643479296917157606172440601572698957288124086086620281523494362372744388142818443061036402278668411256705767021594511091573617127000219461110226138300177531031312174838182946750691410530144931446846091858245832645791129766237544963036623160017637247247887405686590064523691566694258607699851171269218650527824555621187195636300065584945882025212624506731366951446784481478391479981219361701382633929190341965032174278226303497605975698268542115125926682737575698120372763394478617332851222990624912938971876120529323882937032362184341122763638588790768245435307400712732546919624457372543650804793709345823629653774490740678711867333661278665571178268694814500344343380178000658730353066190977617982371696643029994154504684953180292245999508565001360441569579416483664649087039432892005026331969285667371232544001667119326176603111910158629156212291743014429692022536803573800919804535591303134812841934209286011257319655637009884174586501365683107445686368095271592205976540596107291363543125339382044939800781074547036479609084260472895830826193933009927097366783836901720059895114479404758856683948588171894951761370564669769158854173779146488629119676670093271438646061998573166726668941173704920306418973766268764162741584954647566918174117919117097476290093637913124336953124779642813237940673974637960809745333464201299333080394429134020730454041385737366657285601651248773229294642142907022657233118376623079807979928028769198455884491231993327618708823705762022530370532432815419440659555868420728056396215366206609959924772645023551339623948792978231727158806834256065725120424917086805848148095678294481895290199225838072690487627231574388546172371480102153536985830590663608287963330000800764282011986065239037432473903029677065596185185830295791572361066762132425682154142996398665691124672318862714463335635406499620162291407751743406880357410308884355897624830590584730115853849033617197114642512302497532552566980612766838882007782840565353789164376628281220696412896356576438067536862930046468537307596596116508885824936920512612839176405250964038538361293918714533385120341340656946155132639351858108292380382847824470005375691601340466496718900359527625613470530939054233582989856871239749370878003528688529105889021226252562059266670789122381184227424265420222872381307281618219626727207242700464585027975779754075535773487249461642003737102675929704516238567618911508423900497753783770863180808530593640149647359585325456091871635490920653795211786017963337618063493105526923053829002672411286640284760504893913028124121126342719271680291540460993147375372664888749937866886322597904198144143228276600390350230066782979750576265504018354875258790800608495025506847856311009729320365730814758858674839702780312881232673858980994015938779558413237042377579220081363402385483730917678063941002095095092852803242648403008298640205882178070827909156923870764994743091262062251097542103547299394778381993726129498309885283679507057955538477759066245293489318733692898667852061750225847136510793727050592441261237497569848675692385052060569514455083199813425278221769048042151718766503792074708229896400362222185986485042987342371496289267953467683509007599592976805933079846126571466610931552122798621377922541330165860710931177061909952314128577746324276708167941320065825616835034396778356629282924510306274514096754025173968376138759386911311920251203985481177451608869346590773340213030305219077587722180070149175163204390702805807748378251603632240051508517222324982030744158610918258966879347047271529521454065574454823659308441388301549897426803850725850089168667020240613765457891107865846092979008405195155343524060504310894335029299060677900613801204345853377802165515601330732710229534510731702780806922116765995002959420886293943922035691721971165555133019724125123852208789831740448525487360230891515653731935278002934782979719538759417820044108018654742092038561247971624580376284331689372511083203829280847287072455565095042236790578069309605960683635600584314719730562934684631566308448201289255783091324204057577878375385401716204862440342264918009579051327550261653551814961299434356669139998173141813349520223059660088010631738041987098097821856498733987335001653081434833999419529730700154136484178402401537716775454193822389487224253098416714149972878919389471574077465875089265475046792987494030510102438628922754011696654263863621023230999284633598883139459330577155132906898216729041581642204501170854915297590261182157938469103440781079941417067185611062054035245001227711605206798914513905594389146611498255830352096599905519806932637833428098157547133636764274234026797393969630332284688410241770858143180385342727488344593998144201708863948522115968640569677427680949289185624193203253650490229130852609033603368083731315256605374413566741209877494278008328141342855008020519126589985314713537031144847707057263428596632010304607775237000491734440974453029379491099491368543433511555518110091410912467825523891802134969332778548361582183017992007076749531283488346009763267746238851497925464292372616625190605504444285866343102309859045746242869103931292944738010884734153781034333448851326642557868353663707033938048391111055448672020062269983116280970381903736195794911215821262844704306225157268796161708641526894595110714176700772677263618614946065831641648251731756714805893326282408542180199394814324903395261108550999019591312026799840970072938449234575139434156104380159059754700156167312346659104810378200446229010825968551593657849480137457415973856093534377260739572725501408528942889793067139961452157913884440930636138197327090715584341266470017620143450761385721593860642821797153948943359636988965208022254419725425394689762734426627644624653295218988085493027314006914392841654807240010014387833210129410379242124933283732336456697941989629795701782614399283419953695898148759934581630731608086462061462405783393057561855086772558039287844969956422767635552479390851363465012674448135835587434921284821754821355564752603386982632961988345608332334372211318744425996990215971955468949567932468323111372301644302392303369914936396285995421750277622391070583439059870878219571200440446538645422739164637919644519390087591928276567703931636857840615103915351640265215850617984771288391665825418250012421335487310719088719761603854930595163825529828245605023913060966245481002773106828975169686819975340131627887505931333683641036155439213058556335701687668917934212424185922438411505080369534900567566406334124086558183370441595805736634849418078667601106482862093683959008081382235871172529875755912171953029672749943904996774579142727441975071351650505297009866040747474492769288879033526090708241392624670225035902552513394017602543347012049450532955052851437100749908027276331648439763385466848620632616856143904812038016617958679119046059136817495525353406250615569412625595288854862036210106768363234386453045595868406379321298899441144881185178266228416298773401578941761891744269722114573289035797547038063757775286917856242742870296403380825399217307185306641848970852530542279688437474672904876718879019473658826574491050160436920741737305079968735890428498236644522033997512153045968615814290415902999770563919884090805752048121117103364808937189972906178649258168987682909319643846593982901846817731968712048914029245980579211381594653914985383972091570989275007354568899346205129460782961701624434205450779172324279052845672012302648349471255199147309694801951468634230929153719366037235054682965328707801343759214491282544477723966686360448225837678620815996008470530874399485304589760464030286294017824937378196043331017416177220989270259423738413331821367459664331329348784557919736452957836158992088496520551818605590624055969972255639813577763792312302464594334791612002721036817952593023270948198853232409430333833451403763838612422072910787285410785272983327238219660994189044863017362152916729722543931167459243596840497024605973927528409141941028903305655249204330663712443663797291443462898070939210425223228877411962897773922891925634439841387688233402494732968178124997930821703096049917409557725097865513105799139316217100727777756126857944858761198616507540512731609126237506504782826309878302945789735585777602629654464245648394333957567446742916782301226731280011894285816996807320476356213492501638679136301383955499195579095455478375584851383426018816590168350731555977244466039402662774735290016193968037011056406177531034791470456530639594096483067599904629428846584344810672999586813723238566804035764237844647066925691228886277543724621503165314804885381833278089323074168547885192949965205076157594251186046628094786061401816422833208988004456025476345658410165597694544050930797912802606361948261312435527416754805513462960602136958838933778091350980153025119072742603835673578026809271734359411462056444111679191460801270640664600745337586557561988698634369935376581486527085468328202727591430726518947467407202998683366123139769760949310913971163500702997546687936441810610493898717985928623613002328528990159861127223758215013598379043330721784754789262559474111052593327481311971907499192486290476570228615886639859368809365597919227850521444375395894847529825845095994624788335929050936306432027112753311546558960940099949104518811623441335780648238438889595245658823667704433874884589226620424381394690145380519540089664618453649773469607654256295139609547723293122733181612002496108350906639031536836842757306042731200043186720634319872283773589575321119485046332905229727699202321204321869468073984270415147288304840692308054041345965723791911750847545335784070760496869781142170674995233652510076044440636232213444246789748756862238820291267560972457933657370241309457535878176297298717633621996198860154790220766172659850926587879262444540425029140796170592002318816579192643809912143333525683996534625443718030177362323523754729151157960432200803310149380116194450182247242264122207341220365873642798560074181432363285735577347934036892832189207700532922296379407643148220589898861086230325288448564802546884745676342935135561964496033590006184741131987788784948917686822510808168097775343068252387978691543772319652828955259973054439977304473215429909953404848886923266585904471309180385764690799986408932222084245043934912529478545010114319140909979772441546861687246530488037602828054638273036320192168616725025944380849383548102204585649474176743984527125239203296386515464513339879081866351743222943613973784581777519245238838361008438435074813241986554399593402426158876508144769195738786523781936148206287155149581332203784695022942776360523216985781619655184069552744472157818988798747635221739830893326397569499173226540230701173344657461162725331378562449427079124634588637652507850521687862585731413027677505817013383264978047745924997544965840504082524971319804173908084174567670236161896354359202753221415368839332324125719532844027163870575142107964337801105994412106204368206761037398136104005716304942814844104810941258084395711387114203254475515692655929221810822799406718821378967594674918662972948975935925447923729259611297853863534864680638240724194645284725925303662265658155677773004882913919949605118845001378880962162248656306237858235521312870132613766527605601122184247461721200392143833124331754210150295785238016220555519114510502643241491114515356439175343267448942983004474152937146275986354570643865858826022084076730692841758134098308990226940020769044628754172157627375298400800360444212790392032346174847293184467491489520828253914175591820262541449517969127074732251335196693853291183438387640730599095429297217763353702418548427908215258125286051615659459568002181300504283709208181723366646880118305279128878009628204710309206188977208844743071263249186245176288086481655434862594579134641072810479408327509395785893763403546306639517357069887633757607464839782394274373007631965519724112969703074479713657146045661547774672244225427640721789206279754767024089441872195434886381071432291939225038871651163532529468609460987274688822015889931596732698467502389032660587087915861882234779961184724445416716867863063048286108246621914144253666828095639393269211643069356097792686875309394767232024262680623566584042298315346350716756074929661184679840443771626361300833646386709478142291286686686800512467446232842976944301813894029079559233300554470717163926242993778990362543974485511241520270657716697799600984059132163610346074801018796166613215719513418134787972976410227450991147256943061154572126124949889670651638333050986870072949808179234410578962371037194370348231896239858602753656626297220232212851947730275273587556756903523408472197260886780420451449783801468151665828138058270856413460368132787637226532158364075820114746753265535829300331994128075134563962153901731022549424374253424449739617596370343634015771090125218293963741210893218991672877930722807029208296292655473505085964554864394448816618625649943045564250480656193141485671423795654620766949556913626160410151439323048447796962805566636772683054410470218088375181017612258180982482581145230340605541053131293279459940007254244520268082646546037032980181965600249890582787813693465672377453698855384173270618372834354185779194283833357382742048148484531494559523236427006392957785595014352810458038083393784113222495523125546362048337179918229089894156729233141171361872868818725036459321026457189841444559671806727315618856792309592289768720087741669551434367967882922367636786783868343769611676507077550379958058952632988575288236051158704059138408134207500037345460203187376383258967770635900346467171164956779759486173605207919120840469647727039811093523363568926202264687099003906932500614648528677563600545805653275338331741361821387813617397220465922542359341294809020520991884629071557542227148036307142095074769463887209051168864146872530969225186331098033860337772564512572865262057170297549866052599045125607864455524637299110411628782739585882019051065033630166573729144213189212763695462350961624991779576683324605005532942129630210155070559107538430151752840971931410865758912534205934665101121121173552835621828805961530953078031463922259411809336097300166401871772376936255803879136668066868661521384296412028223532766748565329847734478319243183387154979058869652172207735080689083655436113440524743732127115818318000066295257790913995222163459289647775893663776874670885242196265218225246224936855170070074432687448643810026058778638810673292148504122081250012593061678745177868693711443793619647376572912045459547055833022916897242111312601269410875205126808216837992225260845941536935277312044185864054290776314967126465837444010101399163162278918821650238203387088990760183202206996262737431105115113539193175011153587873542805482411078047360265161835084429910674101975550225576318435707681276910390057228865599108185351894229287703078308184741481717472315000369455667630816632163172840042227437930943336269787136050688069201097747183337489185667805799295541868610086838078636101522757528291320881863130435599782233648448002045742191654185484822122151270166323926493537745649331908441825497647246219678307881608969088634825461814843462833254801868169412883599695420286446844568166966406298032614902018636998730819558256850462176645942990879710401911278665115565375250582652398936521016535516954526071271111215812676834292458704062700390122007798308326012571602716604250760523682935544629347285339837407934015708753948769961447598147725116413827068473682408133203046734309018770458345068459326831859356257254239301010757286637130376991263134526185584155287512975521137716279854570001514905523162252187066222164487336557936368422260121521709910642358250403780274552512062239116077832850252287896704351021555542335457481608126722889681346052293245840442907910359959301533822565912221938377312962709514336767586004731730137665891448043946967058991867231822666779899996941282600530745379091410805963015653070047893739760601523805044755638752603052816069669507329394663001993434022827839379956989365965757783051348953934479850737939481187324111850594882967167519790670493286469509383948338897710054346524474175311119317196374345414995785378984329199533952900593981039132882517341475955601675070231693447009445394660320370764901635628663154950501971333659788166610958246176143417464806741903251637152311333284596844403489393601568667448073386575322348235939613162656159958958098811677736102769421948165419151197018560346027483176444910676128926538540566391662342971275794148538295122658786445401785833412651243951033676719979187792657742220137845728746460161813276239914627206209432833605908141929640614816839968930431131519525261524040639989807639128274683023876556421256614305258293789809680786678729582671112814488208724849407865034015902922289415346101136705454645559217395492050813560611095799201759671058523534135673371314589745036229622851057475899320463456825258872684113142615157924061021758922846010726964530549505972751498031682808699247931521649520388880730650595802152366085828692589451320700523680423931198054719251900321597288765204234061868647395158697018527050200978909665235898344805294837653246749080005223226529389443339323311738779513283893191255382257575350508728511097076611282196423993665204865106253524615995219125213082824517696795281554618778974232975902070003137165813957563669764469319964885139065035517673027742737656063601355526050903796828989251736360767418872362783812042875746704329755701582587470509470202885653790570810696901631895129004430951973094503623768434530523619817916345082805511367755762002075034602647337660474741461037422818581889444451339959270513901584050020252583980069943306716773339273122900318787771754658378110938769815127852263661132206933412112708196152919433524788720964695633704049924613871596269791158671235835922003759380856675135421634865904172043838719078252098326026424370588655827054709146504533595479337113890171409625219596836059664284233002971931570843556680945634367613483830414233891780510076912271369239488479898419431230311891896204697585882795785314097364427958316418242026461680313115400549200880261522671107150068729134461139685358473691537261347720497747071241135513919093713701491617205296694993748200738009801352324989891845649268700757896164587376033234273822049184389409962257622789785725292133278402067671855769862504030687254961537404935223208549765888273166566068414295407430447139276267316252791947215649320824753240758430680648090757747511527893857557226334802594390558773659587751168357190769506810378002289813249218825181859937901427531403363594118860410126926739513753539625723554885294454739837715029485680107228672129287753350411405687847846349418400514579498092455615531271317927610320395539374949933512697164184281449143768421874900746779282905718236169972906124468028224430922625884859446467722691194583100464703733980383845243649827461585114377016620394446268842330281292083561796756180158362162713367638491215596183088523870988244017836022358971816448208749905186305410149475189157227881462582430923972239902668144334878629133089402524541146060487220555444508383945249055320437425249816433725381014621631003948761161765689101867763688938405370077754820599453728136616936230938955038862689951013449820447158231989482063964013927967215187118762702675145760978179099424339842099000642865137859420966281402094398755469161306326622954922137885238837272566663875542064332377937924730737683065760342238856797399253976644331898899149006928436803545448007494983253359442722764594924044100853654216936531616519032367781248450088320013270427513371427406474704568774605660340019296915657487701388050663838116915144904129324291492015547092106872176352759031578860260878043772652632139924418331587203287360195990014216621708712324643553789017781754723837007081472237848634835066702013263585125541407668984503136866323805556390521567688334270059759528728319319485950248048686313910183180978915417082223003052247088309760161783009111279951454094619909915570793650368045391700077790626807297730903842537837939302888534394109180067720654138975208631610483644064429463523082510253132281859577170158231696503667340785254553454320375496656028594388494031611775132900890132574747817916042866962654001365828236628810399900560671082683584897501539684027696699891003259550728738904335727288244028985745990445384866025780130654989510683168236954675482787656004945180350290735186376622242904328692221995654031559569698692487788480056193770603638033828989484926292793354997912207646461492585762577791868334901327859712283293854812158985811411340526075871451620279704811359348778671693356074816589685919749019363577794037307761417250812202319139218956532447195513322998623952910197933511399920714995239249317930394010881425718081870229941947810982154242947364090504143681148073199722612512335918550004587913244465099937279944717389473938008435894696973716947245187443096588291838482974682576279025975554697779573408291749832294654519407748150855247824674092602150997091681216694366653347417408655589653809894333033346762775919346437710543180204788837600858225716554478867281006385282098545191463015185876929119002806807942363106066588074697202875446507573912411608814676026065975220805453484624816492512537242606234546172872381349377327348504501172156799956139289009492680592253623556842426269470745812712347206266020053441850079672730005637758139339231693902235968093093019443935250023923521180466793291547182512286944111482771079637363671561013247393296927084339967029482633286333589553996325540812697220322511968450310730836331297303400484548399477209529769037007086212989585308321464933632653691271097719056260945839811516522614410747177880695921509984496355686151255232212973605363184253491936594512845780881124666794402922572841190010636893143659781427967539865478927719004292502963725688897750060990110850817463881785953463942380417816075992468544017029260056558211162409582303250244912137063422992881596979544407289624540864301175906083075258829489785297627242185965697075662493774985418104522106237424193129479686986639879596655032284576309182150613792920669901046558742228179266194938905172655918026162128634038404143901318131810962826784011889281237080836989682309768396085527113225868740937874333540731585350675246925774405064596088350764002863289408235634665478700829884176625484393287232690937172654026973375815666119083284135981488153604439817147730269094380966687875148853857085692525709087612106180641001946809376802371853125059125759923985997922747449296126832768967556117880715530106833417772658013304646710388476654965363695837360512357953526532057986093305952030338813053601897023867828162609256200670144892083407840773813085843356975470184334184559058994193284334684433996195326328408276031027919858955724510977874215198293238446326132764126590024442055158059953720555161928746491335368001549226130367367755360340359837891839363012092747190584071992107268367541260715239302209154068879101207177903270442394875610738991886124893657618138122894202748784218045089343369105233458890857229859389482909930218803908121192909090850091321354471642722297173816825709131993969672954087218234405608672059603497234108978298675993175681810321983829401230233824800861969323660502254615356195997954035133319534628787278370176481600801878218756070904412835011876900129588523003305735216380537748114374163810197714865341422735486874907351775779065812210644399657736532672838634831862268023430493919596761165096920276154584565180284216950244391939106934623075976283790419403748558582811441258798816677058315037661010371408344433110768496306957573134322848462451231812033292539946235646901491406718372231710082833856107181206183091073191006947093084700158418856636153506892856635240868583029818004120832135314462961849067872866915651836754991019315791006029090613101442276977299394860165540631571235856632288694571525771410674111944037221659120590980583710315384878976429970300128992587362687079756488902389599277303934279486910436803790691376345946353928617499932217094407500215803427158439651681326100949184913153837053195725043967131557815436249257358185199353374375211824906250331375279588097100050631951171304015710855978421397494667263792072071791608286993283519012514878062702594959377653753002267287875963907216149470235731417163158623355167551794965704670740391710567451622428257905315301928467693077410673706244636576479598361783575305116752487405068824188012514547747870544052556513604432915322178765253184029046616552790790699846171834712295188147970538022605703881135961948706426647607856589884650669132016235945930966252410004981599272568889466515423844960500515363531916712169464133184087480391314819556726306787133816897641679740288142653584935174623426839403762075638174354014292697333008595165627761494151860324347255893059411184954262852846455464285673987766223349553681942180306865978685968273113564145053033705499034916585957413808361420617679186034560790459246074840701433067034689074289314043029399909977357230665135260271853263817108683190292329423251722869781812062844125365124092330206780482871243880872408422273133548843922943406201388463105687638325732481816068418040671626720753683790750465101141109750062613564540045802814223886183673652245296307390464549839259856109774713547567473158637698782407762427266788634659945840751849544228454249454305762536833324274677672073315410043281035357261008863871191719593589990594930500706339348784669620575379720320169611988406844966569744726858314036824987790337364510898167604733848225126743128184534194685506018641069201869860467185583177177379745174494302115351017898726256185078384699928968493287697952677680336491459771824097304316615919023720889316709687132300302497758533593370763314225321977597469905453501280063286449357909473319403741321344804611042541006597968766935103933836540663457846872079072313766189048211134659285988594931946190736148964550680190175613447997744602671866765857198850298578775163449748042588941772408732417970979468050098044345551533458520568065596303230989149351408714451349076147283939092144830554798931199720222526514122014837319927964738499420275917504262018013119333032890735195477458359396554986255413554707929494876873252404398950236461673829094714710467746150205308175927213950003677686354274462903057036545324277208384595963677074057519004440538404660419955629241094660180127443407473567206081680986508742639883494924649469151849163319787745755235741752396790653018652371337788453913298396443400239934853892114668332535537907530802834938671423270349714977657769833050963186812201525310335673535405495674161659925194372204497931534978169939689359935189425379623003931131582001321543966084729366935152341933777939939619275755390820946948737390979807591748583855576016928247588485465152178644897653865010535907194201275236808027844293922532756820020471020782655386663336470235751097042834550012239993574670889949518925969901914047614805049158481468447324000046338870350033790335887319693658886370236936294954491086271657453984115754441266795350908295400899531283798276664600270030257193914400236080443396777278178638946708810453508021084161649952447957932962714799852287454444356758527490053163637000822881225889821395831838737270724184669646143989840859570596652236607925931841004719913000204535699171683022588570436549675622170272663139714911935510392099107777228075464689971323275548381465921685274596288423986344097869275229850482510375750422329362413317125461463918879923562514121936668596810133730917184183906331135385551630206439439998914689699902117158842471593706947981651753306092532012428906015454199076638681950584334641538309789199909460387426749353317997345362243950148920917564198475579765310607270747272303859393873160215486531197058600881093971583033121256894868052077996575612506872359618207740178598681659634005755323049391723649952866573819312389493206888134130335225575059817679074459147603689027450853671243315362420694173606135657513586456076268600938116461182256233652765404680250915791368758538046422225299657303764769421264520509496578302535277363767451303674437691476167804516742103221509019605569834406339473155971903088046705883412370848135463089119130956789470001552079133139455612799278093652012494219069626629217864578150928707625170444169721759354156004467570274905978521189952143474146561563030408028120966793141256529198593711242290690681867108512938315256889045128657850592049734732996676831883672827783720832234576565061723717412180029502324119484991787452994149782716273459741788214706828845642053263885979688241216545850729878028881551483898869629664911800164912365531542747115201735262916423697977257460561224310875584140820794302824159970155390392898025978119683558923307413095788715700569101821663982943281542659419779312085409235984016491583876167591559964958513309877476504606001165850276402187124407098235242596572565698395091939483093889962718505599152162146596001292309554600530774759022713044209697013177008620083276707328352284885552261697196080951420377624725555416219485783528257743698094776980681125616347694902645220728606607869932561445034556616678447405992132891540937862340523359314727927191962340745773553115099268128361563313556374267930904588606991982538308758142308722644254625301737897695795607496568542145377687709674572302299135743332231430555391087746382556099954391213314825582737232366214171152106474443086007669529218509086577862127096494507508493244631101656066718910246300325958625268024899151780311192504409104838155180021212785422433569600026539705890523534713163448550565157085194282189969284569218349067932664510554911028927695633625986100373946383936657081813282216715832607922225200052409934479504752002272084293505758802106498517574967665098294211254080725942130385376946467503390165095152354626127385858552223211260999703916292032174779481899023114586711581801040301711857378771223903470774982064128645511520624346848678033528883184801661622900269876664397165566565465835626535274815840363417407086558967425596546087261059458613828950605090966171328943333064435827587584154221422465094200531528050034986042936238965796862522402148400072066195513558188467590455422516116296482858473689242852202088442011538353618215788464072600934349168990768973988957248577706082390020317362496207317261678957345496192787041435246930633719324788963469220533842713245395667570332720083889532852646505728390148778172971015519392798157073403293360116037956913735097801556951844433960005463997782004116687221572758326850255079625265780976235222654994949576946699421950835680620883967142117602934023045322449796695290562356870215743788176756783715421397757517273379176871106679406695171441967048107059414220206246872262005312165739404594243123249174480568418794075953631958968589065511221699848213616877007917555997597969127883855829569518519600457208666493650022255039304888246267212629521177825756297915146592784163490934152218083671904837883269458061542872268034842874812351267427624366245508007956327660447563981349330474013988286070377060790674217975508834154107748484547015500379674546334018353615547164376701469605485507583464051128562512443724104221130640047661989675280837334178261512585035439996651241272787895658930519017276072662843444499051355748090819702938346356080543436301905006238028297330283760028076241029563783357478545816758636318487594120644515482674778680846643565558235471892406403744702634500510277828717694258651236905112012833652884926884541999551309868171155694329686238859354148099133636686258652020139750294986661867376091513822318723595100447790226679104387251734171322364347287032379775061585953397108018804087074345443328869507846657830516141652385238568042153022672399952916492284849131760792872441805032309779201520896844457366967973214886838932161154009484614577587189602306488119668985819593440782147283811370117825717508769930210016300480921337430028401437119241608583177847661780155741411581210482041134152385909792544460050464762202614988678509544474183629313897137816903677856046185534176181155170087174571565438062298764746781550512922714545267183433257555163164879481020703528238461166704147031630972561240401338319596062839739901425220083983298447327715896441149292939535774546102904048033698463048305063845677424252090190742962169664253536397565045848829457414388098294800422057750549214674720294160895550046960705963090246547897918169356155499327226978719243385310997627853589216084806736665947523636033656966393424028350354218258621225465468706506876472606358267673866725172945664937102436224194471779282189031472584474267526032645721741374342879477610706631396255969392609816321642404865334596331350426227573554792850885254627366917198001995406348226039669820505583610989396751290785617796997674566344950155529190653751717149333138429503489621618547652765770044630447277738468550932483129891379304546696522246080492071264109920226870186176659187354362965948433469446505051297880280230514663481106314870435514739316558740497082104227225039727289297584711103489989508786561915041787851161151641572597141442553432363501417079809358946292260110499597579290841023351678448851327961498781368802957098533831281586708631013417952157789759515875621711506834775373176061052779931764452554105035356964441768982588957844369246004599204230831419536153150274329206965664930705524311200954750226992520222634115054538589049738050202339182942499934031614580046520839278508870646604398593913551299334023879969408995230754880882748976490362979322764592523473266856642259449162737199411470231856767952205822028465678047489622923604503695151796956929201816414336702022073762279022130946527128121273936619054422450659661063044734981803759651700635210330871854923184271593502831616447480627703814500810951681650886937143071640808286753949774827042345666391261851977441900428885296493112271476291718575178970090493981217768207941038189846593549376206667898287335611055841489715535856554339582197881985872414751512603083964204753147195848397843412077764689863089364698854653628960917788905850313027550801626455805434217231373636320237678233446829080110928768513101687012703910059492472021504835657019769276431727437358975398560105972251603943331712856846816750894083378461313564963388950794880235711352871017572372220937796038982673944861544371439113159375155999467084725169922013984323953295552316433259263699311064015231614433832026487871956238360514862805118780235977531121081916641942049107138563465359256764797856430064505810018621542098138577017134230248156194120184325248214965341503843541260064383081231287159848427017166134736765740020278357650952586544796426723353420756367980023529161967619868637110301765705433145886776743426669440146928110752653083539889130887487555207905015737732563741623387117047672136329031586708654889564956901168153939081351226599637583922648729467746563923858408143113251286655676028198680361299238871248435223537279132922098743626831961215234005893690375870484901445157483302528563142451149786603195966222792344072545897094959105887549592803362434799840383251780154394889063690613345191832413001477961748435558405662347226308509329071714255421199258312026103571683916707384902274192375447160370654663643317492819140621416674567619882707883124323998598653314295633886450383009942386630910358860656394599041456628888960075596422878570089674369450849066131736769110164096458683207258024935415049895084211314162850439886651563953178664463517073621295445523927198382873780332368941059832970155687618348149808834851309465768158652182571443465749710891123367076748218268161202929542747269578751587364139495305837058861467650083018711760152519608530703350922918693744953076577551793887315701984752811997651275104286443625870898595948815600745405492284425834385920314013391829955370307516337170974686515966898068610461549690100182739153647387247564764613427145092552736238040976873820134313734153522508192628187937709599075147781294555060785019290988029074992940580435650842248647367593840002579807427412472415748811742549791573301408538319975658403852668650045644943262308598422180785051286338935454413697877995460518917299564223691061882601905190780652268589144980373855446822740039657425943614354138119352356446366140736913653787064236800110598515487512949057933650819629583500100334693278881978984924902198083315908567831219151805417624289309038726824727990915427180791430106620950823002756798542426069181147169339111614273843670662123866345883948297690304795211533233838441234777986305730367937144925165359239330096164597494612217018109060844242803474258789210310862202088505520598135317522968301997830466194243155413188870430367838223524709147497099429856597900194656084473298697817489424099581542981498002691059506152524036190691644787330591838665068092831784254389741441342132139360391126270818186915553100704903420555364127389316670182647596756499243033873570432524082448017728079275269412911240947182823098709811114739187483555560459077672213884604945078812149586787219707754688176551241305442616519687613799720056938156653068200002953702656745645922030423705430756154355474874102801610084059026060453825140487956383549712206986247475635783748337855150099309703273556565775275490405339204807465311906943420077074619233024691725896425234987864889759080155940923577994007632247586343572632623370488123031838812459289049919333571038019811484555251906838115461501221645393198237795726360239869757522226655054545297542970430547945095859155588737038322992305319616216386718395650917280207247669910809495159226103173749045030407869379362696496574411142266658689564040389970122658853941297759713432041889970765718270176542045867321454181314620307249703038176349126378056503378065909174897325127858378427174913559426758398148966724359693483546784472595941098480596917373525087258382238575262988347881730928835395165690176571431616344633811742056884523708546757155101769924008101905899695534878685778310985437645666134527980952227142173360728469592067857307601092915405680134739624501048733244230188820053763400893049116866035959661205503161203894728661410488986796015006970196894422395172434775962029057577934524980675048071023891829564009094950053372807536183565846547352053987836852698046306395816446792798782865960835714569235760264503653254106412765183179705545837229414758881062816362093496827947360211154513436079933560933821534520464450344426740035152082942036983666687694570523431880679138536924094806433809923426440528141941448847206790360036265207600546016158450237182756471808591003212625354770421540013101782473885328380721518549442818331498484691831271395457746746884966269999601348213533742346055421996977345804421457890032102598863396210370954888467744388290165495290567882033474522272302819523520100171021021922824782355657979943066096294919708527169973270378424101841369450257008991636614575016042016722534311058897792614333337108244154060721304553117015142379024305424093926036434055492913149651957063909265448170399268300832371436638442540763533135862468859072845119465604750320422806929741301232373069075599693363371575559463681287918636816028113664867059241068990285768994331944714789159711282303227985837872603293745674195220216574356963109460930523083766626052405672686724737735517424704934835414622252872735550627939981698019660142774333918739443848385108020042086263047570343054634988232760198848859040760668922162511561572051318599380216885764714318479586319280642392353808362986387115151188764140461565142459618156233174892507536380522485397940683818470402226796109534299797574288345152033689321298206399462547089362088551911102878617826715024761997484454926810762913212837930793027530724601754167860773133749723252572899491248612557510929475637340442976418592046966817818540255508809199749531862814039375253401555670309845170621721826425898260262392267863293360586778425714178107935246580736152530888641420076505624749668332109049680450791603906095407601161713222144267775311047431205388994449621945057926203116842050760887316291371919176535490712602244106433801279685904695763222106138065763271664156762160104819362235722794226030002024901785811369214791931296104993544713911750071869318546381377525822659276110765431732019923432319766552670951495354881218552669578442205521087906263105003220061040537410510811473574255696078788184338876261923169932744069500704937926361672885357251644189422276921111708064831671705372605084441122027060364043523220596889554807651061452474229303185690739966487031477672962822898630126713119338848913314737117946621016958595297062206861965202489153261304712828173190342101739725099934552608161810088327127137902345091253921520745990295783094729518483675116704303735795409549040032636702547614848662931141846168458635771343594390196744933714831788034735258818158851097987103238748482536609887855609247379412358684225690713563874565109817916893475554297386133702938746029047022547917682890934476978489483152957740838088620156669177462902512599953936365550072424486634751205505906988396825768284237868459430263024211925543347451843688089540313591739610897130457175668694729742705820171508698566081413344848108018451460906880519703963647549915572066286675641976699459399640684830114462265047588836572156707140071035903739451780262987474737541500554411934547598913839992654378455191368201991728903880390884668075339330504257543688261914084365451757407229975392362347388453398075957379943001101969921869848325234241987559851205764976328552241429871057457453011518138233099185770082404873334291479616524455534601198799128091243236115109061317502441750061622103449698847302120418115619189254977187960558193218548032411710292773646403337095573072117365095437591780099236431955853536352158815653182698168606051281553543495962069917423698112529735026641740502390631176908315540230942803157047069324483537029169512884251473427739190610059325686438108358764450644282209707046208657582352574750773649070977771657292688825267951142727035560002680521587125132461853976786094802454944031046024662394998337659231956320361510003656856613139999705299971948899628467410672754937662082978288200131792998696654047159890725558614022694442517207269373081676413144121333212704033365495119092956998242492468658879998621643631361777667484171274120011700309632858227822993532319230060772136961785462834957606718606162846322647844904812638523146096631416861391917443319396930535782107547580677083859189932905516984486407916048961884336297460652589740339864065085636296971835572370915403427413893979938221310219759774940051670558750970558088395676639860890026110323443308164006770072313416936733236572934633722882991764785535566185506592035691544282283626499475602527488295567087314661689409323374541939373651882785710711415535062790918171308922560652303170071317032897017420174043003446610705730591622482593864075995811023852864527930020648515617885350534767590886758876150248153051135129125158479290011133001498033175820061207581113861357246597867765447371959142758868006527154442826746198666838909698268838630038664224243772945619363794435692729403722562916891791588168684820304492053573036856099722275843376688873374838454874851843098899791840676277107806962330598266707206082006027669009523089589896059230597506079324809822804093113495237841634375858058779584452303705895788241283960318725856477869069644858997870939539794529201879560511197653505187454909965588910606804101899973453173798893568692192296112009085753452719040219623229985916272030740887085918254905025494564409719488010804874681043755772581221910381238182471391102901915181771967683824623552141062575271357659568759274821543012990806323062567384690746427176005354981609237496940047025787067890130014053705504541696602129144405675049915204298637956990949646067342319899286348057703013155146809796529962967524526098211531305340502690885718150953245613953763155742061189419053355622656720005483201385298471608403417231704171377390582514784066751692360676608399270454430991921902303664761767175267021391160029728412964094259382828328850879175078605272052786850586022773988442624436665871583027047874332037747299794355918123808517162936349939048404247010865475419187705703413137450487666773759642341091494580224166729165040637094063051490257708028710911135241153113492500705217856386478181058413008909912236976464118216213560197330219296846602007426391843891967078934335447470143803548818312828231515346625172475820844904773347053134626603968209975022934804637486680164563391185901990193505353222060821351400476960273228055862621245242424807309555696770679047846628060549410903869549656244756769255892358053377778124028110569042303403592112234590204288715631924762983846217113493328684063664431950974997720980934772155340598201707928520621905910737436106763395333761516423081630567945774598172083571450187592502148758258199959540481869171447308570688959917682853246282586546039706432631801429336961649729062885511220546545466097895743390682704230771792231013933646614782562858828390436161005538117369674867239017020879957790094084509096276072943747541525683501265430456233012749277543373173906147652938995572907023837212406761641559168283180469689376235303613617288703638044984250171495364261297653515453938093185058122736123257764993440365563335829955774347341728112678169531436788385232610668358137635479345335788382175158964673036728214730669284666189318561584813646875329202065803643120960274992825165290085914753364243068136692363214829274939095361659035723320820129622647445280001234630043366991232815592604629054333673392526217730156338074583022405210575443919860611084053496338081886852525269351558870079714739963589981286377694956228634222941622305729144393271996933348884877353233257851062575315971609233060633145668724402334988811312193394237848900296892515298938806886123067103189498610829950900385456228451092482403819607168068710343195670267761557353400497976322544739424795041676762572922629197291922798996273717415463734810098565107692624624946481045547183473775502303993741208699752183357353157691123908948103267563722946580685639591814751227068584516068258141346576059472924381456632746166882483955515209672023454221624102443333292931697717989970552661896606218507022292923042937043938378492944276924834922016875693062544716064127815114227571232156071265533872595085097053100232656762219315716096674079490057430820177310141695662814006647326719817006552789960749006203432928116218881355786222821882255516556115792577488875328323874584113627823095755237761741221942859249695789231145833430101186748556657242854194851264437296582177932073772555939361464631235228483318507734875647033978337428994673968963225198517132701322796231628758691490213057463293401784207729085350306421706612738506665103069202749088224585066916193010198091049649024639615467408025535455707723756031158123071141654390603414957777613549992448945704224487318761423668098621422478328220269208062435412889590921743293601363389816858957214643155518952574028226753505712710526175107285690135343031200532533552490647507897344175750612246608110048986930479900954419958116744586854009246731439444144492867343578014116290970740362523617525435552529717739007745392719480776279616088797995118924170369093635431372182973355389974808696053288568891963923693571382797261479266976558157484540839120114555895116282810487652722706900236265114804678231635322411084483178875977721428318037198891642535464488215280113032635362024311253988944462344157565456716070412108927554380048849384760256362132146314026905022501566400767991305399495381449753632135414344096493783366168281754954874234414193805309921610679056727477498536777767953889273122835691326906997231295185275702686942905670574966030963734699812611080710813311272061654704754687025876999162573168116020916540875310484781783202117159512264821521261752493630926247027088567509858685277692867926418710655409156463410099166692825319163419998928028401113619078669865847608356751536971225805512531427409174410477866208162797208024199160575124075048362056545430501708346859011401235431423559742315254080046496223920682959357172053369923757948625656236395942743690817957823155839750310819151759579786675350652970579841316284048980093315167216175548936273415583908666465912370849106139938946795517557435167503920678659833567933454142048577562279032598022242815210182398866262074861436383239750873995925919170333954291374005844610423868756490688043862725085833906242747795452146001179696316768989474255956079247065529072228228324911456563048328084162977447149511547583964971658152974491566198551504701026189591513257032415564472432353972672848636647815492435492305321913506091104542385326506275129913155017315121858288265706488475257081940795423223302488584973130257391675706419865933167171977539207965361278319271094666069829586453375485287391203131895617371379498172387588645763925836917575790970225716714961192005751773784197938315029418001955692229940239397216981259640066580313050401739152118297566951448548873029583771752448787952128779898862804746729786461698304431230170744834919179473797398434719399863993243344741185373626677337489238192461157019665431457049036335887426898634696983523554190721685656525560564594977146566987980148972112824998235027983455049237034185436700658929626612276595938815204426181480817731635474073727861836965615536910713744239091474857054226490016946356276415365333687755474132540375531503991537695021262189738225534853644414373558420299489611257256843792502009209370854886526169211488535619009479183901585924528788137012270668165375427143078797494724822880281588357582444291681127322935801709878102501114711639923957724120854919543375576100430354782880993956050710486314833587818361506548019444495369712151035839012610525437044067162335029173316416072633514568855906479743572065010093188351117816636626404042979182193475583141594661634820443586665631527692219865965506677752385405160378022452966245861876958040101029590784684515473924303803723798074139277474874828040989038225183211358973074199389442653608279880803326620161593303721157987830194955625856998981287039458969295383834327381918185272905637293747410477205187176632841686867554920072256252599469220489267216468344062225366040506810889394417815969554881929642612663498602992241703833508528073778258339631548928712170486645637800440727380702116194691100554506767436105868668235027046749270287567529628179440323762692321061640939813330698463418882149024175739310381524325883879555946025480335792874133237500176847496669713360571551141999446960756501213898173664078006124311866679691074455613335364292282209405606445104919405567477297493592620874870709918626747653421515173723252368702249100164233045784460424680589547726657418161888882945661246165215226453128670351432161953311793332715574525575359475403328011255401497202633900043752230090759779607891425649612120297787712452868339773840354241630211375485856349560213204403420889247838723618037732798714558955464258370820463275484121602588680521395651345351652530755175535983706053255446906536691681709951864364883661992084509725211695209253225936671560056029098719802422186308120994016891853862512651457609417999957161260399043179271287495187509226601903057150162085487193450096680624992719225682306326090751748364642967473959944044748217353895343644422830148216728660235522480018371046120160197274382565528253563866126532556461428412973475426747739658387411614675498467481622676349377939244318654470064153905621056631983062481798987270613299213714061330207463285910481827607060014010596756975779324708486272241111218328923537330538521053202683069362020558774651716802397530571111505095199222896334222344769297708936050069568502935197081767191453671070187109151028018984784326643591446184955793982053145684357801824944553225278891891907576899282620216303251195340022872545986084774328177928977853412715727858077557867593355628199411561415226151797391860809891410665285764229543967441724658712168847932979734064430877241314590909505325077570940419577023523784827231651839692412628031561307731498860365164861533572437552332165424980590291908967580267038551860875279746554656487441915604866241720278689455769315568561458941910383089259916893528503332976609868756430491501333642618852034629964799958759560791988079281377494921284747929031000628851112611762281621194578575479589744757085430058701909307837292448376470961250197413748593608705400269519266040556320314797114650434290342756995542265832179992955927242705777917557772261680694849110150730379320887865707994919368050872304236747585962844420607051552493347004093222838768015127012882556039378298109085803480326040836451554888951067869384485836435165974317130463096428763564236168457133790663402148426516392579428756929462125478542025514797864551376832554225641391249256936772985282620400219190587648999204933771056555999078670549895321092601429155970720917317398687464304811762069536380122806641335624933389872176401797628855247774126510100758335467750706126411543506052853261353931263286892895982688659040984620014756131915120219998634025872441245942161101433122270557464900408702018432681695010276159702763594590570571342590157328948799964396297720923693663458674496531679747422637574904163403277444202873215799895894683777261469211659627298687643367251151569479392875555429061490848324595190565504183808030256354076468074601356625715102728938727668410851057779329150976653168371186059928173320335658923680729165940957081958553651184436312126750147826695487273538203249625520748511354419414153150182930949987832070059560886802646314393766227784971001851113435373260109833935578738896590923847257005559004151511295356829711822510565789457379301757509827322499419004192512638993044766006596979545374263569666744457935404993333073345851865105012763215187239909048998217103430741365607833037463010636413368291976926894895775436987603969293341149940709566550643870662542834344904660565604391163336165632718160107639639334437249096799107668642499553297672045185466956435383963425827904491474233214193525838458437941136250770235565794688013175021803018598206716554729709396683739211226204256038658498043697320831876501310015259938385337119668127718321237716087356999790869720263395922420863745203310828978809857064356975632922636916518293421807474398110175229820215674316775715039217784282230461391490967424691482869991841985029897724070950138172145919180356249134704807785819464177071869786172307180195255680813871564296409775818657785867509561646485218856514055504359839579812774970633971151982922671876219695338160590248414651452983494878215108768497878986744558844519050664618199094775799990059677621134286898549192184377417396466486401970516861808492539801734149016120602120881556108920534653359561434392158794213263251620790041667685377331462575823067170790658034208860839115953207756533653199671908784184415801223828882980082884364270425160045637991200442627879947526187052560100038555873908535705922499049557590446503049824816628978204707818110809043555369893211893811459379204897031306453314387077020567850409798117755827934919691457503732288177075759737400539411363676337635168374504363111479884206131378410573043507115391337488071680768450265361304723663660909938781281779722626213500556404778016408980005866260380268750590050141092292684615298774430027036253447444564000288243440496592907126937191138074205616106640219969961636747270463495969443230094819279136054824181368759891283058591486651731773760860453658938027291598029596964295809365901314806351179322404440053790546001308049159946624044792028789336004900668323880109138249879109000094879088173375316796076534600663550886527933849069856517615677879046560049720578973898899260601003051068404052117889902003521343942325065690095314088443571237643590534660219325749902297349357196761243356224858766010122008254790049103392706843818292412363443429392520667727402557868103777314679126513451194131417903488215292298439529796468479616191371359033797705513346162114422710828146508134064113779054772338853007745402985557450022328822109201861553878829313513933226324199479409819881565485711574563809358339512872688309828282659477074376085425275296652580381526393384969485777624841384701623024071398807829802224681993431093336946228625765529365223176685383834334644068263980576260505008915418138677044675405594342703992540964418782242055202454204899116108439837244432432501524036901530996911788425626989033414253063013302721615988260537490951428553382365913535189995054152293739153829847553365422843211050748885398046120836882789253992208926619121506698691955048474680349074852634999040319273927723593420932069602943465656727310068605759489830493947205689710958348268829677781386625840676397422629466483156971204484698370178219827359230704687153873215653903280797615617817761846871470725193309035796701921972145480268724218019724148951964711076334137683842829996414268090740826338106586400271144621596412763056171536970463997497269869036971785945395368250042215070697844911018685319229704939594522965247965162501398682399476923528928610989163947226225089391111310791524492756672033568183613327912928697494314043604262794409362672951526592357624692129229849992493495143317781604869843172131350875896966672610374264683457539954561945382335741016364621212950250205174165568502209464151915398679227310963677395947306087460681412031314623082197563642294014929405957335682196304126680466059899420865025979571528141086366103004601471445985057913154437264413389303168051612670730030262705602295833216534057297807137268230424445573429930645514958830590390272073335699416235207458113927455993433861530226384091451053341582535740913559974179519001922168736765346395873169444640773512894129721146485220292947757994833098517058895756445580418743283080510266435725941804743616358615785696377445447555087005958246042007427736184926070094581993292148069637474304176517907208897229667032190082522992508323352776518519587901781500576582537498531011185674731612340679741378259508868594625642731253622119358935656333101666508469929200962247185535918840497239176598819342390294219305559013655543817203346393435845823448550800914571904357767015813824279368468468936220867991822246048720319233145683090834051489905588965161397385811018830851902617909865895207719957208386337034531921833103206180895265905492136601027234213770714609716305742938433630159989427979738333105386022967952277973400265754638086991854656901934004063680878603594119809479145041253625887575932383387676449007806062320891588050536995283120107070430927555190436094805606903344769515535827847648233534485014132061922067795955668154427124082222267785184375781805730236833617644394007239766371060447952545220159746688990320015085398519623912751887746281299234601960355224119363192724443965594659975523683394307338200384274594035911319906906695652737710478382610532264117167918956456898734178491638863417937541135387065098470374144267006151587167527531694979941510666524676273729554353813289999736115769510375591867105051166345665213416304678070610817413519387397092049229781475706561019692854301394740230999096980196455350193775053863327082618034906497900487354659065838001643297101396209547727576766908228297419823210207245910077771225515468839721350472243036632761635827179615454103736585540202552366283526954468656536898425139805149901481596414653448133047404581157384471227379899148462773974718475743342223559147968202102783258804553797748598737558191995504627646571165361582707405440273850072607225031486149326809028721915946657682433248576220164656950081446419872288393212330426583947564579245457770306560608417050123899146006526221794441072732423023846490140835375183008643813946719356675518792849828459814805860945798225905603954253067319755911020094455286405748006528672223873493586333998946568553267027319942818472581375826173732634067978337834398658495821477649808314455732121477122542964162949166681746167638755349873689184019281958986737480793546345081934484705886906969704686413179921813312037957822131950313310588701005765867076145280813857966832858758209347125061664092239129155074500964770232158800361150202362336364273720059018243291145413080336213969382542896818714859249501849355163862903744588010805521148857614195004776991500324577799744105259113138896960977979676041751442099958516110676390691020443871232841760659199844302870633542422843716231225690887159043497225166883083259800426663583342125068707937363062579939595103600146542937950417944943184872611883882277553934965671965566052163989414785261213638921309666468804707285450535134591638945353863812835937342334039327721109745899396295370497953372834721706410079830973591939433799316009658970545044743321086813245130920813645027339696109182486792315553747983778515400711278348850018777391393386476344914967743262950872034292762281520852870131115867181392949162615746880267327123503234909625471819464690074591056023772528287756775126154159220698869265502726766117575849814101309468913693838918000397620020479754069410696344548430839657883134290648592438135546414902677551392343232728890925904858399447395037765428634597348720747988451371031773052732702201967021479727176538128745284112965702066114361974386159912458218506687032950608909402908699668023906280595761935513768985855587661226378712052333068368081515189220195899312340480391627394855862328964918218874192190426419512885078496506090648231868236063714464912669377834973527854708739409710924499871476876460170094831266462953239167492442500918542819927270306170015244989785749776192246737437581945145636268966375464355385078734153761247396377344834776530995590030989695742693716733592502665305594015540503400299540457713233615193524900888065811643024494742291938196009724571429671762677235777946849082038434743092386368812846007857290147379429616439396200698184105974023379105693090817383885084026966563380672327331984353916370022403413116332121588906053261259576566560280952769465637123620683861268777975697058402866363292960289233084675429898748651018844230973265105345505335956964484574836674294907728108673897000812588959153722016210734559170660991079596802104688384382345969918681627650548273761491331767029831407031646591710616529533003745959289373051266737141661034705242132607560040437525962028435384918882013768990756934407492958092768993267877446319376692632277967871165473992215006270780037979814354477829732454889422603024396758591318402086400885909009718585173740764612539689860785444465469014177239689716716603740009873035147396547670833670894556572657613073965678004655693335707712623375818571317745656414534603647881419535360148845670000477558490911156850682048440736364646820791862607879138773298306995459736453288671194404534722842100067585365231353654491994360925528109214919992363080110457562628034047024029601175415981054044833065041617489390741680136088316230335754223372900639425938532561342228385539072543177451468458337118310038100433432391496665923504070037498181445732995081448553888323550529552039222364344829283215842560208756488724282733254302999462106231840699262312087840326813345222320354323875813963595968121994583457990843224018076789074137656573027570896427023303632319715901618310482961365497948148018415687979541236630276691920337528590392729916279738544991126439825501382647444283721502136721146748015298168918541504079379915165159254620777316491511199109457478290420336230707651363623561834383542286043688432526408334136765965752035380586799753459971613599539312914311668165563522712959580553604207667777444784867154572700629048630286713836084558908153216045009310847341665881152935829702365303547752839332005120763196730387598953917311717512481002549931851082461137478190736366263575195315036957910247544083169735286157553165354018483420847703736123651232626426962200212775160532775296642915558056611741111740028646908154006938669833595402542003611538882172827097919515731878498027563310028049835194270301109238793860809423656658155347859220270732374091566375050353465536271507179270283934506424924939037763595517746244751345949979414855700776070204272975968908074948352418863074344986873963261310611161911653084002609047283851980714330313356172063366849090861797753129416763099545033586164879921285947489200418582927485643183283672260580492428845686318302798753165132620388216320671393816656229659853476646998868279998101142049445961981309499215937343083435070254800986950038993479892690495468222928497766605353307379596090743418423011513210815896841928103943526931384640824020631103845984621963830677059912641612839657956879601434222088024814845667206194528791291033072010628567672108215618074105384681273853694398241572590747086881717044072095905541096740250339510272544775762108355820303068125843553378704686622412497773757677659515451156294953971949478358157941440825978159299076839115526864452148489607983105773343894230565871692685310602438274339279449377846184359395769707151281113129318596754926735324895530159624589303150423753143961877378165887405855326384402662560687407559865902944900236601951290687925396507860108317529521112331437683704185942528902775334541479911728357634179408327008987748029603581081758239956816879869060629808990759613000993154516751801083244999652834440481358195332304099686911617414190406346938714267177815070952482386057933784462896048726710781324254079600370081089846696652147317728226616389589182751751328761744559565006579367093243635086632776281710938363306067169847688587604399126041145015202588471038763397259155378887482402721176333515194011150154119798462922589715465027904263133701560718709621133134200549562123823535084533761719179093723065362109249615911186038832735013906098200285660947511441055346808247695838427743455660451379760895393366988449415266609538767651597717366414803199212697940965391820503057847188763006334762390889051378921850255505490299378672608332207223871873927168980675877418865710524505137369937846279172145570808906988630524951394429722295706037377120753871090900469740487384043094444094283783238754914657483579299315196098863552034766976981533895211520011284927256427990208823132137453792660181034669269495102885787773485987229896472859128500472906269194717189953199367019675952779399812362043834586233570340846288278954881636859630417904190744503512442864090021067807814443032029302115368514297457609611775131531004033598426453021550144834566848548185088041604220480528763884524668183055170157452806917729908387663715088111628969870663299345618786885555445295669508771491186223494295702062204619927897986398810337095868330714711460894474793154998486568917973436798189479678638229771057648873715213840271478171377168098375203527704645031130914316127132556408574378201152413554765362543225727121297099717036076527580545053251440193498297398611921505180237326834461819630182873583435899595434946144738391140548896005557958714641422651861479396704327824015019198847887212414854358663325398140990553661888324975317160461465883971192120834363277660784084822676193902972580009290660938995417419779052625163905416640434857109609716460922812407108805956486530291581657447553492528618009065348397551402291171461542053524603596131211958071131197446172998414622049979757304258567864874727396914222786518396002621374802811650062870935779126229635716122823048496728771783955102107279220886549439245667897154103527052576871616464165337419923113511377705246045900064377498376006737500218422673535960271357499885626337454970366180567106813114641818184540109397667369206263321796415298911194555256654570427179330700742127954391954518068420230234128182197822024898070737915844610344443894187570644741678141354924280924800830667240101596241163605476566024760841771643144460607875904395803133279664091620979860384623906840014055141618517868913345094838691978830529937774454955154120029242840561685313734303169417298310219007497423219987696299352073281953544879310461685303191905963308319381918027625227819884544540401915110033358130601451508773351558752922383233030646593549073170635863584780054506078650788844192601110927216941673412045478299320037878651044968314158736280672470162811045436124809203465674691529176996558287239544344099682796517084597735924217500916619852853909699082236092026136974783150754931318686524861531684418087171734680485826191529947589210289996793813193658218542556257566496773540848623214336528502961153849966999829243656452765343950796742817489997936928315201071861568764746892318762214954829634408396610378252626676079597241590825247382415550787449275169368522422589586284283028671798386117883963757530475218218560274425182931178180493532820813242373905885995344004271261698069998662550301715291644637215050991279921057610155690718261538649244293465892322993145418585811267570209785664932751689182411668512460707507428677810956509589881703033387959781550907118689378929941956888626933814090807347319704752419785888033522494487073274946461128588179906507411964851402017394290584729883750373878524340653197594268288759556562741892163296802350826997497425502741459150972283261585932596474791666247025050912977768270896695460365603439777869226848171836134874538958340491763975839725490085676251291812277942455575524133218573155305743949155082223169942573469316270387218443233691839102862258634881432813573066006239294345967388178213984685053706518449669425621466025269075811342796900288766527797820677255191862102640852094050050589131215936656085927835794884378820948135386943776281506094399953199722258995029029394506188469323817921734191490904805745459022298695306083296163399381035816180846350857919341996179284869805961955182319970782702608838177095781918257729133675170720904023199324267173519636391235167323983203059674682616441948059493421913607663377656389555822620301175702935446874907209930962969964942337422709537556842089059230825759498165636332216507897663522186545489124185306466537077105227393426948573880333398670934177807710616626494323578666484631938592475422083557649224051843168911885980198397885146737313202235839107408478963465586545712311332452367131178369961181296313512597619952816803727423208804636085263276389583346769564625874320897474798512021518436342060129176732210327976855944664005698984793247995337318517241691643051270350718724801324460522291364698719280818195017983926456586137784095748292953500943561259608550126293453992854468344825385862697247050725403411278235919166309734086945585011568150005033566970330809573281502044626218203685236631679332658849717236058155147960086652862677363707378609493360205082464513288185872707007412720500082409288774246316524195804616951755123662939395751243196355774593605755206569574864089783652858602012757184492082920468004065131495407990880838802408805320564997772213252235697016990331449818551257131202023571265384164433057445038072956407707458072644975107628513507943619602448302063950317245910570011511201879131563634397611091726886476848184544030543758936736886230822884298233000020431125184193754754023602805152502085198217963312954722342516166120085615814467140963695908527116244904431542795568549511469313422887312774056200673935555826544167573682911259943850527693980483132320963803616100160121840636707367914043997597721235785454291048963751189585936718011403560808876625085499673264762185329122370092601924726867241511708828621228806950705373370262377851036750176255259451478385457450586485917401682744559691356241945019645007993262390372661823794510469315298987893406117990538220737109308076220827662554045407325407761802401397058891813979732358013572476749341897949256130180459748478596805784475057933897858540082835683810932858341083464062960312863536952408180273580606754121826166898086008251079603410036611374136905939358132497392193006961106453928021824571901719790297986138344334358979960076808596628394465130620855046428979287393986291843985198139257604333064523370238852801423320774590859949416401015680058258576380308741745850390694911514608614871503910093096406210378619148558763562967015502292819863237521344190888931377833033220945357695872775497004309560760307236994473389520579245777795334683946510168800265412469991014708429893792135172361286872680541858197198192419160842155672544762212606254566588150338574715613318149262721067154876987107392610819155537191587990460794924392018605188952133927048116715053449633532409715697700459536325067552180592380932737806319426950995546504259722752217825281221564968324724918122271408303549143082904348504329358095163863209225562864324090433073783422073746066769503112966282457638715392322307679019454287573916505322221841969562306837472086674134418156450500161483540132873930859298644515682372499575752057867097145726508085784857201508152828769340080943424556981250442472084393812724950734470647696340861786873793911615484055496714809013863858941722119404776928872886395862188351819359215123377127233344573860303203236997798224971915131582530453340951360202080205552416856033746437745917395897201404618076127442352419018382187956366776319533646852096092454414329489263825162576685357985566828607776947164996019480154747295185579158601658453511893108068546189072080480709794685638783175540751226836589200553654192517791289145503578869286072459520618553741262364355737289251131715538730993404625303639471844452018964875820960150820027178152791349834913254458026580774009334111330666192599821832113229674735487331674566119252343207649121329971512008194953257960091941553162789025221129749636450834477827344886527811986198324121299972998618813294441720580286224724042824787494967779298006415383951280774808089452922706731103576776875836887439222601841822941918343902778238474832099899392645333851263391074489885605732864225859394360240021667193493524412096349549889858048159934320201721116269337022882363375541801924422009772573618800336264849896895720768655589849599700149293714191366523277533789576686237110862298243352042717302606304133088086072046656531227414488268058731174134491902692413199927307489301533213092770265200571134971963482159421066385065402170005475141878141271152607934471071298933477401962450513890615277279966812161456224995799978381998617514403246462483676532083118391932502614783495801541612973159283180679299986362709088461477494416361141184964565523490789421284719571402260454683216893353198185918574123355932149005197544024571180878778165421619489278610151670222577330847202630415553547406502778966036456344271759324404164308985502181006294885462825737952008259503615531778957573996941617706322857526101673033842092703170046664492911887937469503216817343368309841947873219220569662087386204860527696718993495428527392550709557569214435547704779542498801863749623730073391640438718112488225080882346404223165857151963987364713570713102515612935261419203188194495722304667264994400893557395170553526676857867095880564743675700226417899923336462167796022351938610200023397589193745709710448854674950799186039572694216201237252414530612268119783966229191687280056386096494271586423088909429062435539646992148886740262380712597591950671968863713946715365999194194748599181711555370130193240931804262268683566148586749251315883227779598958379720456496217353273717406777540257153804058904503341798586412351180237227629360146461252528045968097238456965728987784583350928175586168064937299891720167803866552572962497702862387877808906206957006765265570540486694711738257434118216258995916272725159403781386196597681898158230405558185184558881984860716267167630313867762315523665906512458166429335329062350197816787607716018282595384182125964672569415036295201015064291991626493014197205177614544986014445492004269173650932230490620378195269914470755616836413938861725390667989769808821059292153270431364892649782714760720682410304667187894683893102787793240105070374946964694369784019836186572173880738317837467880689625263713463779981070370566106897493473582856335673607479095329085262613483836701813956300274334880782866422572997379599232371627366862946626190006045124481774447085048346101923782075176395342341946397918817615217336740857303076086562550808041297005953120039551294583260690456848502570945324878922368272844894476151874835567590384776471498601354904798393493952614841790636716521757495374994410482818339508951666261743297681753034079729583544811098249585075406877898664115498874636914734909447207840939677763352526257335054469863334414066420518830770859143957000934620358573327919720443667519565250039038080667564483531667326715073468760298080843910799573848865543306019426688186980034875831305686098977245458955749511852457186769198133793532781328993685992535291116241189719727693215477001472632529698832282744423935630298989874010682307897679050570137946623642361701723669377311245615146066020335954070960017245115382203744053571493353213015383101010813387319311411991221803251919897222086719902243828118779269415240934570309616188931013703087634531248327740832808743674691442040755890123145631041494978685862541810816222018005415190810739240710720969052821373593566251750360955933521871222028886740848894517317265882639437074806522895833194856446110064851595437327267994579205137541211065989337493356093230177047103967308905171506889735881864289989344535328782884404988673055144317374999043100158940316321963675099345527182701488027857128548133432151623469292989101486719016149086440831744875122178340996200996254858589370040566287079614919562319992093220346973645404800540561170281375006843840366112763291786417057418766249959197429609563294803738852949732250925447567916008612608563189063206453808054345628874978744156377115757688693449753321819752169988461109565803931192029707934243500637282963391197201021702730068042793313686271184005129132368819848068943653855429320278743346769283333955936486871664631573543171282821993694747468660993985484444982513374362197793165585925581105232037816894072559751567907856621557749935097632540553346756956697620169131209684219194874989514969492735824644493026285401617105037419421844800327996598010171189709482482143401200077855549239049748997823172752648944638203876392713282421748867604518612858757537872088383342288539187048485693906270608689747656985981272247767613845486523172297189763533265837433568573978917523885987774421420130801199882045274722527996416437445743795509320402143789628306251856671358870361679916441022918614123348404200798630027964262704606951460067429886248674387310440609754739186364698928235369273896182920124230666197249445260010006199385311484767224600338292029548386968593865896297118708516593342937189352126905309525717937409807096882542268442847398461442511877367881503036524323403003663860347413251494723455976730922664069963095075900319905273689144752113306838516525408977376681464347225439242028620734127388903641799577418033212820433446064437128048526949214600055508590624933391993374704443419932771424406713667300499953075568588623525292362478263570998774049939457100424423887432951660490607707528408545495825998718651243201653519341677036239477437995472787052497364499107351653042718033081552349534054379326242447255633518313529809525633282200136450189450968978720557500116161698494725248414710512487370516923637895389361495626428777252219193218380924320908177769115810751520031955816981978255057640656652362388705883089110334795693761403444977548983813266242772025659523389673139520274581586650585873969606586222527253887679186476655442023179385927393623701843648969595950644697145931231782400911007262689988189358862166053376660362104398208844761849866031746421774561066818080733896575114500924467099522241029868959223345274856985134082303230485303045475615911405412051062160039202631422021096544428692037754210827610710665013545483029896366112148981305992023433275833856313388536679186105931501574727963044809487081952074582821531180479032093775604351348556671834736960908268716230455089932534432724849306261837278658918032170250498948479787764075216267317372376465447566957108856406539592138909489476890025607274560956510559086171454234395781107619497201915549383387108095527972529715578691983474493468880834773372676572905941378987061480922802690818401525250593929311584145784474141486222939067106616673774776835189348594411516500881824213679039689783061886580409781261243733256217679908366499762031782190877195938103253884302603990644235442007990494855459561114205856442065585857837234370497338354417277745116247462766875470421953456530542557865963726102643596322629441295839235895786449883086843502307818409892537306736730682818300609048228657741281012125151399650948623091459306972301198243274779037937603863839157618339137929579409712828615970455641759233219473881772515840661943880807378329324097189106708702484578581998743621686088848531443145480253386786002162772983768236439942171778326843348817834309432807885483882335979232639278761585165972477189147331301776621274485251297522732229201354825504033614661103678780987600008140006280717824178103768624353129846910641475606462332019970189591003866139015162780670306077693539405693755500418302186953264410679719499470581534600101670820549186381694745703953560777236664784088640079347932956709516383362039396442860356896864606590199900096014211798807882043051479013897903702575950467658273840540448488815183380317215858226546056824276915545882267996676813328572395059433271030350646541267192214907589202717133295677919539563074108346463409425146560275266638999483720457425112444785736579296731825934162839875048586445236710583570771248184163535769193942993408575891188609250054289546553737048585121591897707626694425653397995150835570539762505502181848242119236135782456260958012166240581924206287645709793318838610645379091891803598737973632123938809440341680638004225196205536128600276092526705896822121840632771579004068718733615632233944133155581789930335501346676897512273436937857061239374676974866501821275000309354115896763462165113899555270170020452818162169021597247362360369946411560932010004369388085355434341707535247155496275971735149160932812525275543558459503466813705295762735565319216827372784712396440852848805851380861462655906712347608478822839903062805694823703678661367088590132845990608405441933712233978809075498562230729355113805321443327181719920616596499645865829443724102674922093459112176609309565278902641371988837461948247675033883090988338685247232070405143306902957052562464047843380785049413215600813229408921955511894669819913708978518269207323725206609794674625054001049533874843945083174771176598500881794484506137896264628855105660879051154418623885835521876870212189730806526223058829410569964851571340832390374013708250755572228529275396099692631131307275476060460072085323203400544255696650598959600493977447400948082920145639622038407256572603874024189073416113449298702545713912760957381922518241826165038125306947379852937195085315551962062841054343253575172811330858636321166916576121310760607206532252754392144327598413279055039617403698365113610128882672281540082233897859198195801670087433000292476547911576912147190341805458288181379804959732699095246729618710905769869791252369019086501180158299804990316728534727061317157262766694746545416842946673622160469360576448269699670750406389323532307341168471076851196355804410481359040522158165558908582012404903187982177293119235956272296917695677932294254907713675038448260320488186729981574786632080975561685907738128450261020049498593926417878802150740050828102241553256033977537256176955356242013614883345176613873609178771892965248533165397606741654577811053279305888255209089335912642234468606311585864128571250599735629686700421501813860689543680933747579839650273676873901655758765395096200875870906252669881290412751264188803958405946989560905245262967228124950865509572308763459770676243061433275285387064493250694642317747112880556019049849373383596071296363937198658359636468870770656105669612748405683706258551747983839476726566651367634512894744190589064776869258857476914276801220575666035033845225269425876470209907096882954069213841009310126403279416640220137111347337224814488119984045873103825954916296103470175178607543497556039291144705801365567658322776795134113489613685559945138988427109092321518313255577700066152276097193082555836660437537272563070860425174120750100963781664742308747909764212922465175991940570911068342797312213627187918233094959437957715848779983595316562392812819295448229401734517547332853863446281187125760815726571759765262817555812235530304000840404042111321903166721795500764020220508628160413299853474496009942461243783225889975383345946808514927776024666891005044057663955023063461129115779145587096973720666079759887726178237409798680333853199151504109672624566048078938906438169550836299245823514150645365248199252200029486768219573512196856262886431598891866397562029895867872771939439087642688399041931906147449337021136033607149251084972064438698185182453160635785930633588422731913437232711566678014778816825731568868070491909144288550767415136301761722547371267541330388986943861197462431296768386159383544564873564221649720402335536481458154141468135490034650318783159684255984323344860551154262814264244602949085392136899406989782282684320084374115785609225516637465563728447039336686305001543908954638546568688996567655034014018037854191312792852035731489670338519658910980827680036244428053611153978349538299242992772099682547437164726382894046907894911083821598167901494126941134820009319565289323665030979940242966504182420042760484591645534360132909637941155223257562789098992715676938456047896982828734021242930142991003411265508339311423248466846533921633736445722921853441584674117173416978899236519346547801255931351108243929387071759722036364970457142626883032725120695035573931986595799518958281128602416544214940460674778877058797989309626512890357444458422103693486168571910179001376755588686070931164531443295549411067859046905369565882164110864377389627611444252223447191450139540978108394793605982182664180668613724823673533127586619571831297889855308554373056725484556810352343451523040966400026888675548856688924932829881230058335082524922885488159672143100797433641433752844597393492976878367464467236447469899992869959453522882752971155874616471949306570693726122197220242703888724456020513572449769686233703841102334922112037302216397109445405931868575975099624412720457994242248242419786463450524436359321382298843155274051831591307350014291292865459968981654542084431399091104002319653452267729169030280194985685190490020515646787203545814600036344806743926513490356351971647193733306794056845544612565266779133492259270280335493097639343625547866786135221964951413515813867182397536748372032443314609403906387056023278718185333200112323855331016572970989313899078480953720574729164416332308857442999627792860523431902175143927393376314611186456938380203061658146814507344430307969874894367089660357372478169051762018105184247105598750605369670301269491355731797914901505167229592039320158988618922227636937864381569730630628114608422920176582934457658972780517719931211604947586028483277481537789826048796909748765406077743941019452616366461306167334075706581965971335611081889206536535626377649487228350762161751471042380110754802736776051225377968344917074605452104876106157201803634171603371429284893524887364772420003972424788899032218681187307202489889024547507135902179961731899059421599142325182191078874333945960202670177534921154697118636647443366366838047856941790279943120088103192475133222169463133102975964586330034427600157894952050264331637843547144586154452778355240721885256227422399800618054235562415610892736316625888521230305476133889298074020287826021576372434135538624060522834560597857077657879427742462637277546798966480997954738265154540316739830490996766386466499232208904668080795964053325186479916155284199412908016918334541327426110775054561992081124218150110955732645324265161627433894345692126369817024202332876309123202912311673973251146563423400310214833878743345198498895590314846352472631710802181574194818641372429888115838228238020122158658899805848995210034058359411753832228396451552371014544399832496829605781213403428988914452141503694505344569451282962056965617821209997063530280286213181687973787780748799171714695737584018871137102817474327596918199934670763960603755181689249680520652938901773714807621659337165916884885812023076876367313933409264910198994901178988117217255370564501400242965468395759017649236089644465231965561388909665473205607195429153941854365296973918804842963606695649764484466073123004494360360823666505775755591845655040854668160805587294918389879410814035235449646031166738265059776982391726955464158518051556250158912695358979337520491849051613206014673485854491835467280395375179059833383870223698252807857008575081324671801836294597421063979199700430798247188016196325841134788634415881063590361139437185651337858303891868927188358402924411513564858788223906699143448592195575841405002191690519744216015515653893225048959378707871512929045079045496161586384648564829797705487592470421610740403930315793199780592984452994107110396163790518119771744876754933563786047153726431301442440693469867118290792908915112923096490625107229714062459210159921851452658086562964196140544157851927576410440521742114507897145716852599869767155060901936548369983720416148746007174757635136534256502364278902846030294060253557020760400708106190592815656076229284270859815431191901788833887243305300514622770349392318773636700529496231787671653667923021031260689850158117340529702307788547262977739433465840908407597741758298514190893861367689258558318283545864046218984315656672738154184357766775971899148691218074918425740473972860171536577844880859120487043178298923667838888515077839782738880850585122478726913512995548127292621455305899762201767061551116639746077539913444508040698661869920830716589578622137773593928831563846617175525108250895918479362014577680403661827377499079309576805808229843952683458253015321445312485596029782790653310108600596120884148905306479145863873003748610788900113792124282092753012757119062849335790709096535265916118134329718352363682816077606654442624764609926140230258785666943983230560622235141554691377470032710374291973629690179013542058666419898713875569328266781791870509695070828056848686120444189113090987542094910558508533687198482287344624278000314764149060641880789732757582476366953939602095936701536421431042002412164065593166446399442035434425079978168919317155855041435050381709388840438172249451652552141633523293429532005322836589608796207847359743370374441814422596789005744621171749177152964625728216950715892733467963435073680103634895368589943476944315301492003464224223691495567789078765060436474221534179106860621651567794534094468093048152810159806763698160855799193256772659269096484201161654289314041733204382046565754507349164348334645177605175594428404727220765715295038416042378057352748273888192807911030387037911351861262984397565398080188414711407548912521720332486271574123273358942778100619487078712527639999983327009676184084996700274583223273267180904451833709174520821208065839975530447509381406134581308181076314437653309119063082372930693957046625444411787942213807166933311511774380782430311302669546304645214858741975993789131798437349035467984746013671371032578138240242851173686671197907899294708421284340183880817346546957459979638886035890974675803746480296365223988266027279991434934658699777197366305251151932421219329718604653820224986713547612116224297387865275466956388612500316892104143945698395775106993061171594702042707729145458851453275660905294665630857512344852643612781867922041772312654072161381846486501691888633479358033296448011140973092685590117342458139816402217749090204971214552256757742905497499454638291985556482068912076602208122309121416175731651615523126990019092394542735010875298901202561789625337162074310977098983552400728030468506282995975613705026411291549910815418655904185367205256665231233006483486162048090075535202132164743609770352521529701668139240555835738120008138967398438499709121574450357718849718766489519863446876697824478948945103128170870478006449305719382603952325054347478912387200224612734263091268519118833766701276465617056038138338672796026381383739360605089180923702536790265925639050465175471667934649850691098654831736688157487494558679232137616694506074195260179469978906227426853748451295862700523424732855533732825443196654438656864830380014166680777682507836197100438420294243152254001760592378206327260562339442786570290463160809387578853920139490743099938109081541245463804699316109925962762559889208516384898675942599372614731202800996220323214684450036884852262971023415799416530849643171001699642284707162925897348774636236817442832452734404261705540738867963236082227388707640377550528634419230521109052516298963669436471648625904025483996998477679748102225538687502753338269530507976138913961438503584289999107337911674372529938635723523390706927344249781314220846717967293292228374429499393138869839702106199425108795346897579410570667694205317517781192442743621590486472352228804238848154739651434584550843963738253498303570030237343341835136270731049271992795936873633003263902912817910621860468112576585850320836190677660076407173968172685003864629587430926338339623056795337699349722706866377717939394610818986752588211967311193729292137093130542412379887977452194953499290909121904736070358657784171055833979771163887809405984460792644553324844724450316707649958046621443938411939514064203249805981066608124006903469522233808978596201073489801586675834412640517912639725091178168505018388503099791615881576483376721226253789970044884476619265255157144049160248408942444533589794961373273273179047539862362851769654610310553965471800138113376127242136937305557447992901180577200084057273147175769466328594504754451443229964216777987310736387494554946785444332095933476840460668126810833454734561426624024169296031394135888712485569421206624230007984184380810076979748305732527547929437929790355573255258110750349489299926545556190715634734135041681435034022659674950326464545459712314226418048680208843855873867925334385218218459712773889097702236018270411006011279656675393834314383028145711202933443213309337857412667833676281690537713642641787868463920188455240379457912422865975978656775577405149190832407400328645503855084671755069441544185250679076403725361070845287230446864426068151260965796782363495528517687903696380608835411420278274481037669942416594732678592310828877943443689226784734214383373544963250548958496666579310661899547334664080201984245916226218548139248328406108109104495727798643034178273533090237025031587419739395049578696512333586998293530144863654711215926203479884804140463382228069029969751653763759267892225766030480737178211313792647648640361032979224079012075250723442483584793288694115033801066935850572039253783602824626773714420813184004506383196340582713716736274045517969600708478304203897460922908647541396481895143493698872955629744495665692046240970609604874154807674430293527763011791552530449821047483635047726095078724792184233312772690497416750597772179245827830132105155715130191224298300020265561889998059804740399172124192213636141683904563642421167776545940961090153657769099110073312069178768964375445768584991840750009838145133411750551622528668140106134461851319232863841002696622362423673445943248147425211068015852876920500122516761114777399136913497027557472794915293260576702091514722458238626028417985077776562665993605554816911546159611701566483029218560295385225444163340522138943946764199403384588368710363373556613944280375582309477586512700782740309323231339827537279772128405390111186190153528020316632802128189944005022684158122294416894414639176945460091705199705297188378940103460685355685890239797315707047911291279741978200670501095038233703379345688799889307661045626194146950417499676014088523214548744255876102066855741035142650535957489580014983248105864496609004089934544133537194945895590431097492968520915464081936099330602100236954796358306155746063768298441417083619445900496159117538835916237313785057462633118618796471468006344574568642497951383058862086793578376541025553733694642067858962460027670491950837908796979895013307600737089438790831018470164431950933538434498484642944133447939530923253910500290282696887961288697943928604857435007276942898752502204539368537344988328433499350691185635851233099192406732161953664658106156725299126874158786921169670420819743689744803690917130214933579154700373571678066052315877084239237356708807336485662128301556460659633409410694207882023865985885692912989753985069363310996589015809387583883181866550482799003216294181751831272935489748517378453283664017067293141161373431586598406626793532869805734518461155389418102813454270582969487687404779047894918927057350385187062962020868188782187820344181566192698335768782122748776969193160973276740711651821035606825115528787864166227217500492693522813109054495894047950024674116929870298138867474888157019707914299001284543100923919040585314850168561446554808039868053692662648413442210436486411880963189917412072306612907898791538809887370118844694779508847399815780354354955607480013383540050704212538851118135033773223504415871418814905663613730963695876809447755334475165803433681662554700638568391967874209080748313875740245493009414122204370920554772461552963143704515848856991162794864093517868911348980159603429040344167440873870856288772999225270337693432411378625092446157892378259994122903676297040011508933317904720097596783994808668300853578995131805908474355373058215856631239138455963424764951339961490095482750037101102040313060568063855220991144418548712776102102305600215646223469783363962593064161326228425067026391484018792334422316177536311536481801199317041728495644926680273943969351310945769375457291075950143439238505016710918660969367669459429999560592897836461265631902006235969211778323489824570938267938760298497882671847266366152474576986608235019797535203979427244261616644489601801693072953269985800675192396089783246397065373463192144442873734669037803602365878506432193976459743882496242512409060493240430300172663880604570565600757655432061845714532053716556438747282326785223984361774927196911658058413947078808357832285418740678289613104430670880504270664075274832528399465625320073908857396138268319001938601472548349896570454237143744574420227661864333924778142662597481665344915666900883789311306289539425681336459029087515835175642937561082966368452318214395701119389291274632877314009351821638004845411301375950775563379590806749690467194764558288039123195437050443300810691927251614364517009962615565680455739390351714512754603934455321953487699389330519222548662694816988820578727770523538017870963802667990214976326749805092740125470694692177125526840484836036416313773449629310151663810553759997008686547351303323159887510924589073029540844151622571753649003242544997676172580041818870722360600996755070870702447575983495420118132089202649938120637436612388981002800577194391243186920671144978263458831665689638931331090058522051496371216324942158014988977645662219809493242108612110304327711058362339933634895151613386095910196899840278680456527244908039128844461153509990673011859270852289248608353791584567630755631624656447738122688680987636466894941717341330350235035702733638429725460731755074378560750573988349087188510275121594281488810999731260563523010231986544771963090176336873816608196294182302173777340999457790754675130092558638912453184517447905026825538566585795734335017732115382502230000253567649350950723678487000986609051378889331230279634804537509651296399334821352294422398255797667447998598651991829101987234083936051154537735923284518089111869938155873024781689082904555205295576716655931567603224400076951516411070947727760653093532330669223144316190032722742073520348197126242444901839938063699250237378129924577803252240609719761963595116855452850446654952219694044882241988902932928119735365960630496573122008179327899093772603406140573106395654888887173170875298800521679452494915497276321912787836487647380772212549320966131870185300043571266945116575650209813241065257180317267564637146394611076091349628694818312500952131468163956761054568979910198999891097711784409461951125067197221308648232802253415519579509543963956139948686449884527449326499977459959945293682922965131730196943652202163050076045478273108306868114330380909813940254956851058480092158947042492547881240778105219582524840113473148370406379115743729254736638573443950258631263335668519570432131671474017339492149471426117157266776243899450800114608281331600117052140685703383179901901406427214343599314647406860918495901248755280514670484059680876573689262427294929946964311920711798192484345737032705155924221081660237637995318684772753603955795859252919218237903910817791028003860795475733020561608593526242584130102806433542722810774125405664848826878272734381060258396108025271519025056867211170694021017286769071313594149634859071483626788157744255565213840850552121788844611721555213555297612705968250075580117109056645670372831252999345478140855969726514568486221391181744746948212561000450302423868552072630351797006811921767838242971439941009927576759400271694761044186678151207814143493749201636653549192891238474975526491106085454038695483294833791618409907777453794954051335842899670438301088558352151163250252757446666956005588817706573356445759332695999652771310695951398075643390407146017198979413998747223556908370796151188582796613566283681646242701215126768886584786387706925269793347015163435640186747945115253594094706594452199243931300104968591620681783131474579479506244109643933401056616086472553014591853708723165761285523039584608407036529839777841123256635033900537811186341329245979721761744458879429932705771679838731032164664071666855378153375766028322928335000064077083864783834451959011552398754919392249152377754988924168880194464887630055531544412743800190491514234217560475244132346893785784479442122993034836777581291451433328959603992509459372675348046390696981084200235783639865367824074813965016434063144245893599399596067861785537801530938964646524235308217248897476557226259858263779901628259756408448985599955332568863355934173228099777691696637173226862671014483851568610677140246340670798931942813046825520799602808649616283779649300512159232727331600443549207983664660756550326668349511472882250809215532084372777376938547775545038836663645391639685601512897207848783849688683149728352129757372614091929726496894424072304017295800266584095656677462393752327112959401043443492707750237300164412958719836035874431640619975024395591355117242411743451162723850367996331357149405026170704926452657316382013372359673964947863422180788748640197946993992476086041009688639717437042279219002228068360208360047274777286272697972600108858994075211790412141005995774558648699606455101095513361736628650564096751382351160716935357666954535640465693052007396452147300675789033986251899091174505137673029769640656682697172353147453809210998907228946380793836894422054326740004179692711805360266595770820412921583687497488620039011636392551772930943081112453971497557077439213976454052507190858526918897390809860814551121777752268521070234229887169017609484796042349575686726209561417280736004304804687488130586775785315596898561917873057992346822386507459910335601698426258057333367564318877048814539796338244138359975684501912711128001079925631350905145149140765327659168587136636641434589001793178496423888079065903692977262857951445267002916720984064429980327894829798492220182485543018378741971039423459642258411616775549192675126011875303918918729253852089961753325362807962644150721999892984288246768184010872041399302766548996836270328595981880455774283007418957115621295533989714757529766008633081094723941961775988107452873377357646784921026985889936386215087340106827969137039146593806289511346103541319950513053325324502881457574217290047205272511991937521438853391955803818868118864953211735047548699327666197852043936718350477253801003311581805160287611837482788437206960231310224546025620519729720599071242823932554155613409244144588255195223318437164861540966799111225412311340884844384807456033943603864486905808702637952078809692635914918362789219069907511108552485207915505348610366774530798161811281908971395714129196755650697687926812058481071563771527765762317929863963895139541310918006893097138098470736956860470268233476931363733877922330143293809096459461420207548673992794865484318990569795457433008747397479685422911818355652134774058624562504021128416749373340424208695895189787175914990469806124959124319388484470780588049374364430800384441092715453471313278753547754038818662066049798360954483897613118449666443822641421269664492884655296158929305914095863051961520350080710436863508587526014451436828140229449085586799297435799907940775763970680209828148310554096104452020762836483977460709766819164093252472454606426173615272295578395764302874669642529122464930934509437281184292222260143621121350499328700608519737230485075579147659091573060294936183074663429576478745474099279833022845231154522093399563149665195541946299318641497787606090332330658683682738271257215504560992589734646690990257341033851562586766200256282173034511813403968319278627380721677063877042325289407168219671526545393990470593006327232885603055102908112221054798098878717328279630028109207486997686519858196724358308831165006249432744069045377344300771513437734738527509997854966805536301006551536282425528696237289681345161982818528818451596018919211357335571167643834421838283508648440674179946789656480489203563117268625437178673477699789485562969599045315711799962451197041279451372371409157387094750463222528510571995785235644770879596748323080151751595165139583665323487658934189344006634465575944012089995649172461899064060544809046981947070986662979369489342976643804645451140826980444398811980836490367799038390495678220207716899640850306826159855557289634181752879405887435469414178353202030922615083064352476956034942633782582230694073213284506780740769729376683642726056681376702768021540889360102536371534805857581534191225107800261963819608322586056336495907826480878109738483340809527382159349442052777385965588835144751279718134449203256183363428077262785991185739935945322898854335402941753452924391309879701821653944739180149307658662537950839201554203190602301976672777761896451933257531206652686011568376280802637720869068460512795329449673661167935361168402469407233670080395262395065424147179220899734116462084981309050153535403598078581238872677854313923997832371470215489824671675647670212153392897844943258868234832566844470900156853145175287513950309661961091780372584544785116389223408947190131265109798455781717725606129946045389627458979798861058240091312650336593859919999307049282527906488887178534227222227099456974335944556062284725244337916456145164364239526545715360663022795621432213365381845925080137111607600950272887027551440550453635807144187933587365125213691122502885885749331266975374572308506621887511243356692488561511165148496696137165597097067808638321060123120323106922728016778565490031403832354975331819916756023993420099032488437842014830376071654011200517617287896234911465885419918743509401338038930677692106409333423644454865354063864301153015112235703030002762106572717362909307981601630470080983125641703558177822090929528863980157214944891826237487340934102708385675287290258226949625777495845505293322333948265944645974620495303304239465369444628914600091153398771331225397867667581014181079575676162304779637594160259548966167405925176960928301816773486833876976048534645495204816666060733685660909898912674555067887310459153706124879095132928450503909629457972299940666022358135840757114215128039837993999099195416570486636052362656804657647124687615736530441960441444997453224848748589557588417905205540099254160610582357117921823135732894737986131149694069826110658459197007408405538028341903687251411783033586652527055145702022350133684237431703199125532696672162529684076541558045924406693989919883096458060435185630482318541408112219579008064137771209522261791966454972553936545319065597624780680926293184293813030517937831125534373415776015791632572439686878743881334293225945123338734978236423919156918436083932762476151611618085955781623830168138822171033960480289645059111373349210151415243499001770869378309611661518766397248184157955969461549178342737447467690485193050301160405784343162114739017569245059541801848967041087797493022047460399289925258156646771545783531220500035834047018757486716908305498614457261497146413776466905187094985054731397000117788724029711841836893617197393634211676258780452004400753841808198900292166938830299173654729955126987292816591894269505188900763687505578529758105735041102767838231892179132699402605694143690521305129157684600907178071844992235716884722748810635699246935551526537589726176461842692193559423811785992631165662274841701364587135190379759743498309701653684791667360042436461676823424168205732083561925780466377855759016479010620814702573532366631393690596661447581646395447870769671046451601621629472103926127524168029089538524758778644995887742029975237676398659937436441956142051930759746800105106541356106157396180457589275491403997248573484243154108304513335444629075226485953557282899032203688994673302839407614544605909798085127120734402075115990296014480838144589465906439346300321794093952977752088422191966361285821692405346010362760319201701271111635936451758757089237001492231764606623528475360351440905770874641702962179680749998481575276675826460440034461490833780494248896183319809407539248612676079175453972681441959964739244276266301772670981871365727902043905450184987746999216451733059655260076797209087132561378345172080964151327947496771626967749848473817373262208949284667223497388591533080491899219438705176815557360487472323224516740317626414832403685195162021598211012288076600330329308183683710075980574713765393079532330294667246623733700220357052898162472001804193237944608782009301866838239035443878706712759475243971115101977864280887069611913677605288024814262886866654389445871395269503074719396673911495241784932349112562951388538605151553397510811792129456986681906733474625651993430638533658766033760928777234490798938547541125610503816031475760242915403664450457195086761150771485766168344787383602713594446883420954968977680474368442853969492989291597496560534644272244300370963987260223927479249874386477803009115734605450099759815066829533496650909569778493577832041742549888593347080988824515274326854541307480330695798696352803162677097493579231438609166726316536104886687025399304253884996297269213158874949132224553668429322285488529089326673743675477867136401394601925715481992687159883375058258138624797637065533212238651961555257978512656179152828550372141485840393605726154286097473205933275169981785143532816607050896302284701030865762228291488155487762076457884864015612767621190369832928972460344885498694379464830708162694036039962702391149141257716495772314402309964251602504745790720309703142510497173845199257495108825542566301807270555373143056642178776493259959450629187462891305921153073581147179111841256628443180525912503193520234526458025290073259510044572347474070402932749566530001319007364461398072375245500005862929446803263011638861840877792713273803374347840973247872770816958558901396709653493657373665147256312432444929871176411169628921805595643748676324994576666220562934001524178253029435261691594825393284219995188048061385846827851824793125014749040123714795893830572089495346989494433440404032712158397648671143691636854353251562630991432534525621449684299638404250053597187815060206762596331092141657503113067904555680952202558915055227754119548572062000257646486056630013168291982293546611582550946624550714347097798475386428184343743641489823192523950732388585601634058770056717791495742312789515972965282828003206906196589552724616864705630072267744857518517685931058518520499759498430034709047013289009030312082181677534911317601298471701616680424243870927870847414106663547807348385609463752494774010387451561626577423127563280666438399912263188578509951838880156824438970277362258685827155870264466195984467377671084596702246379336556219438252558379512754406775102060913644004817079670161309167669336483872793931608795168913065383175042232660994918914317315303019320306852114848251687973061080227784156021970710742554627499275390525333633371841325928062909924478488241273171981058302495615123457626594170727423322050781174212272474970681589291291829314562651068459688390539824109841775803295659676703128991476784407169683545343726251685061286615962100744755807737350401803255809850939083374902288263557588414107347510863358008077212704353906792637098218018348264289105101894600599319179511015397117325111975557379368442934239466703983096513845421624779094404354444596887370993562200699477564692644386245631279195688015726335950046602169877043389978908812846167770854759211884038693021568412336266598457253554132752356721872099054337904867436314161940237144976512789473465956467562585716710026616233308855604777415088263933613652370846666077024502795810756134271476086302860594688112187905006458269909732294778272300238451365870075430291893466485759019474174127701061553880494522242485803978490381712310400446795895281651910555249335965451848745441170204236356819166167921122965768064270070156270877525751211898623205365280521069417661199423466502650492181569981323082186652063927021602381580661972272025720795699075058916998565292911498905232962582645578860476294117703382043209852031965926145644852874031573425338602704099802472417918708353959625341566035811199622994994997825654602955482314318131897123219706187560575549495689247489183093083019922861873860268654828880001839100091938119942147777085316266635998338619412980522573051395093443259210384690336359923615935067173428272883559362605088564915899547455845519242431011207132898950982773964345719086414505164125043565808383878963608824888086309178490576672559912798985574663377693523757086077193502742688960961494605090590733304398190396836449320116095132368520813364487126174894368971240496469833831709402333392167381703812454318541531220602910426456422385111761994852138397230704905414095475615060097079396746322789812097479866143688768368391636651906571469313334096667558379360235580675506046645257028649721501987446059313337116145793231386182737563558379533751267318566824188052343607031026953980873197610161837011887607805376701043836642002727294594480614195261625025468428299521062413754921162139976145532897905832000812715234668802068484323161975253464620124760344223875035508143008709383560612515665545050384596654823635055609572093840183932702370359679575226188866834919988111300355361718284103528106968419586830153835829649219960713574805339164869056481522006011893809497494011405068044119011995273235414698338969500595327554166855994604336533365280724335862672091345982043800168615367259733723714298053270745614239097366339633648468423701555434575721277851815064932885653399909107106214512255481576753624667867359153954532390938528587507410350357630569780665505140653893547748944529334710412913543307545486436749581959784139335515232960750585439182866988376311172088248622056346245528626009186198895406983186376681610369587954194359844119787367177545188659849442062309233291871889425550430309995446695447245185815108718861771304278057499235331159436993747826599538383183344308367005226052699353805059341731845129706760770225741060477126460228085477245968190716866323018831167401510543864888081453288071993667391366700863410346202684761921412045348520564822199012008943865498725772317831194332773452197085646479858406969951162998991902785966322196158798750272438285168998418081595225676928772622779411793084822812034081762985561391387921113486557822926349153324318043389323757630180952145585865165613520798168162779683180945250189711052904638041392189063054857404983676506880510227260478522000851222561678850033850157383631317667544581186309523880844757331749570873677710296881806957951485051260233481179259490159934480725759484878308850651081007881656008849856329789241616528699096455258968257686166856550098957187505349584957844678118002208836201502209222375355254165134482134312471725238679742311874666868248244827537012560373398909720962416530933510499782070010502673818548841753019108624634160032440432811863246865478654450346194209434267308769611140163291429643151247376781345796662080026559413740281826380688558825988585561390376106764515017591296958328939861471951251007478160636243694989041991928308865508177526089742572444975631508628104540654338243475078435768001320136229372549759895108191692358307592763182068298777753624959076915085583661162133792628363360893175735467734042522552633580880244176908250066550608898452012955770103546474346046013822564739010429126468096178216808276849344394148438533741542940638717049403422307786987439194974229398153240157874453290383097031401141473027180060261336269883911595502132160813476046259733056284885059630375445348588332275416227869326723361680276590206036498130159022868381830704529540465190187352451958538056995339059742198877823513539014404477514022772243570725273585004953883649211971209867164413866457825214965874259506220626561480594246429394434438586157432325919585459258338769801599675252681332561695260824256581193350488438963538593673499453898808990852337946823115063181415075296538583207711355601845511238462210992020589427353959345919689326534840053925886645769347571727120274237143426351261249182539313250625566334533613921860638245296850773313575465807755359397805779558126116444338358205535934523040506665365184998596257853519749700509578318242277124793356799850170047330437984727953921361701102407209325275021907508605033942474158253776403176821886104750022418644819274171382188528435518059201441325108742430995477487685442799172128905415813618778696684481997427647344570579706748756341140000255514559169300750214680595880568951341732784091485632251245206012776262628410167369848395775900871173364287183394854331986784068622369930977831096510760659202851455133940271520241737500330407509400775978878405643223730390409028316335293247842004620611436600026124746530814877517645028829508253494857750773796140016139740476112784157461410536935758246813878083767868401753252887065745262626459106859399731586242687628478626320028837574823691600064705156289315940128772890301848945118772696027121410835841417311316089587476380393090894690560531118610893325895588903614241045168412562810296719126880443532282396131904808730721950009485782948065728312122802642303903408794890604274870313623013274877834627764943217785626478747273660426931755620754163080199705980101412881538634775309177773536088131631838527915120957863910778592723161173391109932979534199428635099940843637503597831976953118376130353285245260253782284471882599665240529936334235754131725906608569436283944881961860318760354621349179096892681412941836826280266261277008556616997254376655152358242544326934279810464869611238965982676696745802712666984787962516327467162092184142204995170414805209827270531192107476344545153406391019763258244396237172590722016557148862384083375730804132545958684367693102236147778117170196550883402343295032743496751986880070502406924722651904073084020240862432270882307638603272277788268500771914636578839842298167814388351509699828989608315769657617015496145249702652603950976280819134334514825121077129913466228415948158635387373462957507420705937393033771161455642866251758852665347972571986816533773945804075987103603289577495290697188930683265211807682205506984002929035838338167681261260045146908902513714207084287510190260690927547773931238650180378977262164030781825488753652822857718782100491637016752401162947973193733247951675779382740243275425304362757553791458824697955004583399627489803651704863356780343396552649866545406466876426184015297563664490402129183123779049977801409412869091665772455548836924994218438905852919362359200201331468917641513086835432884321036030887050282692927492670170887174126553963893227408548069470545194882426298013790818414441714560479622731734421292138471706544423787742355094214569359658802084938424098963173731112116501455694624195329157210396213863634328520036391538712579036216980766635220012945547081811290251843889512975920818748489995198790075425067416153592953773481292376354621838742526299547068009872159689123559505700348143915181111007569809726436568411826574750051169766215375886197595722939623309211200901481686172529360746339716867738104680990717850766766495683061123301000186958887107430807388691676955995012725523430190005769366344930348053514273718103555018737560615435196466796378162793926159139315216055854729259145803764272443228691278266813948181928987812626820210323010132812929262305062033356055625867121744165040411334865894284978976371480085349000209352686145088839674568325562430967698664727636704164456837307083880158814125525904930778193486678768725510318587938197303061135767603808440070457752787555620402988997827722058119025554355704011156489672327541420976954744137268147284900570835921972133812306759280123688566453539421788815982435060018621567450363823471589354036078935214046036857652207125267196954207852150045755049999475729634754915160256909978996800883192784319801061608455545712360567911554320235711205893731423326755242790352852945090523052332914901479558877896499754867324955515538388365629583100939915187474199247174168161714088052679451348812631560813604427972588263776679797611331147583380135422013994943338595626926630855621463691715640484054431873147817414269492619908771688624547502221398822877100614032901757295811479747730394320111572706803397315767264297785655421777008584247846076222728243400137178978651997108499803231059655981633374024836822455419989961577249459423932282604382318256980482251399221876588835316752233352296105141129818911083972408150034649170640827861095322185145237774802194495642167471285522851541198578294321060252839247140704389265261500489393060145021636304213962073570633237813861584024840010518123013662247622403813972189113486633340436117243511108496232834182984080002359953721833502230139876147001950201211262795294709845713978409881152720873982386520329795702306073509928632401443220019394247528924797597872118797751600934453375803790148791883034859976340600983921754559817863497115147437403988682807072635040861234006885852422444359447102902838531490884435931259024771497888034167076569325732398239845383052666115552785392944531421845532340207275624649983737103372801460652073839771695627672647205364828971848544813019625559473922444880090287878935675986174072990454687300989916241550663110696227559642213266279437194256129809598419783062404307355945848355908879748124480344729257625512658056905849755634206373721143693491859510136500782925744700633661220332464452477804367456526646989043899024798600334685869008061152474272626409399957364432295466918796858374819548669536451279086488571129640927789046711900121702787730002939562974771618135240645841764333290920094604689691977663079248195999892168686595730793349677383771958364828121968532339903946538965615793052110814009642495000741711844432564136591407829681203176597287337094193337704993785394707698818327359673278350788630936763040721093925372945443819076235642791637404441919492041969264347216678607410085272603111938835303956069828504239982080395966420495418277094192663128088234833369360301653973017051281256407103059933857876523029072136680829535155874247872332243501249672127770984070872653200957537590925929792610233047986728709363612697142051126777702224553748150823464434028356279258998542112061251472467558793021796064355025793035842053932579775133507411867804929408303880777295226606044140336973622534781813338813267477240297417003000766202800304067100246470024625679754684814207686259743271002232323275702792677803039617810987520329950323544534732386179219316415052579109371804274789823504127384993453017235862487932192583140150859349067850916225977241589421069226048430310616961298207888586751461688230030124523979140673870801122349216066303984307946148202388711207195924208342012034796638332125737981017927194688958398944607864016499912142077068883274422907385105355147748413523460143780205113706319053917320401732817715961896320428336628172829181741638073089342076645503334482392096612953371835421865043361233519676419523167529414189662315370291546923053337749425102203127760406403350237616035737769975800925123293274903502944452944244326641485819550778140560449004429781797739262987728022211875292069682390864444168890909249890446845148130110408642708632870801255629585981128865529427125950317794718023135950654239676318929250514710253549321176490795971474678230888376159297047152137460738227603790763470821238892068779436512328349728358268430661454297118535835121368590107456809675080243601795394080172183211282707479961537099392527892715126754907718826612478023521810776666801829448617823295131943542083433925978018955253874114927018882704505628436389875598428101013778584085035946046174001065868344477650585203369450021731421550445125372405874541547757810436848040734825260561119050511283813028100107157639954487331791414563799231758936584444270869845593291769860343238166367238640263013172360396569902936976089725789538331140420052863472680523693376759924273381227488394132637636540019603785315421735083737398854894056421373805418130921739745478685753093571550162847486762425517398328949572869435059391273198895156475578475091628543235494531789100451538897870005015988374231258525437516049278460653860231620540582519712554182664825602781380942671902302389754647266231161250504764188133132876240719234935487973148152764122797352059960445725309910186888740674324814860517783275647714526549551024684598493553451725922839625338241959711824208248385733087149629725687776765064550483282232438683211381596617232741452003237115176723724010243663632977816002582852544940522358092195434748637774218906875078096768545021665504026631486465773565797906484453085681070409416612748631534669087881716943755687885236772814136450256346829543041914056100574751581109126567494069550693773532260058094666677471303152946692799376871297530054262680042289863731342559244994602092578035364391411297753943495966719138355063279659906393587471001165518102837653180590895000818726129156194200287391923156180314650966850460538306210587622891162112069595407073700040805478445978775327173018299586782000100669902192173142311552793844040836106053547194132474329530654539529209667952911124800646692749941004035747213496466059434139537334779481302073251015463125929373036466104811883826756503999082217214284715035120678698850418526113418439256443524861150200850525808298124632684523007831838059210839045720958338652460860797550505627816197213641184784614817447545921711975321970743575726114625002797507877476605926056082975395408355732173872336785518436711480015983812145051700302926284941153423017354003586619141449451797645420805178822614340283248076599160079320346288320707684828637450415829933379639680572699641190282115349419487253595928374048992185056607263147470231602844720654762671882929163567119599436251505283750416059567851580955474075143809682000342078463701897066624913324856462508718505280198731756523663209936600386496813843599937400976866601544394818127490460178845792238806414472138515210035731583516505165499911300275473890370473212242097840918911334086792219047886291886955521482970680180929870512710010128993968694383845796017159341226565057473230597935987269372200939263086796476006580378919907308270555858043809389029760295386416908807521964787867055742158326002174412726130202183548486833401368418194826128767041346855373235528862988409732545493378192794369856235618421722886232490650299430756865407495293083234217577702271025590985470589886235820090832240648686768276790294702103229611058628233016653549766931250174143233286998264880162468879346090875654628298537423469782937055967972168136130763831848172033891152687680557453126340078364692681903988966407691877499810271661007599686388326957780506831222107568067131823053071163771886945858498687360794591007377290714129066332480990032109608203008849019860456137144540210311865325451063720981571813455892273961362909258807882809780348020268893228205808319882943004349453968871119178720701627441186232634482230395705744323049007722983277440569805446920978091489088223415958401804271999335319431039309258409432563098809010782156064614634419028063863935179787616179307288425827081037758777891079768710982568829780049925054695792516559228936266314256438000983490217049004681606438227119074604817039466571013466386183099486262859999976615011953017692557497806942491579459084934800575188474937788955344552592051986077494937988621459287157444823444935309769443204591966965394597078677346446517578320905191270467863797858326393607689850700238775811007113874384270596025722742636032726243998804354743902682306020792441385704176304323084745150132780689015654522517568388686186427618559109639004997180098732220330130981751250428209171505996452680233445300560078094103907438102850318153577163267281450251290790284364079546325215362541767681524570404629699521447358152904697917242265978024151293594022224277549009080254560424552995686042262767063163925284738986118771548327400102770378486298905821411363915808919352860298624834777416563346852112715693189191221193535279077147248622332711909344829171976010262285976027354647759457060370704295664439830177986134286601595515877188390066885869418698428886749346710225883255184539116351945781859218688348521860881267542371348304554310217587441038023414898968731047439705136687778789060359448206226526537847288918175260437393302412884376810264145368287115877571805706759017455698670129649865116648350744603729558283229825954592763864157734890248987765385577579640695220385599554547904776725825941412227784125583058995475790100725217294098307604798090915437009448277110863513171818348111672164607281441708596180009025456782407751286519229811036844302585148296270376855422646460949965162278478744256170746560965323931703345595236415636312719419524750815387977309455672566159569208215302580922582776927213103153392622267346413585621189990177247790382103494955155458746594036173928633663058028231218384853357319021528668032288434399370960017397171197863676123743623428815717326686952285069996233908009247170639154695096541051929590914294862599253843454850189052355680181188224894733743551143829518245340446732755873501993520208902047240453254711708491636079063517889877405488464458387352578685503594248558799561884593938637652920033810602897793731751724173135172695834734361102566199110252521075959738740214633644663304445748344844420064324976058448900967043954885137358438265803703082968589666373947331335826339833430043591741950748590656777214945882525413040426453313413908010554438901019142518819344910356410158900644557357729917976708504597273884804246315468733903935566191542911399929388250632106758312228010095913025490038804996067361170213180744569076471032015609414199741752770577843748146494739754900101967215440248170564079188832019446655050961556058696764020984817518701747018938855338067410457952343370641793998088659972718871284586814806691919772713419916027857671397283980513670812336554594315476157449572405057471683513255829042758397474311159202488279405155104917085922893959292112832351552575723055553056462951109145089653418269321387056284367227338533062254059619420909327583781419069200431098060017427289129744711157290758045356917437328164565743213157480462986629655642499950092778246944512354636679160753508376712818387755583295108953788848598596357287549330884036588020435536984705094341643776975089785916501323494377746805588507160791647936280686894596867094456076215085454330250478247164020008443875593248446191491395352428832437227696048639596099360191628689090832745909399663685229851495009640383114941295108598870978911504827561700917508485654951233837387235135823598632596075963559448888863241502882599357418762084863308915074790684193958896624532813246483235124369342147762218798641587341042906937393641307183993326175803866876821575058813966619296409030943386160695531587221688576129442057164916011577461850730607273548160901513387322314850470356157764205062153621802771882791394794379580036893123115095995837685653259050937836997191959549029664132358074437662673612271292266281695116880571145319258629069393071387044727928136449144614857486353490024028229889838047967244128188682578329624584389179088454696751296459130283511380492896367995356894337125622650791417279124399864114023555078737796910196442921340511681831918884959798824757917041525357404550860459838729786320373007851877320992276770631710076755976007900188642636783263704148953589542914092072883002323692323162618758854353690268752806793804440256196418119267318180825728707899891015900372835823013106225234773262595462004585167968783736229561735737338715802256563149196341259097338780023334733519792361289833333879039311427056637933475273789533134752082794531936076198271871516604465655796078303833352762599053043463733169395325447197868663849593222811686084806232324386029039746765897068500182511602284531081793757054077494051493558465404440614246094749882388152919527157114748248017718877957486941698801248953383488635219594733007573266307288453315320396600385416928682770022610464333530762197076002174705960423854750676046729083331676838995761152886517277738089583412634162305404182290123718045244998482079378816600836605264495182767224260749629246195444197131313338727584482420945733869598127161539324790619378597162808302602295219414092373497612234782127864951488018996294809766336854462608409439677665718225605340112322354890508233102272451072376778798064614559335180850940208269108292122794669578621220875931610743071180186382809542322896950176977877893097615823590335147244699287686570842455884403420084418740948884791267811774284394978718613020881204044405018684719608870456661270997973759112022339408347408842336370300124538219532484198795061346701213490755041074046349940876601849493552592492796479762096874970489680596185931020848205836308795907033830027969173972562128449778900169422534021937345422699763468419872818698526661371456168689815056274763899302064454427452967669619772762013338529156576217359591198279238293686382381882560200318390148711977818390545707038578134099962991968959559793844929636690774424306147924147526669972683001464008453453006054216026073179314974615803367616319965061734427252738285127604691521284818301005507968805552018425696725987598038347499552370084468094044200290098980017044547699720426333676896868834097208488450856121613187432551817951304133922048478532295476099357587269002336675939095826726570436768952851939209125921228630962580159242637039272971708593301044890748543469929967725058485743281836077790964506072892194450252699133369545688784463473810092496218580197954021017527373070549938537368448737574164137984708397951737861799228322292720213623057769588889891886041676938221442109556866907632248679970037781075368129877798940540342776346347176714831711765058412545151284225998862209085262148122513563594491687629204285897264734266419335765135126644967233782083178723107265393081821631567324643939491258180952753219502237315949321615686127603579139872627477790637485602206240427458310981638975633317321507340624115710441607629210802297953928624972343439877622339370499276661775731943724621614611890595658041362250209429082834064539965414099019638524721333082873019105084081567422826902036309314795345639592013293523896557692040353212236144660133496772869669541696221731451614118839388793300992374404325362444245006714082962753877943591987711915839486415580719927710267112323477127825632895540005186436793188224948603978335799295072290336285738287642118385596329785964864302998131739903562308822600459733132102177188275049769170651254458096845734745591142509694594562074133370959012693368145464857988493043012671028080766211509947349611752126634391637073811502906659605440444682932176656709194155645517592776750082150131982928233910545651555630863180254823924577382729997269497173021072436772139390906337731529462182890806181517104661289144562251901544372362076493707305842702975177005667360512358373892104956651779768019176381757219034498101192989494087084896934056992804492348506021685669926564730254176684522398303888787234119398399149361562930972171634308410645169427518634761027212493381217181863937298588186346720392190867228454059904110949010634290978408665638871162038754197398297615101022186018022127427658352744118405883814368143406574167278508479894426117550347183527249009358754850323224885688454876160104649744851848729058513191012820424467440902472186045091269132747550138058003374124411198695453832346217179329683521259866382497268104423083473229212040461857177701420801448378315774732182581154309344572673702791378454503324455699862338464583199886591097404190903939234727457865863352722583039242496531088965490052962384034683172260040328797576812682661882167121809226835175466379849726947966724872462738629499572513283753954329557536749320878301626908159823453753147332276945326039242649516950257695258260277236707223414952291207805543321340426983007644650888105011981995542585945658288829949012039181341665158079135313118069192739925738827469577306682214025753400370883679259197089146875089049285956942495420066239473633717431591790689398610547733327518182565347652528093969884994650022814464259081523496690311303381820864311973356220714979011055051667101010063162296004409913029360183606305057684925191674712876278524756572822578452815103633415135434563678583760659820103367570063598572775415763955429866652832969735348676616760544597016944839615586898827750086163517481677491508829492884274100709628481439518381647318635670024730929268292373004608841583613399667756119625856557091114185042280461897526566816850299250176321597113674143248984787722029463897463277977044358477548287256275845259626230139838550663097434722822058505460743464817411333727594259885289267669254541398578338805109030712860547547118917014975574049304718646673880131701624951259934092593274498491743845093285686776123536158633344684326081600606385993723694810073001146142727566029690016320139039072514160742239957640217403317720773067345231073316831796060902688676914489623172652830785186290839848174652657913993576926013981366829618199782358971185842293452297406763875845302377811557181580586337243512983016190586271316009928550388705448510028085617071652459206295402732741670732220770265910394566339126021968908670186853001842003324519493781157275146521629957858960000278744148034772711164359724961189276318908942555416466425426886284820127134539166085364238884812412279194382712481986593891640597839009964360539335582088137996174138522365871355158094881666131105704247724849278280511101720000762634543012773824131200761306679055091053140280056111390670938790402644039039315674883207330418623915020552739809945215490138071837977070329926144577497520806680432466801235484521318924907092535946247655759808098585899679671563326282485385371638881618902532658230375630923605038161140762407099099898955724860378340548538260857442214678623145605044573404767622306614297404113336679572318141720002910034790186307147166149370036061202713095383836385159036574813914283148192132000540091318697529706905576395991005777166154926114021626315240056270000405714932808075451409061290493553931439949225426068606118204555433787393810422210911583947622506429113634136795342067727571004969841261164466379744406480988908049016783136686870317289250981275951803191825435295987363115033816310270537797107756642622288755084191617316080858452258392246563118086031927585693353195605746290905443386514230203806929421417593408477571022987539493370406252711989386371659821791608442996070056096757266346340218159004244842059385784700544934349677983307325401120726729394185549625322660086813922765215576392336931151708176791026711417826585652770960811680315196939659708810293162206175025446014881577914874826458626799239041310631709634611652963371781363532801877117456071143842620097923308112162816658112379597766047421992859605843481148606053688034437869282298301397490455021035867231299781486143678371377785872760049312879047540291448021738387055609361768389536411367410147188573518366195173575329486527866607474525773452110927796815238824616270962228781146472092790398189291353884772592749900649364009821682655892944300650346381847863271967515748842508177210271414257112582472337924279158858510216118995101361806022923849169886007657814276709780609970520151429902505994349520757304710096865758665826113744776521151174764927897214212164426006864939320877418208033374561884305893044188776289320005508892668019343638321925577269435374694632350848436333509489599531904892636335198665472716138851229470257038987894430134871667786432768429167770137679662843700630807650661315753946920416238744358790858076905814973499647013232888464117875151369568478222966905905119431145034682700799075501678847632444770235353672046828119624746723248991075315939141793532524161660035051067070273824543485337510920743296673980785566219744053833801395294215756802657365119834213404747094493349614199756667493594574212796030032381919154472284525577775074420694235397706413895906644659133907970272359662569098190556840690750937704824525111832931089363549705691220381736984349243354976848035994338581570879053914824607185469074832849676876817159442132016980152048156002770406161956422501869511203890301081635776568190942046679597559982543619037339124995613667827338938809806143148488432641038414519499227567819174397366237177761811753995070431838038239786607396066511197765388097977534967256811729756251258154704849934791772448865795001724852524192853155397524412169439843795768954915809397099983622024651216384627030604480262212668362408757987443416864787652692904275981012659552954831810190341139364803037891744259313779649104418377507571989713041532836198118136649007756436059901800112970206020785818284223241897249272486588836103021130273001261080933818801575571468567642904231719289397133163922685696797696486545271686521154723498586677559242808761372212803909852559240463866241352426232812315660931127296390208034468333804978525404166212198077305226609765416086075715751205869312018684004971809101874882133687152945525870593754311233024341493319464128125637513124896468566687633316778821793423432617531188860410572108760575164367620444104848240165852310566374836937035210846702870297852189913751194346717097899911138099741189381200197483119524036354347413257137686423222130978930026789922043496548109731760164893462559872997850373076071087067874061858822423075544232852998561962686127458038887140067671416009061317797345506855627972762667940131005884164837059634101560702393382261923584980418999034880457360386005796372225193664265294092396204865767322104829271317354625515751078818630839052831872143546216299547679817083788577513380127054235059433496472886868119299305143283930466500828837257322452253013692424179464022748657966402816409550324680578254022524301187767457280723000175603470899129229370417746300251359842897723945550587998839769933853686029594617644137661416223849497024798340813499291999998403381142388457505033468185623477691531698952596568311954480790894562631091234581130291153055316023469702642542070901191605988181888940352707419625102371318571329274983561442740386494663682151808350162264498265927666101052494486303496645102863852794287439252296636541374419468082983371703526672575734542244429051086150440906901547095351002128800743150258224872840076060870155518714447482767398346914579567238536259477234736679304518429028345530175189071636136377704470192409886733144443932983219883028965340716978557549018314952687258459371619945366563072143488543553943890471745697622025917404479989816750563321384777657115943525633703449148183192773952939949554979869812967762253914197488291180973034029953733641529817804876877798961384809305441071005938944140558918595922205339049181804587473992646325278532003376022237232966432511899941276318293174788724263676089044714605564424724156618670720170212278865542425350444765976614490789596067034023039818881667962735696635372323820854739680141880222688442257063901734324206908010008433304196858194779569969884403171744681257761440397556966673883779954672258589976713575951389185002211758814623580695243362557332045164528069247162727240240794014144106419993991526963840957897090697660745493559256061902669920194310627798507042399112534049369825894594353594092718391724736253701750631073626446192517737474700103964930981478975748376775693779051389858837008285970789484814329969230508316448856075572208746833788260655776585918129400717785741059433014876858411985451387442879208120543813266259147558437858693219515861924630402812254625373583463358344586519833488724108610976093286068456313139631324799856301081025211589088357104679897886844393897001475691396900129417441876961464292772152704167505588457956314177853039088230957000115054822653836462906971744040710482785875842331954360912743628005017136286484319099265524066687279651563255845450034088053296672294374039654589075701238383288587010239658119140271801888956005278365190456693554129656874470552755608579976232521004546470265518714325503448262350388985582769611008684134291817016375503446328143919834190149661884591050502862103991430910912922685026691047691474835529920667551429865086762154408861098387284363151686786798201199090618897849757405881627562545192474418912381929731862894787737530922423423574539139786690537372069068796219296621594655213640152365755892521123007788486166605395223393445356201400180601303655804396764183187141164458064638333287736786261682448711240306735207936151399158100611873011718985812170934069659179171265283377127400615668215926663493571444241342221872286955650551946045514014646754309425012103971743967796125494309845517717173064808728076662019219846039536428688470129212945525603931081146983965416175487177740187554564430107293221555398826109960440620249529086664985805783265574749052708909221008055997962125888013727123800041829218652227732814760561317889612303333549312536532502982517813370762587533637367047611755191392935453569938212174389582390950091111695265021592629457784289032364493627542061162083829167674590324570657486725555558273248174073733565211166134350103624233955273785683847480325994073658339055024595632219158856858465581997053371063351483346460426652075694882513697402945820996257815334036766688181375461776190247426194241707405095570013033896711516200141806328447926223289157872365690208722075972956821056092372552572452856661690563684394710434799433622244026377380115634092481509910647997173171921311430005973923624618590452567545282290188822029685150068556305930988005816283253514146780546806609662350844293546400220307000631940601231628827211583910338774969127624358407510556140358569013001461025237994407996533656104210386242347058668345204333986745102078603945334682857368820740312918254451360151582612079044737258488572699883164318820534605555984875004315797145819574959985133164067239561104046800887709177203917081294366076693893212783974870735225833452388317987914107380945175407885837671903789210448176362298349081374379415915568810117646078131745390015993583481512937143853807616250284243221338018883407762993302347259893715352892200871571094614690406250589216059867655071388791951571265533577023912026515209796779731675483447051849785587269747928925759099298430026828524125375011127393929909638781193788284983016842736993898257825684209886040899024112902117795215656939178548174008478125916097075579484021044661252522125393811188119882775428172267518318041928668804008954578966281595899022869805622920995156953119202372583038848098397388990509146289252208160607027266314535365618895463772516624488801595909294260238442286656036387237869385971153882496169858256678367604170000191974669132168043300546935470309339333457460047708287081640636895796584246910787289696699415379108787635787918571430544275475118446792924610729833419836396756231723865619021491742284415812227487679673721487909410841801407998753228492065235085552023883746486788339659770171750844200377889391992376333487545463727992806247636625329427922395353355217990890131106694059520194682776357589816507359759221447629055221168607867645383011600824927059595581489278105293740353789678100580636214781588495895844957038705392219644494819730000361042382610862545377316048764129359618688715005677872095070417153227182074771897784371591249957706606590649718797374909921149263357669420388385635423776000319848142267979176637647685554815380173705210166061231784286324638886754718046115024383188203999595733357589204492847874441784010508248188715134423443164463426330487767665317749659269231385977648352011748072556767102877822552037531468459839072014153823827245698282932594777717138400709483607182485100602678155957470853546565270837350536621450702262329927584326516446721399882582656705810311701259275663398831321828603237019141452952494195769585845869308539060525148580057053484204323226270039991246208302028268682563972613123275500980658928550648984504906209912070519793079889398448512138245262849274264722667457919037317953101839855627415112494985557243432986197399301274687251809734976619197331687170328947478414681612130367690452274554127713512273721097781186942004778120213154004521322983541491245150171930539782605876361577716506354161008986633226968094743045666066065689419594815377461084450749193295919948294643298112134090566464212543952231823616918111385227527831153109185186382538352471916479697569549033386796410291729374134734460120352632335000764197415293866256632016552580908093291821850845522783553417782784168730678820247550272322791905975881001551795949987382139031447051830550764156305894292921202903988832690172934106420172916518157127313178598691340337369509653206198937013169506269781532850531942333661111231774603200010130060265070268577889715770557946568252941570450683239413844267037957731189922271689629235500658248144027577197833061787488374762095806830266080165474326362918076276132702025001787579037694931919847415299300533855457519770734074090133833335456126356517787558731952455885650009129130079206472560635841766771948679721284274509047454255453584249099564803003264299429635505078901340151954469272041672174961110125988947903855485384545918401607721873373260266512477871484033529987552327893753598915879599756343377591999042223300461520070134838781731070380041279119587002302805644535462322259808849464973347558570763895735250688967909759205180131704786518268061494324615602107942545443940675996456191055067870960375303757780402301591202758937321394494802885605700860304178622192623555041348441985079904870081486872257557998358496063798269446271041381142449559523555745048546081987263293595842185879679987782408810403334063020619426091261129424230295237636956866814761766967677466480011140601483684545687265404794170757909580618227363045750523147410633050391570913944260041190325118796479558270668303647808806098804539657229620851200837531487539396619387802129437051388790176575318826202797463969919132662326447817108533620193188982296360899789219278475581491284773936099777558314464320484288919174189583510250908939637579141239151668625032828836033415739772337037029525392592818792778296061244675454498131667979596384069315740312541663862869520728886579744073132168742071341818298403664078461743058569547211612199682834187658176956453044173925636598956894129597536319552086368325638472529857719671500170555523523889208591752327510521039545934692612931037003854101790733658043207815467078035397977265801086838188952691630183446132759707287692631320425891399160219823621004012518790250245407489032456851687517051403327904332804217795982499024783391537726427770281552882725551313442368666576419137790561595923022251978373948433436130358580640298593079115445601234212774524410705519518434313493135075243661073968299463103244502051672358115680730316013581293978305140878014949384144056514960472796419146875384968349091979631580034513229541879399319672098032775963209580559912998205870446281061902119452950833008192408934301157980604271789478932542387993981838853349756302848270080116192232809685046856288056375617270381773488638691375992698657719637782927636143806197055404767730059779301612945465974811752969295556603078598543318358768391444622315237479757813869442720481136233820348959241681858806348825104045193029725799166816572686829467096754420210682444954164753645525404165979447332717401449087940095111585869330306184764986693806918095257631691260793723513079108354638174521992919703375710418836437512114083692861491257705023596177301599205535543215783256017109211526490285853046683511738758653452392396798515755231814419851909826121155592825150513211933235491818384126514702538077787102704888765200201343455140837718932177573647924639099701052816220605195470540258103564543417083092985130862589314314195745463406272112828064415502582095281460965451969870653842394218982461425241113261513379146131153881604553879471657829971532684361804218870917849967166978303405788001159605572434669270826850719842313733692395879565453340864950480403522974457424338632207656326823824498519555058546714001881086156901849051873412021747185081437372548273844487814483322071442333582786806680662361271112911271279163481606173337042282091765658754291489627128273136036171854425912078293346832913969520742599216293134057224518071022221583194483356853546775021541955330437045206941434412815426132365362520927283525812426071981511369252933390583330787494503081003409710562466012278999122557118726710094925831625259565796174511205727935940364703462862585171391570132068520526650295928911203076158193078091765904801576972747361263089572403962071398768532656545358011527229623507105946469997412240886385022107140592438632242443040709216070251189495893126647180044297526989930687395482000330520260725898081419420532523547323625376343673344090346445956969593999527489108244610345893849798808861030517685649089019649908085152663418691687057093406153467781747985383983804386347567966527869047872883152843728045782902836567451496019047052651882637028645824802601530323481028085721165273741185641518917126436078649031125960857443792132565634500045378845599821257887653349201672862309821522700702303778264875323239763035078274029985589031892056735769785751399119571129394137071149003765523597584704776345145787535362602889173680986709818879320004516058695412702867501778500657142620189561424267464931316749179624559984191895776546533526548540419612852150267971457247515665888453047130808272445538181480681015833632631534045220343656852637610351091968160834786126770716553243523234804365853550429168103110641510850499816379166689275715064910955453007269381868628080084672954774629007594610187647856632829053143850338715278115218839542152351947796976165222349334860839710124021825219222983306467283871787272605500543695133500464579819003063024251175511283513202489391246922025258737320334861901765052740044346762305906751973479224068720306059400899476528199955867761159195330774852655511750214882215346511588094741589134705608502436543785171044389679568707689326155673348192121177432272681257526878785286970829894614856605505029993133717585835132626059706106865787764936543603984273428584895645251211300165133936119446603416674043225643661053991778442654071442141679808177397859919617873976242535901482285183641824970015433108973453813132816360170209383620791739900247428211127827566966215649946569941524068370665763476399061528567928738184145326107774431647960704376347413131733584608379281797560991989121936241927800391568657006370699295242544509943794534207720737691633459724650340822119715602452993920708981744919950344927384506814697809850606334858336243427138506091200695587059837446264545828286579883272927642065492413803977036574409788706786546104410467928821528860946242077506054807423842230776620717375519281782090642146311366279034598673167821304427361036603470514215995416005517365388625993790726282139094714310921493074860844315480370167435921284232941664724509118176417421861660045923624302315350008808561194859012732422907085964382128396141137365982082024033932397065827610786280954451195521052667059039882637705210234870774589390069458733932731293980821751812172428865014464273687495503519174408919474272436467620046115074965326186043878260886675997804826028713203655410262858134306951408866624056340537335630737890949443818509086497118767887950652953366999048613884141732465446376197841640484853460194648998315880255293149682888758405526076876012200898369916030836764459469573195697730277025281737552502709548641872536198849099867088284678604377185212661767419196577291374712448747141595978080555581737816330409265057870113029429621096928498470866544064085524349273023224029224881310657036342748544060448495360735321512297563207782345371261402535779094620125438093246821218011531666169025604129235799276566897158797787875177753490059693471280122341627985886689983112809860087894638487979763336086516060171760606892209882983441804366593971083517673772069123132080074968725412988052946300332246856554562711744976877231095073458676306839181012269064729510974189432438744491890603923921814581150281975281902650019452219783070737988840421032706100461783276372694884146062313243656517916037292139442003755199530084887802190220184229662732642914409441343974567384922441677702021995545436983223874489825037069515219924451627221969495401559634247967523946713436976452935518625417608177942277281054399580805451691772727178604962864303993688222332742672173796885953964055399070403142881711317687552206907710117784741129402705532160907248343101138979395330199570387592230306308856791153754122916569964220746908449230216911569200940989913322706664348342835708562593380279843895228510126029491438152605768967638401608920523657455761435025802416159427008426182369864931312323135706025240783887808986678758341618744951359190906446936982426598212205213846559338156931154498108602212796861312567266152059707451271724371168547121908133401375937034417718621296077043382053150365499616643620581367968651093857900015913818770982523326412046754711294055299616690299657495068915441704040355836740912075393003230223588078017707855621120850426286521860447153907047679521561219287681305774163237717564294033535564690055197357325153553365616256320783490337591333053493798201561957959447269948977854636399609125852227602649679099346617472334779993282766635241254008194787765500183967585175558477003788943547266164036284082303539244149031206253898832602217605395650069422022613860812924428138189426511751186298650670727649487154136444042282456677355835307430176195377982236542097316461454327677477685533495709807795445138040388285457730833683480994264375146379001280475157622998372684920788375595130799319587408263946734140220135388762059231305359851413082559733570839448188963123950445991631296697885781056870422840559648681362848246994270101252146640368396684880346654118126488459362590564520851379829862246369696848939866375484853004739514251947895099763968375503442475242758105179357806877877649956354325972517269943600094862994288782470130541331618080805045312512618882163403190723565309946772967648870711063898586551377536074290516430680180697876204605983926130426623162109997316988579754382123039405802830598941949324509371440252273039233035760856597569916827670081868160678794322140467333238856421727419574189583125549150529180566342966407358617000394256184237185022526253632656898804038140499481107402386483456352667680998493316446059155645633987872245945909004006224187659568036977701602231398388973548743317685562533740613236710540652804442895820530608384349106406724450878634290632259500854301033425078565389621594344387406900489336358642170075242665934690714462346308979533229638486821499048092448252315639665997157351960661131735767312732190401419164046637076301250188204375441832730289905447310895197610283112538263512811877848956857426761791918416313249429767032311955819350147983736648824874199361078816377357475114607266131883906655945085913182959223029077549350622061275278126258858119193309543506384130923296694230318193839442233809508376988482088487941366973238862931492987676827446422560338951287958418866212619907002037358722235126699763664458916574729199070518231931094764820812774851696270603173719511230287516328476209112086220094813360401143190506636596231426174620871129443144581872424501961347366897624852225092864248911311343446538981207945303248929220599746419001522883156274833868752105952406280049243059529307867756962273049956953147294488996952451065004629710661776032102974875100377148219885036493607582785385634580402270146502881418200598045820992816708114409556071341549305685026481225636533988525876652661436712482438628388280051172915671259304588957342550504529935018175744226433988452935850302724390761098235349787858518657709116789805640451796202537677843265045707523980676043110950653413685756109069531998996243080004141921605748619665620465741312914533595436758923234247927984055288037144295695021620425623406152310453058669698537826624628217577548849011181472195639598795864510029994200635462270508698672275410442111339614669364892631870694779015299128318444849391227615709203985540496544947377157034324920615170499576556470306570175298503207464619881744746560485893482034835247222951133912945128602957879219575383751241514054300536182063460507422129530167453160271075243480326154245045290391505006828322346021685493835945483708698310617310835289515674782037568920922381572648689004697925081935676568357465795743444122529916414137899617387564658973925676929199623537262272146578364056150853201628067858586817143938476687953180811742706583125980370122497180904930103582782514492977201056351258663564195726342779088934175337512703451349217879336244374473540751366390573422479158255238995399409567659737572763458197535643473409991678198712867634061403431214759781273825214470680433021606694531788908013508952404899526154692864684505749151616777532098395803316321334709967420444737444855414934344922021694186675285811711967498783496609571869078814198290338702051179294101315435707981512814888122584822861543729112393657508381195760869955264753410537436303641011529559889933821445789180050636350195849634437370668169107814925517955167688282461536267446757263556639632828604177021516226092776816740620004768429212638258557134843654029556284651721011109554459347823351940531460751043813152377789033086913929626270275666424934597243627052459898931893230183471238282138405953499632396418582249537519309395430336799770330153455617119865199396194688486111665712766765233300836540293846610965044735634519705128253520541320412274006747378300212030809331757417538298192241013666852468037090084552503935204219476664378947355156108327506367617427897610667410211507389688590360551573774573207068066100050218211251427318323761089989264687950603611953393417272791156852032272289829279179834561020271033976111934446950947922967905270942082120777261873068788040207183999013513312791310122982976467232165058281010137867381819344318396826796014674275478064550527627236471219720264084851604029374320977893498812429977183396008022491005713124417370527113583640178737663192915427048322985703634755290456774805940577767155747921728362372866049961018796359006778491835997803504270069670990976490803522358243271878765677383267323852496237319954692868016469185793767686639048969945455755528943394443157775973999435444989321647900072037109460315725969003810585799368123885438844066670733718995460734243290760889674002538190771288571975689557693575494737346815534859770855126686380427806132659492067876835037648619357871959280046844938679283867750549289283826033487664522211400901013739921321543087667252464512231651842935758205003063446540061329420511383781682983880613386660339970972403565125322994556722031578914930482293148928675517171968214975265044082710496474658670292982164976501906366351698782607006129211243491867475969668081662951749972852920019795939906348696846720534809052672708032221216930653645763005029041410347103851823576463942363078604835015543755328382888056799620072652873582074587516707844958698200763224459118377619390446143556354385368417659810383606827545216272643169554474340274092313036640371700159228340503802561473379995369586890980833135752824722897956515825020651767514362457280240611236351108539979712335816154270513114784044124335121500506819937904990753584549989526956677944052450920487795023246557843143383504870801523507309191084653923415825829887279431681671154569239573028066714435971737490690097440115605713673138190780243335340208953874117785999844652857617234167782042037343415958853770633059750358983688205812317443201923176910542238243903935945198572803335905844222596225969656412173342351751117561849220245163665021301013596632341185806910951182918437305177615368917689871697843777568567228402901670725763588904083903346363706974564066514687205067388115901526978299265148765800122156209852844616039191358582971682267966893872171985412476003009698394746516671611642403585504471282379900765479165649476409183428517709379421695250586158669562859249357706344817138312127156066453472166378868697441789172344561486749066695393114097115375164905621885764966894495930693523393882224507623866088046511977713214230729748636630385695234625334745888781557720913491292000463648349370297267277450677746767224520790366841184798015319383230529287744288404222771590737865037105395763971774107320684097618838409822262382143494208703104941889008661399541412026365676719734452189620080149340019129344904723640490899226349588999355787497266661355562825231954538706032871435032135383013386801557824746525110819514381471903472699840970635570787993414451813633746066569684081667581977481128484148642267203468660842609956276097985517099787751917473609616691195907463774734829217109799542557825383845813654413564112158259474276328116646625732535276338236470964028534783804295799621152444534063498567990508572242768476745341686287593110831136883768246169605163665057864418766810372160605713899499793079475842329255396552832482452817988053486898094820197165005610527490007215535820382799628868239776794528952582360911143360185001277320976245566561074133402122770207100006226915016403256822511234157182618059213415514375586414751580601483957651017948983477642462451259592327702316662518130685989606758853921296754851096403251058010092211447777242148149482646543960703141176262822062804618966474764540456481378815571005711550268565759004213839062618581759880265536449639463910338247679088953664253419252424010464723350321251249458933441736456747259230469254410792645110062471993333826080487599209903724967070552673058697004791955993768269947323011622891218012681413839201469299643705521668786632924789557979853060713026880718997308501324278725967637287810026325910951789626638268330749057832296105964757510973157598664172907335841010270054070389855843400643732165432920728565129408257914953126219413864117436841745858258208998627028598748978366415968472934449476601496064028777674983598088658682627382734998585880174139302264178222931701230866349265244903828947247395401875702801335036518631832083799110870034365125525450446250267162901418583878721398244521210954865357625064591635150617891262222515988518376913465588748960306492990518812616893475423605921097690956641778770943096325248283983627341405548812155338901408780751401588600873329381034420420395917854241968595367683052743228864796784052486434789123530186315222779991260967553449441790909068149078077432320626508809490205225141788431953753214328467378478972901496230255734283315506033230975116287569660114920024120000300416725894499836078187664728264332482979825507104098103539957499328991047912318224436496022809352537611650377996999970971175318652598941541303899978016780978710015771197004418644793478923524579757619941337703370942600138952904553132158504053210656672949244013238225394030605620600934231659145868612325330256426208536523588912664967350568428212603894035582961476144715759379178944644413661609238355285012339691176896328056753037840661426180602624449707181726847110750155212823068617781103823901214793149820372011337952234497523637138827946971649232300660718860491013884795191286749438369935851018049196132203741160781855772350957760558800149547091499289804790622515184208918049932700853191490870761587595790820780096589840193824579035299438028399649572357917324180468678774567076687553849257416363132673880980485474218544167853529107580302056860051096135006541658684921806943253439588773844202833972039261597410919660441678731149011371841681281212776941579609761088104322983532667076997495960968568910898181286233197448396672831642956739865261390876976049552071338794991274375324890782533473644445807432730602735988490527268452561120289374476629418693268527037845717268742041319181987036939278561022227353371927225318771686823952382530507838977265897879000660814933751834969234625749395445269683794272152287179470951143288843431787301619861194597921859124136320443547285027845099216067821528331751611699266081765662515758387807089645644299334442662554103415344541571449288200003837783135383428968587880880813698961649562764099040944554323990904383512873400889161877491558652888922486396666914410523672559335220646411559685790469379570700243407666709786166317062393223332725427710309952588864554811866803279791362182123749887639711624370025374803680448335873639685188416366508909532520411627063720730221583632152993951590884230498143214157868280477523413488528634584778608729376636914655506248044536662683234571689999266366790749462258572060390145963242155599608390812281344912166003063325533672241181456138879332415842313248489537809311009714224514008978283040482319505730487906396415788919779941498496612343734570532241151712729214068931190068602442540033079114630772611875497535926932110407506924979816703030561859931237244784478658085660870247894355088622427752726828551778861337816674951972971959469430001253603405750532842757569072161340116528673569928757090772680884990657866050014340704943606024997579401175686107350479946557271558910943685464468826390474255542227247287631610178150444836889386764936366752616734259285285513127205102793983336845373735184165234257722512404488158888770320641203696479185649418185872836733375692522926194355153071450729785343095289526253235263520847592356358206607673507597074912022876511754319476280609792608723646985057109642230112740311379849767430245447061714139496554211964203362925350234201747991174191390261712785177079571907712515964929634538491139532799551592531076206892682794455571401560730238663081113309199757177035272501642397489032677577831809789875900037938924709476713254640710238913205921102220330651375290208012505302664385838579160705120658118663410747867964125585212238683113987966499211813377811195397187201143637405830315767334466362279499936637270058514553671479873853213625634494638072502383876361516451685668365555742896884541479207549145055664844519385562469928084219451033475991379308860503931857938879885659754057368932936063984404352522092452339321656323668341730611209302509729210494726348429804845311635745273236583985426055379144373779693905228657387754347007894679548090174505702604356579754822473636760070492767520542800177214501246945857724567936861951251601409161530524808434420051890758965485291633608483402087059617805672721203136826683538520779112482457143133706963474303136188900284866870569933928687014881937651056735038140192023687161585169783783023492881862411895973932389512629074229037119220508064878226523078462253863515163227567257540438445955129409496278685550942401855209444257260523261729852125941880558426451866818338689847047513647003109378337393685568133391292294975043237585408682756550156380497537230149341121340367352288864456324291949905904470104493477979186204699054603959653368983231483602424719159496826560771191351426140121784224345253438157887302882492054502475234725533727088187645945060463355330278039214969989899192426805019398018717947578390814400563441975218226372878211057710366711161831769797861373519477709799132946373475290627311696145167256120880841296992237873329625415717219990042016462965116484132874240073111605005978268390966577832122567861371928493171499081205552617620063920877548069970494589713475512034823346900979329845950544068654805518895378364132947806267114326025925585898431131919287223795555865608383027041284782474365569405643919670580052196409889918423804335343503644191543579607074922261641370087035362312066588561455078324737424757213223717338589399129955154232296232948528653312834457455481961021888248193932038956358169707224303336391187017756827469711175670884426206395434681082630826718154199401897570189268099073851270663877452573039747817602028824384986439957589003846854217691621354827692884769906474466760433940341752548806945170218811948883056678448933691270399361337795806816203036511854356443286980709392426083174493361648262584127604287499340792418072710786836405098528934672052387247030319227287317813251469261193408875937732985745509377997664570686341917814424315305290484838415575323132250871320011866378957932940783532336422955984773102895009243341491541314091425701485097019760261761113612182496363142211938031174446884208568521562908594843443427075709158280053600920304801287940690395464308010615019571301281507319270791194023177975346672029631321304994739681088538096878992430949516507004404352013442052806076223612151946142727307525751734792706698696865474628475931415739092218899309916004183388797757069976368216844402897679316191097645483844003123673249413252871817292570056430070606673216514484710563199758079174322031915894665848732659125961667621916339950984575261934565101590635106001094720819593932053461095387596393535366620037919642366064233831620100028858316183112905833964936875370610990401069436260351227257984877579264883127515946870858136781734176387427976182134568651577630981517889799452167206920414349466413653299305858208409896865360237435097956739635629364652240883719121629018340262910984747006694377493261617028337127700375938243639088836673863933318358248346091625369793541488691695800441368209907070958957234569356658228602603817739368304831196343926144971573378671288151313770291546059859059305950798771116809056719739783111877786175368475676362150272471051853148578924654228146886591401598277462988063544883648107188854652036271636406200319812667169577855295215288878007791892265945828970093623788327245301838362374476219780448797258193791334403726906397821978895130298142851236534024470944388668177369370385758256979138449325420385246558830446990403598618908213054220430141503373462845323856162487168342259557051446547251357962478231924662297435515522807898655894983368810024868291590986981040044848398925547906853533041143424262534178241651334627560837084845935439620672163818946180628748956999249783730427934455733229671967795218218831040784175375388130443566346300835441055411277330630020131445230021071911452238179510697926276918954353515874435000480172859451077741599292386059045669591548438700313792152938018689619397944139770328635422729238444250776830504185271414035239104384793013646089716304867383350781409194994644698145570782450880253086604449811224053840359712189532829760138668223721769164216485641382286652057233953600775618539319155932652184405730508778623137637789030877168284597466286551957811186830212708243829597297123245115804287515449557123399280776700923378769267300355800328051362940217869375353052008518578982389584547459305124123227728089598091626329799384627153274410467516887485029270237078027406707913425708171435230849224680942699508832857230799083768999030281379658495911033500592442734021501862700230033961320255324624342315142117896085401637343292818036940671476720809941717621166145904267609157677104624472179355296959428395232890317537460829188890514013022028293059502613675126145644598088510451000334830508422869787569921313830358531018671037245994211529914110615018540444477728150789215479469664410921973927748268584060162402868822497997699762564738682957211657501716894203822449876729736643538026553924449892838114214156918335853812850785653019993314858720923497222431085735292595635290333466705930283329672781102068448107375418778075142952723522795363855702682009216214129190715247596765925174800749814019294672253856501272578346045794427698356019339216455259650123876191051173256727176464696076433167828791493578904350037197377116905417213519554072883779777003222439267884399896155520759637013519126565253690437804555047754748773748917861348146551597872122729721652644922405748625846133777883545507513521730030201289907570769515146273623809405839127832419291981410888287343443354382859098765373882425524686754695672682723171725805473269675415721792938913448908362794243202092204289877197186454310668229954539965862127885780076814133818049025668114909294461299562030550281921809716148065335144214914964714542591749421720680679588483852491740879497117446809243989246838234699594150725424811343559176819473551805420066899873023802306955751448328998511891414022820529439055533275094584727225547802929605552358554744150957800416677517626539500742634422850325595364423186485172603842334719756957291663735899447684030778177774009311229781913157463864300989939877913741313803612780352789213398995358463240549138360592254846916413719302419392212680917205805269713918920284631672563336218518353410676279141869287935525410918937867349940544885881958113390333087961605050755310892083048609573810453135018349610124960810569849158131935850154680998429547176733090092563088138043650487117174512067812327226867210832028260303301728551368977132512828835207908012479478432004914241874587881645002502869455938100228704401179484159384794479235322116354643066984541109503442819055060985895878794271355092946733982451651626267097571030196136477289474841155725642114638368452054910644526743586695251146892758156613573917007216325817577793561660919905069283205707499256356181627560843473115138838321887760667433607540732751606651255096929171713342691803687885572115899510334894778022233476359660028290199283977891790916048698125422575615480884715413522778336149961351533223800424470528022979879980623039660368281233281951795759896970708327395491262218521569823654406953380367803104130967485728434198997462024535360809031833125629404312660772936099737410428050418924666857610531698030733946782243636572318886294355491641397929299617320429634778447256121023210928029207760013585562975524180757145187329495361027351492573828320029504925354046310287792223202119391158752184185583009251110072366482959514133454668236989615014372951116092020746866626023977464203665174155027549031970356390167140703052642429773227487879922197390923990414802947857187459928903979761046976920792055062945260228432196507053354992180180726308631552332640818194086970305093465164144256240495470129909034826467357862524836073634155057490415970621274638768256314801239889555702059813393805036213761041993808613077297310494709582685062155425242272223026617134277536733862105472010572028424529624241541112924441145679362979059758848224603058444949533877394761477438177795709986116437719731416960565772318280039893249228667333689037563594810308923291571356063293945196806509944330936198472379062850840912350400335386564252123393268281116371429893087221681580588139318048913502736836749629473560688810267852946037989109054559898334277477138893143668580645133667515388391997555757449505996027819990424834880551456590374320400728057193422582754375140891749459987439229975120202929752180418508521510104567665927121274747043014122690406121134198240542111066416594727222850282207024933485978803191994308720260501853536971823848251660497595008813892823960425413967353549234708971089667129305197729271009314600644482511008045502754446951498508044019978907673683519361702625484702972058274572096478975732816257748383044060684708006437387038481354596220214825673824043619669043848988179643542056246628391535630858548737754227316175116284585688864399489025899469766586489818114225111332485342573070650689262585518128431071021229900999561180859219820748153274242374398889405932794506913409176803483312470705828887690848757042428257616620080995216875101535735647327468518142605368760010738467080651036331178493964150592899352592263028895015081570893602727054367452267585127580675695873010915220998099948605020884903466948534198534355424239114047120133097835564971874706201985140404194607111509882465078351251896897340763599263633367986821125459640491298721283439375976758649295119053407995741215021622498922866681383098734949399525612871348860196672125500037279600881986998660763828274098886744764604541023199196099645182677088108844359884149159562210352573748995855649609134413636189826797241060618127900842095856561121593586153320616017355949638008194678403347229843704795505645147824462393594742473799666143160005748740148582184424738278733258053011826522136108198571850296414098381883236025023010125916717186496896834228515025616379060838787110871782171782949438052103888684091161282173090682957133234727299610602137789515752093934159330579672742342172071911066352242528762477709622712142483817591417841305334446953832477099656648495699488398469973022250266044458358340152228591230485581647339333483930306158516471178886261111502736192791419371257735741073996419554845893563857808135217084003936154724966487408875253770280275643554574419845993358949333842743685152004021477776041663994924902337587334881253713908190168413528004955555650454995376706985737766701373279172076516915305377722169689068027332969148562133521706063081813000282620483160897612489166831959449735348128771240358354556795323980912763314195175470889240110071629367994536032831080507392914851262168723912637740888123329250240016897811538386122438006945228887523227330131495244093240252709789705762351542364423349408712584545009186804232067123389697437000496987834873161138633866305967759883065557010535330063787388277630077991343331668128543955415401719246003783161753505324678522818917545988166334644492125368745875353893846548269372556971499602682728460997771529991541375641090520340775057418628334815239404345547945250442735353536600972211783332656439805720522304185252858345971627944859820051768023877938592479396426790344061606775189531193173950475040322147764530520370790591386914969978493819608572179726077208750143860860381802194847448594176805221640181758337152134324976014184195456082048832830596983339735903258352909114393406732408874978615815114985172883524951755222365806130954025562691094500422333177735625474489046828074950771623790847475672074548650298586145842948405003209522580137510300239657833603667151947013145069081694253999971391222261686715997930019642556688024280796121502599788000054908584486518751953196965478958398867220395561998361693477931472349985415112540334211072973400857180924933605833897361889093263545040175802183189976292066675286077269687322308180371121248358677833622159449308382207432889798583419728604887738341400024089373158028277237711664614835112977148739836089950350442440899885188302652984852364182241036200467132014964742463652607153938578882139981279898143498741908985533255061489297867605336543340002553469965265678835497706157156053386272554015781219218098200036170451395034237135015752065576262749987071758210249244914600780792049058711515396803448243710676040682845125377295702933847814950065738159208929346594694855884726432107082211356018540431974485999886369899838186125752805494113726016458885426173380232844185905602697632362325012471003481427680401644046224142927093765889604834614602400087915692829457040544600051821693325486579249577207586074164586516403813498659191144705145316007919152045494036594996346514610444505687890869692889617080878898614258626677077955416794891624473153031268832128064324640649555536956515578310238075803729377071282956020307243966652959427360815024093031673214346187246674947070537163458274509773928141943433358696457091393404191480541926989878422815053104767217916473707729401478485810385728995162159124931866930079795971006727477321849455377203665820825648934210734218476494979499300473344450896526491711598160035906621095594946601112879423616276708719647416070430115893565175690187979170573004869806295447254028402989876187895602954106665417150952541455544790141097350821804138448615951968854318050224360745087402178443559949418154806492694307914134715562912638669056594654596089203501314531924493647717259409699822286428718826126030879162326834486057828757145423571818004672817050761586517772624201693980436331803157906537804297589057712984265499116062397765362536163863216175079597138394864662956831352250980586631421936850995057191313084327745267069212918781089500233850649445339918153907874450257249270363215081064916498003262356221323431127300431535570083969994845603920865447642738101779821131367711584457071120278249252942936855783333242203429565207918290864465025377017180873581311486006823710746642611330370167796192896976788594114610784460208781766285667828786108573645264293704949182878081482260087872826657568392272879360022006101649610736407552339625431860398601922285497880981900140924132914124883839709635162700515420036047669990537451951556348491635859742645736212351926482887945464200849562387532691569002178818988223557483975802408186765666309187399771092890427051816079072689082491613133116189782521673118204811810963871612598116244869118516043918741950913770130268366046943366744390025484786575214927461551207826165507693359640856782063146293662714095443390113747701181532360631469693397816035829176666789530181814913538936047601713132333380138564586703611269930463027218659225088146176036153468387417576790682504146984917996747732396838876332803366019630295559258446584670552652135114799268794781057610649477859301519076568648707792788978271167971855881090955395241558782326201832624873669036429541419825756599004620508491289193056597548690654845998608532579890365071723459705358848839051457464944757640056754075277496976204946050822094182299897888938014149294400188482907432233796515430332179163361316641806884789900412702845151349060213008626480902157212002979720635218317209073970665356393438895946108614155738397133073468985495898358883878886054894729109412948363583056104427754327888975611136469001219676949513243116531892860087719359133511603397623691604774422892572026560857717406340329365755510845532012557372035684981115902285297905980538602121659817195217664844766607104345229570265046975251792806107336603709731668629771941286398645427924863261246113732260478280114535929193598443976904462665165421434172847522152987085992598276180956840074092182321722502729540416160672849130448785319786572423612003602162141315407398693960836212630103714151901132055482225832235753215573663744814095958504249680653876363921720001115853111297610977827536530845117016485886771433531499550459402695575037860985624710074662638512917255199251275288953589800932496276595621580867654608075703189647303707431566507327804941758134576138274479612849407364372170275056779468385105136147544553537461572635086231565690003090815157777023029250177195737888356094695725223322692104157661359773582958779020912597881656220951448380839589541918967515472814003466304451438867258271773477690207452042151081730544717417220604796125650060555835621724503142382968926463996526697407134725581519664726855309473419705038328835355552756462272921996767681957660552459154946840525739258877988716455095914220656469649375931731657900358289199237499928032191618401025128596670967020103078240309322484473299405318119699454065016735852758181929038811780337240872035563253268869788481048020635364192968153636849620235628181473980283404954181585436439414688835094124770636929410277941284601376072873837877488015620913664132729110578641646188445532187076729501680900267492358187472218016370785753202191061130537232290167490598216286205254070594337613130538277745077690975990027447583950440430203570247864406984607808004024061945391086827488660412351449388946863574236388227295299414401646055122983914487039008013657305505014379651329032642022357487892581893655383370847957101534836746126763413826130246666919923294237173942946551948203397903106931293483026750021052545681638891393585953871617505534049157116910164264114765752529926978479056677405399544364776448418520206312211651153122259427782445259990486959333491413245051538709128992957546086786754234946271310128876683837043479440527693048011022916056885882839878121684238968449203072093667084552007998432769087791013157617283713149490459527770090522974031379051404309996826415969932234181205730690570079944476069063293410561011622261534931455493568409650781548014997254429344413842174408593303480669341171914954444647482028736141261201640681536450585219956504387249324348772902385740882528644392172508850465744359360794084469438167912634880305781841336993739134457998841121007596574774074748391485892251408523022073765850597314011489633537457976167794337099945675246871828414430144380478803027501004848251114783094322440051687156695169831765325223317989128766433816477716163744720424356276807662461891089180377256819992845882280824966567234255242334586748709889440354884836082365507629517691532380246395528670334194928575076102997406282549557615946750051003872080312331407937496237429103142250484666777806738605291633641108336080157903702585202970573516971007796877628001238730855663652133830321039359581843938468809077060655057715704285441720349310460961224135972307542048472263172952943188418176387186458023814488005923610225305897459326951626911760978073688258839987817878923123312874561515918508092713884950562664306169729016986415042069701981156003517766876135934891467290532164861325102715244413572245239437640480220781666370101877186771936264596112194491698725759947891448325444613280844075806637301583048705572251843741731453993288336855085826857584846119836114833494707731328766284635687452119026741511117516582262093921609667332977189959868456263653989123229465543098191317380960174484653812921375470180726192713364161741263978607808129426956823618067566788017413753093290329136898135808953328998986601450455902563070837306287857240307871688098261586692994742472440817761170651068826634619575527522843014227762494903873107198263816135872642143705475882729598160824147988529945491358808038445107737159369960066522796395218841652740434741030078629753874162632156881568446086974688461669889972797744592471861289377968065100738447542390084333051001171992668108194200192769360500605117798375431669455566874805565001439950669899029569997434083744501827233148576731645196467699349994858638503622037823882327086908125589960337436123993767889392706853693745887908234751063812848900166285203477431262768599715095304225254026611914811118193221638408789697892647725557144889190233881708232244225717751175082063883077037096777310684541623034606173147381629973847507890479799311223869709039269741023467117344023375527909874804712416197600723528615703670393675419386715082588686904575927321525030845220070335143333446749303102790593760379333618658112970447495344287045731604188427574052637806989874919893711730832654883058559514663845707004372699526020132751982912215345271691050015242381881754117329843439978088688678392890675462041511611721690120283138124480608828388166964478783755312266717616540253807146371381028952892120237344222806576381940198808761381018716456292461817562612652978678074866280268347182503455007388249659905293830616743185777648844214633998302362361002342568585600743714458500239849132329524787030075910137783979341573726316849724254148850868319207484220147369823614099723572985812500615542663131770712066532223226097319758736172071472704247432229592154554895617444447146944949782582298065271259913908220163940801752092340617403979644853152224862937224084013161224481576202526828917694552532880377857795985945050752510059583690321854950835980803134073410065243173018922375738791211103002034683486834574226961817384098428860654416122680139230301299934785223787071668882295848942379666988546767019571588821659129170398427692270235289189076905448756035527187799692968557802738890705238736887499732946943003836019668365022020554362351302798838595862010613484996364657889406419400498842186666386272880666934953285599403105785164057191333558991291498653727361577246949015954072817602718173507405738221281628168753470570194613739991511421646196911932399591205975646428427115794806323396906166834207601171617551541727185109470320040745499004493716445390071587576776428383099276130823284494696426758603133286418800094503665074860681543220800714479170458950539738034974758390738804045179216790753883713309458925759373166233037799854337463029407182655441685086531046480368486703228980563844458645384070273157356059054959544861710733143388599026565050575828425553543774136955645308217863322061856061833423675780101028367622676807885904941508483220473384050799765917773141265789007370350737868736405881213545269411837060597090930903705674612431532330731934824081513057375722988219350418466998577203657442227287789226720956873661603854057640495279786495819417810311903623120204401048631879226754546968068822143008396300750179884161734051059485756329771317358639722625612091221231164044296468271077516298945468170635835306415061829412839348598768148291034596133636085337515764090237563539578984348235764209795383447949078654118010915181072677195848654373733866541346901758658302552903377734567965994492852832222101580024402504669190489407378098688159847911880025460666127294970459132765876611787490025013496507100729803946135676664920517075820673352964691417475634000239834448488968590583997840630730232037160705529449183752614957067183977931332526476727467648284249574762633819908770451101925611536602811418793033147504101552758324910105574951855398663807144626649367345141429148324437544625081358804632072382704618952971952569287453449868238502824120115619257960661665062675482472382052438626680425988042850450162165983449549177317222720395046112846965047250232600744245892066578712935737047334386041244427643785938360299502687988431833427136584367779319315970788024270328179404136664132637527775986303141590372305470861243453655669057694025288475115967731416763780320745980941670131708381084849657204633683901076255475471170892948819007147945993875016498248319834093421394076062779950780106871872760896244416347688304083024318432364816085242865269721751955161105358745178275174119934588154119820230163511963885444183681318947626275813227406250358792348049880079085325282886281333989929636603069732825526575172261313672344264966200840418249586150528860549710258180174017438209323761634972530869372702033856323361340448648079883768367855678473145581505041970004354179382026738167652042437156185132672451356591798339085028236811819975802627205202496739396062081727060326368206892202327670503927767554908053352731650012095990790274877486513267854670566557801252407493271390909335534171251281559741690802712809145013546340288301422205737252350826567004901449778018274686750021197880695090671982632692423778422121021694136343301795427631805819421359386453326194450950009638345079122088685282844532763138607497274537715726098063830529353850605479904765506453924202165178839183603103866357713824839882670592681695868970782333271026163775187102676983066826528352961718380207015183720420642992084938310142535378443798512952907855811696253505758810442130794772137938099852701043933055499249657145837327942322369841624232906868977128061515306515376446037217504323143917757119714126411649217042882675375964028505963188629278634471214449283392195162298643885061182106059103721503061893991661752947630786513614260758380345153820188461836081496304898770492542029831581032959049244104106025375842077334879477428938647631787335013410215772313228909805157500943751059960268471107288408729673201333303540451700079718048690502431971076439968826111250345982768544387386001514930991133291963812576421610178140941914547646046727227430020850709343421070069870828671181122502521062716744463756393108943158398915490113244066647913581245107285238891514111768981584632622056088392171279275822962943242994122377083281726909322880440437203646241058600893357122659247758403537720304465697428022977299333714427463966305166476563186797009080581672808948615454853200360888938893492830740934958187151011247342997158259063756407977940026450537235625704990157186275929161133715111623697026251900186884556622964937774752030669756712149121686820992395055022091473758688043292185488808009698350308775606881844553190386699388189810085527313890404481919256137992915019663192908562953254604413437929058827433527925985061897652721702239964620260531745624189050732827130368235132263811725238576894577535395272759269772357171964694118970063805762641836098287636664008404449477646615402058638792859488804854279027097439590193995498896897437409581399092966291963304413375270935266397549610059708618356163861790317007708040421948155561808026394294351191626333916034529294961390864586148940214574884685479974940212484041422711259583494799747982567271925234331268185946182061876135227546619567807963183405548353349680978315740017217745194215400650369373341049682546672931724280973205448435635587971345677436463862303149733566606249721115442440360360223595575714187666618373308323247706364745067904199737587560507457697060574952486421676756420274282715619694200423089053666518268870035552403246539814027705265550547323618314682484730490362360484045178143468794922073333661442213645761657278586259191358423676228621725380950950870047288399907399030549188553609078043649841100746162537981879524165606398024076004711617156207023682975020106751390785051933799974363074757687548850206812737391510096077742423583044155763333861599000064824054095913858272875296471151744394676776456029739293809548787245420289878213164732815988552112050201978752463254071819254890205702513100599037013163811439794936062670629662265218169098454117809026923157319788648236505015867983006381542337927310476460787643041675622854477624386615895379880176610264235672944709243218589260029419653288211054951205312498418221462666387496845295761783341769698437731073679558615205868021477905231633039914143392477666396018919058531045706164412172647085109783108471337666569114707358332443655265918261998339592413789614961976012980213877858500193761223862779756612291178718620006709054633260076988504694472457894314977769404243175208288015511750173532340060365238407187640824053760459630420420454252941189549806244918378107761632003090229012766950696068710950468129066470833751057073926598941763136855529915079352249455362750289615594100577719258416211558111795910855436494936444981049443924234752175347803124772132747188542543901102574536294087512526936311360608059961181013009978628323202254520494682190171913085373790696322860980503161723626836337773497308001438561361631038582082007859056797759187833181003446228522106597346777670279126417891941667519924411772715064567652648831256536672526543942874834966067389852148452300445231009950154319135258223966670795794841173432796812697084215087949021262436161816099842654891512070917500494419793967845803247946327134042641502820256434866912820532660284000471159165569231076225944985356936372421194734586647836782565135771323231652263616253937000770379136837353505195794068369731410975851362246830700473614993014886453392335218581218516417438243470263909910786095409789776602705716123798895870683042547998797503126077121828714928833014517192722453487930068040857196692004791569161250752411464531570049936538580291264103857274568124631756007327588298609630749081363485481224179426571453352913185867690603134979143115055679905365454419562966107275004981419190238015723221290537842437132080755637059649183589297147601452388158148550186202758101647020692447502506346532261595240359333781723557692315121634194253141744049784310269010959031235348999092639228677437883416855145113140631719688557512215883402921901712441355677522310253713361359165341999863558859734860902643761409488846993965663837671963460093387167927681078099161121831321504924448266802029169633715561178397721312675439260714610508579860547929410516521279772409757543406642879792654503623307415442494590568182151430827245301535562680339185992357429460386009376994776948017850107124938656036308369476952774352250897277232065003499141299584933437386298017951626385481594177383324811174283243821825528429480605435385786582937699792831500478883623141420927744597522883913201031632086283042873843977649691912579614317304576989269158993428329837564458191060113467667150843505919594837735071081050501482988411970920783315717816773765487443235484371631804314006389512497477559170243408077426119710874564381795131964198192938498328930970371620175824706801352796076338979998239133394244944849979649546561127641134595002566159032077169845314683191596158768712774004840573596182415671516062822634608961015718056520763271863947072059930812470078221702631557365048072331658885359976853788611958895656889681421397447816458744397456670619404747143523829526836987359846583191246378308551216591302100260609796391653885333324583489509146399861219894897196596908761602368445912601989579993870921613971160274179080341726061336893090519318191736817217527260145181359691224600860809911945929711621166791924176553531336016710862035996967010082366161795234336747301894007938354495566244887088234973802386419352719583443464017715521762025214374299646753256413126813224136981853002807093142332393995379663580027291068290550774111128044784959368226890878340637499280428188939539956842028886334776151824963711460873574611651215921138662222311136124713166656742325763723994279259372364440135609616718400359463033136237856145994440140356961538547962583966234776263676709661035600026078537400922714985702245174501905953577132930408113091213419845386752929727581959308151032263642348881850088754562211788972934720455497403070697721771631085734742606644798751959657448588298532586401914066523750956067108054989908633222914175743814642764421027338865309474118357411322723255569318119840363168555947637898497281090489633320388003229433337902091584865881309343747607595566926446531099381829900803039002534594841096324352618832705893482935492318404799574780645131461596703577141712637830803648905391522503516005859318545691559261661684823746674792010943641824172114602135174840028825434464615615375890763689588087495075500784235793389662870136089515095460895059671081362732783109066182135875401085891865113917725895990403922257515448339315293176358719977573875981603664824845897146395745920067881027982552894495853274676490430649257064360721492514277972351555439192843395147064090712961474696041139132986564427363333552332745331124743026595152459883126342854487100661058296694303793983216913418262680807490935244350381584138388692049991229878444016286552139472066068069769128716200306095231455340693382324860507968935169363762375256590205427722474063374750589364623807822591782876528569294139247343248012331245814759061946770143563329228868793944070469988410027561890183767502184610470332217619258275976337843491448703725721115310271446883235313487661811924246571551152283872978923193391653366837372740126578164532195415308985508503742253229195341911271700495367574210696271498963529500282907904761049962901950221715621279616558434429005563182480946348264405029592661384895909553940233711941251949723478847160680415534669062637001487626937946138770755661516961413680162844713093756387957919278481562973478345545047645118115175276355735403789211448636325857498298236554118330560138723923641462630110435268847443723896487946747412439963226279834260961551789386337560945450520259566356705494138506414698034415263314027992131924247861610469685460500372005169569043576137782008376914269722241684447147424620839324382931645526305839768042794344507589874835323353090821296423345765301826343248249866756389878197661877987208794517945719547062903958798117869683762496013362177683491806300381080165447874319295515405673684642714591693984212983286017979349377522054277996691364875189950169541469492837536542893032691370465955301871997248331565458955088857001458416772253320141982861803202691492665832716477187437916236135353007082507253724266165113868923926791280954578314625011671799350633938939267013393919615105763289930692776139773493898100452045454947484412648994130650450610997205295202259256847110967180339587029531900562641310019345241918932057508324046227343978998721835125158940758600312348149077723375413059521115547561103513635180508199935475668415060262048775075938602139131589520801699755453169732799805162323229764383537578732730414127478539713622239309207608867966911990925817294595757896858428640524986086702835800209631416879019095748342808326082244355326110018387806208585559456133475385702331164844152736953954209181025368165091852662769334094697229233375137657058716654502378717028736154134341271618255941269775297041746502827392486017098092741684197588814289818084504553268794723414052111756722816291489818833902214594442374444953006419702359054148045039634129047692296385639105012846712924825859630544998051698041384074355708928394584532058188988952959469289343883922202598842601682769521344801854934295211816588582346766169302214662815806454306268629940291828283916591802764590646903013576423545533141329811290550061810931827057095907671773869077910107489622745265383961356463066538393399202231578148707684651234256401177118339604099332786039426159905529456318604306106207435323204024559152557539527323768593574857119406514854851818590722429343798612360495059271428136840460634985640288674856211360982821501981783338676089421449854771958924332794436143940938487781769656395885635869714428631186848046129134278244379152400280759589724951037064763331993355314561606961875752258967622687102307581494633109040967834201905839730703085413341142721393934935253034308193955045158318052135509707216332156742792056127789518137198684801281191495053114688489489179198070132790813662787182875676445700243655948605236756931720261247444558863674046130914778419021646232305375885297599528553737607689586417571943108347585056366057832606516102166164269115157630319322422225291224858278666799143870954719125865971983862996135112631060593971666516304989868450940232701497254802363897583208145244028078114646302741186867777500758075177994610647730093904316086096113298405756532632268683268054988986890430015293252670640605834759869004878586970157157966978259769184255822255377662172773214375963511742102974904688635531490103408309258907057497297592006645402130521600065177417924459426405834433083328391204119062002655901871482762768704514817848744079969298995684797368104931269454741592234925938789179253289286492786412338826423501738042961556232324884078681382199949378041153107901709914779213341324765167784325448683330272140367421820837867747984435045754663824772654839423780764448416458809050738304728704315273705567853275842839956011374397863892921277975348818694616056767843480904792056125680673827529315623433161277335477881940452386278780269819740998133226458080826196475280143178839912067081918419771292515154352764218144628693289314073857809914791071922134489917505487471499479108300725394186548125116189177036038988092438022766882307831646979826735002653749172797010883816556223269586501001562536178102883839737885921488469514440231393734924015646343935105892664043377920849228278831038480524130352851294690609771603464455904574037643082336122498031616342567416546366443161790241754741285440412697108149689123692189770216804397646879012132455124854086246427158992300574949158255498751910345958126714913582746023722468672266443607299497904140600086250728935490482460891792884671790230489144966256072023870240499804890961652036956763323871142186903674600481995903576778528746502241705869043583458826690343253672877599031730938503308945735881425608420059958332657177181086121663364646058374565791014948724894226994651768372934329953560127184124680582211824694712942279027147875781764941366980262784827025220332477759045400327835432781770833147069252182972445671981573807087881787422033798022254183523371877635234722850362482658448593354114028547243269706455933294011030013532471753606183847927940329046514860921645962541045971229090510092964912431921291446355390576064637075937025316418575268022986825553171698183425756574321287738223837884782268737478201383326369868214088145056505703355492277034634396280771297972056706030624267192050912718673821557679385355745368644680519448095708437104824873868637385155415984154780272335200959163969119211759944203369603589366496425507961767662975802400016648455615216832086782101211325094136581158058067451989795901355973526671372972476064130007110361110798313851413994010402653276792803146992244504865457315500356761641094295961758764384365983226853317579583295437587250238962280381232288557324331952818364889195583634397205822262200533279119912961869876624932533144932394080410876083930647085285353020176652198118717856181843788392593501631037228570741908493468660860823343970047853254468393734571319580177695025123630879948069949577427440103687244871544728226409969466458080714981924156886793999825455555394908073782536087369681320435221231993512111460046836982707200877285820086735175659234214089448869614550835774890282046430031594292509948933674053542892681770113610725962802656496423306010839692676517653507213709651293167814860621918701000705474769931885213218737847852414316604654326595746308159305601520596325955899933412154537167127088389221618428042295059771479001828319768564663401849896697937901322490657448437435086146264567235253461871508062281386482875161418248417363582555970553064701277179239389722420877771946767582041064156041485557680864611667373316477554697710924888020089361400387831279498159655482704863880835735327746186763180852593398272299898277053251382462612319790306276209649943502112383734597177877886341462278802856554243401462259562543068800961699617392160971384259531797532186700974027663738078855708535008493270090564288113532341053262193427358284962355674140038524066147211629866553394300163021463212035631817554782024640193921369753350938902222864775379059851936732068736716950883949374569195123265315736389523256002902650875121678390913627940268760465812584870417992736097813107478605351466126953177480503151606253159466876190238889914124317027705567132877997427373946999933752566274593402070320283145016998126483414564663252661233722748972293914720543690673863815596087689326428347854539202658828823129918758477998544085235134130802124055245398493271946653252308983497198567859778265113723034201133530701081756576491332986023217685117745131616501763458925609657079795286685916669113574541513543886489488351197582841583043754919724700685954498598641022135755316924318829708751968145770316710343928974473861324254377115201770033202719673285674891396100842318315022842564329781312972850260140547762803864413641149324659728645064981546221624161120391462110395706072347394521678100042295981839592183178862086960334005116046176006426871863109267733100145755446428184744284075003990126885496902645288731028702164230814745649960439942288416601704692233786332268346100566499100571038840073279488491428296751730703568626344401511389038976667623561279371932465003192883940587779353714632280372944468021560793704742228366216054313302659329477413211226337843165414370925509793848754775121676557598550007908495981559487440378331177543212000320606008370395005721680276698534984080861645139378368935794226420621435198060308582513446786420782809364781139863136982654897972928333026009123211114120353508032270568869958248163286901761382499018808768508140163097740018375839472688782561158386811390974464050749510125504572471158397028517822414563216744505706223345845890779261161268797609640243561758757238535330264041573988398664184110792116639087551571593125396243266292138392609887405841238480468194826196888513021670436818399548937400189105293387542894420932442151710133646877575207192207145921653041978867735315849984433123567642346357937312061205574179316281622339442430258026222598828809248569427031025192068233432133977399289921249069898768315104364077876528667953226179110788574917632489385305632487231472071141479593597260668847429859209873566606940739770580386278046633324640904614689587192514578262303290456766130290773841889262632825353859579697829866307625727956690610402358295409333573465334352147056334175906125842459115230129920938847750139244934637042644686954567868412874695179271196514173338625149220374320244855386346062758465871042604859946718980222186776256449828397499229087945601432018607398828843171505256375282217657647315362022298460282428426217198228727741858731934189824875349558734774642482153113374815235521302774661769014477599808384025377665813778330229565388554095080400118950827164723636167236029811856794112944873279868038933370694671080755464257153639253007946832833197594233864910542883193962808268464678260888154791303802206594858504461837491337787434687288353894870506932855553619742334340297441247300766557686980185575173543344166973607169237637359561592919304929722614180325818423828605880716974002972611040735779823298707916253887947373089174137397392450275018107318885316808336313855432094276071976431367095415562418904450154766270622058030386205390332108882539926953964926208397778897525542734568722087100151395968147602870973527832473002713994706269347510596219816584697576190590473588762729073336999748818481107882970860032613485139904555760687380152598686747240858021704654508190808380645137539986552473462667904615369430350913320676999760594136749866862741256300585007270354832960972559519655766754371133037534384451063452742211144558484694297531056150767691234861283986232148781233386827440403934890122494627954132822980782207291127492231485995514175174200167240388509830857920225741529510529991657047657109587978366191669678939659299212075851479391709566519617952367417883174157742609177076569130473114507118408721977657733800476062097626856663713990708073206914224106192227127103074957115312039045017171231031819160875327006371619903211242021929659563136225049520731383748024852771188516600523665981434551168684829378923305941176051102533544490737552856648507000411904019300246170591600901608784488047873525155611720546012489922527229526223808100159677376870142394405576574895759308985597826109351296151841325040618952254735100391797155706365378895546111068942662289098256613743717153163515813032640462459553408920520364698047671676190448258844261457268974383718947166119332769473202590193225777392820992038268736833537698192320278476359278161519613338721748686600299811022820120989154286686778952663136009196842928774042088183602793948747898158510615267419550513375871261709282874346203246347698038484733111289344080832280195067252540475262103127179670831461361189135907203283773012444250498791790186858110488352706201601359595207642096601265311649140125809323181263017981363207709319237127485765270080254699733176715996309564948270288205133661446313345493180315009381608598476631190777099415969476552766618605932729259876064041634434696915419165190495919741028859120258018079886034702964099216450475540136691103729013496638488669852961423361370331779106890782134402209988847469731273848867534643341894071809172583271181201991073931376159063814489025224206280599212872212839906622461320437008321034995139540344817479092079821529483002470044703797995508887767302695356365470087914754914163809831252376315874777265873026044500012082520473276425644552701349223253533805985720986156263291931340768325317678175970454673243877201369755954692798239906149533543989955814470572881801505174612078620692273595451695844577760297092927041788035197284701016463451720080251096069005443728019139722621251802353138412002267503590156765969305434959600771303034746484505316110210934936660675835166657925411211566789365954598016093038717753853883188593237318299906115219715048807336248841274201800425272651452437862798757630196959234806265502700597283770238430591705772447252315030939639744115771045595080574893427329623091177821929358777972478492464838347016939520024441919422507623348752151971616137839525872871658667839317712695883884830108567421614386327412831327329644093254569012009291590783884817766046634016657318117134572829531807049663263663323343048809056232113094853120419698462341472552171715788796856671467784265882934269441853376307860259719016171857779604565423163345283134892214079501570282926511889779247570370967249051239673938260630250722667011437607649430092603388444425538916485187847016015795916824456482642505512765552702437945976001329516571605316798142474832636217721435207590626308340977678428574455997625570849033308904618789558781702357533846869498147600425165436690285999901989406797889627198769722983779010361110144224705595771607594611200364428154782281721757836005074244545144572746217033010343422278366948250834714791305328833940513630939279616376639746942440707099275157206888138984009247860084246273193428284877911102050528060482166016417858269122172298793580091844203225210276822957976842021903676397519745811861151709808817106708447380080902547216615471963067411034858596911693220252184701031863855797953325291078213477424281414906813844822791203704149645687025349072970765916767670082419005832467996356606279303188078410333021960618345285838684724077242366221901094287422413193302819233355449451256827305560534871230605948022127107253796471053872731683458892924615056250276172176259067442655448496459774207027253069381418513804616379696357214126404055322896017467908937833063869192623817936415439451041903559345124162130457025779269162828943816486174102398207886379266611283617865596248203407907809908340693585230015202159930325309170191738065994844011626680222320159934919805496933821861051609678877758263059736669501477258679183866145412192880170928863042778599399574416957031323633072846300482269200848414620560088078734616801724116243983244101769639845756592654148304192639179567507791993888130317164546098509366919267012792069578310014515888052936628773598579470354333969217166288691415209582178151275345380366321504568408916001490670215739909829227467589085983062619573505817849734051408544892351162793504978664130570328193214792713094387234316178623771822653037876116319209592679957693834681931803916392863188701925059358889049666880074506382763678026001357701693746134296900232563940865061068899775096557734251376070926680112559503994574708695180802937286405915327118675905535470719073232493064710516394776078013581008151636771038859313108415872296343620933996396110844284535575247817430827762727563189718313244108654827756957099283102138335082032149142759247241642171423902880369091183389061209299538294969073961483738653282128337102079972102191781442482041940625315605954667795521826578847240414950054327078211904395320079562562130992078182015435172101922888568979599112752099830382895187495099102841021731027384828538251705103194291444971772986150372488025045126669838334735494688351045594776240947138850367436926032794594217329173841050511541650993005428197420197857440008616034810679755129797745884471706242649589228915810724602046584185336382818524597230169551520874435809418311639774925636934442098890137660335474856910342994890926260513928594902108716887126411986619666836841311686646291865273257294932629522886069727608144756002142892008871842025743816992963147731051156365065618940352324004589617718373792403216461062886174225056381459341677686899947515828182214044551069048693211367377639802733699134154252875193405326638229607489826497602362448392606476205029475523208994467790323564482834810312636492075948896819933461645415027981985587179464931327021766856566281392385251342982570761357556523660102543852404404167250635471649032036916716927268842368536614326370778260780089104615771536299213100745280996842203059703303108349960627623926912189782950948402478781670792406586539496697353556798194720966970594487939813279937430592682118131571179315864418109638575440294669554413619078708326616031660977406685897746409404732122630343634612055042023840767526134867057122016631259977265884137689525981056716311194457156731017644408423000974927191684556640113207547562828032156985167320620286796496519593434371537539575056711644138866494662887496603416884093243923295581154341343833667865413690161238274222584425935289572283881473755726176431775855082764271373183287977157790636018811182173203452284145216162619477643889462682947329727870434887709738040946443990588851838957986645242634193557521412982368256544809887064404857323696633877192357788866497742324046204755492378721126714414568979606192238340324519209540079287733283060523626997623970950496214538910459239405935085923686542726202129917689334505850666237349370943471941059130474159896343038991370973541877364382309157194628541125434200662532173573420114655602093236001791156556581732527838288161695071717230389148511299211765853590192613839874344309407531834018782340154372823617254505189409311343918651188769573048947595694179739338054111746068952580998486211700933306163828605020906252208170019397276241004719544620580127901980323936041483974948787629293416668730929576262597526817112414757623472318556726158831705695112975160427170249685061732031635417313257821576993776245374768721658416589426000316966656275789158027429574360242172993967937521577229345196541293167628249587028472444357968007148046596319933089721855755088616303420045810020450115864792141277557362230678738837702345000376236572499136842992211808361160322679564648212778354974265341284735275810408249728287737395338007189165253536036790964407420470747610524154673370338367406432988621743087198675834351798397042874058499395658193028810374326540937386035380550156944107682451519230923628685959237749416907018079105286111387851861199420328519667426983589264326320714365398096402851179837202090738657833858671083649329589560300837620186435852515631691407336185302820930034160380999390686170307813557270433235712053267580000061436157650759606065120457874504740993425155687096620686285413064791421423109403743376104587442464544612893137838684882184642910662793786976569809455488845708216634288434850536337748142700538822984976874741587866543300040991668827433864274673035806123835252759250001265674500880123410766423931767255373637023913318476152007259654859982154694955370948262520089484244709299701562550075532755778793123027408378023204900103339620315029629472541785586897262233389411493207745688197022143078211714259634804680943923762114198241294095798585742558232810620258759658138012454486900180482113756469196935877748367838038615823759228458861640734120593532278239846702091527622264759918338938039717104944375462772487033148554080077732050491606153687931793585060233031699011595978384348744192745906525721118978389365219925641696917149300391993801936976503899202946098129684811370235997873710448378475079668375422064739551603572710385625364054123807168999965142905985112495438233372050532896239717186448113101253155092875449645716659100843899391736138688964704974156664273775509491204935871712713441670062298238610370812144026978721636735805286360990692362388964956420790568376669811018759575978160562176296359389971143696563108050658899030890405287464748556909198603484424753830680589224610855476616321968188665476509943018137087317268206318253377513389638765421379029069963135510736207524507203032326747142918467937265869881187581658173046032524965406307887762369701110757224216402960530513614724387400265273341995959688940268121411133950441713088349548936896653538648105802794688797327300196712422693416198682297317420477965060335861295372867808312380580986205254916637247023212386206270410886351337635375123310852738053370509111200061354539527368391983833358095896781429915005384034450209307184878203640539507361698409742336242723672558023392968305075814244063358186928660829351417888555434301625802224536067687078564302762798591414295359823063415385764202299422288297550166346604623376733422627800935661134699936529688265391660497270681131524039114071459472486605551965678391247451245354365296011204877715296615522686795076389809305345767665133664212165055072668250061742925424872713173343139440405880184547984727111127666688105946249907395018706055456010758125710734066343844662941981652536966242552285771884328829219449075507250394367692963777999508412429769643543182106561618959440845789330161412580433306460790897130048782155097645356671070282450423799920754214573688832441045296148571467907247716278920517935761117605248289323833448768132348149962425351497423263868920931260796616849002477464188244036456674782504745670998836068692623060054589317433833814152369000880705341524045630753534703741756744441319654571376026194320911295116208598201524337988353332093262732927609636010760843289376743586057808787768681560918187335096787513527448123494565680765796345181406772362814269969629550281809274399816051045667816182591818494557673724699590885470491782310740992846673560108885162456182712041402992928049432645903296593052401459965235113536735067430372239228519078951963727459196274604576219144922910343420414756466833487575683404813058300140047811235998579801149748255239774205353174644995581514667093564190252083881955400165591705291726821866586433245799372878497167813274224928426141120373639218127236598623292175302667959560742583508980502600530898910741527563142479480485230568127707683915258466497188917700318345786086687459286992383469839369917295553816977148959033790171839250276987465123720274380643868680120800782253196732830227506658022012380343664248191525066740491003811746560443218870810728160875393609505624462999576691249598002052625946941011655909358712845547192892182115045200438646703404088893562555007595623614241039560508755781511819437579890868081855758378121797019158004039264864686375837969327194686754235179864272963077938800350438559736727482814255774107311698134880970874413685616823391273321805410668634390000053848112047741136484265765022479397661682288001453509227186154054889450962052932528842082737658340218368084179523959193975397922318957451269880970408424638648989010280523604027899041219642513580191300641903473123551694132181764951458897272705697317290858412163135219883194548123895174221962844825784021966798096733803223434744326319352907650130439990555027792104121324880117554096676986236663600642371409414524982729507783570213220345559221058186480368365675210213081912477934800289419059263885362955938659846940864850649533480700403353930400956139788218659884752893409253968124853353779387817948415720365885177703968035216425712390391526842507916036035134048374497344357838917856413127858554843707216315054199864022732104503177687436834118917824294279356537032653560920230689730587146583074702853307033272261593409690479456852887581985857151772241950641355272077924430183867282714579143918221959529955743533158532243661685165703730087880186249164348576865823373115866765818756219761332620466855296937898280342043568602151384081023630556880479308234875029993015512453321061700743396641313430137402145873930711318364927969485457653460521362328012029921069752142281745644574926500365340442404724190329269725124152182625286468293077682648536252396352820083466326462915407686887833703644317904715597028980070699668042917770000976283328106243899353432386876201392757478537142079304483748945694751051596165962704648238325413726400679903087089794690832919604044219487456484143497429186090496846923537924893513872137475684481770330470285933591079240779044294726672860557561945939814115725407568852858535914776930430775169657125183093269957385570876681560295011345209563759313011017872090695142221993305749792301260325563976409436748560288041296442669002376125787983802498315061985045266592359949144375238834892661901697070105830696660646262451212505812993958212199519753211590774051944600062145668982143595409130170145864731804675740561038683831042378529469740645873337285475087970060695759586320516335763379755504163187726540248707588096464508144305018124932922437778967840444492669803866910925051048057748012270317782102999243458866034040552717838872039572549497126371148272089082588068110538710425950885304052812698221147906968326579717496653088935970964882902338982603441902624431463264298249376309540358328692090287926237959331047743009856907462459700475727811098392490753987684452312421794886069924127550089425733369901276361684629465679279354128989410778455660723786314949282594572008763950033432707617105374507687111251435500364537117320052883897201379229703030650993788249959928455994635112236625225445515622975371971608123463892764367028583507483436291061856825648256733054162027481155346701546302293216512188516669673091190610604095976098243448393016415131346638401003143736590061500066400523950908963147065102424214278461155887114906769019252317473312573403350216769318386239447529860504444691103127128480966218359898895927235649905782865558486285709051231452397862608040305474135937869534777986453639489368876455136911190633799267671720284271378069485092140901816941047199613019549407810430122068938607360449520595863677715450739232654095735292536358620631352620168484337211677755735386626216005962695159162834104076286761978666382174598538081558892238421469535311006200610270823637754202673095796062606307934613913292182935811799911578404439221847650655878769240763472530217409083837319770336272355676348914059757793383035776094503725904021278519492128978553218666156147945770830886772946767970546457170223947050387082222391737183194309943396560826766521939487919015977172152057999683110048194895393201361124065751214986497298019851224626560185344515146459003121108170566110174809699368882652218672810666909999754734112095447211653514128487734322419787535082907208562243200926622659239840569862497439799318431990399131131995273082154834098982264002150424039121050703420079749150623288888289436249243813179346372985419261869548344249331269333396724433714823891805279815946751419985605953116085922059416196490341266372336730659721220107569985933464109588496564661692885921453365587804438381413132653840954163216567649127506764750200862055577639504133087885087524477605911731003101412569688155076061644254143211531492893880669174162370751541534612706967446542221372654811933719142902238164978551168107005368035272463917066085984376440204207872294535664673692296771030751300923334544605079421782409429868551624542087541590451662580440487973614034598769959624497546498958198823307985220796115527101870603504237690133466592676951624491021188404651454007632075984060101204031758497220385144773506109334041773264916392289623315464992240432248059614023254391794887991961961505516343482874445387111447705520438824977383490444702673467041702131220296549453325055223526251712265517116136798061308124970490410598079942862543191296265988342824606161831912907715746082350417156978656053705975166302633420419101434989145185649019993409919574788613304930317108146707475542125296513003529087287593316909594496040272357562342450432268104928658060639616208389503561733084063117999532668107218239451927787864418382782909951994380447470613388627837289256221482863171873381749255775693386885255477349145343574019431903412109139285863689798295511266691217732071574373168847294018555255377632949833842774597597551420689764818609835181875465655578549519313673950144052665320985746539958944213737604764296530801780649722361513309603440278406998745462796467504019622010266205406848546216850241634725557022395033179228029482690322497367733455221709305621267587037398939271368038202876863392723053232084627556051637931869052144351758635283574042760901003117296814512967478064001305905585614404612270376985582882773899333013069142374194491504965367577338470655470531114608361826818348010013989581664221750009534072448673926116794687683478149500432369319745091478543990361874726946684268327976002955695971804509291228275100592958141982535245672861103557426399527381397611403642204058016575779957461541064755328635199922694487468641146638616929324735944083479848364905638266719736487784776403913441639607530083126465774090763594125598918785742651453995280969349887094569141270211462479887600153501238671818466070299077080487870361168284743634573529534027374423117075793792452925311281826070050823105059540501845810255708231275817946800904101523756652840519473171858511199679732530929422900228614026971847225879118633043919379171457357528775858559762233037209010745897360498753622462514066356781953490588229052117641860865603813991646619329334751171968202544834039343858329513620402501406487006166477684257112364039175774964019464885995741560881870393159334538044451242206807885186758701527882930395606221025860960012757277128796350397158876645147834383922450636884899604502451123335632895867100156282730951487678052521554419924018124448789565912310347618684779689678887481019895113916590541668886309015917681239666840480950551554046401865116691021936016958312529979164360087642457360766540366059823458063377608573126432162492029383191605005399332783956752428974610237263398120034060041898055078581375950450890669116805416681117725328606379820063802229012874725088363225805660691318332315622319034643815534332643988483847706893613552798727227590690264264621229353823468106707479776609670215576113163702887155748651258085007516304710886169583214633830101375203470343813414493621445862466206590356525001691742041504798205386815053402126006949054841667917409827638856558085751271510437875477555772337958016679526119905445171070475233137169221284255980553598882158836293723683707358480936456831719595832613460685838824245069671671695995364275686818799553640404363132566898084905257036896067467396343517763487427606835833965401413467399931402047003285068654643677726393727178798313185738838612296761643518235918142224587742367270252416903972980247808129118538083376812883428513028912506760006405227499964640540864001982542824957556923365979997856707866390629714167636868274001397926713643989101226079824113518396822463711615218248060818475243028595359578084361566916039192146240525564269412960850233574280801311468290320168025779854537279966693182791573888702473736701369814509065667668460700862465790965556838259368426034490136825312104208250424565805795562543069886748024622860995721201611930756727010409897834644418889919267185641269123519995987640112558626591751833271093962066913226842756003629864233762531176207916397128651756221574587614979815765444461070471307801785300490128908736164826236255023216104954453429775524477170454648324035802181098225456301692377910348536628303521987368312670461010320667271535422978483560645337284634269748494766712159224357028659500515043756944540843543664513911199254506694926872770401394748855126537330375272006846963771791637681701420241527446707460947772988457315317427204017598600606019250154134020957377153589151245245838993459141813749015778633148619120605906063207002337399023411773799801649786468034999529288055854974429471723957265810433768762580890371424498969338460994921555010240232181514749163392983235680623959800801275517498181373491605688809050857660211889131611164201823275583449055291669824442710194915218742796405727928994984052682719459569456789965255152260585686258038134463964281371623783626391086258956582840082373141518355774695843004966874979577331544448216256614421724477528094484167448278243649245466338097069390114192567210960971071932782605883890117332058963158197720871989232284119836084328341675319210488308995069399518271546592883719800512716212179430531723511228136894252564340639609836954987357386957459030176704505935818935700767335108124756514658914835853870944271535550329796488124987849219407332045475033615479666201659746816618600800959424585140019021512763078463413357070897862342879435155008634389633363211571855138968828223335817745688251038414607185760713417894973168818071693320391113152868431645085940884300137410962323748843496864926963900048228928986136459499353324759109015282359371826583980960728279247191140333587653513723985855565773070736929541821838848673841620849792374175793599672528633830132692886053265916697247702122226559210038138848318719525318189869032136982118163853277236983878776405859205135997248939123856518472295070450087229904726745770976443735202584471548615374463941624057752477083703706010944326783501708756233173032441626007742247295871254108293088990455112691294569374335129643758769907953540717733140502327755312581011999146537531457441480502212689497020350203148099114144636002412583274518168284039417732921750025223557982456199344491215510517621382710370780998110578950109908506111091791495935471362013172009086394397408258959575790226638900629353197472275266524025776999537699269387302901320327759490426596253368597633197556200894217852321171292356168071843097920082718032821168394624586826492532438845737995255740083593775706978370811683331783389001142291394972649108104057823800916884838764033650704286480001650901947662003645430950346374089933364030291681354360695967683955592098308354478313723095035447396315508173945272959690626313297186659708652451977108377044789874495892244851080407599530193693214168804985058738245772759215453447809273658538791852918132931993932536767850236564066215269063168253202564597737422749052276579455010409705832205445286714153499051858463480413380346742677790105118805543044648749735324559912543835879308829873617444979393538350416235872133205898106731855278188501749651444772267631191354173802462006894455175153790265118625094203685974478023703493498763723323080339989578027814791931507668009283920065542912464098687035872640494156988042305244469524992289056396138141921464431227210766363353648069625014616715142710982011874725116268650600097622982854131532451594490046687536783339609058521687350908563076593375568924076128572655517878014281298800343303976573349807901790969392214336456788123478140486885329190569282244381301847211866464709830765477910184698694717897685532071966225099231493295394511763030056623681407146520052715797178826528504708356088001029224401004502453025022028149738295780443399773113756920692688222909400796861830372098967616552692777240416430894085153500849255074507029805978508838863185840128189684145328795304040996551528613759373031041732432771673510498999421303966978372821765725299920320174000063720647455666554131535654317783095199359258056786637878020839667619221482903512495745174720716662313607339478640736221165990092483577040085741466745949583184963813821262430770499637104256481212913277870740848307406967634465342821781265712148017440311134795674526559770530889575479804746896651337608227481872546115702001300953650128203615847401479460914572618935379926157555365994421585744303184733640267263481673160106419480083832950245305770624863918075514005510884120817476500591071437608616162009520494078742528186364966216752465660761810130990420616183630029441736137580298184993956499499629751663152520421699349241669645960172395703557662550021384682921422378313142481719668281378713846952037272425124086474823735818932943978002422578149171606876286008149496579632239635777901443745994375041146789181656791172921306226162139612080077801959443805379642519984110381578967192515247769882971231053737362503987287874651920441471643451914786026878711378264863337443574675865531541553164554658938096311696847984966541931983819687982183507011854159162892609475966573116939028199422102194323938540173193149759611214925652328197909308186476017437500299160019081098250454112405578224674050755014392263850387513837704387502423140974798846127258113070757627319850350297300097545198994841272999434236486791281199357564038315340884214973127173443863265672188674658236411286944664236635836361690007633506537894896410627509820782838547928523083356380907780520823764163761078362470354710953371517165266613841618940993369450700082734091353544772427509699531320329701196658034437528031457622975853421702134750621834747580705536284307951889992637406224438167669599247419217718514206136374025096210799798366783714751440345411548027147806512894819655384879234202943597310584989431627566518935618734021887673511769823251764388207672536346395716514835764560315348250838053199538491231511423398536544678870871277849842929786653909185474147374307289123709389474995474275007806909113014192030168412413091887153559566417171721370835653029449218420257999628106557092875720545855955474289669408906881858299358595058806618907031684376522552321247137028790886484047700515106023597927918479393774066062432193427639624727280593742153987490868969915044155359412486606600531839199456424184900706668227250422111111694014588559081648236695296623566178776031273532759184613442693329084097788185586456954704077136495425535636943494749182479622252290003248610877090566105554594911773144605397472500214330089988199847508362771645600537415238003953806705500802306412804851969629443639095127406937520922597401813768960159096180281521167530731656791045393712436479554786276185584042697222458362977316956613713344612838533957688885924006749106243548412179494665321394451884600834258283199182749819402625304493895746137928130362920336058477528124893145713992983201949861057694733409192606635953018188183425034468891587551924396743438119691938456896001660918603387400999234112232649726125416445324950619855711655682536588760609579907226335638025542964237801134820954833909054255965337144590973958376212666817427147469587959369887314603096929044116915441118950691026725876655081540170654321462056554719257134878615229013083429671326036836026179141891655996512359064748941085531122721716608648197822311719906490777368421236479056696738380074476319992240530813408970654549197471772339638262393638787863212760503596155941871910136983005710490475202253097240797946869413649645678565795956501929370422823002016823956056570720278740781142281404029253505153314731711507301583807715644686008268050486746703905176610446337157204462259972724186222304094330049717748946833140041335185132385537442891740763829271434100078691949254046667204552096898102029088542877229011855187969760326940591016745336180950139490465992000620496613746815324646882258421043238995476855668135543278461304918160253803028511879856754489230278852740195983415021510719023018461945934844722671272936552690599145497338930381102366116559419703311977305300986639204433992339067920377746788818119551547297147593939958426341616479475023177563925533703641161571083002459431108869080154662469955355295108669374304324310256773057600556850596253652929986234271689506507358080204813274585672607974844250286890827022509294920184124259390265443694737245776544927230267585549621063682365031341884327539906740170199301287744855117127283343494431480899989448991841940407498992981326810313405695683891693662411153094734595715508647135748568418953375823021165318389937280939737165056575718067049614296002405727640827084101485912177758926129676680213584367186944424998156734988788125377474992640444236686698681948138916715814633772449055497686876500367501601255834999367529597023561120296859691289407239063318998035614878184753974239194654824259238974321534071839268789449657087120176145279938626727213173636927592777483586996639438320148282729862539220541370211861868620120338835929111667785065542449456363663594716511540933961479272902131924840590267261682766017057771945869388792125997552200725953006888259845779280281253335466771908623914962501658324580466640681346862949774966434268292475736629187884259351136687781178686789028279216827370068693509229480379581020959671221013068459566707035532437517182648351229264792951724184150567037840363439353615022101221292722683793511106250504703246090554403675453467673214262146773254995831802157923300095204765599188945303924734217805955371368115073602117562326485098401665942369198437664808400007450469558092974597068140863440846401403177136148912442985130130320009931745169610511858323238215126442735300042166530897810202656581251978762057343015674902981216937001307145641670853956960548568187661100827018526044475146739590594387500533207972545727607057564324281908622975649301106170896575542676836011558916377093466657367468849901548250193312022663472455220619946596038787013509623378961207023241274572286594771391538298404319820894035733227337553401592181709503184332829550054149012898970938267413329433117914192414635890705367786740286901444351625178303539924026037910575471402459144202766992855500643130344432118722377179879976212936055813368524322577928810046876229452277781715056002385523349552399712400780355401131472011824542479723143513868294266782244214303728441985743400046622164269070352626244142513285204448611614076805331292151421690798746713863095496608952861748886128875864927827494743548553979374019886865383107545723257744879843137742356942253661352900792502355130778922825741497224160956126176999557184322386780147975329329582742273619478815808680538083859213371265688307190618076041591777598798290456433371830522644464548740000647138423119063785981434593462468976787377475802895606843073198885941133232983585601720783943177711369300432319324156169715781370936537512922069083795607845646000148281190120302242242569900535022662130815720935743045481990768396986135779768463737313151983709195537065057532585821966988497033446489049007329465882077260625673528506077463468790987849425247305166218109157490273448750175040943658063746217180102085091317274664021036674189915573868115583729179388629502045385755327799981934582781686340772800636241060702244606781718222985707092087708275284725607288855720212183947311871206899127138954719149754305465749954867758465846345000457883972800994320793956306279529315592361570231988373667973696271488919200757072691292437529978194101367657917015908125365931481262024177549306614270285843526643906935285750960599428922024086051424809838202334175840974114392162688121587423617183470534974497160008148719629968935677327157497941783352347581780508322432672236566695115862711346610410042999447465518844653552580881006658227310670008672325882594269433448233135763657315524471295813684151152571783196779213856820836018739310586194152790173022539877911792170202106942966477681275732348649782603972125852224841941578525240498682547571175824588418302076494769570078919902689714747797488059960045119341673710714304681886103909878407302596782684812689812343436959206084264092364401267601949860167998004014867377890768398662855738236447520728798136556735637300234999953399963358787773067631805347036362326854249461213446083596918953676288811395529628415823653595198122151270142013540321195543693541682327933545827301301145179251734184026355234099896190328222276481400723314250004423526071521999348479825472800423519307658360384097053924211989446420128543554687076777683000876598194479275520116551513960338211607114446096618671625398622858376466759998119930436338465043593009902909139331811381055858256502996945088644615452915126948920187551118059749906272453564343225732856026175589222973925670989355146273455987911914090451697360582686603904597049534422327301200764304849937336426096508682576870776414236593465249838770349294730251520338044871901413674256136259142703831695346773289669142233359486862925597376072580194559328983211776368834401215028562469297529642861989269993873742817306843281641896187700821697468965795361513939062297127124646788380336775491113353111781577525344341494581117834622927892015316433397185194822833213720634964342115273947031819941224671776161873874435873761159541019335004792166726519979826244707640346641914636482725995742580287835443699643958450477459256185252652184052702705049662735052899513115605698657793471313108691030336067383377902359727244072557951672241364200230863231011876966806474353494455839225049977883573727645750188687813040632332239529354107694193483570342329441911520690500194910349399752700918248335277753145647269871794741656253751761980689713461624433455373683864722681479976899392433704843760744113640122380731847259641996491344714421046816354348918726629879081770270124919992096476636030853938448454365412262818293053048332622096884664398054356667292048686457984767169450904882338254098679715123643074052242034457892562715274695801483856810324654841084504616191041677194488519407810499423422177617566000092454638956873793403224257025292269840217868972671545417188322447649154477051856784076157553488531013087678869172298414867004573960865396420470828810405387177053369683484889458537524534804646477665376957400142851510398158854540302828748226198118150646289486895290462733553814902747134729086298831706556985483604933554252696619603903009008446636911770151983701377850626915896222468106853539448531326399722894668480382104890820660079705697248701772953260423127554325351048213405555462473937374085498368817167176140328871798456336379948354147948547208161833192239528550996989330324755339045679464437507041685619039394496328418827347404528263113586570174932569023310922810390985881937655784707569881751938994918629766398384410627772311605425492190677433215834961146708339430335977176495617764658089683554758114142225812688618873839118835735301880537068880285679520481747091776938952872544633978795057047815506071705713665671113950778702553150761168571064343668727099931939130297349439536754197689989057202947601792841488748998201076793430477310242393819772174338084550773526449589550612188744562859556761415434696436166019350081429982477118906160025207267813813723704774427659616846558146914122547879481469767809159603124435644927093559536423390527475186401582161562069536057684414833166221747553855450360217231758069940954034479264533495496922110049802315245426254567125694488572183890538948850432507991428218075019100904410416288243944834162106560458595679070969325753227685176336370871204546917296849140152133623037261691340598545471228643092038957096592482995872808121278753635535850189735241652796203476686997066351131947656923120431490283377184497544122080559916317717468823689066588314853863504204384170366621001308483230857986827089328726828051545628213856819441939005392015073828460965628424738884315848144634439272005693178075736080157254911234466215764052393593930777194221637868468348861680007998232977741515590491301184656296099706271883194589086090168028674834228131087570908905933711125752485163499116062414122069200150029573913560668038446633642779185025074214372352832469428617451514872653761357102934610637353414104342887705104937965130080087238996426606203369217192997199035423114749232659764164854525944136545135156836667482179575700697331890968942899371750033733915761684757731207908770481328687853198476515592365032623499504766438349811399391059000856588317609362342542442279910245820293372670271187972138996832145347357290400766916580142708274179566206199088922420247422145892138789255809499625234582229803264408425110266485093263596123569598101182798787220580575633203921343747083166509663230440961224129226758183976416947207481291575811270079725829074710629031212540614155100960503956796376418015932205688914726192849381815544061834079737128883347338026093368829885793347321860723465100491649335434297064937304670453885055847937901761739091174858009844284141327285416448095556001830446970730468236394044130370084925070325989509167770988750185507330278074321418628845570860888137281243137214471162040443157477591688881381063364164443953649052721050219827121964937209775987205729127388270302946961666241116785097988632561672019221841239759529350707440271879372889257023008188259569362995029638851378510329404267785098106933802399473294380767493318631101086113510978790507416316456795539392910146386400659258402624686424817423917821937840867699777802500914181621732065635935634382670778978256593616288314261537189421673282920554292341532665621019149769979100804321689314691768804406371962493875467299227838016849429876665382021757971502581678523490739649943767381435346086024243072619451461959764730750421569377651526848218100418892642192103583255963374966099632887136704624582990408496245090088178957410664123786706583385546102747437060694360162621089094043715458992961755977225040389751448604224549509523974443897562748841562805169379669398559083023498018939401599195847162711030005975550132424095169397219637495562839671764241283720357999694244286365674888724320308858432233020899321499392819236391141856384848655860776954163970889370522854630425857290306036932688816122946433813171009377293543553786682322627323857538196955903320976330062701444228389152197661732231306953129828347420474131976654361345571062574548662454422932351101010097649896003305816717286192527962158142822664996650689010078273396512541955887620083289954514921451357029671356145998737819883521197496847534615481827314703304767037169902419498381662860447918314813572803999171476061466400565294884351983264035833641482013093541781460220504528919314985174441247766425423556830837689727104253383459471933116075221682151134507375218018978691354709267980786994998093916739921101574947252755283879811811366776161737745730513038147580572133857498626510576964785930805212365110256979119792103698800170498093675748059883944494042638705588343945435016918480120593021348156912676662263884833554668600083248414771685041925794442120167949040905529103938802244841367321906206210441048904298718801642605919665137965264011379612694229881638161322519701182230501433749848287334265360057456108952881094828183092242077884345461050110912968219850746494773614348138748729415059542798816364270734471465833222993602656203720792908260041879161758128866929838340182924024149225837579959716201075945286764302141893459366499163931165044887437983124697138315022680519999105488075975270270313918888066197715841152217917430400982639662016690107589555698833332317957842676177351313839530865795259174879966212517474647398453218493270597818177234569555385306743074488430751371106091013163233207707642170179671072367101636351898466108040392253226151419274724688037314611688931904305519171599236127865401521086018870360225078846362773504479415286621151016117715851915408211690150837225762389583586023532892745172522354104385756908999553246115753525725496847335395499651761223155520118139538361586639150059338844443703824288433955558867002931116016116422622226028538884354346386502286845383823143743597385777945333758460462025278844100939107162464588871187570360617875011997539293200563796837606369536831810088233354825483280532407045635140176218489275555975396642802053145744713355476619524282740421576761134904069430686289562522675413173875505472956475264458758835720898155273816308394658733863096627360312868699850721827512435445606594539469341450572220802056241896692611825961583315530473844801747721079123877886510388460362663624666055764080502452111058154182235954025561120230365389998980291148208583405323085011451380457490787111193584569501143908739615996787991127500642466505359992506905527718855653584707975663920744531566653851543347182486062267121858043772712980117404972018562827327944225189069340448128764312142778031838243066676980354511357406800019286967663735097950655603181970325946139033366806655051834306529899167329224004809264483500638542860993097264462927791159650635197316964655697371184756270111760387700992347175239887492962684494995710794368538779858708716998167599759687639778417375924129680225789930901559557709899683332433997903196714090587390577789742716354109586175139892800303227007035051830043437229090273398055199064501328429356453555048942617264720177754525943358945336471200026435899333244855942177259430618296524742524197226297413797646789920964423377104575615449587590002568058528589878513678709905340492346633419660188953113423818785356491023152932831987054811641551484249259947008733314838430086204265854412109144471808568484165570353610631705023048789686701755648613846604352271899889093751217784734535560704726636994199315814877343894482315665707867139331290554247908019239316909257567697701870777890068065863834261541519345036316436246142330841779824630050923718987182197157986506756766835024431702548998987420521054549173737895524813638981598026757177493369369772653918039326692503666447641261518457471541947080504174539420699786863678202489142302563060451729658639220098708542723506286636878243100117545262466290585067283987495080840650264994575065904781808975760595200033188730139760538664488366618347895264588358142692574312620623088999574185482039519293873589605196166305246146413971710069748289141292253718308629694470161061748478304599631879464248127585393999342766130668025840279830241950582072777352360246447676427935316158613619528864214161703738759134427300407950130113418173003303854539880162383290181692370054760916775460964839699336555562304175968488039274095357511828040667163992759221766814727181585967518166889160021233738390559150926020031389810945113473374804348911914995285360336234844929006154739456405506202638697114376537987320912414756792674637091958885035497516925324517979098064693662397246126689046491663649252229142418276156603326962634137400433184466564658928521958600059130763359675532615977452475667484157645990314153649502052844108259505801333978553577743095707654503976316694836288218809380087613352890224798808682640953213414675372770464524509913938499710518416467691766454659584302449634369441201179496882304783804733856906011275461769197399031417380108798535602901241170863813625781770250054203574209918370410275668493261598690315853529242219912303615945377605714827854458140638148750917505062834699725127574306904907999312710329177703547324617685974754483810247718655593014374919372377991902633336075262153280434591015849793626388433984819632727970408516159547049498752495068229228695752476508197082143599172477679121023318897155890443239871031361016916181123304366395835358372017268821315132223340077460116742911094585463638218094007948224121633822223528982046884543223258962144410166798835448207292557168001666802721714565090776024348745130263290175393230425659658748004860299839088148142426833855476269602949260192393587864204855117059112450934697174824216285932377802938969991750825730691472529270811819701864620587383244047265732762644255647571834005123120890566085502613406501723224287739424738039739278867976995787182410102547218189298780082923715289432138255143545846848410833659834115260801709933028589715986735099689310677665704587726264636414152908623193340365675114519068749073505018224297344324555941979241648498949370567621816040283321224787612088637539957485761268962884826733869751243270457149524469976069603362753409732683777448443638090069643754067984968462149670624818988107057502186885483221493449502342036888430321778999665083624808042695067889893592123181806109918257767338486538940580374421307437839937963160745869908740031092989202330560141795660960435567842145574203808591872487352883101080761250760930033173259047129684133798104064381560961431475061781360443669690722361512162632334222332359086161907678557237615685808559172673288575506390427487591633209624389213779176483657652065056704878413512861230443947286201263689467338285186804290840948101629668243970530803913167652667821357777413291891093802522088199868312505355395311284885957750573635585334701096042256186524524777691650309084239325264995910149113207437308629655585947030210959277775512328190653883447210668851113641900585547334667755457255223733537316664897488022082644069010623743420671480891066159562580911858714692715663974796338600269662003859575395176468289977161865422959420899605526932574124634912611427436201624584888073081041220571847435962728444362695298876743020589231469555014629200851951733195328075620120417624605908166433092181743605482872320204703043644908708370331396058179033515490643696898381753405993489737930574094574577593761889072014790584954683330420936608641311095617230832384141252271550670933383484683409510179323729896960497251510822895043550192648999234332712629194757720729158432229227125363513394438625313989589127716747780736251637907364379990489782326278868260319662045558130005654888469143346193313141195348607585594234260417758492022107257903755314741645525836788488729336919719211765190821611210236635461592783765798462460554067570859377038099009061630467747508130195172084850231620614037427115977827386043742012665528795639894227019472999116545219060992937277307552598869785429385746876512923888124384307867256156390008750058627651975615242637000625588917336966772677064446975776833616395712452786567862805151295653768666243487329924990851178542711191791752535984346508666434163768761254475009967285976106691616029174058225102118177566575967827402381285355399523377692064519254890013554486716685899934353766237098106644494794694554886925513353802228807597950842269106223153062343471694206655320088455500405933100857170866392082960444104471367370524671708579167946367079313578729446563361504197836026605752736350611738520112948318985955243227416905999736723955128606620544155713399499546833616393172070361870119409962241361107734671050948041148442435625049907240079531034628740981398031135852347133525063412079116476711968517942978742676847328768265871927596728374991611859995715078308192893333191711164085461668229348183482117316352159917299340766276376909439802485894266073510859453491039526181104517808223666373548495916483888449380123102404749731358623298854444118834593614761082241019120753608793258465768956079556106683312683278295510944317245652401006261482481675136427400316860746250847807319102980019023775827269994554987367644395410202773743411376944232636636674600322171769306849096120414748340415724368648679033422534705619630494375115213303256944020227630855495349985139852083566069723619174331446251462024090843757203780054889653175647457152413079245337562260438477898366090538678527202261156268373469989879849635458058572502653599768562341159017621598812646768739748934308082634977986022295481078797633372138602443983822709672572399958454173109949827156211051761124077723169157793571512207675545793199061526548516652695166507428074020355261751792387691137338845302257983424945110203948053992733617699070197178054514299383476687314319700696374771492043878994465490194770732572318831583618447168673511594978794252849457614314611554478980490887934161712891755490635216794980638989553942674159983458607294783445355616006368118494093566855139511999682091616738192985732246637509882072226590302851662258946457614951756662842309621629726188419526246299301778550234378849491913746394338779281602143928852824929646117655250631340749033946920167900845051317664305277504617274628582385970300743222510719286611682012471600248903475146870290915319865425679329752846720244352009530626649554981402318811551189725344475320368657477194233312457002810126318218499196612449505525504367982349777464493962102453442745152270866442444141828276896015889522248704517008566795217201503126623132052732992285183710926641714592803935114149885729425512175692681845484094740561798526858759047933781945326045400372776277065308413732561631268274567421627919810806813988095916093502742549247700163275537750038034542030099965997381505929906501289629520385813090144297837568308318807106471717965065058035901658361622214977294099470240661863045635356937319099090610834497900500071115282693772919401966791354828616887191568788965512477256243787169878097643349056693921609086524092763612448640426544729957856324360964042531036790825106892457458410063149651545682525529282459030328418675562748677438320524990368335299780356400021930743446318318999704542996182524517273937813351073992076960023070722392678141258047057987278477762271067979368056515528564237997939434093154654435721086590398236157715518706266852284759293945138798595107577314204084017377010363384340127678284231617925106648666721956080854624210769298402308601446426765493544713322915403382245236441094075316999080261354757344358190371841624630468909809456608576996131586441043991119603198694527113149961254060577672688432406203937082838026136811435018293701410392992344293876206781840539045657088273660957214438102673666498454255386336666843851614238060866500931521325429160615864994802000870493900938423639444506243496450211135277443736098624040703989508573840283497688246223222493679682062430066044059443542411094714186642261751932960236985730742938523278600150425024047335479279632994171693326406097839259360471166253402685634247769177310903313221586260127576457028320579400575963426258001673166529529905425654256572658270571126301106687615547660414430130751780396090502454205267484964862851869483121444998450997555474255306199371870708355040038436459481642727311755692974332548719942863875210058617864085001668906691049068797048809357112964228894247879227168791792991078491330567028481994135098393829964259579027731961074173025328599936469633078499938578721224093559988519238657890839924921100736195691759175021737880937986804165116174136425890386328925324574627931195285003363966451950411452630665870671838926278117779612421242879032752765512132796430952051188089360392589532855441327051402071387328090870032767667105263796797072987236886489017231522212287873235866637158003996265336546427786929241332253610408142702819231546784660067743483258687152404613995448169214443899179689698900219303805874368421470304181188983562547771612109356459015642150523939985233149111095661281027304791873323542905031424800308631327974942078535427703424219421209512366531421740353122292332237326754252607021249005173651606446266171426844618493353681186434406590618631952023590439469478417534680529529103278379831201339338623856168247959834280733466846765151495830998547493725798404155056323385207590302611198112315909401513206663376444915619242813975795593305057143108812867911130268949099583572269186673906930854756543293362302438020562979657875247776188879582988013722790976546941149493336323115679897997118813751900770614343435382435140311896855587709639741171164719485571187923189529553353447109268096963127445444520578562988730489545009206484833930155798740264723828225366547343767315281321979578802550067745139553447400016039010451216316881888279576578790189068794753776663121328698084827139690758913030070695203661356242970285881086444182512593630223589377239000049187040023060220731494975288083148065918924918317065752229353983141797183390819670802783473548179347003596776863409205953763078529922980997312044118611426332791448461153053382493585102341008994914627499158459283460432081275453016448856135145172754236294720001619471676650930224858362211371478547844099396437368021300587570443831095918315007071506508503913498538325787524298498084005199223305342753385621933274243536538435264451185974124706839394854191667990462926918466995171323806154898816797236845334392735621713082171689191906788875942115548146065656241793831552795077684430317865087515603683204281918237540130969145765975576208564110959622637524045310502019465131205532996037555198039182137737009838563427777678251424577884169900592605751767886563574876485851903962112909475608359618281797651957019519678170355884293882048617313554665564930040418369358777888247560073158654520281704763602706102880860199574228584774530167328439947353989467534505634817514834854811979294737683642273536455320588963033777197258892397497683288093220127045689060945594232632822202228745805069068736490256709490236979329457340618847881376854893021645205395181818705768842616004476223775884784508760662536887807767999294551259947151892081438570421361282464040348903923889087408554134702996789234823709311418494225129184573466854040121965440309779922210401732780444572937871836256040865545535416491153732244792301920956757545125752600298509521815337301615441837546783054426543976055199042872936305453841288336588942058968000858871047730976368430100084107952956764820021564958038527010920027215959318592183265128844513072267419424460740477662376225170178933071318226910243468129564950793095316294839243473287194902116850167182275972628909072498828723759876582058766230375493259851008055694564560405866800905678809902645146156234321254507654409994692510814217798910448621520449710268206628922585219892300795222935037396590964323710458151895559119840136561197819662888360034034707743973348614521345161833461417456413806396544760563998152089390142331207864411217415440977120163932121219625673979904825152597810762377753952939151063837669874358503832102593534570008406702595833871354797579823544446712144553567272955011913273607970343531238697712228401279693656448924230803939809349434541939860598942948834262276927501209488274746643874865870772963759323388453166789435958598500594835924269644662381071619980454654557305520978155048111489059230860271497762148885379341268530253960665007297660112493818695571552620365878717421009964080620300876889681124549947512975597035172326747287722534603381510432345340606302988743044866678521840392152144046950037160034751378759478213486795698926381208224113962980015323247536134877281281769093902360601044239367644998473591151627437500391979696433019415514144466659598423387557900944613194472699407488482356814794921077838999368579918479829904200227930129866294616848948033069048523284036212869788223365708729579305326413437516253932215944539691017830148283475974724567234127002502089950547516693186514792041686660567865460570715231492282225800372898028223423736104596212103522795126108091942895731696474964808044696735810322568875846014231088766393466449206637008675005769453176674763535875350153651732116513325931358358023330213483869983917789136090953708134612605606989935392879507450702954639795281947858230805024893095912314630945131154508673510997008521427349675868588143417728396389986601180329015659291036707537029172224332263359679669739538054939249912232750301892127730923346512068987772687382278182702344411832816718657760302440705098359128327062047727257544331780379398163852593241113352927814852786012309633221914085270250708497932872161573825101379504523727744925598043472035738485403852704383434600283221950009379751265608249558798425945306934673572046254681002701899421390836768864646455406063410579627255194661600034492545936920302136377016936911078005090699777679199387101646031129850955226102509206039283841881578976624928566942372693971376638784591618513249223542746472367895213422898495224217972914118637042765818353815542178973284631693134547793001187080335988730522002192444414000914588537851966013291326546844570422663342795966836010224306808740866424454232503291028028512185866505563327572533935439442190081759356151118701463713111841122175617535277667245830666182878188268982899232133122444806937879057810630470467588427903019036913518037553809158617379045167061602413442646922038769774535353477178468117282318763045301431012569831871101094462280893892795426254901981586512444424902464946174686433828794644857462103815026908052138134467112112206286934288764180981301232792100514568941798346365492200217786156445443582257070503207899986015708658756161073396276719947193659222595046247560338620012549531278099146154451641523364003854743695025491670288624537756080654852988305943189232348678489280544671069966595255819252139178224215147710262994965954611295022584600935299935560658501077689235400620141685950718797667656304793075007413791643986022349141251125491893384355024336173603713967993040640549468745085048151410439255677741194890079485235132340081652809023949498883726166127355760554124688553262612539327955594658406506629422389845469424384301823633785334899812450766726715840962583211730153069304760573657433206812572625754297660406073746783684011678882020245051935787547072521187617820299820734958432961329500738131633073295306460721334045839433009722361325264390302816865379806396528173216270762781559351349554169324137342684158807122687044620476188537108700490936644677879441712743211130794932641411744099292206626461007955705297882024193861064439175850112919737573178198234389669143871860194252738017909874326246773705992066875314315759731503820265643361696937929503882258137171733313232944020968760610643757690279859545669568764176522535624118066491968491940821132908141442089668699516324857490588503672577674036591582077637099673164788097484412636723399107318331141380513311706219442091601439379197610773965224406717933645911793707014082657095798683577691650592977782272544257867042183022490058828132585918719089476642926640565591719412331727789302307558814451599996381886401081228090977032620178402348956226088641759988137727003144304986697370614160590377020656243255168012184685895332747292638665974746269330986046936039471505831511481932841000889599371049718553982604287904291632641260265928543976930154716633800998854332507949086612497425428214977872473595454848558257379504273108739889123716500784372185925033488166512380464728166990805274946786442315567042991345685241644873373130771520942255314288771534893664113732995171707217968320760781195500560078433165982220192200505024850793751388750352387341798384476013629504938404271150572462622888997770652751010280107660633119663747213424324092743499981259717053580203837626747278209429785608675298215244716491696647647671641324122715651397467799650024748430630284870021975062965619607305759076560302023151135377205492997240300257786384742535349518986076316511987208705926125027403118701384310354883693173293728942219530626015004632798353022070073342691559946694493677224564177511610147977252439467562854231863907438766437015574640943815992083188594034601964197768396701446146140242018435991104918471685307421947097347570387183170799147969449488247119723762869104478392400689866653552881526724347100330584923615846044814265900031787916340974466783372857395066209623079958409270371975853698614919902780777426267039758610957742246376459983333172373181086293708577542013541749254751817800114779861872197821605772568000072567903293829136704785290485571449615028958717999677434539794734869712625627621423568433556387422881015103266607197454422670317376696856867661180041650767977280362476690220124230186857144481656162232262113523679324654111876178354216409081714973815223041325132699370154742538192757813563139259363398924997822094500501037804973618485041243484443708351053041208614345589526213534213241163364018161052887248042704231969567677720239142666918863984621518349916908769154268122704679141209664396172918201252676441031264555295725519091205737312079906205367658650477644126358040997186076963158253309417220155797570172511752869677004699706071172537738511775409196435130135965161268684644367788663210717504832206474926335746193982222696924049535519566726606017263381800042458819179657728689395298921512075560542994722792578705098893323261706432312419611768393635916574946415837884722540734181784122055026577517526189478123456869883656692077973902970642574903146947095302408401754791556684590526872725112390311548851814338733658185903791218993464509347984606034468050110485124880081384708498892706974199308116242705970933489958841144701865820020845901057583120043819341096407299396267533252790508667124293265520739684943561102462482517935059197604412188357151296439974884281607309366398966486163953576749724712008320288863644946767143785389966170137719604195570359039636097329472035792051672352790171958489738890791567900614195052462508664238744211609619896018533184456146670123386734958448989448241042547788690124570774349567062497716036826927738144896181034196238280088677426543686276467402194337801930137502741816668422710099398009316241432534210276167411531649960448746536392259610213665351509977432402527370586495467643387552471374705460143860338395844896071186023924104443967441376044702644417302254522872850749674019394455817931094087571514080521106109880891249353377984718948896342068851282390571649404260386708664577331180701085404716078069561742161191921667334063671629770419254048306353655006256581381201402809370940179718188653990921595296771504319191350934361016725012162844169202247515600389633186753964203824165499966310895223995797040392960769960027815179548215170271935292595368404506394341267669088149182178459374061652126482455324358191327473431982226934504738635833139279623814961436980930433903993943557608230223006589812440490361693959046625202919772422115011583513375954405473025868396828840236486459782131451980480384405921638066371924741188608178273613328724497329440208948318966122822711293778517890658355743598338522513516539285827893682347383352874385227996375226670981101913494305366312069227254633972092557079759330809659085667721495032462912367671943983050247508651042984937971574869823330970248635108429375450825256787162257485626989211200908962049731334840397681237756170443959183334931017076838540707964497742183305136189524785629164073261501077780983052876196149062250698351407325678576010188353067100198504326510541746472881470649038955126809589799786322394332887823119598544365233653688365540749994101583298776438933450126576017469294852724920980259156542865432333972486470569988534163115487388841048271534554227468418659792499599030596637484850341232410955511604443395843285890194582089312378065814998317116771841916692649864499759796244263200432476146368736828944572899908990472052472211114186600540447069328493752179388967689961458173442232942895142982921775963378772255011199810970440352495644497333397870746110094154233919067247229299157766343590398982800770266393684907941771340619100498403479987834772523929772804416907341789014453835634982297471190773049458850945622242832809238817155979286705339750900240626658233053343613253988966158774576091885349781256751670664538882796673515291295754807396732304703677290330926331838471132711780752441537979135820786077786353814953049448210584326079527941253538096972043006399403737606030435618437649588762928044297908505104022084196524279155582314112970522584935215279303669007849445785025405522086653254563339404721942316768586777791029324830980075940804721210184719359532062319255639343140170305359555949322612430348676829833686803383890843130408924431122300122300046895660282704208002545423754804565267926791662210073144600461558685547741511892419136497545435924040463507144468645448225353985998684522519504651841381118939264444627616068965797264667991812916652433936296973736319951818062690999618392576590177591934188388207749795702224238374592477415755348634038505562852749916361475600094573121991591560469689639109657478419400266875309876920892019335925210671551787508156264739603516755699174514731850366423710802183280181536119643627301652425424142411781418507897930934203793190496284255901614187358212180367952255371586917608407942163567805997753454198334442942804842443520504206459859171651830947063155819182905444600395427636498490413578972343534913863087553960674476676871845111132386708919267522802179808989973054118505095539871564091864347901182250872568947857508894865952415958259142330564506163383565808337874426392743066244326382056704666902726344924036011248099808074567074871857008110070191356100639292372911910492999134878695462499551869543636159874741979234293721482118810338398602638101219421481200101359036765342160722937651212063224775186066750417056427954994150004755828869485271656732261828906083281021662259550190843826266049317367895667499395525657217697797898089965585169185533717730614512428313127411425958113950847132359619149190705957124452726210162291154802111550778153023070925544018124183376267863733605430523299848692486951201302196823076812801122155344649896317826470147827561235654987575057054662997898469063173374169236058325449130150915752817233955347195583292352325277964232890765488463407330290165149337419319504543956659162654930864169348399439289126575519902817637187829006287236271285289233439199553424116959536597222936269898616300162720729143446079307157033285966380323672587657060069614008244330747450466867237817596340820290791652356637754048286518197464249071112369498969584598631816322057801860890290690277724265523408424107551799277347973762613968581822995227787787670909929117633893374753873276291553511081317342547740780338187159825110497744058740445907867127327627890152523665197276556502506911931171094075594023617631982634726240826923915875270285081441194136242164866471781862577774554584194779778145798201136722789497926334002245514009960029855116591713934190101513123583122336210388308379163308500993509962978774502608038813688017827960883159485175406458447079949453706544191821649877882879545436008511521808487821203224391424965387220221120745077439570822422377494925170412884442963826581567255094679708099887667677537237292276226029213851293807426255032923866181033210816445939871021166513011969456696041106109596912817341894850075684151167036238856706978305847971960301542095226265721600884524845950447318610127933933589801796608011634080365480415418396884424565386073451695577592766920357239719427775567850528734263214351297968116469363176963572161819899249078304911962156083939081503244594867486290631542490828243501556730053834143837445328791608383747088209738246750903487226046847089268497369609654470550581731398568451334527979876696861864459210346632229634888496467786984349925411723658336716740850975559781423419726820489275084224540913447620581293555215483244056919020992842991754049946403435707980220697266208130519299065408924940514866964761711257755244665022852498415530568159709168307870589281849464493490223641516833014372222624220320359205329810962452557475669725074879687989865543777267760087121750503623925596343344206505844851341896591417618472164326874085896480630260424851131248247324045573460326804136953319211097326035003485461941798462641371838711331346798336695065452852085508311273276440718729457589641349121886518460413973034319218642513844819288360806508065213370401206465691275654303433204166291000432593352647438496195988381897855880676509753318113848051633643889485122428472085032934275373064271071288344193028056348800806826529761459368708717962261128369243824401458749219867388723824197258437139424360130230506731649438970962200728963812323238308627804974768949041913854918384268308463101443711781356469963247583463738559708697827958693106527587180285850526547300243159632925084408480310230384538456264707580947888421236722150961709726005018555821691606431644137898418561632886362869934555441512941177550811298846444028114747327784377363802191799934655874422914985018518267504120370840623777318676636655418025145135883724510204089280563222315394707172580117592102597254654891359980623459786304872441542936844000053126078854007579728539759345577321623622846500994274511170062869458056065288779988857569594257990236918040496773405509420624953175503727131640756035647280449766288079347516408176088266651264912208136088697818613161981819911892321990710161123679723687625070072525852274908833982966181404511523244407967305013114260828160770663656214688674801256562772400996458427773738843503874871586905595932088671177888827206739673554357742924405374548294289669956387226535190470420406119258034176102106665979538972162531689122393154953018354509436976494592100675115677849322941514409484961962000294756308100014029262148322012214894547597910627101474868819595601006513603614562251520936904072997618119484557955362827028223806011867970351381822788097796888998294102675989916737074030928789121854979471025024275140116497679970082128797225246719399487633771190773177614006752034889401719839709373197651304614000777895063075197547385049138570639827554227948168188399740911015482151067504210236313326611397400092737687035310393730597697671548549942241603069320939420244184859312438247914184764147960854314742531872116097586032114533911970064612201323882258516698147507612261200358142197718484153006670285105575120974047341709236068299739696213623854644543767831950904606543456004707919901060622191673288097732388923754459013114643831794557526798106242412200397526566737224844467550652367418829250888288374246418762341786503454831713286174531132604159948844061858870798633235626577141828299245138336128740192753462787077029307385289379064102658646941895281432249476009475824957633626655996871106933827568396787664596410712021919356630772505795419182807538690204439071784059534556252682086378690136102926590162927357831338219732193691603374544710333809903749768441060050000875686481522089422198149470238346255890623363917265229056536319011296070180282177561588482296524719314237901076840387596425269255991728538810965494314277042427884706162480267793250884600112430447577887583414715468363479864955780173403986885923369884460119904567001095553600707446116058862837054052838606520147462574747049113672919219791153820427991947658712424815394694973378405529948682361809397934736692446536079289951814900932310142579733664091649371808142526691500427283582730748056432826726400076118485017688379110604396500141427058896285820087655707028544874186820056262143204287321963039849143027770447766399212623364988771541911715817129440008726184588541116358295958199567305772675086571063784171237469859587600882878896268930045925359525880383781298228546474851626602468252809555318503424663652574761372020357947542196508780251399171886210681163888286458541067161449855858812331539498171325944656591768926216254438580825520816278620272836371258121792433684602989832147247837797361941388207538539313131331939199962549135674818740571569800144561538866417325844155053141953056096562892842479422289182347239632855388068380356427429525739285877364527247310022202850507356587648578333890533083926058278028617064422124157436017789266225761796889826076704997130651688650034707393858534850846116306930711194016603089259662705807946727086107516798561302617682708101185124767396270001045857159126813360645616337577166424930326581415961910375667760986966400006759251456981848512455584433328697527324026900899945988101466658720849802032347090367650594344019823763548488551488318435008904632474322795020506349508744518164334938741890256690453097912080463610085244166575577326074323566428505728076695820987437226996142698732747340383402881777958374611647383298706449673201551276098266196158255376601968304874712631125698527841654893674964486904888861507693389999042335708976121007585892376961383762521006290251116430523016155648645669876350720085205070098465871598426161814976681892348826806407624791255815907070114820231145581128159868364663232209806336585286291462543080092619600508081600655707198917947698749117554683738389771715581909906714996570229978172179268226276239171505239372088710407813190650552234629419119668492312483734735508258241110512806659682779303456114581147820800083902084869892022962948603391195540257136257074705568397490230224440872094193865385255973912022765915201095010072837029099407281466135871931575852485077525068092450455986233968505885050420338132992338294528552630074186239287678485356173536510400645028999369530411042017557161690377335356847598905113914760459155043533423628521426417371508590131744414191425055494814498611700179731208045791992649464189685690493983846387616626068291717297860381589154842309174895845386205177709038029936742142523586529163336148587297959036192961869092614917558176529356268241115541132786763139290370991932104876418502429607202176898816372568814860003555882336719883814869432094237161217311597888522211545272456906486870550393199144739644978496275988917533308831105058854159426335186842270345692845772858816353940538124333116228387925989791489763465498344282388920201610570991321730301693020570375067768957642827992281743537586708996688470613282548482680831906347704799799938966986408187531097590441018663076961604401413472028533034017543837239684000557687810474074102681493620584443013416111718908184803538652015811326378080899049385695093446218704718847013803097939748635110117712605935975581980433780471055761633087560899833546932648786358562211259649924875607951765309453085542643512808622480072487967775039900743275262054548742227580808586461942512994806046052429237337704710103099491827259362973606348950488532821809531046827246639307777221595726917132739246644579243191398861639244174808675109283407316850821853791464909452251332419978025004648662509262573589957734142864094453118720095731020161308792566358591518996473593440296250547609832629217057966510412793776152226150362235243620661951100748728521826691114782404834489747168454362077542480575486558423391621046906683180553900354234757240811037982287093727449979236589942323543408125655204128957197101145361137810443170221013020783249727482271439599497445652901838685538164927772481634041812296183882326374605342941856177171530178915936542111436854645060248641204162370047796914294701336798229526723193345043566073802717533255155750891701779452055987802237130708576362840260539315110415094326115389568232978479243098649437417909069862619713321182193219178846952401763833075281731381127367198069481734214110804752067901043481547615412474062362987065708541208840465029888537365973937759954895505346950880013384379359901116280470456511754656779644964678881245994215429651347815267792633436160907070171614761305295235214445745214081987816492352506597870190836163966428365730637643104951467418581319764337929381575198099595170920769884485880950123669691221255824045523365099819442119678958172084360742770173322703363484361312459895744094022644605697155606033658502601726892684508297772236209875582109168030713276123249601350133708706218597707147492237567651550312830719413988972026533430675183552663849878739479135788938368124257352078978064020140755437765813815456744003221078507061642419157021895970125937252449019679995832221008194398768189349824123523812059618211717997500934965450217794928858421356149300516002159021036290333744778962174685172602990839476218955997443063047596497792768948438144228048983040838051950312608434333810773851406795684303236615715187203314151234560534269080671219486932400258290727364977477642235627990282850311386278409993520155817408839458554699508680096241629637847390928085379319445097551785437860374521570548701948604512961202964291836198384987115240218838599718446129364042627676630600368228534152277513705762707459889434292772075244183539504700315922074211198816113399024702146515773642898404117099959188361251786160346506332783588306281425670840835924210408740652820765334059048683975230448766449590227830234742549748107909504381735569878117769329894232582613851085155499408125234500622398006143202259626543004903286165604072216444001948166918366510766689958563639170881595924221474865437155780841254670023015596221132188184358253953647361770016613045252704026852566438952950212320037266812521840755437859543673202573540728600589586769296600584856369088908666926988563376950912578493383765686581415098115041072201604920782836119330621366359537867318975265923193254101902658392100079178144131916554200079458176147833171538815657741422455318773210406430150864991868973617688338056820466199257018125555497766383372715145218750577446048168950051368578626490227498175488358595232482298612500116975987659994542839042498527987912682133022784222482740889897819505396762773932179502301395609845069589468392570132960923751546449049797175618497446536989447325613484427582001104672922762191647422753811550474191073652373798936493997488933328264212688323662759610709742190568244645866637373972135767471431194399147128516588012690023648540801803091765103025290002256796259071567692618157662333930185301616224026617743356467538416848603724753988822736924150270964745843499576656011419837078726441196642314302090979210485834282604289775560885522371581898449393471544236041728446246566121330540318158948429428733336345203537390506328315274601883773256173057151217025206137542144918015498186738506006930600775799675866627912885906652346770022377958862819458726306147692453563619411070506525937327644299352171810736969193255098700791678647334555532362765607259238594369506171387989604987585972684962987124543214508100331888874616012148874765627488316501667062366196736255099407220983695149108219257931478756946090669659100434918321217923220183068130427365282450015899094897752572825447407041114730237575994793025656539275685693271273115302237041948118232398799373815610612765550092630997362877878741893033466220127046520383828459279115011836382701236789827698039786793011272182913402680469602646232621547555435548061153038050252426981595679025701156004162421868856471897771622602546965382102476571461451117563878314212313935130492918577351132577927921859540717138256538813509556306546167656352694171354607521707258332338168117294601611017688473236279608090727493762827098044634678633144027254380249740045545520780036057355011720764203769197351308388492166146520610854841571847737361432363944113097526946083413356856442842552332004822182861904333719535484507855479274484817864147245451353976652317310887654166568095263910656999697820495133584719295563093013571865001260213573697027156761358721065360484951064656812174996616743159456218778843501430195970742714426239335900764566455173542711664307459946280519441842558136339661651372457138986782725273557195593207503422520272009898161665736729545407021103565499603907921449518213011358838969233436534618407384908956622318902241926073803119879221742312800402403983234860287607406601504902814734909733908778303486251462420700407115090929932219635345730540247960579023846972024413463458434808066281339397236049432151804100919150159040644105720721934518799197803632516601846230685710718476473022791280661825392122183139595777615337887437090197199147350966093552788973722623059018980687047067469318981327813276289551433499456122625918518921683524062642812168934564617125560513066572912607371489806238074257049306535793700763119313690175017648301425392661759641553155124460508758063488282853051202658902862179825024838895898817419593466921667460550581963625686071078687125288341356556496269811920169046410900979014118707707645084182278765633221531437541587359953352666759824399404248755973411668587091742042371075107841026794734582059053058148065193436606782293591593386353070949659336489543509230514934281967690877290349977467574006865942660548139880363370408808532492549418753514024081028173012793220013963511819032710593662673442647763947504625855236521835119538831225730912381945670431126588864421881603630608480744544455368751718886433669529189180081768158926710768628608427902535187838125386853716808030975376194616568390562648154437473981415210968739957398471677677336980770138867011243774333377111278772327256747342517107058174088082515808782944624197445770709966463227173112639082419931419739200962667881045731744705080417060778538548085775630138927487033506804014489894801490669768294256190071894699366143403868538347784133228424834407342080010399772386150149516116363779531463979947531235820031405511594665071295488502506837115876354146446202960057003178618729893766069895447391111465578672755354422818796085283100842934251914705879334143627272305956555494971445257463219144686053881711252775875383172183619437567009608483413546471556826360920359871917748577175728783984697916827318796717847811035792284589748587109410816877629120843404346096260185366907678105927739349964353195076414385794533641147248602865086989124675980741383031783463840706354271048463499578415468120401868905312506922686336232010337704029389234850462686866267810146226780476298360832781986144833946134935508415628606837671722756854569760569933631875428933617462041918158153708165428208586855221045670469137544652177811741050391844526500099555171393800610491605454693802363950219260572353020780669895187914060682074076138516039712403977643874352112161721309300837795139435901128850651106763743497659897896971253576329508400610751526269790959946660660866485243570239879816859164340501121464575663362997114562522724684317403289886545343567155667543983459378001021699778139184064949289448638336561544204708439005728836427773285919284603070800493819147302060343929327785295684821359696591510823496200073143406167838371799564059473209781292809151246882063333374522897375269253385765270378077888262535692179777087972350507195867073993391657155284122024241672348012316738123455417423502883600800612316001125230663682656847075118364594679622861017795528017877085735828746162566555249307899690234864543342845783491229558763609102733578455629967035281783252228651736722142543213238483375983941629073515523578135852901260712384841681177363134952592853526327416447717856050173651556625880386327103672647507366116953476677321207896210776818734435639289724154700917555211818029398144564223647918263724967391632458200077466658285702401192052798877559293668432366266705046727191869656066309519466658830264930996834712605032799154771497452222819071519257032774419781107432861063767562333575372126937214471098192491973146271572782853414923263369058780062280610569718394980353756358735510721444727086176967507224077115696209173940270901595042554141995948848657759868098764908618651723259751470710668829076186439392445834935640481184711228147498165577884531797528167177445990479510261423132513669016170850002911492857317025843964245682903638801521715869174681712481018826421891921424538966022237891804440036107673427733550104159560819155660939975159229966848166086357372922791390997588145734770528318667664894880698715883728518130510882877631495522522299762281956042569085447588275994189656740284361882909948580028144018812581631401363003797783016222044230616988973966664278030345186207274541354602114491153104267373052961699255433193695938539846525564692371354864591218727918069667247292235837732225372182563395778731349297711231373371633055333451196261680513954875778074866399000506658502251155877534742003447491517592249929987927924789556977040059820232061803182428295862880500122595515998421718720810511728283261207820940294122279552585954761496054115882964843077274513169136597506437351874299104899426669842997028949547661542799039925313456761680906038663610536062580364983092427773297909880316069080145107759776817417279685507602318184040781094956713303547807623897927027950195059028727721962795622480573243378415617342772045573875730586137687034421573631656367072869490556665903944598209719905769639854906043190767903909543776006249040076665344782983467419358994963877714922709326041711324643902496633171689818891587294838473032254669511983150037991455080761940114493591687141299643859820069166215534799990636102857299556042092093998677495427341369529084909912350850474929893232332524879539953097750573100430164899464753784789091841689921978447293214009402457953660227456812598894691541150330336259110686592030704070610641033969832112154137609508837887474431371457899132582143790265516627607995129578403155685476770207854599725552491772392604166002516427275776166338655204182910715933003407447758542461583018411140376782330505641227564019350147192679688444119361232815650120348122614132150906989512085594509934579245409458568063086373967364105770179388521229799938474593202920809353867018158100481139635911013640086656885051875378176308058805636824374475107054432225526689112460289274161318978137802154807973238937510878418809648409685928057888175602074746496633196459402923866888598752665379342208646890246934126884844939678884516612540340956455683416978771525036380579821063726081803966391679716999905128288389897413028459067892832286501079477811160942720903620445082975688547775119214391895480922223189183299502019360332892057708849948836713330252583850245716797042145903684412284232009569717879995558717187353270885709441285637954816104583395151169844740983503677080187048052049961854872584964005430966437522489898917588879533125198958275523237560892629719746141418450683678507367638598785636935601280262566604691786040809115229942790249998796201095227774394482196649767335767311988865277270255068698607475208010243576433456057637110066552877676912188447769188139719104938129945637837814321177418718723506627548478990790884059208468990002164038670192933496479689713877752610713890578978658297562744486603370655624883903977360290055734531878291853408639705129049721814062941804880307678980042276713725261027472823558414161406232154018692680585240527302142103516903928613828053833068323085044850993049407247668543054600875259168093389380381564503591023197397032491336506418186229711532131070330170913318745730121347104364018117717955759714007289070872212412538930528344281147182644660942548618863349882408806738184833950563504092904666609099737311393012979176778267857927085388797078145297175315613934820073602296297902952091208611718009634441207818066129528751982259432796471226863089542632102696078876163425253667465748799667513987120059343966511294137276029197053485421309419272613537714021451179766593282307112803421700363617578953110903222325796282695140558403519581095125290412861654655708235520106819993539618246411439334992715878408959388270598234185219098482974316042951585410056893135671416714237047908310094375735690917635726116916760581616689245121115797454936447059872512618385189217455036617696633299204829292010781011257309039656076978540432030348436762971107509102848713606007568233513484431943125825419744992334110287480715632181557297446786683518818918527470531171440586044932306374206094159024976184532507789223946398045622873734748118643176692073364772980469532343844564319126640554199045813262916562459948467459414304028724728901146827006122873843127342109019348133447731608863787256718417125085651559898509281820641175738901978605867071029229192310886932923378614635013797702302794884498844931254537677814991969280944255176282489947665934834000241892208549990647076115817201289672971005777180235233328160610149037912194097776866996470907819875430407647539465698213224431417959478502620070276927896350593775733647983847478578889119378415027583316812307092145391299854536125970333446606692648943540487653163129169648791019643028923824632937174946851543397119793845475300676616081476398283140609696427886147610088923068370345623452025138114301201180225984721702055248681681437453526957830700536889617364881855572972624214266921745046430335234329225438232918417479094628975638449283493910090288813954637867961181566089932866769261038285578299047038689298506483026694568845618665102645250571542763560764249024031738437622643828597126872947561543299244253536218832699992989848531924153611984175105498332290136616953523498467110467779667780525700666446639089367426741066246522401375577403837069446778800306496883753360712612105180042042691551932212381854516073879596431960625382517509351296338806582239306098695520547942269541534423570024478722343083779091848833380781667082531628114489312201248948529382508462860157850515533009493595587279176278619304989361432286137138151377517698788343554048195392321276944385090120755183104879075634877927620704363235164368081487438046950862648295066070869608631233798115075654870197758525878846705103293584505129815990885827321324913887639502827024201170201481987333144204732732143325195028510661202226924802338482723033091271305527984010857462889689218491248689841417276232560241133785525437270754265087812917758753213988931838398502477497199783537816348117529410966486731473552302193084984708345811463053743693536119325971941751526066232842714466078036230564903023837141926731002191355567868259076925241269724566786027732004977848291947810815551064021251327021176031738896749797455788142584123305000277106475690066597831775381190667636017565073013862293594356004430201819556881100628365273245263733872501186868283651451352128360594418093333987715780979131223428409365134876042341427951457721972887655608544807836134117184566802912449844723679161750110262967739991236784069395347987337533868920899138520349139947911183801327616954544202765042334196156291796926705105414719695912840931971409530534662785489810994309464083447866054129397149436376468699672663644884103542567447308565052058360194455088069213953192457667175447979905667846209476814879732408714238745723143454770476717913551720905124329681507408750592552427235575146701892118981052439710644027026085701578307484962621910533759606732038277888713756075277366579398524417332329160633352175512887539343799567894728732927293941197029917808647314421258046838814178828348450491443486489464821230457516688137831873464292822479351753839648072179365838262572758258986066898456608708561789571193192836166604424670473944694533482058748455805363348474630358969382574369921215495443712165888840460561990937338414848132990376713868803298904415874236295575306036729540927305886348146407588098001507355322993043948702231876149521656889098947012454027858542039085593135661759418934754636990508021500382065897517830729919891156070451481194282178371074825195221493887730829309906827120577493723208149695950958033955928013545066411845737077546947204570781209788058178441433632114662942491440628341031324107165482513147467411351453607591868867517059009040653674347396648085913680443296794387651349108355449941399101124627720972284445804606808280211547729556157428540215322571470466790234872697334383266706366713203364047227328917952197092023882438923477927448705050797458514528374067225766366341050605994253466096805919287586917293831238774217002082715699789139663138710413368825849133803675333233163159964418944026369013994869617084027231004643736625776910543373488849229231872184303514715404804534953931948101517290449528338768764965942989942470233093285355303710050540788432734927468894174662714787131506221220851334110715164056977362817265429456473415714947621456487722786130565030976175441162424180693958031003534811920319766743840788730219786317329788897685327901569057160806734261064110480655679660420894023464957347342409737541190996941591444665837542086388308214018921263826688309665347987401787993619654680236037749547602191021422976293521748947395527639518825917788044121524567089999104430348444767233183191208273413996060919931124276736326893642189062002452047453047976611742126152282087046517262590643537167599672588972248582248337089660367004873714966276917904562709411967216567527537668611690754779914840938019462007292639675831108951441687944237610978354378683645066656176474463991287977777537267999281914275006109334469620451412237946737147307275546711680364149156044554426068287509032754384515509544034490270633102723261247439172767973670238006434830602684975917538453099968145950998204528580031759620300685355034633571206339903095708182923382461870254809521450881669592210642648894617111040622165989735152596239771980109333004492514564416199651648630737771751928953899492416343970662610872099971178963820937542956822544487931394390207954298580087242709725779726950715834673053727821762907131748171804414378610884162303111132103380924721622595849837816913999364114752210013640270447914979775888051082172412084582233172872234297317296914603499609673476194599195894228474813464347078525900039800770446344808945825893479379212774509429837460376139232386140925590097441978779963475813543902528105888722348797927392118745986840460338224581115594058327346739062004712095134245123837753432982939774763067974392568273735999848119916116904665246189467700948584896606274359961954725267576046538739674319957430058805463798257994843169454809603491461665206134481277081629943103090261704241142777535924552952610824218937829279112847000178097842434794829192059488845971124983936341025614207896598282595556077541151041779263973236897201171596212117457029510671137314745137713087353601107694841379352371388107775085519404850587922852806859005579970425096423396682281745888023318122599665146100044383112091485881751474801406202311123262531292730836820217498952352338124717280338762311685814726762177423108107244566086162381441457277645729953921735438597289004602700824314394448515258497599156612562317353848114748969138283058634739538870555477360872230019699111872683607564695325680698637855012808165786984068363684916167450199087197466873668697694290002762699831833605892235407600488519313911713203168030429680550398160079050000041941252278675146734261129395009917516835723362148641841678938399853994312865030690968593276504848749362946677283272748800103574123599829745497479122853528679671582912777821780753809914471566327654571270651150346279980467850069558102623943156620994310446822530886351320639508165575677566704543049836177323511080760749546722998820744788803804231886498081280665488565270758508812510162711192618205629710122353135824065645639431719000748475951397897624256751944317314288219248142498921154125888915855203109466851118085156080095074202141105824502512683742786064503459341822653005999254912057291377794114292769673550461592567247354003234809450443795037441200496426835855555319253876479838865254344220544744861837898139951070986808396086900496066174188665158301166202578644837696947063613835792728715390409101800493838645860229072639234505440904419319689035829726569670820531742480963875584664976533629474554817539389674971566546508063227002464460609509865219702782076060590456602176410822981401235507476670373880808745584809119808837157999560914901501508100197235397469227198871944951761439379279724081987497493621161314074716826652876045316698123416480027706753892759180779079824101114916043361666976281319141629640059271233627237876548194830564684729430758552992064884125503790112596578309428568943023940907800675689207232466224903268971735671865864404507892439685744619341462154535947782331562707613544739020456848691994272331340781570335040858733655399871235952305038714856351431083105790374217121738832303948769493514518438427687958628406865837668834819909131489056573654842411012529318044996477003277230746613465904306730702095733560248997442387112791756161415775745031745062459078971873563948869972598365745130264312117873935481008705273423781880696781374141056383439511962989484487901155379937970832927818402971988354004874348804959743859816721631296954903356146280343809387648215934636001160480145321168839891419619045986189431520719208046858723618421030216897216044109600809509544944310509462605440792603381075593106800113611671693946407588378081354421375028525807473214718508711175147812155460239953460975228870324839249505909629605703655844891469560836724230348439591555488987443211887412116797781123670015136150440682624433884111698818438053379253115023681920526027513735449525897629639765296877001039959990571604269332745035217474092567318571959770800152180452506563055763057980725769875019637671085218701847434845849662990372295183600297739395132486315882458057175711613194625735278024169018635812191801261099871015101007352967177799146964762660590423222667045962379631086325780715701970549275690167869666669222305062515284030063080028771789142666453091941899971227945837942876242352317433085428951713146784836175917057831188713988241146550088882820606791780738719237052058185259720691110984586519703093898535413654840479116680378121351466938790342406917404153136267536114816762248657669272210553132425210852987866557259136085302817847678660848925064477028202668379425592659762062719922775352849415646710123114039150339597060991562244630346702753254602177077739640916198023386388821084829570672846695479256429935638067895867940073508565997294212426633639876944604507710705040747329978739888397129935175732487223570493555688868616004473206879937136369994916842373950634792507040078501858613794289642219749986462407175803817537443558307124582451998335405891565922925644703229806412736031750077803037768815151007398473305652426160627032738572571724909202016230501084171612714736638114409604401860046069166387389684287909347682415729033953635928752662636610571313654522956529678918251687519750949838230480902431433848322690329242270993143599873492177195769761261253638704936555064735620231128536364312400283109548753291015989445602618184378308802523331587507249762301093098597214616171463839782657633112481404350164826156570920980777129924848766302730112875445824093082209141600814803119379519088921276687469126584144853891346982167224841637068506038438608215532575788601147406758357310007615790565732675788832509384773205596004128370948028004269080969300660533992198756926800862534527278442542593817141755900438015674646789102248805967338273942431981595728792312131865564739432423150050377129106238562933533657564773496952208114752017984670097944290919485383799674049003679008940789180888881227361660012475545878555853781375661137053625642404970161400481242324869331530757633775465714520865607798545249915190481883644856841150190894030158311315765264205604905465834505318660494037837359291383028290835430317524672367979601546999064340505842179555821278061728401227164011682498305651564312593481667158362699232968771477518504864176113777244235108170936766221276647078565694549762671118422135284412093223552194087188977150556584591711196669725821446512057213669081254386667091455535195808140898326464733478301992540865083169095618056641692117330161463842234979497509195637518274413608758104200794879960080475325579022737648597228820741902965863507125385500407029008605820092696161548538167509392882393532229833402157381786932693002623469135203039990114306041338265558206104575078988069450374301170540637423126713741077564297191270050213340536847590932452791321407345311658101722547082580727033298972065181559978537002147900297411510018683229864698263038707245336093083290266622226721596666049346690812626074268545773362488712702162061235830554806423061175244012755814131079460404275912553289218066456465197208726952502030606763268149814280565987610116060724970605183436816958871704538417713543109763071564469115094657038210504721395884633815318367295904244032295765043809293231096452344360738472560196218278094711770564412087614225036838058922977720518647693072909465769424444315006585761644231993187348969157422677614832885184098566124488980494893070145188849192669391737538584586386619045010723115253323263335350541293952772913028537796467806910446607224132326568850081191696957377203855575111880850972115221643532049695448438997852062240071705616358240759255634694034627324065385765246330015770793334456506123290539441926492307355099258331427861103722652937934483251546680833114800734821912889692963407255831638347977130079755678433456617266585347175562445353067638084313756334168111099484083760675547305695552395370200823169669369092997222098471002061527200299128394955459345270991871294285723398114871942343370402494617568437057107987992669409336973245353656018014122502374098842288443863644782999846900778201358034142762567047418104525177626307258103590799192613810631306856309636291593556220391702331354650441826828018924672575603131676782902518745235048353912566359678024856163868867256014884644259278684342424734962611615026314230370953360604376860733895274772349950311277007800905087901562218716478790763219518961939487113941324243902399361645345723786635598399125303643850418774473037796724141510443134020778213120122759571795448855278847907896272430496549651153790212483334870064624351954164732914763725224383976933703854063571426318466620956336921165299249170076880496661907595370346965343132892661039599086679428534050553678273520641673328009113329332595485611554359454913650376933376558757306691666186204715040735339139669572153304662008529206128705240515635770569090896456342082240634848880194163307974613144726681018244477215054469841050113163886305229414607901389257726007764595140300789572853546962027580785842761351021427587184323366957461858672666009789934266623243309934010562998760928506366598212951411418101067673165918442059564388321630219843528884188704941875977807308354675129118432579266309332706486294449530500041240103035148690088871270773203011065415936097706658978986384731831563207438183255360093325266948672929478464050945361062518143494873091508748439004850359993238375666629041655185018341715527564838490142520186435709006874824519820409018571154518966886583768594146315974556923490063787290066209339198881955563793829656792848619738845517634663084693205247079772374063228967109632299745129107872056181716226562293553727641164573353913695630730748514764753264025497193230682718537398661389916766193346508258122105662794755173100919760605279051149163137202214124016659610945340416225791893113647755723375134449780007048056079738597154804977691583920620026625058997596257486435617739392183734789039392816377553606375689411242937094394006648259286902991643248713348554336478640561865478418721661987818792350509205454777195985415708318695475196646737832175742778011518898285537909579701218144438901267279504648143332521933260472091879481922795848890044464465254747985365616171932812567649386767276041275893854578801372506617362615489293291158610696954963157386321061125319642538346413097759010970293126570051283787232182213464874463522720751930640502731768662308772380165926820836422634722549629358145969385119022988288389383299407807998819881228197815449141787911194204930381455776849791349342819375827381713199569552334952668383010443741939790638491763426876852315003613278251407642634600272908231133302896738175763731215201936283910683647238124761919331682094803142497007502555992298224604267781348994856753454528173539233783525014998994326140764203411095735644755835888763427101818466053965093446496123213446109050088390981491294905866275058721678322507006083802134891454334140358618071206274940913483290980477252207607706398272923721000011711052470618563851924072969758360560438259501771428514309294828272463420944489164722702773599773657523186283754732858503080286897277327734608193866866289782724546543778117871344061167655131423844150746622682874968102007909617420811612209129274630030693442114251934283963695665579484984882028117917534091558918952510282833131712197968576694190231895739104780504520573659767369420323621647731033363164068227057495271520437576741377643928741049686152888147884584028770751754194649165069444397044451196253525407778600563381047988666102881377155528857205586093220636179432399576296385471661743092065616845979297297235786596607188308668492221001062854972022570789716102001137510957127454793259030708555314438579995077251098620476276600331893545162835859219132203012662747306754899660611148055208202620546663436092088748314406769546583235959172568053670930130951643076182471235722681079135852300353942542837252000456381356005293455376857626680240619028999468056544629500494938931689035793836022523279345319993962600887336761715522178448766321800652515737738067179542190446216450839481550935146149870550970667175398628933681777671708011741810203207252118585335096966560212313476153656170088319249503720697616953732058834048519193956134445169251715733399104272039688963758671450378769322503043883016328789626555193434614368900541919619704695370359119486386865532299984001517092820590112610052962113352469847069154374609655804226801918978557150722054214606450273244514296874087108647276446296762868108582504776690729136922488382865118630696021906779061072470081876352420808891296398623976536351952175312698708511436767247234037679237083392015426180508854297137884612819358320477813082735760982527201141729690453095526975737027437683761556172893611284855356881468131695466330659199780371726552742765551745552045027624094209908920116266387983684098607181519316366299685102878108171631969182796281113586307232772922463149531286518759159335114164204237175440985563744628438401368867330803865005768579928187169851168482863660633151153581739732246102194981235104343870567117541527971607959989263247406097718562865926846883941769223158485823750136006127496488914788405298642762275510741745135574447526562541790843477662012892401929795959060105327143556075069609781003051693299298280869577647749204195486493836848970596133198734791378934804751053550187519296203641873992026989599120693524396443209642066647128398760259943666979590165403704680775790813223404562431735038360266854267106555402809859515578236028346269558688008854609216814843726524834308404062933352223358740497561016069418114728499909000862481557155965223472057366107815825494262448398871831386873371233671476732502843439549979488387251732515027952894038786178433609907951398892122689411960737346936243003253381098814513976375746486924316480322338767322389937248688439180340416865500260156903939440663516759641872473987372928560236805040309245239882456947797395735731170603646006732506113631344773858670195463322855843662185679091759613114250093609632927965959879799528590691950624360538021591577480545996642809553111346055476971806999357825847609376648369451237556319154329159097838782116370310745572938524309070405848858362031458627252097825907187757717752937277487874052540846578984617344575173807676060134691112649998389322348219996440015546621705522075980822100222781649211917164109235839659811299495983600448869859463343760548360725842308768909830184841193160555784405752489950351663544269558074881008480743066208911443797743746417076711538398511981806155627006089091085723938575980473591071051044669968038879072193299770641651332246809342374701865776839948644911242758784695031842834388481905373821224508158419310455312760399492561259549748689764304839363396709360811297492830418277672816614726391992571377756160493623625721585743083932626790709883794074328358784581875351462634291059332776682581533572851908693949794840719909103258630696973456101021967082662603688634462656914819458208406591313622472499531959677221329730276074106905848411348885526452502196046564645746590376119909218450347722457153686452550810995216848857620471688054255734845946779685342991092732938213810299695031437498973838186425976940568174145545430907325039919540399788969809233631561971901947836646365877220027781970130695483138100572031550372997357454960108177479159548582845414737727191984898945131898796051305878849248877317964240171386276350485095025511883233076172408014758139238018077630525308437303365561555281501267433391686568729593332153862797991048799905151898614144650410147728960742399746749547642874052297755968703050739968457892813759893642674669398720125216777495583942487190105856856873383699199671673146418220579298389520159122879038604613799234177436098265516119332635138179978483590543169713798050390984366488208838105800779633003592899591935234444464454411411864545422398553982981766140985535346171213729022340056745685622714517971133731642430300458683327516707478910934715483884535771809538345728942721481331158096622666379295086746538574500678723227048674849783666989101178091715599163120535337508109657537785762259149864294475254772833959097427809145622318897868504279353891017632833160359264624719914296152163612721251903596382104277760800017445809926197749834229438935905597152074596160713977372501546517432105632706391338033533462529445538967532913486278170935825120272029289218411158364287724187310121008438900519525049502175717503768634892052834961933891441813752865659261261848871834342240329397442156954204040004372719067526451553175429858311821478603618825997703375470660120664187320849875953285395468702900434791799973710842255773476929823822089452519538317071043320875350143585402908289367498101953871015880432321886785787504282149374467419541802082472627766507328583973313427298859743359895272713428738383138844430177162299730884531659537429426613227200750298612145208172113323098696863844285583590497328762090845602724241328361509145328367970083523119866001587378200856720630137205974018481583542645132625059381383063849419014335593814707460918024938576183733077914294078721696717323838448344188026071772388222064106257510154240043134641013234088753220812835687337522387703034191750337497826389661332331427992253319900831903239010963771203095609419123716187575568904958232950108280092207555809612157549421513795579554110394728880382254469208602817409153173794474401373371182743347976877632313032495261278921270797900131176185089835419886551248729392714340218273107270460347934447424805883497921599199297772605027302575366148437905213799883293798887077757350119884564232275929814958195926654877556727861020903086841689757115213139347678892578404235306959104090656491708461815880386570468428985532878614248002746610446871113984339017168860316562673612664280749753499732378170875441235875503997493109055245685091855015761266726646008507630869956605995340978032858676584344423357456891064193266117207244105925224712868548756854817149033306851829132490782009166386738947323670331321371903174379394969752596874065550238857445577686470578423332634345302119787400932457546991015438287496787861898981176021352610478000851604190281925918932011414728065299798238231797473842252841361902505008673927089223852405334972695554951153862747162632771431653569559121157594724677884375635746026449402035233469494384637910429678076493038666243452003317287582026091787601432753581237567710767338808353155429920070531551656097579832024567382827749422647242372742532807097330319638622465513705824653316342670328773444334692355448167128654602226171053857491412118034302897511861701894411509181876683051543891864254039957985335135081349915979051162912069017372099517816583172727045161017244083271508622814924336696878762747144280857853208964119287622022431724977640839234670770101318680044651530119683859430513033870549433411951074908101458194261195145285695363744488370112592848830174543217796037115911635154963646628734989580837976170302617845443616076626529014458954628325153796697693395411305302647808774265862774209775974819107557963762925970394672710474732482311460884711566406080490178846857760936438776952781582717674556072708562783282000444054659828282565535479236423838504112586498779760250051220502192019698714446458092713976049794069724511522196007833952528820552303806553573038952857159827082355688809218753321667690121494360311660099065860341047431739357856339806270512769125461459334932247142409925523335649393680303791707463051085304236128211651250210566249249560888545640852147146227037777722969879029669773008987092481228231349943923144571125880069078665290213363125665895415744843341479062398227078755265457774750400024610711264247065680521698512547546848792374856707156413186249475839248613629113269721929473179695756476565404890766615279336505212850047439437343625423579004090777451004009210901251769217029089995505304730286601267263751696593239680526015944180740291599698137995064581210132778109119927643074973455989707286827398064278648059173546700602662811342056880868068707992114499899349059288352633284759143215552486414267299428717804314573253000987128312035234299954045175177785007073187586857985964942219328224528632464507471504804182479927113168443056127519047220124679618807458754324455002253262235920369625618844836539065938172676687675307286241579658032940509292652008611147507923908073513100324761135865659445431721988514371662086790995718055641358128713845129701398978244029086364428880289229779701579530301445399126427185135949723502322390976921857804320055562432837169394061369635192814239244024158097103826677355493144157385671225203552137419693663015285837280226886699336518403612866528509313859669349279255020701223261106632710597078843223810447377187469849095073429487009754942340307868779478189512943909490203919179797360427526812208088489919003048371271829145930534947694401785300089867235979604342847735427841609891126790784383505350651840730997626332151060191668488816128576826437656806566067234458150775353058211569334991060329670147686399387196115287258627156690099743939096160828457037620843045970283583327053408894086660006344717103303001390790247692685871360213939010319023915860152971537666447401784067787398476080887343843573725748242149891171083796358108624387754165695328846958070027405867601907141467046694327981687233775703730989463667991010633966945491179981337764070610113687976367135929645201621987298402327226698711073047924284101902606581877198760318776754643828422996021472680888326909502804137795482710301329872390334276397975016064502611953280452744554282283072004426367252693348561326850329384494309443198645490241295294201803393306752652256526145170269546748776477447688042009164593753212555175021647534056270161939020567071657248244580865182300707692967080308864924486816465982681695819200708036777126449569202802983723950613544578703249277875224928255076451453017163145499609281747550034396133016403756004534854527039020045473837335784133515579386139361223245653285045531469433504356612518897318586852687683476278013842399088359459282794032482753584097386737726652419472874201536444674168401326595330271817451460478107662601307127715987898714268405986791301745896279984335853418225308994322026108102500599638484218007846830256121066174372040644908217063230442591185267156911497660685269952211617066009438863466263722680854061380104507807230937606613678507431149960297185688172919264806131329774222695092024771360470293185063183242792249972380169018669188311694564830434580088028513322912787606132693443131956131151392794687869115535461980355076885602537258422257712454018009546126725875712376744894741840038222357635270412483680025895834620530240849420018520170512198623085642257449743588662661383505155806175412818023704608935956055438417628407431316681855510801382284232269322382605578529533483901001395929568664519408464967691963647532681307129453714842172468475561063391894628969589710576951146662997540015698109566755298312057244872306008766765976307482302256102531379672586457607072051826994468687103863211828624277444531002899565978481984460561681266473164853396376119858242917748221069268235429065786278805571647875159836513615933834391853803832551171566609502207905170893324609943422689391119349063336355938488774003940599358052835534302677502448465924448556955881826994589232887500684763631306424647759237381315261895671776280163847048147715257688708665554683313821452282206406332972620576761149932206773467653631352254817839398204533743099293154412256962415686269652353778984940006539852356795837708111255293625608775021405463124858788908116548816972803401559449016999017214746598698967934500647723685977642157829044433821860726170683842422083529555023232542370261897215291981938610672765866513027813842527506169566013422016093122476036363706726306385853968826480173783418198502729130437020789041580887457455982326642500970521709959724494731729429004296515548764715856686802361931383201113326010773875003252098248932547135169818140560921445217942614255504386560828670211516442396786352187237036466815885565405063027559015633229712870758640425802517266740869548059718517973661335826246915933544053380403032136407164028238080780152378709662308373087149080095047636242965643953367265761783737864464961469662273323239480863772847958193037010243680397760314377453321448163354273509307803835828282394677974060830797127854417705538385320151367047375087178844278099390483216753452184691201991338747630281121122432808016654338350891668284636473369644996853119666341980909340997350052298531269902663029964301353520125770440996966124223431280750185367993189531667070070951699147114222299941343495248540469275646210038166380131109340976212183245458131136746931266487961137623273277121487626658341060477999594439525975652834935776435108226933426849213511690806609115287604620556193750439590502313951529558619301543166314821749456580420764316209708837489873394297809609667414245475480967588614938086058363465948374836367372696050537804200682937804502857091727320724897908657633251015684601045093532110362346394578100255665641713332906249372088984258173631358624616085204444796341494643136017839830339234157885791154755916719992159909229659032197153559157375738246641985032509271573742139632400564125971394030324505918734399179552126684772259966156103990739565894342266526333463184021624274679924029711312657169143040517735848065517652241715610761067655004627153118209593997534909048135075539295583140344373708848094507550241334513174147541482456650674532057179008756604141330630213052880250636462258364279474839062501401956471306170746857442151139303787828905002571074128689969388862960006511538464546357888635086809829580483487802900241102329280814155581054125090451331831558192234180011658565766138657808908078314261716275859893589897117118811836867872461444106934890253222699880418167797639997851235106891901775437300239258601983774894043078593894606709341899016774118410295236018199024902528234325572330366094758356343287985165073497784339561249326856104288781643790553657051817211729394503842659127649960421214484589379028040275255058229561180695067846724160250426261304478438649812692364521874250024318353275476309509589163324713016717235811902009258200196895299254351335598115892269024402655592492074133868469408032981847488143728841046558846411029890080588649886683452667141007959576478309160265476239735786570475392070726933927058463149770500114770292569909847568609337029386982798821811792017721403710717885012909087002805532542780290376786615981075348211607514416890321934319404923929652119694319246734027726738370700077486535918238950794952626132180528665578199384907926358798597826667282875092998906353082734572592195722109883999134676005636163228995117462784305175586026926441206785552895986210613265998782295952629719722718583597900771646776601804002527369948850013557068609365808276460913992203875986936864185743286747613422845164668856266729071521027021896762401897138491241438106058572653600496611807336294387656803348737357102208076687229400669174932320677500968249446235319875043340756303674350199086155435211329770102999406378806492968748202651295376471138144027022714607594192934304042807823125552661058164123727143090604165074177499543419944334876102060481448681681438168805618615116626770687473014019847947537442274752375231014428713855337846623857239115919185878439609115839381167896009126757878287500498225091416128511997553891504621671506418409677123579232511193406762889639952746248180991250526342594110511257580489727869967048460295869076569859884165580580484141875749329865577677157580223676343095290828167184026212159167456688761232755250524558172430557493011717540201151184394106789878783497465618508074913648221224718350762808541446037878385112292073442425610706540036256001671145391563954734142828588139264305371953882566627391644992855765214647069125889842340975077973773396998678752576397792373144376321325806206518593745591361283826088434947404401268236007717322855210399057661444818373054484677879872564949178374912357184124315122802209066338785790041051728513616190505907099742424363762463204855139605849721861435636788806272075339264329273879686414429269778787396814818358798541134001747126956720686388222630586323928345978314093522450036785346100403461286912442376324780473527618298479484453589530406441953299134985418345589714942820760908058482378621784114687293764783232223575106787531872797671217395586640424281201570040461745195000475508604771883178631641416538944627628846087780927969547674334172336056736382754808024419671690984762144957596920130991809022320579182852864641598680835731407187746195463418389210723536277761489887953054899982244093157402313687448795949873072504497254276538884828326693737091249310661239602645281538695717892769795783690880479083296038684305146065662247893177006407262759825123929520658062970110098892499560592423851450119997851942993023186869965769702016924542408291918594436376719963128398786001642162704877480992747824405386629378040760555422424812458417794579210593602135904935883804010377386277339328108483217541708029226699645350517047137933835500782132959407580517206079089150786515243146917993812897150490255159220223877404292348936360409937525448641358043725565758827727071944777128402220454875122794834435898077525667506733970071881470409535686646730793953630621792377916458465615707085225076056080124048431432361489141246694622714475799873919774050108458089836967495500785052716345248193295013978927696595398661023541886495174705772005257582133474315993558886992271391539661763174028527528162003549684242837335261386543405435390502879096793151539206629632346664948749502038042368619249069471346278264314932968576902942400192439381963531797286332325709028915918789642024839026780713657679657233244558893451182898724643800630596546970778895723616137039551222304500017346474071803218643811918916667068357762045202561027076399641180481416771622161017127369106240201960698364893609799700009708866365898137826377501927537364465575421361397129502926588895659398235689664964083844896741133781469889107611157116872704651218286250870800556998990121747407000487214677684220438992748112351209620760640002658648807972283371128731230657926023278929838279215779961195743032218153864385508091085477349219065661118612957107526557672057224067135211992503000604668120828640494360443229629682284755762006720670548863306223647105318761845716415777607506384011085202915209264956830864243882912126604684145308164071333077777376106372963323649778875584306538382723513821944251317257573198349720256049457585940697826215237066993399264338633469171102016773848274007216927464181837740279547362627210259101829895452558032500558912412791045626349066296369460995169342597688036863260782139924263514062842754854309650966724039374874112270286262348927096100874454876977420038870438266905093759433254145757317059859144673811120466803925265655229584459832448147358835076993462614520623874139293202437512074675618907935147593509927913371164428159254148544972602758526526781914377186611272834935823117142984318772554922604492947781687407563013210550076602231093536623956371739606626560359930500980962924619315057730464461085384116940136937258579593417875408182276574426196731166398785627674297834190255147530249921374525819987536181840785292688601265607200784679248087172630294417939431528731723716820934705952359898038984300355118480974287967683842125461075458573874735272896868496324842123911510223183230625259139361807605734554255970034772057602785328334034339019087779171389411103762185076101975919667311262053496561463144169461078209053635781392986345437980946515203360699929271203206704124564559107973685598742787969437253610708447305802634953741172467710440610088641914860414478031691367337677822203093079701206085849973322319862561038126945771703067801691182134432017265949823036325666665522217672745273124357527293437495212099385635198053257203468154080352375279018266350427859694909699731063935420642916775847245001037558379340032609170959174836548010276822747259906317574372781193660769225148465266218625128497082440355054867939037005808288333905353107596424188576840205392760765611954135199537503794684826791982630713610881991303981939093695491790616443237678387768088032066743342149476623290297030410930437754316209820685319991347503656042268559815573056090467460673353755220712344043853968453180209551619298140648667627831063923779433176685871192343541872437150215338650332309104173182786357845694799044766906843290207433271927817123437819183995027092287615558104725080744465092705659136481717683514664247900290129560915675966920011837634382376785433783345323368037330294675643986020847300004964505030776923403675966094527469499494393294488954036749877100659286188582980934849875852727370492155231150505759799959593597934486939757228646847679875021607394042217301877576812526571129411505642907257787768716604115867378944189784255344986486345256364454572181628655170874784032739418290456587422901209947399644236108174579481275266197730356912976383923371739629420843855456807235805962190940164575387613554912198159611977052850044388847375490717966693738858889397166359345882817109331920184837297176459276583768693958667216003949288953206155013566958433823021190995701661944977100625037345897546963395410150353652965842631752078836524043255012404316786601054081196535706935474330969970951243451421075033259469749617057750515474304587379058934592893568740996535833176801002507550311305331721547881108027279037188764370776280472231873004160792542300330415945642995556738617684486934392467870426944315018182408926143702596547415467437321929598464458052296372743602232188649886425515330726155820020335255375889908182910836101757004779217264382394329049965931690401892114042031383492379330839131641966682094299492947798522086906458881905915746969714508526923926388258014472363755417717076467520431493767658251187704723088860753394187332308733020621386895290656497227696909006070063337518070696675209383420300935576702783079748981600991069803334519642571979788127538024116601532618816563311009654828240724696329228158660351686757549567441241247515683446495718011738993680945519659645180796482062802150575870057893779188691326673754161260709822343245355560680259798955101106008071085471745945109933992443935600455141252251090608480539642965716184255267891643719156519527166490458304637114603296257411806049999814327701668851573065007914037076596461113510797883939905549028251783813806616096521147269013680524777217047407942344450459125484075226431544436576879168841256844282203971093618025821337835869235784436950919885815594198759674570092824710500864956650062475052990134805535664667620433481993162788185787920451287990962733355085266053390161743198963936511356921060018540326641738653244444198906932660888943981661025118591561470745174787790835199175680757056843107738424031350192150476979642907375261221666847528156810065797717188932663153938424893135114501075342219554010209952443542265854653508564405246323376832301915137073533184073920495406130360166004674189631348409534657524971537957053474486069225385970287362107114826922269548601569172751981591776454890053609244187477899085999815953902959716887691164232175644223492135493360446687087776001248905140428051602141693428840720874413509475294147016113611789213281533893247567775666096766662380040832166074435181475240209447107184767885123378939320983662787498169629830077975200930354627364837890496683017003249664983484054709307953252232467530226623820995067074771490388575993844718120373273772633668192483676498798424014842231663515709257318815198056804637202937881545251595517382432450291026514737279202356286424482572621676074917213137950044331434306529875187673972013179062433854697166678931206913663388029294163642840885904687391839665062877081313156212662518889528937708891713570819337037751340114853067307866030730671556009121345961285676982928349286888866373719287891189271606450145386209655840184483865351408198798200071353675599521150779326957030362472126293389749230913329488054880843378218781616368243525207934320754656393331036344577699845923862411722447649161847486474991929925608346002757096973643152388285901384837098828860883827300847841153182005002135859412924766757969796740167717445582313929652965055923449266231438062987718561426872545070153509443267595423508576268634343867559579843885906486415558985697069220104428927732542365502962203378206065944991819794240586078485387146583448459671068647621849145990406687975518865799305448321157150787144165152545176806558299141637681050121259598601121228697344112267714070225634544983693330935721376961279296641161801444590682674991336636734871350987445104982746630382443641283496083887027169492632224716068103498752424614375954164983442425397655548609783566325925420512776855673142844913566022470072131360543809466635083075104269840439743558241716888122382200273633025181521870046829717737562105929172987715798152722419213747313690171941939122645902293332241465619542944442415454378151091459579193633182996183436145297877899092264597798168430771549845093830856681110711248726142437702809853416007436788823060834908871021022141265707605541653763361728908066889633541015291468674921124465256761677687459429001755363897815908188693853501764528274148029788343481488474097590889812947939147793117150726499780109580751486345943390303943330608148811293980341893059105413268242028119117107067389759042308113038562401437034092099893525303611494719796970590300016062805666396021045265897247046550046660525238527519503653735461256471266986403238872579565295427629815957256238938479014019756348457880188329524786059746933335515429584059966167536357923172764033939202349220168336086803741126852029487658727675394256888574300263585090585365478875965411030247079087266633994689633097987432466161578013280804275367490607680050888044295862794223191783539206334501246884414593432335708015151085320224240545850713785871949574632878396413673739608977883216247629319001479926923100795976794515113918541386620108312143346637958843281526069969048455767288925870211975180906465618618176267018864994093495823471216260371776223930372313656004653196729285971956427056940021509407758895547208598048675133162426461380354137982693070501558372921341378080100976381310412262087567288875353799859059586457167056361772191409422837097490402563521939386977245948274472874764212683802060076939612764212385728919454867025251448305893125112727691214321188846149265916487590838561402950998686298018432300743735605373331861597949449757257059460019103113682557031076171075874546943501172928061989020762193539767398782986911120933703368604236103779124088581293305321512442549794518437112211158250527732061035976292994573664224712251056849990742468447871535447388931378508124001773459481877290869233694094561686012580202564239217908378774485391545477298972232560358089593316546200155535461936862518342833540497420041787522571091553665203255353964676407800727945343218358254317956688212667320135380445153952994813595921078056926408728758027005515047340331327463014670545896803213572726132401163889060760394310214569975664524696642057055931301657360230718301734534769241332951703436431036704859799421087618626456301122790778803962024786290286458493100641988417662047580163050010269602519269539848629803634021970609480623768194250269977962107602700706425208149404790501606846619369857450291449677429529227860631415282665564015817947572450021299343334072143193932370334556951252231612377594431563905781255156840902199180753040077514969523505269448914753990132170504079246066979389825786693164633902118919572333249033688337542473829521670199238799837623555091759886200752599324500684364059266005866143550264186005238294779957725564889330799325666009231992517322720820462730165782985003054902289651496711364955838844074649642722472098101759131427312425598182228952527693420390695051253163194373653938983964955207131789410354080527204000083111764985355220816402555163513139153353901547559662484915995534909173465334389326268666412744854691954954173671382132544816345113314421172828083083287627751230068832433943659896252275184296792382239575559120547417697208826661012948910650178400364305511267186330976142871047486050728087699007609647060407586440644478886893374600647203145728181999919498993821127714898767860832975111607911017252543788236276770311258439362342051127729071165845905266747760005443109057935481892264457230426915141901013695619583668129849519827179535671131436736831451765891168554374798507041475015334401572826999687248210570855208797078788784219619875014674939461595455358974946490686872284838589909341343691921980153236611185924165099683382041132138663752258383763838116509922206901807188459477122741268220229307225257218367397903102281148033110296477392539983266671041285822846037840944218794226809690211118471498102483412045901111525351527687133633627712643015934272361829965293144168702188934065889444802275354421105983989317695103859828437989783297179668328848017838548865822156276024512867426016934369432104918162963616923799970337273093407051590523866194146134996946524986997862195663349985731337817291509890835086248580142352342539713281578907428428344189893157807060783569146789099350347606689150183832387455987125607443434108410157166972618563005950595954705833250896304042899704689813505856307449545924663247984786273752599366138245507479664460730525599063639232584582158089499607835660900823600321884434383774626726357711987391184627538574136468422864570633465956544880706252295538005324246545907695872108409613312134749330465603039896837900486951532995315753849291518891718550582624047826764683551568953327040472879646821360120141285189351911776679279340712494294815533636426850858122855195047610146970657918344764440054841152072326274627525109006396926191859580406947653038563085102058796457719513030979392932585264945762637018107287488716301722735719923931108436538182986402365406506722422260721450992176463485718319587447551286569298992115613326986688479743735851044722762287504914223675470164945046486197347068788424179615173603495327099889486547167329135338546497955518662066272350978528226926927421673031617915017035432395384546154087407746031055834778402740220013358439359017687276284852784785091182212607426589447950208282727364397103769859688134222654045651813935131272002496799591066438472177205199532289991446493281046177288770786924480170114532004449158864014205897682867738649375809181584464214783021370241733597193073233600587930230079283382929166028212588116517818481061253025215168731391136901604596309049449667307048374328114977240032036604913712692975137423085716128406508544492393686052758017776725924532169848131798168617387786680515598402765323549455748882621602589827193341413133775527907798598748774296299098652795044577000581581113201909372846634462568291526951771513158573822946897833020271930844836409442663985527428232097355647099435159893852812438649070420744085938111204733654913189813349414226191709640964019750942231040362729349561014490704439843657896601053486590963111656033075967214648514098489436662218296550639933948063892037923134011847898593963522495339209668128112550000744054742077314520789446969173371990656545074309517667510908678175070578693527717913342651348292611135868884735408692369351126336560944975139623729706871851338168074275127220450362280890889435463149415405214004490676515751180209553004772305475730024364160255523746350075272373062687814601368925761200727434144598454964661856330802467853083043092370697889800281964874297607620155379161295633769878751279169518699002180362115314777299339840975716340133310519701839846237634413060697930496620895909680735763161140478769934758539986381772757849182065130991358062695513907230859173707084784603999155509076377488867869065859678174287690973801480184674325314395435652023208514090186297814914733216856516532781838993159852787418980860883512120580396296028240604607517592233657667827719781285642539734846277904334596046059057109316517459574761163227943738774781836261657733532706852864625534707890430095343885017978603534812998068449143290348020022563510839196389525956452496625231297172619639953271770323171063482324260166203792022195880119104563727782233997286669640998550744344125706802320439840448818475490150370732925104227432936083899821378652688794055955999061915437474312547435139850889712932524487445877322864582090157249840205946872867399422844799725064480920346940541765872654330569755604073677136800946359098345020844457096233385838508533830512110239177233402380202557629106570197662890604354278822034048889863891432504813147269768027633751452761743007007094667669385814065651324354694386642155640293435731098004475556503390887688260688136969837052721866659488903569935345364837873909840905086089268439670189156373765035895623985928284880635967359230978158033812786278658992388511154654910824659973794735503650087486405282105237128606921440180244953967809531410142715549311538044649306371623512618303026728105859497944295431739866535249984523252812911805044767479191810222468704147919395360152751726148625878058921344133057852159891631652834394321206430888973252068544665646009334827525901531216504904058840655494571935878292843180632216309972552016259037746705276771213530148956579365316149539458828592472870038824991030367428203854568412574894652886889828457002520233069094008040476846332436320825341932972198245434719404424404645822633357165240095157537070232630288035684192591663086729937992504846863565830291566617594259281181586334308218978061693325161456386736677887567464596447453860102147368558839001425249051220093013538128112147143474506611619751134358007402658291190884560943274314288102796754518462360516256954774968528883831935801750206899837033479054548370948043495889230463383104774721617844734455824977830433770067065290169601866647624920390817588292802398167266271684936861361219015647489069966441214145739527723867036785179469639475275509359709047137321435635452606190405630790182935764891045364682763282845470450318085811729903791333280166586220502215942053327557148753575527628094186512320805393475180996516109188202760340543363168827655948095639624199726904196785468597755555999097815777235471311241229560946449247614938241582121841114472361432787525905608666404978039552869073037223674105394753590758573336320048259241922025527820168650100338676777538943955466641198195507497256971992109600590557798766507409366862379990856332248602426447202681783077257957163621205984185682877097918734865671167706290579138326964615604307614908174664287524718149947686867937925602680195042112971742377321573927126722948120170116371452669898955360418934991437027075764313616532960325528574257269015811574419044165077308273590236654911691009062720932384644705507279481821367693963061949942811299368054417966311868366875380301460840554462178461480519941677651644112553761086754549612758466036175635761750215169042771989141592636139166187923047006342563047418560018363039001857972680235730698417319116887920678901257975099057811544758556326327541045326152788038586931062047917081956689516159333925933559606709757641867257886116721767963970127286177603536839799782204624487182600507858211764826208414870806707610155907795264496496755667915592484082088711607738833566409481991133153017771204956407041287196483920843098374149905228232199981074313703340200229088133534313250130080869465344748573702788972644963249870152016820892571485707306050132526018758782285909611129432493252912200458909886605441763052626683001560518286176552100409323869799328487539629269142547233959670308020727682834969661088973582592513011137290970090435621520948442791118230263998597223204946466327755518181198222904141508904146385715736517608698851972166717303965742140670716152201266576596687954633786101134492375993877587309001045076310509756209133579546079455170518557480106316140836250069780615643607242646011342671437491203313781076938417824057986133286185589783899818134755681224670333659940815749872367067106095247285420736180616340377271562238954279010247428183483970342361757513213373828401522344706630845014834101933821342397759782976969806632442283093999993680220327450030351756496285624707760578433317497070708519361320059130760373036666763055128820160222776477195348319279618796583034949632795039765214343098471695930413040410305023698107188045862651092788545309038895671339919652207730616917070423400543792788732524645801119194386385322544558524764202194049040951189311819065252830609770823602889157073304716588195982940431380343884157368796845559267022428550070251700041514921911497442257760792179803342355701507890818672235615820374664431778263253200737350670398918279202121576092731602206512403900767680720505185373035390023771599979948755876407601296840981173841096116863609495035430542348221049851616553018712737649755656965623512457130652338996490782166728138228027745167417165471660473750143518599251906706538675377782369883668041192633843271012500174076557003381609937530582897108621165501572637747110537648364894486989433118280478865070236205252570556340046488442160692040104699136843920943044389814159340459175190379934694034013948133390462147723995067974824852452592771549333175508652626836423760105411173806738029872272897033126685319271808352304279047107115354375766032491005001042456056503511387123609984822605363344585655986051601098179294499835622677580785489000395571898419794025352914314905291626507780517456442447055066088389651021665018529283660557387541839990865310307087742102163085849868045414188673810043447464123897124729858977814636981686491069364205410067959437680081013367901494477713202100653189013717667299609443876595931694281939914018061075505941313243755142907553875320843519472892191488904987072594738678130999116208669534008828631037330148334501593422835932027843465872013494854487389260722042805711116218102478196745616452401897757304800530070511651573560907112271877963196007220637401743059128350479201658144772664279904315198951809626795966894702810300969981007184529539118145426707508316981264157154675883037714005927514864441184810243770965050377841652445957920721590325817144003947785406501117350847600469989227336876530052200387413054499305292437088561100777319892567816283957261356024305216790957417102534943371335830428546948267305423006797182855039292593888056922769408772530044679329716213738612509399687329253545747671295528997992067297959173100317752441529876514287808984104230653937391594502475749862068710771254964881556343092922098740403520662244477465602150217516009257133641180230315930441603028905773489996356762708168400785719041853285534598242955427326573123800391191972576536869203535278761228362469336971336910517797336707833345373534316097887391124450287718548245594680852282440969646747807549863435696932280628429386906108370958302545430893035767895647829514967575586487276405026687402586531609839843606197764255602058688726881436163168336694731279834728002751709949552987190274944213721366399217867031348937283142949530393472029519842338140926942081175857769989168564473868424889131146627360019227482405350827726730824439355100477058385082386916682101362767763827427848359948036847731710125276590500200472562746035285142996424351699300509703989299822646843587454080724588698912785302177393589342081892485135125308741851228249830128115025415629787766154563915159689567160403191783204885441336932772341590802004193924296220850299076598636280399977574035836557555740775913202780971025114473409117388366782221387533022051765030026957864902589826808817405228067806291932701098353018498061974321776326937510398959860818283524331368805487479346149451666071278138817625757943799101464450387027500372825973511136748666816805206203118092234302032965747459472344352458108243431441997439219170958345968892038044154788778786292997806360898368795082397983004778554617421968125149940360558390242151260095036306804513842712091676085210577454796345226768244501315587950726505269073477197584436769093381753736971066261933739281261177503483088315546994497325426839900510843285168035875862248026814937114389569585206784775785955029519315399723413571148235929502871559196965986764881940808089068510979469866723979410680824020103322489220327051920404868733797274140248311079876121748421757337914833472997861621130080330766629314169786274557705232778374120759779965543394002136840867239095329505221229808306920722916476251399787707232484652184839748758473939382684338796527641231844431811894639067683474064924619835608761750576323097927027399062730181512845419705392826167103655868664179077436522990124793770341582010453744894319310145651456122974833043945338775478601314755706870687977160060881670290471272317883613672709188227832822833275799661175281599898266038974704327787295845476562068499912059889002240331317602536577752926906544532038342192948885520280984119797935858866868248671906281327817953026231731732119428950214405872230643644695700705475210292601917470534457385525015381508867135809618128057136430839615986641530808702731895455510953249882485079142100098341166167551534565193679125859072493821120901503465383823438160263012846709787511008631764992980110699980676758199734011916511931250627971325460610758572698158757768555233275137392283382988473555096004200853364667865167272546006668385537608629309217113220099289500063957893397549043719001857903931007749792045332937839092008356186189939557074541602745432647466991907522017540402076459858854156223740374022712354267216912856401644726306367800316106820078280479430651288154113378054143839971712283981924492016638567288038928958022931814055182404613440357849181113405714138201180196912568812185974449383486582283591330200426665947211744456504964417864110607803909940634886124692187180896896785343975551034004487278211611363887207049436359152866075177772048209580253373200937522237285697606261780084584739679535166223114558787143979883187702709574050906694527937021642160092331333633469267842329130061138344361128562419887572335678012256676786728424883696426461992178005124521535651057561037911040346152227229057264635304885139199215783445383779126402446266786197470854623506969106506306945562870806456644909117739276080342529383772622895590018056100101771633065736812462005502424707552781030402845543824481465670362657153205349271468502756397318483225910715385147708933977207409709372897112864808298160319131062371210207059669784104455578671256742016743760215040969568696863444664774247445935338897423898965994905561527408406833270997422563174600422099973167202354659836413967732867383538460935357091166527406622415823961546085338178644732381813228396907230919597098021614208355643625127634937512633355135198175070256877257860096607681011418796273386271294840163019503557519596737711787668703477434180474974624626232635237367600855696708848807844154767545512646308252605038595662592866165800252233512836195705589847306786999328812802193879529604008031119404380467457865796144970255127975641991903482088216301007915003970446363332510928898780509145581074733771849527486732676471017901808623758543447425058263431607536751355919263349618437277602326424873873064570247997697678087735763732621795714988631221019168840102347686280422293752916810616229556887991442164884919261061791714715213275538453890184852712800696507263987171372668488708348671448999795543970290809829803440052202737645184800666253018234261433586028221286165433388507952292070008955706443033398994306564625313631000125170883561698839907717240564110077255665405421709104514825560156374558495739692378490606226700745996804444112225591053354230951380955840377799544314210724673217335662160937783940246806402894935953285795397847776533922298898871673914230747251511008059277896348343444095764901007218645937968240896595604840816676715139778184029649154958002216471575442943526353564446389998678251797086956099038999593334092943342876606775708910249359985979052213920152033035485079741774673542247285828768333822322835449488193801482774163238934697501387961718660063070529881251697881886541568465108731916453662438202730859318518365573185189016339179416507011995086531814866642588872221020585971565754730623185494867948811083002359230139825754588713420320979953559252354758836393648192018278242465219365926597983711072852994515143231247368359187705557830075951374097445621014286232992809223539724626906571327016432653850151663286708265036064545297939723490253546004687320606399529349949382281747473055639403660129584232003386222837182157791224440965804114365915248705788730583147172962561457149165468292642984580138293214142502787535912275711915242836984453540085184313178074847321714247834228697232828035263457048220255124873255432341244755212288356720411527187712509311251212433137990452282178692768374522238446266494935036579193248533593406411720185305675281919987032636972288921678979553711769825075268280605122337640331826314913275769319511581870961417441407167810518262687983106004937734295133217945074098770825843000319448599976969715003376218029967012414899276954259695397817199815705242737892418870626383892875667195334558185482729565033607384010363494028924487010474254566277295593636192076089454984674953069911098064251140722985566294115651763175903839487546851209701990619193828011740925548492792922025599371028706115192994123530839902372552183372399154735575376634959690494104342547729140823985490342634420910467398266665885359447881214205227150252333855043382853863792727279549743912384343604634869261066622865219680154737571839753387574380449879667139766599048500388543476227349302715130686320736741988691035055131431932529974756421506760238817741530684583872722278659385998320757829432158733635361787520230280011145717232864390262715625858385046458405644382163267483663894591108902350950305135647029193828407777649229953833961421736429497699605333291620120895340343544187895297660492333273695943170239237420047835328156711965626177404512020332184027856452160306791448517605283143399062517069343987086837530068185516254651057188238690450989504245163345963631015514397418468410279997615136516675760707121989562181150415587278154894364655256259698249938321133528055185887470164950989837601487175156780061078347957043753961927455876208724007599854734576697402776268662818281121091214745109043824400896045488362041688344609669450393899069644468069705098824683128655790107833314438065401514217092025333837595871987664365158401665004267951660112628787035820317951037199473843489549924555426976069930831530828942421996518728068860013184166350222699702053607481418216260278224525915795302275796829158656137550082663827071374428137557386902661745750618576563473848101715512988823452939035388025227178221716034778846962618272646601233150629525913479098390974126729407129461076720211027971159326308906586861079779218376322352601444355550610457118752082056967938981036087540111123888859252606098863406451021541669914873488510361751660210734244263882869586615097993225096781138440992400973071017870984052479837809231855828380954811143416147976910159702747169480082905366970855735629567639767863336774650626704335469336719203148889239674979801316927144906491040075734956380207346326661484388304328362799816490204091098119768243115241876985473436158561263019302222551547149640030562155698055059247258808499070696472826031610661990959960431920694335044316664825075041539087580030230146784934246257406954616320251333165670893170329291216580692260844742296397980525811380403049528904058848357388923150805985393298907029829521278791982971886169753966060765999382522545310105665856490901234714372657255534078913075340125053505195257876798161698580695624760798560325712023462963285838709756937377729076945062804393168596872413474909609228311390852857873197261238133194298726350224668942183274327575294665602531695289849841646098469118765164631839477701931205706876217756129866555535930523983296422400990932491002724690926073066359195133521766271681383023849829885554855722920481521452831745037533752397048931520442577808150155322774011704698658849772213313680790730985162531934013003101745210029064008638925613867736129204303719636143795998973512520356930039160489145253879868376922122951285754474546723994034306677348151766900460102787691036145050743993201901667671707408217906041797786685396294524264627347445456206854367294652524771204641614006454795422749815921203143854891599003513379604071613317776772001001382952154996784916400303181124759422339204568578702753099476327867323889326819074321733457719327349267659955122538874846521393980315965107479802693088034725901892686349645123636926357580988670621296790356838249980197712203168568813953647686582542032902644622075408604236643136877392483877924931012327818652563340410583195934730103888562017647359303709279745535854071258486233640958328940074787618871575580697317497918736699508223862148958098268691093405884384324961109770707960598862218439904761570949769425898417950465827911108540007853209181832369421929719125263439960207607786452741901063392150270306455652330546941953540084299576609438546365511353469313826788220955942877823905855620666157539875009163105845272925214118616411989322637028741940433762798542664562676231962622777045993101947414119792662016286254135027005625745073220873858522709700467108504215142085837506457500722846705202494290250031964423777954373240885763940041875637594549959396206244096622686437151582262147963004984375842741360255577492310854620221466296189006421028458913445871512392506886429271026522017422927485944560735401026527020094587484348270083670910107831761820560817943434732523054571453817333949097468776971393814814499607498354516316035555351576951898403804826960388092765565893981254670756342599248245775588356040983681025764758269339298622442068841963246806163318145632434087875861249862121335215320425686024582427163892545605155481440375469809787238772210544573938906025688797836270265198909998773202035202862315189642772474670023936273538147900080457153266363488172985719353085401378548429914245774196964974928036208300838961840306792019514347568538142622219533919686131754807138616830568324662075673687692701255411093030261446031037510857780439562758502452673088279823856771709005763332974417476920851880059473882183958445571298166085308616763837955115220630829823864397462990763806431709711590969417024004417656606180934520877221512459797839545435408253070898851184317603877371810178380093316696275804290630303759155137712088729543358251064689393443669947575992165201280839137316891313380069684347096116553781813185589848123972317320257117832920543744010322389022720965748574230457146214140952555965647156677981133478850009521724439604704284387204528272512848381905711502488849881867194852189259440439253750521544711695812342910765095257619877861858846255954009430037266389084097882554644715696819443725183710480586172495761644257968375870001349736915379613779229072102826259699576091673119567156084764432746998780609888536954798217928035386382897404532791077065702892601332247841054019897092162334447430402233328077828745120369820532752857165667215958043824113636402381859533340743833193148588182960645615658179360538599900703198039380530377475368903387985300495364261589226351793167189959832651573933946678215275675573884203530846583889999215024192451490803870197490856575406377365096705135505452448112485092864653207692921426755215617400451748838630382186857263376155141163697499216105459841225341808769312440041750559430017798549348508197880367338635877213713803480520684973651631346623488438150997415040675424609349324357731300238196660750528227891180545007051839985869765919767006181867640968782206643428449863133067626933566338292326361613453288629704105475009443309858212101889708974038134006333972763316039701055583517673950429842182649699280665594632478092111215691392710899559040764117008892582075157033966792427972098304062492493555916515757590087911939697292711723788241803204834413736071666950047738461063473015368016009118972826430293086603474991961198102988105624231713595301177261374089299936043956732669605469284851174698125744975708780073626941418809282269653858731823354977394849798942060900203570575840638285545508914985973269467183477483122581240328645481974756212738682263247306383912304585399005081391193347030620142183422397991071383311483241060920265599478100800210636236393282409104844939493118700206715948683707075005124024898419535318756033955292875105685174866291540975176391730819183032087758102402101218688526594352053278093693204568239387982556286321579663672263394706897707180705122303720562223100156488153483517431805776688515684483236384203442773421880657849488126063953526035900571676690621251661628628078613766449106561624446164429386972372033145022302524106441612621038274819353757581184018748774581724984713200544617897831600263812523615577511573542858158901108233322548423812337211537567497122294412181372797822265344003595166762238502038969397484789377470591550365802782765541986743526130536936414732410487236341778824803014453262110253595303840373502321490434270350950742243404282647610932794723537188336688564441360237450734426329116979281825809788305469839005040221937051071829846066746597029623427340640277725831328646596156123221778989936562008163752963529291767483696850941809605985093554713430893435606150216345959382047891738166836151438002255501896292508325115493067641504951999594308401451838016185231612016553950434017693789652920881445447520644137432919027079012598379566464938081847261521065547822847146438219076989244234385140110872873213329477422585643170300506551088356123234071742540324470838653472079296714271269083460155382405335662172942317832307112161189013535371726645968207956698984468583544108902477538577390971927058385439741978356522095006425557296129587909843208679138724964326859347645089263134475143932822541638708219731751216699605059519709889823957776072466269047580575994091146917145548708966284085534903165268531706024617501223923437849977075274313664236762061588301860142546477833960682141835052263881980296603826475711797802586174594985415553017714745405729407864662713539537712738025588030262314261111843327482550472619706803247984137263802766107266589527871096032286226257335148159991546109891370793620765763534807407922565474975958379431969997293844854439315422289722611833660083467074779880783504082006985426118280260240719617269057505354723042594125116200270046002004518517823891460282848634216228333978607412227308898898936489103949218388695232983561228240791438810333776545600755053152754906502385971945545373507276815846584342228433841954212702948887241279567528612091194846308199125808156339917839476758563416394902062482900707724844716235026370146725587388990824301084965088687154070228131986285154333516262115514210120230578857514631552578637380706956334183649646053663160814963889679745639647840203980782196472052738333077554565436521109739399792695207464037198964572121197098633774427102638148089284152804345301944017752491527852889923176723591191480689162292457763909216522618709813232391409127540808414794030401341004081178860163566989427736763719015485448869685284433735510873562312808593667814501631811053089651801581267059051830214917032482699552825090410172307852139392586901254851918060871136101556208785723814631272876140087020126659705750726142500238687687232038037120596154655726350728966585965598987080613368997943748855757231677515807673783261468436675515324234219541746140671990147327746999218764020443602491640760602973050457412290366341409533296814864752733368006653512949905520224931630697911224510548485476473327786388251818191585139196361500232848601618620359559749472844009694467315431331352257656095541088128643452778776407584187877954793695748760137974216361400040004052841776636311910516308920484097911589701032761024415263258492553046732413864311766146196233923348848942126408414738132775156798772889494679452104425897679333545097558556229749283770751082956822938344812428079297335848923185729849009640923463979589628072699800284435087296408982173122396299495887618835127142351093159628104358419760640503750102911522149621679968141595847333133515950704793131238367282676455841370794477675577038196915213172160110628891488430720716194907289370340702379770704671619374580664541249327818507618040282903411584148789520091301714791372471146154879068085973661262723414529532789961332363203389902606539274835596312957659706151828391744764321419796786995504456793797313378508653285028177001597185568961149640406429498179842078500669674158688711070210119817727402009115142960952358251953749631958379480437919620860972079974313508230540408905969067560326066998331584877233270926459711515667942989071593116746884883629494548895534678980304029112270208904295785076690215414649807509642577428967504480047452501685901158333253726680613024931057799476484884905993585588012426063287666950166991968717440614299987111827696973869973314378399252739170275489520816031933130889509961880779442969395669751845817728493815586434398231704850274627194897965292209972524132996801934878558495815121127413700328933190609134460835315862899500833879031692276259390532020030719424311717434451901584946567719400204320399711512624396431768186274736529668807427864394290556435679764961991168470179185090276141363046829517197677877476293780097568243040981257853295583895518715519398128561749946690934214986595635714084700291541829744779972804259785913500731051952951700321346730948055531571552548479786651653948334739081164051752807655893311019269914443273713776977721776249019832606497321112395985452146795889827908261206946569811865711219959941970286806307508125439220124252115174329393514549340780259586061066205514169244073682767792752326871237329191243521637602446224810169549101793381409489199700875001763006469254879426288021984857864176844664262970727029780795020466297700888065345592071176804151225154383194964839839178828794902979106703987172053691357487237253011090874384946920199117071529500246097979791755047513348899784901900938873710951021783132640072417332714249694072403935857270919105284627104015450566463432513486955624117148120551761554368229544000576089465062161172324747870961516539845655293830014168321525499232962000725893014729454026318148914144278181680420024231049869627812093319369224435041099841588783450540592065908038301454951282133657545943419239434132785512186520368248270474719039454934835592397146536104299066677494336100333486436838043008083047036523036891186955283368062209165042203522237256271491252671763633931341010972393703679817873406673194692065425868698509385443951165579818471660635406877751834495371727113743602866196821667915851122904616997364049129453966151791530737940639043803641345486498271751960020248789234550453719044533208391141220704597824108824417467019472549116122083900937987169878253780014605537102331335279158060424620784322900944559926883679709738704315493284446504089037364178261187637340850266007999587320208153668107044678247516210983414212062338600098163136459119905492948106602545721109712975705144299503878126421451326378688936521538943085822685740380453611076777377737835589661585387147805478959067754783734512226587284197288299322378608360987621130704106253748499386826854477765707849109006910874297749912511610611527353111690494005203028450595753510758510978385076756336867193141133795793625757973116327769783829003845518625129540382414610901531820445161933355723932220064645768140370505971347680216018629694058514478926719000903626926772398799535192110620799285626745837545432941569837963053497485691286509235773500795568845639447129559898575363338842900840373963740078806252918249757716159924512679016465002899795948982842830552731191099793130146042723455377577063788038837710240548128213592450811055111226053714268869952946065581614989700208392678255528851659225115715924581002791612459340729523193624519941980346781006290800554818607220121961098446635438230795345875068357324354811700819783987718787849891357484535793824520982683853653446998791468093258877670931716140001061860192517390022455041597356212328180034376007800486305554973428060255501426627241802174478494451628108353841315915933913988537808803669041819774085036436546577605508138338944252387703557456895384278405153622172807462776218259571352708191492921802186207565788465441269227850135232387948526702342763831693551518759314708467252154612470861985440187277464771177604590215891029448442328323790642041078144247920700922837858110817488075405079676204584397903654705841255269513554306945356745486414780848282135730404290883003956712758747907504512517339131773505961016037019124444234772260215147441610397990766499848020171957170200021688439057630516050364714292018624559114539816785376900969273151706629369763713698249456669446461861507713757826960143197487626432948057144807343522688465562021269771874202383260364368523247952218027294591811981665002329105850503758440093516260936029550746430202749776769461785941147705254337639804503749378617083832478333999250099304746283672785802217335336465772154922266446109760684251133351271913830491499997936904326089757424432445854278114601012095671391211712222084534862795408414341398685043031842271861356347393895048496784387357505475479314793922534049716218469663378024750736767844669676556293437687091439379400572848544505396340085081370880718363958589695994938653428392590904139152596617423695755898074168657807525700769548492941707564089069449422399678904821535129903743783137747198922540883300342802295546097787060788908713550102265947809782776292198731101196804579013024926177307699965197118796571670672859332341265124928501674949769793959393011224163993470570705852935429736517861839561203255893620412847943513756750152805662307838649136431977364489221510627731752697338073362988545687683381705732862572465845953073931166112436212310348554770973533007722646238711335373274246052689460605753677737522170427698495209463456882440317027831423596745247206041470574261861795326710272402727375890803824105665370717664536182117331557871400513020997060622988831994834293295689889151596895080530762768128898151058825415949282497878208980803044421207968325246564218133983622172346782804014249722132911388364385031093230291590611013587153982070869489131036036918156500533143960013702226974888268414144090265779189166665070132483103321406448527581649254316828610140903836739703056365294390016114843120803888272715950691891649468485576594371338829961152725492956933145401060859282737718127669032279135465060631642211496885143878489082241772197485083939477249609530919206489798820334025103597101565039875278867288433625606774646079064050616037387807731794146606619935496395210041329867760240344146466375686488550771753974424643872703294644150287146146420807703780389511536310072716089183706365834139889828666661695475819477817657766483186980767481735533246160864600395658056209955578250797029889419439835647436195733176044211181111800787027391337695498505040341218166348554017257126264801506756075263399468650339030038188191723007111295096744080452320930575192163105357700624887586567025541468482767995215215236506446085856319471922639529155345202138207759034768130689470108876941846456805330852145604195364712748774339317250745610701267944005690381000060450279086879393537524686736405770490717268426700839715769436098148648861163395380812993148321363000261585377310106668482625502912180550212436313876659753579327563276554593235664846651323033579603293050214637119894045002602643987505349668421339926712444404351419504395688112647411429411484672747801460728678816688343262918241195877567681754235947220397067338026268639490015386692723228552246384661704703467806876457355753007914312991483225650707288437305540122434274920509432753671816976711581746910569105861507780064161374335563956267147494357878589771852448627836357074643030122359248859408810582569525406282622923022940313997637835915581450307311540080724241325462977966019713209648020883042465906828874196337952205899418225670434445118519399339387497729552735216624491112394397200723873722094399851363061539661632669238465204958425122665138255568490209915440421274803761102035989199111752481201165122430834601498113808488897421134335078733933813067686821927806801621108085149844369011567561170124629739230439450071576914730057545534494467752311952708360588543325847800594941848946250113778671852616311073577173774085765913880737192648901865949366207253868759531484967061561257687407649020642784946835514023563380187434330871285741359754473011753853523786186834313274708770434364036479012249665552369398177983941959334779167925738945004371672806706530447605514951217530347156266206204423202329044883583424764742665035653394532163972655892830821457443675172750153196374991233890827448824992236931700683497745270524898913786476539353480132896219085117009568869707711199402201747931891763169273410936831859226845315911410433776816470893050788513451476405108558148634978951171564870695145854044526567351053696148740042982785586645237254573950528844967130861154184634058912613367685363619929179945712844075871225531958661355707527816020648877470340377513049838573590721111930580585163271640128817346276287205737031063618833176742697675128199365251083022894777568131674058583626533171271885763431649021676386717861059840691363218157267319052427971549839403998929721766723662936475305439890956139954031115299369413243712083434230540874349102761680933393308982000009859058367190413085467179349011731604596639276669985243661981722783521189456325892113649156618113362015596116374232564949933973357527593397934553725512501592828711494328853705899710052423312045825688546224596825738735910767282488641697195209255748463898032185489851578594324007975493034479112747212398382973064628195099811239009977408969484467786099441011181511311737603740831519416250053666443266564839401470199418349992313760273679788583302756748155404186655133246906056692292895070427803413804040978353551363606313613012277671459006330450176641334379022467330368736974776040478210975360298632891549356723966172831163800784788199642895640570241319665251909844135424646830500917871096092673500667638963097119170436240587895958199727550572668452986792286424642780207580818263201595064206884715527427123422072504444000105817901860264209167567681864310846500397663160034636863241975724320808247655789871376856280519787671797474488271027735050498095088166473594718431724973978788634472290882749321830857272459144175770474278223067721190678267087494456693761751001692759800862674305569722329910577284310541237850384967183781387219543826528290795338498489250334227051173984110944659772322188343036135712699502651971512877263150594461666193687081199406816697354157486336908898812723916643513253679009299597054600363811816542297535236501308064408845438372468369608667765830525259599887377871984788037248970965170908645737691604721168040341178404533201518362773765094606782002921202567406140650647162752877952097098012591774346278596439341745756962702639713023959269361502541682972109192415714788278171281925987196855529294311364889636114325413513029397767140345077094355082910088086299202409485939229629868711294114325873812820393838962718238944965681090545391252591983469088675463358262476605230638519525189790055056277106976862741662912617115297545116437613022267469160674958920966616454696805283835873251056611785131556729719526025733853352565436216523636992676867594567362888979089740524496499556458946208348371549545537029687554711089422138843426245592921283858749202702217405295737567820694041022112711628011428900121287331073017473954493589447833663884993290543691015263861131494292958424417519054309035773861536880449859043746900037706906846545140011092413049481082662156035612722357956893044309188748405369878344954871431763972953682857495929056081157940687802116735796190028239682042800594559969202051952630988665558289698295672829411928111077696720763027256336500525210053880367608335403668921978288522571188416036610653281484738059705332314641034071630872037304829357834169954153031743294844488508405465740596424367936810696765102935741103010700569094430690565835189458149701758857646796067819907612083954962047014547621540609384518143657844256823646787048292159245560059282449583499047835449790151445553958338833273241167267853630871654853868409724768290483592275594902379219680454190074805312045675758624251553965342902501319937994038569219451919678466358761788936094721943578277989675126198315292030000431358721851015673283280080924155828994052059557827087308121929086346313507402029329719429672835790948514716246008230848935980362775227000380102112553084172038614746033134980267421700776969997766233773345644842482050487229898664401210136383747867783481341100046050446022257623919056736706519121277200822645920595363991091102031224888334404752373009298537956470709308414664012598321774358912575381045072277087665663538726243937741879697958669475165716875310212666306732742267872189083966209768878095292284054605017193275031104541577019281577325558712510381957292335899340326821274561644020844939620513119329897715277970645982965809562416339560681588254747320762493947792422560857202518905620373001513354397005584569024010197653303395282415821938140843448082524238370932943992308466843529951349354084519443439206365135355568541977371660051780159677673123667202932945794387970226861745007103230464793871072725801629666303322333145459001999334374800712206526311746949548883177438733643841245906576932084878364377973308186344244157940660815975102053725558489896749826444416561468963547360506561920641033048331222641222257241109915959848964863157264722247915793935281745619035681253479074718982796136863729792229516120030296098478786729938328289147739460874873359139111594590675515665009909333131540233407848047669403447392488939049346638116291237055163570138829761185597311517909001522247141332749625556083594455327638759218123779372319613253114042775212789918892730652760776787961748160540918848661721899865379680754702617667911315184089283727248600138028120397445029337556037561387579184554649180324400929802794922587593234391478183706504175127401213292484361221833481791490654822909547105822473217362227565115214678904986172964882950569616870252271237450558353315615957271877792201542603116499997750978283180205715310223316921863661935743436371480144368911969739900372052181124732194349372288219119870719828974538975439142359501825987645547294067366494448707706001374835930346337038725083457719186519783471585688849107570798039652071324456265963441844658045098282989292317304814726719644114160683237679922347701129515535259121547651191506081380921709660321934084870962309741031215833658596260001944090555333150211369820017290059735081515438537755365391133415972403492545697735250523021267988278822956552824172257338640845969625507747629956190735327662432578361568941498955019969341787122517545584991904050568951948223549316937236503631939443292698905233564186386870591612650063104505073326165303950958188518096979479900829101679250879326244086706948180369890777306740546793318066855520945621673982979828898846031514299520566472252210131887707391417730983351440231507854448180233181122364741713207731572571541065215342056302065762793353375396642220400175561878840000705892198191489360931928192764131567719775724214429919866100563062402856702774013233755518602918701703971745001628331569364505763475459920374040452226797124507211453686698376023309249362742971068232514899423128737152927633741230480835424796262925734167977823227422685120751422754475816473183364764134192952784937487273281894829435449862432333891266931623673279029254086990111670760352258678973991550825815276151929433766476336555381551470490633522769726292398184878092281935522122128802079738264447157982374626800801888835992195001776096773250835829544197746322173795093328942531124045423641414801418185483416362529616162555583846014734249817104103220700997759993929277172375227577786674634191576261900579083309499807042196636848408891393611619292375064297098173278970111758015859500229043221619474152876022025570367836433948183616909228510099045917458135932512911318309718802272887916641304890223772101666349439112558476717031212042653160966664547426348815003506458917984880997928411041918800404928027820466675983453393414947941701159486831074171817879251377698852280511624483162477109251414754901211942870014111350497648592789931174398906205133269506693068847341378247294498302292095694344115519241640857423691959765782684035417760220835947988309536123127127858450769026268938770756008687410161478221344895072270715313920957813925431949264054634538912133194340419077841130028838789707268529067789356967271283766264371975025515371467292305775582085107039480226748156206380586570372237071203728454958747219112279861082075537159486604551402027158368553075383088657632507506809129317649341786445370177130659272101012611569703665936994143578044286126902264886166198082067494059505907118538302044004350885585384089132343017335501698034714828921118482659519683576156665246670047757408775643834934943739692288321190570219401462914448412779181818352535864810294867844984777528716133881312711250948713364176798285926117618184238876229297698225506632393038883966474519075634413221170339754186112726776885048296923723484554938757536170066159565008991743053986141578295163519836796364325448910386219803003272290808001850565590653143360435934991498905446103553228262419418712716412910864501026237775644209963344937878469236795539646508209224942796887980355391735591874752592931344146928405794993665608821904111785836753473317878024729687569869626440548414539161691314942554262214826585098256963247648895554752186109753344488429417991425868107827010972006104978922990937753931562581209003199108410412865187386420597747065506960551637003692867253709508369317486106922840027053570858459982228057243643919250726952868818992728322298754506251016808918177022219745634237876428366699890020727829212482335628845630912757120375306911984191133241856787484948112159702292690635638331257136160410317421939563088483543812435337527775700469264911843304967543229960190383235601734217529774549793680811791128786486829092990904289540537183312652747354574859953189457930900710301632532061558331029348871047908802529587421642227831187973851761212563516831566617860662984973695005614564536844902540166294016109335222270255916482620133230737640563862066663177272438361452102330844918087169857864387955495569109286083586298602637367112292467042301422581192296979882415290245454009741877070381649762795183858069028544368153511965230273697229056950001380870175152272381533500623915487005137521458213131803092171173970744542374028278650964425519563658984064181847376549342011453441550205490415768959578046015525204865436093466853683490328292068913699710895979592505326218843617363460208325158015818001582434249120096377193935411462215256333838214808628636052302471829924986528217356008462633013122397590731066307178616944660133297167705748926534252043739178894009397823807859429321677511918921953098403638511645953550305259411271904601210269428711746781521233562106875058301979878930791985263403290045928782931360329462198253800221307298344483996940579047551357848001268918621901593825391864483054744245308791096332216913763844467069606063537228592886836856903734016671224748044836478027559332607299039599712954108715781842369010170163690445447518690392025965136435697147290177917600762582703957914703577286601940251166604872960497689302032134694090443250902656792503899230078745932182714385502271074064834915394421197535475153333503539224632739573425962826824610935566333012183004505370344449359957270388469003712715171425369076240922067311447919217378880026598917953424890868808212075475225193423233653832578326162757481939427915656725078473698356331804908209409530316516343113986770014969066160193132779813320044141648294548368635690700889827549808568519110796854801866192485626497796283894154157172213071115760459774630139006929605727707122044692189399844883908928564004458328148860033439849083726457010199135489224010763300189062197262902077113119803928668269345295564081955236003179884977145662293527815928452047046369247624089462609830634405620635875194419713268202193507879882298164736059430876448440618756684480392165024434625647610701681554817492010164948554119994055073315922355236472599536737562190885552671817158393240987852354581385387699755008399409224172254677024448366073304666090753223828938018723148048185155129396496734787070056433415271148106761317734930754084741368045525307648512738361559249958035945000479233150761472831409267797890525999594905273182210956261571142552651211371026122772834010147983549427804265876043511075772037598463790020295228136638352780824653525667362460134472097641354922718960132895220724267234423235308594926727664456835823388706405683808863302374385250746521686372181895424835537718742796571190252994839926196690733438631257013881014723536878086785556106262061264976668626212757069459158014743720215312840764455241684206884818901845442038365339954413751657129472565568112624605341772480453353099244794830534660133500599029362213576733208268583881366268694484474888731469522329781941815675280616295739413883539712369575871541956267627624564825396576096264476977780055161395826690010347263308867404480131198561059389311501513648593127492077169344823071118146229090448236876923795697554759485175180940156251100512896263200568615566433555575611391870797069072427902709215841698970530764477172452272770632456484348421368426674008829940082134645982227060380648782257537927543123949697598063355267324314497506832299589608492497766670505075469492090582011658598351074174332953857440442663731588438021765013025062243757650709243812750543997099643830921047370393272471814825690835486033508443814837036203354079936640569029603495700794433186614428528403862588097107527447969812490015714838190100439618393280643729079939297977504206481837979009599912959960435713663502528083570025622169690104792217157154087797252858335018977752905868200900877628792494024671950427324810542915952175342326273336028859182407118127187862984492869009050761468364266520121934259696192860196596921578664573303828013149565185263115257475186771543672178296858605096684588819886858114139921332054604749721343964728601944181380494315568613028961240199914895847676810379916737679276387312007024979911674050565207095509345057281829694318810481380124233574040919716012612426894451379416126543992009738443591023684302778976771953541583222435176988221259542188942392360580359039944419664299682959210749066046497330850274882311004202260501181685780604292735099478003468527244386041823666573778231832085850208521357952613632966457067466436752074524058848547578133699710082246086058632400878639631205603500610949212748363347483048367821888499045869324060483160543029631980522646067538216203564613570411799798823254229633631685050616602019029667789583658402744697027907652013564449086423475923060161058056707216515414897135333178065657348055117833317114001146800541961147228431994340765063452497171264054973323588902313105721530475105809602080982839366636243123537526158312396244005798363572469549295818703733503055829465080529333919740447317513113374099716402311872256825487710134319342317069074111114254020577726005043890341384673984783091750074094502937387117456573384933249172766160482160238646259600442256437701733999534523800294707360016183047195319488997032203052397020691613642808943483662204272280471705249169457471028177180407638526666649385826950496891546319109506886051696663460191015364546038747373545010896305531150074429112854842677645836913114760807021541917121121095171900633294818852618570247321883867266009722090786962242028410117083570703883317840276572753925981461408410594143011534110221653563988215180211976448314524660559175249529590366067764609841489665151232261472161712983323432483868777731558159963204229243448636839441039121895132772517698010509298810314690408751771064804800016789574680341460554173436403368651075197093475297795524367930134107911720490594229571417282875532514165681903713541389592380442229980117067866386328871293540395232233781452430092376385524745394404026867437982114274920432029455174393388796024200654635622483889239518648289662452030117776065755466056559953818625647832369679535745364688604563206658024036644156869137665815426463804638598244077494993426478413392357996570576224687892417310250295500614740033189605132130167973085694058543952321664632228427470980175154439241959253581040490637107071213107774155665383634084710841042074817688817659776135865447232201462272331719384682374263444425702419453532339316646681463316577168750209776797184203718480337002457717454568978189333403446822991520228856209038511838684774462229507029878107349317592902591021909275183939963623104409716288091222573161338767530796746036246738433552459200129769479216385046437498267415313913812088406555869919821049378931203364799025219763451640562984600354443774986628891055748292946012050731607758316945264678080857258173619278989266151923236441669395219793343968521951705086386532363223825842618595707486435091689453309814151339823934379877066421041959406360620180241006807790664386428908771998417947337420377990645188009607454493778962913766233688961005893003025064816396869797024654832483137666690938899236269322914765823290398917184439051098950783687723040252607054627113878800580759988346116139977465308872898430077614704046352583235024478370702380841060501065406735114780008154281952665265594998902953861718349235220396608587161778977762527757098398460375932110219465544143246146273691186868966725185127465487009012043240813678661051871646588399194177113233777312045458653318902123055305127709107593727908537090583737691105605272897486671039203100313508603705772465965823150481110443799416442094698089483146553482519856686724736338009275910823414228156822938977142654510677936520329126252925796660054023272129175481957586474708754349016411244629874118415547716706187949474865367231662080554392833821057271385270804812281173624088282796353930918835745301703278384697815649872115963683833171393406262486834823313682998949397238807828143590966536728345266748664264192790099646195848582033803832715141502929693121395966707415997976609624244894565439075175019226605413023323852389289924798457089964439232118525963281439382022891377248803209305119432874129831016773261050238265379731594012705220998918342334817213462783323194067334831220925602239579428007969984974706220775392763172885218737437054222488573156274223760510064091792031980907374875746524665772093211153385106225231457152400336712427103166769778402581563237168354332779757951167402782650694078812786207866158976526346125416540783433976100129877752411444796385188411682729801087164197847707593462564222728174992354062276824500974235570926034128270612286213052523136189583496842440003472796595343321999420886637593797602984004982439552579830112973440683938451134615974240012055180054370606652726095744673818751609303425717852742822705091743505691758225627753093990758821003482491788718943676524650745538315060702727661696094308533107601888763777056695892237700059455628737488848105825164918049931996197748849553646964424717482117256567225011714208226853681648820997665877604936993278976166891774927978280197893848732993702509022871153947206342759720191284242346255526899664018764839258160019914119555977150669600323764794432207150974911934184740934950186976686223197291827962886862912782112889213133869201782527364707703407881288709585888725637738761913143607140355061778341102042668500805227889165639718479285611603924424175033808241590096220348436084071570506134239133165369169753050037658117015157481930351776214338999849498831706590763817591034524730410558846304964702995618605911252585918446728669836526219912656647931322070658315904953496060758597023334024487685678603955776549198915023231333902735666597304091865445482105941691125092795438936110611678895057712220175614634149723030659961027994971215002630776734357518623524002414674081390314392491786770014972255799215907008295917818455296009481035874759446166966334579709136854022139947215589455195155555872318817237520955674120083395332250573127064775941448716531915793286160816816425159696823173384042557723275231541102450697445280279445414562646618606962063052923217300645275439422809574023828319377767102578254628506532690784149469116935789160193850791451820312134304395124005621549134267390549213454464948300745967902241480777835779497039434208814931787763272978614453045695783095506640523352471669797672501088588642422952756849440227151376872681313626986890142959055868930007409583277604332792217675301415046750172756301570585831879523086708346883520797196319456357889298505792796573298725722511331515375487605227185274566563725776749939206251739263314046945623330838008438757433754229287618271813151872615868685247177970993579675688597788638466868580775227218483178710946624113175732124638681427909467365753578731246183949745293261568219017517719755809738149128625744193560724319141861776964587836843223261448674596727574597722242043207109003720732843309962119404214994901408562962456165828911406581614509371067018343826544157814926210284073512522734340568937111807139552495553990385405889707483803875821470355708119116795907758568882876211429294974581792514929572064023480513577188379716873684220993414923555680520460406175935117359317005251644851875454883186036278564600653077321464160897537900359317223566218854797081168623206616379658658313968495132656842959227208486998247002419131495731087883526480445104140708663330622475691325049119264967197583617463710924202670972476081746925263907009707768090092621390067158310491689176730281215387446235924485609200163394339984374078455780401525711754313239366921934421307964901101234872859607449910001058361571084757490306623254449790405591246448806998049081705255172184177079635980713379981951316944622159540504886744924748341907971728383973202074627041918590596351487320729591665025880850748592268094244896086362006144728090743888675995791260797406190651206337265112458474127702941664471767885562892274318067593328466760990721596392160607160670928133833143494542124760442998978103723016756130072297479543742588391206256062424890937902661969590034166388104908619747347165230445473677759175196192822923804263126525168958107396562650432877939250030990261398476227797513477859787626367205047912203043438064248327634826249984693245643421138595701288470625988345718239322151893486130028229132913704249529782999033800601826651225888425366402789720264745436065244247272479830726860542437390151004681843928637681490378660602370745953820673850135784764619955383960977501513972312394881017175869303645842866198317714786938632766155638003841316251481533591707278283734847097266595276554759085665282304591393784541255022541847960230668827092703916642812785654175722666225770837638597835224597707837007318376464804774649006910325692036813394515133170428643670714662206798760182875641296645400345737150379792035314456337494171431766315947907784707008530906787729007017162013088447498618652989978168702398423046750581055394460560411289414245877031756776766888486365257930078975146869304892802814297196083081058457348925043415752509331031115961241885770275547315291477310749021631313367386281115223397604061137008612498121753246680628516053692228246853023851223455488233439811723797441486789302797681424757736872723672423640798248000015445832340124854585966624077305692164150990946259912500380215727306965467000994336896670664268478246613227562675442179234836415534958962170316359330650917134412879795545296246771560146752575164983670332005515760203119190963951463122804071627275460464105005080800874512713012592704065063900446877081332568960098437233831124476768152490786744979182889446440996073202192763126023841708902886435444066112646679030829538428651542860520258014696776772696350646201734951994153297088694436951475423615230353084184287163308264819598521775728356846712590339376471006393961197265652720649597411383014417230009105847821573503603474017242706573352362468974241177470834926660662176143313241864740505663575638742016325190250902805529903905615215684176468477607761817937323465937103318968749952365843860169392683993084798955141456490018899839472425916118442304007431688874193183241735711298661205900844058017268353441386331527802244946337156717101560801747765782731097032289188012934285269860347032584504428791121940520435241186347423675001359157231031859099448183072600439299378940406768289331287907303205826276183993825907315052272270588255844695969577649794623183698885517323810861187385374227594216002658160508639495013307914889976751808189082244185347933270869533135990465561753261596679486154983270718323759735967206190590952988819385437326416561011225637926654714061260647306803480972529510698711437485553001938024664079384762781562618164772206049983375637490836961956594067598694685491735035725197092726500620724735934546056489578659585210964157189521030215956917992589974248961026238692664182738954478929516582578239778474261069777987785827412321573939856815159408099588645677178727999770631003250790019288005789858196765665732237681280949498029920871581407156701046387512868790923431782495384802156669121296354715051085400167186033745853877017163833475392478020930231456425602376029091904980346043420573043898283699905494351493301451462331345388041496602973673964047159763356519704292946750994345982451552647914091580531342698242262905465205628157443068521776938934111364855462542473388616122858463187497109300300760336759951905180687550981090596161779903902987503849479654302935989882826370314971688428459480528550959037444730434160282403586272395838819872969413645517833202962554633833864892711732690184336458029122781461091178350211427165892753289287734741972555372293420804163165198800503507768728703469997877988944652979365888044003472393775143935291880569376718856853661258639757680892611287915040924632108528916590450237610172307633806540643954540998157602471760945929149297585937427228379939990369776135364989498067391137177737039302453804718083460231553642975570684776771637836130923772032731717453464061131618467725248758212136509001189727723307443883660065687469193227079035734794221612555787451529522735425090609402627299214766937623609307498239566194112899661794010328128442920761407541011467884719716670021458278258274781353082695654031141392705562017607224117543349386876326643522212003995205758056235285107597470941906062868630440549869284600584135552975169950449592901343647225534047799742945700155827110495779816712518354472690756523800153814103945393688715120219384958970565355569818340911633739884429687644323176117767221722148280494872715678309350192910322303188466154223666893838487167680858818578448830999037240087621564844002232785477496604263717132509560555271778083172518812609887263511122557661264194905447359563894444260800789691974076000931581622612797425025101429688519268010534275248417883235867104352594236604463032141666587511544686241955596045882653270415008930036186682652107997526973151164284124275202877676122828470421121078954348955886936532667876628937854566819565993687661283712171137097323049852387746738481456641862211648748454847613946425616396542423136760407403529866025672769537774659930547611035255292767245948600926870731108079811816596440700086436342894341767289219307520809971802187110704341736177344312173828558686124305655800520595312504730501948782240950951372131316386749596175859335098862718855230436864690259964974779444309418687025014859965909109056692747349912815296402576467206965787745660770742576733554884068123090612081733469471966067891614234671270378172389096614481352199421589190160199485727126895101916801568332575943671931814350127199057844381258164171058176217894341328931401015389930006359037251974370732629664786874317939560389685488567526654831372209123749102769480553711365432593156812959869821291904927333666573099033200243304825703656037105931708802506524795818782507593044178482550744052998081954378600947785785571428929778854342601674530626577634872775191871352197078933164084810546635291169928300083506731086386504382914986399960948031789997823312831435595996129541063287195147757156745810255228048969862644679300420768069802844973460549357073668961597163771974450353867946789140008637336179367437802012103594488019379420125217478139064899841718893549756938332319480984507903861836789172820453680547397270270538083247212132078912569124440203599643214387997912526883059629764466440684450084826692932548923600498050915406823631770976471917084630672665511196026095639342026302275010059317431560473764256134521615182599537227692799338344873329205135310624675063978233652453259353841999512365397786664676348130183296444243001687825632582462475968923476781056129278892175788039873798467961965669614486684415033038575923211115253889696906700149021703684380195298375062899819158228383844056397764837104059005832465142777000401291544947406777164639279086330917485153846679089515820046827100546557037631303643311197247358430504834963572901342822482512025472755481011474678289575515302839160137246712666056850710501005784047912282274705353966149150447252721092576073896303428002520429468807394401409921772385112747860387893523896506663147263437553656656902456727154759590362338234202799640539940134281501236446461025130634435331784211339697660133671585031569098825443721319838607868686677519571495363613071920289072715958579252182899300156978080854794685308180388105748437019295213877431000355297321358735825711653083374162666335771774927145432013820860974196911147175268184706994965904173248089863859045128126516488441939402550123825213284210172732522256696336695616280538118055155936278944392471097145901960015822815141869911440098523897699592331602869524268773260081843086978534283388057588750802784669627536208153487051997326247356760410713029982283683521317512593249132055839532487373265156970993501346860400865501886273239025956597800201604338920279362879255737611170391074321969988771208671973755133318395905077076816501188909669337454922030257209851996080311161640627394599938548554205842245402770442515474629958542944169173343398886486527036113146287134022029529494975063997237866632785786607567770872784975669181854794639596557065762922891760290977581374680746310443673318260847980474770107265631593741488081547841195587365187745013171563252341114206105844832208228814815088987755731131169837701613491772082335353919015131749395666013124049331269010279863287629084097683042065989880360513755140220816757862173593804039597722206740313600113468752369708022290853355007043330340931903377362437861666227303662107062824780549000272684939561865955096248524124560805617600507950068407680476805091799675530425632993681883883302062025309756559200968892513437309677085427108382170597134397709158240634219965202434593924376083558469957191267980467761349783352249968035930429506551074484864640442383278560465166711068756067419785237398429866372193483347879002731160570816824019220869860060728525696911468916790303297474649440211548251844280433481724922272666432149957390353574400694262045472755444513342807195473143632582152401305581107590943163750752577683157697223592676990432902141722159484524130760257846256996362904630745914500373134857885042517541831651739489731425277289772854133003108462986012803956178758569181149936679822087147635156432759840577749535089008337758125759796386116613591828593929021190444468138686173575400648877087928715996628805716011052742329482242964211125544829095625105772826673818235716109844689972358041875921202580443421536312756893754412915445002794460403361819573282879785797442927666972174131799084434414587604710828525417740901715346165142042252350405807938950559390286680267353363775688160084796872798128719291203927642736390653928888893023063258107500867394151611771253176307012552261285930244709334761690683599734089925695834353168275556252169859267360698425438002894312051481505707759169086466300521688778970434836716262856677937777290159496118756830315019085100487356950104107224984095321018761636854005797288478998327290350306166442609098088866637948887199943831984866423485228169107160842932200122037136888460892697513357993098154021504796455062518685554123477961286719292638049995319630869351441395563153454247650479298755077659879561503022552669937792010983162089055177887062440408247288133156326728117164514674790151707030979521785518200434582249584951894223739713604879534326981381223120958072040056652770699007558589810889673700357606188649704994486051846060186671600020317984786933964104040222429464716028254253796495912563698834248581445659945436074216026714166599388875699642403945748534589149927650408454897813559845549756577503511706471436987282733536249201349285404387417863374990523243273837959407649897626543663707794389768059370811261428182935848051662500011789960097665572378442066028903861951459528060404779347190044646401322984475137481674615545682588989110781386927482572456407893237537229563867864241306476972018482054651398584220015108276313605230857967229129576781165589645772699328905360888679009008500595303956503325920728123513433377513566729609653486763683102593364006323404766377775077863871938651033025426635250962611473503468874763535326274589157226254521864155359052235743695533458729912205943453558321529400343307469094830982487579758869063166820198727651247294416432547727635495883776984106344303649868758144275371646775189130751162388532636652689652741117436207047406560279062386151988170470918022737760188046660918560803429707460153456887598148544305178835365795991387274796418077261019353276589406882367307361087590360959603120232168972164658733807376312499640157199097217680037039730340713755490330645835826176607951481454135785997797708752656682995345852005504872614316592902809575805073118820590818390815719073270972125628589740364681394317356337316843594561787464365587690780042495219967290380944006175494416694195161321216424638151404465841026249793423504638163976102782029214109795591176784933275658175623286775888002980428326119914918473647518140376488801318483992095316498380045798970341129598995739101278407059199774245640285057113190765171088641420020860999435758350755753072670064524039056562270359490348286887194292797844377513124115417404492765517387016572419991809595975683353519069949794016806475816734464338839905904998522052815244070007174119471990294344651098066463619852384177509773548555519640208673260677467926095204177149968485867422878571291679982466897487531993405226331642436711854975627690484695430246300729801083109548019135300464429599642686355095311110753378635879092561458902616035890004416334234710012395613493130877655024553404020315916942608761483336873148645082158822420474684719021871412117035802425945115495765713572003845651818082870652734812438297790935992293382710615061705170130427578481287457323660475176157775622744579891893822085041623834041963318051497266811397546935928545953250196774771340832916454887458735789394395219840996593405294865714293639289208010015485522305399927655588623563793697163605699169813887590249074834271288546655852961498993338108979348683306110279485325300113221033776418244105858097457767366337368903476491440546915544604728799670411647951974975801681140775206097565741291285338600532188954809835217755354083003533162710967835619199763310931779828961837309332396258473598685692057069820863048150393567348182474909545506983684376483106397986741084057332421843463149377755865203106283779782063703946795368958593483716792903208946366073991137048050668573093189732467325925863766910792234265846988782698782201396397888977991905527397456304411148417904482022604451798004426652681517844977456896510145300531174594946133745272285295196889007518847072715112423563087673121981844417083917066310206388503447075801321306880001832182536476283308741542320132718144321154358783406118365092500015324957110068341860785270229712943519402285839754555933331096834807199750280553085398711826394308877609474823431567774793961502300561507497839629793310373131277101357270885065314052230967149043175927884718455695463837863431741947263081093746441717276621835817923537228984073884945376726351655519883394875970587629627793277426287715554979045893221931648479145431917149937220694011286926996671831351056510806786237062850984218286762431740309752432902150830255972102268777068947914756162341670683835774158387566156087522931382964904822945398246630745394170843535834097942648935482120073056173765587910179111784252216833514902524144464402868676355084832354803897498634265720195420309206824600502808666597480134519235851594990881800792302345637751240184819694883721952326568778360864083453249577499421387311076475482482924509343730692272203052435075964322313569492483837263923109820525479684511063622664885077966404746547469775020768973773414771868836249846130464358130640709914215437239320050482547151814475619229431890796688739872954993047737981647894680127616268067693404096689687002561619281191574630997804011460498473388962919270208183859026055254333176097550950014662631511816151746137869792116640816246344006168955522821722554798045106873132083935319657558260336600823856171805412787631813396268623788136013976006463477691350337031725655865845253024282254000478014345924921794733774289369144874567965001787743389665722168260034341567827526701052986812778866496058556078392377523595088692898193943692472522752592718134699011885031408712133260178898290287465661245065809971067155603588841633404712528776280965287650880102377741711214608909165132495833038207313937250724804041945700721831800136783892747743517097461194404956226726727451635594175422553293157111834387375276907389054511222777265021114022259682858090981725631340012726855454989749270077852319452095608340328503275380070807133021291900972326106134750267293467708336318047760310282723446609719893591333139685053020378741802377213165242271103798603686283520189786865575290866508707711866165104221471521540052035237822591951157490778383716238469915098330542035774728639586543816788341874174065974671768291192180807155385831787523178491280588719067604190321287161094241983473043463957422831431114993464302782728749454279088284936362286808903220099870757668226408464313506342922877870075842799854748101743545475693371707498375251136739514436480788794694266773284452578947498870845368601839746866169581338884121832150553450603902289888774323528190612119617905740616207501186691006778338259883991072063677294245751634560498468404771901305680524468824654651681598897133425540520571974892751687610982267362038830777452120043604580226469011712184344289233837645826178147104452592469850500395667906588964699891979988318312588788139854191924449117273444343825057834568771213675354301482922977745684131000927161859496455011285728862556060309701784096748420558247725211297623425867439088012925075031566744841760114034651705333991691930254194961845870965043132097844924298933026968545605217444926643399608345980262490000838130119119308604869549541257034794657892057449197011749571973953693843299790434712042918542857910150959058708442856022227265470629193878662494660468973538649030245260883433608495883288579769107724403012151286175533106725229027303888259578019750825698450514546677228375584495217365648136486904703494088036334861436231161549177482803661347260554481829901410523274721759504907189416890973350296699545644254034000469290516424110569208556066503309847769099266024500440659532274466955109734940601630333999417519102438516854945731127726634861136649039712891706450512489711290897027495160108721167993210371607118471713843724875574033962038610639129457597889122151689327669781126741717637725418146433111026940845133224461201870986998114620977845130624173632473721837664287498263750891872059258538115664012625046743199530549304355015559117479875515620715428482728182291897744638922284408009498043477499424409065639943886802893693931929464654269533608239566359858736954238138218972992898036660057997403723629415297084669485912951734533630596320725811237086229955253020394146095088070095415461041700410187347114828369087994606329136709538402494786917273148231492691681563443134995685020178642660532359911037480255929762610867602171891201925181259279004152390739852612863410953646704450038780460027743141427896071166544912777607342594919169936430382097105832094223093658739914063387591707499321237105864457488426045089045459824788587507203237422842227128281449554154797769793032467477729294435719437253405568524682471666559503738409869182042136138618975548445008135195419646448722835816531083649265527748827628214629432777240489544539073641353628612568381863042156080185094610042476688704169730934917933351396389458561240299415538056574534915296619567732126689810258045342682799292669318389576094750723806781719708724283464973053866717808068022397772763489928035439555933118617184620689843030377839571319557466477107676650692957190802937563316088643394898715026206965444443756964819230519179048041673423245355747532371973873208044628231468357237138859506315204889505669540621891484592432084288855871747842989804488759632234571079198026107016102437618255605014494268037675975763573639792784007459274021160382805911813439557781536235087272818413341894507743597556155043680766078577060858013193030983404213820126887518631270243825492728677138712550860092256116485041454356250010082767353952241111173760383771754227914846449281902853015859670389869257375834753040987109022031738985977452192294867189763528005923374738099951902546845323094603398739511302157107333542104014522561518641869100465998536069199508243424224732667047613103803204963398083032123104060041273869548628963405428298458693438940023932990155620595139599983254286828911805462813408349877913946656970958711567696596915128695145257172634285951335771862220481446997954220353861550980785964072924361939273801832548322310527826314247242641274074803946543297384011031706245565028280324834485969123816441682381180482519357132753290764677150405181823110355899631154221631600364921353170759876110222425756403487307048641715416599311444843305264374909970228401658980948181824867242116359860095118019456784701058856792816145396794515125915935316282061165589159596448953188492460875186748452632157220278709162890443837962823282430361533196346082518849388672760131116031356325001407833207155709605694640537167087636833515067660410313269505672299962144368042430436218095857078314085894121198010114640066915981212377089020616334486965476975141566283968972595389969053934735239230820696726053765260661494650451144649816401558011325953704193151929773071865227263257553888476796694141989322084902858136486999222139455007100047687135310804513043457529953971591811868558125033735303198976634768972218917751371095045261321019950617634094755458597866309293586055341737023597954107259311583492162277106982238330818771835486550272055288815355769733111888480074907443295451875620549060548451511129769096461799136444529290702935836847226314821209748666594362797543289849351589626897946369556402237828932812131393201170751945772028103527736364849481055570176481560203505702427812613636872744511757950722165864760008514299082999008405537944052615217908993318219390545752330926606670649206765026256306766758416224858332774660395804197939698453239424278551499113450522853236265263144374560277694939436508790390737345610677786161340025709734709360238917802275448876367401534346816107818462614700042231028345081723699626605313457788650932470840366031677170599015586391789949654368902491594815467452317169784153916656436877874950404083564713984869687696302443325977347154635717959588637247057168596697103858745438301467199189709100900356250623030632422785708187719576230989291066277628202356581878868119824743872412390378453936064864516509654908606893986156390607511751517418843739962954371011098318853323936847849270721242346711947964695419899987997896564039429476497104546995826386954680411850448853446052892191718970341626770589491664354913270960425821064231565724073324112253455698017690690697304409252706182970441244058759365241281254921247622885674291129934539472516131597162469417681007719649449572286972637331659973134547772419812424128464506506708984363139040416877603715565643971086449756071311784573430662460630232016327296498323269412936366703442727625036789068241966322877826211206798992044397032622041360556242710154108113847650756234314070975011624705517756255346115367708296973035700151239502081128820187259063853254384075459018619626340333352799828610552024172371851872763992570984233651607773121748278674040736087105991425642346084054910508350288407309773209276617714866644722531581078569035963664694958854081121938998965049053050212415861911036605584279813037505879916179592818308992538420861619385383948218867183981931264271286112273561561445461532418491856149321077770783068444849002414748980015641848405885506891483898866405928566854396698214322610251775261446889233227931886448200363700304270477852002181529007022478984985505858545374672408676486128575017176124984351882221121695535095701664957592802452936945901956587966971674333445085838940750095985475652632115854983308189700389970710976646213217805199776554101286764240519409234568869941545589833751298037846559639128657621939041314684240368345549115817751624834034554713346619758320826669787210579644614899180418237465191721960300340833507372352990020225263921412180550793122209477029295317270863360620548278584944673467719586267782946537486616123301465761544399388079300705147675457702924815972953869087966493089045753295181425142729017523729410454289112341813677515300915719153153137487761258595897197664663855769793353868686086808482838134892237720821977834095384829401213330034834359224587746954457323247357490031686482805465621836383649387757392944039858896059971386262121898987836160583681201084372059370198196672225671841686844521541091032403726472626853635207765564286632292046141795283118099315394216632132022956419605903619444179141032507971127223415011078098680720027760665193123307212773521633093060408028789229201547453289557491255377247861784996163059497935847088517817435641138145421965298798332167495882334627547954166439194579186983623601982835573592820933018239293797436788584453469907201361842679392127090929134691373293328407089565878565220649388678108506655956442076360159762420200690632214106602837669588631906963439593022624924423600894420134752785704544143065285963725821651159583809064504316186853472504999281652156778417135327351374424759329696172115108080271831825367018214215886271859394684490515250328375728180812662774477090301306990945403251989601733019960867900525251019805539756442516194105600417780817642531476439922206424484857385260516119167698680283473484368928267451664569209332344350394608426284683880247099465739391429686953593398095326919882701099646408108738638947284981173554980450638214616374063929379991815138821105250263265323237868361359011877080441987349440439047274127413242874243971034894409282362676264813315349468409231821440411297913667206295825758279957742180688774175576929690832663003401932877576719615215683083115122270816683972914983114603043093940458973882729636099386363985806733921096702795427158904429309558154770330392635050310472689702642915262788335760519438159856912643525890277078313189710200901488663799632128753820336181615181889214110435095381729524584916700354749047746449654227536850688243434191887600930155354183311964352937434422585551895544159083171095851361922259136124350680887661630539643951631351327789829758125885352322711420345544999759900609433190684679037268186319204526332601124587616373918870417361602389671560449037091285264457527752179493368399760420969321433727466224466892770362837223032324164641424049788380439036679306524372731552495507041633650105127046373160916769519327831189950754737551496205634911362467027543850368726680099221010168755784881176240670561184970992830704766371811047694133373495405768182034739951696968154777185743545573025347922602248369901793121945266438355236219170892543365606098289492297521894760387901094199761043800307887665208724573768059835954463359590913521603791817479867603664612784662468660440763419696927615397790294956582112856583393255371672337120547062695601242678218017135052736232527643331672494520780224852905993432969018028669016184434039647277911721866099684773968054754001700462424705316292490168326387281665876029743152333901517775997419960825569906615094683328976966774065257131900838723019957149445779623442903953717500463833495952142540068131291354918426180183649069929533625774922168246097602949276834341652197839359843692883000502520469346065390243910443775192635071200081044981696028752242005268956782242731883733372365030587766429359416679101221304484743479068607783357710120198540091097336450208198302198953718208847484160538771847562457440704162323133849382825546583938412541656776552659025307617264385858047511338578644549129306913956918065108217717746209919606200482165824188342508051585265413492728853684709045040437987476793305460892663897474703247738510687975721253676959362051867603573176646516527209875641017130964898837707687534559025363307409898476301578161028022575965625219574614204748898964314853111294787128103669711444336201009067020907758020406265923124852647657466149685023812043255805076301760527649370843519172005676360130363437194440971594054967441473982209202254632252843494081094884712704641874310387557501618781021225618399560831658702807558672411597577520031882983537909665057811544354125441782977951059982008369807292096959789497468002614378129921285450014740496056699974557489180574417022274587707822229475906707107259338713305873276220750311646810235609762444354659373735443817637160256917406890972872384702965773376965096179900752884069253396153177669439118832708860396047210235091874004273092949657585712526591480952147188452976889373097193048641625136472004034045558893776300712125553630769724742248115323093526051292143468801687426288104946028265272523169436600231362993122105665026082294632931410115144494893900652218798829118231107925706992983821636818864758051746619103621837549347992232585727983748485624217140287250171430207164292559364751264298362467426798130521430539062668037376213776418535046679666434454996331950374918154172563563794165292139011291000016593291361663566947293895722850413324269798672484051459696255492065050761658102734914073704295700815402490792696863100655138028377231941381407120783210064518574646046408233350946609058662105440264979344262957805031291815338825411100231664906855560241272843013301255636292241742398807219031955069901141021219985902074954503600411355574005424131603200172029626631633682046379611260313734146086188170553960480701738441233818354331521134342460476825498266969152564430968753278518655564885693178677232722912796297145669338548665599506995985831514295558012378959357370497319206207837648091301242503924481332237058770736572077758248768148820120419123710563380604701986563519977445030441160711373282827308090657234823988030904770797767516214416146295450456600098842837889841312262125739620727923840415160794788397615585488908974289575894160125549463701848413950529566815371663446570958847920057046514768585679789947557759406195791655781169333556673717403363852133339045133429093781142849542633745439548244349229443148429833044861342967132030695307050232963843947859409362501352373110046415873668156957940884331117484628744864778589779244586708902712519841585243135078818444131700001952080895046254104264650848757982493275364975492736692766837407647433670935360107461081290717789128354120094878399227371188558800892291904287922193702094792084659811752356315675733672236795586211739582623642605304950752353998251608401684875824862476494719070453862581373033597875786990298821323811247494765586666948580992715438833562123526712643113884788779809291878689905713490596836835781000285854608022817692709979223684078662939095864323780459674161499780818190450126675795325342286299245369860618638433894891394634544943430460755198571907320333537475414313464646635689607503255236806173226730753435572647943483272243661883816474656403333722237457477692405824727204568382787919110963945594561573968294854450497422120279794044164798688311370557314527508086552516099103569295654244177155799175876145113268815682549875724737134026137127761216353376791897670646635536189558999512556970304526658789925592966556610167126094863894292087524088543490081018179114710098802527121198050716839903895999777568326784173600630385380877299512198068920363943893317067081807334428920125041236473068651351748094642144647112714871461086976946560225059100961911714357059011813695259568159164698159713924491130979315443628798281763207677645143738637983767581993278654409074547352225664319703589760815601099269267442169660647478249330163342654484067874336171015539472537373752899984508149961294732334055017150048290286785802538331310762083707307633480243014831445814953575956156304360297526395171114645882282742432947338984120890215296211388061675261628634267947357034316144054414005916367584295003886097758352509040446644078795977239711796699569848956950899617868304938468376361227286590437508588173734020480597397263044358225306102837494341217682865425827380937150520266692847436101866844385879597804262068143757084582284629361568497558987817556702742121789327322302865697375638096887002201561019115852231994728727851341484767791887463220250698956992833817629648788722585766302258113678434673304926477320356911759342143172510018100978998233480953618469194861208384017451847128072566347574116138204952981889243140911449491324599468839414232231929259391273763437700383203097815659984188224962501600348300563296920971544331930982656787506469578735278467083987797590735190885116672899031493905577047440324129582303415235369545803118591333098316700259778409364767020826331110493927164034008530328582684083542272862787916225578763571943218798622478131740495190697421713873820387213519207796765620437102353283160681532672776074982632417664469730145209817982611517521016960679946216990943818174269733689906366517138761539512363266865915013840876199840486716496809963918111938687542551266311922420649207267844013240805843928029336879660872566028587610246162642809632117927528541424686121576817762936111003309701090965320260106254731606321953061479337663648491555570948193451115773492942950992771710918240606128477255733505560925422075072241312651986810340338865092317183824777351835181430196231846398422547242661898409499887731161397377659735614351545090584157233048747801081299391488927945109116058035660590508065353813930533622632337059564515787051459736779843957784397481550996517128334310492706603707010558260738117381202569256559154614079759052199967862182851101984165975947809377904352388975519618816922429599969909564084616501470864053131073178804740301113038629505337595345457992054675533456829224445173565570943410946915722575638135978278653916372094711539057706111416240122703568832348660168771361303402765764421097051317581346862332746056328704562194378593776918086097682189363765135246562736966015409618457369818506479070404715376855339089351905478846525754929630937386466109955794759605476558060288242236240281210674461293883016939005345776217002495604379418121661768872678091843173390293057251164093427469301169984930266076285126719208974836967091443538188986048613679621292703656132032917746401062295826287216471434023100836190056909566429145814463295849555996086219489758352856771366507377336269326656964530459519013381605970429669283042937963126382191241407158438877537772363451717524282013666313490672355245039142352245822714351824295257631471405953344685241261038875456783037882333667115622392403955479879355243674266331441275283820544605806771083743305559388885719480024854637583320863600109435042233882559048286257046046408688081576661339227477395387790092507987442797829636960823076110857497222649525630643003556949457253656278240713527401578325415156206634168153941514165162075086163465750184332458542583211463192548725519729392134551617721668887589294558804411884646038273489501115070225364060191978368777518363336123564541561050557050495679988534525347569686391195607897344085610360041270155188794900394090796338602623142089618391863951556100961969619903071672318283560223227734936748458609926147484724860180155021974864660445667513654207296218944064158047410677672381195096761586440485837210363587696438002386303583908237256557432713343672218038989553199285840733976009144181946159928781006811053968491777560739936168042121125035819943512859707676263572071796917192835620901471252301253464852157549478559421378951260189524449129825405658794934963885163440544530613605422150119884920492960377922777991459796403671384486791825306620343500715406802695330242587585809360643341864153168160709423219892780857094875780247215773958217350547384475681211160320289664015955682233951289562674562813108272161643830513916936351668032126513776650986789157514394965153346829512757742285749403425785607210054837405224885378910053125436676372733701549613017400616435230179796675197455273190455494204853483409744191034490938034298777244110490206942044090447092033252466824592426424428083100751958093239454303663643952173426476384884911153337652326379159573408208602673145172107134011945968301206136417564295824847489253015772867629538600683835502642275259449756672916328176818852329948598515417829608185216593717757901073807335306157822578650017122980102461248800316980379759286252599720331159070275677024542400469637193656816905790736092021518384029709390039435840654789037600738341635082473915146454032553352587213268784972505445347350564349498476737339659482112188432156847718786640058806513302986615334552995433335898797649301179169084128374711001625678088792721653629868252049077542852537594807927213117546521934651504991804660922552538134539451245419737578920502868991424487721784075918475538056347072963895750584835264988319656208645081349407436465601729479887098768608838504879942455161162714225897245132233713089288376700313081697917640094817413905526335380379697373456100652221209056859221961044060014823416023525745271025950933337081404630544595513070940822063973023420657426333464712134043862626173950427402919047471198839174911846149647790872568311121503571672019980703601934720095616229359711510543826814628462641990694138305208017295138540753131544578317081930582630101124763130284478516096490545144183761515134958657950694185222308041729590919268550661874723283694577106384701625199618082646123216947628657337864560665535515626146199443540993759437249778265027228526156128205980223147119096056019843891761765676581012723063110326094115220419179494112924689701565338025128046142923839882229098767458284411076325195325158634856660129230630800728829229548035564350864145218643134846271968096647796941690532839907157557639714796130528764855919405218070110977602984531591376702244524484238303561367109946299654744842254770052529847980076112393652152427369399347409451815160583057013727763828420719854622598778714502641842241576054701699730336533489618193071704280097980769689135794912551461764302661862075393563224046806579708198338702173757377637410185989540234536686964894635554582760324980836835944392489658232026636004264260675847728700994567025177906231978396859029465483623871616043306165682633537584159838843713651340137548851886977821878238629205879204725418751144104194713950651009340816522665434470179711751892175756946903941480808807832648944018054824705666441039733128891857851901081653880936272393592292209637817632403626547262440106609875068904423752254139599259335154563181269191272540926601133563347962147113585736154622610941976743801391479388826977845335731182267656529790946754750164274316741264489476729459045796126788644319045603800735809718008723032426530394872132132308725689689669962547547216906266336468470417338375691517139832633178035485704126514870617556218824176162836323833297761242415265859315735916745003646054596174769198426425343031378724334238487042962299200459388079558890424648755319082361701805578657211562478950054258211408608647335187263228190572753865005688547218178210311765574207443497271501175092383209690196303482201247820615648970835897758304839581233640817479545988397074959666157496395672097468094926296066511421273094828292403939429120241078763450906686571604821066956200178203610075909923962208694835161348954526179060382459546798542634815889890080912112542906609256212539414475908155198828677108027366757164113515534484740467271002585911035602587008884252265026234076953400224891717255576415767905049970787731398405314388183791780611827198597869026267977373695491059993158406455649364739051539782832879031082643133890967742561230226293290740492682921438287199910107485220063772330171181254286414238237186822360924229276622653786417509296569266803089776623583554410588079966867129472590276538487662924518588696474787744093910125451578389937550203644515826066852280518423102579067204583042319499649653202570284834700433113177887862627755136716684370635189861710375333076977085050269743071484813906295338771586970982721635624766032614808598783367590253785273096859670188782707470888775732583471703929959446559082817938834604309775637541192002428431907372549578379754752593589503650556240396786250614823461058956530031116496622149134373589185051097480516612841439923810949851313901577305194070621835654445651222483194399697459684950758672583374970314517912514417351486338127753234673836433068347008711060942077709853015987401141297948246167522610095851660289649428938346056016487011530773471792425116671416360689748206846707568468695513984352422246629410932270379365838822298542830194669107322910684172334896992534264229288753985315291249825176119175265436271009316742074066135055411164505900594357421791824474869305788961659058408222384376543350625423753382942283759087775750873461889019518460924559941641743857124868102063310107214615477425811691668322499575958028694195490515030338434114423732095433415173342457148954471537971306192829611448369684960471936574879224100542462400257402574849344178966672016968452048425082482705091541622009476885650716356681604524618752387348568303298854318073477536709908354951645042730401698462715607938490907516727036131518599961861200951915934495647167834794005182366497200628232124293362178195333044282451442037107015425226187798111400859704906126965550026478960333726765998265878976243006334331442633110595261463243455205792237360217132620881689673693279898688976172274148888247273730304834943368195180162188475385313157112065282036793306160328215423098148751280325430939728714286722799577183426507075616025446572894010101279097494507998254922708742752059951182425336594389658713159055852163120464707442928224187257380692748048681381880413270108760424455799862215285975083826944490011410818888363064654826397046260434310063747452857928053443292689510772683422893644749681553083306413411148314304241948663736070995724784587064616211430744858588825083541115016543594871914872541943954100443255933466051125804982545715899512759144780515386515290636953172371121863383698572329024770929189005768884185514534645380705588718800344803324364282668552534409670185887579460745677741169335211627358953925760110896300159382099698455019825011800733079946667890629770092273762838927979438015620938913017588147367832787679343805228199535428798078340214981774287202641464988431821152023012075582552019695754099548821338993896457097527559086942370611337238003783071922867191791192930980109762708951830710068752910800596039579198770166912482384837895137665728388689963480136603023295989377069349492441700182902675177747887649019574771591737575110065790502777685253525939244542601899339404271713825374778615000089893686294504382891160391526394241869982084174984697564318397389686060839448351126382115192948067432377550206221688432106327549837625537397321462637423951691862716097569024910045581389235021229884495970342741789530004100739447697289937874920296180970425479247397957244697293606193562115349955012656582192923329411415444576542773717066002573233859586142306112931854927053621669885588316089151668741866013926335686640843925236470767518920934138291171524264796438061074661405824927930072053417290186837581523617805127401038537347377250887835391364877156369361055708078493644131244461038519632059925878800356858516575333936865671964872103044177389972882522501586145177844292642923482337733256032071885167524777279348276229769282750271862145987732470398869317319072343178768169852310770460948155599911967446910306499389519001334263241248613107745625904644203613895753801799234254639865733666395959487007733045495858668644434739381748985770904366883764915775533020148144444044016278273386849532610607403017317683554284798752144275384623167428652646415708034344942874248910736170535618120489917270893980774856514295504684355192417650262259347717095248880960758919999787195052317139770065293557206702541447204230955005747279802101134487655795442766163247475654772921113809343106456668880188464134370683747908203668931751491323109094894669140745113731816594350658632194336116279178181345903451809745271616310619563067222391726299070672276566903341389230819116356307470349009070526582154267079638631600071540536160833220973096119574852018648214159391851869547984310799999922670449947152484952429563768047297486173360999435279209280970943112171996565664133524595555147931525211047282955441397303034171519019261204400125343167348069663460842542262169227844404106357211241853194911356176795850743383530792992923209404667996968861757697941334506880887313233262678053308490428623246371483914819868856030919328136621370757426252425845447824646796164068312813680812745607339731593564437939510952478270621562995747682991595443083938661150400162643633376032470349218483680283784120104163565415656263856426548476782716267536971161129554939420260345599081051516828140154800564516917555156849088864933853663577851835644265233924826418151299153295880550480497813450099504437179457252757904398668230795265726519433406125285621433776014197516224046733827527423529403593606936772784335406682666899132800971676735137199804882050263305816231341372948120183524068808771894847318416358599399848485993434506776332322280138829177053524287293839138471829718666537318162523743148113749906654991187681367867161763410859334132123181441109130301363106144751704023457034025683540785405776129192814738788264883456765922117419873636156548781515823440869619634092183716800957063678001144445957775568881011692963611692088779539738161320259444460098077745799815500516031169322383487069956751177975919614928998107895682166131987885450696905902225428716684807556904449597092652339837819435520335437274012331963308222694651006771104603235794891148012221818103587520446906204485149365003368455343255971652372635486755394263458194315278451365003410970284749309001100442016737481518612581976815702649135487559233141999078819119589824321197188891790635182510970893818874896786016453216683822038930025938018958966426068556178313509723573955522104867754087552928525966331336586068572515130031470992960661509222629664652926088895541206345338924025775808469624692330681042596372615883070954941544462053611604916002453956810964834567595492152527790468924768725659411131289294365363903784664282018202122110764592575296974622367829208204447816392249271632929791625642979866650406860400341669924192017548919921587481509037192603055514790987061872281943195814071814196526616099115267836533623661291943988426698840510235991790851681484534755536192312461648749266868722031964367802560575972158250204573236852895050182726554539696511961529398644336519209207789678759922734947003093789561576842857047049550488834033827627286836479367325103881976462698556246293713636805804682422506185040473277869761181274554059814438327408907045764977400259971815808230123806498136108856659981791552842911033151962776147294262676756649913868621358086265567374139743587504200114681187258922850663361244169331724840902366245202628757142815552506082646922886382046737941639063357381191173366922938455934845165009662300739458626484584070038637270497680019618996422116841323902570773572681291971093153578848012351798254716635332353798002894745536510080997582171303174778920317498400108589508716156205766225795950147916707122445604771047370702631697860854592961644481771612773407672347661467750558422852475964590395039421709748280334874441550091403122422758353662867121215200439639170934692647423771945182266365578753915920359584601527493832699192580621400693342754941598899908996598909912070854230021153253522352794704727128758392750571920963170503783973641983481377904064825720443053657114092072118393593468043113734941551715455578042432203421887888590849862397623621899055993654528261789558410804262139404079269866396750909364842717691199297998265456671774137625358796564523157516341585081376471523455636328219948476834740257726224921261744767809724577148547662179271179584217852651588330480743700216476079430936165211567234255072250295849418320074120845345766239915382149957018219803548458660543574845245801760096006916797580322476773476777318544926183013272485283758960561579915685348659243258410640770799393387870579772021737079790957920693647252050209278996553221704122288293582870777710827397070252814178062585974526578899793219982410948769143764578811719625179429959676527521233967274198688166262168939198538588718295851506354828353594873782813488096998733733209990391377405218431680912178817834282856677483340908902278083027146263728886599896598612897515152977388203109274492898452631066029607897508319829923906502887413541272063648999064593213683085558281698430134479588714652790804522220952469304392968090845264060132009267866662830652451117232122394991659324479253885841651209629626130698784019798046853562567337077564885310502877695218776585600829218895399095773854648926517687054160070780609731771273484109261477156167335080576301615057143294072490266800510384780799255642610398391446083895115089042711083130826159836231542681723695365630091661714198734901309942668120097510910407501446222016018729799253268234386834243826690792678640117099583544886817395023531728374797764469716401687626852625475952656403881507266626506281302518392808405437521009574778014493154272981097907861188788827317571904070329435954834353663539968320687338092135886575617371413326513736010305593910592962127508273135368014848227257985825108692294136786346944970740049001745068507437632696251365168637512765830128825778710276964290348366087056554952708564062939235853426049895114783702239925947706497186666931207326685842568864744555430805131941747854155407627863766276705879236360147537958175388095591325703367832958644796417594422297594509464339610414799550939563946523918130456941673487661237092171787153910878954289601591061614464498485589040527370176126891332626750930300109156988349565943337785841918044258874984290084953228420842285723519405138569106153508857054528603557318114980218199603383568777956687508648232369272232422901681215084574117182428376881171422435930472880079655744626349573986939023911956045383317710389749435164712934350882038168805834196181944090732754233358492920235571741888599566996384746091540724129197062691634795598956925074634895639374082928576185884670089196150862417904491781241587763438800791254769670184593939539132943124397711563194608384029813737773879282556715426468663996967276806593689812616570251114333218561127899303078863842419218713160232870359473086686629170852877689227249822358679659152071260270623658754822088673496783524742067933334911484354515724068940887952437615728092090591446792969468479200728384455323926165062816381463831173643226531037544973694256089641080251990988012224930247970391121402795922307468238619406424513724042101226744932143016118717393068395155983532053721488340810527826222053606423124494986334946998992621552954948209880007801234019500303354427217448825780257447779174263003516498786471591966753252773320743307192492406252999652454053905740336039399645614981507264005232346674701454286249840188943292774941560752069189015654540030906957682882917644316118150939771776757377573220217302958871528379931152496325814175986578508350184913814760222920061740921226392508375481186918879255233865218297157108951220584473382101684087325750292285436962960732804670855675245123991543055064239654328775836949160731247007130546730013332400024079019881561525216584511107572263046966128262801842612478399512508408757622157599793423822514913404957472383003429104604230073042227948778987637631045646257009052458390544369096194567003795746858113854388703969432741704606946190627752726208041933344320819241054920769832044405338107893741352374285786143155008528658155770393822171907629539438127680309373186525195945356337195053074046728914968017992171564770143967082823178365577137514053244457740830228959495011992621061316902469803043204355918067671895721880492376096264618507126534193739079117572014688498012865270926722540198081312450914357991481811049266937281189760803346543556336431173808342937921480964623844541166002943391003129468365542921064299023445849655458923526257956133546653931933436715751193059442481261104690241862872494344254725753684762362479321607389917288707598260050980345843170359319945450806052679784883563605289565119346759490299473733178731212673950119844287083138932639401151000416313748283751882345294964669951558993595915833219841916571425643128118246504038359603104941186731598348446962334076021710878471104305934461603071935818905580649815617980008585545839302929154664687980751601994033415434561873705921604647666369628786746968050066381430222136745893476125062933190217577780519405170067202324591149479189703293466471382698131586924634780772669427267870661212186844613023485618231337874737242752186178633763337312992927535033873459561921545328989442215683600206920887131549309768435639107716163960046992374370736725028412947929538125412955875950199980633282119439593303247019421674546694069999658433097685717904915308049831003334413905109532634324496148938124009876290794535157866348057031949816029830835673087122784231330482667976924569963128055889219718051953053261209505892702240150673099526784748973350891557788035744882699585052328923491293012370367034699719311608414867533803580483217538442965121254380443438273883078625951765689420049528265018956228998357011760588012497204796801567721065634774042849357228793523356700514400949628643693341171158774009020257543787528813070699666327178354703497808807464621106925870453786081410936172795020066402423066494054809513829304546321156189323432186577027923695923066951063891282977070968889976008126071427415985056518769061231107132080695137860082990473001002372849174062551343087468387683410021529995089829733987571446809421912506429664209436981202611229158692455237826997000662607402349626669274803158256487082298291432709176557264612425808419444859920237982014478887452335273529719847581996644617595074060263162253838546025145158793833079201577225256782877406139233545898495344119358347806637693887398037898118583378778691377720445138970734704012243736541442391791272932273994151366606265362927132077273185687412738861809904533274881137036876431759455596665619215443158284629309840537852096542430083600715843906616604299762134192175485928796981311821798416385845771251104722068418760639131375684173418549301713985262580098538399078040070883849222162381654360821363646375479725009502706497858569295683200244269127492167928490804459381185322682912855964939952674935615438573740132084056915962803508605133900972502555854595763191424732591428579661195432227318651718461516451506596767588661809944728829181558071940704693005529969096364398323992056605662873604220648626256715959064697318875588652105217079650773262473339066157591133964983002270657658658663558670847894483993161790545547953158034397518193741792298471778770359845645451478721127041244670375694575388791012634612841942941279300527569197179972919290443184838345678247467340876871518187657239727465041773175135380798682499040972656791059678958584903294188673519409414426163450696960564612447513983339631716010448640420410085119487380039516852432709171000400191813262839847452586214936087851130717623941637985294481545601741063149601269546369091274078201951901741515248628575841278681522644731290739869637146595951061636280703081604553549581930083052831362123291814129266311932825292608399201155137494726632338404546611063390030185219816329279398278858840659608590140654930844119733870633306028399332867648694861359763198796772152068060856962197469737745994120719457041489934888987359032009865791833995577920911089737181458452892492069368877019870779114401456331619075238082673457987292446459938058638488072482556409238984483421285196711123532659031844113889167853084035705699508529511019176707972124309481787995217839728516232727969340714019977632264024673255367329418409915162653012692471377064115304253115801484628250027319985842614282372186532740068167585678412845263041226599446900436903002588870283802542278947117700974335410306552504755391876890023869907480395026730142287853558130516958044190104257114487947957973114668158886660259504787800226694512263321452555736666714092731497511355454814385928275542958880219726069060890426760738534297915422918146505002899674239904417845835891827016374105688580782762633892856162408919781788068229235926451914584544721493023654937611983395031774134961395068262583018574488455794976165303788142481363754366606000047932261967691545865729667892148314509702185838376559817032223095038206927624423517668025743315139696534270350218493078094565441079093943622192228607144822333066647791093432810185336383494424936330334237852562432522282525004391806630072388369820167806765832160882150157223758348158663707988342478823653534526595773683266810857150079537205847367059588049315945687418239630566347233563311761337438144345610135434183223699419059414622726981914720317082955126617569701292698655141678121671585427590052993550092691898578944209311077347014215204821460452360969091714100168468166301145583931785022361261113239276321624517177278532530112212071423725806387762123389892293718198981260102226189019104202347268744645249907769799857984285344204652313974287773083792560280063256968572939496554298199419234196512578036532182681017625537477942600784399815753808792207674501613176531439680604935147359780548231691857198465635390092547893251376395213949135245987776232204842857883601981692215943572428538012324161982897712918895619667904403523754103311148277405121301810726862805242306978396539290718004125911835012208278065139941927516433464962690401936385800714313852377703694112694787203231513452375849829543596452347402132120056139379112533107425428348504630166933059860099440405569445171946419071077195131900520975681070967907081011400589347274272463148015051772044623637070359538842323345692146198980517716016743893442414323764668985530660535900034638329248668009201408299602835916853979830064073396986374845206816993032348130930876958975706252004022053565305917187980947230999773420874004910908871535160402500194587181904291468682533838658699733201276905378553762014268932481049876672434905148752352481762699962251648339265256806708049198598231627107621133301358797621324184242083945024873207124635146093971134708408279159046831635365284704605017405781873821137153851600511004904999045165515961749575452754397851804136405015118308192187876253094979993784415782759128849242794752138492161578358647196415338457081594052187428496902635165932206424905783738938515553802903830177292395426046982783471368660946995295234270663744348073051480670713788864313942360289589943529775568727239650423814481043797848326975821632112386978732725418797987647589950228629947108775042195726195669889195775043994854594384490389818393493946539403648315559656731428263618231346587972082782234545365611886399621129854786345420821080612829673204416014167975519532533396645325111100689786339443989651254735620570545302659501305502898299452782158379967288164439538351213053957476420987469855462035152743549092337139443669332709289685835451230655188377455014905547330796761460179045517322812845411075996010207395714201978650201411504738736229267398596631375405024653418687003596787964751345764978272807877330909049767805469622931925689952157669376053552469580350376426490059118575422093374736613353349659831248212870071060002530694229351565205145294936938239631146080736204505553193022315310854674889278707462239155632876283939797540353736025381698737931668380513842809664403904650859538048273381506451873060430387967096117460433140177981100385652899476114731518721904116008750482884897802758479961819090104726894702614360511068868503157947338906860739814069178933410025509650323651288236446851042549103941222688843325775564034415379799501234134715018575820275276855315171531635545568705673520246240997584279372714573021264128730174752635411619320255694684474166142717978659033186487105355572065731982047838127192985393306166257030147413613123882088491055812551356773128502213605314764049909546355027185649699803631194092363527644852207054769045852645169551782641440688108442016616013729492515377983805960440830894511584037907329549192556342640387266651791929361085083712200840785793903676403126002812916695091759069695450611955803013587469384574170405022712970223558487506704972863219806662606256673686027508768974239755640074999166554219156118076305711087313091181769648308323964819038475785475323810210281217074465956720389933569047598805310922636246367168705595111363384387724471775312688514327891810019475630437032395080623855800493400618415439530894103933036445421593115845384305334688863090179510072810885846683367197320132049398506629216447793300229569522357302378634973102312358771382252388895277023910816568825133586574311168806669014167918171837216547485844871762251363475744473275075445811325281802787303666912736028999206099652985392482882009805297484283343677028472210720429191472967422665948297436598906756873419735724288432777527445595673617091090998083818208259474969789499196532580176608394810717771750741558690997399195086565025771068694104101546650135819823882630392672058609739330228823971844785696355135988747874666192010995585924389903641577787206870285193083484749950084886446758049403123877816960128256513289877769400087573831013928976288368293642918152174527507374886234482450459687874227924567557846393098954305445091964999742467642210118202783589646888838296966900342769897789046125534522381694259180585845053089273410675335558197342696934371799590801612712613453302887112092707476312355632812049720531608713644946388717347371459057642836583422680862701943652128017836454921312066272894572483854681363201932136212368079116148145934216420442422926172346597734021844956906555105639949513199128192127497881568158837589820285616610154015533119736923021918253712803259439760498214827201537711866862777753309579397599748229742775367761238188720302626159883980661693685124357939021571543911060334874156915740688931124744967514039556320533284938344605730666122154647317947499694153559272937202648599664079013401745273605649025702879273451546416210731907326822229381489211748573152727554044833981641133058049473850641505736739649916150876380313642737183393332475342501027200457776088017607033844041229710989018378659441450096048087773850260199164765055425316433844478724928500465487641828466664373598505017419214734980437269808214198970875198052859564464386858865699307508744821343063450117375804776999044708286369487158074634655821700671884819593282704720639154766569309608312661260442765272056246810362053908251764223232896482834239353274998540795253922086903624321893686861995966935762942929353450314121435861064858047215054611648597730243698447269285406388476458458071268935004349935019409165543283610278692917481026135686142774411257836517385214909148913352477071915397814600932665992814183898819345756517625581533623544645597954995584486530777604420240317506299350200842459292540599411608574103053619795551268861712728974531522312064259693372611037707431130957699185955462494421693666885092437267708933797985897441216067094125822401247048394882022490374830954339647150583340467863629510437033756887691442709019419320736758157401482261749538154398899688795275956071967869980128279935957340377731876669885814652879678831520351827531817459167869396123438215101768653937342588060947144729467788368419837160017481114901483780591581642302495235557851518693307882036721816130857144785857596143436949912517013877109909887439282048807271481588212240591669972179393194359759632357528303414190560883314937190484000918055215255501968404445310547111952935887888490609372436094314601218023251923783412948093170850802513361419725671902335305685330013048264463803047798306700475463427380519747719380842121417842885112204604419598274412586683411491381666888553478119092868673897661073353076317574527783193217925424048960008052200122843521564111990945210725929759321417144027109389401385805203412234866096933369976723707638288233222906809995414903198408775177448190822747970462895031924312212052296357914261634636340844404979076910310180845570884923041145982315019877508614837684187088794343377742565123531227536283621299121011465293823774108345381098253102697193745516431000536542058283546362366659999401217935935572594477083085103424985765892810403447477510771261817244073451542781782962340400095986610928117875108837898612765895686535495400980704940700228497584374741404423394277769594355011974275154852254907971257133995019455466811308253442165001274474953148750212447552863283031452411000696672585345237255749691657084769627515154313830423922153522260126273661572610737608549205099851263744966311160238285264944496656606790216223501878929480614104481569944104036713549839575159112922900995497294133845205048066740592986404996034538204573560943178195536216077446951265442271760723403897700488909379753724402893885603399963525816658670571278787564909148426675479666763005719609807551120854958426739606086068693880303490363603086997011184170162648760350344845298189816258444496126459128528063191199640605010103226538974157346629375709083318462274887200860693916715747872261954240760313386101518740942969026103513214972567171304380888214144941463132837847318868016816874674931297530338287918940120987576378335571071914606249894047815348433921811438189709827438872076026287849915989435106774389593031880689348207072879280048528214988210070062163313426050232052208936798504714415652051667391424556683657416567113715611210762524891188126345569879233524020435810766899166822785564381646303666818265109629065170621936554871021966584935139770915840862455065874770896172882181474500644660753391989961356602475560863227414170949822021651959628271556153697998394526356506521434955790494752434548207711558001208800855917031375833549186360173944292416833647644854131159365808861649220629805182640324510108464707615190896062808223236039429968476788847965950971063503394151727314318252093809322930542509114402296313823286656151031213274653844249474186709027060799603041242085633240580311132175076627273356441825878342872159466191851966602610194485135551198849663842565216447261797335765888199879437170408627897981973895576106105678712186446865687633068248010781089277542172173008567981234653839379048809533076030909466631824792004136970034530241825029467441162020658888043286403507360777744176049038972051431009953004671911037326568557091720001700691016500083649236834918899876119004415047240478487199098675903638734224866070451104430983884661049611859939338656163432867001536953365786594213968302701800246671042760524846232741488033612449716694812428951015113719623181498333550999297249985499270571791464381028678325385916199526200817995823546373136961012722409881212645111087330054903618263041672897364591994480997994571796288787706423620320723502052792618530671246924163357681593163320791045042829673103022552778437636694514171476826655126200678933567658860907948497104416379342096383157571441866834506592805636212033697168712115700811454795515309829934326941313981495859859368942206565502699433552284362826756142020361033659781516676766094486540334612196440866645759385669151093568026431708291743549236461948028161214637086931850654125027587431001089579169148464112784791912726685818290391180621469339354130726255660253888384762381026810884769167475740144183630723943455078229945202182369090171689148545500144347653727977099620540238757427344385610081784532022937592348478960021772492858886661010626109586638217441075938274416612462586400805420375679848861659314795269706073895860549807313406814708947638093926546849487158463222168835154508884042218907550270494464478844448412031635333313586868504146175773380097683304965746037472382517623035695325777745025483770379171333846542297418357858995550356972934230848076925193639085667377995304814052517855396377960650860640446967011260967497881812553313892711983353835642606023856096330512805768529070743813918410213165445363302804617573808677698741418708089623834493152431887575251126211701419082140477976615360222412531372296541592986476182370076863156457079680698023089359661414794767362994302016013082592312637162266383084929838248080522402707767895270329780983434189703036183595634356840521603847725919814577553025911528907660540218028942945453152829959246667808213519962148567228672922696309996063961488343155520428459584737538917799083762260635910636250212979986250193545231024743015055121505393213764095465065180524827457916057860103774100295846618947329356760762035552282398381267024998566995691341400267441146318352782350105607161734142392858262462992154433419811115725768648996919217961662504290080787804630070732475018415768245286182230333705341738486641233932906628945794558618538578221105315676549823462605537397889960252144724319766246756382469799812602214777721662322718636733433499374172991031474687894110641561529044617023731055727080689264167753785886709029069625453659940559857150146463075660885989436352952659138195254476438327942340922872057121106855427542741030333738019233551782243232732413984501935623408141941515014258274636298454806480030928729624237637291824940951634560868021221956919180988325222102598064284011336670060656979686620541060192628827235852211823146335136177261394199461215266987502988696315482678314771925022161079690140447323932435832841693319574184446063720426390612452418836480054216312501247238293736426978144353051135711700169829504047571918019880426343429464500143529316740934642777855676898419974679906373166374916505820536006690135494373062338620706718664850241968043774120318282060915580072757943641227516487372203294120509792915330321821908681253895653082241636546562090047740198357198987864612920157774905535895727326417024173268449031853712274714571084805693929026143845777034587412626340276992146087353224106768037767656285810925652008261283543926688926846787033266236798155987018346311045955073530244906208814237306693246751383978631907126042540638159146346267069623014538729397201277308979072334017231375232743149427097589222324382643089214926156768976080800689004299064366909185417532710537817890374773883694988002673232411796926610809181203395933116597800737677338676498572673628031932898153648869269424672467743625238351438297563931018535250481932871632474637879826262302077885408034399378995605748937431699634667822873794473705132112258671250549679796064789815826234997065353856491544936442360466481871391099295503637492786733223578533728188448699087842442763777952587221819878423920735961845260606077851146813519455144850974078339879409744790411698935173952829851164456370543293376255673437491348546994759463398420660386611729631725999176411931818371266238284189001253861249925858726467690117822434526162969478044475066749281422104046912077454224748026552864558049369967133665058200428156876445771974037664420527384113958879265036014052365288297824908337770944338272516092455884797179695006229638555989144792960102327950434411339629223528957634689582793739169615498462783413011905350813120004111831937732222006498046975350643590316293842448161481653729493982817812773679908026962594239818786101287953464098277999993683667607900220828092978664873950365911281808279466485830441117778354159465736549640499704920726281565573230369467533605506061709513524777373527918587530736475323350415755605352580436759160201741396033562715599421487377359471862373040545776118045331437514734041162491682817250237294622780909570743334445014283946055789781715770615600978863481578042672489995430003858864824458069691461144137727171848665735493929738533887757747800499985655044382306814620046209703985362334939853531875906145318083809621526214767673165629752472951845038186060155073525003256021525626433678840370506844312920405532334070353681584539183537192549324969496240718324584095645430941938581180491193342899478089963993725053074979954242707486273136764862399864012031032580810463814897608915506241085149675575123315550852551149450060993521146942919675232224511359315494262512293698355200900687011375145204373029607682694038776610639952435417106138271429159849066005599157641150527274699602661021920138386579778344981651507313303618975665108740898559242963057926930792917803536779997538355537318671812141491557420634760324736563858747966378412352633624324974089669687721387272366510193145152445406202735926493444537438814288326495409558294991179851015932283006161726493591868742727554163655927623435286595528777225515365515423494545404043889396458805657302488346438747758239720845168996854172271320247404290716165111598127950122646769388386194006306733913912008060296376044961668921096497541603675793389261305226979676465172348885799302111091595074543905986172984979211834431203051433838665657342103828559632501410506867201639863911156868916358551142821285016555109295670238433612581751314385795497005902863411414957024209503185797436052235298731731473389886482769350628198036307510990252921459195802494763043119878568888453891152714418174992765498365039488277378747453945984771362576553592312649216190246868740767562935419946688626123396709289538255464958831448304726318553377413340986714012299974783268285869366020627989679183175845355434479690848177668810634393371213468082813115806507782399518406622604514596469267214781140984554685748785208844150370951528702849840754121582459288866296845014706404896596905460408737808845738456379664902215749721484998137024475050016289863243829122579918623570821678695067726361008756347917230575313260123528368472272612772265073736613236366579397114638432994882940049451583932889017742011061946977615008398605559374914335680040156191407826654591335229937502258984738514098958147549500075929924123748345321251167287185462139125813851645722805336669160725546396774071069512927430711669978744339375155283287493628025448912431913797856994137333490674553246378640613166161330933880754214374782760114580728127329341702598824365871711476211257958193631763494621933714943563418970869409114249317413998404950252608370301333625293235946591918041858115238571024915652183959035387734723838793422181590654728760103233183171048215141811592563875947912774683831926304530817671141470212505338412438458855660263197583242835264353932741841932807329283872497122846313059253252842138087844061608854114072601403389609521611986309599126178718014619899307343465765139093134369848287869639379279517091793328638437431309931282904131555647598127747832016362762047690300514408101454371248921082093179496508740972841572621193978435393392340684142811597133669920814592766876157721378348604866101452510179116119562451847817169982011925460229530397608445960725527138403423305298822181227957419880966940060650978671322640177005336009729696853191025846700260913060349755472887009580542343175043586694840479498770816956322651162166750037703113352374682651325913770446297358559584950632610569799871682936275778548302326009451102732365115761426403024309988986724507434839779353612433181010763990166176983908697984709740618417079404053286323006950022266706616730617414625551994971799366383314363444527814480702606996554627993495722978325593382330352448820008170910182902467619670410314020451629055791015423268354088500185017782734992048695068567273799266257063646889486482082567127161630396589040389757332794287746731617261751133090047997718234646033463284446648547364394756185600606918185325069531200166796304863839267707670352074544264209628831662274381314125467457877952858345063764894097878475575107607558128869708767963829284040810563002560189480641512725315151354784753294970030093550395780798282608702864347231617430948319559376093831951219602818673743823773671474759649029518043419364454638708080292024018489497610900321439902107278664912309884914608353530390540964977764729813997833812003535612815270655817662675798648032260001362168126760955373726115938974835494576892610352691635046236335728467341985144228284446251989914436606673526454671058519561842853283563742404463827525311691875196964511421303283288640546360359564821144212292752679936226982832745369062732768141752869464437370377581037900203003207244156764653307071763565404371681873701796067824886653384533049393161689232791470030381542033263720156613303155485623958440250020678486401626788794277864848797977375493544747627861813764662346239024493011878418672566374664368040751847775182560745030323340865403867563190461464050786009489213603204187139822542220285066501070628406293105702259305177369816731655164543619595510697230284827837699901917198128271475097999161319846397485147282121117737303651226119968581696495317019863845237037943382549935712016748845659309916691258138511832795694058294987100313290749729374990903163132145828168167842173161010689669917346292868864579972774503537409682849808267906005341528929176505570684809666181084050506354914131744099747549991831722235669399198415851405662737724120171552492653481684322825984263746075881389328218370757846838278362886903909790439964746087940001863575653080736942785345921106896518398394852343690624771485054190849467245488107556118143214295896259024414970394947958258711945499946636846429643454776952113331958013784661943417449359295727981543965792585475072678717449023415058699944569531026294524524771747752470975565893889911531978541056192223291831553543036227846136794406238323781662182243549126921925947560631797225146836981064165528847658074571400431765758377683844117355806765031491007483470444506338527672187740949886872494716979717279631104992977487841634521805155306225027209701768212237995719891061557234137675264491563120233549017327232074761969196424415558240681728629906029396512855633613447546362266951959016586611570503167028493744479090440871287049724997918201053249737463464280416882560303179147785384311867186284220532525677143231161060459612249918427968406798898958386607467751265684956224712067834084090083521229308816560575026293760332909051679147404646676814306491489315779727345378508668391011913890224300564086769098996258181315735063782222095751925423586129184103476839375084770581516867696379046659420368876459561004520988089004481317397458899342506874530903008696037266427967708252829753381456052011643211137893831920150400432380159215186834773882194480576623245128796318542132106210416109241010651888621626235106019337251969476617163564058309137619484437891040668632504930869066346357924665679347648125317202499322016645144166015879076403242881593903640453815397882128674455665620909842736334574958154748115617318693700706778413122011161447103467456387524304595699806752233068687380288753218447286157922666254003140562630091610624949080567466418763982772037067099819400733495975966888271738209602332250168823891739998753203544586787033274915031687565414675837408337506637419240375922370042265371481180759447870372508509644426568802858726910884047688131740311691558682293942448436677149340558090550004483907944698322172213029265679738228305445669162990338334181365908122743406952092885693257098887309356040504849589627227612583267890479803436463629444522971224559319801741501709504938700862807868900799060573058116123782469308087344069391767127088285706369431269634545940767739149792655653690554475975508238296773373549620223324305920004214257166514817714858712140887107060973686025494467243317207996705396376570663652340358415092967176875477189629507004216916680588312000489220121897239023600453222395604108480151309666697663755920898878391599027705011269049329863123366826047574628752162535816526418421783037290793524765807421355165941193272681642219177626889068290879379721826583725256487122263493048516717437245124702032077578221367408052321712472495936598377264740844046686254276583452984723404231890920406506696260715920142445721432177557888544965133341270860128685204064271966334751775580795764020934195463057670286228476665746456721412940513023918930982830748072158751402618116111180591849870409245199302005210551100686818953841977507388785782686836143978951851486996491263752338075726171270056252124319565874858488902870487842139026440095538769418809655164186530199206452681209447931367037885858326859231204769648440029715449081653614879613753566997030602026569190468747607424860193472893621482428332504823444661972204134482384390738974920472552831286611100175044622002455677465129228480303368601958104607330434714226171388977095916535745856744530628626866272215829439327419389167123554220027712319294410101551836396557626932132836730957160917649259359288964612539241536251945244520642679300661341715001978984218740343721570992607097677879269570930681664281002138026215297829668021794532100396537274876972179018331834897331730439184796528684918552635848608671333864949501844571583766925740228810954633925656611537561739377666891491338553745235159008391094605368760935550039224034431118546084053674310913373834663170526825519841131772132776700349589852956201566298078137380328462495392315222907934689989305394604275738522572869813441645612134163879805203904344103786296886497925213640634834512836772321193165526668439612525419591083990779768076029328332117981175434983434397564592499891677774586503612231449535717116345814319710692182145529732035764527653013544653696583446900871176962341151447268163854951450161750255707514100026368817845272267453764167398467438563691614664059205874593481408094473599008724461502782982340106263218738685403348821328853459402360754639052561473612140585827219029530029831396195867149079329143613459359852950619187941490647321549947603322098628571281398193676864717174200727729741608856724136071525328077986738191631687503759177414841403282936829480854854976158364533853739582752365491181436020177358382678452553223103502181237555543561550089608488282953084607199277392438878278595777030170869335561845003791239706104762141760906915044983182934335900503848738229108138907751843374966738068915082344127252280733797883270114694406840493730487217511362407623087095485877088858732224492960635958977436411090690846345314550404139199164219353074325624200360111723379551572313096525027094701182076221560930052889765881167890832359288720999430005333025838636766160174803847024356903422807815003391325959258337990218628014114051376554262830938869113327535114766034833718663427152763989315073538314400526967077087860033791390041061478911899955969051729905118837567699817725024082419204374830537053340918632257553642468202125136539899472816131396293206591491026417503571086663338858990925443102088562698671991716817255421632288941360854923737570616738321619796193866016239896380425902534826395528225186241783913770720007355561204005227991104248902392721300002704701906390860262993431473140136146828453867512357444729459989506174078614840326250016290796550232727331318177039628172700030776719953807444663563463186377534105562545885952183882551243514015944089273103828243542401188766681565653320640086748737838002311244532751963217552117253425090974286307071041395587083704510806819714162439151518686174041839920362494580919687831908353709670390195325920198877204854779089974141890256138918500505031763857306068670164356989042092967910237413801022781569401789337981079979155144170269488259219577083532316860397369135520233756638340453239823648198219806308941434707334809371185617426793584277441318350031001277603774723791841813134480567392424242308736278190690352680149596226740577182888191729213624728713008414096176768689466651712909831169244585801634077927168156781476900440962049369899814922989041874525820834526151452574949884035706073969056102681506986910984444079977109240392737965656767854782083976383503296725268458783358272782498255063766817709214480775256258757992541483257419954762729273440040317247895305346694317834618768845086331470551140008326710162269932032471840033174637686811850043931022334573156616288791938844100258446204891763960585054923668054932347972354769222690537889756997322728818890006093066085596425544979333768254924533440932677844501332325994480429454202109449587307242488800334786321154403756288806477420802412960692685239414753858429278855505678982471374610163314187559503390389111987500579942842113993799119655391758250498035940160302615383733030498410578338012140201962829449657565745723664046206279376443912061455596820834518053621733320017356756323009817991196598160034176897057381445725535021875731190056134976626175672706660773442910122356369488930392982402244770110963083999360909500930032681254605473984076060924311514253105789512665980778145498932025750137848182746669552311886342446196892227908440677232749653553794393345115061663186858404565566941091409762868267492960407066961406027381873682807158717895051658809096721504115295399304051336389002639521200536028954744895906141620009752807985850139012366420622409097086328691553164788710143116032863297388478030286075620014693506270387348178068396728065305512844572296016290824606444603322933988908379423110667429530797897388585471126306397191247192069779282622373563143814486424219314628955315857131079119448404052849651199813461191405108132493169805028482955716213598723560421300317718216620324961361713499079699229009526607270129038960402777154086066688818368261016696656959516433217508757446608412272004288529696010768642736216325117134587533934792435550956271330225175883699323750117344254600166922595811945997359852960169984441423563860452107890798531431921010544778819323684733979757671460604111605684161308184717692665279494143514729785562272643704795892555027367132534090099320293833219276261410755137534102784119524412809258131927494055668700157845426636017061661342487661875122859413408419013819882593535317367680928951558931876842270189121713792072050008405582297092266707587106052560502081215371894866663793182337127468862556598459990882262025099608966286332418959991783230998191819583783131303052887214529648418253333971997013774669077827956186414896551096257858861764019422968499049116532802146821811558651704662295681174935158164362254878625430436351114395360041167027006915958915640293239008044151947469439937397043186447051280909812130422612647578863349235668255484943942536597514328053489635934293476828398125963141834144707446378808066090040865909579003980368681386834019537274169410949237389323483282373724141376271970544942735858337720303870881837539843370948501333989615609718488666906175742631975927493485971072862390002363451861084523232320238466431530546871158029051748921672574881661249400088663977188241347393902535936462480235626224980831619089849566278523366870449540781305341758112582411313399924143639649442702519472525097910035714356399744942914785239640940157119241891548559709276134938742167444648785466949855689002062455754013161485964715162693517481553874574197358898668477398562657218036369023377276465055993169765018045791991284801307966516952783986934159562824088820665864633543963314827009511812918105663439704660055746494944255915862411523038095803296238621748274046908518631527824364910654453658544956215360053310387380782908762845263796259691845707420872901458901686394694149859645129732409507076230370589678166588670544240407276045464402661321650534530456222649263269668854623404303935232402403078898385212531219171805820709089969968348540836345400931326293331771855690623197358995279556633594289689572006494963714480538388162434630407960274192645416013457588215952852621533513186269316713043065256983582682511848095770325014023461655070531346528866983684869697210191437834633734058239798940296282444355969066207619256415694331419921064119301070670435013608420206526038791270233364084233431150388770298400608370577573784774619174689226008660470909343612863021278814322259035106174255132158946682628963274131148072957913411142724936735754178502694765128986881172755859934083821068633537467859567802473473879707362587458578793088718632072341749525411827962128641817853672127279209574335419563236640843685803088542438825069265794840039748660915678867926746618814618875486533985653399045732782515307815988062642730431236164001533509812248849823078443350703226042166184230027655661733984750199304718714941123818372564761307159828074132582506456739684937545096818929936793879942647344295450660972369384480038919039232773492201984109416487166421688862500949656302761918562076120559686343278455294243775110055410541764499781053669634830164205670330580998126828786392972027141320845372546994135258247395727487824158949134946941351955739900320926985636828744110901214360879694572431704857945785911203759180788984768691469426557013817702164173081619355544029709942596755710570389916487226038776265402280326793100009866980787818348660537750137468756608011784037224697996692428870463968136650890320319717421398532550294213152154962810890956316002417252762857364817986933754688145595037937243797340938297964043656313723499333276372088038156196186672057542213668095236090550110204180381719347273943309728974537961179874570847310929883180383597605486485491589433984066548343242606568312852028536153288338915475382035413075245695475279337579001494531257658742198072009501141453137683719015302578403900448270834545959720787601656105908866365749696397243429374846971948423325052023288939729973378275809912141013679979311699849825836315761112900131549851761421955336601198613428920595552582983831720513088510061156981458245123084570516579581446705413987153946121779430314701268737127219207275538263211833968354758318764127823432907549267727808559511432721279740436570786854598118916583258585208937986333999495263648083249197878318404115987809408200253228259139241189665260051301212775622495320826452631213158621205085189691466477034886807107555575618357415623148661393809891322079419376451460684436546359181970430218408636312839210238405318345389356374755900007245816491875268196593023116720627574601931711120940487721595681564835937017576786840899279633239116442914069311796652685701364646461306480291651581860440504679040265663610140620701043691710875016349334872807088580946925921492038501143973671113949088074982237486124090757577170685458369745475018370557544980213283316778007162290595258313062905359303318183080557295223279889378860922725002769007591608192407581256838400753711846169216660606559743576157684428259252801328219841504654950780829257756520649300709288889995851504189928826256424942137489899318771461175321739628775857144561479037275690379306532608627915190539756885950927014156711902038623790914214286129604987973090295791977204823804504207950895520036870072661503640256873499603704135470221758287972406335913859108711624098317268158859877814087517117483607186215491009114069339333074100935932256195381007957488605395278154743732447492175637600125426097887790300673573120942312893083943756478445492782427943085731591488811027228283325972952992544479549305458590315409648891041617767514215595132851470282241732747427820717425357806739413005481301494505453098036756904624511001052921975116068224730100612353335286990008364403032484630469580541822660737872056333675410836462140077127884307241994893812612591982235028724984912728701234687011993834894909584791581015339490853026357404836111313866798582947497267745337921851361935031161541404464974511446023274345930414216697226301923290236916738420450153745983278216037866978120694069903880274115031830145759504589753334419705844587638805992107781173132526312999527109689995163639611693271187753591996428144426185096438011566370332037044241262462348153430832016641927501978976371953793097955452980444627361803136810831630959849345483440593421305478682938675322190909531018721458224637012408804794182317131124746456282392199176634045315822607119765285418730920049233982783949023579754813471223811583403608489252766121732498521428079202304760981586391309672097306461587821277303360285613302499690702425417965565913130404542646236328456843880008971880126199305597193603040252989703339152082556444407664732155222281529092179835891453589812753362408023708662090829040252835921381957415223169119611536903741150073697923640494514357692573629177177393143874416352848195873913702168509190596797187888209239240616419078419048482332781955565630567968107411160966177067740491804377939574687615031665182542743841389175431935454996178750879393145810401256305648306036511643681928166466515308130287130061262471216558133244494131665346973198584001853667247499233131813411428131507100436224922887269574973456252010165482668863112302587017622192048919538406556968541321912445433406365457331288319550138009586470997313160129111148444408400894681165589084901902772454602812843570672931035172813814085813790165926750776062661525753474437267522191815118144475921098676319242607407697829056669454157443088377594919832158335643015388850725924265215089838563643867854450342406127534221167260810434243122605496868183141923706374799051566166774127758256609996347439061812131884800846267205105776866987139482429998792873654771862213296626448087993336318046274135107486843363310749597936942553940567539062726305414847134800147971274144317561803436294064745009100865350335447528664654894494080972613072874597620430240509762403467565923975990567375735999070996708004848519152529529894812772972476210803750394770389198583969397649384084292477102676160118738245338193155228686502502330018283379112378623680427890789976528281846411979912361111128227970546302560421757407845727442889682663670701963106595273074671588279913191028302180256594812795567889995352536092259966863753310121236774985399331236425717743555114650811359590075562689557562620315228272816374033806427402048162538784232535254397869963535539152867900151175632967057972524981425245510328132792909458137156538360079378461070703666913193687106198344689532448118932281856798649411918720307428630519782772422803096104625629339790535570149937932844039506359201488006931771965682816437994833883342635344119963583888869002391011002034222208376153583269690050141830395143008650125163639432117659880251267392052095261057129721697808944432228207253710777726119633859414763375594915709525649085405338970071698544144296725406280273313264702451689704354934697067796278138049754574956533110025466273794009628807362842389183715791698554416779610684888046181163537772141209059543303343821024494506693141111480408729957290584677240641172561834386243378003947265410462928567837568074496938301440655898787641376453932170843698457243214707259713054161229700605435567989838532509191658733476068936498997812838190318076607814742512699430953865199563911400870212518384337950725875594416976622203293681145481855025873610497574967436414500873193705929428788880069429887147128575980323878556494841783901542754419089684957628272726886968137575673790206150820816437479898410665594352401306843217225575061666127899552703826663974115093824253938405485233524399094472945002262043487473771488445584757682373712381521769820614034093354825825335537169345967819813842342254220407328678682741847433622541819914780297684792478764262665624891742305062954473050813908086187178652638183869368780069318144041574633181131180130848362274542978809310227597407717998180106176466617953517192144495427324875060880922303081067853983164045792741078051621727203335083223362392684798086025478539797284432679852038199659375511473497459832766093977642311545621852393642557586860683115903551856252097722134039769411707641328594332163168667619069173166032604002712469022374368557265795084713632749737413970790083442317604832447711607783095628280224985337824538140309351204611237328789970233251847189637629777483471808797456520166746217041008977260490633872345116495080463738620274026461728540187104852391462666617252380671312189493942922946863994130387384700496444741218662147518185159762267782036030021988685617870928022347719503124573661654982366244054028746090287862943330691962200636773021575587663494715817130063058186415054004170110296706181658186258387395153975886149875762861034304182348394199974260631622849306837314648132520009398181538539758388860178944265925391898788561789519723501582821993147505648269877187796643945073679148729703223380192053198174453468360245904330021893165768109276529564468683923679072248022317536796285604022986205878905330445286624252724362036014220189122675195272908797243059032279147232792813221969695022688435948972648187763326813922174179808667708024742674544892085223993323584204781406575961385242484036851705106063865836385327043301041080629807920494754986157501226940579191383181213858023399825883171144698126301825380690131538023294330106430178864067231052535513288753726713202599794410551820573506146912030195377072234307827128462422501986136175506586549797261081162617409355802321799669882162833397568747590335660128723546527764636978617088359908736580671583245443529112075373767218807005194503302307967036327778842604074398248903263202144099773437108452026078940585957551232925351273677440863110932716333211225398742452214060778106684387778085874939186219868017224277494556047593389095123590318073260787278545007461232031382119787101406537505158142672066868197442666063476111868420473304634063318672455128397458472320980398544243024778766321733378554312062066846483317779992893687891282428901510127612794445812127620809707023920862776240087077116214540644256809353902392404282735988513991282891218039962536215142986984827935376918424782464334117754208165739882483768757277513785329160442853492378119376007471844990261194431893488242363348009913757358967707237874436366820539628571723538515051922776778455624154127426167369886223370901339202394341102721236959861497136517772747624132368607672147144369556996366053271673394887608317478422091697216337101349957496768807733328440719815208463013083363259017680493498585456227331850403609105161842867046448575532234753066185699503342227543018665811481640820490141246386727610434529780613896044924542420659657508852747572653500096459518547752229059844821232893969988554759595670700779523887942587154456616465989305158610321748483712427230156668065499041864947845862829986986649673985724751827192507950172004968583296218432332006241353176577685965846637685481685838018967716751059328423462069979253442831153149738768425208849467507437420192223881472250108250561849924407230997308057174624461480252340195121644260480473780707664596069308161822179821431521148168594944253494023166296968721457920363210066513769294251070578455500008593799042775637230885000269849499489221738220180951235835267956038579389251708015368359691375556557527131018040894085472502163819769814764745798305032717318271556931902767379179907393686220989762160744353245703094474519444692296942705455571039456349958394499227939558837577068863997924270490239827879993540795764204733478427581238920136257288281373335652138819429863271415298895658572808956126102752998060848788546519601251622932235334224033098095660256266354316317565595909404199139126952612290128203973741168790683598843321220065569023255344992585441268719545339832904027974057658409558952337895729904663410571381050648230050272177074920173719024370377577122213579389708343990733970851535849513877528635992732122640162704181144020231023248864944192364533499659178029347897707485911961135936621656045156681248850396742466824021803294111721843006439189933942532304485469525688334160316052744587479730959372603722072098303187070596947519742256826053153951118322088147055245336035757418351017805584550796632148621847337851550406128748393619265734440634371627861096948383444086263264984627712545405685595183538018177890780063395731749652166153153835098978473252413064196180405460056178079367380052319797296580703590835719108941200820283560114996288825204163326554226256102583194666444334579916739242774276529184231278255022997172957036350944061613388215975503482794757459131047144306201515158942474491336451194039628138645021178205936052498854173790671223060457654405570138688858522328751567486587256955299976745282832504201598136940321775153433731416929467013531456613195399411944959513712766536352733165558645521101198657055204499511913044858020503798633576873937822245989783817596280358138066838819374851232433858546848829236002656162545386323459299656313288821505839137890260553614516869886324819239314790453621080050914179484968099597224875992070706839044088005955409064811396621085564757861631633434255309239721408596995846568683098530032505935098054225937952882639691387308362403520434175416795510706263943435002898648037819360066689519589706290859118699374426354292767561663652207335919319192639183347749176451979410809745735051348617504950457346492475298830573981802524246858327476198702217596563248695088658016423051249540534215485753376022746402321485168840952280881190474585935724481234030534347485554325668361230220285893184507329175656785099170180208127398862426238418303491598753431529192573511564317454266150125185457468476822156994925098297572433110953288234700882232042646839296564924812502098916267569625313863672138873415944204387106155342520101719375003653586043538994157487630827123861654534630392128958857348773210824652220740167005003924580793123052100220827809501845965185184924161059791882825168223289952509271086449054566166485916984238582963920963976234978805132839760427668319175473804362842392141525874350249534702268906112721680666932573988516431710324541464516131176973860863263661970481648075992134560754925922412232233787824713940598544956373497819682431043454444120367554693318073663802270391954009263933906753104174288575782580373884583031516594715222052402815798670119563314903400824696745284864940641971744504043305268857124587834045440442540593700540966789700215681660148192263204034191921253554971440469060285777145924928693431866184796087999996987128516738546102596206253032063468580103379026617492967624809737447966727134279907709573263056458091669949265236020844920233228139584193175047964261942984308436444402837856806058740463004176488741941289793072981923208998214344797919724936842840954358468945064757649130984019746574630886742702275785033963585372390473944551596256229727181850205183445851053450612111572958974610067629165597261175203723493926909915945458692978718246386168985063474293455802088262089797642406778308094920379795382422177945320616044335038712433380603193711906241560729073524747753359707063627265941103025693073572114919555482550961947644871060019877950892705328574920633500324456375064158202451861736998207511937574109301834287765468757993790171395451285905668480043769310487534301393788301845970517051905982344906393560561263528349494889341963204437697566893178916453558712167884127332516343385319234497387574267423207288429601411138882714706510989316669630493988120199732682551560996482315694476766104370533599341892782151426411318341257294683826881214875891972063105870969136223284385377567266729514102273355421324343511090755276948144988891602951671826631043509205803263319457000564806502734244869594493072859001933755379095123362215198037691493151220142487271929303767348497911954215002507776315422168260977390072342021092332423941259237591759375607776618817670166283333831421594696357843992734275695414234279885984448389024165722292860767784527589001835625645120858423879529673383180319487688644897567379754941147067648323945929763550033682338619862741291794352639556092504344582312512715279090765660593721102367783911979749946881300746242682832055242995291891560846988316097056285331603242545868593311365445938695359804597202998665531518852435253713588016003580402753407484401921228214596301230689303393155301186984162561556306068135827848116048771477238685212259098751607655407163570918271989245298806180892746755866369297858403657850220910582661818554614351696139733998934900405791847236768618199140255458720080204059232845573285886726791040306579937241027701491265998389196578201516056674197960738442147557279424109580911726426945452358245487480037809503515052327844399693720307256254476994017544573463559664850096937515066492136761174644473514691967397865288433471613618970781227845584265680646217967980020127371326871606819496305372526867205626099842603097834633672940723314189499212830316068336098306826034943592779279156793843157585610296566726397481093921139567607201191388492263050416865588961254829547373296546690935813713517367904233420480019999046520820899846708673524076124070131446433679359691999523977353443659727149723601085262639337644444837408055026564931024009557915976551741417172741044122464632164101243172971789591540741907162244517761145289197831140210593734827666085691965170242435110212679995124035464226184772943996833752350142915467830251270118097185308096672588908238843275084341215408641991594746634759998275862033112180580842478751940992955413226826936667799721388831936439068458054312964637260307818998913799495567228667206543149274554532483846157271556185280588049764606156845760833184559537721960311494934806950360485130445296489571181644474665441406243143017732110331886766064100651450228478452811030958410441395673492897161987738179633154797779115046064526739820672914189339975323636074584360154200642798528931506326411675186110919852723521641779679971823263218712884413412273704602634262324849864033767610365968199444460126207795606985831881780205203551315540541095190119321314494932255216902974100585728405734608195501593095131281821753609385057877607466957709251299869908746378008698465447967100134124226400540066921531354823004355911270225682008709528684725672819522233242857736877004844592043894235731835513925602218284734726573964272653628199554035874730919129210578429104630187009934779335856883981781121872166974249614207096238768103740547242781349189799458648705327224602216944037529817648882779123772749375646678881742411568602281133210013291600846413826432725121779653434815674290922630541415301096670038014765296540757662376498683577247836057050427359894673688279534301773066691330555347371680579396669932149811922517170356629659698779088007803688709801960174729291090382568141572275184326407164656414505562177137999996727290878974888506091888770310673779000261279430657451947898129577281685415770857016876891710973138069987465158830088830604213425869955585724209406423142008699304438640506000247969326401957815363938640604629824991612797381878332133927114124426092323545558752560592785773347757248993787321924767171237516236693101489724748603849618141320127077184211039288501121175743263837361881008745115868411714982838349866890082818907454375423750817467994414970180056337716870008484122768308732596672948990459546062942356218905495652148485452790924330095487122559819365684009040164198069936604343310030159050522636759836435087043753765699621911294057906961171719706946259800737869021212745528074755853444073173643694805978454799830449316205111379801429751896316732656362419457465324491427142921833795162225942404154309579844569777535664216530645770907334228907073881729248350159693870490796205757134606829072830120705953607144382286185641602889998947589433338654590945386618666507599979420694853435953637310717275342802304753923722231411766322093944291086136774994014847505865497900767145563279027407530865076166531826557396854078643825978039662594029286404558416679134524477851264944039953389812659246783576920258021288828348683713735449809785472553255351225743194408327751686993325851851392106374201150269145711784828107988816982999577893011179211656117950158883381702547501750017978758017019753986963514847425304316924306701217817156708099806823767237630969739864558614289325331467305691707553928909653171629544465108151616405422237370778529391398316451973653003134609948036418571503758384904996809965238681613951144146376165477325631357046932249904615020679070405370059005934040715029236996081880992700051422222472877405536858462807978020638409101924534155915999600780116565243326758678139013270821734049632543623721802124756733229711469074628689052244075551491436348198383793979397702525297636450722400093911750896852548627437225131411092533580761293166834585186762510468905401580756891801673016735917091866463546403301753276988077112853782891021960332242294582191763384654155378756719317838089493043164979738424312626692875499984293583773398010722902867234916184033825557482501109947699519130461921442192193155465023707324323835455758541906245141400008028745676455255713304916872078168866497459422044692237669166116992290819818466732604650063932019996548258768116685590262528886712612455790953134725818737993148445588897969823542487081261170779905411550794237092824337887986684249222551961210668262092012682442467405654410563490042900452682057231793894842146736487977150227508412242150983873466724102038967522272154640056472611434491527404543858265404800880327718152473472675898459675503353648030492708146931999500496222375484677836279199850883159890640701716168853749733608302272988672915789646449473462172268175697016281029605677401723714761433929406708120226979501553035633855550315609967265503318120629693681785168661180414573301575866882247732795212777223395050270684884438841926187992315971947082748141931655068668858647328333019682299181167884082605755355271627077057664584508142577824982437020047773882264094742726131876557587244762284739920046468970788232632750411297543250003423983362781999843202743359459601209422961282503785705469358947581466444014439465429873137174533277663427815541639745190012902700769613403038715970985878147570331154877197462628448745970036449332247577829052796685271866569717733042621144784560220444804388425710825075454349886573046799445415218979112086946144331556737689875215092640570214686194816779406689596994036548214322078446222594873041782379234848875435612824631680335428541353660605469082923771543707813562933419854848804161915547788625078540755096444160082379656815812255756559628505704121567902997257682597787998885438162655184810814655089930068552547854474742024511234969935769717704376950977496450294187783062928701283694725195677626007537191407717210618847022592958835457366602282029328033712152368420251692872926991481619875416910844428311929172606220587187909530579455105978173960669324551247105076218971350128166211628075683118517181301923848971071347238358335868865783807852166739217673476259758404474003542647704304661291137577093989938200722408181098849919006275347392813655116699211075075141387872968404440873762281819413954322298764262408163600545125193889130622033143591943008509400847668441590557879229910298084505599323814169151183320522313255728584788944042900060159244907123472786567807162771830553383195525935073351379937635914413748099952216012324411808734926322038691890549207592651579001144120494671233092936957316711774379160382940503262952792074026145117785178817288504620579486184693435702009939192161486163087933475420638185671273362547830065107466954475221833152955194427682439966209948777715312614748422200430044826636186214606801006442021494115282613249237326496952128072338311339369242799679836183906144292037515232390684534302903939796739538235563085173554782877243496257749591809531451551656346530541664975337321692947327932112029269686442262229047358446425078964947251528456565422560317469585134484992655242962656315155782284539968303165766210607544598207359523759365994100081177709794905336798283829285064616814912406674842824041309909944569965206666880586785765436444354655335200743467579765565267398574581965150606210182774798963540959232658990526166514699872087613481020790504193852295655055852473957699804566671318255889204524990060166604314208905249289006795820040863977331194352437189882619113759835686363710693372155198766007490567556947460671094535441400155706094305270284882362796388909547162173627356765863277971225420354610968605142866500095177416436137451633561875506107159836118043541097769982732874364283094651928388592688371334192700467824658149467900780591444797315741022281940334217797053854480496612251151323087356713773997823879091635402769284913406961608250160735862377848893762053716689219758642452682220565844495877864926369966720062262619455451737447668271004838397726425233814941149206411428398267139288769098163193936471728087300429391145344282330701720705178763679620794008906837706337059420500134962445595621722590011972909270897402334675794856134852747609334789496776446026719220859788915864642454030204587800815393186631982054724269977695175363187389051458535895460147437239791026783908513268736706433872514970456998704355329921776638704824131991282860357179013588026157720858061810981142410243025501469144293267275981246434014520774932338356547498365975425312685418499826123425080143773122487721043998868483192205721947621081750723155376069990376946292482463487479544400519253971065058525720440267746544284407881614405119199729477875279237496284032985508798450087912231073321158003953440835647262281083603769527823147638015579226504144534926650388585419203274947025147160964953984023761698973206723649739776546795005973504525872368895357728278006806689587383445036212400967533658617812486880745710592357429786698001770104814970492964503670076868375869989394818646719735902697020061569090141771822798199524210244791406681213445491765782505926965442074547603251033470397057530106604991963117633823288895648773582520828959984674207952435115819068905838774583616347392180993507757502256994595728068596487769786681902258729382273612120541783950344605011049363057938318506806483975032920671903671767269079145564559411457590613649895215534826194495207116498184829870316228208399596814134598491628771270915004973138204241270569546421648279099330596644972812007475314405863927778015535558796423255477226468409340474260090321610302152412470159447345414656839669508817823199077353133597197537930800593173876662473732587094973433976973407362418862610551372390453150346173455024051449680027887743774525807957710147233413731044619773966943141721700339258361873870075552429716695325733950289820227647374170331150324874865356677575906814778329780455935918844497090411364958434850609773397040303704776604184977132283190198686588216486375248804034071924133120020929215177694370222347178468314684341664495697231883444122801792887686196665280251642721698559980369392947495453679484089354973909961290364845486529092260960348355288250723654256584544895042636291187811190364560438334915578724461386501467418758376493421673810561837716240139278399844892886903553795850827207938919989600448709632090824076106397816458730404480873093584149738672556090400163929633171011402718123770852926464790393955098000098184681185111963750374691105331613590359491211959897372246820831572049662479524946139268165370222121490331050833358120858157814653357998503382283881047939492069944418699779286516338339798056413177032411633785268455886516147982718813779605604445166460559566061441520651856495952601396281194863263369718248194490350017581524947558891293493402538735336427810375748986142941922719268708613694940307933755497739418671978823199634986273852268636077678478674633115495550080383963959962778931939017171321513761060408619057084292766263950695384862737137790768828317513328590591532592341623010678215741138537985000237578991301735334059690900568187944845660031822014046554480289731814412723772669442341899789854360548917098727725181699124093398732030376306851153185931571833106572343160398620899781655250108893702728709906680801830662130801089929166513158170200338131001786632471249385967150109853098463313423443897958473986142204873786793797760719905007798209406297914922129244920968707043028614675449566955421395732900368564307305011211283013711175427478981377628478746392681323350313638783432312704365365872683877918252509995122955278289840882769126799887137082235782108627763718625029316390186255820686591189608128309564602801101116016026851296328155353066560705111654039535014834586556687219663594239378364617925514594854306342514624493707988127932149791342567245018744109151060472810104376798416828894585236365196903343232399943994734284375968043796831296220026408460049776167406277508331323641460583763401457453806404198342791636785805293209625664333879527231802363540859027607296040417830180264190798003151180268794370957498929299575933506703432636135685687518989180525294417417196037861679203582148565961346653656456988883191104248653858734488194081848620891454852169924714579167234608949696481830524890599662167851501686557458112348694169758197677590136745265840587183198351060626985747309763033967361373039305893265555801156788166560491393449243187829538423362835275718885347625128114448381931271418407926285481543349646946880613809635349120558266108492603456868652489435519729251756387123492447097735213236285322438979457421269035730212955764639452476655229934348902263232444796277107882240401480560203040249695470710265790246015695700022595504922954363360467084509573946945183498244122525783351028616094403170181917904269822334118905179056686114322441747754672316179604949141553615472091614697841059212864469258151831306439525703702312462790379828993077807060737992109358917759972370318498931959828769584556565704634882305087802472949236336032228162855807772548731324745922821123454402763237007574583487746017744910676890835446084420065662790569942285604356905205680181639876218386949672000954291876864519149345067255024258312088045275676422505935550217902172187888739820161560769625727919139284046448513869058295132012648992794842128866527459145775024744312987544422372083191679157696390398200019677912844267049025049265228393297382877743205754368630903744314627964604926697039273439246857966340367001094068409683866028086083136282594605654621707750980838169429604846606366416902258609659294275649390315186114933431494761896132324791719296659590036729576218529193291270839284554063484325376458555671378201217069500572402254022246015559997607951722675803553986463143147313020584811136104410271283377120921511442295320492601927310793961491196240896491981436018272171927026747613730931922882625738713182649327777082498002920430198986817460378797599886700858068166802163954552977142402498729201708676422677037409918222089584248728512427004435397004556458542678953571075057982790406069047695597760885745508364603120843519534184610033695424858582095264118384512953892035143764348639328995997950443427568465413219243707721419999298316259831934571200545520001367479254108439840027197079083547262145166372537563954257513023191607517267778140659962728745913780312083215868788798088522905519775536958796545219859992229178544607219008774516923151802798618034925605972627998318495150499898077901318802290716188833192336247071758828149563351929243140321669279965771193474811684724778127190921079038068206823956402312669672176264692945714234835901749667751429680224138107504468609746822752666253549528226794809717229794751710978059516066664397535056945703736927242563006613191539917357520281195010393888963592932823671159827755151238366025598151618836977129511463416228791195844416658709263216450068268695863362569378069733009722743398406454763467265357150921552422313643770994511207071263076309914125517152675035880298011873439759928759797642602603832917840067805756252755634513229753227870785902653742288850449309938950961164174675673671267462317015053417527431055169168212029980954936495099368999402194473477464199430922203686717190488530627064454209876244006503479833872082403528190364062414556961624012216476990092171703802323608967107331634207288622181303483897822342577877997433305649354593155544357516822539471451584906938764221446864276393988129422875400108771247606706084102078258189450906716801348150171035352899450269636248816438865784462217460653997536459688133940922574188300394448631755669162089183681171091638579474490530632687993613136099312022391052206331499969924986008431095318601555813971938273596155701652024476646959523111411162275204557668673905513929607071680775678832566161166569896756055849913822409821013353071183511321770432631873122845771186865767241199264790227715836354927228757825749245462621765104067641858196239421136576079594463897620190456083810791195891018139869329038818222497636080251503315745854504115572666981868695122165592197061676421124846221931552942433977818706822077496359930929182555581210019913570619151865764545038720857309413934010885705897089939155999991167845767077051532392492304383628874581086088745337804895119398315610410058120573903901829592711049580604647515325339131326139979818413736485950065040625905315324336460337120223346777801948304348980703097928025526411704826560458293777614366704002966178943483043275309153762396684330779723821884410285761022511454975329210127910398757803847561774897801292534737466338214530622091166172507680296643989900630628957583024371738422231642208681698101761320922548952658817375241906818082546309253027420209819382675469553673112833966283875187496222572728657736590968482823167160362873157931883517947831931395859212996566853644785113081467601027772779482980947286006008248118169557611033036692190327866870721291018205797566966133687416866316964280602572792462071970444594727209682967052320423488908047401951853610193306031434305828420740204117571781310118907425901726963049215962534918179652770283811304044908993524788542540956525269148492640292314267762562808232225217568723924483251976455496521953962840888969624851206889875372512665391624862727617530170879358341616098005368678095020655146349664149954804233586214353437459777543553564258918789099744295120655877162735449945856514482772243320399206089791408201469032696744063078058707733977687905567149721264344641233306620216693034098735223595548739369202176923889740447603508110396983421387434056972119528461552548731305119355089642067416005051382929123517202791240584062267326876464765349075711767738513795361367975530847404766975423763806779796483564455132243493473980610465509376453471452245902490141226857105453020185160070570279575619035299085959114837294367442610096636183323960162124839962290725458134624212362031901109501255903088805702905523301670405219222299335318186778777405875906016247854176772384488444688825447321527663546900881386418619136691481438184138078452828258913246230461823969405496863527116074117319144089107878708927467805029751876851275191415143080059753025358414620205130488397555818592326160084171222662139903159557365010914536703077591588414657147213471775411774519227264852067051817411829917263646068107033763613979919011978384274952997709039156899258359294058675351884947615331867957805201067355458204060911869916321520583803015506257109787776087152007110276836909855210833234468494808009357568723523798560850711474730249017262671721144274381718372670593074168353596306789592887644027814621816583057199591304791985103538951074778184691797999722893615605465125331193362297823347167977779575373836687113702114341067860367718385488496582245912042493332665283354979735222055760070782823562932934175211995939457684746311439495615613499476237610217751570577354882628166802322603859028417617924676157830435002851863700176488522417122295567989365231551927282945078581795389976868421897513703565896053713594962599588064030760517228552687604358426500664333663589954986350073645320044769207138019678197279759390204525610330374563370598396287287562336544302698271584838334854779480567284287241045026786407892397775083760861681411245358219362889144141565214035751086600430216534404985076559083124983767960090160192584047803608196769173404199991793482769585723984979015981768907039449727306924436579007201934080738336551549550868079690740150036512672434238247555679236654128809426457591455694320453639732970520654572205286344271470300881366277878092715088161036085951090065481429323907397130484803398465792854961217104783145629917545575693874997179307069865823353525843075899234126191657949366114378253693538797331919632886679595491514751015580208699243550606182656798024294046904652292412435496008828470982441803876002705875091497674946826962755568503917116117538497745499063375984568846616079089614191014750799028811788789861034023401970561804509284296928010999548371528498243527783565057479295722484347808202682169903999281326675189688657498844232658209985439715210527396985897800526977137195176682897383763153478870911075141377366157273025813552787693591934659476272941311136315198067011457528540293288942652820746803700074265733916794280422488326167828291452451145036449766321948629689556944773195493292286879815069327925091337350871991773442233709115037213967602389271440172809943402238128299279302969066523211337368614653511292906884428611862804016477628614759772722914282097538697773641861071608411140739409230086624283882376783817376430856093308575611414982739670763061556642731229208447282301891858376773447170021132630521623249001344804838940436484741224317694489852141281892556095263034507363344040647964307156753391416688333915240612750302736693198148359444121351029327577839164765555926435084184725536185951687653052883431938643298211538806979776754567074496165626978510649387855731000936650478487446707995898992255210306810680666570714795977607070744023835062079241692001798520252686514524393984829651231708039028569684240631864718361532344738625779750240961257997103453649025607470276906114341471684845146713521828592486649051376673519611410628630122205540304523274163675175322193082400225542975097158343861099877736618819483914306828139898258197854880002469939270360881413689549969553319618393993518306438856970455736706338386652505353807513220552459367278824614304609708434122074171560356178910249156825017854166813297156988579044615235200416545503416492420325453938402652250351402750364992416522405075589713634092061893619714224609940254981146035407316761181659579890079716352020763126640793887838328532847951513296874864656124929910153630174454075979204397079006394715008990536946949410910680767610400961841357107364815867821885750867225580911521338278915534955768083571119386035588048768153507537510501564511144068290917857315078104457453540312624935665708982757518359640329363325310063781567544220706839109146784951158616817386144475741314499986178705817468714617482928132084061987049482500540796008137361060181106598223451170877364690305013845671611134992643801038665779485713676178137992734401154873651102058304101990107506427087813712088083801632598518253712409826067974020950165228079993596837816464951328209181317730337006346419017536196465112755009923299494962595997388339366744954340854338346726590366102463522144443915157475518430068694252029681034115490337276117033285854535942635652769402981779168052998890033397896090659679243389126857542931965150174904883230478287956202891459736903739782521155935007650112691274469511045992903435798780101833766683161510211038657024187478269753896566645949261775343219801972079709557842923346814014943137239415050483897020592102605026712365000508524074073033269463835929386249809946002505997304874677042016466034525857566745580718468151265306278279616912969053217826845491541033336316779299118232392986603715728486707046114648516477903855554043631926764002211448930369944866610914175151263550630579766730920889458522291835653273743148246458683684608515217761506351144866363971825871709587417457274271746949100613674363171220912287334096151938450750529197912079827516690409870004131025185187035097201208220327925903251724690714480333038291702441897370043188910683759532996025438278267407000746933702897234858164610027210297698729409098777481473110935439230091213671091887906626775274237614866506731158472819815470273271794162234168368499145673961145371541927988063447792629472105787526041827999819681685430787986642272417875331932236051245857497836457676894005606877079134096628577655764612123744777904248524509596404809823167291373119888110716986942269539410085807866643000334241420941168442849856518421644076258747262935282999889491779497520811721536669527939058520766730906588298640277203017848597317998764585682127553487658825045459326372230581796682611672761838956892106667541953570515716829015666169839851873939692932294190595273554559219766637565026642282592756723055094357105762919459606289647269154658875420811729048237809874951940607668852415582750240079043072107096882426561930642495346733998964840896624447920440693983390017025694443532014351377717753841087401359149032945641750612867471477312508887753261019338672325983064250054469383627272027982095333078887754515988271061492691234662581262381221238604217546258518611598072179256260387992198112735931307397677209868128648165983118661390357615806963360591600957405256899196724212060102944537673008352927101235391513420210725477855523684840994592406564020125352373722360155580961532353611454250501998110392253127250531856376647890955187139757671212891436955031966522485244852962894270631065048002518664874702339359230611600392821369773682163502889787196332056565911979018572521505379759649752301995422882705251163771100011322051595356980106369960257674204221778993118572643329834450386632058527611422589731661352543561696929237837656198354081973449143314832095754675794485283071168600412503245215675177454258918882036590491159970519028650533108982541757774782119634315199195928363233573821228426002200391126138769828412380925042556902710580011184446636563696453882265111251420065558395012228029951419325462376949002726315188667486861978820529318939805187278975071710995412464870452722930345507384947205282850366329528374515102910991469900130363949244830818092426274388735343378446440069481456150880343753093128973123113589673178066804349885593679558686546962808388879962195582997461743159290286080695692274184097390766884339710438864469947397083302754729036558066242823392602432232988892656256263376408737564983679424034286105014148289129484687241437081207981604636252443295842732573762355380319478264312445572176520584090908150045250824708000535180424805325459469147314770062604607645359279465387839598810532599210844423570241441623006120843649344296983274448842542700952992163185141039101333499720092020604840103984233144683691920428128521811346910373158906391834383482767451396571738900143080318591387586649086700891602107777074059362805211852043533738140479552804667048332381228683162734685510346509203071848979891122248368915167929651187891185112707088173740652143088968788648846685361292327419778115140109657199317925716116104393695716860960176318944461457785273532298471484131898159210838787129179837088700140713047464333764605488684930069180231129106715453243348336576712864719713632317864065186609954725098088970320221342646875238590125752465726119721443802754397157129290054137102743781646318577371783844552188775430245714866399186071553789710746331936111385985612849507613899390540587497924194791906173357605740117368141724463186481415579928624645228309781747460597950558974110495897759265735871103935124127836291932045025433309696163433071574534455457866293126142482075336028518077453858966300719449249985893474871682760312206805701960292333150305305878315833819166112761673752150786996444157717088311636290308755009270985983235968568131335910372683070503666849343072579257571634290184379126497784280408188449535958938293855548918802233814044453093743507932851199670881982675592619830785226777630234341834314563475630436100297052480975619136086419014421271689569058020118921786525172596465386474077769977517721154750613849413884926730906929600533297823243709793145201255540331355260487533180054297700497238654631482362579208488034033377847487375796010089129957222239585346033173650227369112827982025096934843729154489133650261895987203929364164790675444663670894590042015425369334989889652940466144904037580174840910603268866754526943764045957954382195992789834338382099306484509916290076368079135084412435677326131228362632185633380668500050762807364227170282159370160032582709855144739727275136728063020576998689126044837366380409943523684045706456781547722489680014072365044877308900901395546175195586878895565153099218371200167477100653262878290466399696535184668793788520313094933692043987632738592445031322626900423281398628954689709980662399337118048957368841985430095446665120664386494075776692832237834254230627742630277519734856708909498579640359623287325666221169573886673096491831456863291541083016169401524690115063542086397072535273810338539987417361224816774771366369669968406781560876504592906863790207718549740771840538345953488514053908374285041161758849468400751946372460301776709031186965046816791309843525174293021672885590601461075003062106865688615255064954316632669717307432473184401216727667955889564270485456560958015331233656114960371973921523109216556723323316782727411029479904308649343913674430689185645254266616151107067410980685541466095450865157939907548707226026762342369049864935570121906251487696942707537057687914231313952332040576369331839969765244835987346751969397618304839969101563471887985828578692918060230421217527331510552495889478866369187785596452174016544417938050012675600125834971401139032043447463899531309089011093963207835102930701504766000186861278436809179613042036918956237346286267780890936825551858055415043080740517667936649673535693118706665935152802255308764720498559899856218550617676111361801614000981325548893996777686282290684733307230019240698198070039570489150687927168175338516858447274049267732060860391961756323004147654781545812382160733431579195345936032135759412075655211663443534216210482763409819594762854140990130518266466335735916854051800426466341294888466735490891565784667028926211210787707418821514783135865973301700729386696770024813315346500503855448348540206476154432829553534680543176405228301402576568253894100330070405447355076342609444447546998039723190476661453149845497864980198555217652310875146112378597759656579140510756607050377058020543975600901301190257829649070692859043785099616758718151533393658766854162410903664304456160240112072170547962882974472832006175973059127243289661319709940399057212963852979852669866022511034878956364419216605880309856001354292048932875322330878019975503241962668728350000293873191725238135267775041269240799854572916093613731034252739946705918600949863176168296509446060772787410114803772628503525469110625220597666842799318196248113343490553837641815323398337253435298723590336052887302238068872985392437094967445877663003062132525372002115029004901470367021443559287848419180971222271750537115063329936027239600923480617100309571467560063775780764580939499654022097632059604912996645810177378135050823154526339173087936242132847801764848187677205952192499236777632887036450866310486558273275740930011970153565384267486341180190277655454072568560852044372785619948346244524965047196144636254541052090212107060251315791677621109061890866039300277288362478513857232859634057218752611538051027098051949889264727533953140137188076406731972305034289718932544080734061436487310713688655836822772243407980800493726652529885690765067219866125364715033492546117760620004548305524511314701456236560920381763953900984375167830266754704564297702326697054699411476559934676503365865907588064178108609224367841171621869236748035960839937676970122795753380376261099805391818421983306838481016697947791535175306527520648442721015761998916161218066378717394774775307540639628206416307703613698134030628754715032828230502305740175453644872772840529695287489174064117787162146938549663972995823230912235729269274382900120968111221598237112265995814973208345372834625949419362226670535527171165593957193462108233224169413487503729258133952780403388935801481756054445901112756523046628599105486975457702133939873236191824758564810617551415999470117374541555433693410801897541886577575059980946233862581042753646398257332190147998682574118726397172337583606313075872656373660774816840400586653196211460630697599467914850662395359985318503669414882990989971850895584505097850072766317879322695948631107190493159737705387884874328297107218949368961265065571887913818920573611407644280716992088634189906048980261499430832251537721639389059406662462017568808798484875690208189080013260104457713056703368668949835216573395811409012037057022198319312827608039177934127158224136407735499038187763511193451601285031897620679975443783020789351618155806024856270942864683952847587908958883182369518118262809785044279040236714371949979062210348823924666735372622014475485349731931960429873120021680715057488308051451957353245434160582089581198433939472355007902839869476252189408860770799048025809642972682455027366833765516952697283255266093254924069525653872368955328685903690265913689671454957555740624369567322439865614344022116517818033935248794143947639030897094331370980152674163518005590973345376200625541586422639130778354152176309945254484244412150135662396442425503024171096427617596574316264427947251034332814449055669409398816547368913127734210599232711157099552750732446210597902091856158898436705749111613683845988613360368122679949503168709059308100403433203551019516416645259734885782587714992833589430080055701257281364736378113817503916908994143642397175187229177893436242258832064752603746764169201728957018973603144542194521824117411749362946582886901947936602935053282487591923873031698138367066770332594582096905961061319484584900118256962959349034708981858559370393768670252273856745267478862295983438751554762329729115148307927701776105291883717995253348524723670677968706641659345571478598920509516189534324162162751871081554196783055898666104493764979565345011420876442401725728705385904888162196089028078613212731395385722081428591959486601077513263040936145005854091721234242908322044511335842410815891013531477688899598841796571070415861349932226658399207676113485408596941976485893200189455555850483866956593522474262766113890095705214952195809611113251039883063901971706193120119843004436616733323496585930156606718127074922586736374776741557142086395486872355143305626600128349902483788027804720602565333387501064312454470229868001171327227267622345742644099913260888406828078989746945226077271179700850448454900093138521498204568184390240931629090696448185545392998451667486636359884414843630145264011414462248913094188094560321569363300714154009193198925200226105329996170079653937876756731038850304222450994164466303021076656689826461927537672686026776582269508052605247047213016384406760815978035888157923374444083364937209328869377378588697854301764169719319786909213067064617669797421795401956740900365002523059279296914892694085919968092688614593927305104991660839227457906702126583431449231028459292220672377953376870123696705659896957041806031953441386745899413575066161902725704144556140767988009218236120590138305341158836173044339903584799757644899572564910044676580440059692803612836235122096021033600177111172778873051934235134197534919729365280615286676307053653352775837177308919543568097173783008500128651436028948827735118401984382346004296030672917533293413992825671049092235703073317799294300569456276392003139464704684948656316809225285831154999007369034077157881181298826381669317592681193885897793660523024352947884068436682663208051287304797047641490871065678303366344040071272907515078253322689472539286796242989503542860700204984055786908474470260801883019869486710169240907635731211345365650719733192558211282454222065823315625303372691841394577502050366990466090659251836020238115265461145056194076329853014730755595315009225521091470132831256648374865103663115846225186917805373517232996986919349348886878470788584286438262362498026310411877166996069142607387046435011929920073502552960409895387026933406278046470414006760266021514015846236133991899913914592937263154846194318389707117569069803041426309750149169681122319713851698413375918610188197812838429957615831043093598004651492594304494669815429115612977140969364630335476096985103092036417314082634884825797681307499510557408595037903636800195384954417337683214179954593011991104204586452693457595182436127801529826694917281683511598725825112198677125596462107374593303674147522454801518607426668874233567350959658085198462274630597736672501052654642521769992925538165205752033945189037715492810400598600020538557320894180039501244594837431076413609771535356903353411790998246753629110211129851134043006357515992740316011877322124039920506564946022183968770134313708822014816637711615007004459131170483647845333383342716472313399826310010710978266888271131663242533628918027752258252951965212635560719005699071495519606296122997851797834572892347376150609335475480518610554265804144808104815209543954563509013229587589432603952092658702944957159395392151607040785108800869181860436727799135514388085877749569628221896968829069327346532113679953049697846593972669927235049949154774569005002749318982557919072706322275834031707864859331992207885698424313410342503104270728336486132779090120060380046414267614085708037015350761397804520041641175266366928430603169687215889336775220285616737071867559825528784012790376863809934315384981730794993228039030088464438115190673895235188714707010890552159171786235592524248238083293113478975369806963193769350471802441549793806322200823606036246216261299945064794972600123596611856342522508304753514184328900451130682260549887970310887888082257524743375777204365897010464704278339842112048499661547369310493528660404726994576663666565515790491985954322297931981976422808262245893106129017811233176935105362676757925664094420411167305869854309341696108587063587321023594801761121835587017816849439868583824475688098467343913391805576104245665676492626431879255810963104951157951460442760369571228847038702721998069841953849055287840929684264628103111758628633725888989927685254069042961534195013390423994759714537746249209007589873162945414978165061502152430922874684285668964652873353260309445385397158182818092246593874936786216905331630018870971684002142915307886340889979550784734205457110008898400262656300756425841171376745184385207324147864411950092243926969135826395902905110738732588103578652916893011154367514909887589554812199544979845326030003228496496420555288185070309279688810025655905132310093403727040767331210098534268992692767670746339074780235911112743198329932085978182462185176281795610825052614937924851179554780774199934684390798769975625803949779414423299771756233164469145224190389723355653094392103765505943051053883936521525808011086223522967128427057845474975822381428546668344836203926853971125733868076706297517026375193144249684718137836945252246427936577749662138160705836224090895267783759115092917482012406999498992383790700620907555860765228131444939810014428227712402827166769760943601328922552581620003036851682697713456489796635560144923824540480674085974692790494089596114979437210736702641571637793684766506973165435603873242218508805748053923784908602104456090541574681736417491454563865715811257613376595127760607263441820073526497539509036057813370200798394440151294116708177068833465260116745853449585982821257617660730246078495530528780523237730323972989841960793188741696978803600749771444777235276567506419863645848917868868459586183192625694680383915301649691617687516402555032118481813505139257306934582965323862978131121554683868405606866790102059827920870937067432619070200792859665149854969140871341705555822659812129250312643843614382882762256135928002598530065650383935861916688956567145689631732941250585088921891282262986642125994103443864575290963410912744328155791117102325189318949158120365923487834317501164850123261374567760940336316799386470720347616698210395973724962709542689380817118158976347941579099388982011118986838779165002269169186319258222038366226070199687545265508748588817578250960058078194341288680026790455385326774326315554294894191933155793870365552225257268509978376317348295596313440647745925283773058466733122313265842678159046432009670698761451765194082561901746595749467796031304742268521860003501447137607229401482179401866671049986720566132533915232485001603031435143742953732975632635339983010204836386354521635839976420570465592831727477069846035012121794958308895203571093849207688270844590679186362983977193457726483395858629267274204159843435126696648298085884085526537364589489142485072873661726027455145413898408156963969088741884193221315981385089260618033658185517710106049599741922348114308177703903914329710747063755936548699308145782764164013051566589067522206699698832853727290660635477135536915301809193596965638046974415650412610414499879820996773729673582190648522205770061905648384566141281329078510625202567154917507429595386652417924615144015411397552450371137962197101747876270120411686539227572922869002076464890770330016703463424197429641047614615948898386262762239205548959328344650159075796261031276491589928823150305345094267530454157370622003558059482628653384119381149538931514817754956812229512263186583791452234988915115870556096797979929673575153912353013996210511610685050313990716240916033881870349029741439973054351499520496290136062059928217437201549962534408791768929026462414459991960518106663487608007248592546730611971817271378190940362844446141602663180654607823017281341255095018479518704314187278809678075129235221886243670143775865084526734172877670864059714541839380486538489876605991691028965292642203505880896542259069622151037341784272590405478750347283773588210635595841191249608174194991794501214262195031158959267094101320925374752191684378581362517861169141334629394037730882755969069846849118800995326113287085890460766206820175998600223556224607319447283929763718993763155052695275495047611211475823271876422693358872040388056699102796744138814338752653680009072345972565993451609458946107932940967319438558897826559256883397580577187107186000156784531827915449395130633143558307653713244835375565650814337616927267867298321082566049374203738705985407374559398588871419616253163937318318803132731585353510045673045703541980542978341405805137231810775587553547518587867881925548676602717032257478032835004302549678545974313786715510844363745578719985575766250319894806722697944033387648385763968744355664092351201134025944663165913402176432191920839275012534723193063618577931699805380578403129215733455294095119305924944295124629846327994919053089262796030182455296744110103230787037237815860690213197062529260462990778891476447920629697978150944264389806964522997193565739397585905721410298041288434686196075095616396238551720912155214968289847767305353700082806489286883200434373709775664296752481300602394465612722896531542859746702939504623148310610656905651287726392541118860000499930952366903195379639426175892988493771864693288900580307744803905864392115101457342843438096087232018776141794727490356274510777610696863095470474726856736330019910980245355806888211788429200610476168535379391063868671226897943437001826522815466008094206042216472862382319339271379960642801739745217028021586743483334008082614278379255549158059322042246083275128782383662100248671399705930514084692278330431470935009085553345650687278060412741021688232901174202339383032060010581276190093330125516131763143214966688250886672045237787788924987412485717873219294251212968929113533251103492780871150821369803494613726907083168828653267456992024002317444823315324757306753442757655533053529296973507257279028465385092265863025008131218493618807431464065103232212556608056012662366161258658915139934538214852964332694442141359451682432104385956841968322936689456869681109354949055842837727928183590426275901638674498252815956254341887228735083415427863199549278947217782894732627820563532635758938149662549277318215321090552492959058723944756494901755359741470012808085866464076749037857420554154007431561670293014490583680572715206624822743358582654477946020461794410870725851136225605957053747692564739345822700066083127479402776016282922492974072688631735678130270200901278655900821195592644993073305382323253148275930049548887567215255809765665583985900674542526129059559656122772221051851009491486330798381444885225591570991054474252731956576129180044100792732848910921794270921195319812859847611022386189315412459574774192582985321163189946318505158970251785767623608483652464371158427213756341473826768495660782789911546524685348709737424794394553621068881009036614277060553362010823043956404337937427530474793411642091104434079812726284978379550094183740512842823603038097241933970721315773558937147388973505676078074211670374779731778436030643744122620674114542274483609079426029646421766412649072803155087435036806787416795008107872932910820568703713745342988982038677795632441407186514959849553477872659421317061438293186548929627065772443120886108151009982426219173877835289766028014326347722270700278502173704279100199194450406071263584509014019016290328953231814674627823629648718759450576786081411881808682408862957105482834906751929618244247140078708572509641825335860073895267549881982051318382758796779849946475112214967647202601861193813187904106701208407406132172507493110024462490146296216051923568848028248635960826720386061082072661998774892169974167479427581511523432299573970973464029956105627096610916996054334543000077131832363628097408354054641551186329021262930401221835146190255358295748581881935089323442028918590326380398963926520702543631944000582083538306960814023261943972184116604980020429704456950724795616240199750428682442490912323935823251055283645445525807204533291735411922188325228322684763060159724688022628232182230380509906190004061783556718349726213329593255706815537273521873784972834608232838015555445476448948418547316751378322078041251197644707567793191405703603168893095486880747154539776944270797468430111648128490037002402363989492984346988147979366993342350754889958036120148766578271483771044473319993200642434798046422972780780640876120560333872636055645467128427856953621446340540009945517667169406251892289488705840860966426962840659011441617176988811458279639686198338550151625315944957030460185302677045595011937627066042324759190473660351778724708591885410810868918862859707679897096514664830531169345803979560272816144275791810421206891813618095516366144983053546475974449853819905133472597454407221774530012247561404192964463017275736657726633984871514623513251783180628587787697633622034780492760757386893702398941290178577272976173188007491251122260715879535955361196243978542047078878403091325072748746848001757384549394654369576633282640669001506440114483962938425020885390172840390975123286123966958120258679444782151675564182461509762570495822255456218281413219967892595712122981731054501803477600050525270302552992077978368287800267727472103468184908050205633158382313356805479485737040642383007637191545813555744512733810553559416909281387965821997139264557336639795784861204311531994368867131356686994819528071491760907891253783613350109175173954200175625855658900377533589041679670601504013973976332140953506802057829195246508565484734897483971339840385029404974035118329496669582903588258545561304379093883977366331370020291473412143427471722969065526573972463791535771088582979168083399301470162153763853353577991222220485073276062552206624138356487209987428466548490255356689110299311996060977987176341728245811757891648060429956157180729195330978836248044104809185806564221264912462861800046563176932900626187879979722897602428160256097573427276376178317855598127923894797359923149379568292700336468549436292587780109301843839574371252311365056817991035045201952169632153831189519449600576277447329650731451606300126326029966861095345254210066734885874874133584445507850791349662110977182815713521717091759180893220721913403202100399157763722914086298880721153389011211547539549615385668656606306730653625990232664479186270421888271202944381062931358772028327895355632476112969005521933270376477048541845725844644141868482328352712052308206226186086391003987512716143398407369116603769557041028753494982323329206633025186010136863607145857977944359632625555553575101940831724362252907219722817605480808167198557084970786751532054023480554599519918809985258225193725719577776283210984528977346246440790936248238157723824693906634410251967593793765325687401111271705468115893720288507903517169926702374258439094990946380708486682286602668790425741522796383475413234076894628932286066067713969757254406428340921577334250815617167812884432975831262793038559692991531557714772134755422417064613048186116685241046922216001487217444625246555847095804929584574640762229498680548011976629543636477438069911739634698164210776368105162081090535055505606328372078194888245973660002311534987928136066159077049991491915578465102010379544062344001341501089665475477206876510721462299300352119390202154361610482706886448226169815842051683285083851899605872606372142969548539000895997004536861053182352560067807082579479257792187806739141575750106605740245965445875128520792282771097164630576585988278416627992885140528867152634840465655395879065328406404767581267948164652327217647429808592363404282148804220250001866448468965725089880071452729275464566606521091045834388115814483557834795809581561730326868254951934245679666199027529565521163083066261901444263803085932434495124403475190331065755383965729721668324961483175324375848259332012506978984886227187164454665082235940040894938275442513058225953101679776317984427759683276408734814783807689665564679418239324214720056454131687907375224358559370523895902091901526825195837791738453210687981484040747459801435058981232164338359190240187073241870306159166980925930683119593106006667004370864709865049696708087662254962496143024512395809701243208885611144152967547541036236272102102342071303174384068108394289348619747070826589060250376379659651600592973198612677972409035214825156583992918972784009351419068956749160523836953148476398354214720095012525936152931192894726178300889813944919581519357023631838851151643584440046959703443742963512135376542681976020206484880505046473129208207491760439817101830724451972639014142141121615787898395649950130031271085384757371286677722078449306144173404744451410396752348299925687007451918251972356081295780598158086513608574231201876917155478024344226296135503024609143105209805464801188842602883007088954986212256205225125800014107575739350165890906495804037072608511283650402594791049743960863745742669557337194460393628186231147781243537096986714757317063970072990104558637588613232551009418033966495776653069770710365492937875478493895823112788713701096888077579868588666088234428242024600301701089867695088061976452349266651604988829774703078660301628984574988392442610571756322107595977814629721599594590651433394883755447828621665041461876681523056326102689680987604183826796564182294753911102790272971677506774264182771022861955936482055547507613547941298709372435077944928367171953856757944852807749555034094138504635868511216599795204471738785399001779390870753067350911394974480129162353861440894985087461278367592674084955792773045463243601853687907739096763273555043362339881685439547341646942523040778958258709610793877497608831867508332094072252525147438080352214252612361728649497181121646760597048946784000641205513613528289926405358426360089480286590285435098769381659917732103095326925690820361449789722739865098753911458394027938661398679245990054416752524304179191720363478738941394008769983705349635217976459161760732069295446412364474944453166273116242155466772382973259822132389341533540588709619848503702460045427043929058879788535699610231995068411188952298605057009388594222855656370597392976296969013549390889432368584885196246599425650304531837979274572972058733287258516509134957075246524325362338237403112323061584048253107863495297208743553603350520942141908843864361863310255251188413264777329814632415429143322466805750255646953178077404449723781199749815673658042587343962007605362242998013678224747599570130453710406864513836829380550437903615624722816175348726860659384731086552835367348820671410578000462257405038900251492737136395810577338162558681993879374457429592286330304165840242449083886782107052277472374539269857483053442417502926399881077259177865517045419708825289125860609184323522664019036435721352580433632452140043057889348794239249415060468129820303152553279546320395103126034908614818801419068554021766553742444806817713924705419819692250098099006753098830116198307843865936839516178573572986805651745430002028258574055945981797537146075123462394120954905453069266976602676316709298523575109441375914074313211890653335254856345102066574301155913739197112943061439388452636634313375449229070368808360259228473359158741035769641717628748058961966922236073532339293653603630510484479588372876088884182330453364715970069355653945034118784462459440052018587674514232942061419605122571769388929168310694307789270500722743594174192372830691602829759490501573876572446084661967956826330328749312537750586515331696577680020296609665468321517516476588409163624284221403230460748831679597627341741641996288984614221432139510042864316691562480511273071395908886904780981013529442834261368802004687299453330127642729545520852245028551329517919395122472889895266243215741165589180059774351802035799467827131520324208818318290899783456158378637544600027215129611405209295402919797428517283067663579174664463124736591133851591755583531040340056256410306367347600453031471330261575617898048816377926435953209371014900604556216795678772916850941236241038541183335567965943194737968202289597615126723290127253854043942692248216757179634996233004430200365586522992981471323485555996912868611419030035871965667010696876160493271101797691892151560542302753090712950191074593527683048343840207608350453611842147035176449651235152129173572735177364839650277368645971157316637635215228782402613690657429274804389277156499750026989908291578059850318068581805072788576635597795934027279875971113932806489912347260221262034010780630665709339117414141871484229019706956126423190045858303738525701689514099644337605430660644228481226544720542202462252564625622990790117553053220176381922751413322950647918578675611823674660578017769292338885058647055682446459383070031171286745266719493341918137277716518378878516297449756165933620968333750518447070185498634498662544534313345964533238057995855211913001154585693961719746730209881592008095199869452641056270352116171868349818390903206070481095711598851278703471198156393368903906535678033183566123373590106980173851892736174785534186762846330851573302198596323853272444388467496195514982359637924689446867207546889420608430041143981727767343760281974643010456682362347196128743646691845456368029022224572311496403893303666453569240194021302566387588391473605803031164525078680094234973591164334096144918908117397110600031515015566728870922836828055491024700878756394011321018458545115322713891793852495431497974738099008427382404361211883841329910867493434286051044382762755839248203794396055885693302118430445022443814034857046947136469383797407552158723026210471279112195112588272709586197642525646790811187664699162183964079732138228891067435124912589399651044931401954343020928990504151934274143496669035339944608202407419501574846650691775248187897142041141961711090674291363405590052831817432769901094629033968989772548102891861395021187519395857754911448190731081414866288405851049907696567949180770525493407955717730025809828414671729351373160199556387987908719063766701756919582270617354990175983098335412959757242872965451563103563760384383227071970364987688049343650075709538927290748710941524981984756510170651245429929281348350524139826940362572318294454588676828258714371308886969473112167273223170554996777549121811260627496600580607886175492313004256805389888455912766407107750267687804722404392730700839041294903472694404545459657214030888830745198414024150414939958354144821808060439032975952736844737430809975283403433533382028701075355625803972332558764463165268542309031144349320627823696471740485034000447677342126189093496492186962129168041958751054257957027305471037192643037403844110790394042847698890570626016101898612067270462781827567601801116756929362980735868793318169292159939631473734058440418838481032328288325711185193970674427618790054004807476887648411146786142184991019958291273605603748934973272944112832593406711878498871302685716530128651070001965940694037215510620517335455544231993758013760486079057636270997632289248543589115289185990337965211369425208041886209425444822597295348945188657056999865980939297822749205637963626496948474396688819193393549724235492736370572888299534904484807363867407366817160597659530461301545933509068044409981342535196448271035382629175086378575958301728282381473369497542950722054699481862141935920138347948942554880795964624692108398917609092599929961772146614866031130162428022274852041290243926461415496013301175381227676488225770652282606844519128132081586909125626257785697197097735403294374075250846000314321599781138701890815690259761026498463939232603869595138342426552777579862866870032967404714056843604740493937057763094488230503723933099647681896294268388905814581226661622803926993477156687659569045679956852150668195327713568463521415637734644712039085412652791922717935102688177745453081280896726646004170705251824022483931672482891458342827044198822808880383257213212173141324876506217635560299229004794297435043321991468847794681193080267057511739846451744696750616624008036283600140460391270205960143132203987967459070793506691800139157213520986077934149949438695359132053255038568507846125027674255406775479651087219781491300519694553508768442522822653467390540126685620362904787282539971168254127573171368869924602636647650745085046816688775756994551690068432111626068327211563591640214567192452370474027968309319661700364546814869108409550352648959351715889774882932646743461914366312739704791848880962381656621495975066073445111487256215665365852562916220142841424757834991560870784333272311411530149587540749553720897357761623727053351686154620126183632987980367471122016272925016337756576700448256689252911904890613142677607908835080829433197096636438551328992198506075239918215155477095788723452682491881004087069800432300824896221057623693673706576660298425862795237638464499175725483341003542390670113744040463980376874251579487410268231258711435992159017111057125686535274334215008590115818487252032979881345484645657968234121376292696090316027887034162408232861068932021345421031400299517103189032890779598040953310680080621002528874342103969976513674565265978442384958529566088109055761634980107435886566199234632371952763802967965553102900969415154212514912699919334815399452875682917788951502823882958124396407392880282616212838584182700389898689918717654420316162115049569629936452908947967896673533912002070947740196130743886975107164695409096518975350985421938741547392460477090487945090903921738442870899102504012594180098448076010015299387646752832335386474761002324112678511305394231427122210394800194101416697951520892508568188731759367354163279358938209329934056465470492592704878046009757834408652903800098688843479275258839243220287976739177131429063803526249623839629776017106040618435647120517632550888480905530649201033480876112065272196243111367782184341063062639814599606873874119901510326178725392469350283256199847418038074985944476490860353712530950056521315066568562392126062039288054639475084867074959370031669515715626796455421967011705686395033558460892295844530135906720934423398282116128590964964251283949240408283845660955796916561047281321988721307632830706844726607702955647185591389727359916601932363108603450794078805899741669924204054809928531311714873311610682715476322969263784712478745386791890858184719381945920332216097703002755848804268235125345531632541053737412830481674926504822909450104838238345301699693982057146775722488010867201740985772194704625337564872536847238046202042220599099238920442355749237883758188073802419006975213111713171657491482871723988366980300216339848023037097908893169640375888371954392453336606461620975989451930914193748856956483545279753660274769905849771373864749876558437355002686639352644413009878043168889064840342889285526511739976090648640099694134779958223948308783858939521098560712403763902719341688021681434385682526760014294832688908533708632300029356217373980786590517592567197264136801740545980634433840845035611436942946635131001392001688452356390482731795353649577168971168670933923699493038557528811290443553414876239817622088512518424279396002966970591270855994701761020403152505463370611000251284761231680936900507563534832194335428805501526045236011150460795448747360174977236474527736606913274077320735079810070045469279026418699431370466135523614312692458895465476107598410196332361257265526128249646981752329413768668794062479462791714265709473926370734439783305253422776505518645357122363984109482952339498877261816790049423290956882690094467573335816583237532036244926508325704444038589083301131202444985327872038835821636469326831495682221559356877183966551683588437110165684093259054377870271765107567314906687311536657466901605414641734713016093488267344687736188850986631396337376092323302073061270134319899394069031882455235485535347352308889009267175868558475025870099844896901370614729470079351489936444430742460533343309737891487487082513333108896338381864572004283771788439682789312027636322370435384972238386678017945632466945128341835385429651884059295234979819798029652493449341650054944328748486189078137208646084225813678974083296672343310284664272961626119802971430773662958698452895411346605469766697442867062501587454372029118512438051618406008457724613089453827164238365163029156288505404676022328510332128648136819766896036700891067218647900507172467443139007546902132415686855118604377818786905209259117426181191870556204829151231689202929327750008194100786012849230534187078530254754706850507413800085394556892651270189670936681115993075162769664675778239188892447644608073758690796310609503821360138468086275507406430024781097171171675493562782777664158478204131140074746378465822307156126046517155019682516218384846095075021452652806891151606885395126344713321113922125523071944659407254646522588655267788373591179467700410172505844919279224987936776394235693505178505496382939109772295465203540313240561949487457078598900778511606536386441460400052458393957824092636748479061581051457992339954112618978849667843627745436089527394237149581699984890248397073400505789963867810106254739651207050526768835290444470450151007999396682043676690072039993649757017345795233182589295734545952015153034188707764309987794552654130638330984033123665194473912528886217488643186872491458241727121169443615487300768970871499984133481270880247025182921438117028105723059321958265932246870332971408445661552677917278646597417819158221457906507099251837252888412856439116789101896665976987890037454688157438646683115617208608738867367395342512301182265017872808852796199413358870652055348945161331365981844767665375312155403951816525098338897918412720861828619191575584549686697158445503566877942271171433647691891635766673673084271506286353920154086573348986201964752636858998657741345543127314493682239055509954785670862760758820658526265137889780215771429526088844121402194011061690645826463292955068937872863458247442642647376085375404560367956722338756553540247713105871133301839352808059880755551003508506221489005025428986312213880860663019473962285592315215356274035628889088908080751394680521827076438346229886082592467871066389218953959939864983563440090772611431645983451321170396489568995574421854651221680810482427538272228581795357283056479515349034421481324273059578509460715964058119966230402744914334294941146392871303323884855059907130708463726612818583370336137899778398426283765034935537618020224288979285365790116042672232343297379208994364158925811600329033784596100705315211807727774755342594207691348409441929859365329142483835127755087223733178164970338228919033799576063560552929941996038008661406606742317118602078958134970195957449503994783672846083349532665835432168087225313293785192617622375286011105812583425081641676075243690029673731808526934163895040426744641337159595716141009129616498919571154014505087753239567555894609119250226014302695315062168039490635757753731760339175281321262779882455590988733434950690020730785254066620699530507921250215296904814251235045739670660350885730982008940189172802699432189998436687361197515754524732315804300597458442721675678717457513301855889517400604752959762732923775300478692930388645133558852541741791688483292024951626625824382953903206929126797522571744141321827979446548332671486695816906140341335600856285523195933346391337187468541347455532076849335915661274558555141395786054545906627243890512724207651218522000119965387181690859210470484392917204973568617872291564301907049327410880770824834844755556386518739261096279194891524809553287182300477524563728015768744162417776398356757823091218987146888803473603279797016158688647466858634834118942757454836596630173538971348671698714069800725062451564933587921634666714566259922901777297050111417712291404599921147882086977754793937680644900314919853657865083729494154344256893147091074102172814974571089378308700087169880421377547588722278075119282714800828126150867059342378474703408149877298803720046679135229125005037189443430548805206667672064120470490251903919561934521961468086532208652801021683422421716550569758439816990200193114311501492698374309330600628440467390458601246435119929460214045559853161318557454681209336997995250136037494917640381988109011061232711727840983652211484468220340045190904938259940485630131712744048574753741224380234159964710899421928445660849839261267338769331377510530199008286598470139428828980792280663385824748553619724753627152445741101856767639097917503679047054074437394117370105533390931146981591486142516247987023570387670709943632676593055209103774266230535773623657758608666032163522354510643408450949896038447125704338457993306170524388016991327648388503603101878110338039305924791023673677045540801542016157569685441568880801687238623865069198488720548499854692444070806064413378693022136071213614770044787886889385734809521997990856938077096227445349883204814904364874507449630011926515564641755290872792068269982264021944560696605057627243822677848599411303759555029153424663155242051630434157854665539974923639762665284153364807419491547127484661459966702714242968897535459833160739163927442463603122609453706947766947904293384230184251049642619797563188163611631274939205442481911665582453499019636134938753891600564914649725423814657266238714399912419076841680068312988222160525164692292627351072114401385826835111603014613361358015172851446310754762453795081883356006923514081947898775141286778948288237788909184708504369322923173227938422304461771602153869486983713229675209801935166121810162031714475405632940586582774699059004492678200576906352229421600456517967076451403977613262399018005589089748800959933783870995585018663971638489910817473991362619005202000927871942753703139879597618092263943098305253851953689269952856544751250071748003774069324305613229791012663036190729184358374327413641652855664656164143074846994972563230125857512042778262826441068353596108066127671871442481509991923900593528142724862370471534162438339954184519480169510205274970120775918707376973978594067649515339525173731496110720685466686415747684602202628232777332738963782550684153649663580298446072882009825807655277735079490657306711448225815472463014355197096402455588092074053241559695072721199967254055063899089040023487829161449540455389510548055046182318906985697280791338706096039671076915747968931418948858577312842112216979697387971378548249178501546897419096523862102209243243082457745441397067122684334001298239165737172124153324021131960210947217272590392566495728106188915817095363611047659464582028172699832958916842935212354306614362061280300991775449481888289695614529341488462420329191660720267783968765526286348500195227862405690289266630551593097640473106161826144408259987833161831495260780795891093452531271588600289477893403411383748273122566908718246890424245670319001707482256980895729248717683854859162906904005423211838541732323325056331661224788585461339754408366278220780259532188407615255315352218057856630886102719801952767055689619280178459750156479870983404572075959980872553307087683473769946404765160453921545823078205569375314877065605060039014281133219035971510461626537282910825994306530276524892516793558715153182612801414623404065785111802636911583609623629775473830259386810832088175665908353712798863626647069139389138614168175785110511366494562384342667028253316403184657520503305762670620553075930433721106039501085489708969944445482963937663671817822032569765067600549613117219890535543606463657688595891120816051586408460299475245941084493654543767171785497175316768440428296120595881492132669590947281105421664153509744955013586896930531901282301133851171202094151202161038559413882886322034406350713956603719185836836568362018843388652890771095478361227708215463434581313939541208146581190982773943277512786630270532769759721512120888923002611298392425800662668345504391579056966664575128788070377168459245696026743804479900993552840703437530010935041467649994508276035235813119725631752097140237518287347308857531277382365545895171848877837075444132481365395928341414836757735684973806966579082710257181294191468199777516215796106370213985762454356416889747421517355571316093807031447789116886703231269280226602725590644209358032118849818332985194584608976705377651765482784173137398487234056276728798591294465910099572652559652552562885223771538939226206217676971416580088373507545062878095326606432148702348397630753439417823694406385680171843980416001464275370638076027149577637944790495065035955672378853770348250795902748501568764496250763118106020958867782771721795816865725940295516646868070800024054047744390123486614066673144284039283924058731617876332149317572407997445990961329010076737561373042002066060721645589584012854993644507117940844831008334485226113499398694591808011538296241300892556579420443438103710270593357070896586888273602025629330390821644439776637215148898379003692748971429902521361505299136414715819293170884818165935289627760142020341548395490999167047544577682982469354488244267955320316750766808587843275269876073620916019277914706151446230136016530313008849642964120733686687416917432090800435074082162034608601880038801220333734252058866094267252926969122807530248973255458100033982433414334119467229067532472097830958367593668784805807669875859634404870901251921473850457048570060766568216322264212071821167171205688621560331624153749432711340000860558799666436236468745042704647595924219307085009687742489881221069505793728856623734725059533832512299050617755762773627460529872759847724623546832962881174670452716589560152876833654016673796288533635755623157321896298220181793058965388039043564596891181970461730619096322154071663038183090344242576642786222049292771828137022076369512172461977592995091926662993220181420859954543448376826581175503434814837882207712035967232103315668707394220517748627988449795194238278993743793322441691792795541319088105610747125905059053770816969505253946376859978383777246621167595992024920279554427442690375868377661383301727537580186744847465867946797929037017570181740903585993914109171558065351074398942477662807396769097962630797766371740741793924838698575318876073530306894873540658731280139296572995924464979325851856583047871064112376035654722624124865825196586060442728986971424602224036852324770927996368129085430732819808105979064721062391610805999952455281092017316095888993567533043576181489148105469819749443911637624474954294641294534861434296436809123598062992809261551162698484257642628341752418883420948306497262256709845138888981123656866126538930148369794099296822780433010037750691617858628759600402623455445294347206596304123205078894762042252021378673251599077929123643937194069569030411520555941699754416776637582294189742327426605552868564137241951800140560409122632318162242882015595587260979643797167368426525202712604194666108432334817675759922803031964549321719285702737641906366072466886919832921933148237067410835412762843271899178655268534727450553876861074792430764708768914609767992764106810922645132529814940787553937998761841661987103803494066922506868766989962742236844250994989538415737609027763077799351018477517544546482348689053382064199820005804607388347555099822667045752082835269298690983773039976877435877874513301267580670311530487531411159729048931030172357103306331718962884707905517789554775222331822227477984850041352530342722718317720442495752867110791089679107028929135127094886004374805125205852101833283392652449655875940970496286797185231265475314257709344721797214295590604854122290930703860152309548737355807164175110172700426730099969003567612643609183736172095659000565735762095929424954368071272858046428452580686005204189635368492812898159482550353163851055488491950124756817528100614765659290525174119491085502892304088455091758080406106730353590040099691437730017429069550799212064605545360092068297558572373796044533689164102764211341089309546469639071142171885635894385292948987690763292711767431067591460874320933934624102861791514199644044440402784071836133205142648569656081631519346734755156023458349503684280543513130873666516868483678604647451080599862175403659759933569891655320022753601923936291385894391997232629941126012051416893141168308177172704197644069083284007163474497622247777499948369739836921219920117058089453936334569851591764512542251011057252769895700590470449878886823116251005784023059347981414278895923802252974873938370103995691854361385189789036934216790944915116908649644973309780751767930322997570018058028231422982722434045148612456655405565218717473993684781539411690225513874842780192495390072038553240311415628027823042902563794546629434785957108675022647493214465561218595731356961543804354461233625912280722937493310870337912537680161565181587438224777260757070085176215527987932023898914038562786583515707185301651178330103982265255734820468184105099374863188997625555353723964810551143161038018938862941229996196286026415656015273524744021553279609851676494268673046057140246415482875204348031404043438616206695782725641420607574469897938897308333176248401826945521684062848474196901940556683785678504399825098586658515983223601622725174042732106999393182768265627272507405759539456905404810165554978199202119851308807108749276792079520203135538720413042709212418475502310613079800884520780891689671997396096795664624651955232412687303657882526984646193403262712690583590013425085859056886181599786066276224678691475160765432898676993414032412860433218296062731255799815848957365815035776804463917538129644709121394347816852407022117261501198580748258384707133799183886292502784858665231602771445318648257684726608490679833803144929097162292429250878582997527117752405204394641511864644016642403870967248129002841398053388813442556382074321540222685605408925836602062351265402603261608795826253803124659137496426988182855149094317840298116648874239482605012702813116426583915816708745339979698922177945647666911903116632969149609242824757309195151836999042661152854509727019100011625724478483064094197887559381551272901934332960569219205474521754147775521354553342674953113631686875002794946378837587097397513585593218852437426694405794766447349434864193517209715895308695642955801617057462827360927761548878108129805940705320561023872589420429106360605822375796211889166191165438120558504772847190174516366185073385545050015358559163585023325301661619031883491673354986729016491402008173341084949933276662106357856832090369306579255033064373489666596052207263303367196118906546702093138138405941464366666604407988869222879152256702562087921151510474512643841262683971304626940169743425981385045233301883331130069150354112512960311874304847260279268847764829931877894782032669197811223357851262524868421724452079426379503926463994007925689220646968734129398096948055058679526490281000341588806589728549485088826586367088173823982661058890175011184897290894619176247398021809365710108846968001331455005462563945820196501067268325974885442371161973444225583296427749152462403975471967993665368321226197435890470534917439399532560771696899678588216422151982833458307979570832430670416864103886191032865529570732544418616044756558894292200061762815047875621768718824932111425747252837817015883722611917257143367592556741351160544447824145939965472885412167724553556966091876625796813386633805015186434643953977025691806425859641695975624839623078545179684371622839341114196518156066538397031360200713537879703648112276474120823830163289348796213034283756957791796729103713059107819799246915931684972768452450847552275947785703925588410814363638394700707418315877646687926193917705100397295951011998661738053980030074817518582613637139185486350965563082423996932012595871346291039035148766775029321639894972931911168669426571585656756081727254815579345675372982786828948051696670770806350298314378870044999142547927863481594032015872567289000870091725257794859659124781621483291932468738504573407633440258072933263062778443285708825608468322175305531543927658471389980834993549994166497103481162793467780617893011759654335637785733598719564658222547493288018081334100797217592457645699891119012967808093977251508640285395478041161604910814387494313804243585594608672779432198230293334840983952062948741521235588714736675666749062122246412902340037003398234083646425323837127618428136163062802733113089898003551114137602209277012706643664019423353613429883118731895392133262813098602700708472540810299761264705157785206371769820302662232478081667701443104813568119374757636155444141155983896488788207667752478130201713574855731577079748790397454906265871764709590401030835136811252955702083990559867180299487265162618034288353818854321876354796677728583794244462420970422398013488478919631207231338958981199752534869765497558289546592184962904568466141859886390834496088885032961992102932148768002833099342778790023207678735292156309687848229906933236037992431606223915896754338963010402352667871616666082430771187524550952720640968605643195600907919872142884463620365458877577000676424009273967614166803694348171697131741569473700524460618977152001407936237700881434492357873350653223167076430369714957981552329759911755602870979491313371142554777655533754325755369818565865334668570857409646361884258298676692416647123058612981105547808803425468195892172668459743228987142686118321219426341538089104792734183253747164728033734990417504371702467912051400167306989985730686972956232207832069531427504539084968093812845252666241902640564899286963746023955506252646250967803536247708936359671052587953948752750551344705022867450711141944601197684293932154881672021390922001010758611388843584426838695356769151762215963587183680329736471548077544432625094192646859805151519431572386091774735620149492273293994693295923089740668682123006610574828642344095874392660042973118266984583131347521425645855022700295903715483311793602306693835254262431189687568005153116097018787100853251766116442490076772416142688548480073772167738913071231346492815890782950960521671695456733144689735436863925199678071385255001780117141837970622962500030527575731010987256682496345229329176591944294079015172998624891588274013397306881737446079946426150647662721293746344268505207002364475016226656774638222385090841322917008771699866839222187482833022584058511756592273471834532216236367045396080807500036759899162832994114682911059982748269005895148280764310373689932476834704694069023150577417883188943171603433743639329814800636377695142598438819100602514301027698307806535468555419304209983304038737167761833637175954864598358325679139422527666653752423832496785457834522906493454323007232062964684160616701178899281537268407758050830573769092717122585195684567172956265424386084132620759618218052903501951835180266810359863890751482061516375861983639855752080641751715504707840745670106915447424689447421813374317623592324050457850353472442717621888164493612355820623802251210325836788219321207589021298752735282697460262122558194215170763115990800294560419115907512733350153082139883445708346085774374200063367680159866306022734690973180814051870767059625445461145115256398878028884520779057863043142088119518831789318246499540641130711640194401468896661094767718505291079622174003830839956733129489361651079333016530685478660182279933096630691536051877229667429318175173323477401891922082718643384115500561142193197932882263586289903922422919356007197880477316227651588261243363560015910948531700020190324611851706004641357471194022527843294184080016589471872039098378625587412927864898219916874931899140349624734264758451131060288417204436718774431022580150333769244762850703475902511828531342887000393417779576446805458795327004915558901398447699724069368045490691493554328275750548193527876968704035375032265647819187280274765837824326469049487908885307879386336581665961820171386375798295403470066578291759844264337675253830007369120468977885255712471887073195245517957074497165461790564861850980085306278470523918171614945446137144938595722016707295620704608205460793490436499580542510370315795534279710159400752917517416203222115248788710982667629352111274038772984953670415226322030394157274380829879892934084261723827706049173266277843808485728095921452806218396713621634762182886119108439512609505702106629679630391850473954370476382166189977854725876804502904023196139684400743516923925930920828522173267562784990213170758595361215260372775117555733665600760186203807739652758620032776659826412810534045688609747229237403023427203183828325779768639457345955123586771422499846286429052766044080972756994799940817595393599110007430426832943015411005666806987813280591198447923851821595230935225904907985290983744423359236704600144124929002077297899196776351030936068049517917926061273025417060966046229582054113431900899860095963558837119254859584476290719653299359341683044375987922891704662696033802771939972019190478467218314137575411460919541554528513813565933660886456031351338933083842408696347055454258869756559355487181729074806708727901200532526446938966511748858592976331469318829662945561914844954844855102242102799621728568920654069240991146555930408967310737709013794715212198704822920549477555925435516464946693104996433189349321760178705870257445763510448056308870630344410014098879994151163607544119954771459360932222567429289163557671088470673584092995931562026655744461151365567539691891279354372419615618311532193785148989416535290899286544661359388596446071649613457757398712924509457923940414320505113246249397027895145139182510477666449715308907090840876762854930750830066685905929212284228283126760642508901753598829789033619250608838709336419727765165568299594301394569550586974965702183708544844571576211590734085058511669838359407916523384061531294405823825377820338690423473734321645450500841579689146508277584712841648066681021049266552829700340581727033848393951690576671691244229321422411804069712704303469761995862693275645357383577042404659466391756750711275584624807963409372629779970109936923468849308286649012075524961426155712002917626331493689074932271535306742974886866768231617409278835373549555376103926572216816422268592107366048927201777435151785954577964898783778194113396414056410420267141026931177118628459122936952038230764921648929797996707633902026174625314636303290331660573451768026065661694202717901328360076585608128741687025817661260496457852474728736688714961344088714592267568285587781461402571479218289919254388680893966981995040280635513844140322581981549181022690108167488411518303439586103479736188140043877124833807813442129185249077444655375493005920506585927428342146290312437899951497040478069269006041280181366260056858105911008296857512070547828488571117167921262585991809362506357942459818133703256250094924556751401962605794983171579290303999094572795099585492958594388928499792852359207491636680810183401031026416589291108221575928999115675368683430386255395752424800788660601622266258383228694059216301832786583429326662926337380422587023999214352716050076339679818141195749542921589277431121693835728246195295782948364257581251726758295486450298594366330027701505769687116635876652529948065754960908608607392329448143500168860100158641339917211923686746462461748145951929938745620708029058333534245021420476754827909433324572087641102263435703626115280468215039089722852731141000886470839791186315193447890851985532763314093155544258136901179926723005462991586552494717199844651972744585568518663838926014069503142935878604789736309891558466788174594782672464883972175509326188182085781169237358182289131870187454654978575633345064235823792943872839171361063872374797513728837018770032962883769711994567339524438863139468818057873271355938182016508584010644421590765367029907603346787019162140294169622079729184000500730589532671239310249561219466348754703984792511414183998431685298374601743887129927657149413475306257161449701177937749031814585655164848090570187389692340156188896983853952289705884039588843858654040674054713204791910137849581589151284026057413997250542896794554885385415381264016030906908299637443002725526015192405485395590473767141529036960480729635384820360016764092464438378620851891608893581526897144909994980451311435959296654673105019202631076327408940683194605496609818126642583119023286394304947650117863577168211637938816825275997869977003192843145849021487702768805445441338561496467916136393766969977827405340595637438279477330923664591787693751467800583129190151468632993185037594864110246713394918232975779125191844005883310130861569198965405403877375851396676303578215980628532137988359645947844551493696703094861003516687513233705183177432122427056255324869847266577627419297890380922135535158951568555124001456826223245985849278736452068812213369342225581351715427909868719095476218453295184444406845867557474220381863166127235157484754164308874090687684460148592877337530464826498736171129149526233958107541418966808147752930421705159105646149975406848966059756759610459332567632077188527798712220469259596931361064307903557931253458786217118730549858755843081031986628751019977581854873600096405978484576521033483053189745023313373310475896673485551628785004939271422572133842913577633246003787895199605711975779846778716114137176321216281409347636482686082520479212509415211199988756183267256780555619726254742352931391861770648339831785349721160305554825069743905895904990244069738039093065127695068499018816388944277218215977500516800526761949290423679943948187186947976866226111453071412674598263715117792867357284099402000155596348809590612975988759848402408059415102835173627096164926854303922341967723560458767097339958159296985593393453500411404230443535918968206409675838160271710909539152366796056419918330341529744016636640037778316992715209616470064064851508111012369475758276549905143961631480001828312742173628462286110322293014074278549557332281015128795041480217077122990836593105700183445847218242695484917429555305261626827184333097246125160892150453992115975070177417021258186722145061612279374092049607407011542800904678480486908983293106105973655629149825497797610030209432342767779430344187641328034694664736555126296237575921554273565231196121221289110179070225991824869649523692219902986054978768216250827279910940274587520184043719397271283554082500253461904979226779216826677428786007738154080848963477091680599608183190980585810507198871356941538731746792425526210882404370366054902028922617732088319320502877070794839533860792865144761510395060294355252497906498904440966555641239702034406307846346056555735747080150948763588164472592548743823038849570673940740793650136511382776692636279875606228662588181733007219422239855127967776902405079432761612584060011228823026655556635327580474275193040214400284732865586892174165979101244582226241652950186219618579975093394638683802395833596415831842786888099694643162972836885909395888085865344550565649004507059973997979798984190204929567875439010042132397145686856807427681251062455129437815554713607288111689333402895004829806932766150447252258463141054752832509122235228285349817373322357058556780562215323553037173537972061941398603711568238768193531088471547305571444551905744382080756803118349178658347617026183122283540574538817215203501852844086295820480452857112978046268426807450500892131108712396009465851286408469226292838861398156353881680003725642122940708953130971209945240467364748970127833303286895932716932520285490231405511189005105415945646266906143938731328020297191952621681627272442676856513958349922866288503419816923314809339634017875429946715446756597615102228909775063421088491808346853557388965622258769256692016368947787611712387702417785250696715951251910585043660656303768959579113589325103618049221389001687855631286074230920471177870302932258724481722462041963758972815418378758652170218894345857320531291171468451237277896880160522751718396911176931421180852006170863161197626245758890902265231823930568730266188651594846322441566939935230006388271665048422452969235319413042451025076348713109138268062827161366935500041331174518348446932543580360427137353855825351527275956017602607596361533093002885140709132329908999079969343264477749182964452955606408998269518573264652961384162265407850815936901256623897448655381672978022856971492748819728321195134083134423005977654696721952444153867551823217043487031855254627449616633539712340201181069244055353688260281069416338016402526912192090467324159881690214840955140986499073270513161533122949411798358304680645042044246960664758467326837429515408568271546718381067817350850319737632296273655817314664592238924322651101377892650746052129255499933589477158251041896710967022584252351040463182619098045310443313197038922876085728409587642309845948736517261891356067972554395195043726181977931037977950534408700509728335010036022064516133602474736335686633576639864588333193002024776073332669942549648235830937807062417663429793414575121738979714387648989974910050496400871809420684827567541560145672863159608422287798877152013921545019997571770705286506809563566220172028481056209425272823604007970240789754687261726796405040961884192096032673487871618798202438281511562864634327145831371590666364950612819427191723239593638876328526502853082965432146005953299367352950118898961175215528052378132946990371293573387476430435432161619954579798851372064520060458119702869288838218754977089926008666972036080337645743487039891015522391010915603029405938378829054601627165414961412151987236481359369242840042384398175361348817622314699319463341540078204750797355654522448122466025675795789435211497180835030937581037689381090259975838695303609208864169215693092338253159023726692874131516497757725915153464020757871068844100336200538321733882381726916912947036990943959342817116805025888173589965064040535193232056754095203170232154178458797070016928446864212427201319952828556468754357045212796936436977053795568121215531817417317759102742076697539191559014630935603249540704948187588835117604474135887908166679016968886893912730235570190078468065717520009007102283254394638877481614537417899285176179785000545937165504142311085346260755477926997563583577876942754458439327824565666000225433913060903987740867234749539790119768077415918883812303685215834644992924939804684669338026778588707538413081187438146996663754573246283447233234180980794705752962331129754442430841481539760609701854148594392491539804134112801117571193922330839838949767125135679179553922164626433756940132707093493253877540315262358434619054708169718288247239062783737996942393038855149047830564836713433620163137916293643410742181505013458324543353712803828917296312125430321325422217031496466397378947535855103803408303069840273997435586836795458667415568926216455069587544810957859335361760564822517420937822459454426328792156359407208577464548210138781477653216132210097285844209439837314860560486080621407492033531781438875616195147924974951477955423452714181059667694770332404777168756739229841985652271111361041611213640656440572118590077801080112851364878648492955793910672808756011394439962924221493923923617691166053264988291768491326737077300260363247293423919885413257576168404418787127029042833137919178386835745431433245454076622448801357945925368562574652849228976366974408125875728032951467038107207091910717157359028474190412159070513581680379006946558870756752541106967172547533564109403122239681794926392114980511243426325436699355447493196683884424210712614099776379397680943064389454769818407556874126682071234298737752333104554476529440825972108713269283240064404613881130143760790492191399966699316403158814176110012890911181875140662299098723701676485642836431592382921191953911433571797425646144439962021267465640963786275686329787886206479326943127271462771708098741113897306442106958222571375389325392285363132828530751267677255270473628518171581600115379921438627153856938307946092500494121888988426100566488118592042934438371889360622224000970141096603136049249010819280003580815346373248068523236541315428573525802620330951802845077520327913361002213413115628356464643785381719438290459726820382611493256823424298985551939633133832527144868775922537305761046771895399340599388012046016427753292148125761290787215373173276760991859370214079410758516605351434228489411425375989545390710369789377338669431212524747634357361914638926983450543397518607802071977848367403995993663924470422402857637133713389352722554556533144360687868576888898009105103321149569551022175033637631405604086653258229641419908940828376907588288541804553436262281718901525486824408722811637617489113884585025548373655756591564870907857643274350805841557768140648598535693336044376463707780256270357483648734208337470019474794953805001003504412616214656291188436584563934670167313893063536906796604930012777089005304249811935831735296766620849646198037480900636662738780978546019505246838431887873085524688667917557333792682268746975854029937522051055707290633992694011099594263874656831538541118203553572078051771747161120721746807238865743531154893534844828782282004019078222137477154125809294529665736342619600986259941825683771207914658522816497429606876399185622237384194916189871277240061085335084724232310833492227203790512357139507496341887274117827054383462800598755317887157862491390607896146422110871833885651634193470503167505168203387538677065600173063009288326103993238655341519169104762523764832183316817915566083105370012231188410903534915550237196043982516223821439228242348107301217613421595828165597044876881096688235615269179511881260354908544435390327553247848142078405383306260303982494746230106284556333077761337370163108140414662476375241412086462767584655826957992934767633897687261948381141788107249175008139647665319402026110573336885582540560933626857635713771991135936254183430766265806909590399102064593058512808609542011187689005513019726004084724415084348209243365440114979206783143343994755877698964846519606863286055696984750269326064776195194526533599465658800809999505454456773204797058686327858261039349578372463225724692857214846490901616324618988209804195589771912519098875283334095861056603971950545098601611761924400728484579827927388040738272365191530156318218991948154285985603595975143226473567239954322400538025709613474234545503513419990515768848177548221976063787804296302431426743259426665583129692706199992805641970114214564154203674764211307963451262274077881505074739001145065856694468368631409832055910849053633849239180649368414477323541083317135904383975103648123931058624943336357458775917270658919889946094157182126221225774544737092067884474831706409259881850855537351991377379896265905604437553313253820509795323504055203789941473136788184480739236491797465841795811122222486981679125962348736208081629950420871353321413504017328613765116134117105803802910994494328918682216651144318140534213741604308363043931599555629411368281458609094728276244750489935313996649258068232693575879551639310115605601286981746476634479250259498712491845421273388058665153684782001835183465844664113389869312345753230157854090536249284512623483305956700597492922617900844792935979534509385285548817325932505913054688221323605014412710470786548874159115108760452327681592033575922168395427490970131069456773255636799920859357303543356514078145711774340654021046716512509396376583318759493135061581098750053825680517858709010980686591693906417183675860126150051138956650875985685578756348769329019382327814891299757868705896340427000548782204037369108698310616502807255420548551278774548711905733249986905047316835247145359995067436857173218719614199760279410877740523734323129793530739477036571131253328909958554916460708810603628186683155993163637156701430714274399709943326971912717285972775387905751613301762552300027676586216924549834821523692984534312228707709470760846760370578064426603109568662665281504364121287645748924966147180466828837994318436112578729362566311985541192682787386119879606420807130335292017636334062839538161572027079381805999248868622599577293771346985120693401604978144032941964401354174793383511507502191026321031878348995748037947802499192449894230148044186103276053286078952233864822203577230877478035854801041272820498721522312043350333191319624213640048446201073368348265568317073133082995608400152564121276606392917534183536608406113907623414294867305325760935414708014539457983834551078334925767882053844741477067148253310307308310064033068454057383602928661307330854513548187954800825125139210000467416993902047950170542146087565065417924955380970122854056431119277862264259622711263087630091391135878265372229917758022022749479145737985621324442967099359678983365608111659354171961947919577752937237391487823965929163476982529798820026475511812549696725841073869923820725853966697728020293102790964357641826232453902298927072842317034485687255872502759611348715350019171089412125433618702667602194587951405705116382159020333140514704752306169709349942021609959998731623450449495557996748298923723512002039294398384003405114608120803684208348248700240756612951254784324726184768241626209077911032970152524794022934008764702382525831672041397515916686448620543269717356035256606427204644641289309924909574594438255790884492432042201711275885606433977897156843784729571632226004055572726759302263025368093597820382459927240904297830946919600989839681170460277273689116351254994899058977799275244882824531442613778247565975188253021788403990348575173784191490736983032895273246250571183198238518983718510769315099731532755564939060865712326248004612593695140820380218488112077816845026775905897331088543513322856223339990561980477999931981529991665418334217775843921385698064261761251557190638615398748844791411456073565948752319248825789359213928814495703954478683957334038330783696463426806804362742953702114635624219255807660796390290012025739764284594966032918446957087339908416753037181803313405414648834733793537798113856484479109572578893020350891090708155365913794805674307090027919972709526271707745368857590396975929468839599000300117501058889231669077923838177874547498762742932228352826641527845961987296906289235895624271280638252484736692320930548366466319286890376251347166447609197734351172328903653166295819415144717571997139327612803385314429461740863684115031289110479268368915348359879247599216200116645755327247953905474919745286797351437908478425865431285143894966596255794099749971344776426061269981732144742297365431374180908287453713315275744016604518269758321729932835907599236552040249189785489876442138170840127736010408444995648442960644889255917470323232607216406206122118410753631330778936277622190324162886113346133658705696511008146614153578657886603549087191226544278457064333353323408838538514784011738889924910775810517388899186927367505435551662516098249605629443366174008163987695369081114537717825630564991246933878972327893720496807552013163539175839112348621431422852490634808786265098438256608590749807555186025253536865968907391197483069109159138808712410876512097976477457172481802823065104257354985645150434557164401284590052733694898717382922773142767505654902801635652077324619224183627524647903279390280255675978912123264967257828185471444214888649644330090850774087076449765484628098141075429071542854231721339717792881775087775336865007091216487277776565170523363627781556333200511294674012580806796695944155282701513736205772602383415565588026989014217662882828643932762971896613576731302841950409077587195340660243141560368261887308633990238631454980944166591483671813746294108623172329054491703656495124589472077620598675953494402469165722857608659348198142409703123877139620801893692698189571737038695469716632761952793614890972821096721689707011860428049005970784251153951760260913256143131221810230872376785889767659552708253717802071244638807237852688536416468662183119898742650393637456960347183069171712752245036064659871725871042740040748045823024224028534904435466667430801595494272739787124595531339079144741027044628736407226008249300329602666907445735398069374514516487269782547413289676781944455410897549003614441772203203947585318501886428887059038292207691679978413808803523986916064519140853734806358786773801992308812674856967672411913837521004715907658027985224415214363460177764280313666586353388539433125258878070310192255802235222636833320666044338904901392936183880061751309310816784848985565267104215574803202390673549725132778867053298231388252905560942489474432236168734785493812369096337567327185011848797181716994001522969499310252442137385575037179327833338260234257487282600377595906884863641683765770210176735749444523013162023237205875555742345670822936076366053582302653097411053501225807101498770357976919793281408990040441830019464245029508690561130722163640348614083839407515953261192863420312834168012162052506461586867780046222117917691753473920453465667924589596354022134317949652261701419708604817815959086801049034882557761167751774455849687917143032577884003500053840915903694433829560745942398487463874455264875130697483305163958712215514281119915059651360342584762794473289793907166264633282075313669241992803174345449848635227350772252758648251511629350436747661168002024199443697617118963762804267531147462472524422715698983683628802410707946256284160046882935970196970583056318773327595141972693970247052343796906254873512394376390523312352384811501301055975211945810952182892329749937772452403989772214359524771485146047716240933058625518544289121814380410725409749374779269873039829563802060612029922914064541631639198955305510662097048286014253984203428185336769689395667598382295940294169259756474983052445175643422706289688755143410357858207240599011313559063733244224415159868879860421345903058859289725311857063286551126056865804032320397704404327771209951153025874255008746037190993865609575574416275477009176595538894134235508777296688713535474000525127049684026591430203861514194461825128054228956928485310671940283977304273714751601630813901052431088834403510311100345004337564120127207062646854342691673361825262617194800155254747332995192429155721097207526450528667107926715157781436043882012141157558430987974154260029194607543440883567304435520873167962745064398412781627480271643197212117805403651118523619619870377429299111242399046119842084847082297176681535858898482950322075198933276464736821569933301600546244061097116224851743747478621052166370134566025736269766021274127205545171787081874555181284950182489948380646647878800779388153646461500054234568589599526718385775175244312823585254850628466947534679007524795928662765604634967088309131076788672825172648407137897423739532521166534721999166474509347269214607347868734661217195042078565246847545594189624007565590903445531177404176105563355026667343812847302712316902874824059839052316371863037035190105728752684393721252921711757719595348997875815367283844106603757690898891362017305222094159038408294814418175707341908206162696951827733745297555245544719706612061293624053461227318648298776028327919052579829598015492226624494836299094448960768655708082804185511356513997272399139464989385404014653710668419460366805291705644379612226245017888750724211277345269246797267001655144147065238061572998077391183306503262914863322104831289794140315164266511540429422032112289484572630472165540968766506366450675712151289681642755457178014607897897512732137258972561156148641409790921714047599272036811711662093099631578803418384858943399848095784410577250148703280090537818722298557098156872177152661532879971797728796286619958980639374054746263359194895220169991195973528925582744880739288678682150742467485067228310021663443744295553151693041964339744180324848506333164630976325935506151326875440836744288877038141535970112229838656078361518043620609175176937685005498208050454070445261288099595998577295678629611345498839092973036487962125818413503454681210784067305661075696028774347760773923623559590142749150859331696103937726818996361339921030303189234203425399721105294650755375453091860789952808671383854333010356587022075672794868071079860349600101172505821452399935484925618601634110814657072107190213506649385800446256943497434930094426211203546013342085398682796674318183220706579603295148094040097132759687281584828059501656131951956747126996592254578990633458325513132065922555397140312986088559628681335362054358955403769262898988346320130378628185546097358713936213937709349270283165525201673932241407831131172989792903095033307019061132909386256564619133637766405701555432583409880148316522735623234706541495946749927888744759731491630386729082395974942261856279690832805940501279445139573728294125418049699555916660593726681452511880632556576791114759783165608562126241549111095608902521348046177626942136311380707095569002499242455140785950223692845250499830017878935980949147216118144441391381192672881945346413914435384454490841044304091132432164334923514166328330966640767262971403801900831081792182414531202940381469801042471270610970328617157256963250458351049677630453421841709181039940946590258188572910198576237880716037897889184140770373509617442670913395055151266910190656451197760290880765634558533044768721270593057163572042446222697204090422547188807508000896174568880331855972782909100987121809459595267906581255357967310244967539039051440152074098093409448920763311779423048315310274937852464066761350677005858980274247695831799929065617665316421557369185570015949831302067506362159839475541718867335863956870587937809486605153417521466479224588623889114467236948587300210190503835935744987109214769521725979836930840578080491886315483600524275602234979945341596152388930138767200272789413656686039154944037600286296557195629528178679868662961134244524603197281355850895534470609557040880037982494132350285807562774482917173639373812531654287492864465481054043342498776538458153156343725426359216776400779987486357369620784749957299931380994408096419428445563235163498177797604241000633149322003732076532866959010312762552324586898263074052297310703623545502292418022084940280814183584545076078789298486343977544307596317027848304381266981577437191257026108003815389665928648090628328449308806271357331975638515721410064483042351990702518831028659591242426277480433375740581365740253529058703184420810314241769826713977044063301080286587836821571159586762182358551517306754609046073467271613186497662588604687155380420189649463549377737818412744339772716309764162881347194829253300822139800951148779023562522992888011805452400992132670643672562302325762195209626001833856874600053504735167410376382982506085409787769107993252724197444294563793134983983709508769097857493317820385672874538537052943455778079459158975583349896580194485799135351505130511035145953081420410792303813522647105093337331748394663431717651263961169304333358360064151516298653882010103838110220924396195038137069642963731738636223061158874615284397486634119954659482686761859477766419737680624197903220101505713880597676166862088721194625789309944157949323919003230595729889025338182223338333806165623385142668806516859713611159277361872892546186751622948919497940470099340422413448045661003661727838716559033458972096463380824997937298053686535511450827551691076391805865024849660868484016545499054870580915276692153687566205598965024155499641635172713071390006297302193381515915315119055488365124754642965612429649426354058674326178283902192550019645697727800374700967127487030711971141900923724966069115638017572349227887591197523051395606267239332907208060786988274640754597740667274160581157214943505715529200454072668168401963289433247588048375648207537435007378779132649452452502780074088385237771004232538457604480498572639183793481128400333262726358055790477074121011669121827436122152535876792004122781095013380984149763746249342051020424711843072648114127960839665481293772684687626269431117445841331364829178338056055919081452131151891910602524089939026788470517600366462395739516481178678730328072524877957415921397358168788614028967077311823981831283248999917610457080989920624864086913781001325374716720348725789984909722679863800762418581220422309045087079883511220000005880453085354752220290182646514745968977794521508331133811465850357455331223353002398421247876438751698287440858539270639653819119482336209785330103696232202625221017610708873317611623605171475100983133040918556203368487610338820407458250842686499781873515339985932216570003327821628150452332254648005106178504862677150664041552210236614823749551126802043018201312369662345725654943872075216745964499359809336463307480105177635091416466349525922511636264104886957927577805210937553174834932280518574413516377388570408207713734351409733537594948062526067402834358154154611150404604524297106740151328004138183914524999684617872434011416220756572979261975613415100697607627397901816864896595290970770790926489206642935343751054222148596442604778192121920094543112913997376970923949125668635640442355224748142739721413637829064736324541005056253344493541115378025679518736261771537441790760965906528735616660604693368493403931790415344705482648870274508018455460567933406169028549625963166548000050833390113592242779924089745478107963562343166402691416465133677734765239821066921008870775674035469234908582697345043589678968629759101213583566390373383387392567322628586573384437040277477253018919567744801468370972292874211447923895549535368968208763262772250737903260337189587125801509048649326822104957257928599761405067423613907604666630494044918622123308736614190806997831050501579038949221864434669338613159125221018052088947716301922480736302479924085874102224393719745323662866795497306429008340650519475427505170697182316277123051794617847142629169625391349843434416415263632184053060009460682116198856288597736337305025492004225563929560501477039788415009035225377014399727696682606051816723730987243029200446731341475595338917784463454443219101713984147623919158428120324303131971897002642979668470859094019035741579310170572921842000151278573091417584857222846123425085432629315908038131128716472925245001792970954499204348716668685649031830808935115534270175343655204855261810248582176464815693868720172179739478752074474144865480479440938188147568851091399731434751384564065730009744712977652336529534444434900097450983771362972872930807564934236037275860866867489386530807981795502014075226760094257986843806110860110745522559395124710677693633291216638858428352194019201537153734453603629398920658788676023131284017756674927598737381056384220569063875806604742135414391518452937531427802205594560338388762013468761869752161043509939870894363882910517914691591091750602151933848045146054345967243912317503518461913028530892036362208186728411451032310788100701014200528723844861285194575512300401926462334800872956387526027311476466434792091622162053069521371869471272867119974025138847968879699211820094079638584914520443741526397119557335034024727530672276471184256981927709081872825640342265323107865622477564918830712394534501558798136053860623026197789782058364058639354866491553287196204392321465698189050816590211800643824990801042949552276254244090284816119907691422620583004531311376684898786949917398489065001532458902125537542495035837469989721931696974739540952481228148567462207036450933976506271807141930413072775613037881037421072992744243302913135989282988566176507072827254512078671420570598512200042245601585225096022758916213616028631353982915031126006011220612263312420433322918227924548845486610047384065710010831177063697773969916790245262547559556187080761020181625605623816762839135841362037655425737717891421282624602289734333959507911808743116884149436907904771789644355662662715286000203096616931813637971200061921887196690537584610288598351849083454895091751200825753873064015142020459262970976286089501818777441295250147998790357634835703882413801606425375763141116861715144282986937405157711400613590786320415969815620923226718595339997731589661403497417684305539664198433994082783416769578576256051220017619767880787966377357313234167843552558844862898534234102354779246439239717218269869020154698712728308133978365151887453910886098823522273707791204914846995028198024587909378925032845572897610407401236252176552445513607463791595476006699430455447684148317634273992011390120952506906404719046692732491170498047674262545291095147341660535882300712040189997836009472164425804403190195466954829060651050708430797999695037486634547730081823509671400217794109542021344552135103747358171917882821142426939835563741248730831319188706460450154565218434661937443163154666032583856524535513803058948821447997189517297024765223951207969175004410895269868255272668338763207630991233941110460700449738058200709028590164424206211804860786402953551547463429587265554928101601902625154781488914439698845362104321010417432155465523713218474005086354996922696513901893795638019613908299595167841780554134776159471958170266876721906135691999744068747011710053957204242804173409301101791959884640604534248029686914239188649524567140904106566838307191821042135594833540477353047522056691901977481167323828540074650915088400865077600147420361924831271367616204288877970475351531133435232514153359755854288522117075134864376428854428120171379923405172580498732793093298206032756725054488525500152130410293956615053731777055014578723135615215080273874242880894787649476687377201967857459628378873371230401136890528612302865280938825876662969877932892078725319349804676138316936899539144125346122550480419563034478774529994444736959738548706208089786902106867887823660449725180200436255017641957979359238145488359405891456523346019005845882182622301175234593832924153086537079919614885139670688606390437197570895378981028584614790507025115687550392484929071096430589803643139264555594389946677433099763122426550619748369216532965189394486690659537193510312597207646397765940595694022022677043914917638892163421031603107134144164060316272542072188085590987495248067327806306489997737787159136705271945508603861544200679711776967506831522673976812106212453532427807179320493671029881257733252502954636598598573351485853933200049099639457819653484620731474815131471614441073071209654390937166253514988473852838902095664343897493995813011174157272556265551690234949125574804781959872904343498002202005702648323256969077424136823232343452443408204242835792738446601555386176346234284810026262320482667742980539343728496332439123943547313223395978120592877944759059195687145804423798609800452312341291709366851133370584946131100970699533769102648140613239160294771888119480491075289116527508877971679404080637616433350779819904662380484785910409758189133509625027583068144199530745162268935292374689068256559789004690410643498362909715663317185454880688526262247475796424448500488369832993469620086518376740450993222986580242484480934097730627353916200543061067466120189985919892767909157691299426942140433975925506333454841936119406271615699643599693962377115793997654084516917992058446496904834272889509962012411902044250714688299633708554189849056143023998829578433375901372017217009874079137858883396978598672524905381862631129405487822807657131843434346231515703257589978301298784103402631895358087780446418450537213462398776428187498294096489988721131694332616661265730509976426900047409996144483544865047662165625123562511582362291433794958421733585319805572965460783647337486114310810079997439287895965723995327408502736982315127423612626764991978980227890995195980344958467001221085222598166907857518935690987323322360780338023615993184653844758100277880731890094262464275672194454747369803183420257068191514793113053139884064623839153900246809110623652089375370673039956628389566648048191812233950528247498303209153837326555305033267099938854600257609992240015663101494631528907544003490509311226387181393616448030729237668468976055243863888213424443045269112319888067982132447155877793303681604531492548728322770931351457088322111597369454520690118641317432015756713350273992700624766415394689018098011777820186956107076679646376846522054539110972590422523998611604335277433802355463344412014251110978985709306259184542739157211978361498058570728243946195844285631954505737618071150749725495232541773957639137328169212926706110588397195168243479969145026015798393765192605142972682229399779123089330672716603768850435441531080892391465341176511768591486571491488217482982221354264024977972428973748840053531918784982295282149907924929465150702762926429847519771201575208954097358673384265903929452215521916026195670954269677899928565551336750777030738393175742240422702325318574031277275038880482161383318511548827546697664165240768621546628740094029728495634512046215015167706662176057410989394393262070751900046182937681929320471948407002240480790551147233624481439720487620198640313273411174624957992280171455136603869816785152401635189488103119839493151696290699581441186372996931365417276462620584617868237139358208251968945593058640699424971110411936529472175638695831822217505652072223214736054066656884023531981497177333290397245802735634696398732643751661287602216281823422516039245337672919642507187486892409171961951371320767711698149150013052836400124527735867328845796415512194687694839227102836593498458839607317814417350509776197985227765317244125721756991827292967837070042461500052071456378226949869028838119559690515840822575414123638141260021862053015393208300458806681638201745941796255168409073565219128916357476339411180914621999653092901034291816393101301171970682774945847065644397521520043716076987747060113058684250965815299310381282770419629067999353091979481143434324853379390820902377847486143213071126164031246823653803574765524028014738606580921821303927680973735467277369116937915334839492272715549905733515394884753688931480414366298914981503379066493826147082019829899662638285018844087280613291200178488092841162721099931900433370946165337975792024330092894930016809035387821173516496173368279491537280874090421339246546291717028381921068680722276395524037013318754594367015227210413631948508978932449052913652931327483419537577639400661317940416265821090388565284099291209061338024508009263666977879131208793413152531726669900419790514829020297813897626778539062713449117692370566305509752318072195640526379442206763569440849531335078385828949788166801848422209494989104122822264308691024194624219154209819072411093697188044987227550083088293502741717227453131831974587221268162215121639176135865416990041013526997471264201026427189510321956062073852313033309389708141339725465382665109935450486904435570517199534523087727354920041980272009593922566270542957441942489729931900257212539594971638560630228502998324433690381805634724082270889105600684465543475824194238796719436187764188368277728541532019382223475601434309762307603896171811398463348543148983783702182115700361572705333805961724407242456597511607711187026917443151983745503348843868372721413228734538178430125870571932480793945708260608028980655738867315631255636439361094920888458013712412220565395001162207251199237700717605859741502093513795648057413311478827876933365580193016695660985076551158380591078339420182746817711285713051649923518773727882601468735225451630316719784691428525546152721476574027253153787339799552239754480662860658293352190875458332235560536321450957086610075155010633184381896021537962796470626164146391721702805043067894167399912513727376235346883091768034735465652207250716957276965605928211933549328157520837755239075854297171559846612079568632518071279775151589774496355520894125685281388205542585784578436663242400158736928856239678938420854242108678493488078307838780519971444399906139717946058918330024059972995327188050951126432764027098010687457275004166287905940771565193244682458602488968708079421824079640636060140310203031412943643735877826247229333630826620757259471240016874497615327529275483430728365764646993543207799199004870711618139747074726211937848516629103852149970878704048799353712288007379348939457632491478627775953042731551091112402921732244563079142147410814634074825448091402181896007344347315369550003847528131387775754039379382180932057658897827771867243927478818782262411264482415594441307701011039110450766933239734803233811140024906018844812040569726022831690347683095869451670320477693913549093518971637419383668173701181678303989937018151984106770561072324062179284837556802341304054394209352654126858959504619884486516490543083649450103091508501221987186948941988921691024966313182261819975421964964239671211386913282243684522097071950722600189303749607289129361782929948855729584681911202732966786667164609392542415429701298687908773647652433111908842771864191928878599108092413850327104436268593879627102944171747838345004141384088658290581995738380298348908543645454757783346871057634150245726257804501932888654937236952953321979683395102063346406105484074523722027703491200399592414745513750165600064427947580633391886065122620072913613004170298836024919354775699248427780243648547671885307427378240437542871142314920133299503267303202656691540140481996289045864185912524922297346792970723159370411609603565403228820148766754387496442176766681984334203965521426824235969690830950241735592745523552136661366855574656144420062025158652916669432477804141896265524755088788258610483992218223459196233585536003899304066937830326480118452697411409282071053407768163856227176141822562441145438346559643747026868121020656324780388294076333637602181424288636919352549359994581253407558177242410547668580443205913554619898755299758610902125055526310680762190034873783543339328468073816403684378554714990442992916214898311996926472678673626395629970747652350153439312107854832645974524583735578338054038714642029721897669208376251222839597150098059817275001042400933624309227909220240054713506882176128865797535205105282381180359242191258365502354159639584564732890015109165662141985881839566454189010787238523332801945885611215185283242751932333783459747720408782072408737560961407641382840748322212473554074502176848189670911688775168400529201350295605349026970919031672629810367621864264473863062338742107362839185553569920884678232934470039407329007990632893740770647758606464930809211318496035778772536964767494713410666951268120838443660183933362090383083528306351063507297592248754954138172622161790373006216356120666215900694206268901588331871897771624571563462188231021433462734761954219444550062316735080083410041694430717073936182585260208416144661982265691102036988520188870286558542633497254840476277719578210723068512106191410859858528721948126485881526858974768011381787406139576338557670119139271129954266235535585898158636224356557361245252149865395332291627117325516047240449823066125919214815937162880495060793375975994354107231407061213492689166275927235851742140660719840857142258347614827212151133427825987237421354969734719699816451515068482882199200134472193265421372679667659370396881078784004534310933318768686201045604392546756359501093072532093560691091543341229677283622170282757831706649724290787329115683766924730789717203354276984779468862980753884869364256288685679405249525510279684678872547122492948694223471933997548357044247995791447975976459073404041172021296481636907101856937711323674316665918838011884010483947649310774313356102912905158118113038190108215712674764081445081115532554734295282444789034133916977118631354790338027640707851765886688017619017235504550987438114006418713006782173916805491675326067554986590838152146678495346006931832196765833240600400122191683969436676144177264052126698271371112502084155328350602442762105256625284056024779613918285113983582878205676175850494909384179612658644711537299472282715020255618761411003982268073867393218537646196442643040862283262681311771261781049955189909616455695388707198496826930931720238574984099201351653662362923074895795841056344246039506052720837119421266309336771007924976184627860491478780146171585583167509818181546312287987430887245778774781654451139885741325900089721084326336324810247787563489226777244434860656524919445664032433586749203329541986323168552187437994701302823303660545235170157871007252632311448198767335927388125456604463841540903045403951186557010562857631132281331834337748817830206456009383995660742821143312352877997480881846998702364142375082453695644743077019371906233896015597417350633966110747479574744578386596839394508056867633418108429194610049735001573162842218863232037782643356071776214584878938883811514206363812920865948021696087488070454590620723039980954798331146492666594067506936233982946864780715293118884608464417791580902226167665197517926203133478281078388725260135130293930504625827235113952423326355759514412013748597994576491221223363764552476522428953912446966880614712710855580108498345892288477919222567834946501157215927281170037938317251482378923590230491028436503521636626384614395789052693586395379634105728182927581524272800010752433240041272773925159228478323520862074362022129075234778798693323236354857955517095429110276019224658411864506199535327001345621793831023568285068174547436260940832853368330483173473458895888363747043453157756271906132785394692622962930674439078792570124450431999752603291816314514853015218298046263078375854714453912030832683917663494390219470572047557462041229540686593653492311953231991480356549403741965158851322352614549028257353787954690532873682517237868997581957131696410922255686934119407236088148769244613317781094722639864137822923348060207602244685024754237283590437384429581547320135125083608049566503791494533120361623415702513096182079205389669803492901300131891555911923222247091927184053475439410791955985598883935762693927840931011371741892295605092001086463872848866385863802967803780654271134708593553726315567045551133745764487666538612508178223739920533730945166220143664546019009831536602347732907878639386320349726452511425270580629544530283972822365632690461027524476484475472149127856355644340493554223594099504254781609251197314002651059956686228376306297596635794716630184781720276391740683230003486829832293573388815336862561219435256863141082478310991655514624810620684675545152327157417114246897092791622788375098665450634532437373319048103049510423604559478605317489587879492443721281688692242501287689561531513776993462386227347693693341351762070591815927958775320209686433099251190128148337804437386803394023550255843633189376274568960430069152688124181360794240090675724183080300916856659398886041686759715095446065406513704688085582275692044566596609506811055249524710887354807309274917420945069078765265387373275683043938338731968912721554420541013580212190422478744840746798567827199822333706672504646000961689097162379492893557377231029800691722670205809656686988560656663202281587428244999448978532624944626952898707233200510604537826204491438975904803639571947826761796529160974123141762023874151574139508717997068692166665572742748397471203047154466865552864163103819636006091445914360869577091106357951860431856191101515873107567387987508562942564213196123072785060161616540911429159471582113325578939735156996505995150235109021805923320365838497265965739866786859564076096034407139598812981363251237923196572532219174707181529437783297511569007256271114867608222892315561301012217359606269657916176379295905630707269926432806401000583186582986238358827135266261031420778257649611295349275091071114049774689563057468374017099241477886020070425518036674314946809350941092849722172626147828717349912618365713752811951720808314265945504266499781728286595634417125753293236089408995811964522870386583571993842228525313264329471693636784281181910551450747659509357244287357220217697317626020923310342332785682887138533506034067837688177291771508855237393645590722447417836856922694477926138072160405913714736130310074877257425628837038572643978748384194443801520898718453111940773527786590055873202864533999304217296499057949556045454212872823244811518223842292584029788058482141714191029377009933300658278506838419803542632155595310433636829901248779030306556908491013616686033835691064919952257685924858527679975346416144728843429456993580991162564555338043629742995756820719112501769502365423450968453169349352286232926175051817313584558985704896160241571958404197617070128602043985992894863896786537349176804613696967307239597693520305370288846249200286456388576139667309472297781018977808506475059755164352045287957773013477639811447052881839929722529268165358573315055224762608412265023009179584564365135122476184899384980396990734435092835968104102897484872064960965448338764376888178921805237786587730185414495187046420833215041956571909830871281763541431320849285351570878518964274350612292242365531857148964219999447768006384898427959497672484658581652417600761414632601251836279395588961402326920009176440747783298246142591878273524668034238042550973630184734653903296746298540233001909882505105170128925979441622479289455919283861251157255107056817545347355470241458528847579072439519162073169151450585555380771017448777148950616781276128327279446783490799225152151102916341805732033219212401340536272855245588294991765481113886344264613486389839959609507844608034224200683705702860117699524905613208856360638998385962980191845192818162295401907675328045253452750181045614422481280527239809700521525471221449677766928863377377330543246005364452225141602506477049856473120599276516096680416520412034148972669488924030342605016787458672975492494827380532819114988525450805324558459341849687872287084843739757296741012590873673817038308027970218523145041800420597722170444920826469534652959592266857356672441675937654545765891137849126290827568768780077777449979454810003455321402518801834446867639720700034058081724519262798613269405726508177484007573805792721371651002610651200955257384725997973921844063966452958473031366966846332627590997689077671231228588587625697827423027427841691969239159713588057124344655380971267987651172313142075318870242534490749903001246288337654073802619250397219609612370793059361809526870813736795226337797096439661783223015575663480401086233731046950297806143046913847056942541798663372988206690926411893550469989248814673020043352779602051615611106055317212353208360052206336453566498580725161514120933972281791342484127563963341375008740961098925586587855259095486853804629599598601177821646277630640124467038457592102306266972870002129843823907496481924467328138802556631377572296557627102181737358415937356943538486080660090402454539313011543967573399520034700236379471349299678582764466725116669861556022678438566766993838801216290766251403053141829264881791437420275063550426747123108180273710141116658441636543006236653495068220327058003109272533582696208778176662815642964946704711853158338757878182068569666096021260344581213721931030560711883286791744742377658463271237410704022513364145899831420873078934192537311030588804533013435598113333849894751924890978002062198252396968320150489984713570894362981679781426368185664467533431122915516331810732426741747804870194831451672792333101993630310350532081301179148535495764545387225605375617488988499998813499769857389245792792361812702612856438261445758903384538709928571035661305556142735190405641135106437159915584147962140340738885250291634434017840326219162522105242262756732694837171001383759646748999473638740769650278406393596042393569203065100888863439761311765798911141055125723880248453229093242705405914327696413651312945641480164703511341841111734833274722987961556806877086051105725190501781488182016363607304313380619949764982340449129166421933990361828435756308289953121114846680933514912420441549864251022076721480367989358196605657766412336465350821955159595438408102395728715726583391508633471264438237577284172676494986773272762100441496062862187262755448308657171476958302047455428623014560565045245966977168289385016135768674312554929415117029578838190191078230812492728724930760485207506408932623377222906002183132152589428469371368775443686219692213681384588697966854876126404306790653190631950499638005558405409767154415120492035967959391144956099327941549452136451133764389815980394977985241031547156363857734294118970527739847775375747200138533536117073022992685899712406323326855723296411536053646122578661247222357810862856925267725101881962185814711075932269113855118990398213368660816702920189568441705609335645955004818844423220158525944283483630010841957504586556348679211553326905385630649449482294498124895111474758705947255458406408054656518003754364674169755157480910500227027525408621817176072070206886899312489090045977239967102589076212497722276294871731534323980049658874154194485393338143005245808970964287946675690969668344588225991256578978711415263277772078369242372338951364364509070430718959875445599746581947357787819031470798463054574186893284272289311966989765657912857227526027613741679938880244946954600240622505290564207155475039954703395337839439152817164868082385872878502061741264360577991460319562255609016148349388903469982507214581971837026166975532211327266701322278650617016162574785957622603316093731924545452742475808857409668932683349916909874718334067463985226029891996018234761605518030155290965685967755294879254367257103985442628158885730694717866388876733955898799618130977149181550666581090779730982827871141614544527092985774643947272594972991269446909404405633202903642291787041866453729500138248169879439243400972829476831512003957772949475719265495181536919650627732671521569642615574047822935944952282358070174041295527226057640832354740422477657357297676257231314031277386329712471786556340174887817265279969939222982543959025692755561292917181814808412589033169505665427262033910683555601178965756362204389587658527373987597498330396970251571812998206368412293304972242445728697385887699979376240303082271878310064406010719001986459050731654110099289460806700986877984541664840455818355005111537480940044775063084363794956710754797476109532602078048113134183381779153677734488129025853073977327390667383164433648269778984085704736579816987875241572579144380442544007464687032258852336884856651561259268030792235616066595399963722826499279311752126051824768053976525740729922719369699554128168301164424100611948319951853068922276061369051020768145266916380686166083197165296890889556265649360203183431657689449341871135552484717463438607318963371847314152899647340717819412051574939875809562226979184438235621479185118709415410472913466714446811567872361395793237394928150646297928302436264656899601843677686030659497506753447362461951599903109338111124667287624057694215640985535436674368605622470434959084442293911430694138918886806976668027088819797093405563141926503317088506065312507825705176046048167057435970098113055814361236769886678035969470481370842603461427487767003378283748862172124391599555167348259535464281567412314660627868925146294792747880971365100426905378290003809443032720147900863708643730682681424081070138729313547000455218344373058103201395081442547033995939899690880373493796085991411222576340496881836400814724416156147295214791202523677472268932264319531998834370615221495753922633165738411096028840417135381908344542679442613404500087742039921000141953999261072576234534399905909237423936747122450495563056827591554897767527222230776621766530278193247637358511857502236392441092565997145137568871145519763937069397633907624139274319590364655014666989890562072814791075263005568398523410660951630872247674442385339667763139504924089827695431604831880740932995400447802335190029619708826215062337350704623896661661958925335710157059323619540257397219701214696445208811051414809214714212539083388342605708845822909483836057076947531455844112693141501283716653789452609072885830877519654880183096023093905187001974638476796840231274212205048677950287420880626969528831264642890511563212380308427843213524305986477622912179806786007950353794096348360669438373402779570854214864771658172946626694177949582234435993366663251099904997613843518317200689817936118597970439958918881032077045817742540449491507924431719218563275880318327086745555254254456735792511600261521185198804353246532656038682430960363204104716756040323496126253481835572971238243309754906492038192779888952603933206913606808406052563383595583911350832921904665471357575512904575166631920798337753202317463239647913672035360073477999000366355174556310830053052903734079008023316625497766273874261144435963683689888485251688877125131214044405745840809525801844006802059296385097281420689694723908857258037046073947486568349631437199505533393848326561774545004438373923528149272907657723782823219882071463976060185141384980682878643185349161895471757248749871163986612790813906717987568899811510159904768715277166910458576624205585538694602748690986834785726472413097340524357701155118660827286656585270646025353644647321190357821898016890522774198928402628516920257365904447811718234955892850817413907862203867589372183202807490589830851522535692676476343676448383486766640811566519823857814943105063591699040962843193565066067978380551845238733889980480945937035482995383207730737616570855328101980274780628599773717657537797434938338175002938190458272170442103128057792681089814256576584687725300453554439767986997886113742531560263671428897111603393706814287473232324667123204644327512918510239812623205155212815618772375034136765755395508320968125646580538741536713196817527862245323412805365366551569326754030746071215104921789413908833535156289811604611442546689984441736333673963921582544029763390732932551080180669370606884328340686029027605663853578358241541502438554053167067845679202531782328741031431451813001640690782676930425317519735064473172135074299698544757325429918899547648635583264489817905597573294908814052563861213380196837911687515550705713961466565669212951239320008181208008294285375417255150790579333430317186550832904323836499567222446581750626500717189161988578575356516056655890786558832039311914826484201258401138278192684502747735643090988160290784560490719675450851382250558597039884346768717945703523281758886978977942343239012616744589982216792679132898433595004533876008288441234486610452967621872303363424930634358994563198049294897038586186270223491096456511867421065845178502664083768707636985010386153056522603571208361464572112922888044906666614783242962707881021496521664635764478718952934682749038200821970516003076558816495250375374496359472558618775069543236810537350755210691085307196856931166290867570379397665169782291477795082602042650242630098241893890521802958266875434713009537687960032873141495243967520599086616329992118981322151621254306390530674245173262817468220936828283686540454889037626608619752878375049516691115794650844122213445632005426199313080302406805433200980006426367164862522308001067286619625154445193416871256736115558640922879266369820178340922197665425965283778042892974370377416368584878894735507397266626265352254105390425899838596887536038904862254351679974380849061349968647158059222699182906084263705703157534240147172520901197712309437271235724166463042606945245095709385814976024952044424597678020177719289401532633174790916270318651525113453217209533520403923614628693661242209071871707987447172329348967070283752217549997214478063903737452252418159902752385731909504080174731587530176453446536028452083747273142673198415334180459038994035062950895424801749708148558005906541153390250673602514943768040707854716859566981540869837486732817614382116812675192986635674800447850183473516736869171536639856292824798707263230507859951384590250330393745420603428992570435309163464130027194352052386945668814254049013554265717807977392259169349098499493851392189774000764805821586098402109676172940379359207037000277392814522714555828446919835415075111587304402097288888305992615856033161637179215824181980349643441881834393501085109617862441047533023077371602350494396142823277998450173206682186783390391143992047261824873753904025552593558184168776866499819703453294675012167193487846579758308659779976023408192009306687208011229111804061070394002729304609615072011171926436756098929167497507034404482938656554801153540549764051137411710257769644155485030569205602351172233486859848286002677857213830368310829194033654175027211864382245290203008789942328949550430573063184240709778290891096315437443839372657264086384214806860771476722697874098432244163021569731724621037479982155041504139646869268030197984104804689675425740312427873437230920207154431696718637727951580662111084563807984826440698194541850786533796164749498296552902421069870459959287066341148451937919361494752157034267328556778885600924031805510363581509056860857526612238232924536794257188140538072677215618660699094636791265364422917196989555829312560710739938994989041299391877774456338976176947356362749434714133552205283177431601561797799413844129464861050666227714415354054448152432712678190665347383777482404557810755517446572396633698857036772442479318955750465368078920797043924294858506462717450764554765950850537246324632277589122390851190411387880271697893583230866806988045661875639503480860555930388489625526854454510127230314351901909922132005883158036883599708305676951441303010001068996530634656397298720614730935511126489319776816391558227469679983845623614292733490567530882422693284966612108083879769689276103841390123946133170782059388364379405623241240886899221586161516458945721327118647240931010807667027453551018940387915404700440730957594270916157319656083430098178091287265763462686034167689711972699864406747278701474100646426970943557393977468487324921071928379676089618591208923264182201863175498296950848781973700229975682015304331894677752966468274631692522088778352120990843787226136720935502032207005593522160026655622812405383671203001863892783987703649192079799260470697612317861301203194550429991219268569433510404076023486531458444424961355768723814276311854080643263503552096821204978503257350852965295501567160081646441318633479297920810517768271629101331354013642460852825625833985631785148363852765904610026566268163341179702078753208727163112203594229272028875806508086565568327657296305408285347613693163276065302291823702714486254004030014897653345142780008862190258694849376217254760692629551972702803462150986946643396179293582722186463053301633014988354214210864213630502442547731370848457576389182503659934037350595824736235010062117469835508121068752967163333469318011023628955738197965232764990757729727950628934513945959842280558617071926165380560172869178117302776687913727489535573138743072755600602465613700047570130711074462263915337282768205185273962334830070828253598237662528453770199404928541632971278215917846688748100635372814198814661066247677243240254714551955392238442061528325676094651855690017126257543772197963890176873793006977732159895078823479241238734282951028442018439818484695759238846280479017375407660053831453913080442092321755948092802939835777142811194401727374353889594787223486351884753418526755184493273807210272020595908674471289197888211914634924764116433361557009180071463448269566932027719915999757560100340215038449976079414033339265100239415127285958413621196576673416426465975470491436624983783519150796715148924476870249773420326526402736713126292798553378362521466073048581414841227327624680543164747113834016230735466012995438760057513371737083861656412616420013879200180062559623462466363313301302370531614369838483502209863285862365478761543636915568284489668037366502110574542619404676173977778674748822186896544857210953710918016364392869952045715771657020314442606734136250609846625344400245354771883035248842537837654571493886759243184378849652345995218608998378177528351810998570485594311608612346399357225347229334930327415087977293194026466133384597039693776384362091672187901162810252973894923212137848498428098899912445094031594134695477865618886379803549385303805179353123815773540886159701579655208512463571699967786774669242051517036226004167649829744333915827810027880629432478583809331386954594203898628027278386887404134546901674473271193313912354789872014661086923409593013074338466025509921491091008871719044342246296405541576357668101046552116415400154982255232885489031464161864061512106811990151338911865944153208711545914907209063462978295876295493456587796208107180074319832881108023221959822816521777077644599137015288316953693854920239813609369958036051783807052590446243377763928859716866340218037035803138518960375099629346190638689916918256261080877981877023127397483339219496338713961324259818243967047837589750551447322921582755613970744497068104376540583697740392750653506824606225324148158834408877745375526146009951737744017985049629045551134470210536456894574446223337791708787191272629989243672715006417721925499052452398559127031201003047868143904729671444403480745852575494696678762755418482425283139176769009674602029624154862387762258256046326334334634610564223534556759083344577515788915956327532076156573016487707528712154244921881920676863333877590258111120694824782153366601385890677001727200256484779891078480969051496100018963639286466576374062249925479255353377989373280335809731906438928202771296850443241551850893876714439390332941938874621444384284281969828833270665421037764757011459937939274828232639917346872334303659318495372277468510697426443842900765125402083756951798519529827385356555933136325276987081240873599143258478707023586976441808496649420913437090717254183769178970129139409747478625361967476013567978714558770967893236704647460154896551098600531248443182648832083263465451956738024316726279875334023716585571696453023065845387106048336400716554961286938511362225201167437490324497195328657356557724821695533246785057623756535185815926249395451933884568671739230892482954120849444809074804367275013973554149706536117348743959226690113559915958171309146524336054460888321227394216384580692736578634767983330904775437272847528590966153284524539257658728306446019032684108476005138328228387441564916110804257846093846879183741053872628932870132066937413872030623286907540153816438548846489962120448900586218319999152047455631543404669159856986265185726241402457534690863124413297481986931216399132295286255193118978863199559333110242012830698464968332325453711337917098389274562019411680028985068545632440017281563573740391056540238155196897982752407439341489162621940083498512204030436236100679978906234672330205175057565648937747953984550573726487004410865996762474658749449045914542728787696905455982877422350465654914517212687950583764254368366141153975955906091981527973212429580984605938791522228565375920890593818397353978024135452096686506569589174040714579624958138987205533387366782818472656671415422840911455555311884367225111324925855493099185510299659293115426441224453466550455774941457591600818490231821765221163751266633468228506782639063082684966228608135668953441422060591938898945763350598120665901477325835520323508513807516535231367330857292506235035056495398354454385451364525537031758263587422584606076920432303154076688309139309144430079529806380108434875635505443470663742188459118638680889286201639602262386079495371853142831152064912743145873340304452702737584230852829489227386164518557361865967159186069927206036942143411410917606268104284619939771179638773616931383207261888589006851147831505364877783197500563160913052158505278284211063672171572899371058406809233172932929789886783376525761393837489754300799372998758997124159656833133641072203480445028196046159745949805081548767237779950258425395259251660435623794263453179401998609500286133191125656553930513839669639086627913932406543605093790380881826261004476651590431886733405125015907852896813417612717167967743389850535343638021115570615104963437306518584862503142955845984898283134950819772271898850470413828213655759370485348711743750039188074647338975489384735379864516756250717353375099606519785119835172606891425656612622287594481389844389195929856738335823081807118379300249985700857956432361244327639868136213111612317659765192153777200021241069279893618705140839342243257265799732433921682123028367341875684716374870020071018440882065243528379634028590219481403066085249278873948248393056313030996621906234767466766377782262448984643579629066179074396752762856374626951499082105600609748836111419570615764433096780478527072875182033055388609471555597408597363528032251363680049163364498451814505342428403543398293040911134817962461424251764242736708909493796085157891713810668264138021150355534026412316779878675088512445186620854359311753448691835065557982485583939760200049641557990110679164434882343518215300503780460440334800477931817592105248760835465415152597289006421128246475116082746899718957052083744444590521174736301704217820909817014040883152986105631384691949373101934619525748995528701589487479229279711971274555643230335512746732910792954827938253917863721356750920598381388422258684317899243053604310974955620969478709018315815830947312556452055200648793544016762249940688867992593608804685769753640800800260560381958422094164760462207250110552227110508612015890464011738068444438417301539461789297703722488295755185996230689231728553809378511802467879570236622942081413134584094283277598796929455492431335320531730713798659911751303866044374719888026024924327286502003021470938673948737209123795981101018443471375898341272993251514288020596622953144853585838815798290665655960934569399681585519571071186288271558074805695397570457764364548507464278404581777699652499505822573381335075520276212259150955089700691132484087882433285662437286854642563927317942232555762118070220734108817145170570543475245288443682412854409167448015968518899873798939997802887447911655789923466672756159825260928375835119647047116570289785360248624141925022677634858353479169459723412048187521648685006136132531075447908674260745086829283884681230623174242800790334711578059360373852062861297316016525611897786385153487027603376432692152557008297197962363344956455790146242309728133654220672799420481615806843276352302903318662983084677953530559708671451250093574119856180892727232483597840192608226263935173509172427012452763992934711736656952311321651947341737402810793177813820435777203262290517883181769215591168744454947634226857419683785872707793088005046068169219953088717517854642245336578513887557061631453898277910552616352263159331679639443135837910512778981963203086254545837950721163796103311613585648097600778758431371323859708521427503271498006909063235184853226992683328198837841150482350789796080732698608369054096332089006060069956786658522434107921226918236865442949725518407930226711280163064254493671804215107572780546048782967201118990995842046192033815178925430695114190853648048842772228931112811965763923669528361843126266959870779273093879597106518947799885855367460656251742099754985837648445671972792099788842528948186688348943578434207824931103465338227005074034987526600980631108554794301529593004628435289046222636510124615024223396082981150737567177085675867833604805340249844666427476939900842772124833672648193760132335635284884859052394068281162190585628425502291331222186036925914854524755116234098977319339784460462656162605826835852492018193606545522092878808754982964389189172824591054116312278295061937270455709767052297922336820356652237602473516504261111526472045691714397528724193941313183641899805393070054168971606216799638683799245665133606793828650890207919511098200543185281909243713817765114143703055960078090993994877307735783684148916238746088734108453010833887986591961198532157928914772227956531178911685547461128480291908663531968228497821274577335826605853840272488152337970670362465967414954154349685318798969910068759213952939365339130419070053265718986141974983496949397407836434247731594345646581105826046434784687097865846955464866382522351216568616619372447208807262845623438488077723030480464473075924173289407538599770643115159354413635203905622595515707915320108343515081057545445716297702462109338796241006164745488306232286028368945913371647605893993356271978057850357846471468736069564242668051022015290923172224812316590792877447054648540669366491955537058370806441740777672972524010565194255211289891974795942573277072307633741449348217208957534485383046088367252808564401582577576475316366658948715830842899662430009678659947444090845841217147467692041764628208187801971740969322172333012900080794459586310211112181876645207347477646269063174675047670047178165664143459093131124732913938027894061967264188830720261242654262780826263773217584185964735238775292602369582476572782054670734103598426047652600328437251708703239215723371262261642699876974792943620450176855556664074017535736374628759962030807134376306727512341647681920655466138850077318944816540716668589878450322769685333375373665738641669825497531491544136801564827060758664240819657475774884124042833374395016005065945031385809774858179540522106065267541575663385090237036695740172622452987821989592883082828017789811990730127298605897543895945507548226034303203140561671725028953221989190982226655915074713097995903980486477038538632973292898262108390847453768078274986674493107513267574863822135015321275340310353634910008489982519962708129232194669591154360958794416614403812321157850959205560693987203099212102092190000156638232222710236656535719681457355632932229684827142952181797679358747800469564045277812380602682881153469339225908509242485939414063005030034911982300226959242719511352684189611909027583694275856711764629892562973947331825308804770100745096954202211037688267359004148809723917562970243158589851091727915383614320977786327733617694007029082875972871775788822466968563871802647892127690442104855882119723744991515726137294276841716494111794470657035449615124890731737605852095714683748940914479766126607357066402329540924682065533937029237841104592213118765289583039702406791397282414300210343088674653748590594175925394622617197812323030342061672645449441413094972355231729797348664589060828897115963364373346628136590814923365047789724943518364383690110450768614835413897414090079451128345139461933685079858888152474066686434668579096069875317439533588087497536714030741524834545236253351830032702456295462794311877443694413239560327777342068164815176482723592665471005840213809588483585759261325807993322644413962910777844092656070382986315563456959539100471004829762351874811379862803819486096486127768730545396148113819301235017907492416928576336421652294055700407609035576773646360989305465720828744525391677328179463347351036054483435711682338908379008649356810494058993599321999331627941249804353708839104285669937704736901718571896460023396012851340671743963423908619218143459389331547534997892246717316217267603357239367357644411688551454381235607707998803947883152950954013548060607935349260148991617748758986174843505359859149477681225181737228403437236897099575129612731812175260824384738155862619501031440848406481512435039154772218497426819781149427093935341625552665561773927504591365920829747216493361048692249035415881472941736307254677274722899319878931579116980409896827965698794035269265249935346756728182262900085422301614299001921800746855059507792675702505573442888450937507086231319604865065489070146673893585619702368736283984023156414353602565496266118588268056849185070035508646298200702681509585004467912381755860677396144731500021697596785781333719400980773689388937030964030921407327218556996098445971575312245902998308086569891876263302408437845583014123111400882290534285971922683543204407181409500394265771872663292657558430020829188671210124548913484027201899567580517630359304433816189753879426575182662966478639191673503595302993379807714375339301786493203413385858980353294651595680364404264720584613106209271282574889882239294180443723571375900365222277124358594809609081869294952173147029081166002782672315558302487770790586165993704565414215319241767499111819932227945931818603328477583153397549799108568210866385567961851754804638825977673971117489276012741790721022092771754948023647934486851226690539646234103912089616253853761127986956834223544120193900035163500519815553457414759230079940557004201905240384235744852847228089233004167273754186402296041789495481361899572680349219747787348363287271343564346596299123981016482665798953212612057211292952813439450554789011826659045155418241791844317685314244758391169635720039274634553779281533891684666695932068872714443918277127783546803534891106251208793182638410706416449102182276085612189843006479362231123951416128237834613453716442042603047122672281386683612881625249255939735230458850555324688222910725005484366992773829980744494044992590988279253083083291595114280626106956558362719185290103560843877349581860355760287889695824377775790024785143795471170929056385267415572186317698159039292535597451005889283445298799436661022110514469431556694693776103478386346561553532247975101067476788192074716998997474024288329288508111201552689535683906982796014746230141202655445263895568884913162886516614617347548962258078252744068062517788526347084997166379888537144711556180413237299161065534626041955199307122686830333210591118260033003769492596006915106950999012421764193530814029079089295845127334757470626670365292729406162374347463859471066598330785366483344790203702698949971034387729375135695885115534692308527889709866097198189408175918597503867553651924436134681148767182457912082082986285711223221714914964348349204076521067716478573961544780130319247056301964840248836496165312168449057493509304537470770304253841565757757615123943900825189302561438444913547077932619259231374024613485411953999852162856818098450553159306902662904257742722859610916858729868017584329108691991102817624389510273326774361493978542664241251641672301554124784657224304454019210441167817651331788870140399960952922532073002311946371255520643740601293489704921257158097943692900344618734326450479245539565545996560914689847033865494129393883212684999777943703919604671123261805698670580838595825367577296806095165248858719570411331141130432343805671014059545028314699023624225421039989457168382893399546407239806331685879286585175828134878605684561920611616892885244585466209716714945326050706494964950001231541150289857451895672874236593943901632423823560803511346447441339892090866263905806884433836718194270352123204810363978315046378477097237836942376225332550579929210080388382133879546693295386145912093173544762679971934104839912550258052064212298883507642514704847282139113363049966666727964603881504521414132316206044557359029366959855382700767456170622537945881608797582978824232497655175595919794972904665964855549897583868886723263540765170197553048880600219933211248867422555400305085373628124583884161853589504350347211368281976462687864735852945058902088821671771292110053651964659706891429969677903464405317324165113149404075975802522842156602465521225850644599113894079744324225350760409746661177166358930762034737818297331920097551926667470437660658096197559211385084800344164009711456556641641669122280082158951906095127343449074453495422931445703318959046537314827567501842852822012953135312232376082983925342190788903397705042097077934469671933446209651883421774989609578933333024702446387084049999826693024377836569435018257675635042177575546427597641311027624640774671565254994021741048448053066996929804630077277144088818029144159039875261956155891556969931057277388535833980460862698394359096192071641354814224681231195546988750712715034064364298297532489250318468605064842262286678101581638024118365472659355358217093085090827047305237551070661930731840935228781602163743249051585417077923628235164687739126614890966410456797370194656838167157037983513484029923472624861207344949907725246361635832880765325096876532491261952717419401479289175033930811911839692074836689240821456804101962048408722529173339041961232601308137959216944826981923403572836872848118440580307870716028518511975426369482942704548008788796779356880338790995459369445936802443483101155878629188850200045758060697589410698049406239467047756330970471755794210784638227910189091376553417095651239947107871907170337135968072883789874325028158529848945964801414304939543050824926346364939324134514632521374138755881069671034850218180198822135515575992077169300042072593011507564050385489734557724082807082385022856475151440739662634877794811234414916328592980796135909406107059571366769834685486049447039081419373918918796943675131180021622515316763199544317478083604748074745756476733676724363762855965025038638415046159809878157396271424764722349565382092967621258663341567681957561473284371800639685977862020334778775442365097195592006015149532614196852849930810066349337357108826712909475184128108039782279009283083087669710584428907363446478026873548721300340785963699714867124345892471085737266580076443119094032828210257500994074454139400147492273739079870235794895000325967263606880673683023121208219072917677733126865423872064721888469304472267104168926094699624015713999864108125724603241882258701176225094512254725177641957426591672041634987639647285847782751904666978863297917963984875715697509519212337123056926310065167283074548022170758459381675009674348667948392550900775914467997648802089585112794357847582883874514891220505300028614806419167241381247274904527895057066997655898079095570068532110261084532086559948793226329167279266043201085992844386093072653608015718380127946833787994665164398261460435547726707974301489519058232891879293922391277274940337896854925534161926795566563870108566049404669782385713617668123163184659341487668078188450757754640798296834594077661938037446857384494277767734988536567974247240502968192694023794691209968520567463222994276267079598204018559797227638314417784972460819938689481137706816926131259639443119221937829369358597100145375906504123119449463424944283055268688414255547765975277363558862661230154743055855216745673220010071800517608933041199405330517250835126784451257144142061004403346120803043465493089373983750407506421256180229723334487487607609354132466219875226617956289816541592231513936330578849019018405865852371733868612649855321240370550531582677856474809061937745454734297709993733879543184171276727883069138863198039237572097227485418545776638666349836937454071686373557747870755946790644191745125743508473118018066668986851154006631089799774050841627008634522287748960792732545363246007962755960970229315295636056219344944961713124617658466841466087672400291639839271727425336377941810642945285765059067713565094648382810720566305339172324890953612035916121772064499685612664659323440996892637733870242911537224567130259630105054362920650260002796969781293373158484331426482859197427002638174559549126289687452871770670904050978358821443286059645616143963980298443177434721317674821179606343293037489987474955995525870303172691442819953285439555333238311562843849801821983042084215820079735781951978776293350710295071597522892991821045142147306891752808243623380794922194812071520875779349245698115265337697579568020741098165521354875746939669169838645263845049406600895332487507001126933842576007545582590573782554386795286358033422928943905220443857472179756159965624356086256647862266100535807859865710437950760632825182136826388320147815737238850013494100451095470510284039442120405549339620327052351456582969951741768471987841093855600698174878154424770501651473125380040722402311869590945326960209858622410996384967261993532260940496806868377532237106425952686845000290220691400158536002256198863234325554360547391951805963266780534872651393475419908289064373361480628360436693699761644692714569565718979131709901459029335594691393326695851584628784645545990599423683727913795823671450188646208343707376420031977496618767554011904775571301825810352195876901544802334016849285723002918508027431085138555701386001990468099200536371723989143388661703216440117428510719153274437417732516261751151144622402999263855110339149294026949551288954725022075299060497518117347322903847215937028619938847936212787519416146221783648524730110836848483667639775232196111025039085102403118724339156637650643204369871400702225586411779575705937810791497380331030220855664340279499758720555091143565872866430153098261250537448399616961828910484701908132564204976301756646753142867320084772423219050551773328132743007468899644361748102050489636793013272825520986814446156224136800796973725982579110934968092226855378732588999682627625469601495957532354330873343321390563535752145252762043310800158349649688677605379405134875146318442232901715262975122481099178171322535556602214227964437407811485952498765405181860372218309620193387486086391294688961811298008058842471525514136260102722888878972158723426658916775217414922600730576196679186089251711752447661243420588030063078742341864972600687244668364851949786463140067348118647711305608407443718886492005679081302832563553025287936559190468092231638053411573602051159713204395640110695032578502431882050327208433315090038018039232195811726850778571286143632012532476017679224577978501521894614221915404246332125118058259484923210653331021068503365491472697290203121905689019295317436818332183585468109440245988405475925573551998123349633114297580922787369642537781015090300824189958766056986610819115382355288732984535494887287190739759234779999455742638621098565809021284748360709313177208591312303070165239758202114140365790879137146003563149898457780250037607641659058573644737701933000582728793354134269425927269079434790319532416281090912831960286012353440292041864513774431000811443458133579410829147994916261615506376363201079863169170989125708490517678040656645764970572533129279906926706969823153618489366745972452516072453266030128312218996612284907159342030237986521816093378822522177118349984417632048331649781266723530980425137217203734725663789949609937805017520619188811929877356581819980816792340664744393190257890707709778847579328564776964876239267182442980112840588399373391049941477809504354588058316160794770470776658401322512036674247050516120203077112960541193919263390532147155970823777274821259464520918194534037666195446652320658018588496694188079569119005211017093421867020585236244442769912315102585764057095575152078431074530541231443508831429230499128935896592360026961677544969004400887132471871260377248372740556732702029821642815959581770350726929854456516774389358258721925579260627111763492298498368054359222737631956310902220491340131977329486871869551130886848467987801425715953290307895123914072544175827125213552170691696342709157977777593921282111613830474092705935311011930696843952198396977094363773694533779366716116769862271517964191445434573814015012230488996973825028726240481239759967327634741950044536252558346170141109494862608848740573967930556020254907730872857001173354268164348775011489613526455862598986200272573878716489059250912901464536299255027821538753520873736780156871534881226274910447502498063373520193968412480040053021983758552426891460542878737649491712913707790819470927313166416726726277818729577066827567302746761843657101875472028257456606978649510429281976587457907536581083937161838391245972779321941631428616387936976633344265408626149836728318702956127166831346849480174074191588096124134262940836452922028346133857341388079587407006393011276146814022741214280527042341135617486413650554036940428538923029754292363449751524083384471191495750936654620039795836866135697773966203160100811791912327195065997292972606091625370944478006829757652921764229618683568187680725243459854454340819447978225306055747800764875371555930126580422409155146888948534910549466918403384789108069667032926967294698422524001401291886157724867709843650352794276854134258511217715996784625028176525796694924118118469412539992984865242216791024772570719077445813229501269211783111842067835626102758614899669340774000129787924935280291591782938230873737542445892883917783490471151685815247699134926957219314332337630115721051420333011656863865148269621390776660440021593676062131413050021690310523756665979804100190892857999352264361304826107607601826800502484125630590448894368240351386403577396456923470328264871774451868556193238968673033074808371677884612758696353526942491759704127418682576235411894338657741509118412444184498587037987161861844126386387924473178473360267685982574053105293409967606777462301034735968830044805376012240937531331431129978372677857106630478410943448765661851245669147734675270255823225955864089039391216889057640586366953372188467668920252625415666516803616451927203811575386028990543218687932785243903270084521764891393523747262291395428179300632498804105102174866483771017705602237289883074605199950839377924526174195695047768764063770897066722948441877395353626474797072792113126258033209297016846332341422185504499134414395216349583814463645006674104574879667166893687638342466055270855096468199212722197202863760603039703790301266890708618870498462442402880375097742873115411105465226229821223571422068836896872482180241825432210553658972956709272224389363023624780507480161596370844385920839100574040977842426536920905808204612000599588150285475636763298898550966884628962161657744056898590067321474985848721787978695620336919314752907655021458328766613676806830385986761227729830702647259992558321333258075036458879386470847582334909476099269302523970720588098541938736148498809750240741266521147991073778342082688156633067206528556623234372553751419701379458050558295656805016689705525524873046647069601294059762573094499307506848749092599089200930593969970326125104377454644834319049823309714753368711434968721754508175487686142619511389756596276537681536049253512035423930761077922510262404539587688511827567753765043517686589881720876053809383953128239194235265138871685733490119166012262985284920220864839419559959347014509638602710579294582657123140423083576085472754821900513739668107795363106133839502613664030622450855661630612790500350681461122444967629342563102219491876470955763857653374160172115151558366492554971542574377898672446545507324133416227963895427521802387202464826891344461339717082466051264538569832733335264728922206984533224329830427274602227835846787882944647167371549764728265403998317990464137181091107892150719653187841858979256425863276721334126132640671941742562366445366520654880365784513123193868506182666597343646970698853395922446173778843412481200835107396305065736339989977387323455110974413631484449784253234050727357273180387150524472821799505910682211267582798788480442808564947116134486771186557812958580597446832425574560851624375684976275893837993358332988288034300677016164455936784186359726648425474628209619352164830694717687926075042938381903036083321122742316772199360893000061302701733932372319093996257800102040815035571556733380808494670362203119126427950539513649889813386536148137157032809732565633443443898972487936441675920984119208738205900504221889005418406292429716490852891540318412683968517252085918806584384902299143224847627135756849440181903933884108874579310828425083589067187240609518624386329433430687391367305745116702467950145185764436361682286912468288232891705398169641593201369636450179372691889746765642838553221586192690905417496328335219310075798007270514247776335210588228680257148446041442425860924440219258896010755879737450708753351633130935226690431589815631544147279280313506205826989892787426262061722405743139761964868866554833802605707618039496298591277796238419522279582272052754814341749227978627945185450592559479130595762081101724419194868667963907923170957896742943590250575702810677951439732777691832279851781853157414324869478669417488284831855288970554905088684973364065122307719397591266595386235857461508526003145382178532678345418762915270961988079711957754201225757868200564614448336796656499070328679051240847557564210645891959504342792706964440978293314557829564040281766624648300088501226164428464762716387826515068900080729376315074986017875599659555079952788357030313103146330678778099289274365328043198141696293755955894267856822891525799007363370883133103422625879433816947670229668891296355737714882272469532762147679411332731848225281639013848732257947916237278937410274994910383569655944256271742764854965280734355081170286366961160491671163738054020751719022251733877602138652716087024300066493760622142594791868502256849919089465403800985011689992724167912295423381936167498177095466306615340160400748174613703206627138721647102841292462725146576851755371110992890223639882617091722700194700379214531335871758054376635479765455536662363608404410788950890442576978734445517601245442788420843803490716297442182858429143679747438297608271039075581947680591546672747336822474509652470385701316720379127250835532461057176749044476878761030174767699862129314453227418371141735047024890506098860049213266043542382687059540552888602322104475564161020215161506227611320584890137901598011918332816014344100114864595301895377034002175396347897194490367038029868444025309581538617539831089969342674027318089816718041055627984741244663436082842701797923332120969296745098157794941163085872183088291329896632466999353167297977139128216552312023123956042255020860093286912615271929806387948341563113044312834299532090046762662616365548998934978134078459152763884563366796010283701537994579529479869840224357780481375422488237240409945282734215764858913821126436427522948560713406561027650227782794051041326989783430781533780896017267353489294549000518529991335288142258219788716092524491292752443761632418117183185782896238240841426462878706823159270356367688346886685625444180280335197990827006271173702563757239689231027407878918079419744449738940876672156955143791794945207503883447442328723434216098377204080171462941843774642901778063376688646858738757448652124529685850117735897694656381898947070326307667722281929547775902215924935442650903227497810011857122562371006158284059056822576867507120390941572148507131453040469952635803284508404465434095123935379019730827923828868328296348845780176701242640345556163140618088087037344844079503784972536780254996934879790445108208305137968167911986447850784833011740798144840994399742741813831602056114029730110515315746008250013769128460022138370038674371328531620562869137270754982288719142833194091191742693861405528986369274846918988557626619997857481259928826778311951130266168657609139980436316212728428237477071430878376274487608017824648643067755879913405807262588506647047836957961107979795387529150409040175693183589717894889025623627876960092404266370853333244486640364365575049541599997278417807516025261301518034374616167312390124384645891250454606869173082652333292096171375972577531478183359821707967605298635234158488368355582136680312981129405500238964171299244729015448548543571432476887782360063215928930835981174819705172983649687284562535000512145627345099893542478989066848167506029374957101734554309242366831917566930432549778750658313686704174125358963425690139351389339868479067843560322290054524452504871882674645332106063615054688277800297748251429588930626966349872252900592496043743359459837762629322734732765842909755715236880662277322123080548094646973125107973964136627926265701931583558829453532658037904898808405471017882023860941149439242694408710784938725153537241118219341303169508763130320233311839458102370268260807119038221762097477143657797423084846300890077598137149096770260745936161322849369392488230971830254289530425086873973935063076300026698123348392019200815286292968955573741146145280110586324901842138021180087473384586709198909862236442940400152772033930578980219208917031174158694464930978896928116641634120374607906339809842148300865597486053737308518119110617859275262480432764432595688571750364776641820736405553764079496083905783868103072708500620821329463269432357917083355929770552592338967971142875588164993096837445888798002303545947553123885517712208405947133019002468566435465474689571277598494970264431530318199229210630691927451665289450498826726145880395214707410259533927286991459348845869520003350940512886659830924062110666431241747941380385493790763719565981076699084683375051735668013648420301113419881457288102276416007083093409754983423377514800636535796035737683204116260556427541758565830614277541528674529705368196383156908002268400598842404804427761326803596988958671275175284341108717495091597995793789256376515945383559332432738482411833881077155501976154072977898329415601850813567064243636027683813616043416932318684027557829107591443829868002512597450827979062667087382258485026098047073978597597325835337610262697427684430158245293591949336167643869465314485748737221743690533339501044124480632356931395196416068212120844920279377399850154671094946157498543175429525490144923659242188011623517945162141061327792519505417722422141647247574846964358958359419891143189956302152966969020008871535947738264438736775282007713477397599249770863369416808479431659984541614578640593621629958540065826800081657977356675496901281841329596611881743260420105570624460498493545951929074436969806602538976976027368535331883338332503444296427888292063950405016099618875559800057681423482812091755325379385390370160874834541340512050177228021385971640263350775010436355204271245955397412351259334893363086805191752991975555773446109091747272861191253583453763797587602328526989576815642971119644546762316787591845591971118935686372398853305793581111666135590972126048747944977439004538484415649860107425673901826306813511987344539046218375888848225633353559307923834566012731051204875040128792056973378779752087122461612655122373631202772047789849487686755188711069838110745240516601810952754375550526737117574597031232411271188825597735226964265142185744299562178529263854476837564947927121088640786863153463168232164620442441356486346673359497523330660074569984199830638499098654785002759173476297771596478069406084977663021838045590589232964389874616615104799941372805072493839403879197597707887098846333817294292227182407909316095797858598243115782082570024451984574638997498064386474909025694669180888798503980239720622814418785073406220360380865064890670313178916407906580157067646613841124888252815917878982878620174691561736365393415235851224100163622313480421769317284213608824582891730665024165989707596862157831587715373545229434169557728050257548948488713780699657419355733611723608659150827073683372007689836714567840304662167709076484318672414256879407220066627421512948524050472377265238175675768091842971528587388521886653133803616911061853719256495060955731705714717550432097452931331135156811545103740877542993647772869477226706388602820311346107562511333475724019923869706572768763245586990207195342469426524755190273229447871178466022700379354592342183733239077023058527668573688392900447508882797776772124742595477626029835996663951251721580369994787576822172625253277420117131175759920217525797751549841871267476025869902072243362419542708846917293019363230830933116243737407644731997197575192725005324062592701208947616036843433963366867991025129580815269215448490745479737671881829845100804964214345709692472270104766139006529634072868432410436695052347723632686831047237687674527752318162696618148053347840019905946313428842987639549332376309493523404581283275285962041937240348920457951253818183122444851706458277966660440041899909743653114635448508971566474536418918783569369593816405071204312954028976303322971798393420805016203574650892234587477514762908100535538996771059762090336595927387681607142288293694225628241112647721381680457994575751297099793747064155414786811511507107413296007997392127573907285359752993119801665270255262113259005369024361967536580624151415237790144820451856513068250945596867759088513776247630115916652278978588594294608327957528857118964983209070569106286943171166130334263789364775860266230679993179731946561958407147163607139138255073981119131989615553160765309071203783632385804894638410769478722706105639746101290135090359634872293769310723407291716550044413543244520682645442733201799990058980876583325349658337257567338539965438302309481298506149614070517339001111862938793502814866266433235376098106792263171587639794301102112685934166582103398991337563827223834938900957107011660107861043648783764872028185470047705474302826670604491008709743130056001050619127310680721806878384370557151609474627607858646334163368711077138617433615793737794596633046856434200907062717155330681815276410495622763266791539404727625449468155921132507056015898205248494710670513015845637851777837341069917082741936394974290326679208648164966126479164114666215413318900182667030433059867116691860638345389948838928903156971962020725051492971274173448587825772205078919848329952682310567534509293116758023456405507207902267438726077268144225222886245644633962364149355832286195493420425416971589450481968440889381009062573294477124297580378751414686840107990055224245404218526230145372127138177476423637328584364831158532377184336610853907042519020981847734176607160150759071233670427497609576287400984936366112932409859780224392556830302103205900327380700919250877821304217430787724512725007385582052572796397060089262803217784573635606970290525263560592603252298102192562300042673699392748783508837032291084705761254776381691001083872867549478988109331276712480731895084719026834926290334358351350432405226723331218485973856583120184266051394119466049739041764222400317206858966404761781531520195776027093366867990711218842729750689770703229465582112376376841174730409582838825764645618001159515641067615955082220210546525652575936123735271651217785710708971129283278162193856111413450167639527589483317489490282811885658878422560973341648501482536023110517767359872825146521892669274227286836725153976368193055408212884275121622563174351405980020284744254725987806493421636905175589161276031176705822083811950182108142395153416440809727950581419020728957855441677063999656719423868261133038569142243036789298231880155854433777150241522001841340533751282630194458405636385280208398972386346517045100963463598548039887957812873851745891923071091041356984656948522872287836570814301149071707112554656784649535896590742321168252103733017468257156701111089679972430425723090353735035672672264248666515871284024026752865163283614891226469570645949075098551598187509808979131196073480750203536659223871923100176624755070151030507675594287409839680020793524707404723991465660491966255848045602118049359742646559384778685687630948549803125380556457044795671791411994128711392409975437583258448134843729427455802805005327088480548323129722717889285967961133772386509763041460607389526701874360346149423390984932706854668374159456559937066793796681551356685114351861450386016024369861260133891056899941879366074346513256359173389443272466275267484003401374417720562294883610697908847936222528497436798373498387095490801867343608667114597984557651488087166883706116040090918978253104585171187930087630456979022532542218350447481398660227092228614982335890866937251094824091996915785999256488997317143583963810589155777687781607613989446241338196247081595441933613513288838596068572813938488308431666454431148343094661572464775254329960331904688490272648890162860465577993912957374935195974194455118357344962331261816029901503188569824324425646555343945737421445733999212286711784798215272302074514952257336936278852228159129644306189639776816762824500981834532865627035466598708690383231994900555349192503103344183049349870046188449426547347177171346492391455389288450763198875318554875480378551027696183030065186587811120209852768414241599475632773749557228637747495929406884958034460193414100012136238686793927897440786493517846091114454121693298153923480021667766400166707511428219705420389427476842440659661484071151583184233426467617835604509216960816872466145967149757653616960945071522604344125325704503779566329584355197273116504805838823176924742012364868591305170479093391441143404727921705309425008784557501223052817106409105664737872732322886829589894952046401926861617417187373756901090430189106128622167194738954675305661899056439276459048674003060198638678325602274700859987403827376118180327694381417369617520355240548260981429669733892138217150778274214791668686756885772416116084907440339777987757156143878361444439261039900575433917552230933650376621568350988099774365476406979095575543035711406858331055744098952181222363484783802375700049025762518887308972971061779824818102390179430549990654465685314044238966629243706331908048501835670239879307025624586600756257135315622225586752103659581607378844843096528417192792543050002534760777301593896481157960501823036175395331123319215038866506100422930717333432748708876731642020557111546027917422783023977780213057174801199225273682423789657767418994895352944038391566932359632067391251403172290277301713823789354997530805228874240859590631454181064000038355614493249111507808591415236250044564245430175395058674793603382989532479086508994978934474738501370220791797109424871543261441796798136881601589047905764559568300469751470938171608654138705224105173342033408917853126971014014032557235344384804747902627433356327519912052586456610888462309956677174499328648913258479841750750155481672557816904749891183117213561302579973030780901237182200650176428121108252588051455473446203806862301379882706505093961685877202615869018648517575915550101129014368490534031547622578773397404401002468746668919722272058242967832308857261511595834180659075306682799279558843148398866558850622331712191143227671306509199524022229728748822101250659499966464480280802128164367994369565355764325511692507914827944528706918602618662494290569980674069178911434835407556863922081795870747558133552070846675577265993499680898369377294772992637771249852078379281346472882295094212221121110181927646381438816858935820854822991107628275429602856191810354129583608994657218961226723700236113697244464632187338694295130409585095229656445810518021475470674223550439541167984183496190412788996890864102776289689087449975829350276002929670492107127417968405092233410560666625350234319781234490942565983531168185817577753127013751307302477751594496445508087275781139286510073942424120425070427196059988246238194868624966214802826441785416426639731832438349361378154687904094705339571244374361243164535823100706797760314341740643332141641484070825468172048698814965650634613170059149220290950084643120330381340723494462143329675635491782725982533851665062936248787194676750402910163984157733404133913615177841936873526904278334307016358099569825147226897314487790566103185376023970630650881819680217011577051432884235919556310688532896894037698806990523811304443347936444111732345315717660072901988261105634502724219815954460735533594718832204763559514794368883624987209413828277803012317945397226618385431299368832515858930029013550354336261220916066104453679061914701569888176801149676768473761086057585524956826163921043324993911770605019020144990922604544265016752577069297596259239053463301409766266635731008189380975722822250339413287315120022481950352338730111414451671977803537238313559670880410562828307266675056017668102864593748723412539194577596700675269046314657486728861048910622037089229106028538792478083511718676347973827530799879183301196445505642405156080496207750038912914521947280415296772383417353483180721807552569390706185527474827514808764487348376575376500533565773324222424242723410402640887522519406705079848907600254679054396266146743385963667035862109779540301414940115341434471625916591662336954125432131291462932864343129520014719591419811068429678546002873631333334537810150322278979756597644952591596952109439977872746591345243782403528860867783687641542511929281875587162555998031079945873653716163999433557054873151979580205619077604109188434187577448529582325545453632259403775869911100535220327745711432057517354633110059942071038155630085262053556436952525737439982880522405721076651287535227392514188804857545783799783321557169158870461683093183371292861841858793990199411500820943756006029174047366554210014193135215275108722430726787684029843490797467443956085513628911450521675292648214651549722350120310690109237767075736320543417501735661936154329456770550513868703872545191446557423268667386795775041594817956045273748976021686352792666643906064133242609814180378466791890538012803044031720440841795254754888736880247372561122341895425826185648398615843915496867810203592035454314442400998197622964693381176798992165011358384367494398621336280866001860701402323691913623329466739281759263142669923813243176820089861786314874705923523232038365346633473366081152182755003079554711995010313754358151138502029145265935238584124817535360060656564570332346332021473574481002341820236386212745332195651905350752957154337443424698913396957396805866941437624774533034982591043507183257037872324548503368367596906048065648053294400421223231239559409869812266390635565850373697844795529224255169760832053563131015239337106869294306478686862358549463384522049233515871610220493730298234159254120889229780156436998341518613602256398130837912166187988199690913304618860616940357807983504868093668484920351391657647197282093671880766460910762283825753132568682656350416706437144211006512836689695693405543077132122783526149039239471542983351753705380598639611484990740098417956229026818814718946371838947457258762484953703588220867939211972644758203892962247333072927407681487578489427505007020386680911309202214452184174839983398124937490974638728031142317265094385240890682860791088094476274495960909825114810685283568666816699207280012246379334581250168941054185642648991668812604525469536824227246733417838110117396809449765134564295468281562317313708442370028489766326711253762588538801081833709289990417984877680863331360575162788283903934154380872968858619967667737053919595688112757177552922765602206721986000317912171557952903223418722205998156572127858507284740860368262975926237122424615571264791841503825469857158050333256899059319074209174539042844144731970471664819408472988923764545431201017224530935846327823604647947597902964287720034081816606789933929998242290453758471156707649710535520950949402549772774985828502484480858571379242036241500522991951401829921925210312419532698842681799204589063845827727817831031486749919004167433913953334774840640008869686028404618491799697466398894550824051775314957868506169138588485088261501368920048707640964693956219265968734983312046058869169419574606570552535569263077376371326197044825607470586702881709802867879260209551211026565503650146167308156360988741650966226721717957831183717734040037123596918438813752132428674570981792000107908064837131017089745313629928337071378852445648149205000748194676583000410184733519677393674108526792642250593653373689649714779527811118885862833371931382250352261174443775207868506735965658903310861700278531995803184496830589882027424257613969066736134091280670243108396513744141964437809546561561817010593173857108616942499757377294227494892988169034143989667600695484407767792482655755482394307126178964336159349963913691665973248856944805578773689833433757080982255933038929516532525550773322967920556767842380379436035948768323437874413838105990857408673179714084091881708932192832779556677937265106595523858214124408612704718148417839037707176423059427465707780626623250016508953175326499292260938822588017887069771713517422397403172008746525205430142381361875286544970624321496887350086693323867850258972275807842618029774087398400301989102976772762121867413092390879438126662886044417985699040418733149389535924806234349145901794290278722373696144824074017774226234038822334141256165658880136480417018221939392300919433618462517765579875527766343449336327242235319992304586657430073480179449576668057179973092549907711988514364988854676757419446933670125733772883341781230970022380199823688106019765343761362043111720716969660999361694911656776326457021575329828812868809790209188395241275804137808101721129738851744961026100633321621838734129920514922650011088310473272541343185429398576013779537011340412580644708806038416274517077253603953251899885927554412063444032615180264700952408728376813102772578003011064549345258563574337079000291602747518968237743728626898170861735126470616369164229307273918071369719094734682770799491289693616781092196167848446369977474883273367970376637445603634960084710264758497294459326909014123013593273638350094672730672093453798293457348245712586937039866215902404670552716993825201670106641018701738105751390860384492707962195066262748197512075409273751126843409977295741649248478988320682985162047624820352959272440968031487849351254682016366325430562624213875807770770584322241380166510613846740084617120826764304797644372915706121277789175469005534560240659680360394311425098121776561005561749843509599570406535925047106212287968970019797036828355962122053861841046797427167873173345585156662785195083061354053133991769472041696562871307240451776825989501789471107113874140303096172038669616292161215233036380272759395037528751835816613752794086921174913799506035166390430476843086159702443041391977886242347793968147800841704181584218950268634779427752115500807743136188511636303676483468464326929970070834417322109478469565948458877063395092891143316175334980161134057090738029884062047002142790119687905079830413457037017761746458495950419650713836754914543606543915665094744754334830498286601936174090997087680863755639562794685943308016304714149993376794046626656616198218178002598296284248841369214985594929320907793408620136865353175432368784753828454463201664710182827882769194807219843581126379412681347352928681993982412853307890437350416931349132779685580557917013383396865215970139430496704410147938978999775164182349015572465601679270219265075922014781387408803304596291362687767238223204283147728428674771386330624744315607248813464624007176470046827164860725309002098218080019720618540731796874968152194282660929364710733650731948062704713895941306041427329129476709623089145090860355735516741280849166650280756115960377932536434279892715433358050261453205933078156258962677464979755063211063421123785168552956001186835374074455419231151319268042145583821945621510707410581293558002709089074398380154072148630889498454738132999629982959789253436966216522962344609030396868552382189740769166803716309340524971874204914205112955859703669326370302137974897333697510765447877314725477916483864804262279345648957662521159873593866915983706699681977727423656742167892343302994020591170070892947058917753969701713205883005116929887378164739540408123955970813779338469601061987052576418934186587652057141645884464136728842823299944031924408074254534333137011570538333445058523626693854010500720464866059418730757237092946490937214269418668523268159025780902910613396033594252414199642221181254963168990141570800331285844496716383831338125836899706976582610014850510757704200326069254442581335746848577397285073393951182344340485161199081617266715295293008553688209534389463948298583720285532543468780001239286963877162522453811143727830269283111693341037594073494775184077163386290935213130002770657430943448155733756828811694723684672104700082451516194642305008224371670071564368397819361436751321170982653964051040608663931989237013824850913297186193853020208624150453956439157846927110794277206672982591187061389794590629034435211595399963355076904183160819268463889375580927990335320072313335368458733675825866607460888127353488213472247839809441880980493505248436732427049155686192069660644058852746762577340585291279155130687006227140656374112414714529515929261411371351491278709622167752240334017993328633204890308936840179818726364064579166337465400780089375795809831597311754895593369748258210558351280167338264369659786603442420898614612161517341182125628196182939416938503403502901238661742329741438236201730724531153231654014633002112931815033756580433520265088786747255730370653982865190205232832096004319761984120891009479115376581422820386371054685207832611632080799244032928350665812646537717123614735811678946294877231617880112675942827467168731722007240798152246726422429442820987420697920841743022209127349105677824690762595437267791068741696585223414487077389449911749281753741733067460609958776254477808780467076642631790865454129971271377388784188728921230926838432863356701024227255461176313368176838003351077276341346047114645280923378968737036279945556973244752507874615293057792601145493350377812220003911626069230738184932097743804051042750904495206309843871202490356345882836733599801701297639697583809931829195694871335699409017321759940156040493576952582621992977186372556164693536942251796619225766659659436921955970182609786302004986153768196124378326060495092857281715161430603948513407041774373766926970897396736502019582593805345441090527205867399481387841887326341399075850505128710685052001552378426399409245618277894911236578724112799159962086651347360793129875585967210330509016898910058919738498347570654947528756256398003105908399007798526866748138119810162139997596828858844361574615394372804366030842546136061857535390945621260169173258765586469408978395123797793346285235065112410013224590622196706669873287158999016641283962441915083212999238424729286082557199686615510737252511085595270174971211729227830635640093265205565734153269138176067820669307007167679830205939385479567328975623540575834740734056115848102286292623460494743612217303798536347804692050650049656670274071432043002931532602877832900345566281485570776237179120100714454017375461861292652593488916617167363833970843128410278435876848904017700547279938034078799206784859864300106356679732475904557186526120605929584045332253956125186103492004823758892601488930220111352267937775358519013015791352295108447182581679439195269048822997359172819099483432912019682318203030399186291941678355743753844970895009024784148636524286800591003989103691705917060392862195123100194867962276935472163071993792715864327333332702431159537794616527872057467784270961678816070562863296269992187500377901798745917448601687042342322033780363789293872414589164132220112093752463871973045173918330218877005402340015954595360727201060328397642493793505057032019454103332128011471057632460071759901374947165680141087635595718457953355525808346178173727668152839300363870176728265238438303799257143481557876262729134126368481975322640847547451526346361412381244245075516106542336719508487934230563536040838443298721778184861611309444809015602906529982939154667749724258610888213369967502650953627675188561344967966623520599834921595118468253737511776407176308138942711877150428641865040148552253632633395659969855221054083885675082582798731829446640447616812232596135057329238637828344123677052789616661168181463679696422245887110837738593452974235540063265216155026674521060845218316044509306026947088771384128836202337260572441048924342010715609661266232808682409920181488790500847275299968036533094559349652220187754385111947622718932874919509976715008483679192961884384888433670605525564781839073163265101551622035561229671634057945831114151986067193653933805800072704858191530672298662962000917697944653805763558465915192121846394913736328069141360698788845048980748006366331140298789100474268602278137706552097308810736510471531368453495332877299290694119535642082014110226492938750728528097354728620994379038224550637182233032592230960736087711172594582661039220547186788708445160259299202286800479649612919087218495340409676466396072996386987496207568882089366665931903362765367521989488507045346332530443125044578860830397428430068860678013698674280262221052099841797683883221439194035852477533584337677753960418864033599026569996981831981976822382380539359931010289038985215229869735677087174254577757512683993111266850872635813509299354513036726132294658835425808592878909840179216767495274449217367747489009320744937952924710345757016410094468415972343667606619378943363184039823056605898427383002758881041391973280559046805100674852317552835276537876610912297934071449549109912709719103082537131092733290479591514628547623735918683879204094444248984222000022589778824784426541919593152997004374933460000437408585709028645404290348559193350235442967785832325466905371349287422121730967785721983989211723653794029501479215753434731768377964079677762412736466594513301726783204342618928632665179660348045155976645946495160932927721194296805651858969040970484249395340968529665850565816147153444182891790563154359500832020152711450701200066094561706595769774548468534275981118075757445728456895440663871308116200828950233709963069772510853065819898933259556622845826744746014643156244930752299584994930969764754146108033506645854820162004618665546097916222493342251713603904764792839854646134147245988029815683417178697465967107437794681021676682231170694784983144786233805766254300446507534615610656483927331032439938434563654208803580548310707080109898814650615502267356282909935180590156899540317040089325702148641864621492779547111690076916290843017711509915565461025329049702600095913842559166012151348139579552298813062293294095934831357233596814673745969386319692068866319397972359558771054573992436567459394307788163220325407492988693876887070910365884512984793387912408776592791974285231003388231161379085313514145383498219162429438249092344698690801016252517068894571118628849261931952843297194299923299923963991342804252231328403535114888156719124697145816395743824853114701157410448741051713908199295849991809776944028578032466279695568231965522227909521965169424126336385592113315809737643405683549957173931424676950063915553665748283205479741420892469340517654408839721344355917506223966146025516099143315967438798797828125202066776907060232337082478785533146198658551314882351142361419673404399273452132978258529587733694320568702853034962401828432586296956176336197190619555592242481831569479540151117487454497874036219804700840233702203617666741792824346246368470004995583335389160436176457492230832588876601215984137490915192271125967219388506238553094740445855496492388716915409049630875060308947238749573315584662885496969403866140115295716069525572441793578209752157194248586202756816338100913988724400829309752279823987881446891772633441388666559974088741270020715923994109784426805152848941678550310492210936357099091776250242895582626418989492727116507196210047760433089316377706738814941109791031991821503758899217866769841029988124878607342814204587050625110721671898166995103008504276368437576974907832409128935972410838889146912347916968150780619620364128511740483080912694630362968392626947179640045278650610700445832515779562406390831182738661042563300995444631442995602258288718572795283526628084870929367173058918026516061124259649228627527839109848504358440593819294751687827773531593828437195407127276826496922948707195347062749587740804920263441425345060071459150411459266809692440161003550505209709083971398757941994672314801044035936983902308305195470445845099529547373534768913291103389454441835449078405407035171163304944105625578305833607754806964014743661835114161459386400916444759701116218438686890548592974948247509526331120186696863253013327007160525500431783745639712563468373368118123804022553701678103177960721116972959271226513489445591194552705042861901078478255916653614633031272007998992786553867500680918971473883726972154577854574023848058124509869230987397602597396055281946408257590225403280619534267958129799622825528649032753187418045916879586469444898085363001837932215482538775310806684184154660570090593249116402579607478068012427865387908405869246446464723101351561667420069104098394595914993773788948601532285997219967646110944324904214869228281496056234021480046494006706997086717205954675968373888347415934087577006749448731597028181515349452928165572468322989330289870263776988186623615752939720961301559405869626844707632426005227988425933941208545579557688289802702905646430570880412794512659084612760002918362559627821916385719895421452477628076960717780803374204601816796695120845196066120738956728788680730683396743997991017613140774823335579814329628502505735892062902109496252781166621576530447264665734964409094255213565943236513285871429921609299333422509844233702400391544106723438486912414884684032125927793558188615312725651530611997095683073612304889422755399762689577137813809213741525423300709918771560835355910624425354394428295221089805432663695988517545492887983338087233291010680302313716372116119185373125760241360175739245952349894612139111490510575486132449003275669147937850390994117780121548983797604981553093800170764919201331737191750611901303722928764485329994711624041812270849517242643040468691739266502868021586893873020534281375141324148295074969151784692766636881585510509100849856333603645821174048430011742109355956435552231091810661377871692515337732065882606863946602511670565995914719605936368556092362988692341031963034281998761279891856571495683119346461178098657870660110384344186237670295094475357633322370037102429203184349522902001722287145367304752825300661759906960919138146732909824399324588612188705480086203110830813318566795556522646253386332412068169994934986036538253542735956549508971969809534851435043210498723558453632102654696522078080044611652574631946981358921900289811706551084427859165965381607194104774464875191246198749196960144306292105598639198254239071712238582412826310363880653858486520155594660289856882757342174444315614978501856192240691387946065054603300831443247680636217278010317194452152950970821044690165148989953196701264092604944025800845180627956756563103367243210750694131546298325468615849854685773879612794642780810206259825485251090382995812129395129300060878371879282401498651317161213774554336309513129518016961828370249126945427830697281600102931914018347169753816006964862427444709916067592255243521065348397446094369032348325564933212430013013816354835943941362993690979509893878334260572682081545443403570788035333219830527615813368247345077975568849058111165431991202935595455565185816386041796622255952170068348253437687338321439683406477031208872423074769759252457430480298388552354188847472448192720203202754706293729836471732383803096669069137652909795771606947211126515950415972142004227557233985447736920527737360677196897966587027099778422564778257004368225951728397800091410991151617054424997201100432272225242692184306701256914683526551988673197805718763337381282647073580760140136706978060680571340908644137687160082522966065433660446290820294335144846830819328533499059897046127144094161695067991761986349449859084280836446226144281162597248369104232543897052262890977938339521346145742424351867368208231138269266580965211171813664389701520330848984829242545692100282203838807225543153277828445604517070191003818995604370384286523005608921425850591040715187935883336900789172164889423464976323065681487875347599333038660590893173200239236018983919058239207239561421703914521891989797410125333881625170207295430316086318000752862895833096615013288253177582778174974606166066842769378425451608853650818085775879126826058190122249131173538810413623689462956473405133011036174313896013936177784133407582953153558380976630784597293340907052127127474479052453436887376074459927374704980600295762897595468476900783774290485864871415167382371647814044273007024440104793940366321922662314227732868244120662562337408092808322596499363222806035464441540137341460858929976495162846771279605599991747254032414609325615470301461513143543883296269835480864344349533731784018997169903549686653159512797893225566075087290952543896517282407906203081869334934307206829950527836664033827254565764581638831528778036010164504824335500144175635117525618234016057277307323019921083159164719608965915402015017798473028567028109581771512014229399985779418100028461285281986896135134149570566723045519803588423058968144233701981844012097882626673516964316996668555885294987513269663934155886298889320890657828117617644851695744399037241855835154976367116169358932858293301084690734338006346537439874929972570536618445965337442566243355129089296885005756724077178801058502790625596638398969129506919125157388234518550833736696995561033269794371356862619770640688586679385288031057333737112096502470804753936296764027903258502414140306533018928621186386642752977437093559715747785399760191984069573324269606880954212924069861861154479163706657950105753317111398808558264008729889581318957966385795042471398670177649389025775934016715011631404878981585366542901269583274850436405561601534735926654160576152675101549067034034750657687139225882710508687174667838279757321755359112420401983902101631607349457456483055487273937137401798218901846284508292175398012049720167016998042517281465546604882122852821032077519322101995696069346515942355968940748238208012191095755731438847018682219317884934767022990241672064282831745899708292178675814842560574493680387321745894591522473294323067009326799170033792744070056385079546082966609114892249819983469484569231111728369192773847717643712428182245664468411528667384915288818576117805992328696709954318357482163865031105201482096430510602261670147338159429207327548892867080447449228855227786018841227209941519245164021894453791005022735677543773292881860966646150965133960263001510989218394836818074305001367025029483672674225343487368082238635171934027218873253012631011371815833416080965973661096385911804776731720283604494106140812839574385630842551720687399748212787973083716035387430088966667402719183392833209973481045542450529401829546280497578628581561923695304036801825948704784071133864670049326910539452410647775218268761414238376152596275343195263282215413172332051802070239110064589857165235203257192163602563777778200167166371950294145760879700089297824309129171264080103322407746879161022306245075573267496521733070698364783299001614966010969464707114538992147987338242457168170622223564775669391294206621100495898970714946216114531633495022635141999517610372620308058096578167767702441793064334918931822917321007755138324126319270509134925940757539761736515923524351970902835624776443643882443125998707213106294376399056674001396367228228333281974218682718606041298269144538656767368867222902867693482991474824848578171634832311718110238884654698284465804441065881815436176799193754002027366485528813464160201049355898137257127123190085445523134068140085473321984206076634162397563960082971074598728517531193330557805090489651210919346326990999307880996667854779705149273030380428485791623656582678251593116288438051027432356292048451480866505082784416207766280230073448036989246224302784995191603578225696459410908078644588282006217290064651707192825362278579385529031252782500406212977710153833232118121985404074502717235809726536193153569790201750213973309886111670722386064832882113276061230552426895498861867964389293978290313766404235936690518748914940053243311797685792216257757860331414830333520129869846386952906664202983715092404548738228111531654387159614359934982684279129525986198717905788744836999840307858948565547761591473084409408490262918407322957993913922409342461087588861775735579989939696618436528385686977395874934349870323213877321768504794823313651117452119791205137332110552916991586917500562319394042764451357686097070731299951569915134499686678413326871508766348254563443012666023753157863302310836320190159590966419216586545690545244146892818585874435030054784818309105087834205662417133104254302986407223772429111422688334773373357481916807748096416086525141904199733326650734151661321945547694681474162714725142547324393887680498303404920463338386543953825486598522508155559537540177279142658457216066443905545013566289479438276182635169145011309957378299528024264491661388684236083473250055908186625869534964181751385406767968102751586459506103517422359917203939211886567195598384355099433444157019731904502802425721685638721447503566587944450511877026394541327607627235648962486335574420501830979539232741740380450435551945640759309265815635741319728778142142202400892067887648350140688445104551979954113893298769341132162033540965442975540251542607739807013736479394329826459474658022633343618676818459109841607791752425386908697616410493612630502847909456685465455819733411149283277650563870718781143328108927574212511699602805230602516069228394057335652812178664133438809693640457331175562443789145523262744392370665818442982684611104609957647970487150949786394829320906455328039708360688779648444661217786016976742693710710007774252298893905103547720179525037859035382945096737501275643099626227943253546162944155778431617113540070104862765238953123894561123976822484322119038888682073847858370761096357635243587876742808834355865290375816724171173323975983356090737962771899071119251323393902412419310590074538994109375275560112707434323225408935035858474551964489135409862327261723293723019489810364726089415498665305459562612193053952516935748399707329206851017543007826904643556038620026128591098372898606258796905747313800991850003090150115491499069595276431567942182472104012896495196932648269883060692332762867394094228397999493829385424480293141845114284214678316548533495550085650145662465301177737663804524659150782174243135461676511862166814197472431453762403152282870877124249039380738485308541477761581299968337116575469491879944823317823721592241463248945298221923099306505678923713118663173277890673405511290376384912303772331368993751822113630890532068963445078554834148924896807684051357309542681295177932151803520147092538363951683484433872844715261664669056210588365972323043830206515550743711426567177521603330048427952142897835387101275523924650382009657218999229341452212202518278527540529359318787274358502551222233814920653602844717660373120836461054418139617591688400316764656423606063768759427011455176619439616203230135474333094805254530228414653805807994338012874291406803248697737570442017041097436666493584522862445160653758305491280594311759103650145393497468150755361474920696931101508327844735268299499073864892349864235430558703916609311416842466206748032514338339830023858418899371059050399417928936100518972636177758923939996035059127552586171186156899230975688454428582527620267400675082183453417603366384836661314511229113262412637992449630192047000130177131914603630328040800980536303053820562607568569270565904766364907130585891583370063427453160496698527657329674915162578356553819326886535435746876325181874758038418421331884387252358991718367624023713117471440670332733584477711027128129319437715285986776659991869372923475646950232712192856451990611859853219382125141793554806664186783078495982586147419578661807876100487194982648215580795117197107302567790091195649724183404859412951278735087407978771508014231389790587556147104664754744710890191493575595182728715255804294286088390741539634936526512319220406276060661360036193462932358262698939026442230798054117408693711705972942814381901879374324810696513215077237999088099509979945384866255881235786132001766500107587993138962417780051030938419781194225159898366452380600926794406277905725295485435154576369728084311653401393753716143630935835339113201460165658587896114890015497313550570253002088070174491509074698226813711830020448194505157807732292218602518175877537787737656233801768689236514032880596786504578371527385922338277612111248703431024307740869405686098997784648698502989468077394373294806156838908468396522465217433891458044450589855319046151998945667286107016217484002910501390865022215508335055783940650117997390249972933681042671134189457755258364464689665062931031509011698253993889010144034644453724109030855019252766812015106122976317068824752376286935509850459371954387599354089923535648127197958878136983482526663205300213809622873914421646387541506628684156904591941526203033240577843516395329256512224214162369865328224337542368977427912264873489557901934334120865596748192072239366249234325038299096294286191153793488693491285922070329610600058809138843631511887216182218365151522428638363307335302395847155584177004943967828174746152832507185529017583964609985448812547041913152381068376004509844011284852926048658005973473856507914203864141417712655345114755695816650012866057404005954347545326383859749744884198813466468561657100773963414189455573970675809899499128795600001791484540955888613740624210956339499782246122271461875237414801302929747505367615741299696899202907644389192936229293980493384026680094471830771371300028512368313569338199891946391849998828393897044573957485769768690829683215614332581519878987417064434452523311576154176064791618059839548677832852825190940942578778539067233700837782636992918470967342079072630534509088618632770801794774407117151245624546891801334123088529312838796376709672960504058581675741979814327415719819543942632386691247197548549730029510739499494768974223915623379423566999907172986254718915573001092821728863383842189181408694058025450605490282695979017722839659483666772484960919295378573423963357306224934563533114227016461850062856752031976056021914634294587550534423282973489514328261359908170903408349920482724170786543085880542712872375767130924068402177409208693369914194228582015702563865321641746843070461699212157660092505713390396279011942975603755622632404138561927436196125017429876518429373127057261169480622512651928475473254167848318411042774149290497825422698133219880197079051781331581892146153185619008585544616772925151350769367676624249368229753535749904460829364265734690111174473502263255050520376026519970439330711155088538887919219527568626026479288720090563109905482029301254943670126946713883016702701798762888399666212807416470855866720610012499016601931596883642219812780232014563175037572892292051068466272705585642776861709136570360183305056573548515709046077650159754246767166013026420710989868464527176914567713097986218018499275018779201669697938452603313120511025499059862143605113887123330384732558302378972812793144293948819155895151240731725551402122725182572031092720933285095437847138601886838450058745736837572651547078897112079222794393019416554799956356754043172259305631187927531933046379103579828596445852220097623132287050257042473037375303364535567012138738070765040035778728470633259281915193861999953666129474831576314374630979637834655244412895591790999782253634662157490328425685826493642456513464651294162107427581186177700030009172006910040745939037809844505897255385602257050677280690870438149491785604750666185237387206348371741905110100485336367502886036780494019247224229084328895622539243906841216447648346310040861170089454261737432508764387088148883359253163373722347052760838845432649826267990732155218876504418026282194863191299441392089786797199991925455274990327333409590647653758030116932654132345884667152425584358975181995005047674360426846337535325454821140612989620972401662211292883432820218883939127723515414503947667174628089710330374961297014387986764072990331290958192496690840571456303112003739505539961952998987391920741567772681810125591212420496003885127372639234172891258198260773087468225637995037427855534798684297050607223554388768644075413581785396414109113547443207874498597728298222544510914945323283913294017624618300245799235556571378658045391728797357982029839861519656575559172823003126620525975169848564003445287994201823596272855640478064001827057733415052905242861227619970049840060739891047296952879338815580840997061075022549929276692876248418995588541065909824484715173222665055579843047465170308845525391968741337019587328306116094833447493832212193541917296461262553420144608076443480011281129055029526542351585157108666425807687310748562921549085426420260641746269361585837163599903215027981061866211677524507155232872762969654249880248311661125777651807759787410331634330044974949740512603428894841782030245973910215786045874582742477054308905928171215425682144060242116564418092267154551335315268589265988209185444234197798970704539492964645614502084556329908825570664031987866240480065582686262691720218650526708434818154239840608263160073682358751236123941857741749258224192373742689995107647809871973965697186220945048907806312954796231166547811067431726380430536985193747996910775703318186360944350746883246198333444632305605097406854616123310121099804615103941246720071948814831537585679278894159631973549042067934484480126844618149055835836534401258461450226538127340215993949045155805875172002444695509042006307843172482008824781483711595795464672676218656504070207797036586942600864349186139113488083290284926518858662464452223971625670393548204502488593831655451809469210174328266125444486792425178861364084403150666063493074509344738083595839259442772414011556335236148115499780229802370857771072335234435729267980904328533338534764312218660876851019139920837733227420175968495173044891771571281478348449468148882112221579096992992848365092953284295754020409905457610754874728213584012880721330732774895187177632057792689626108002480656882788194782274699097039643569669552160483656940276032852652788542486379931810007299270746005880048444670713962320870955613226223138423034394057125096059282638609080461694798915789628456311029439081336218666370798694717253604424461423901031296933098701670376784380494756336459870174295655877001645764535046122754239224358804818655324059072923930633206343181125106225340938148077556590586665208197684591580778394902829843623648822476947802182329265688289731759956266218355512983826827391956026824187989392967565726796633714555794223252490028723508507023970284202563818018392613460461976543013878837642802531890843169368635034781318557756801899659089975423867667912632522692943343063933534532975970697161393254177370628784358432467822671743543601066324251286453043238483945503735301322862197020605414617518552702375204593948732984874325745740612620825060840812141789900718763367336169591161187676105261052848064479522469428625639180417674465632179549015772299976070819907569919752887710299668927439893460749307385938918228169235435645113815861631972386923278469592596072111920787181600576416185773092912192916703685911938301135585600914798989021988577087070967039485009844643013172537791184237740767716182587171273710813544714724947467946999495500284568148414597576170135508875298927397968175109591505599307995170187171038105178378590531551805322120151595419883067375015023472724145945536991939554597616986786702481126832739541377515517547450326183255807614161916843676757674684584970595198106402102020880935446160458239868834487316400798743565679098787518626305645426568414717072499935201261514634742150520601330003383105773751800372140337313938972300195561935934300549511562223306401056476227725262752915368460996499330603235795367720160843912472014823521988888108570425202211802871798677137916578638210169728852718686533928334947762516757229722395713280811778304097530561101264123852467916594767621169652971765742752185397963428572061586763141797257982165781912574139136906016430479848819882743502510496448746823642404278853721243748345377923794301543021089208233870197818882110285511737168871099915764951034703903194833753883020072394392933500661682821950029551715693640365523018233915982336537229494804505403461169688923957488163837246372695304870401817149625370546382210652044608638129031606344043787582160302701231718374346902890435979459925678017439031587084324361991249710091906877195863718490667921035072804231765354626378217888497507427316811686566582004998955181742012039918580981868158589509386669623077064670055275607620568579098748683873229438707784102293688515880821611546837612295084348237870451090003057669646396052105440803194865545906119652045863145702706928683715269130361764751077150690560124015760391379557930218984957007640737533603012563703192432102338499709969726804896016974801239312680947270371187903399015895818346733058892692486275303621507466496291461790288391752652004015731965798020908715246133115889565490616385867374411172599438153530026774008946753919779503933976317219710874390335727071889617997861667186776760597744153468000744134398790839890220216810725851330604458615405501880634880529536458338459469740485237464234853505337239431029110169304217643479519627413023346586865153179824371684257445955632889832917596933066266496136578713029547921250191848562173873002598995461215760095084439544133143722293814839346987061518718709139232147482957596343881866365973527477094506900562832779221445411502292780552514402235732857018667560860624062141593863030440132295801491117843112740627952400135606699773822295588501110809599126141547669234246646462511648232137660351244162169590953534595962093078488805000204173139063904555260110348255634828423824277399877178087253966081550834756896793233409803119427350226850795224298879835899721862496000160665011354757544295308250300157178988189838862594684872536345182903120245278439387021698584707820991579020826417252563048052110118316796523916587347570022236949313473710632638824112191773866399414216778577305496239389181736969705860846302524884286723109101483067443934051118281263729041985591814358985925740966305215685486228066824496340339270493668444030460445969280415429541610108993317022839280448436008130372751104895696497025304044498169016182429275638202670592220261677310747216784536449075654346828830678111068015791817162784538363139548225139532004312116443495037726499542091013580200575221117010216361831791173999171351022056868357169554904498526320823797711689244199348880244584226745232476778813649186665464604517262400850066970549644022981546681840282791912947860832021589488897878907789996758180750507543895736907931982786120058402263880655279709631888487848662170401808975801543378009656598051159601611579194857384421911313182027268305908927531281022658631720502397389303160856980240459013575973994677586696099234192927706931478335066814556787670132401206711974281123932749069929966028512913455120600514560916076223240064117190094033899501223514102032664487323542568338288350448611284576311836236095746036617471299291405195214583740141778632226727692522967504328847806351991884333919777161199251363916499051643827252751498142781190095904913243547311049888951955344111651492827335076360000580047686377030473415343592487663884269256884534172961681234235739014347493696687428366293124612442710182850985684009422653830501138710096103640382005711341072889904949388661884808867025175728846167956717288468161433175171580722319155262902847389056580202972146170340262552862807043842481772637593904760308538384703774890631804734680030543975157411633146938097886026704122421524827402872097519989595378707908848757211339180152439711784181404079534811513549794839994257206358994119828143672020292384147271217624115753425726941549495367414293905977117883968941618096934179816153009181929294106953785477104639882337879369510021568608894314155943988631914463321802906463900315986114510647323178188537330125690249195811215243350265891910574179343057754480663201431139672697991860182160052858269744638578099225809107379196936236766716984644659789572646873842513989761202751662969320855116740536233979859857444992865621584611011272164767033708181775035162563132523192467779352646298932861903341802201905282688921559002647319161120546992645252357881619928324225446166803763854412312874455997314843037086233539878390183300869427251150252137506657108362971719922490561459777504044762238227220516336625604870327252882158447865204719249957427053114096779272233868098418203907039042850087493566137763369794514331902919414369157302642899087761612439461967764486923511986594684768256783734564879113817388575475302650508316406322722207053460760143680361999769580701481066404620255686952387373671012003115552063231928155292275310815929100084777865585726036972828228124166969555258997271657831899477126711319519330163125428608561417331117362247891812751221086870866415329970961976149671611922022616290579515256821437006355484577248744775067016082502329521452861664988019298081696262698968914133004683830014947279673183590544014020218247496698753897253666273835676419913494413260045492455429925337558773771072589689897911076504706461618330142594109663551900561331089986555225082851887373287504398255103067787670893836599461563880962168796147941900751737880501281032561415281126277308138434711186679212600472709517064808708566716207332113559310735060801056381791646086559187161917691384516907229013580052436682956803890694874538967086103988838183722936176317349889848584650931456650267923020373281744498591290242851160191452623437274466905089988938525881749402794209094389495152597461516195867471924730179763231801035243127697257596354320674742596734420925763592559560621587024520813578905124236138376455911173947980593375738808718325924148687355472691015651325573724155722625577418191248126249955188889352237084637049717258351176766363592884306526653612071415975321306129628765859156197737242240532956238705129069424760413270610865897388246582433500496854934143714379307178809640954761993183477538153125389407296450235516273221656813405198895313140516112875254744293204811203233076115327203131481237910210307234680081368686629193949655711487592071564094123437621755952704828738171125222349310539285278128414404540334421276806133842168869622362196026025148789878135465929046526749219911332340663814257422606017994228577027910452786030266907403073806432594272962667795635669198402146462815411748491950699824405661006907358789222533918732609084494105805367351279056555850358313349481899526726087079439652441743475416797501359138516939729691525723822945630830332837932777119549093726216920041828499746035673214365135891168226519945188354439967455641944217109788015664144452738493916079341957477381451789966303471363991030789444501887498120627688178490367188013946028944771727760404225162812394005515124462979853000833958721869746165557478676348974391975747883109623273403964252305931426462279882655236851093244138863684961336082689237590251534777595049600559442174857137445179062239146717755664546772422358372330038110148937182415824838427833003770439748285675571546870555969410421420548333141975878737012608447350911887045773476952143668521583266383002565011367464643024502918412715334909208331741875500017254136651608358292895127310584470858240822230406321196536065508228875186570229014382503884151503756653136295898263745260776233391434052327373345094811672402558861229102451232529239074242085796131534998437991392350186309747446560967889138083968298784685451099764175625493275754590603618857762181814993980780532547212928431923640960668714926865006612529933837131067184463051505974940974232348082964829177815295087206655394725218950890144555175687105445021941134174604389169580380351523402647489066651522042264476698402365433512876000336009116218018725944067503451996133544735130313591373531152968716115777393312340354078033754087805519931944631758578390544670899070273854150192390703782307336045536123870747119188355662698769947648396895138446811555917533403606116475592174823548193028828484573716722826941993814293701822111397684971777387738130493295836419865663699098985467657906848703877638257981476907499841764577177039341207377345151668504142674600955900873760561728198976682679339454015395524592182484939374107408784055475630679992766751883537181543857592406313368919230105225868629236785782068545242291756351301456056067940710911398891973112152314129977884360357998621945120911438649091584311791963777112351156502171436715709500854014767102704428363943142946742788670595329409731798378837946223066626126681394033587933729069752853806488735507372707604748029353554970895319087268765778177672068163708723013980175979864590682439866726739043092348579334322135642144762426166302236498974179006124189584777276194661317799826936405911340786395905858209549397920597504613208138346820109636347880794949507401804260330935314857494608566835408799263190652558374781303776632321420461110812125023844003324522422378907028654214869552047752772453084045073627435111391528594006245041218182984679291025293741286350949537985408716513060937597829308911306897639022299450055273465388761101708626163155131376949561146164566407682734553315663972505065153103899285434888061319226357115612959797307656451432452610648491889717953528783891954040622231128108276140659836839728435534124270014080229089788149668936173164661843117681583102217446136773576549462967157278191023982622543565218675829728110258793201926700447753857880137831960866518104111095862957764469613873263689630547448889117152740638309041675957136383933671307703124825555601815943145052324558189703549836442557926764251109374494878265164595716803930045360236123490424071663349513629209057303085017396503597398310068507932745367749064936932872799656228754695461919896508175275383829352692833137424329732226041850478901668419772468063422305782684437792542240570762594433978497127284958877379096458028202165013408408935929249861777567360427504718471169018988771309000788092542545306884480855954321544198582069133076703340443029530961740860961759684530382303678726039000765055570580336867086793213205908002768203420286810529627088921333650944597330731008516014355188985966836519055663220278527365832865120239355061118767883569118944349765338579035270995058589934132729589946349666536913206364956599658761246349715400864754739657491469659125442734780598826998280251330301924583239457438374581175413727122418025045486719925797967155213373360213343236474358386179107584875007731411782962355515318538805784075862657022912962664322861799690198937538589356378586655922039089275364831455975407536975835471521824592373054879921245835097333381439364604845381652205649039601827649251378013743450599771271271313140791093022605450476791916325173371182254780930197188781136649484930820827228422466255353103956806583022549229059238877817193403473957170130940711835459318113803952954619228029730480642531477226219645752754243503563310137276598832275139156861062340579420086838027646538684941859051701601494540767413586534214367940784486930744700538542951373535148646255533585899060464503454666570331578556782449993878409563681021443010051664146453371267388257020507008743492522045803522521156015327873684532081152480822352089687240316496781283391686376010947254416086203467472446591282485833300166102815170518021258519817838429380318885755807731478670833728065986657959565948453351781124749833721506860154487503720470124432925918475322691371019061008114757797548395070766093739550840314906316771625185190796846162113724967071654809924753240386361324914320694297424458406796294546185983785337860316709247797169791456409415634891100295571985240565448455609172865039986317585503208955503699513892451426111640995226246483604781268435493913659718095703500754677750612009058543088308748815692233685939321495481281482531080679710863393850189356439532070671879474495998035088004590482378347886567498693554096520589659579561862723205837007269895573275931588100317602735670257483479015536669222832886889208547001244155861988385191357414659267601928259991613686831716953310433723223422443603071383672398809964751586264317750943707949735254945601275740077169344931983914992898917852599770117292936862880146117836475199449514550239549586326337259797068395685369906045116808407847321689570487035115927890722487521645119544106974402839922906946423681214982469492186858969598885337481111227412970448276369780993592395364753400392320749527483041060986931561731118938302528103443849223319572529074835820300498565272962104684333940490384046845977065174660187606126050396831972126850431916495377701714179543338027677900331241176305613144845477948202641945814146124377014774504815740299233495954277308908595803016951395522940369913026174318396089819484429962817234318995177796699506074461112150917167262967319849547188705462931273895348305029143755350565366964531808677106328184471760188493472625985541887245394451834995497111764652745384663653548351601709024675532580247152197213429048349564564728394564694542451888723278556410544411006043401254209243963791660776114317484185235627125337109570359854552194166720345877876255994968417275324918229774485123317687620545813957577025453885114193763149441731862149437591198111075656851726196296513881373360585708305205481613586239817592723005470659539159156801701899202768655871786083708429360715973608437185379260844761616611917008245362577931587215936638701718189768549763381921526155056058056458756700963787405805940049911077630432413674371857358867516769138973103813242904927349893613231734133507165476445313527782809043777364551071042819639082771087962092555549410147352753179196433986645634220160709750105295175636573116035376271396390657616025634003609447513148834861000116840869434663206801083374238809607074367202855596565832979908812075999849824461271319570837524847396658508852655980865711980177894893497004335534009883473264467802660272352605326409605289564236841122140611139095742859938928957614160564343198231985287167956792289544648453919615163703318433438104012172981612658521872290067886581495844520013536520836728840667191335914004597591984641388420328293743086811203457501331399147599838925132454539826441276789457136700805314166721338287540125315122654990645755214514399015388554161333163822740116653432732181597219054362874356155437137716977389632143140476251922439946870776315388113314304377624656591012965289425760011342305251702699351276632903884860980931312513304343417746640660129690432367494956390397843053160802885867220890724833114118421784129120669255461823230569693665257277018012084327296604464039036989260649691527855969792549953100976564625820400562000766788255835411193228016583008691096259770292210055931205346075627130458553470172315449091129499663712476679938191721607480467903728970592435313103530427257428730201107617537008607185314571836423430804267053582823563748168553021492628516695000120676840242691000401705048794542033416100221136190647318364439567411680504668000151802039614466222579539678225694462154783000031845543067798589858600726451516216387639939220843602430044137925920436075867602542619761775638627060614303199378785084824028853842889134910849219800754089591392436564117571955945408865302504371176114870309647252355741805317691101690950199613425080532632625825835338580266162565404205211563805177038849059908410118366813158622352865058704418193459313584132752078145373845695476830558098839688662602031181303358167869660261919636045036255746584214461331663698057566489346848538448857244370258720081333183389316135421169164712070560830703887983406102982198057236352950164356337036680468655204780114356516275759015389245182075818930109740907573560686421743865715065140179250808472299297966835403620166694243176968241191580610041910888615961176747112035385436123815239769709044498047516453726381205768384507090611031602562511232717967245629991386494222006602815316601255986749030689115344767087432068841328188210332036870101239132619886006329948230695362947768508708852391140688877308298202259981221310623321096404481031960483494807259375693296082281767877484081611305077033737517610730484742597093677302942289240640409249988195708562137646726718442418463713512702302945183993119335110483081293313175270567831203727016339173450914064602005142545227932966152139668484633931883664723208967894849116475750733788323761696690267547739770435024876219958204880185977213509467323273683109129899949634861639088697319572204513858747037858507333967366651903715195330092608219317257023020606635019124314832746052414232475709625211147514310604722563708489679791082044622123467485550547302941017567556681742449377922571405174588724470984322901267246994269208859444481284768555402840860099856306050438766368838029160372286983761780669725103832460865224166064186441372936290800834580735436476895739143436219681571622645307918154081623027365633150295833586031604674394855725012304809154282894946699107211917652328565133723791099940054819450364698894829282338968658076066467301168807602304638290482794757331782146948103056557399027855125957202695456704190836268723578053722571213399233957692504351403912837101380008607350486454115090463577599626736874442666980712736830533965402778328079232569444101968065650712762744901701377948016450156273018009877484327010235056307389272588909617219541529591241208211661461002163612281116452791116643100574864809262984337884077171982263694103629028383580959697345491754936167790405680829309757188611747457276630358419835614609562572297189110413741385899771016270918406160210495663908352561028563474616594554603897077725977560301893803315828370921107137486123434351947863059693325012992812543173830071832127780779443948090677691026829302676684915982779559800244988563041747345777462779787743336297152880236697096209762595601364518998257584446822309577453723026107749137053681351441297393010319481488941316459215769963805909951038410046924494876861265127686894660213680752000127112686663304947015210002435636889405398785788908847540722205217795448605892064335185290085430798214737978482671073305780779029909974901830737267189729140227182681580960165940714108109673136247318349668228394548755763885859128910573562977096979764918599420500280087670354392387270139094787281338252013089241850807316220962483065765914485750794180635803630040183830944361268906759435693089571109478754448274303156304429020284358593763658917654149675901799975272704371374838071665116616480735258925588786295713392426365756492939284303591287850272521739598827482513960853998145572524413293776338868865005411302522449423185679745915563092472140101408536323333031236230167552873997036840293665579383076995678360912464535375337866822281396523378991599680040479162593700026893240188824982010740411434749492468252016917961998575531167095005377591979602217551042468887264369426165269257301036733544581629294934350497840223737745944818208140113890048905417300210823328300900430760190791135666045053093689551710262925686672535454363272859545669103703191359965538305423226714833497666127523963333830429265308187893375346719823093526841018740880591137575087894815793291708443753259351517158531903730764400650831280299113368568018577002889852685312448332993507277980613902711929910525542865772754198603208311882094655658340539045093365731923792062025377792429555326463677940140373189745860620091013643743057733213046976583021009849332621702144682543153388742042251460291005868460884767274429221394751581120373027065773608034752072319822462744203052909151038934215049121901458569014645262016921799547211839540023827923820086030205418715160714117630014151329954726211319060051726304768833515700399796171094528060704457479681994541668588847505986662367710040096860206785563740742914913381690397051881836070456048612065562490921882742060064210009205001185774431801757439724119517611015166158576498520551940053769716404790633235657731751297968737779863385925745357752799136388254962380923173766124845046692096217248301449846430048203363599040096651176454051066434615147180522608796128291997680769058804887972687486820650948939744048453603855748956375791200220355842305523559012334578894999546886528946300794378057306351607981457492006001104425052467992965159501062757911514228931692573956810955974901692958449310739080800024697840746771529357834239122602594755637130275123540544923981168565927161276907708820379073378933170650581136325318379298716351337391572337401856730527745710310151556851143025667083386303745341314362931040583205359453509318929174020511354158836405455861990556958937579374590014914804084880311674690474079182956584606779125320798624992061375475709472970002111358843096476541541243346377142725511441022444078062224198179693076110705463048366296233921856279676142794868489144185505151796530266637228036764226608485465539346506651193479146921781449581545369497443428577778360051225829315522597119018908715636368070331167801954246601564560976260337544971173804065372372677885246100262352602362059733337913923317836505897657590806952152933582064461414076337967841935677548639584961154814034194568146252214082421744791444187913559724097690926191945069445710193983816812091725700365247618640315211632099232560276198351901203253353849492305536613105263950777107984670401792986482204192939135352869968337603398214630071742965268405973403381056644161208960940032920603471983726206572152185252758327522592737297775272746523236107144644653043566497784838041119734782932309368094199210982646616047986665304947014009469109692871696952550869041630600363062713276383732480926931778366032668114148911125431462426963127151717852682256391812745321736450074149097350155502499187549144628369718532015577960968135976660832431412593638713741937434824854820048227131888429992017144387977982617827673928788392833016261267478823296987854845896716852411021790839043123739762160888675668932589143550953085209668688109812302984642983348955600457863770759379656161380757350183884014807809833114149122471445019370208954764417841763504757598023911085120776307739699274378616155562541054942242166619803737178897179230850048573840718272451062346888848176174519725630664509187758796975019617514513814652941267591190702051597076249326911334279095839106702180071830241953881916793997999280436977528045163030273873053204880284256363514967475543265873988589771902335471269696122744566691338951885712862888686187832053697561602280647577157664385205971802039980799041076830782076530465440445446286288989649346905526683296802487902742523297982570155584625907376719247891409202947779337370667759807621698683886608979058737798318000672324406796202346233287336375792901113107123851872011741727847741868802308681010120630432561294749496726749201251036570940901562599743127333756593389504175026356995906032273669708364134531537023213890676571959369022712127171668965251723853534085168733282792642252272189434251070423233500024574322917602440668145250373989877600092479462365091700185147793100810485227077316630432494239485984194672907947221912721350767679708786205106352782870396975335354684710646026422842810729357293100010396501757227904888112510055503169805180362041113770461980730528126263608946137273824474895737036284544004387514285726466158594888738381122499711358470401927904403157963663094507325881581151333246676619597911332325328422412355165873311139099595230468279019378490396057688689489031721587981041911016814965176446027132510705867120028098444615443387370079848970080803983830245820678331459383602926212898415688006645867297339783327317003521899308825050785686172421797170785568968350665485105402608273884129562082919924235130114682308673460775854781996000261186344786381655698862740158111577126197572674980130915953412216395548242048688143927154482561518210634182113150835677175585163005812628935427485941888511324105366049102057607768214140801976271057555634756986315760208013511791984765882873200092643761663376910670492131273771869790487552396579543293515794828866957204336903436863834670678545225180356867220694612434799232419448843908677437025001755472602177617097339200908065975252581828414802532817848451121600227542329226606475599642323383388359062728522358278421644961311063236909243155149154220702963716907650488587714997363893047194345759182052067558950609868819597332391679854989267030457297147542448096481558499718612677344517360251443173717433724586031557226735526409302898556325744327064762043561212325501216158364586260087631799710836592969965223688924110025433481192142642468174352471534975954817972735637252113014481923606966225739274135590746278521237305465605429563193157611082886035090329555561050798652869429612544753244748594247750667407811301093859713581365351540134808115084088423548051316730625283604918210143302201439218858234509636538221008490180920430711290874752471521130936000177549377278738851999931550266332287666983187149964348922710812140498224871783575608383731683249950586959928270162819872042595061850666047813585079073275258395727963599406333854983189936043584093443802712400598985790643664092010306803388474679011950065092399123128828498458785604695941436539745630159607228838463520255377752972732702281026473154546790920394388718991797651438511728773754022081440497778548697096681344680747994171057908955315968414552930358193751974789089136103321898483651122817438616255707569042876676795629109206804102514161821557994939544523771470840047041198999855057592166956236690265103856411783731477632814142753872368523226949928867194869578135263175070442990077729728614445580202385672917642921788261880524484762987916785507944210372941633981483396936866638435145587091065199213049418060322321409320089494102703245459747964930489239628304638852345127021945935563001138310031442005331295734910042169955131607219082141692706347333300844079642311710684735158643257673821091231637428694951694633436532121070670490426555823734811009323898439914311370021676182547195824529025682405641440933442257546173018980363842838013249663845300398665890734492924833453845789665334411859782833598669366367688293339423560832985465856505691352066176899200119395809509204246653321475240700746933412110316325543916358286422261181056798059490010484215644483615963945703226274685256730984832195003552739279082862369486866144181192394845615487434227040945281870233951467898481388401782234783029655788985417308059109033840974960294688167643968153053068782746176808890580549749847992812836650036792757877355933983307485583711901107443703671655549181065994878847024881301978739215389865156702578933942293991173434714283110695550967298439008754549802427271424263101931094685599415502901201193440074992871952092462165743871778020429269553229531601039543676546964365443426469809084957334793264410814437055670205092398835367341685050663372480208247147299974803868444369590477012595196127953208683510873097922655845417834477055917316091117359564290753888622610665737667546921796146594111109683342065545574010101343193628822862519382317877582124935115321485879028363458147791447749133382650645745733783729994189161549707676688951454918869717113900418346177768159825722236478747648891743611101999058193216645738843578950505979866515569507332484505150703065604902251325743641378305713304287946605753176371622643818402158261985953395316101296979612766275943067118124805733049769931642296438440324066786120121747449484729588693028963673833654122047501266444502658347769817383413255785229650762611481099611364960488479723222301612958623130384150701403635760632276281852824644159935522273463444095372768792629365682225499371547750575308318057063884060040978432467476453267266369977957971482244315049706444590336440457810326853571648556135227128373503176427691815699239173121229448388042721575532026241400805111175718017747424577271964708619537390380561201059027589208369538957332808608977357064124625703947811184827308045940597130894722692261625962256157962235059973695507258161461630852339204565534445090115105591120496897929543975991374303268371386241486206818542623502048295900737429175657980483202505445592629667575728963638425840607232854922153261535610936979501875813053644228068425276980231563434029203999129194711330812126263573388760196592799981715865545171859679863913657490436322340763933553265854196818637162174920047685092628037159387871725687140473781678053805331163016435854211426855203657532393058837178691042927668861525652187387190085680877542077384731329108867406469940182854778788584256015951525351101634398446505952768542345799092395081948607693292029656610033807352138668199683625939425477878171952317195106961236897551477030522468138937290103821960546174656666855753398989530330527685814354773218778810226661786074102107935363819959251827581219765929526657236148350170892373245035518295535489835540722865171727928681170779177715299000495905570633117051196898993019678936420213456954782801778740931711144675610777302598348749554393630960092057046472049101471862807090626604594805449576422551736106587464382646789266886838003468970225537584177178840324683491322657396154730554934316484743064191357810413311711995706874047888550375664089287831781608473148673517646031424897701633054828793691796467225083493929164527970516763060865195197716222517912530928420672629159866177137004841161422591245616621064616141807836088550275447602192783584074460824360981231706323421931095305042675315473278577772578019784442315704280273417840375506350665819442046715861408330225371419130461914929106197015537251337858052710970422916869778614406062290151568397005606176884010037419280352367118411487287971562428833498484173706035566554826728875279854826874423058229076136302896631622618000600902941567125065172375782647401340434815205086993069107120704311334348258568769807583276240566510495664830052891199339003418272066400733624288850093191650718731545338716633990431957593950553828912365916393653496778900993260969708619953750853072747316945492117676385668255104173132762660265329983964236398755379621723929206195813557112119595440104016015947428770521126751650756182952527058785542600536096311313484355018124004340948736123422496758944097712603078088436645252399375863706783191207180544094055667007987602545255685425201040647460882825451371831268819872596265705348417543291197016124010165151184322060190151550882887427363247219541010091140465980016496536287580251912043311913625840787920027515935569165737777523049296492495881308853280001267500645747301401217920269531891810755529743052997190463286067836729413937438163531706581796862721345594254919854516834107998289369440882357431799062833869529672522227894880832340098503985415916136169468097829078624028045264155475169572681950476403736541072289760108379502373536398739766776654440358595926867502436368342469601070302258346891613736104365082384864689353563758876146187940485801358646920041665687130653187954598372435470137473076005978389725626172827461955980483650535645557039694612612840557997822742366290228346730290771058534680477117349813650427790746582892576092434285859962590722088228376983686112067315367975881932968882134977198637707426960024442347387398222494760978928463164182816133240763576059151483708906414340190556814611297878869877407303591092433671277644652281702766408112570977767078062508540146908870961520000895181451583267293088184206415192437458343777278373480601335180577405577622981612884773145666117800966822824751477548379480224391111982628351276339766967094357235815821966940785298221648697424582394456175140476433753771228318710363928633719326334549850114969631168910109687505876660079604156702757129000504825352249470159296642734257484017780527567655120077211662984449843376202177399040729504742296620271885237989176758514505901940760932076520800840498156586912764471210023558346255578212162666896585267849982367963262272924654779256951609640860486566722237203160480435130717018619281706365807167774618621810156059746805469272923424644299915294747209100515272131676660278200508713024255870150089477673503923745567074319426796239854358023474409119034002096269069989835567353760262820820202221880707029118583857380100352940326119732590991251568344814139093049289307432398966571722653991095125147977467952269372337402944982781674582672621980138961594047457888608671540635593668862771051895348957263386325590298113837051203705702630715764914595410597644257977157401035748172158125177389420240159387678397504706542157197326876364780925989837005105908202560136028094573815802266838487715560943404926657682112214232948857577298828658014780230271675308037458116200434531950691168726671399563442570022916500201542630442383956764284815175181310650557853087893255803890362651085805606455299035454091327554492046490083878042361024756640380556252384121078589704051214444539765154305532565073223295323139423656208020102143740958607457387868042246655095250276507793696751227595029222611981955458281741719658813348748984533577543368694909298259512642545924161144359320430863066745730883520875060217137257087200508165118346021300362490970612114181965431931312403062182655824652075073520320438786528012149058191142010440559193069918187288240322263193767561747856757021958536813939650698656865104670201046613353888456046981630281514728211197845179108860879517699509744444970508943085291734836932892342525239120174009939677721366337696947725415274921556230053677520631277609448757175421725531908056722164034071072906387959583178609609554615849813459352325120020392024676632697435943377681607259888142349444162893267682564678736273466488724439264952147381797570237856457334619079439518493712696097202418837214160012709153630321963968976204366185536173863632351227115129293575778312177203700302548090227116350494247258867095167220740674874467958217280542489991915346935672998739695589524218638254496079676072664806059867725120000697627894274105495608708993490824430239476396037681199318483942322178229167686163585999269930557882244158300314737446501517844851982059633528883134185064509721822310931806937422236305536283575815378392321493415049762181898615087336860322916046460240874330540461074753336637513899491147940534609625221186212543042572083984275157058392056880638862722799260421746354374600043429041540499179683222843256811603672796484132116939004268644295130258895320279713207967478174699932099345408593617575833416952448897716663982668992167617268784810975245060187641194825943474729621680260058367979704751936000935521640499406190245560459089066239655600923317333582136862015552401639310462892132676951104762890974972199991783548509247823943276647586545371460289088256710418163906041464179186859435536575657328971920608816121741379716254290275935746742349270979271234516633910629971350576614387589559846238372768264723851672329207816392825095620488902305317613213474405453205016190864208634886701854054351766230802343223568163921057377167123485207539952343714272648148205973372928899767987278777382891610003581508678755237103323914159477446043660122983577504542717911429842134120632276495641818079229832742947080500601431376065844695715704037247185462647791467427932660966738476513969354389369593772703462430287606682391635633249930679550188913763668594492335157372459257823803731922360924762052366421877535839016362710468340159403348475985574742974722372299447452008850510154885171978515832676239251859108925867874056518432823774571910379370155842474162184076592023303603984878942109256756306081355461151345453010200942567799054656573268699005722842522334240385369385635053451508212602463518036607430331279216684411547278630969878016143707206696743552917596783458269046168851977916241806523360916391460116252418810584600226176489678743386469163149619411493723390547657487244329089173844691038782113096988428654100620637674818324235964325607570234953747537271519314404803484072001891812652387073290909012598066794078116939661553175855739254348846112069560296495042924915072619067657669031747498555127906009904416449907220523347545599455090478560768930414032634665268775471230427869388757514482396097250655163993237594784294699213894373207774347198888826099880658774908544431449721495954361110104501656028680964132030543313860102577695877777173629985484805073462439821516536288318130834251227781831240815378082088721895056302867372713369049401516468856204269548818791101378266711189649052594727551531693668393619172212600617664658495617634083581906027530412602280370322010319257661625051220852453917397295307546493663150965439925138975025105895423993162428141720059427298241817992056262067236389169771911824089826167116580647778467377915579166775081361664389656710573290962238545100747062919838830009606894474848762157055545773138588029675647153676482461853180432965232373021808951899734386428299463928071622642122716076304964013977672969991593461359460929291862284661150823876941848729680753441872218688030233410930341693184282608606116749637976705641829325476438998203580507940144943369846618350699545913862788371912908674294738993261228485800931362821613224359743944591792548684553694963033632401130907199587928070949543780218272975496223697333904370566235178586105048804095122106387328415854499450409822435619238112277032746106627102839081251397845482486224686584517811857527411405867682259875308529745865678815305786255898725509909929490947778006096693754056770324486153027539013930630685431157094922580756477427720725144618038453998848887955513201532786323650791749282053473584706076922208361575025272749544508506349267602114663768913849488815515731046527101147089858626845302501033025017409785782934508839092088456099729212728595135988872517017775016817689329983277846431111878876165388410386737320120149241931995483480753148352409816928127359308006051949913291633637705080849132753757939879269421091056131864650892693614620891050141227597338523713050597360039911887978077696874467951830079488313962812813478846230965236543535269000301202888686286337818120492475906928093263588599429074956159855199741954066490378055827720501683448752822643548325703632801985121450624724304192986951034351765735995059070412071362420114559947816728834463210360592552199473269619787925352849964506222861937036212449748442090151941302227876649329264803374423262494138399810528020697947625199237887915456092347874965483602276455263541289998213072210342018744816142864234940248473986801313278844246364013038359043560392851513274618896946656130470149039261856437545955738119617870273984866621128478724065827002221760503509922560808518228171486301848927551522701211236298068282028590855324810322877760626786408464163004011966154281101097501721228647289076518355011503633617827515369272751967844048534342954813796285499438160666962597012122286503058744707343458900405885414982152961346885932343393005951466221594537787253617900763695971646801851148005870473080107360005385010366454552442738728306322111879742285859807955623795838116395301080097891179240178605008546063455885192206727794561290172691181785382311872892301475951079973720370026471445809596864057976133543344301537687099772521726759997135431523311781883303136964577162069485151005832271242879065273834733276452460369671376191251587747436530971991699572729062899476862605214047931630584660291891044419288987767312149239317941919168912074342589406243226940855209639636037386492834055548874244169760906758456103142947414689673785043762559078473528504471683074718480564934481966896426632548459492382655051554726130719429831775484643350344805036116024196623405807292715573367498878108810837533816581142972936562718940012330347190721565361119791496472469696458281278793056418335930502475034677156867628688964059355193229989756347131975849519882425626258839807263624152842439013746317570171866415007950186080760618026755630852188545350791630644200998661389370205912056658969363667141262793150217710982140386992722293818288523291474140245445259185102709531627270877052024529281850839752648662918706547348703531086606381574080418831453388149065431432474506177536283222780781887144555977598126169219261079212447933936924892678602332849306700195650006778973710588243818595434340859800845296640630442565011155431215949241850163257911058953267608882230228577986655340468519058755541446401399211469700240095282623103951476268124602405702186725033781719354471085731289134234622296651494254472559854009547373817344188689882272523573122157813159899478929710530714533790435864908449485972194149254328111862037315036107657087312366739920805096161206868669571442797213262232895578639904373894465486600032500870840666059085934994150340197826396225385328575864059294984644642355255841361818418649823516281724039579159277289154656380666866729832501887644944057162283464276289975870014353066137114076026866046845581085824952320853930914213737524506057537512496800303648549883336838966948773256751723634270175254511849841675724177638796703736470890445573882395254262838083712652724749577258942593466912591016915928444640752826141705999904071781011636355757863652538566042196374885770570845842417297823293263915445556772008079506373221982687614936508899371319001256890028558802724130464057579368727194156523453511336498574924993760509307471613761882307859605106513737297303534933970321431704481088847751084562451257098795180022978436473660511013777632265445116058224842202419177089781735873474194734967013986663863692419401165580691458404588677829910541294167674605279515209962998669907334570223457722716079114099096514372754646964398251673974035846779789635670196541884291283849460785508808117538802021842344691061522740392027037103260693582069520367388562809810660263983858138886489751043146394283640858309837387936033668792730722188412257559533397124835645585719508474776045818512242562375688747457088471120996938505414101955384571473974173137942544188162228405909332488130896107268052796175834542963630404674891663651370660875611362708773986253746763277410584847318355077261552816781789863254830403419101854909496028123028930338991025326564804791328880237842674633131536249044689871864957706318290322269657627925666774418603934143767014679368863527777359143236315487189993829075623028338222158942179555768899513386082838922483416857447869970073799035087043109003875239123619737389789963207001573289191890475034046489254694606140077469561122749619954293022163681769251630236371824722278678108855110863205195306986489893661537872532315967250973964039639808428780137617992267968550765347311020643078342896489756015118534405904833714613756264831585919853093720475405689719038662275736011450068733973302683539495929230845508792421498452242436003891748625036933153064130721717779592963459110312611807431624893584033197877408511885188669154350321640874872224970449023043287219905259487684568429082229773953019347395266249794083691143636961879987024496779944327845978339315080286647267987373359188291927052147626070309917687235581794914799744341156021509930575312920289017911641541237481134516595287512012354860888892041935797150249065281700207739662625580494388671237031527144665213918764421945143122484209907627459441243783471614089462122702721215418822327923078100684141836584430389948870251201827389195584953351807311429704151677369694902914558467783950399752418432331470660679572310567796697025897554722963739660360448012044602943831688286571929019720815978822126169289142663538328524948683913984617896030629105749236886690250431566492152109244173499241194597439571865874687478599208148074938929073781096895061837663671090839581918610583363890052088123236150929219844645323307903979140386477479006525470487823429977854661027645696307771458006500748364681859164086903935478527864045945853537419242556132926852727237340141254165220761402742898412158842099713106675942669169095211177190706389210319502115505027600280850894008284099736856413554902868884687443341609207690095454992074588104904069308719938794417504792196596393767446633212480689379187291696632159485089549561730155442626275889460552294001073884395954895641162246879009002660276118081960858469581666428087557248484919955498387415917517345806928524489912675948147712905042063716352483131499390376955390621027652641058524870859390026899549044391159026533864111972892072832938137998041241034789592093524878855636421071991510743819240175272302175851723636395093074177682797548376291254748937776058239164580011691585399426624707903779063210059452607014278237500269079186130457040033816430624419706021687746587860589842430853727504131482946233587600970693675467057944947257165420576098310171907865664420318884385303637856943997143077670667239692638426050838793379132528477736642057548112694777368608236394496187138967999314884477632495132563450630424750800351445593326346120055271041129400955896196420957917648083031951639852955665672242111695309264363323148390934285008890531548679874642894357539213355701424666467693287086371410880204323322650265040674626906994099169600075155614280813519063997912860673514428271619218464470810219406567795846191815907919395788493432275254596826129811990186342970370559328252391281556397180518715552761964684405066963402574957174186636523014565836857955840906689088619269027896251414468753230143820089616176529075869123852890465699599718931104272556880991209140538640244856446888806513320542070670600363419370458032761337436896177879361455060518069911801116072625434321878741108258194028249417978927992444470520047873052530274546497703586057717511134138335924483011264049069711327881046638373840760501904838417088486921875176641766572366509048506683444855534896450660459082639166152845648011700738122566836800252299853626281768240236907106476562091062929722279199762064390446366957358552835100101356933691147961989037889739103504301488136983475092370137403135564088225932659807131914059127370505163410530654248253435796394018880962975586455801823865764257527637552619146952401636004731962040148337562665559296502887504653056567512608085521871295007242964372886273795078258218495096966130974698215876588304467847174412692923307614590063086622916973958850595397342763890986368863904470005046625863149608754401970893902814301376659415608639911798839769691215595114098096604634328949039241088956209045462851206612812898480337750551011612175993252326314563138766077450830406381163470225122473848073041186326457896208647418946357356647529196560072370970058468618028955842925730462590328463731278643599611640424361397510997039335609850353853393328143387442034858986782828734839700596033093273020425195003970385113972744727610132095277950109293753802033590929169336562085494218248642877368407186444667198428019785279227679077820644773913256038073546642433435876068027838261387251647487488091739280384789916189809244880858562435052132295427539321477309208094544087984524765350572000329532978576672177203354121282282144065072524153323233739881887370036756115894136199974599647681990687760547062888742179570869015336961046516643160758548582442391890182501713367057356551677952039972016430313712409981653847259690176906063908181048891167988262167587853826164437916833275307470849013447108126254999039706356554962067111752838781566564148109305374291628492119247493321530885260546655710156057799449085234165975279055239524765450432544280053710239618662627984810985734701171516689433779347974398110604408691253416237749870031382025550092311724756738891808516760441419763126823167800255057627681021382892480827850442250947122045947091688172532387136806895484134096807634091104303986318558438736043456570755942670320407628501174255634749215931526921138335964210755294365843115796679027724377828471484053297115697773119283159821775450552429949741089875265303545463961857423005786597638645106146684014000330854831944819351062004165535461638160963124607791814845836437199919559225366669899563456541799549826529150361858205503725591025167038052404554848581298852798831850667701397644363733964737881161232602709965700159392218924624755438897437316964853963276264266265302769416348165936570041586276786238450927600372891320440029842210993182872472185773347402767787474789715334514350709438156417903876883688378688392402019152054891314616128055522121510916934855352546794796344969170580929506496331379980857677265774472054419098595976006729130227791752515829351006940522084712025862150542629982307716026121627989747883745112123836675466308652487822658075341763466545067428183253231285866382996704386874603348588235909935122451680254373720950271538650360259942374468495103311598746786802667598129222024464221066776338861690462488131720861358916654534241628155563391441702730514077111895902660263087519194304013837631936870141058646607793518952087215332988148184465513924748681736062940205543196061509295081046093728682105013173293016937655432078537428060475294124662574573590025552876191417197715822166282683263978595381308428665867806044485350552813845776742204595901845890013253715580134408192025832861187486077766684948656183428054274438813417428982868011907093589131170739589574754605930391958049220350335816561477684016881944591294406259664926395305464857044338817502303113993222198760675522876871480389366655362556475698173163920483168924997377914558119500417408323630084023413154990902887252929577352647977207660510778554040079846293481827153854769545697213228919550667897767331792263295969827014128387000422746516143372396561449227375634342982001420799353324496091540330424321983083808287983855306644732262154397167776434505998780903842742241957835643804717209466440360590978307032993286659669296325533143795613873940816429614205749455193235892591782373428287525928947400323976346992824968856458647382855656865451525172737080602010213095752250366708000771633460877230805027656158895376113098013230294564792467175424666597712380732168803418774410974772840071565479231811239491567927276844984006037776522094027408453581316182411746626242873197533747211047047536799589681212874194147552250682371611309854915750652336009861686708427990305209471731711769865594909662531859572573585130757277755216450493556697719729160104372155806571704080434995081253938661743224445335688401629379856656555795649894952908530214875202844985465170829401455920206559142047517699574843005660146949569117432935375520928020444413710329738439939311490667941171595587311223196062570235072641319937486379333700469962951613324217908174591749171042221814806476972412016579399161674972170924991857931714977449084190923655272051077691890892476875290205547903895338239068526119565453954934110004376172914657648210035902782305061986797297673150368430718106757860145718513124541187168677542426569921361620772496190276317202271208511673981715553767155244686379464913322357951686837131238629520961105135676735743376795858865023008513109313656331586225244488093515237656852323688490310761265132147034629267395574537728909071232017873700144645597523936348532402865580143532380392866721618221201425304858346671116559023274651236143348741614229614125356533285232864677650328351014567099985214719522988443812844537221592794435323767734506170915573822381816077854672581900194968060006341648811897950714154082619955357685520960407262888314467265897507236142200872424951950628746630515975709175445018966581511726973753643495988181779127293770617907171990120968134107184209075253496687271610372659905165397152191834103566458182337319827879016063988340859848763373389310298496965714062723017085076455547258978298319096064244655141440439048644833642730256734924098935133296770682782315640335510921115703131350184434264827363076352222121602893678744299054143966876848621074151652697364910504326113973982481841332329381449069490590409228285344586951567742218055313858742338669490783831048211690680111218283231687409794991583313883535269623731526374251137357946671530003370912398028173772054803471578965005660795629114463388003994523439955954684922952264881130001981902257215170830067742039458064242338319687589407162282145149719616529795703042780607334898470100584246919529700048978223984286281764453406097859893155674100593176611184050610628384968733123670894504501252967497203789386822155276454248782168741946849630681118789274892081069041129145875425494512365597814975407221480325609064840534862858599646892243978274183610601162673260478897089358093413354423205541287216522881919121610649972897086729697285863671437417828186462449417879454586978761591147296844277321984816585471950861035141728051934125335069299368782627543550797407093557123577519335182825853640523199291090012911884259083543995000513391369576736491861295057412755651090769352008425980092370752699403220296412848170284725709576629137996335414183618494089830847295456078867189442036641715786484839377401008345823217326444644941955626433243894671065193572428986786425475033885067323795134689765733370603559398518489603569385492693924940807649731265455597269562267975682450013276096360724260528170442899410470105831830107558598596763977650420177900519016989350991172726474063984110972137113766549687786383071114281392305958385195047791294264248628086592197198284635892882960537520076986410857957896364434169988797352988114012520056542725490696864996751850899383362433523600502182165378330447098051174483475763826940314190159751142005207524739942356944447906801743867130958136188784546638507959695105564390374551163264242437428522846029540241598651490878442641939870428867313877754953177267446517774907167701821523737705832788443923384638466041722880097550220833140895452639641517730351177556187679560089439787616886769848861595386908497015898465473996010745299692527538822098709818093450684742717833455859616616546273347534936263068614965697678123984463361228448391768646749275200322782201312134507740710679594126847803692707445027200841752773090919457028927003392147856790045167746192506286215544366165202736717611004001869117465648361739134983081090605142740923102135540863932005307708811168885931562332398986666303450264611024687585276556341353305308918892875388966828909641247143386805513605206065876165719752498045965192548594882210850618124486367531179858808031551347924899701958829029137995073824328493792413794248634788784498533725182801047996645266991212232115341646017103439439358118089134171623571170361682138448876026350877582797304995194500552821333704576878558638539942706971154691120709474598631456744915578868247220967723755131946103882796586153398904088829664917489849250099276472031485994570739210106113416850000929120594916165174955985357430247218694093797093472292360633137772534280690741594781405593670908477409601677574725277157405997206332469163233196686837132580884905168064860474805147498386010758129687364133961337923685827788648421934292215271844524574592952389932047668412954598450111875886052638875600445760189300206914197364502903041216010222378048748332346278889863722404735941834919720148526595961167192676618123694543276570875302607270792680055109988599310759821876939163946859068993861151919337629205112184536400195616153632938935885244372218292449713946112634788222392455365386069895959940299789654482218135417564832269771779958123290576742642960317888167478993290124675390184344766369373072699625868089536693541024406246578412139446165223205395232870855494535544112940995755796367712770973315283714676399798782250154222081257184410356192823427275442416581957090086549622408337000152970078252276981946331602425679878853296575623576101106202611983392966649683673454739717970706404292123354501636721677032465203271379323602613092640640376742847038787914002149374874196592685388757654520736359292905931683262577389659678776085854879004057243839159805108408831197029685169870250195867814981500876066613417451384909445562643884935933907689787460252947702055672794142995353978265738104813900048718255485415470639509359478452219113729602459845134370087412417764395163512943896948617295076891312472715173373361711689744271914786367566561019798816206108508903235688064748309286898114544773396295817304305166082014706417060895844219091813804349932425016497951614783883711800997294527453723980702602027776807447329051793230688807630255692541236000619109668418988559579416210874796339695896086175152136016681255138729539222404387993312109416984347834391342883479145427636166355890152559708753177658818568747553444734270448488233569378766171010255255074103134872642291199321953876376673083741387900457990856714346477945980834898517589479515973872205105801383546370622315471855834553039175558398810898989415328170590699700401718100349973486934203693138131902518676403188153386519724878832634879579556287506581855202133334307994695627007903996541942418512353371918198036827482214717311723552482445362661275552378229703897143665181834351622484298323174511341114601836420018532611608965529134327621190120390083926539916005143189720701825079766513846573935499835492708608160862964710474416949729236231503170234403877218124857253779275675404075709963778470698926390036037446612761002073879450639053882278194174900400516079732823617381387652337585089517114121728536440260676172719720333581404820802645907961721961717590081954856686528735902371366703396703031911388400483352077414717175694891966638337532201761624844969898568418785842206870674228501415872758800203140742637379920493713766747385755300999615772837400711340511196755329539256942858434788754281905932442059755857267014729816577213516118912889359325214559685583576468436019591715188610447879501098451803690492548535481677829989265801409929491249957547391406573489615284275268644470190122192646006916966812290206189864506918101740617576951491999236031049107917879665992873692007231045982927367143360821570174511182112431935372024012716095145240333221288119757050137106298529524067297368355291296473934241362105888033419479045768082700852552665598055757168497262065552050827941090903211770217916006417064243278691784086050414392031095696976334533004386950756107566926724763881532720795802182832028007666365690402790961320745258342617513464306279067516417909396244723167600723686569703873458434582504215655322215620961445094296562333283122234769254936058459299563144279462388855051273410589137555046353336671268662846300337917876875841176622520605976617851872980660884678566185837014270471172123743203115604192415489670143008588333559958865271410757697116611934756897070480522695473018464946263325345213689151165479050169564148389662128811040460291306717182990238597175622806896457929816010661900235124160534026949822135428206880660420084081313563000555640994198719362629668233458843330737053979805879910195058145535564800602965027603144055654246936879419616926173159258287685283325886956552909302157306698870106858327921922419147551478619725174051920867500024345338978833881794456317382187272449603853690762509667925021089919636189091050340717859797757678679639252260815576335226799694407444195932316424325844845147059821805808205453241883765776526202276677441515910293271073504531005167344994398131923806174032988001964200646595850510198023923429276690952799000074941302460452962163388675310155275708513590086424035696087422590727942114006137482136746074979840361237507657771548693296816799587426129470202514886630844075900106096093628507442766288480415973611293411597955174294862165787204818280139545602462316235587873294475164241691427488286079603724423860631012075772869585066886283254170630154251919630840349849832251358083644926212749020341463421452008776190499379950076246897971300858872040683339978199074644247413426873975049272596581351251587693910884557190929812069610537971766808461836379724845920639998245922875497107010315258370365421330405181949550866353654821901889103480916575121962240617274301623223403650150678797294956460893238086322170728705985557114522062945732490807977002676150875684242260577920863171027931809087182607284126758118673769020539888631467801520708841604684723064488024702818403872075465457118274241467127985723763188756014613075204987149148748840969419884890623583801403155121517453118264169748467700912195880902348578872540402083288170859088995114083494369286399046354130243360662318974211389934427816273120090191588623954435855491359653572855879292268509378800136361094926224623800468680035264642110121370011902205606784388034580836768463785254928197780333984828910173682930344681566253318080169142147760668095386660137593712672746289620711025672695841795010989266518561353624335882591604236230088297738827037254194060773225521996097196626983217086418827542581353023479600088099882930560086007231549945520517028970525928468429049805246313408400881397538094272926173828680375111035239680187375571388620182617086106592515034295715530258118404304699577599251114495630338894062090708099432995738697283051596998779124486862302851595981563494574456307396796124335913648292988086175386158102909119149661534181373451476570627955954500323326262959529672310969887142908019422451811930005926595562737236635620423775931312177974016986360159270125591361361276497530817298631941657344161197498930097232526329447140850944855922429692091076097057237993276233529804133870347348338229049771971807000840766190539690823859274394808049422174796870928879654835802680567876810712695125924931220567571285730298843022226620543014100979737836287484836181204903734306259427016825991786972279768812970120701764933598448974264951609874862095060454323290205890886594267170841430816825117003565261020918141834651992828754939671353254752486632489578154378234744544068571422647574218546002213032238964370819756827768010001220031094847219455830059454077049349916932223589604275102297641068186013421969310077267847496810748347222558994753719794477857186000604514119998978821667735160116814279942890163397739673816853564675005376556471720916250261360649965130960294308751737236265008042887836189980671092997906164426055490403591577891346534931058544570440643591806493589284639606951724003782198318290967961331527414393646365706620426990218293715437659720759167390111547762374500446692348623202575680068351869486306456956462903304222331057554258168662040091168924883330308321585935019025925980450343070780423146096023100826441477076760465184635650000614225469896862886706357558201530041905473022081726916974657043910493324069456675595234327477051868167949652505314008118848716719262865196887550614319189776874367594670341866284355827418405856585277386187521385382579503679390764254472299958702583365493659490320279861396813413609418346902705279157866637909545922735406201025610197576871363315970233859112595545611803371818951049566750310352514946941881236752179973976643555475198449616173858444841902654705946477036822342341072785957879130199919402112255697623494968170560635249109001138155179273829123205888951239837787344689767323599243209278461243851338284626596372395698407946583726318669627681774822965817099081555791926115615710458070052917665263458595578677162339707460597801999562970838055729523840811943097184368922849291379290785041954568669972483253609079803044448680707890625670287515440670123541257555114806135244453630131881967678162052966741590609164988799463283955291041044231077398749262609385092926287908834711845733734430026827156703508292196235595903178959063441116982022185943046576740178614700254312605194370091480698915930421665366101970547231817466581116663842164556616256778266347247450544326489205372066779474829476962288198487442875147733962266813059795163414936367923492888418771487204383872988522958776721842405792138133029200829634747429692610678886354174168668952646301598457922305448224935211503733941776095167215412386726295430904409237585625616658035633886027718596814558549548981767355749532476463337627391972089600514638640479936477617335385104382326177960641509246360737363007498604162318514491553123167778763609348848255289547442196177780394899211779431870374985617667447495045057667168819549313574815141194040182636241912518886117128841235823552435485999685444055904800878278786716324924661193056327475447646330024416484474196419129776682928218185981572603976761131259525594320996045629690274338780904334024712584613820020063634803901113556106380428447525891351216435003458474991183648068336906809529649309511594997272963588289534421135329315020718657806936681591592659967834121070878582210959018326725226438583316483137183241022013740450607848460979807611317742390507645431494219131968614386164153712665353131411062578856017530147391749256081778380165818796503781194334054609022834213505132225819878126921343256194971638580393330811792209177114754294986075265982539455610431469679597211953808918456530969075190784575077279861863902020976850549286446040097314159846612896327882956090056679595288208657663720728129705437564879689953075722607170577248406903009036014544526972010019966492553816407078770672926421799351873948148505810351547651072806741893778276023546424521763758066551363881101866351864277134628310135770891830052733032954057522492703268409793545160635765791152301620286923321364836879783501743426713365948996636711044662903314470165944084588865157190868481409209091749691048544799608680448227426164692120477053908854431844154798866774682780509352227788662035753055605714900422037298967060597877607759149066117930615219420564808678188876902700728577871581737350171519854260533457758653779685908840842105226467945887766606774885816710102888554143998490377868876357669720449451575017033326302283829389633139267204252907448971960976124903138698909087339030672037526480217106566764750409662513938024314824884812878636163465932875044774778277552028848179245836021372958771553564519637785813429163070188830577696967390128456811015528772188570519452841170926521122372760905815264940813803881662443336943234223417597513210149856827585422724585418288075487906421706797188988218616770014488980312970656111005282313936592793558656865788871796708270282291645172757639342069559634491578855503295080322732252516243430213342431177139727025144574142016030900110596582641852127226322193899016865620746097292259235761717913085238995249941869632426549535042493321731628600087533193158334582845469749163524958498028893450722236377509206857154906790574432193311125503066393825627933492836025523200683121106937311526337123888809351214584214430282262994041623208527979660816647396315631142040509226279087159761827043644090747903561935179186776259757792784542368315668315268349296409058465921964743314651643922798441734826917456803604608581345707281338918382908817963601166559305915851726383252535220859535695634457165819633380697223232453242276536625716952190780686548883598650762978911831463724643352817031822296779861540856639665120224646827103817385401562819847622094013599592284623354605848872073556272854184939515062115698678573994701867242067692911467767692808124819852100879024380032326990550474204938207707809836201884056290030416447973733325127926899348280331934972309761315705876996753053029738935719668072919876508728182994362067624349940885845803077506910924376161544962938777847314288378835871720733133045809578398324183593069891802149426670196106561874970344101159296983673089922031971157845179657671821648256358532253201545936059372306766012476580931223419659491394750709293934709042665831827980318646887419616616487375275376415085785462839025655742790774283790946321230670688589161085331586254774380778075277316902569771090351999384596886285313813810110696024171669904207680682135224581537785387402690924574916363643721545064695045203666741237403711847903016238509484486927165098587123781475201486450413634613763296138145420632570158354837069438184601886283889610785546361282327090503972737439775616402514653844967720253087258421455952734601029837564173526501974534572871405220785370434763383507565131019352969692419181665013527614589838539465464591673535732780574720185219887154532836070809606568831330104168529895548518840479606591887398857195123818861956898405061576398530750437816523030469968690477018463147138853458481271510385313511914744857612141662831850782863986607865068415088602263708819538494885560066337905414138998313191011515181474303613693769775484599636368272094898674274295760441772233804416983077586133830918155652390156359089636467273476501814043904990420386765847107341480418101003143033333117143557776012386236956399744958473125184211192915876330538522031984246794688967262063208123299884637843286372344047682838252270692718409134430652190181127562491992548802617757972257245427416500910906019823939287199142885008716177586939771250129743195079399627424333475938563767795023518591682315121094170213361085667329638765760425268513913831755705332595218434448574184921309467172595939794367332042556390042781793126019764099897396063188958772985449364698418534099897740954250262300812838124836915389252108937132660191389744991780915387536915891324495002560476350442650788433711367328079034442077549271538453234065546905179562339086366421318164408036638257546293902507200853378990241091013468134552096118082028788975531916977570221927627923408728486097365236535783852891488474813176595739030703655014633592341019435258753144262756094821814125388295658555557798388787659179186733677035295619934604762735918477209747511760619120978424759801522495915622674365657157297715186840363307080158153088022892269879754308958445803065410309513979041578847418323559777353929295673115012379197669704781924568250283016231275146132596371757238315691549298059875831121316970471425480338034588872319809882169920553395006410210454236865971955834213668942277804224217388025472043881795649295029622211085682027419289554634934573225783598912825125842464021299485116681490814703347955888273001315796339566699928803887423436037740447831154245372988323065772352786426444028207701147256890923516172518188782739726311033444769312602255914058218252828135540310678075354235816403408694924335193106211928166918268695103777035867889455271770371834763578833347106604208246156709999972734897744838718764108237626225361650659023126448147736140484373632967479339863993419766526612886003079463085602970157382066374890434969212434685624476379300823166408775365371515787148962030987152456497392167290771319886077314075189204587356226506312575890445400113114787160844717374184745351117606002712710952447050658731226569308144646743566623901259943582362288567555924261377853150437299079531017095829636343776777644243481347435975358660139598955042323823037880104103690943465682753010628633940437816864297735359973201643839534759841159608397681286373972133502537427869861523541959460268881246639465670495885045936648575592457526367549633043704041251884030492949013321457316620249333730943905991567008755121391836885293350551932020722704542893545258944767665079173206426843331533377233230421282155805110982595085453746488021150535898722053296427304962394385283248524560015643031501259612491851759609777153644005552660729478451171547906066396935981786747596640940515492462943811392449405976887811476156316246967472592231995772824123345897760164016322435504618208413738764038141444091021022730452641482884152263098486725689470396234815095350364126880621034880061174647306704923346120188870196656344052313469550478977875611747450468007740473112186458300412002569728196812713504918849869445200202295942044726388794886011378561398452214139957332570599892414113336126928111676365298588353136105437402805073035968794390193164915712915472206850419608961598604759868750066309950360377994192746964287277510226676917536186484934211720063374081068905341801801995178618571663554274853066767975521794603951851030252309936827521233760504222049497790893989465684622221010276651449358885058509366370141279702109314145976499695006949137552357562661561499953875549903286730921798973674917508801757643882123304665220078679418837933901508662273245290583529290697453237307349601931430662323451423613542173169198072883381530547423203784555872567441409369742070811899561414738279809310029925690639488304895051097536403762978207762981394173853264436029543333277573759489619216755183033312183047608024158530569882087213204983440755896157916107118067402608311530370981223392283569503957008887459855612916982756624558551027205031502476653386545287811385456094102557907430703859762724459830573337339167415484953636019795723277943130629244263577634651420670806729021268469849129067445084904700384065859201354303336137008921728199863216589035180481261153257225545542551857393401791681891189923454406869306421501912564398067752405797909734863797341024071156969332912924220637727280777016381463817855651023088718831023560422098077836134454566100377694634716851867247897357857679616955989864158583373889042187048650431469784944473085675788805273607741323728665410543276927203010152573905785939605917408950968917142121003277369293000633189357017796467225125423968034676399740261766838384506999368717420733336972707549703889092074751160672908097446486831026540791781963825361965841310270611190443408560456695427600659127550909712775791465781921081697393233464767821056830616900044528289625994646181206348548772135475415958413052092913413828168836097370459490754593032819905032902585017510071994389996368053574422565835267364045832743529251083816028668283655985144679358530288979840837241485780706316297884141053682079565391565309921701497333226734142919457039623675412616862242180882226933218305257505222353235755649770896244198099734933340114972854916872975689600714363828295424656535076086435800280766197819778024527815635231832682460956353361033459111068425230702117916175943119696867225132827523543853045578119888702029582046851821225633613072564951045608898760640188778227139833260011700346534784509814339428670141166513045309307518552360127837393098266291003070177062668408578152862862787354863458521101923462389063237092616356762898601689204651776897912247894375549556441155153831666411985325033888563780616126918805970791986360463219638196075538869883994566176628540204829610689692416844954439804634444893252757054638949132835977987818273800478952890358804397689749980474657947517124621246233136494261706801515278971691199520219165837274472802158025173580121406909724823963061820169320600036234471281759096515545947397974251546071281639040329442283138195093022190589627752274813780687396389646246213280793962802753571785382725184393984880559579353832431981293348458566807967144745969255455501021624807757394792958165091152301209224809074857117013666168119185893204073124984374076556476191226522420498842069718336644498301558717401689800776936285044417129383982458772845686135633819367388652249369481595172352909751060721841011125601513477621819616905707877564662679305667074128322556277068758822902243911789931625487995778167565808546441250436719790979661616039775251515406027883547602934693561142035545908887230391156308785256865017514673322856009127494694556515356421337328477551944652943871371309620582382719685288758748064533107846539414678356556760580817983232509762250489562132300816068402711487082401226316426324129582043560986159968460866580652298374314293959405500227335050749513350269057066887214628097847516383341629302380869428434291497391014635911057710336628959519306949151566213622521283545523091451277180212989360127215563039463109181468405352436371431888865377343153655938726778057219162168436206389906787078297308790645526804832988220851333006911392998112256810824398832045477780339279045159181522723882304312558060268171683015170707480285958052107141035734772273790030940778737637331874636095255875176026722949153284772064902371319576901588113984012087165656668304290625973219786096562284641329791638976324188710039120204076007215219654892845378866462875320750944272203121696408986680631886447704988580825937925703956114619304423380857461308400275608917800798603166860799120128775126919339599127832040866551986676282597137793571476742405389152615168556830153974371789144847004160884515545319051089706603777261737138103205705748492534893943038754601093205128167566806769573957602239572659177507468507281496679845534313410484427956683028787711523150819679584874451852089471581618934688463335134405722268546992085337488625154733395831274618668168468999578082245960692033770118957985905247846594739618005248101856250720390111606993849447701720434332811769205406596835157164673694285668579434622096073727163895064808510170810277095976891385762063377079020633569155111553319027261501561892786808062099444525762119781173257551292653656848209430042872561914933172632736576688536977086496973217807491399917817670954082215575105689302484494289970064662849401301013562803858673843994394672566746400899291189462137276191259378000100602893852616036256961809676089880197935304100420923409071644786011252611943159792548712418197894698772058985552243867193743148600993119832304751847110664089274654143498358227147303624530005820307153758718226778999243708954184887210418444578757105198091363797465183294299822839189887467427524359304728850541237162031333431102079827622242070152339635733907136672404416754878018017715585952324890741354154276393814080747821919847920837759819534434290071157877961108586352197263147058844691776842433044568750088080425903843118498806269520880536340448184797676481614430068173464259080747238714152352153300598518506763110391797807342977611584813355589713051837056624245956798089399353293560155682156513170182030173280570683406573289612329490719357867011115122605418097375205476913789791329189740558751686354441514065719468739261777747582169218396504085388926010538726675530566855588377653364788094114720433500228346429921323643465262926321719736305176431982460516467104680898775713583767113557105791819312856467175596252018877436015818087880082910170638332739583046105698696286275128857405076767035730835823658393022562211665315604118145447582484645919107287247695131751215546644780151085135842488684705424724083869533674177949467654666496877606763173232620638066709164173516955259334840913277658072503909352833736366190094464285352390199545459930913512947599781619614783147031809261753954999613454512494403680185826219640163678821607155392168474799752192096508899545071545686485264814858367975046513500577836792648023877954360077647569123582175658445889040439517029084363451873606151770440663918256256373233395341350214699917388081211532749607164850935411209505619001749933699230550661661488089720059857221010540375180962775639596731634896464631383291681299380354050577011509449973344624597698851520381277436532204889282083825104129796045865603979777424032773726480547606262569684250552317175924122370447065499954458461213126134055195898758084885757714461772646277643020837802315389674342776181443409469697644888703825163919215510711874121581997701065298869908668033038680448000377716183256858939782284410449998548601748802368687878649906344247988602166437935811315441409770498891854527585382367449100517498407886153101662423275288398790374143566667021121402223665849113702831799266917229883025255393511587307277089620713642616707521015417729822537507389661657036400516923181331489901970522689026881913354761247067840291422814391984330155814120563008323038244918145629046753673598140176123403176318970613241607486015318227292572846586922365570661121723391317271122821417617985870626953840410732633873337811603394139184399663390251602122528212883053568144501212596706503467932650133582596573471582136449012359990910939953242127227847429776937297752893286350964144343811505063063424338912595226011956530886763994197144125667573694518126071572488786925859073400190817708029894230274972793607054068435833949269858651696397969953009244590081390312119030587860515542110829059899297464300042323737590168095284865270759195413831764901277404706822746816186023792557231927281738938271554034895814541034024026628548087813383362662861137990031029352567070151820780012829836893856567096090455321126236960582825484586076071902567408721038458512802744173463077113684809130815554653952121763717463269572857123006559788685056512099040733093696158021903762457856618048904276715808201275630194588756940468352924560321037803688801151103940142581357172374965324417889440859895953833635281452320898898958558535063236824979509993690846545491315330339077489288859329797396616908622068524662669860855143018037941467698858928350789870549778484114555471248473486849338672798670536669137368695530426853266797894722449214990727045926442268672110279432533640617940461768936309121845080510448012448551848048870339259149156868117695417466045039786506226663589544309622215376962592271010275103732418922821135279348748136114449964630053601670041427180771835862713326120677237879862030308971069680353621424067964277649492717750893385228015858362713046792796447646396214617935248998653807250045103815759032373084227675783859146033512206022419186909661199284103590841435486146910184460286195239770717021253173360213416313842119105945914489562827060906937517678628936296510676179132203093702154659328775328600736786495930541707847717119290694407542073258618003276073928826953289798538732428119560793942432517552795378463136334794481308716426067785623191674503359078965243361411736964327868002493493020812145173665527491630184984822478321275580275140486639879414507655000677438954447944146256802867684760078585603263173282647520651621027241693004201736840764184724358801966862069282444289247383189591831035021949739280804683943798833241984927302732741421752712050139615105844444435783790302415198825095064803058033102914807518662550894035816182747715687729754277059866998208865870312031621406828454426950542170743990720980014717830366671908863054247167589552209358557624407397782746965957704720062013558109336984439155979739325937931719152202782742587240819016012273608511888083297748193760608858026977628626191959182431316140256690375555914674414995527998079378557718749369514147405407457226913530166255558844583083894521104630720050175586959747598318061449095504666034361112758814262912131644109341714406196669130455461691293278218995980003992660743341656923343280484629833860184483354873983204569032961813848391584791557497976360275144433330236772468582258337413345356530836676262293780957887485388505054011094482713932173587233863782383326314872180642933171106526627203871462677752329307351505190717875918941690474229528340049238242991463613326703186003964499382103598994507617460406952237614738570101840458441867019497526070840443801189848491106402143789897179681216380742684056789949729449491120511993688632818307137986081295841114363843652579428216087343427652296962355827466953053991440519258654849671216258529660920792782539689836091045535293221924119339965152724400489601620732750830504385173502335191462328489244131451045965069712471119323986963313077036907158918699463482243316873240463747330243255128229760138940071706575041423876894629835823591296764301687375722627495435416528129865839419919604604095255675553046156080909740514694792180281365258191530859728394252030001475824956442475258974353015239978439896201303209471709677696928709521424817176811418871961479481744435650618298500737440077834196159194608599983817167779557197016323050266771076192439641358302870309871722294761007890632979873062511340594660627911381127058325916206976203404856216580182477032623888602266480616432340591354227917765474807748109886244243152334327461463704580128013611706265226258687896406400930027402839031979162846853757580797610677498569952020777799119568947449853384941507197028591845950326008345879241886460491242965618708686051282640624811996265066301426836541706559335384065108132142062636676886922484049300003844068450267264833295504583427367304941743535191625554119809231446149103172664789001046554542959363066720919775996700542568978817192007681746984254452164796514985352282107041440401873821478338990094422632420958757713887204483206456400942013737105020651686951557827689479518433609319716720324964605955766337029045604499336709219940874472176103370852976236810411454259270302288032200294762010857966035753413783570583434518245602240722946593027399033463833874979238453648132642521716373093708889668495430380397317881187876066249268783679843091642280407643953740887618832850849258100920073357697484732422980243899974711718852165317514241875076140604129645111332397247346944968845249578534339556647679751316802754426927574634396791936087947546301048932170631264393140842941592896747017036657916690923300687822296885844478996938445884733347664524652422853075150695577451337544715287125057820619914688760513747234006116472355302753489446932909316646371892049271526325001320090733107160266285183277325657470718214899386036780992663350214636904389298973072542568869898405404987338286105088776218018351856578502641253101823307657432069726948321449563736436381862439452919670525811630785333417541445694367189216206001750708961702886592751021906842343006184721149180176632288607309149077490047000871591437845317888945886652914670130097996188595703869572750743475094067208637825400109738304895733404932173537162993958394072251527504678709172663061511366290338918790848905922093464723010053956594323451880867365463385618114656981816720289179026083731881450982446169859094562384182609774410572254186192464057104538381065429799132211515243050722566967495838836727102353115570118301308720217488730960469039339159940964494518331623129897201702273852350091604851902372507823771041766812941143887263529241292667400582458309943084593042184783531683842564789426566559667850006148421189436421600357477905880116526976542262661351823650469838059027483386901079866626413737491927472804499481086370160414509161331202561415080861514239802331960192260773209163744813803696860098202620003124732743439896194824587032609745006655791025533470706763266083774178340096468778679604754505713939538498969736128860267438820549371837801098696475293450807867955305382903615093635337573778922248759032257536493457804581734789638844640098689050257497810321930622465043601583001221778510669103033587863771480395490278698321867690790071740403978288789778140606073324915248014939480172449964552900834796040487980247553597767134917831438809198537486083696540724422949491508237374885522909228622127270180481805180755667308381235424287564175240650629053004368992006856513147722259080294438242384728089157956053940137625024042898141567589075267269982169932402002443340951223962096461848834134772166531415629542670559639156268611685217308739823052707324021863657148162697371809271325012574343139384480469337447908303581934031389331099209964634647387302306594915243917855139934061845626278276069008167153242133981714705426990922704304357359936082656143924980522027340200009215557913896132533223595822692390511084845533653024885749152496340453655719528315451034737489886990246606138369267864128071504898383105261660052244992462678741343695952306114299111892493026844650215932139904558505887033315361519510133077456771287847976582755953740438396817478587238032300486001343405956338185554920841483109821126106245873792235130601128073922566751320097003581810495136694048152541810172037983950388151765537514723017052760701714710543542582952042136761766361420703053781702885784587508050967487535941776851105538686560330673601050785237591193453233349113108280537632883148480815238972461273380599901797600015887720876731303840192483951416381577220160211251592755166857972107179364726632714421268039949307332100442044566936828757855675458483494477350426033593759901604593787099090206485208788540721355395930795837128208348631900778520569841810644826591428069331733164984109694607389706637042504572940606482285806167879407741856282969957169695657907830415845710460409320779864763298403387383946731626039047491863042972670290526278023367081964946180758348145125164260290833463784107426261019182762565548621539743272755109923575226125607760444311746208586939198200535279291499175756818216826621597323931171083131042377226515119502437725363563022908133899575354947680704463416793746870717666452880554412919403332243178102506320717748566447919768185505094077208549372086262728868517393716219541470425475592109612765754154019726018989725240541136334003109533597568664884304609836636152072202618611366993893056833750282375335488248787674979494761084675141904292309320743874048405608210697637729529285419011093122414513106825572807111517790127352012539914816736068696209439460533910051249668742139109312246798602168043307611756675985032922042216094519590457107836883580543367682456224295667658801827725018477352321057812764272710010664819285107028180622183290222692536694528634566304136014868524668944510247337993510850214143316107005750146667702554903759901832472163848763286016821380370401955052799023313289498820905033533891292903548184897067121176611448177188124121546084890363574490293110657341428274450896199319347523463770322391974724079193114126295412801983569474019399862158411429153156660901438811181821071417827186662424525855820138234840409388602158213708946605424946827212418608993323644748577328158089072845418446446722273763634021995029285850625208171914705844492581859478803654963356106457559972496881423341666392046767146410348598519154086421005756979129061095488831202530107224613629271994325657445793122867242186420669545590817158763675965917704517568928746077501400786161797692951878729741361580537182116411974256609558179919335318731215879639387109496352880156361010895441164106068896836442424534710559755317842602954592642767355426294965468932677002709384509954215777024181629462369110857923950913499004093925240274872005625541699310113190117055030686155381085347442120582030646652664686364454819928141466754906118136514694290869598168622365463662472412724079183852415777795514478471076310643868082557774875857030978044050186710043013295817005900564699655677406997353622312849196675991179965879925212016253006024877425320513351649982176405205066956170209085421106730343156571286196319832240009065589187436295992414464981150298852828617343614270583358828058300740904811447228927966545185873098758738672531801564555847128312136682520825912060982492311665404327188885082583419304837910844898838207273266173044514542413757978169943594485258239023095341893786211256780936440254516324305585958913392408445404481717939870508247661644851645023259664054335485119650051581178772950581661660112010917959356441405883649518888912386176660413332371226992362745332474380326877763883307622616445997399449580018264943925014649035798330417821728067429502238234627286692648545814206852993299981068866075725057678967393023569247227125269738110139544643617827111651014815764906843524144425314858115923269111835783087505075007947547121227258449271188997708211905533755494654557070201217663581811145888246668679172703277110208196813488529613354902586146943331201387940137534272691091454961869294295217122875229737679911191268009979250099879633087202612469477421102984693748738156168093479109466774333634242894969289790073779270533743811591162108950655083431095439712266627962529074700225257949922832921511901613411125423044076866553299220484425249379333822093247202623616511288506371327623454084156451293617351478238595310100458800257179956784293468997378952790732452128864454891955976318454590560492007255008622792628861370127469128534159546846199604711910572985893920152233396749508749616991858879388729040526305325393697381446141919404933691073407023714985940744100692076874342176970531054138677770988061225578475074175345595127154661960553698859770530950966343060391570250185673145930644611004704270438155324535123588124832099486543754306700080649061103390685974091014039640453127569394246991941907840873616342141306818028033452023840876784330849977465696901633612320747582411672096056126107122482009706310973076677509519295920442213799904524003984752580026162453508719967233760438535881407966395201111252931249187125028065269592250824772122838263701908085555707265402511886681074744669474079350365683355453339165432444415195491073667590216599398299128015337355054048516771129531287448839281658929856814773691753098783370094943316636082974676350608326217989981545431501906301291428901058683437826803273726549676581201496381193326952800107661233040266760822938759313311660925519258046154847649649867077648833062917630619822551083619183466371168644241809852707819121190164137988404096240638836368282362822708712308573328446843398243213136856195278972312749250427682830309716943781198823365313205492371594250847572544168023734665563841433669972413750684992501528633683429865111343450931953850664971761728071683136558575131922789622843883774843858415746785523954518059362825731645822769953087278344884117466332331338869758524735900374900648987878931646459968969503108041820415031835866291777042917649217775617393824003542931470553956628150406860744504068578436345045587824410134365070233637783789970796104930850368690286893760866955478642808066631515185210060104108573811376854618218966347382102260353769723360051686687322873312782097987125237451837423445875328287029237588561124333452734705234512466520353561123161111802487818722427869003860161393475882679171432762983105337070564478309625508226296730114221284734683838834405311829526854704068043443853775271681578743990535243179704033695146864901588963777115851579726331763402808843643894085137797771361185296105047751669056583372047189254067926086838566872554466654968225629408211158108082962339402501404460525728571765003417601888126457790547285749717359337559872542690070000398413083949374456372491479741702441119899753961402107227537038909556158885595819951208726014409047295886212419810828610260562857380260571412059777679627959436114846389090554178176342905502242614192950423808763033682140249734234296527359002455086074795054208090309607877364896816511690719891102859413765767370923108247697661264254253057552092403168115272287909316350734859941508750713118510959675260120875277450287787359995452832179759160969943267413146830587836333409575376226819771956271638572377713803806079601675733522594074135945371806321081519721972262234910442166817406219000832282979447056299597096180529434223046462691236501241152698938700543613725779699348596127742126159141388086453750754181187857712961791911333001261365974333532933904091979258739225021130466162675654966471630186831388935188805611836591541623978129003331998569237352513672852923494425969071724969156791946908140498485374766735567343741184882210429994731436862348390547783040408403752481882038133035134350479579485599730859278149948400971581786996672875456683783467910095212524174709848956080589970804812950521612538197834408789228411835862695786934222489015155577155369513105144827846614309087648107548976505640452215895848099045573181180062732701667816468841445677182919378341350553688855464302975174729198005880116722795602840265659704335967693340583804256819142371492432601526624811720925946319146232724283659959744395893826197161671863076196270282587216363888068730140494991364933661709069454011735291585581190336600726366748593717247074764025096730043075417265573169789927150704361924218170360637643789749937765519113569700085488038478183610688290077404802664133104911659587478923268835291347125069748033259984691919209569724003316320929287571714000662491725709782133178769321803039070021420332578956619261960771151685569655859872345816940399901074829599963199957010557769518091875877620440517993673059717313729185403015165780738117223330788452922098332168349691710003512813514264451482415601877285931808753926705673445824841691295752234841910295849923773651493463781058731163784866947136508603479398639089680960151443124957868867724089420114232357704274035689403252638131686097943664042608961381435079257492013587307853451842611945530786123716841943686078681690006993671354583760714799277555333375656723963993463705793148161549598017506918452689286999645596528958689600237903741499212950270856335861829663115480942736870928729241178199536330288989331680076676806469391578338418854966365526196407919969469966191807538151935603110108270905272502669065800089099048279329305921022054307444819187490456688379525784476023259050254639131413440321848376260888914843409487195375425225546884959364648562669091652513220035837103964718883751975582326039327919979235855865749738606686043447863700427782286294019518914579547930451064276979441586917896640522938758556915346573030988428021172087338720848943877702347136170954079455932301281764701693438389085270529265806597097132286236141043075731051843064790934421673003130871927301347802912083018726723839266262799925444464726620799220299337688485908928894781897269779144177253213108059034114231491892453533441202131839305135798828571780142662864177249783557725345365784415409921588480272715160126734818828154948312427152899652741852195754692994279742607261300620523869859115102686123797150730463123741330533141329595882018543935624353291956413991765859799809395441846105016094933359222200450444979484118397222571734150469279901518011218783730152970571305469691876063028679291089048632969201932358443660192710263318571441171419043929557925535566445995862385521744433457620772465380876623377525485261755882633365495361139943228662602874876180094357865952068580536320018420225361171160558176834952385574343390423764834461948414415001973131093372998979926610034890197850642648747367581774354777226563301724565982145412392639893309068399585736820742752183574489156148107282961115752102424418913122789769376856104086396222087159643265686169170813842585425059131893932175048867125936252176209353451156912555077013731576428179770795706706253812295812915748128187306365748788499676514063752621109845745330602603988423674786868050435203651703111731994733874813973645082686452588932603269862427887405149482105521736033363585572081120634889165348385764374174227192400996433180797491513785175783434631847307754755834035512509897981394280888775577957179309367708217783886070223735953534298258503027622856149822460934836831345190249312347853208100909094236539041364904719414438995386360340956382107713352553485615174606602559641784779301370632625539976260679976820369512146394244480705647534370198804106284799966119963357949543008777294192790282867964656146328961161946481319327346438502297486865724525060000758830397993301522832166576625834787690753387127464057301319611972140516565404881018649840174359754844671114559746763960138023932595982790059068446397233846688274763732403059418574627961535540158418113673162609828811981459271210952322542838058031525516786099162208589349964778020971869752417468286826800666647979518555565658876203277627064859232669500303949547162317669979648649115811183683282543306154781807672380812200818187934920856857026936895238487540831927874632550875890712549559666370630442415879884971281284796341882325805842042865021958862011252902904711118192410532494503368231452292940007147263194604649237143697949322338045758639854798931308600358149724306518755248924630332492900438983275713305185675395004849305484181195112284741706358623690415689121478340597252227498995638530737339049841172802785261752899814199228367652779439383513642293236083759518897270992319749269425113855026251319301644021462765286632754133320469889126829811892471681630792290824951410181807522334264134580403759138800599255765873129347918882944958453670654242528782612043735987085145024003079661421039948468827503952995549605620269490997034097700472026216494920743705449831190890189904934956717215151128318996448812551717931160082227275464057551500047057167288128674104365492890336214831890375582486276412731018119864295226624147659350454861816633455044041855373081037849687493181202691699100952426885433243887051629760271181333650941980783895749207138186088159120544954468455392984466796010581134713632794693249245347656777685123530165421921086140635102932791788743418537387528327206880421687679622820496061828438803177514895060640173439274813265131768594221208418749057890679485111193768947003062462407518744933408714653603354634859454510868164504360474204969779973573632999234785609208041888581704939515157869375239728165833454718619040003641432874374015355268396441470813027711231342347400002266128757857101242586246485640225688775213773238812366854024481258579653258131310145056945528310570418979679646778502121041541772535491792493629092698735792516465707962795583354063874799693236524769068288731576467530927621806744987255995373048685365183683069009838689720795227254062153728339019345039335676807197198469045347126828708919645575225333524038503940746420753528404886694765922158448510223336534552376110519929636253997222051504543975817384817300434657175071110042268295335238089665913793452744633314572387703735524390816314239383976119843286545764969888804796781520921345298470481893525028624177884611880260106196195672813371999183895667660835975103788426422433362017167729724467996573087459687153276291635474812707063977071908696422366582881336321464074373500091078245651919541941403934958111575533261160376943506129557407020503455062362628276490981607710156862583159617570219797650412568539777047756639974342784180955720983366218614708269845621468396396970473705894862235374879400528468133840668086122672602828969004391328298509942306895575061534957579739986552503361946358081534636009227968974426818497336085218753064038281630838238374141866543069472075408217574388091636680441284825673457883575235896346478512029184568168790016934030800306743313255554340528741676821447287946731009944723786121697966297148693421937529030278626497231707455995578366001418604021519537105064782026325185058730364000593882548934972102101927164719837382119308683829681886207746246461289525217826930484918450158362623083473136240252888546931383859107602530036745261434413146040356987433454640614334192444208871486067749716134828040023720897829709071334885533301343547609347218794390449953732584691271679451193197393970110015409397639286343573579720869962340998525133772931362938029321198775074860028825977939818212662687898713476849188561344524196616318849014917985138073436309169434139178237041688334868961751896826541331343898919712109597229139348251176762101227301772716606745354177512070302484810166024120047953278920662790018305038332591745175994216045748358422724531658907531874208825192608967134476278410579329547572550815748117276516985685712791288950736750542320021812076224343795205812294751050551738628107553782436438470250426694117955488996332585798454899148311465624205596632152009312528115354732320410578658637045171704683534173580372431303418439351258467011329561924149676625908491038240440084346930459986958260571588949693938591750758162851168703762216805106184689281145009760345284645980319614959770353091878734088845849737656395417926069025090172367905313744562639492488281940239366888440383597228655388677478945643866435352887259709357690383483251737537506070974462162651554440310657789061757981130879888438030808393329994586519824878442261077480111630998107842131004764799553305242042757962392975014988042544157765384101584376352626578925559780052935365332269883529008969153582080440538989471902437266689890789479543172874626430553063096715282796917098509685049977743790364623399870854414366596983634332356290004137616054265833675051685064046957736780391945680241748077671906024154371347794701409648120781813037085629487338732509124221792715251882978266153370575752425012787904532319729475366348141560719511070005744574687447853910411853653614677519999638744559018423873616036167175704244001057185984913966848443989670771461988059441421891538810212066926925623807126360919419240918760295352408842420594110117743232356085720354005258419619105690886261854491416849079222117955960462840220966665991444783179830275726780489396337207512536495927492378153249992705699732543832523424133144705981062120665090058447397381318990229138445230959247104743264503167366350795773311880208078587122291508496564061482559710859025627936892106319769655017021249721055045323771242635459894567754074451484413023336535335650677881915235160591508052330090633887334666137931591365470422271556449700388368803275654875746851321583966373948056093608064699125128350413544839901516599592715132103052066311595160223495762556671047064220166474173623971835860198416247272939849644601347674055862863346858498345035407076937142392768024343076277474773557732109975765874541043017778108769021645820253644232365892885667566226672918964750265263876132166397125504870253209119431133724458447822450918480527592986315322561731043422378577842310964998598873962326527659627395818882244400215825773647724965759031028368547104265116382851242210026056013018763732762003824473779318844263222511223018186914179439515643771309107743881502507088073470646793517761838666094834998581056737723506693812577924911485709920928732657938833802728051942104818625219027077702302236947213093014323726569618909459992178188470899457400380599302390649236628400014906380200511825462796733728176082673059599244838910309146839832903874249194270761036426824305747713392112752024943507819245665317368001531489832730246710451891320976692084346827957125312460098296131341733284194421495725393177357022094165355685369752894160690865486106839923707505727709856773149129248889079541359679255978144355256622995745946009474387983448653890594858629801533661294046026771853506010258117636155767924045780212701036920010277295327025037215396845463725057540811917076871314966919323792112338379238338764937762936690321146292974649676053585416154355461865876665083713332943757417803414032046914458686458745765506951991461752870388991984200589944044134835794753530613676893086988251586794515784263573084518552899979441252571249272354201882437309139381939007315273574794776817652601255591011395452461992782170108205187911469662179945882285972797419916493383990365603125386529032935966506956316795447822960143207389951990619782979259132385070055299655263783867352141260702887848159037628289999478387915911224830551207324300831494684623545522566138763598502884341951106518442968922163082731094879397725985288661671696272776478500826561295549866193071355185781406095106191400481033427522389312972017384728431860234903046706720460576961507421846222101656967865341088579711732382800770723087923994319988161425906560050573961922505244571823267177988911907686191611474956950524675878645673389411625462694716018739900331535648969352406864211494334757057244700947606307010975429466736591083137736075785922599637561282246851584480376883551545134237462458012560169404324244304394534543422759376624710901061680387945206406013437610869048607397872760206043733053292139273861885654995259389706467650955046478108888226933017865613225812307453955293553365220794433006528223119311019039515043843280728346491781032632786042336203666417502137064201523643161528654524325299649549728104364132998438064081855415961966582681525060539293021144719162356253754747745412706880850006652944708441404256710095591100060533916879254446593285772424457375759235552544466053054933649791755622331558275399746609324897379317548810846124156145046228935701044549262906474312916779235634581518562013098718756359331791939478815613732498080293758429717285606699832651123082013454446093457768326279523438297694015238066688008488795929255566335165493855947045249386260906431805769429049444151312326237559834026859237512950596221074536927585602436328001364155111449161892412851318011415034777385992952621713516266526141387392773804261303012815181271925634506876632219404168471216766979492120516653240964429763675318271047496761147932187599846784086197617434887120285929898554661612354214427427968309191563725159505705851970127915919629466721889038194597769913060903995547085758825054465723336542026587434855837997615188328202515307933415678420727234311613439428476976544662114325532660000271453486934848503601693556734763290893158653449473229159776637953998172243762748674619578341072840357222497066652815290736225498488008768030725321483458039931253361815247196395345551972061643671646294395406262510095426381316761999644693524945604391472339801301004041279363802685634518296603468418545438911269205046069009861504413785174324673228198574882608908507086709957132881164818590105307848823884707657472594551345249048364242806733580389642817236518377231570537234748702452861349498208001624417893228840274461594296524747909971877342669767872159234667479223826995206246692468371190311009857183484113258971156396368078104975886643379550682216218053470015587043226847526140693396058964726303440539522415453790191532167877489451279021240198077147538005077442337899303013832450193349698630618281308148213007353603357355443123808109371910071038634885528226191148260407299187861025568943581746428873555802387210255559413393160650882702182844071949918372290331749605062323749097232919834868504680838003868933500851004778561316965988365940811917816967500550031029037397597380782805992173954147697585646286840617498339636570886586849756823855189879621820198865701026258912344689275506804630409442248659571885404599057192936087255128408374325881044537533570042739485875574650170709304474908336164615600382777406602532066973009723787084095659231367519775412213242066145098740881002403533355714243744667288239889823388196195118730262940732473072550962887682516454211729931356848245400088961955715926350720948478614309524849774159691719615121866686677325381330480749566923928216494079386405860313766280400893848984365119136244039348303620093115231652660351242212089775451965429497584983613159931517380587398821300522873208733475130002809122477623063922108151632776647298385272447095441055170356453982939077009825055058697920461323790894451241360152250653663449308373249026406993416032782530883811046679612348908174832603510371303401520940222126663012322973670755751596163816546902465398014878994448512280209061512034751413646160500658463976113323402822107356181273839886689020355279483424055701535095787582540080088240764213443343969054301048241364886282008547406642009364199413370856189157923977474324820090383249931991297711940487631605684727349263106308575670162591598460696049654480627834644347954210449955941646207799730731986058647751945454410197090202699091082994690661686767298195079493114644995809474494138292358484565639966789582436464685787834973935516106617766008677289908235200131485699254277960692984831244867495903131963224521735126311124557533325456933563987776496918698322401094902044443714357351346106169893155057374323237053800610792530567368458091667217113817169500059999669468599945946302170150006226017774990851142756780473052990367395002418585091927430797676776284426146836558956540615257198677281153564350668783921425453998547619916902627141591965517909565289096332121320671587517546891251047286352987196714693572034972783065221017554338823048109877346534414116124563831070982309645899748694124483853200097517960219083882692503399949960900914022906291153284496947433258102385860865510542999587271751358323812669820561375472680265331083570624244478066612350368025786033595867011841068816823863855856491055563404310777560119318568570199240581403202357757224794721898769840413262129435862239210246343091100911342740478015932550581701341057864117680892455904712457888843245635090030918767018803157152045196860238223808037041822211655160852001744939113169361379932375320138225560854954888023666644124209082909903929719383558387248458387641433766317125370573113507757723134958913750775293932103146169044234886304682492445558569569581785146736575725066748279817250827076940103937497811527022068075101435374124277043793497669951500409573947315666764451070538950314385333795815845752211484976802317081013734710546975508553736551750862307148323716522439357671910096103060784362046094146399714592273106139483689117175304051170769520312343674722374970143211223024457697570743574315971904358992837990363689456060872414600670509521514199671862303547787691364875151998959165963415224948464457651684671853042887899227211581411102973405933366559180933713496762848824764599415404044949931040229756384743325645344862304502186132260323766151598315182975774925037854724217586396272451972622723533287119704082284073702147437668036262484236740180988795182132859947093695995887200000473751164412446961303744313971025989793257467002646521468198851411574505017822994486056082325692737634498095953488580267655872832875625114542240477424624865142639376484874952792365007598173664486686593165714852771943736450655770575238060414116543400411042082716890203943171853109652891030218971534573540855430655096687678439158434249699603044710559038253076523295093320118210655978696070776325231147256721596486627699120933439321119040412054568927969656541894942753987673917547810045741846159481691689954162201064943220013148605625975506161480576939577041691141349230226505618048347027568040334725481932712388171774290891898619369033367972415045325654861358732798455553804678162908822837240484350152917276917030612284864632812159272442641189019686342242691756985134043949918894652424007618266588220485422257280873186599842244893639285241659594355616519228531998651081736904920092705981807890325815411096271920748892642993065834000393963537215641721442373262687219602901728542436547001581966400796284576454791919731369794857937158103313727500094581490786890624677716183981225780263400819871300708759767330143600052311611763386690364426487002824796726331460982693587482016569640608401330474405813219972396189099418569340821166192511037958179761874711871728204902319510173612699034540203377131169833988726387249154711131994999220492227972930433630965688655896555078145552793974508961237576092461038051941949755384889088836607039493929309087336233460235670752628629933181099535887324073191615649921906536324644385483851572146884197358907615838818750803071661537235467534634633335616225806293147570535422686781589474028270307982963679937505136496307471260419355929953342982212039760553937583969577145504659049984132637753479389533161798770936776903649393940585302319399708135915385797264005333543658321792015314519304226747016979535280074434448424439457497564486510574250341221831140000552798736888737284364308518948852036844332076846622126064890675030041537491948030249229657246821286145976422527911924838329338927664497518994574785239085869653872261281074964175946903405708210321319669142848810960663306639964450921670183373309265841827970083817013901766574860312295211758756776965731577763814341218373828941644575904444586768373139954669086935500670841322173626161738884976091096667518780946144158848696889656281886277766292175261916667711478600141833713507343276293018628653835430174029717613996534433436676584690361121331690306218572980895580176884691798925325279207594007262344911342829203839408625543935542779107195121123844748384910733667626212181570743258917896307375807204016504950955940540806255556386156118648332088862127151517194627701761221509799390501097861195599131250729281037293454324797994059119938134110904182611267526270854511059560918867714104361706321185229505711400725436319503634181652712416362048864735974351680268180257447748450672654960115290752254775114996322352196731057870164687564197745485986358019754457316931919678296333218451093346218046065260022270723441165588653617060823567728311735745841547935799474654077072419496826424441730203739360243708737615424057832426528930905659678581845249438539275114084641315568549167167953755679808350365221871471662389714822331023592731123260126433430087707599307537879832827414094919210598556362769067458489287429394425961420751312850010219900540885744755897316961248302276030617729808017307455210285517247016634651030041508484182030764306903937508450632718037832672941571432954522196546311720972620174247631045712580186785155211885065647192600236233981954544926361834153634275335242649216408832199229505848271138073247243042198142144396841078413134607572011711977500887853100551659365290791635453717619194664148021834674676221965036607443194563455696920238121518077264741847856644841790579159607791478917562868976239306750580869099473384285137318191494281839096428224907558705728801871050154654892114958901058182812751007978136983476576074669244752326970942327825127889153796116103295638573144219262232063976968605447016865990649460439635688928596020645466660736063013483329957757543909372418016904932173224327447677552450709888578716212334568472842035201118888394745917857564290114926832292234548856427234480110489466421475530188482676480129569853155116927427554740697683887942332374245568825776017120432701718661102937617493826187178888059651392527872106902694971962905690452081827677988788217956795856308728539445001260783919745057677613695189127040109025044081208602070828811681473184595210196592918295627682999946144268890205608154152594618080195632658046717361731880095745757293096156664237961020871734279073543198396150428929153963907179250413372312555674861835354713037399027063587178959101449643020852158305493703267733883012963464975883283493547236520529400695312671304529574266783969930837058548206324200463817044306300332893289928063722898605896413310478746110646592141382271972126649896209819671657460280633703494698390504183683292080228063807528008805741280554072064680216166229945673050029360065076660371518660863100346468316245379123056888231853650999874467126016939692723332385382966989352420145575183745465308936857207678207200363603756075634289868708351569762825493024494975682599935957071727112856546063492240986631193963052962055584505223423872122845024697426250582773411935988347995778938869652304832332928917141891980536650893114063504641906351686711353156985398911534817050767128356445320647012105841365062821551999394487930010005277899583087032947294880068740377649219512630016730767342164872810961260715402097966972100944821447990245608152035045086983436340238310920359901938140345163257687198641400508131253439402182504719372840065925833673797722934775548317336161342147372446145590898860210909181204795344548355794127466804964471507031392304118732727386968249053548241590886724615469512734878110739729191008478262125697460335814955453460619384779959708076591422277308405232554204113367632005565454399573389859016894780281362303529710973606013056252829236466875955236568790004504449318941446030155012883339363759850955980633791822566462685223827928012790335961720673233701585053338142024410106375384024337484596072528355303770217649966835607055509769923874178617521948034628200289881082197621085388330153861557377465311336844577472854252417298944824600114041674063043354345287659723351900797014459864787423364449779390565652073737844838498956679958212117831304354131620364643958418362697164601827086522818231241610049392250664365438703960732972173841844428263131251719776768815685932838740629308354898414579588329596307608216343565087653821398873019039822716766381494324784942786797042712852292776976463040194042836643708027695920769889200181702390310651429382401435091300502581642389696400730589076934851457607480444724403969031607570868820714425782415007556046650898611960475344587409774745386868031051774294020086036014119850853343224267986372278254329358904190461011976973496655858327529179853528903092365552082582477450256136999612670850017815591865203331320247812558998448915190832500428562518809483011416398086739478717502727094405913144821848785905663135880098877403797756202839762225611922468903902836009611116514691994314038744079405073599102592501386629195280645407544839658214150631094405523462484683212995526389956827620061844583960225304751981199122373435028143855532339727921665785618859814466278311327102838897668375701291440842470145996197131486997491538216320546495195138404604626685979421676217792665459842949290257864811971526440715729620255068355757905766653188959792027341467288890688379241661575891375606839729249308546500036129623467602479508384171071438827012888876620176869235670156138727763543931526192698690893061042635431469352346777349487803908540630289434161070592095684978384254611210630748285977849138917697191152645598472380880657048861508951581171867612063210248076171383671561937385586329454505000972382426061196451559849167354398375656700168723505654467463554000984228794550004213812222105580668929801714289381703215512395706843177481114858769165907791729887269394899712639379108392599037588123829751555390127065489141999104547663824439510590254148253787730568769133454952128711555711322428500169260754521057958759451430037017155496882226787086119886436748113771850825703559080189646582799393699755513369201714397464808678313873768266037612265043266394328784463116337002400967925088584369488259491985010954983650397846321318624779223441174350042483760014013574534254111128626960006833450076420291904211248050539217728507387616692039973118725714131947555616270710476579487576549140597660647886926178240346017767377600384575290164880600754135570629818659658982786646527284338609683333327029754383562088192604231583301320028985506560524454133194436064271696928363376513836713074062796000589604249929433010753403164132352186691135060625192858981919138977839345718128411549420456257553359765730170638272957996947105813661700270067372393457325936178142755046594863674519626577628544718972848574597792989724132091814878609598740759471237292457038004380718737758780512659351685510289086477128345118254656687238531086084434996451325370174162012187954139824201787774193724088788903474754603071392570201243149529917477690227035817419180249961579670573966538396131308169324141438589895990334610485682961122829076561799529009151711074258103068519077044152244069629371439866115868125341020863017499702678738814433816952446753230689638435580831656271159428260249214532137938209711647224989652879592881692784980698673586257370698214541928295967918337897028768206828393158757982640890689039599571104291919403557378821288270849320376634886206391324039291245043019282424511782938536414768886016591064149493837678939614637845282805105646768634070892085309727227231277054343733275960706695613237200970104617317629772929980504207165691601183791595389285730226097929545554175841479748336984271767067366922904248842069000184891130457316480337629591652885715389044045348568402425328998869172794199053750254725889135020906696034499146645616714949986693956405006428591765720666084716394507019655942363271514123142095419175579023901004816470613229036584298101002338394397757993847088029207528351854937391944017785398408208655641739409560451127502100393432541975889997471669617170044635814108938158324293395269733503362333366787116212771021835828858615836336407106000090648902844318630240423949524952444870832936926869697984104894885737156535263481875992671514766359390599279374879918917536428569961972512494302303453422014952872785415115293099537253347920148641854367423373873800044020443860683389710703322988301640583370502182235402687838694767971837940852700871295853429968115844819998722757168641944578355730835933068752724081578342511674954845080302228698422809331579844801634752274843113194825567901120221782033942834343390654327478389350585590825591961550417605650352398684303054466975058969900974332931063082108449865151235582413873426786878245533830132998434071755219420679742003403467799042032034662566460766199703481476167101799321717883062157429507196411161128070885559975577732292090940195668846095976033662022449217433852402761768849057888637243043653168181328668689413449456701190481027948250561299612264195880964273287755205291040405283221025343819682863769831381843080630546747698121365968058186228020365559203291052111155168910851364720377363051158496207219151217759601476963535871546954545178488943287677212114614046407875516571751111397544466295790499575856274666206859101289161904535684351044024195813890493842068410618929246859378857410799346529267587308377854106552865603293033303202247502125333477776263120654736175991521649602040577160596956094300055679398356044304558531007483152461696448812889292655816291257533890239522035790069277921534839033050649810788401240935222827838891829562750564897193311971187681497464667571153095589852148637428830185165339003108393601778861394045467719764140064698244974670679604416799331719226700010698812608445083854236490033816647389197430589212776056466744499062051287023874348258035294003809013332357564976551039636329649995726824009845398214402396282177988530094499516575327637138778177215080859896818946522878441364576744967839384958588708174282251754210671663240575821989172409886669864430479844391564321069997753516491759405503408499963170026906932462192640129820068988268633472891976378554936852036782809917475219868796508420114506302601513515043100433853891494303249055356326798512454989153571662918176235014883518425510200105494805819864799621277895815406835432249815286154793955095012590235939509431907997777404237177906854396800731766574657266413550796178481071337493743534599769427743781816230940688530909899446468771754025853396451439828704321925236212950671566209001134976455295519857467526535075437875136928555566435971500474519826439911535047074693002678208122574115600459116949335224176516190583586254024834451766499739348875102234886067790154721008801521953318881228349693455202581832905480375936958085507011248241710444925474636273599343199059132708971609961586785481445363985404215739028812085160908024731764093715360877293645524856008572064524595017165412062400309111121771535250514910168417690496572722897861228102985609508651159376110881919643050403766386649063220569692056344542730075966995988086660306069768072248574195104118871711961518561712963554071952837362225504641651699400293014348672394872787845562071640932808504042410346533474985372893864522082064939523031849501332763386591613906495921513329667987387833770749457675477380331326567384676277074973050076256494711535276929866556851988107630326262562673655377960904138007635078695634435245787769483867580477639326900777078168957263073486679368617440465123708491232334399670556918529640058117457230964352327126373237234327196671249595648228468519783596035590320144835771884713214917399774732566153697371049242126171721086192798612444138642904243536078854625775518386564374890018575706317071000402124968196880844376003717158319495137457987352611347640033782944207290048848389116249663594396659449643734908000755961315704111224315426059630605789351124312006136939659346683368770649210258050443268682079556928148612978473045032357748996357747715282201167479173696453430117258007528996414494263750774306929498203709654669284269787715680055487947378127158834976063235718353362161284072736217554480438808400797471062031530931359879518567092647306425298397385825704428080101973790814873411254739082456076172775965764792559895275689571137909666231512965455119788118633979072034229189003725315152069035183791422695964912194618828220416734120047394049408253953151579061228896710304746312455276446445134141946469553481884318043961947544391364672318556649313388046238914472474385982189754817258003062413673221917036595634025000489351268312611305794825573527331195475752350604416737856528754700421022659022411319714280447753909556591184539380001935677906950039282360478934475038769168373278349840733528441653899839496984035560128332146265673291521969810651196430958841909950863859976012296585342724956496855151697828030975105418207164753535121846439991747866853281309909167491763522506329624880248447594214101911613997914969081577455823109901656641853498552971408607037510581386730386532558629173415106454837929530346965796118962571505660045445416648075877000193925320590678159607604836330460745243871877670965598465815875003363455406540738594648037845264794222899470432426256962109569896310825562803758298647817391824974723489898582213770089739769475431870458569343636145634696199238031854725392698101235942287062644456295947587539384973824180758512164665675242330635307666941891527945056722446259387935256610614531309331212067606488964077773248737223103093807844426318944151578633382334648344864644558403583124935009505462044671656602104486452032118869012976633757006233868275571733685148517023526928021111198370671219062093664717966560329537285889387396923742969213430826024332472222186943323249197307698950535264876405522649603967843189993727350882282059259245423633000887534823677674584489965865166558922829288275317835918290327391937544822656227617311764389510142683719452362993556132188288468983821139872572863390510758058129602445097561610432261400003621390437289134331326287076133079478223013281175161155477206042695661721743886314191164034918117190352561691964095462398903036974368012136767418494715143599985400195800875612950457816752854513911198844243190015345688902654196684705111493011400556107943809076531720435466361428872822940762171598304326646684430665546935889656688923623926521194681505237997551197387159732725989167422121187837862386590021235742402065724174127793325352439085534661886140424620780412697378194814879155950390757926580486857640944237546200436745932974588197866274583700507500467775945253288426513854774316208150449912171712051425124565126708866100151885451321776765983262032626513496817746750874103304570296681761358832547577829809109118477658591508581969572003017111180428033597790684911434117727421995065503135223453935871425854876734493386618134625824418376004119427048905604927911799939759759478581939361951740590615911772474325451876956653049640691634055391388501404141973930327977165117746559686381918726764366705151238630190173284792674475278138986742061089431550553802062952784850572897035026669538829148237849994222840264634273986228739934691009928775780689974134517903556602302554691151302961279445686990926734917149585719688100326565875980152310603182215098623093577882907482117179567616480175274432134175408072508661311961161176948858997717055420248142287730193885582396840317497019676667991150978676847399095105696678487066790732350183809372955348564957153025197768430033676847132212099810182057737478838789264666521780093831722921362578712766925540151795538003138745367381723902457714054368591434183774439588888469950028893690669132055705064516623556212675802106501788049035049853928791430867505737408123996743606102431600191508414860687444556447739644023998342827906425609849063914213565310322701631445167662754640719164435132979284914833358883194060401336215721474026493402342383016369642887258699870277672811864423190045267614362738938759455336735040217138626142305158267434005959048895150045648735347410020904345980577911141287829367852774592925556743508895893620755388222163482614902829766071297491952728141504914790485015513826783112670039731972621098645172849904225297688573323453031400329814900941891677840720945463624055103539926026372616472378452249046804688739542385570691702047836489786874492122053838539765031901552267891732263871416069263953477843575416320611398905891372660637133169258190617541617117905026475739598985461421357345209176966878059163234412673082562405182020359509044077771406885933352772702772706727738159406048046239169695293160819623524937999734709322749497533564970100846782532059960127641261686781280173099284187466373430920957087826196431060507751008999724324261155251392254140386648254691987080869835270305744918050810279037897002185063307553768498817928328225984445778777629268625923552810550164834393420301386803575809421316077339967692022861804368728078585456426994138509026287695265418894835029729804382874567706174514625801615302268189140964145551255726628839233229724960432521928897629152055226741418921911934105330863590853824082824115752582504264676360973618592826487763104309101962078776597420604246618854111418579026502459595546433506035615826019254424412634917224112376750936630134456037051051165511966121573719630293030562599870046470191958210127929831907875638751368015287947809786477300332014537029491300993497206786073547757514148706889389656655745432991485050442549298147261744669609566544873440763074716712221716887546991164477845718069453615997450815672371321329972293431202719683277713776171860988340867216345384478075567819121169342126529783615384904949116850526200642411281393249523415921933940727843027296027128970305502863893512235785229362618947310065446467449560215435804311094974832849862179693127412788439130969852015687969748030716680877845767809766792247921328359752514127962666406249417236562019507069396411065942332453636112537186535312459091106492366841022027042181503273652028117297846701641288115466853501742392101303155297993547163327756578593205535549366397549391814338937954645722445816334166771506179583076089823579257595290425817898651052173218299680178032326922105177154565056657983025699413936515802297928792055560445077790629620497618364095927033733158387601970493357380495939136449820702013773198338898789881038087555048920415231970149746306089340170961884687729331475014824163407345257154866741840742249766394674112790131393526982523281283762670552504898900368533058340292428912728022539321231439561548070677790897326272626263955903069065676458226661139756541413724842142012037856447388738952406151449108041096486373287509557089834208887772945648613201401026682298681063858206578092598410014389863243249933922317039728245221231187190975761572282518909204425178736171557945656902416936786916866282246305626738224579207788624471789147255151507766997941187650719658215452870917420245501390180348410402426746307227580573070196740888196633939000773908496734782365084480089673763320526750667289315010543349218824209545096667439794464824288029842434726915337319534365220004895427372529727185155482374313477386158923800258584606939765854447260541958936582155950243935293130608315950299256538297206183711599539590584088281027155139585367919818219814651414731158858326377212733106338579071553604590914699633648341686838545629777584408650639369842315141971280651689140274712428437656399257571157008199459704916426298428256874535781999643317078164944256766630170614938609300700646594663134095060220533942853217367973739079494359467838980547749197570516155849012384183057021705024472434090776371093684703617226747721544190284493464445663735220855974884064865361299228306058467500748058741487966674622496372124152636083485752953065065251205127470475384915175724821808333830552140671377223061484062989373579684624474513231784863407793449174710342479733875202488816990741180869643211122696929346755741037971129330367754140714553399483437252406268486073786190425565111725424304350081270044479858668743628748812706615863859806737879830809851993660449243457288930076427968273521260134906266610190373312223074675931845552685335177293214432725031118542314000256427471820511179913336044759718936237937363883284085012721884117254596099680464125110478284912858219832038100977949424254163115958743450736428326791036877129407099376997028737614623895869741932112589970555577959428414154279670168756995419589853037667785713058353377000148119235976157531717162377193555535456906542936066335026494574985273831443890247697970133133549208792389359448026333150721549918431725353571317545502790992636001384641601256738729023255407735743301267484339580440518289986815824703827677521124513212547335891484086604925046552496889719068713425971240480343096839381438551510875762205116284541819356779948093319283800163763784316433705167496278707031764700746802935627480966388447809889053138896922592178956806671525284651096016965491995781412330141332311933994742559802254631217984621629402982031512661833617710018054242500606084236230022723858310564635209316824949286415838628005024097070975388294778402049252479265264782241999434234824493971662508612108730752926619806082605472309600065347424944085257684138965942700308209922337809675886565493458336878630580284232547232316459745016663780243285482521980240486874760388210429086956076244116944118569733298243364267942906735269526452911048433428525918772226953149174108188397547951508052244120747265539364200145394357717545049145318671146307497272875252711611182280451727753921411972520621726236206380990392918796972974363073639962747170006485950928822446318252628942662018358554297889865442614456633388989543809954787368848946640495607507904866632441144602500539024031664773842183410655596437273513360432605245493816507010798285810796231941099214902247848812562770399361206876032207109092738827299932672610294888933939406174652535337860016608589719837762625448141395315116450551278677349349472121738081106812221426940725463978198506477921084250616861922261351208001176537556453604324982658753722532165438567614848848591694968098909083604617657941712541561939342425713871290896505992438108674088677556368285009189962594907479317798000823501049715153278145351487820709380509525921377116763899452800996807219881135825824501387949186295875940876904488015662670585488880980324753937402218949358281249293327151898287547746015734362576594960509812514660498252993897799939530721543877914110742148881719135505363146827027815387501833780669891844827918923400585815831568042659856999481603402290786550251741585760445886895353432128458505276566892411647593019548849457570488943684768035943226377814390391194209433122316871942975673049784989611705863994141533745531689019441882127738549163783154019671512966420354492956276164987272048847547783740373990436216473724586855766750253377971971407470110661794547165209017540765420592155490137450524116572282726976187446462110535062473534402824826709601775082276738092411069525733626503227961834813852586579815212615863339197579198689867181276725227548401064836286766295960630712901025409251569215926084785917806345862546948696260971775735141763438160445818471588876450633539505710112925434157099314410607856340006266756330077367744734203384767983542999417659635466452705597851912251407119081143381931090991785637264723191312125484597341817181779487507137132607495713755116459834341339263857688060804959658949393636565513601302225311985346564699093587906144247973075929489347329254686860287465587734227937615976767917495753069147456431343822149596155388208841684534211857937089350904316640316890801293654827011353133703431298080813742418291704322652066041655391768120939887524617091957217467793058641570186847546125232158285008026346317010676939583296910290864368878184451319412838609351005054309992474070758886598990763413212057547180559885189349713599372231790845061142057761818608263369225943440532075108276665517858492598920888607504591931308281669264445963439194922475312846195874102495406409268424311594782156281075515676090154795013747560769203963271729887880765993362868275117538622933482017016039541844968689334937190005581246352939255028392278496970084830894124477206771796150921126795631612877188474104322741044871809311633591995582999554606952751333529672062859392754348367810041014334661164522916157775784069695658806351181182066219547431792866315646137283730911396740043880945900698929591876254735135384234080076272733637817895507909748676911189581048090748382177089820968911465965737835791934574477009548308215782137516569002874650584152421124924670727517899354755618909471708627938761087065619326758233127332091006364678222287362510829174006706900803888296509495943895673532537109368485304366378165145444288637168508179314581299321094167649799756291453076433408849609056779610192845175133974346623875727921178274095041788242728872076591354720643954763800457601957753734415000327795039012531465976406260539104281142869301329851285344528235715725002305622643169970326708918743821582387824009262902436943919812321310781284277023779575892481764605928700545870505049929972759074471978997008578530004471392823577370216010239113633131138446994571116189600918143035187000955695216520745498355125501805233766036026279527216507039741601157704127685165241542761102059330272354461770706589047621554383005254700193130006658930495201946706643011312626374453676599796982356273572188211752041357099805217910489354421591692866111151958552471080759939138153984945479246352704755112475259872017604182364983649051205944198996079451101939336540014694374415974292088051228956694742707977594107358702510526658798622492135404885424551952103780261597676264846034829645187356759390984207338455983941767683911243881143001541506750007603480247304739137553166129204035474334154258214404794101356909898979316156980827539420740656128007288060649473134362491178411404770228460828002009513887191863113831606080738810920096065933653431123281861181645960428234567818571131855356353071981088936115983685322482293440899012535666353843727129229151610452814036957837656235060215770444943081646949701836913875513826997933986437743685267052282442975887931456897639530582993579170201950460833845677973309870976253519864414723805948760523352604342428167279521862271418592278495257137130621599015684354945538312102959432851575412813616620328686217389076065534590247376639744463608033780456212791413167697290139499003310916940528661962630158235756283203020724854086051823572698397527154378668268945591227972804961548013062250718800807548712796166127835638707152522680945706144577238242113058061033844408916116905634030848610717144815146575353910645201517435120775644861943193937179886883266182541437983274888538389432789891902209940643219748084205982318111623934654914185291230482937603926953096099433766521342284730382234562708844484293570689644585207394382096320344763481980257184250752998298499716148491580158270087878601700504241742364050234486038581853754501357355795280609568242423926776972840489292859540506161629558841276182842191017460637215051785604755036689073585000007615133616006657539602159437280249330320748962762165248931344357743293128552176881333433092620821256012829853230397292740553365584899620430465266951007633019407316755955897272843017943109678360182732232332351021377782229418214462995996754161094331068831472562851955278679163685961968923157607328225833197008748219935333455994097756437505337581798489994276378063978626652167573825305522884452518072206132381931472354320077868818494128971498600388554800138776008105364082513202515756462354290658535213172677133709487992726772142643149285651353216463708416164153374048843432298836083087227394326138560895936984843698103956841880026699260482756377852947444910313052461617888831575475352566012700787057058909072079690032444584320905417468677029865554178022132510669785753823342836622915837173571942366450096171572740909205482990091711289933331202397664918446280570728723186376076977736803405733977246874076404771381282443285492383529864427407122101863172422725486662114335764723598804633716483320731867496181507356401806506191488866058485174929734646082803019934789803124046335638852278221915280245452956571660739315091056492040102386870668695199086303763892435540938547519523866368610075503156752309705644298104617764058858004165120747537724813240619882516869420094388996653278575529102720249426344896647914285175689668827342790600761378403263033575216553343253260348793981667235586412967010794251167138886405112942603946084936812249748158433167282415374549434649706585213080099647611314713813176513730589055995542934160841523592816963257925555538274015833471576712556796827510905146726439496222936680845745726263335979638556826877219280379751140907284171221692139021977165375266850048917475736463765052423171460520528755403388015054065987099327596308365282103501343853496973938511518256438050379914047065968471347937030215305468685672806704640156338427871359438665102383989199852440436875080209698723533540955227632481274462492973413028638773441048213057257385255000800664243424177210171209680743170098114057417344520941513456138084624539877650044505958068177880414271868655966149580570097695705485837337230904947095077932969567248511865604285382471071413155152786421397856755161894429080693689041291541378859708871724250494796245586632347880894306688979382275575224016209387496065902944567341075763365434208710288740695590927525599854121153791670169856112916782201972058491225338323801942473281518142556261891378936825229781023358830377393549215550307516628343403603966943218517755489273878838660923812465200901208725365117542532494932704693330114452506332774741319947461159050311507709204728661258444463961294879061900393781025136404465625843764886068020855572558072869735117524702952076389192060795271090920059813638396767234081848308600070323270645406963265518373214467759507281963164989247087436422940719460313080745119313679617963265267817986040498862957512852380470518557926376847644624218552865406117304968039246790043376672795263748346452897315633488991379378762447185733977791490265487508351130650899182582858932543008161661309171333296280302050926828134484139850876191067882407321785183184303430605541229404576170617740645727623885145369913034165509341868894073767514411834342421697721019780345273887159574087879028419200781378517753757457133925161775831804867693059793169248353505910390506230311055063327032182008801238539107637770945450577986636099767288602962215243752371793560963637688694045837790706821808814326617571641981582223214810017818446616897797968657582970454504919380874365429556065235346780425847667162617990431437871947969887979541466562898770745702573358542727330850493213935771513935075497009505506891348869595971374422027473697583821001514394750712531097985710261176237809533321981360108724931126475909907813507266769241320983755707132695687238325923667044868226118497177805707793897040059405411141023836108106444608796986560224173879977600548853944929908434399490358909874283335540380057903677840476251072451218545887689573374213131140549052956114894427362796456303569719375855408756086535317163357860183033209512885868206266586414714568342256591654494520952308548723242861013759676656360206703304875909897008259561775325101976217682310790737521651763161740787574910526777975783278994889040641534469710327461655049160025265641905365720498516058968261782053471504448354877966491608151871729296155933464002218232128887193146808275412450925614278815555607384385789168461228117507705472894483630184171792811766141741569856784204372743807426337714929583815695808907061879487954404575443387867103105749032015192710380317184507387785285834082419676387810154935570375701212632158114994733617963983038153549556454254949632912435635048013483314954479235266317250654664407380679854575874511114333456527078550079228475601113376245473736951959056782498685609856170928415733256673003484371046149499291379695608723474372297819115875083223999109599000768939009728879468679248881114711133854711923213734399071150103441684863887649984859997880899695792177122706920622918051557762983042281817568294366049772584307329745510004653631452583416277121523195650751634579331722070441483833741362280062312205357889704198248807333112624716737167511515783258039460763166682394114385246660455648558101972522858989949591349534163310944795842102296458464176369546696177998987864623300454203128156840088981130146027670240598585572458708974622366728941988771107236692221233202800439384378127729413609964911714925895477699536550998482349989608274126158540519200653368552265189963697494480692318585860288591817203307311291457918513639383223438639157688947645944265736482021252451997128564905058604072570842125263509882949503470671504210944091669033845594561167633130482560420623851658620499704705106353695520643006648070972102106510457548592338384547472532589507999017470802451198726140881653594115940152986588077847422137420113914427425988831150741622116835331646111501171587008635625968777235820909370306596265426453177355531345773915235958442810593828120841308370878605387645396570170149741316305854724024330067450192460123187921708022520737519213885376174187852769238504818116771015339065209501518294929778398169665955738231500557940895142688594086593122079166886012965791906366815291501321609344622587112886402932663947135292471172230442500244604920737483903902140889007455863947448613602245877831463537713395995466382023568493543433714629235003071300140468650375078580159655528641964066416432911588406324372756062216244513195082270827638160167101044094954926206282991657999019352009600921526946000245150599915751706321104379716877726884737323679613522348257387568495662207491424375503740395043376083951681554416744691451190180543467559991541723540211926202552841708097782202526125666635417505463468224257600263612566997311781089799633424003245136412527553019322752533471198341261503224265359860953484558362249962014248076303711044037712436505941353485440796978709779590293334791464802128633212738833764269979148922714853074997353925116080934802447912112441397692998316738601654082460873589669900858273907925941378582019561836307998073123462419926259953380617706499228584950814147296467426957614504736124693917121679087130979769780351932110146606088879083689117495761855097053925591765078951211608663317845344786764068199158785034655229724094531381343567304529922329893118599517474734849572343266862615119787924149731943774444339106587571828524177746217109977404333118102634489633205100936192815209779879143196561199580908782453855113792286004573639478471394934699036198591908299496044902152893428992455147677155252825444020224343036537728600516133958608349209048578536517948974609232282767162033889021001830955112177791107784204386943295273847606854466152837164524796287733400231463205382636476068412153330471336249102473477182956759382921993782271005454572777300743082459613058554384909062612043252075330084022505228783358670874634012786975159957100099896996217457180783898077278108503013710366224001908394553834796992321833589023403694841307714975344786474703735441984728766209877293902668062940721016546451769808397315149093717151005231768030148078181236639499612784359356492387177897038395884401122373902141535056096567760065752060800168054268596724485131476444251377357178600932354337385384029472634550625874105119883551417902612112736496508547336753167741338453373300482445535055565005142773769555652536669094883804127159326857596829803930523635130080257361394486337444878225027899640752102293204880695488523982909726380824603398211113330132185210760039952307568805022913987684371354170443093536944938193158414851402566134964893218148964800264770792318972014788043451711814786146850068138200189615137027284965983807128311953565514898956520888467997637455050821882112634032928585120408660026002998467637101726405102636775741598387809338117367102046788191292790162829911475073153867390679812746950642487791214543687803618940966302981787296875921832027451267040372947616353594262835448038049423540409551840052435922524553212178278295387556572968946538708841437756630845947832302189450735054511273194876154881770531973869349229748609220675451855773681656413464676333332832954989574000190033589416452899258784203963337228256303392612281852732023756763606045424867518035632275387719369437339286345346488526351541225380132076123326325785728908242284041028945843242271143623599554061342013471096971219407131266245017898579995512917716360916011736322655431555132668346362604336274723935141125131868647615904578973313676787939971233207146934782932923654368305266149327519507935777799114050806556941015891887376322584993663093164896586757003513293446977524696607283990626593572518673354794436571505370063953744723897324796462460261106494259415655510656234896537689783464130954657092795315838443655838572686438369609187205080402916120736844568525051167527373838355985945505895403973632648689040986511137599650822070517429615497435035300404678503105133083752168403773145852860856896362467548882286483934942143693494585238429285194543688011013872986880636661994516257084573161505915949665468212129841629982603853793875739392385958340953123290965771814091376331152426804123280443456483694717608867651344384708572415321136660482288077916623215346834844413308249517447801612976209405684903112788504131234029116698045173687503921815614661900530194575002715609336233126087846901939240916801289910387062878068993410633953397327430530073268089708750685296067434129156450398730955011127682469108603489999095211902714053419862889120295521674068529835429016353563438877006107415231752648203819434744836203890161527093245789838296375306576502265709630447762821708102403046306115220672971705670966133485287459907358807394775856231872951499058388152586770326767983665695523100667638320889668667620792972376123494153412650014592236648898193845978510127907690063565942197379025889071224022353403180078508899473910988881611201563930702201061818282654924499613207960357391356067916218817409730931381212236289861854211238535675959677165655084619984439848490327065768732951616064709741244878235093517417515374268558341379327031249032818084743619580502745780081947772812531723637354585942641314119848150052292649569581020923997352642570602561368445294734819774063526602586406081555399244728974251300705104906699193431205834629580757083005052295364592102972561029384926159562500944483902263042912323746023411115657193070164757163096093296638690473217642783655357191991559377515925922297190506997589311723932414212745271455067405902389764763512649548154690370570358299335382994747103468456190727177446853806874315627451866659364329270207676538957518963587968805006991892884702885096694643467584502497566831310917421671390565014200078314798896577043243187628216384157659705949374101353721036998780943432565558035529723053381368995179960491884445423540635713188984730805476733094748118340183243198725540512972321805347627731028030385578903904052015356840028608583962740373549432230903679010671823471816714076306803428717016618998766181000898088720670309272879279815114198923443107535887152989144184038145959726508875913106872030652019102479687459862358584905077342058273917549052514104346424889960528913052193721457734969084325250904866528260351267020158277691333112268460541215853730278820774862893107166953738100993854616110043309377054333482158060876505038058824861243620088121103436250299806787858011523399709136263659805498473026318072454140367374087252341079077979826123976959410787935779508030210412999445485896497514506455450522854094410926419495049288434066039409929848411144776871338115551324813447232859320816712027245021125364000184208745222804022125665180769650548309507239931356105159185760782554182955720972301042921272060403783248890475511346069046613452003983055749208694194048814535017569955035182887705312587991772247976518457290501912804659636906897521133114207385239785346684838180497863693362419557781840427150388166754512907775242241435963383324394801066213242106685376403118971135466975368028716425299824755296197302901817470596795693675031419679720784228614678794244617522117972179690710798571703790389189235244709257468750319815850729873473135950799505768504705303754030203399503911784748939231708411417957837630575717236983572387793901652924712429184001617179640348574080128386436507333480546556344122700090901023575953920324904232630271184757672223954468981063789925678781489636247179185349143547831444703993560693740217364202724642482511730242377433921142803735346113404790179864041147203685113199305302288326767932774306097841594101043712507514182623986904980015917195825175893330018702842868209295103691831947895883573018833400091075512969533748326748354934064728439368263600349361629488119772025579028278153446947890397722427600891817476369297500564619750525628760438972667040872351596768000115124571798177658549233869205401942469304376339037362237978609725380147949879009520338456460681390002203939755304033527935634120873232723755378329848217121578892607839285019175656468236770146089016198867579047950669694396880760181710168472901979601694948597043704523750218832722868738008140727383919124235467267152691548127304494310053760076584330040342821075350699128249451361508038125771085843004036272349320147173246973724631977880712398860132821334312924395389414072862079824959433798921079771696196894294811282183441989219941746540513207979749689330764422241795225051741206220270729631317356942549018347565410864567321348994965474854567674097102383518432402911149678123016915753358234297838489293444503669780161585818768906545910274773493757368369183990317085084278051318013762007930201894386847814845616163249457236818395203303302331561666281280595321700701668030860312247937605934615340398868318249489628047871668256861359880600342164259712728710342170005619452947393634475132813191235344485645241804334364228822995595083553799629789228866407964638610404639396579980943930176531392065769937720462933205967606618583942635160054389021644121476217802888330449934427950701477785690246068926573323303551146563954718608117815041280292358057049379208960709719765865659426070228867328094073806070653034285698010897575349992458613760176057034714590165048641882856686473445865627542145315498995709396969061439910961978859500428878324496739328525950661261179288723685109921560755281409290500997895924358210914348239983414032459348484274945794416403102669365296324368249050177405876548668997243696330390690741193399274614084320695513126353867111744979164555142947955397208921041477805801527255776138980925203320287293945852829723523602814646746750033754461764275765590334476981928248908372746389820508712076545810749866327481793874774242811675300017592484466193392268848248109490354361950537379769178534957558251705607353954681512004191014068855749242224147066976194605939180618142566453066347481930588829392374465001907939607468032927961908909273399934246743924874335455116462740202802203671188340532918950541292674778695912165347031024474067966096570066263079875566839588597761369030792497645083420884246837389497682599404635255982411473540346421969202666653189759536913094131596336166336560816293344341834482829498901916412169123095162869679980103150051599054590900930082803871952120046888174842973335144745151289692589376183959138227105237820227449018144660022103570203458627456786483036029145967245691707314764286908151043805892521663315802767427824108484408677581534428540087579120041064603355490824113732306778836074473895899564855818178377816555693907634503136197652690318322969736117624884109463829080185056069619840321541880149751345799335845528395692110541388189212273772512323924727056734346383269876390553141579675085487749072004683390991471761399633833345001903639903025485512642481543308920890806246139268183024201872397965693712536155785476298027954799895502133690253542355514708987178500761606508770699338660925957593091639128714225737966965664254834703899905240846309156592932108437921426935087670797811218191117064772192250320386965983481189367887609927022275491142783870753568880055387471913492267199587985676638306406437902676273700671164651141405167772814798956578804089175623322199229006398245308270121656322186801228024653841159466811196166760164923688288334231167337879258843469439157403750828196804798045254792605856871128490263542392774453389883997499180746759914704013625553051155019230131304637168410524268505065757517633959330886488193650277729969427233667463726940839046179870856721643608482610896245199991728987148746805733166667119599067774382779183720823761315804786098467699001505975541102119041744674005089264547034213831736719005616538086691421562150620375363276195250967493167915021073976755122618598518868290194228162963066171741697706890389409640225948863985711585833622685263971713994027715145792399679203901199051274244316079996568812350987607248409836563709103135368146289873547256794196001401412605053520800965414713640757642025939459741048437002836842412589958842303876906080169727087719730591520032842535408750967821540458621913999938236291494667804171366135391518719993109494277406826720542396800225134217831154510363060525067201783638553186056311539277918025188159566705830086652681806584718907019015345460560668168279329462171912395509444007365507011910030514931620595030119237142493795080010831538387853743346244951032054667866446897148387458530140372977594998827327556580581339969088774840449999520120059351177056191796575455508346722609317825634021102337814073572145249464764685952451144642592340012162963973741537008792200368049712241849755242125193807295878649855356365231697959855566239527016651510897465170556155525396153613286076151332985973797973467882216049257963192730960125626073978836581937579018392687064421997363243318161379551195234953678770861958661355023218032528413748999957239462480488202925891739346751154134582350601976309848140637313343010390124295492370715080375558766843186829790186693996268499579134808934567733017689915821576041352678302423323817805465940436179373092970987694776570872759971293521646004822832744310260203996239036559696171231923474288283761120646783414662174758665382632122837758552169527624664785551725351703024114020497688361532354073678887471499642175151868071545987473567279477961153572606836569965035890226868449213447659646526266862895723862974565966276064604015501552122797091106242590643272596260131271926199717715701171485224043714747126596474066940638989103327350067808536422866863087946741232450395002392104972538860407929127733135840289013754655280513255153749902532761915516968469630569601333882360689382408121690850084626207072709178450373667549046717023343849060607619387138265429210095876062608484416913627455451447596960125882762180851986363753980659776970408472976203502663504452342370699915786790775232659541763759186299631904584041110521479039338047324195917834558065102720762654748560248150944933281995848795461512138271054093385673063079786288119535621808020326138589872671711252201419658868699446286289561907971705510653432558913240615303328140833580609396394899738343071997904909181015951604615913574093939590835400846811250202636163955002467587874410783973377797650086805747162475223549056019009566137613395546721910495945962755680739167738627012996170437938742515755945923388249316793568774623475615991259209320334278332478635402838916445255340779539708319958586529665802516236568945059424057520146748551653621485355567530369277849147649657856625071288245738851759212759675433249159420819441876460279484251869165423990936525823868504626907788903218978767530759658103227561574240904168050726545521717253362458485188233372044436885325130321787765814211629545919227645848380268348320035290373942565662369999423953333417162573487144284952846307212050534381796770051896803332900347915438637005041660473949094186430496270581439368188885854813304685054271920173508304863387133808632606625530861212253873603638013561164417140920986020176972962365916914767498485831121370411135269640194483157242302961868920996258122519368708069398816512611319864369619207893985525013602683634408474545393974165222753014332410891287320072099047685306150298250783420904739399452689224269193005227371713670042879565677016966235300666094264848791882718460188827177732707011841004075268953503856532493235538444635610100496676048927803395698626841985918660496492106170575414324914043435364566131013431150940024468756978733162740807034375750426848058937899081469802435051085175591936661222039830666620236652481983184361037612273687757217317983756962116492191788851428251468149691059711115669649102731013285894343553458705848204300000814096806202233482191787997522488601356871449698517754554315293437789994351376708311524769840949645439840988295260360243789772400862670209796471163309364913661382315834974171427400882121012252284222462866839855495970816233485027478481761394523250416643072892668442827323545839108582515387786078245636260702663926276034702632961770329904203610733324143248522627837051307702125462603173673022199931687766541504943203818982574709320779459542326263543111548962178995576953331419410975588846812262498015395412652251759080734746141847678658214827248415629660372416441384545349975489810350231522972562464709663104705893209136412281922521948861503088904954870568471830440193958816130896833135455832997285497350604980031623938474831464486223658157430228241287737091126759295717662279282413818705504551859744611735910431072447181098902170627149684159904952917080773194433699980469757247591621636459189461239707360355627488765283905499153081985065504024504989209240787961751710805001999502119508243532676363276870763807105901962237928311861221967374963787525960998133262413897666236872664136177213196271976324748658808666695633470688874183075093509549903900497738543423590471629820276358949402336998576165992328169147891571428708328813570322440305007838388029270953679899453922161747675507737738080595107484328232235506482877646636323471166769048147485068557931964638349982431381346850916037248581050482280021044004350733425020452193469161414666659338560962712017887342792465321315822315451508233452198050705370390479950861668861255643949044630744478392741379878627590443108200207256039194432180153570421639892788286777806272259698310713262568532131121842102744549110183495138640839785735406854090573118126184072601216084176886144072306727856939357579258664546111142084444613492131612987527949832927928634601568560429574788900300845107371819911152564656945025285448512827151760248351080227074754441169323436097969839832879269769511126926564185205960951930794084764788031256727176409496423922982396650312820481292063968878081932629006003399697156329335880590711677958519861432417396536218890205033577700393623400552633172301411723258559307162561866524927231945363387403789392799916324995437853787648653474517520900524285431687943812613915908064615715609048257240145374951062028253005799345348592736596719347945180249250148005803950966924992628328763989743177363316663959339987956814272403898812462632511092448430107744395815171785268993074767451213070986567152617391969891770190408882088492677553239051367668221136739034432129142348389827656651754452470045391368571726569064037335957163055130836571081927743313117942021539151701612027353987677345170896425300632389608601982251164569363441841795831965579868538194247861175752354509029688187886757043391592417636235087123183764716741708351842976111734767994481818663902061763547318162698319717780143354174597154077495148585602417766639687035626132727437713792075936538606308235124689497545344989339438383455559560386910561097114239466913794110782609022125975496823446549512937368460079443692080746680686444867335100185450609538632096894145395799897124954431509607683699580497315955577610448855867489976626382048230487406376133008115113747515547613854126745629447095301785913202031307258915017569801307295797342808935270492862226733455717703329581148980974406657468335325418217154162632038325952092776208981852573170474146832669419680349112249206957727239221580274828158920076953730300475705026919927154889684379564390065752971884955195958262432493874499160233576184385755658721303632849105975823824968003302539131001352320345191842260867953743674376496583238367589659493676244964605280032960940717846492077942797385917960420319602749030235657466969568236936374708065260187008217553744993156143416486540967331034623891818539774991330636553039390210749199921178154629618012921681217117155536291537351709754820795491722828566672405460673315338182470034361481088862756053768363292907015144202576388723077065815407717326602110515213372795801620445015005655979679719685404716298645897250654203875197464562889147378506806732503219027299463749582801538465824295330328691394324220525519062972055067818483734294528720579971307242354522257799640358121289062975557260838557530398158110133927401497649740121182234660884268936056691091872178565836490383999238575022073931653779328830969855865727324346306833513958226350958674890905362561653484393547713541537569462528429712401231103184432676040365169962952777040341676917993555750475607016001694493380252225409274996351200110081837546851713434308786817311059174724840447026242184469441010325694177975927551815446548691224281143909775224280723599439946555018528533022382418705209015738679499663248363396696786481741896629180177916217171467168782099738227031630578361626532925004831500406179534415627241598393862716351659301642653048201796814836590582745612020902737088651459415519313226523154853664208726517592224232475874845595344880878806597213947172070884961617181504551566224818457317078928776122120690292066697650195722270725875299709624101010318053462301368263484734562792323532579120779299745281192941232396888304376709944021281426859975597640297983748422253567055930482720819166456387608324158855743385553572495196378675681787314241976896208319120918688721877278321374042138273841094183893998198378085374747619211710032098505789730284754415238120359874772814438356458656856955009539838888732057037760350935884253484686603820709927352424380858612748439951124089337398880889060163658169695075226389683342757201230945583077480694580710013253573405796151938068019352658580587118436388068355066660147337887327433109096681321111593591356871854252671990157068272096007957111159571734517222534876116143090396933211626752788745011660306701653130491617796931451544233597638256682830440191009959329388086381005039948056705955324029822500767250139891967296810308280794660033039527609189629695710860116720824577047305459586901343117131221439347573156391686478531560402022212524424576515804363222015403767420127134600780580887368677397628446898203358063117748589590924309179812134870506279211807662846425062507546167344476818196378649781394822036333630882884250236762318591470266736064703796643563192847813983912980618837154957894485299201251197716161692922813582799034424556810214603539793482155510984181381718955194214919509032712568687601975688222300684901210461737405598691181114879343633273177034386523322497061341162025561195514440837989222473393205230486370323685972362951382373740048697814879235164045053086733777214185095175837301539881134456699454863088324627588012687686273134708657319185699519850791799309485787564072554955845093936461757413611321447267430362957223690570783197478578661090918019951852063607427092856730481428657176122910577218062259167167585017202107596270048961684325545951253067660408780848063667950966994970710578221365237707626784616845220446632405967613753401600841867392889670117127935854797997129925692620583151672053783502923946698826807974971928558902225812993459683897265268612487712841993468887165836175509108466387807631736828344402317794285923589296229140195159700576058556641114299565006126426053772196039999745854478352468536031929561279283149049659477522173931638721044643999276839168748360208378326564279363420429584015338111868266979257035387237485847937028535668113694157048459596571783618528698275393421046798898860938073036696099596282568899810837410234801602647028341336488758631195102220888403219736782014110362050355371070808503722386879774679787028924361700581897656078174342923773749687101960442934355434852903230350706303254477424412408236708733244657231385124259894266557404554941259034255227987178144653796979422235634290546790932967336130878324637761580134542820168489038317348799701315865250045786316443809638607983804323835750248687231198124398272962604214444082155921303949358837677061744858047737647797364133593399991808438061326047815873128143375274617682755237945531864238043991854250866701281597192848450573358939368660315787698810187818511307807453843450307524949189570828826922916407064757834688398898438050576766409982759213875963117053339812924050425982676620061445530159360725921947386393007991700393327414338950055681939992620919959372824892798592475234051402308339573297612924611653182830164528479769510050536192523257898907864996522624360263351000790265296221304406385070598789277045641218259501815884020782040278778880194141662078803057241318262942430655887660224039595408843814023840915914916763052183447194696427762373380926874095888977611362653064129294721866304577459016161465652666702235167940941487769461949466440962764021425000001339890370977043168103486846545473547896810406075466197387723330234781055943807875556256197416536481998967766550491945279356970476890912497016180055231835364102305139866241129448003418785291516271566551006486044402878126923663712568982967255084115601254656814658177323780284669188023765069601177884511182792360796527188613434364737748094879932645676880943084790721899156870685443626714564194882287656137128475792633114162095368636711463953287889577468111932260557537232391304908403451597845994462729451534169613351765743039286013955593260494795296782429882595815294675106331860000252011188313258417582316291526660863352884306323903007577143260743126008904517626709495288069691950279205504482216853102057943171095100488153270095401290923164219835833622532719416883362428200641964300417784306846413593652814767261187443856370389302090724000420906540650425417178243825586076604734664623752644805931654212424873465224581456086929884854191777878704210146599568422340690446683287789690289927941753743034520157182798376879995535446903016525493156469773032238586823722396626424649610795322744924336314244932008408002316169454941570943135459135797026836271118107440369729236390059822806598433097580369865040777818594374661759050616263283204612925278672672671651766537379176923980134756523632283411884977147007491235720454942062420706629157628781673021182239944202411298904042790126106832227064477621309444748865458440762817846311318310653518310715008558689120796694641421967666207664165278668739949548879052879875739586263316713909794831395833450671368046389210701645953988010789849918942322211728050610123921187169328278734374618333797994065223584261575929359041756534440200419073444486109094871320235418152220519963083127582698291508207195994314844141084765115739428296998647328972797211842682350183430990812766117161368719243569466419714362241719180261460949570220778703717653423865251454688464026858650907972202265973062566184404158041954987340896915629592952715598776999588119757006199899405263354680679874207596586169656442824511927857193828316839573031211865102748119161883814600242855948333974701472604366138112627698912645936739454441849061913649904641879612140781301858556092020574361252054199910931400837567308237439510576309632218319910634138559568570176974386688952714906969090684812062546169706616861950317793553527183661760979301451931999090652600219569312868175930336758105167259328249997319119830121163989588178690696980186454493738136828319759199773650969985662403780216070778582626893491375065869813399904746285663555005238504127869237485976910615371283532043076612924299354921354943224803147412638280726893791902525781098826737877573366493015987919745198527288799321638368014281346525380666898667287938978387002189448810651330562253181277057435707616807400665491079998098408950140896913324506115527624366173649605822957688178714386803852686018435393386532409568476609699696509224207271724631354496642586049866434442116625379138353335844077317887885417468085638198319005327295366669599140169662470870678705610002126864497641346050262195633345568347947772974659509258427839497891306951735921562417145756460243402391284306660128632281509700494913415669192354741744316080841051888156682438792350412628799574385309890365468834805320175752088830505912842507828093325350755255173819494594658621298688120332895543314717382005078353287681795710177825101366435279619861531993357672912390571051345325997859401971262530143350190195801658337917769572554956450998504990912810062932550990597343856417998824598946921352360382681100943512970224371857759328354027925149921154702991468774141606701372161726521877241093072100111274071641898398567527378605907981134597339009720244672706521536012306167875749745554597049852637263981304282473486788162272890654435464406110983703327366477205646756030914017280656565022045846357237407142232900914596223910719215432094739200129904644523097603129310618645644310439872062366376545763821314320380157971275722088891778885368706254973626605468085751045279880723477284960443835823326568305380613654627998107106052794316076766447213084908113217985104637949221840820511392377084518395125139153512993700629879323740917537968001739232998390268331241630161028311778310632267834211516418899655748764786230798701647519303591732441195839791460543664188159494006370990902632807482000113703409384311809397621657095570141665558521891681455667086235492483708875758869528737687663462799673554522949716922360082274672756970914935680158033203211015666031098671294198487500984179973475654646133837109693906970773767886811377787636037452458224331098744685568279854551362891809853898721550079069893951678217299189068699534862922441518201994583795463936742982900828773522039699915892389189031432097783496310932971137127630329761956171338307029837425597582317502750282709007912253604145239024305432263660837251025967088024351867246132380674487985331238788151084076774810252781292162883071963196238067514758940144912972953537296989389684832715879878558746252614454823486599167449851624859187512635385832341677631764298025594835035525101916348054506670452419264100330117696456579005437538101469631381229955218068041468392215514657078321948748834676103000538964864594804752681822192836782826106780160385992684410171448311602381803953205736625894523918849900161538318781366794499879981237027050078600057357851056505510707684581809612662175650253051944579766855560162780908394176291197130132796285035777056095942249871055881612994876088589467473784710912978055847627629650393124014098048002589326992901288579833178713918637508518612639267751045701122112938533876895359586066389506988211673877922254210692960299661035020182703620789713355410360606044435351130095851959126650018081372542682265578391746550718710311985029454589966032991173515979666064612177764325063793507032884805510916199140659776803807950030840324143136421318436342088477254662234400081490186176762681580709837784146909861323676249340339759800104931642672700090849011427774126174281204240629429118134826872253052491516033584983763343712502206442723218302884670930511696510771663217498907119323056956441767299792961392513643982324855018072000390312849312009571416310830447283921391677772248103099002238192494508007720367158199122608299748786811649118795400094696985871302958142463099131228109815066033399601113995045301775215158308723365645544815851931627077734959772888372885729212064376565384985685201862543699652439164930225117150173638511506946216542472377707123822389468620162204343983697312820464504502009351068897533831319897554435052236120504668770680968585982693784398788902667937450446117873010121470383820155434552849609539353656765861049438756990796853006244124371013955284231324514382725427485220867850344652610487656951762502726886518997224101073826015614800654070299231833132083657050156295937248121256260168934959728527077759445843645543279607264855031533492177248788350582590753033485242807304318650635469959653144908059625234884237180562365460649580395656250233793275168831307639110360076033238712503208867202688838047697453894643521181749931109082414057434656459883818644504508244180015672781869763006397559383491060495260879295134471233699135900196816375377058959266942654587435046371165335240483749057636093366999678221207166932019732650589576368271549870947509848565275690039934144064284148966007197967669572183507376523253780532933522143580623736853556589852699824123086398808874349534161494882102128894132850918336503465889945582329843755826200557844127506423395901970596621144989040296784352953252214800382289245177178486704785451136829773622335414721937991646277561375402464257888754076726033337656839994710709981015749461940204409070356738918392930088354163015642401333441519812247958284856702002864405243132030400877107287211887110266200288484304057860579822627301608938471360405560773083430038233319094983433220729611783582139694055002996294834326173242860099273517096339183328189475064401319028290810426456140623049720417853047384939885361482029464118591278494298218345565435254436412137167782053960627694436244502588800832315533150568591644887369306334188425609549100950503498444716273112827315718697829379568219059009012468155060834719629071968418772661799828847026276669069338986609948851752581246550950647375348455259879373879893673140888563264823107012740150462631252205905053852496609512606605592418646479551428999035154916941477342790754783318283165842567091379013538102472289317384443862776879400232723246339007195973718547617489999139344583336074000363419005274349533300962724228313184745366995875985376995313047436407398756811136086678528026763315568066063078797719817102277637908815719830963460210183984598303004884741006302428170219063414382520275780148095852918721964802739750751566657527830373988922674587133568440968524923117678032007978550611163664865946802087430277250699403012752563537926162582045138202382059036767347139396195159338180967844540927448058170174818136799871017630382081518043960332565459612046469302553071922088812185692649377902585945442605283042164827319200872264880868109923996361309583147477040193448330792431342072274374239410812727239093835822669877996379488235652551233857554416814633663788770234282099095780370926449367641462879565569029755679969674700822312789008684189340972984239889487601218108382007980230693875732812240033060473784469119165688531028210464464576614888804725771965824544498051228435752506830588335263708465471920120555665951903461123391092499656917801279615152216299426423385267691023621220889013821981932926132680132419194093499809791237715430221249226343261039083449254532917140962285689913792662237793087818663293547050186852878502936446452671375778834588749688086647515068516049923017738331547019979607545870964904001750648947483545163174301711870276771318437439926181042366984693284172072851082339682147877420020468685599517657583449834653587336313752201319354056966395147706766142805515348516168681911335320594264269670981711735549045572942738866217602476337355474382714402655644705860580371655017051101618325920708970485819186745990188099361276141256806074669906818699091239431801024642439563057782696074594901226330984358562804347895997419216212275868429004723839525645096321820049301004409887475159735307951246878545376130216683570516535604938514823115612457985254598142811878917305607720141743811352471399648414289318995949618585080855942562859214780986335822007459795165338021068206117642940634503123081177839778719179720803987724464230374000179552390009561188676414870931179735534747433988890310599853247740204981345739812385780754465103435061381508223275264389546209254477212611530761847875026817298733199569283933889014849025717327727285156205332260317650762460254930354717021807114962501545398423677210886731917199039065198948297288453052387943076236611120622944002119899756976809769211222126173021754692265997118829876420836776084116847290167662613121865712575963736884803648187765014299051120034650695943089449715908959968420513384883640882459837434559711125393651638430419567213240291322873572464250562376710971620484842856208942743165008704599800580166386912967291460991865008211981928063682487044705435816755181536718141642304691907381163270668554868920216025919732537825041532723310947920256884345409000713093566277916519247359808592479525047123014780706428115326139648505465253409242007165778229404184876434428917306524739427392642699820701765926015796956066992375362199010585987422975802496036898410484830774740874343788557069847696750663034041609452767215732618338917601347489492554153306694689853693047575624173269246804733538545111388283223937489336337331874255703016242371400715081195815846999915108457670418207236692332865314735430769032536534072522579502176313354955418538768605246730746477280615510639027337697416578935034315962424307011211225194781803915939873172240303448069996838040189242283317382457941351881835756160634772417779057083195979711681102455827665767976301589140798746221332758210122808372106880432714138520681755492418687019386029351133166383978791215071483110367201362144560165731041909005109798481467554698583204091095319494396341712151861831847683027698933413890435954482568363893670016639986287630879410366154564686806897556692436590079871124816861670108137258252817488823019232990346909321535567715074650716180557961960988359804943614139103679883334495457952405608890198463397408903284965551933492696625664863531408083280167118246804239890046633962440293189701238318525343152167971338763642886713542771450346959962145499661497386952724344488535914249842149236135696865751856310434452019895510304193866748583056355887157383067367915653094929129530974119161392989895478246315223348380987492550315408054115978541719427698657776360126967950216833216636132722806527951414025786794862325504567362158843663616254481852358394123770808773168204687375177541887662886709354286817291146888319209667613693200763260138474800131369483910654173369498952140731139077352797759923859452219631399488403529645195664831058197224405415425755366904618229821639073603922591159632379098063548539455517732580973118672526509339023935175998206612028775059468501163272990985030576787974947001685860555658794831412642020142135844508844450643235531509393638565603014189539320854406805038465544647628351157445995127031085949184693195521180109104057675175862703409547611856544424864113264780342550972920278686637790374741652292137476510773858946960684712434614217340051278666444381667945858024394213932047031250739937776932269132291495643064196480054523750418136577737619391364655075491021103903652664525320130624198336033931535994303340917608438669174187326206869831724926247351900122684772127550342638295577294328828825906468811762310063269053013644602831507943928582371588487921196763232824825831273645877718682405761834624301313095588207557703830965953667986621345039384289607461119086361945341177513361347984565007269384947003609175871049432132947484676761060570618309433502393846361568663707717466298804708855286900608821126216506905457849634533571336642830547293223662880828049684896235908776056645348873490388409102362759957008048005627422460900394508913277436425754712866999097050951323567163482700431053413634010721254565943141189136512016793105466338160024835217281661737677430415389628596693588281236440931843997365936120414706714091859619576564906928915356233770053685666050142759517186561243918454356425358401849938398139984576371441621461475815584598052707912318990498206981249539526334472791704253497492837484956315606044442585710307125132777617882084982883899656712527280961996356973599673377760426033608901169072192780139771075308844331127588502062364361235546586993577018660152307309391338951502317886787915483107263827463078945996541916539299784796825168942862209437931237879658371906520316373573641331229537206725519171964452703232082633771161034321774603934922236021592587364770193311863668295209677831840723427852961785623763091984487108299558835974367859585791080248389598711494687106112696452493301878281257563079184477989156935463905489682394721603584256511891879666893125756932315967213301893242284602619942673378140142873213460816684409668818323017020982235264797654977862479121714728183043382356856826385635437216973307567391241612904146950338509552655874690685688032907741570718460894562972032544624768208764450000742113842512270317515385199785745116661761058559010837101395310362096547631405187177941752771875538224922310369681009996630949527163347439911495076455904265052136170442622300548007728577634001952216693288252663435465346023634863073180454298070766304977255136839646794276919019885478923673807571552525861226902332166296345020045207490169936367101136216494496520205154487068160265112964524627313356410385855429631410303675278415983070183512558402346235037343489848715590751008704875762789889326338705001246825456234349019350907168097363082552356837266841989973167209069305692992663814056844170151773381961025936200891257070275638844951991696853444144368842377617807584575601832651675025509565799920755843708056823608489841388624340711578600376600122550410648558989568054101663644477312188840324253120489323888313852612440493504982982032290212160817881687885469712738458694248685197243210246625720224318577920456308853623575804263721024294665894591667380707907241448749339689211508720911312012129220391010644436803314504141450318549983205621514074494719057149633657966570106750865700968525140602452707307289311613847546693603646168619640560562271522889279842879014219274949741917715282163595699031402344536753675963360837327597211097960341288429514119195631487590764775763059317489773664078630748109700322873881751628095606345203125163834788239840906669246194563307929260107630953608365176960401426086442330095000513376569545516438606269694859081603648757961856256378748383906389953257361942035395739703891460401265973509846845537062425757533100149278511377233837183865756858280875702678855941965102447270091819332135202805048217614703897089661391050016576961569941551779189361509062916621779970412782145454686888948520740330426258770006236966325888414246433450999913580771027903657285017517363963095829232059269484762859594897724818667107356836434064562806413856960492980361151576928538363143250699409274693088575128329934078157714064180632320330265155987020673361969563985851418442159074146489634618654151230721469623846773395443965533589851900980478048098941551121667105967378493542069791832771371053389255428733688880583005689654258487332921498585927025505699932099881018518549119799127843667679623551331098063196344153946435991066592788009937162960020644859978277814806053572858981131267694117900678214468699627152010704971817177466881924721474639007942523832317580372157856091972986848911694890733314715795735485614624133188410830012963299284402374218190735682915548807454925348590839295379248711042882019160413929389648040550646966672453720795320957245927481003562472668617845269727387893788389825045475774236992677493279343997860843433118781663784870927098528756154730597393540295297007960821394382140335935915866280540147698892762902857228855386872964117690118557323901918940761761001354517233429500358734156211289486765604491770640158966098718108764392015983511339269050040222485608347092783576066928041201763011855475922043402720862613078378857381540376086171045566946992689832567409896522106762919396744158970514992846576707053573671538543670170834807452542533505915439908043350965430966526704579678151708500094006260120868289782155149248873136367911847144250786675515966917345842029588051480176350330400884841233729557492618909458520830141574270103164815802239924466706015393235424033510044514296140113676413996168695961261196929596178544136534891061670464195502670944490514742078824357617413160122580442395987004049841789175573300688776414128035636089945361941992460110643978099940469257885175668418843005151224226867377892629975322708479308753004827679146094009957743350563759393190843475589014559085356215881813135964261137467859532712362604203642770290909453148398771420549225264919724006325921100902158403716309352175934451555047440991072100762762590088727776883551045329964350044678744403043150538675674890055164186768838456750607622436664279623019916207452079224007519835252195282109273426078552516505707047379473188485359888913181554215464379509029959128160714820049256033330652122440784573916266719815928662407814471333562699540800339311244500878889594148238132896369432611561768098011106720689449397602087694968792372260279748450657108290701974068198067060909891822894232530277440921320748897702967807847749869934210085394564275944929828682776154346701207169331607563546382576262868314441120470381376204733373905358859556306222648019113119750300956085235980532410020584919587830734232635920498318064807241018207497797643251399918702296283057653345662332333169698385766595960276693808695431556769370497526592763319988060839870805948140000786389492447714041903759630713534667745714693188981447702248750482130035180480970147989156282281051438323807314227304732749981923868066152197889470358750724695876397651218752988163379334270627963677109417792015539288684234179770194756539392692077993775588308100030812687351766052304918144311305528407428625546037277990820867974417151989101492321495721952005133757000982600361532399964082830232691681534351455941420788165643353007682905976051903421501674980470562355755254381273289096306187393999788552500383194817514746778296956321046071141917615856930087920876228713296727327058483358426323165497751575033184076166467635915797863143347258902285499547456024633810277941506131727677611009769312250597992205408233910894539288884132109980589692017280517811871828505850888017474641821266026397066048769807914820011378048714473710575499448618750512775226753446509605289212114521313448227680407339862020707881003997004648219215483375665817642178853063525078775941181729457099809820383035655688203079499900800762906877754511592063700561290674834979115646235240066570475455834795373012629418572788034517555509153362306404336695206732503821846319064049329145179186095678229345724394031327968289048525158397225395664268146779471945824641992879097298094354316577377790675759880510508858172877763053522455574832662194368394734039440383851073394541470294742575667719174582845787160778542961142189779818765238072629839176896137238265572263035280232783683168218744843994596935788309636656077032233559067467970084852572817909669450592337776501133649491333171382227445818616514876922742652503656458782464064980475825765693501005730695682394909018186370408330782611560268821438232467278905797202532973911901566810544961915637964394699930458143296469869526878017051839227320057355119426012003149874620391131212080992306150607140321996282212477318120984877520845238989848348591312473826485825519732763000730108319421147312124866311668349298452611504632563911922662952837623295955393983181366236899142538169245677702611315361325585156984283214164122401958485472169628793128753931730037102914177552534771103857735321599886389267640638052195073721224097225257855908393430366360139489338453764509488678470109460532026383000004490809243731876744176343529164520127680418214239995210282981482466286285912676910681354729281636926855299357676122445836240081313994799564134581541760851014349953253232773508494833136494825088226819509840680837332066112499489775797495289907897502529163432312234954738129601869243123550803477789336405434984271344704512491029478958318961282784272769398354344588395306727983996234097975779612670869516716138428501166310422600624981416050516102268253988771887762539354604230679609576399597327875266205509331474416180330728030981609088496284083222514822822813016816924330876150807025422539079805838930727949421051124181067936189574897530944200812168080992724584718352738028528172346271173926740818486565329811013521775743788030854694546381085415611276514980470386591309959609594406354892344250832451351928219558190238425960365313256579318657068401745264386442505389336830106050287248123590879997588386067998983424230142359621337554093395302888042338345338529342357796051472235046185889951288080286674883368966596163095688405793896519641472684558241487516220527004323567087376262648660382706662943661130382563229903065235332853925348342258471157947530270817990932319983585664114711676614916726938750054941887390345134057274763053551855473213703193300590314620127891020626373571789806493459055361597408811282330595463521410863940420304660008490933454565038632814006888234534706238526455928647404112026858633540917641317406358413981629958258783589157430444592166862412551069584574636307662773363154578032054811723722971705431479547002344191306655926286799147956567292595594580758866694987830952651408776495792485172064702802124798661605760696827456360493351838746363641680445105038122443087421728345834425196650005466979470571350012015670879065744910222988626635529468160104492938867445260021548782837364031634392080977607521277657727566431579652149042153574620943062290030689289543309746405527391709238443903261913845163006037873903015270551326571316787463509485940999101133498502892510189864622186797577975714852364951097083605392189778067626603050448455230265547349814733670568484688144664454715537782436862845100105574572892001165780808139693190081484645019476964440150384702919403474798766319996723344537324831165873891593176663055572358605782855791750290214283212475779142368282498808885572381174149349753481891239042695793682009494517056505790312046599247517917285851792363521736281298153666708750242728684280173497767405268502752037603268888596054704565472790466941187100093007647005113303398922465713880868762113981233878903731014899220538741225966074572002419795076447490901569318231332672087237021461134489918444321970444553730217139646816056536944962193948088518375037761426069069617119253677366013457106538922738061290735755406875657319835841756393415916904571723552348564252515636997263120575609457475166904050176464701790618634953663467856159484251721102342642786763086428496103362853966859042050052260196931145469681261470938775918498786756911195261491247218754836674156508461046941712789075495409317750001518283093909950260138757531798318079919409544369391907532704617940684008311614267791976112848422627404458885010471510205321287244482489332899082708506450536067785801109975176534901436580451553373715494915858689861084162044089163115188831360097147528015862643346192093102353158003832310037942335924541139914466558631371651319026503905821448473325123088568644004025474036440625578324482148606333146694311616150617702798963536186534800931831291730972831285445923340298755495122957874654790176197237797146349833908887501960038079496166608387645828650456636659369034189426583856554240839072816925193498857055644188774762722057884961871553706399825893769252596336005986217940609469863431199718614323875911897452981104394909935578016349913571328064549488411000240051653814335128796773619363174022140595118239344446471870476903022380230283711652998540844282926424084099700854863132825235255441340528260008896468084490142756928908311091393588915410488532080369379106216271209532971841667440742239587330060183874121922365899969879440245784665741847319346391517849431157279717541589198909206851913855773485740032189536140459245003454513137681257884924316721156025890118971144663162978713467525019486001305863027630935413611045129137492629224315994183393089259319729122139288761738794073257473532649082604422073744945897908135210656701954953190837047688047476111738404156421280867568334293709344825421172946299750497986433740161282968631538144973575462765307124246763104292951937690423523707010369124165432089801454489569838024214430497164611453166487110304556099629130126654327438054265019435466958126504710087905519376351151836338411812262323691525120481986734447279942795712225989830303666390628552230965209048901162739502465320083046291387278789878231738885372896152102024871131262644010317088245977096636699009962785016293195634435311719797019810821438409088452916564236453100815399285784227696764979344198599757173758621816536682435918667413614103502817351180688679829852103214701119297077472404187889791070510875554864716283031421701150116905805344223215599205059692369647230202579669833213070311496231806442792818430863289549810102178726961365847032769449057406189093968654259602533893878879930383025861842212964582270199495771271655664267262783689651452409400581307899707828078458412046832853367870724428965288311847229216918335570332023996889094024759065242264968884095739777878480707501820483009843009771133258632506929300200657342207987378400123077322970888656576487669517195782552479372941515762949693821158415929068154553231139671724251727723631307579612971333309721525205589270618880991706881095302589200666497923073567553139242034571938313638543030566191053163966584032452895099007575346165798959155640343348646122140375218645322690186052334823666093360797007844077633402729120952202182532543037971117064407816198011568721788342923787758108494107863786988007031706021302618896495430437342203495678800202766616472111530928474121164710248592740133371705057982849712814501516405025177837375759672846176936395025082274903764330406929835254957299601405119159423181390678580693975181474604179035049439219750213952334086206703377689006156696726783729482123866159963716636386713736475751652256969374510858539082697084703711173416580735218878678932064152725918968495090796669295679392479968898422805378217357687379135048140124923908045610871902992637039942974689714301297747987800223542718533758535730704200300868829348338734713212045242654024039481527468620543378607985588593916339511710229824357634198829942437018455710033534425958700416915082851428132715998788103084792386484652533260458920342872264863613351167984192697983246973711371044250816716603249586760171936694795408732401314679628937783156610829850918438746800123616892159777763459239323536278077820251425351885019908366668574913213673788565032826497854028049351580919513452588403446195663089166604393137077248372485477393195630454281600370056035144307642989275975389065454635282134430439334109222467680073143096209588637149209476626494968310142021707709464941598435358609048208835189416573328812723667809840082429313273291404372558994461920144578837116185155506672178153912433554982321798579935865955751379972397162384808733722490552559121792385000430495344727482052828924615319640638565201533657421108704630606802978622040977376047408806636367663235024241309845508032250233765179672524127323266745881803276520695486900867471623786918265485727637256231950210302349764611475731927758782221711718913808000423114379461994979976133567913021193458020120069212469828104037823065317557047821596423179693588761100262266084082012589729343923104835844278835728116775522595804638679220679371150032772642350362462077846429231138738174229296364008930085946013294685025688611845309679380806419720382282610968991877753230123724282118731025060238065619604016016748250878899329620205971399468761350171690036970362916325901313020399411997469630047415751539235706585578011778458576486707432410247205662414797237804006247610447865454300466891794478826769378007273892314657678076532889558251551451584550906956247608252063089524702886722597164956483699513586236215038064064895298060899298184377845783252085850643619491267766951316790374601971470185432200639603409308249506223167758642835990678057788816719682784766034496644724120035815138126243656007521027804936495441696190952477149966612349786808247886746219586274934311600244403846427651337536190150554716385807140518635338610660754998087178287993919229881475531400328016608080027771715431893069084141050545212639469786004003080687965146452195041897762226716099644980536164604173122599024876885373251462393123879679867831967124153574160530517534782280098514365444060678487711144310426999785000146224410606846577025337416823499157842804714271984673564918273096955572825527739136007931844180162799208942367938018402181972611246589032606675611678721475730514769708974506616356295697414391638882176158488691148210641458201254151084869122844272376179847277487264652897108016118285846030572075767444215734361351321712194671538115607077994310966251133338954151171309873314608413767486601717952190970453804095128925854852881593248917249423807050444734341453337160640606333936190342675026118655661625696993316553463737787606358696841072852619438695825678567420126059410290667364711917466044709127423968050163189355809737792080441174027849457229286692831534856838978186758096189870433213255569019036217075560494579868126540198855194924803831243357298936712506825759291005315066243536519188174576772521913675240716780966920082156824295883500564536961313195724394395252285777075034936893595722054572276345818913367683093816889260170098036609942488491173841764698551447158031672370753824497014304908921835867440359502613208537135933722942119260382373872282147045157834227099720936066880580530407704379664814029355003018024510176857836377425690776544125987145099581690281447644672728488589805492897754469056775360193170897155216865104977689345149771033900507790051812922967412661396455061926252299044784179024760938664933228464401043644427193368893022669930628059678902653101132303760337109223170303173228084030874211120172237315281895977121696306230938085363014863667293929074767454801895480309716377042245483760931962318215417834741997098146590392268843785513040414188150838326836988468612576583825112766072985689292734469116797015283426069060136322532570658473668865620219892110468069788478153579835987457072659232957229867837760708012168278698683630697342219537749659728284687550798222036647706511050771925461653645967552423029645257702150362004639309584997428988884425292270699774274918230803204166426569559910769837800122914067894339982269563336783613374495360316896571784321346097960976506776707693418128267127984855866597689567251094776250938127502961623755984555353924080266575657112572924056495652160006319602304932300140511925018541153392965576485422506818588549023578521401477827685815531636012824055568022871463002883249885041827936351189373304582585874751398231429840848553504640497019174388126637846791134690336502202103594848874160761037592521284249596636075328487325533718740408057564475075522484362653688793612350336532895571096449681536352424105856752909328277740900026114380243772338505021538627551384704468000020478409517600849495599034932228578022591640261005100964538145096341771107877790852003873934585071570172348063843098225348942076054849303660174811179045807636565369988989128539688368082397992349298199578958945201076087614673059620164601428807582833452518980574356378374230082581786187540698182074865671159149492053630244241327452056263833479151512762486334392641993411229522610557065108292240392647710793527486655411156715153783418611311534301307333197120329575162507390506515150687514161150767478237392562296217820772648583080957541153594214607123191127434870484469428373934273480147899725706142830849481421025170907477934393470595681563141284800164886732673947634941451509590684880457694720344259927418230163280828039447153704982407767603511421177318917743957633720822440517471877420180863282438590709769998409275843763824662905050583125870937392505415188184628587941236594213757873647218093891681814837375446882559384275303262309593929126008354166019477471811244151681582998939510636624801616959885000934236924988960504616072082991125372977007348074299818533831690336757908886944822872691553607018311372321507244505446373381880724470284856800968935327444113530442031542291633290463074300705477628958351710793966598135415958237188246618079119671218907103334313171030502228463057202112935922060817222824681996820654121009857158074646298309869217882597759221172283531942154039284560339362285860167684715906092843769087251398066598278983616039459094262266632905898005703065648925584456232490412599023577681596500383491396435736181459672810284950740753876931031336017048886693934319156823156463564198399009625123831505462243711219737604169021651708412904921618569430624825093811424672629275214196932283359470297618788391406410168876671061549275644789349185001970352816752347514499594403943371336040188628559372605048327809925914439216817763166387005262251977878326607003154042155688143567521896427967826152658207119603707646434080809127273224340560371399209612592622632847852905082530706318359751380966614661217229028221475958319421079067354442416858064819163400562178428955691644248014277570423867218867977043575335564680415270392229616423402817918532567732813098173838134244960105225055395107072678605216336737610867953594180935198033127110492578336809134367040479078076343686631532912916153820491365260215010835410765880485073386234617149513700752993681587010863286161007922550241169052519518245549376487036584068926709916312532720405415419700687196674203290379352595243943616262776238252505517734421931129132097617964141142135513990553459482484307775135994550001806639444063240662100018927855518912449258038492062157564089622582227123580302413539893893215405368723675399807820037491275386649263641214129839701697924017612148175327414613151145443114628701004198351037526458154617493344588377377524835851489480131029753156862039635603687196972004349306341467122915264619154917744212712823792893529787562297215415667184330962422034633091713651213646570585071009774217257657153399807252791020261345832967049581939293425708164611440906878009856485864660290116039533703288540656712660586218079539562952684141630026260835004263423203798831276778886698187029202901420867805203624683063360997001704609722474196447272936969047291713790260304973779824172816978442512115380963892641976435787050133294359593817087431149265365114774662946350020782264005931492096878269527367265679100698356344387990777051047945543219717417779026102842841554989169680649554483041515187311366144127898371335969965746488900806394568675721757551454508604440144708715393142400774927851590755585760537000499142753893172626941400121094542461462698493639278647747236781444237474685920769739340899350631036731468926500969213959048763718407210830002950539781903445686969469480906488606604700521280712708736091585274425381631838726566766953925111040895558379031462483746800733185338425619164738088346350063364704924844390725800873789643970092628195996789878993509293019474969611590663413922954772827110754649886171010041766238026807987622510290635660314904712669528489016874422482201299484660005450273047556391911320897444701743590140013435780068905782209308822738817857933448670342093574263444362785653285063039194151966417624662210999179370703287487760484107672763271307388316978975877953278003442775480448154155599636080161028535756223288442570922428134073463046580197699907929944291991088033036170140006454010010269996728851942321529336433521688542461365582344360019921953211183766806917213877879671778501781231336788759464081787415163667920070829156532815634722566108723076585430587838846190535220915921473451662107787319089597309017906559499160793680841087051092801131593082439908107796653064423498709679521400124905083952549347379137156848784090943395537074910380935014386802267379431526344442958789502742024794630365566706487718856048316098287034270626448230469247595033095444768231803393864890483168794920148090353221339110343244043999499060910318480217360298063344475812647398573924307692067024770127679354817503076103659489626729314829083640184002291583271700653701858276141257724882767103206755098774362248527238950132034407776162740762179276290044059751420579487740844049689277745116684393917972203491438747142650927926228260129825453241948717348826334680857442385533093728576088831332734846269816279427635115000971044346283790617449979035504359092018818998055395224635747641038063151186756023933776843447246590364373958927544678861446679032256494978364600759963934689391797056615043499306916218305623766674411735312418757452183554167024759996990623879365134127478518597723844783266270334014689809950108735219180363406766019141235500805812895876163931638831280070151352853652349245790542663538344349960717321929868263636978437090588856318582048482232876423145113373580777682085006833690336198715688826263884683377335852408928853292990709604337703511117662628986512799830912476126507060581678944774362570571313619158041216815494668311437181163092815858828149513347422714792939732025738000756765171566237797323335656153813680836199472241077917946326785172285705310287789939896791705399464306063696451303967012670189496559590001792749092991374370299432026523906731381023148502479008885845426481447134621308393226936409317079816699924824121678490006426459637660326964123931503058540091712480955935216684279551703266136942339271698933429977291473007952208280830185857262439783315072490782336922713328736467251162794517984127987240323075492873056189940337715313774694626004979655854320233300255450194434575513278048021791808573754061964230020697506089970410636849992695029525250320422765209866124636926390971152675715786597185834722782815476663187065147707280429416633161956944700429746399116330312613902834026857856777443187106979158593737379073225403577639746815198562632365507449217806754957371157210758791654582561131844479548616578482699891663048912153753413400654854044879638815202914391956614648660892583858804285322829538395551720614860495854054124460854250142516185363657733676036837146230063165371666883876779514391068918395267563159739097983358693545660019162226482228389137644277889300150789176162867482507235646099696883834475596725406978569883509781929983733988855171691835236336294911732657171154491528147124366180457505621491655775209623227560894392925767231494359084168347036851781738923247848045394872612590103858528392435421264740152787430910982747161880413024833328137755394860852766900528488363125168612665520325695308811041592451064693580260345775996022320823393020965267120926940732620894337258812036117288791545268115707468316853094544516664942385886830852101877893094961768540489285687614588314621839652595275181780167242027042410988118452279082640361361455922209418681231249494353474550765829484252273732749123400232247008043279420177170221053645018892111033404055079057986738941026787969741413841563127771323680068785403870700707685619408474393077810550953036619951162911190338640449297629287906227897669239477035690198105059998303296520882835224239072946495176596749944213051708086850426046221768820147403657671154563713697292876585307611366246335989194679578603616929190781375514069480337200108115348033647939705044332446232208117506552604623076983750379856289582398349943710402073455980549433685373873414916262391870945711047265177162648267220547096448188379961093108185696988987316184276945839473230395330456482011215724625188348493359583480378866711244059004438979683340805352779282853309567455081630056026041700531449840713967151331876016342988611699411736848854360933160939151292882495047127432076143116804212495572675399598256101590713040213441656295757404207761087703784630699282439593229409304730519943700190529661661936823589407081416280136160845058010821362563613668114467071386452653223339977656799899540401363867855227969772735758623460232539859757674641913516381491500264535202801738887820462245686585971063810229891727627936547710357099107980590627449157156416723851598559770651071189391682668211543921264711789821876665867427421254291467414744409598084396455405228120120019200354160518532375164608427531987151174365019446246521929918580157233735401533261583497865122587882137397536054581576338837576553155387582112242343679901548681248508878300848686601751077096271231726056067794718821799555310346969131771352393618526957622924496949784374968128842250554444570847337743986892040079381351122981592959876962905301677506965040115919485199661327684223497897153485177290855910127968458745786647642258809570924469658067791120267876897396207790626380515374074940204007133227861855135016155054535873321067407120181430490789982383125651300553124660927093335896534357603574776765920494987457380611957407096982852249251282710217070113272607474541368614510935232630885933566242757433534144657260977123877258745898884968998920983237829487095829555651002114648601400079868901377261734735984326479434674428182449715206135029126916039165070670306988700188412901141637219184529450259271234201998370434784442191076802889585162640533259078475277430597051896422120599355025917696017535559576081130239035131010022318696845094262549925783617946453087068721935991648354537070492002690390348973641878150354610545766685051206055125382073801031687077370675560496653717524040471677046043942402178775861596141100886534337045077134075131659968948961178644636356886411747056981533294194846636920686261380421089670254914886707871968701638990046576540574056255058638226936628272204423285657188881733904563075942734403129956443376367674179029676879681146818663181099392999060995395196356484900858366921667341835062298808256529749701614339706965612847439789901298307357239965004777895036864339235868785074720820231299923422030383391479660068302153719671730325076238610112825478298436145669521944534553991681250917715260155119199188069219374949493517227325725768249104177366101674731289715224424644570857821713725545693637438231018942807253476009257429960299392180813750299701750501816066601168459764121809912575575574676042394537065671035522893410248195658175314656116079503993024680684305887208072065653510466086232952021489113306991475328013930253247157769124359807541146087262769158034987991992412748711176884905419596894061828619466519174290742273817946522445556299092078753465643614217942812673832710629080907701092764287890426455833736056608793483005691003531889216287819243009596465628746419210487714012629862093026936627707432925358608586409483642173910286960319257085187631506368262450673047450471833070969424686701746973844011544045905844772567280929821085421570445139633304738894396273426819366761537998140792086439756447915958021448152816692190897087590102739277886218409360108387870803392179082847232412826351796610420996896011210032138461161948345376375879068282727647124613564289536999874392248208059969461110272498548040330606999512631316512464602990804110018692511741625324822830326371587482185956054940108313073489832477763781250867810682818628609911513696354784099402262083985986871913534702849921053897571592498065142575567583489458085262963854679713233500500094405000138672804048110003628111137489660174293520289889340772540031213677296903023250257605976903272973501754876014093982842298703933320810817499861251874355104636363551896592262333936775612902298936007666384313587050951093479746594033672648251428390814982232005058208083315595230595838302415749682969709094314847610297093102861143601605833424467586263945129151009398760316422949559336460084774014578754041035819172058587441072470447551082650867962617437858590311001819609807677515751392014503222282406561419550734808117171318722881258238232922749509825237045767860738029532021678448543364241958343478616483636745492985349168533628500308812825609968668946931704653515595170245899461727476866041991589657473554470761693019286951838354740166200219579542069411220547541403282679445057451116086384316285090527649996618098387660494349149025682722759861507183070004010087761448948299013820680798865646172339584288756662355659173536091441178655018831797883599304990456865201798453339208331693155597694676151880229555515614477474787363168028527707267512085630568128585274394719855799820003837844880397084481221224676433057339629084707630951961261483169968318693821434378931167734176444480747585860530987290461039129277830875853448666962832039579208016323952291124007784925197253263330237591150009037263982869223068243470994977075025474745616794856851190073484955922578360768007734960594724020470749367659842861571686873745703968247359675135857509930304141727802625361192564433759929865950817389500314543077102102369064462862412731359132932748086670223842647527156933917373776317189946062076317422333358440941438271440329562573469277586554825301816609075434251853675376003717030459365289773201918367944156517444370478923969571807152794176113552821952454596894698827030905624547943697126123711028147783676262535854556666532529947345253206431851825501063875178952811548156480431327871295492591279492086016441025919192970005843453701363308250408743869980852113435282796547754011515533152326459501295556145926114217299838401964113226184938059694103355944734102034676122199133276951185134925899504230657207293420753512877017826731263791505015350748855501803096143280998923803523642559915108104198790671207680573882579661303912400844173577377421285930050623834977427530094759261967222811189496675085817909884780724472283148956098763978007941328730626581440808822242238551048762265594080044086351351240904887774995075520456213003427697412074108824390194461199881327321554515278069741899199687070818762159670599794021500973585283294639264417582792919996140921157617402844337175245676671320012823150923676971969326966759919907433371269554949334060895774631753081416287956337320839837973219386956558109917060802969599980867043577964362655059044204115042859582765995157231681444009832582080342620689976018638093383056828874045688043010145309959032885090489384888127806868446046700696866625626345354026915828425232632856107861070580471515084982379261987569298876812594295318692736292357034722227732025002180733827433456440884453512522227213389703036663476910682249372730941834309527278600955602152813608421450853532049763934400392811418471314286610013267944560119933982046907917024245439856767803216351952879133742987630712590832015626514116956122636167152667365323914699281482250831118119913820707527057280131371185664499399083800847029945697798332501032429998060191170137520005920461544007770960502992203021408496602419148489825073837428322458018171189141637660586304618090730040425977902672000770179788042314327772476911221829957383050202465931128512451599752270494760658777967782514000875693030538345790211813535912211553929262707203671122998353327806978940221726523632424136483981925526664736769694295344069476409819073506791275232573420995924229159101501594457495098495272352255250829190010976981702197198737573001417325035379518457958423424355789357773263210025380247551609119983284865148765112651526294451052097937495283742910584382762692844513549766020904121068529410107012099938061503852705684512651772564574185229707208216759970544401269344969898813870276722113081478570697581080832314408143633205731470440014212937415416408185445423358258402373530948212947914631909239154609070106561247845421176897556747727250549799984870977381226637034439317447996155888873057935442337545456468332970073458318873132399359988029919570673044772235044078186041579050775157655035180808727378248344415843735002527776917823843012143133269759085539388008104915379326081501544336379660073982731913946699250822766607593705579209432988513862379249559457137412782600853350951803043287591782950593753627067243887347855882584992396306791709442927807310783580471313706056061770699672196839674127707591695909706090940965068073008569718711982470268026966438315111727850728072739327391209238926199068850695408679810952389119747514496113218710007278394257524079426050598656129165992039093469965336926064187034865878424038758599200937736374721382507984922378861030499390532758680788540694826926223187849939613785573086753039788774845035259649859244181545189595215903385208310374475758680555491284150688821667546446886105498183032863956054613402356661542667966337670194564108795169153326896020226257927271364716005242246269359970930956822277561772815454871240147913263618410890567832645240363440796041455410144484726143064418940650790171420733183602892309247833051210620490095895252304565773445659716087491361023045871785493885263248370896892014813575197484947376068073748815357638964312818839565659547012827509907276144192113583097640258922197404239080055881294978957822312220186263434613648920063838245161254221561364800323391626417409670745519993722676021852852737735009312362970765291169981491587000221481093713023566451880934563282130560921318275357044938599924845963556975932991554099961464583864373078668474544733266402646740150936161086481453757961069121354747428212582735557038360205479474518370702373797063104843552982874188888811796759336053618723613602916055407947529576106813343243162218782393145365892929030261596085692026321524104076263892657211749890957453014028407692877630190170763135916894927548414709816174090533648982685832567354493405377908659880265444011794503976760398573693396331721063087480049732890421369364850088205949702832533091524849776949019861675429269740545571647816889984944946945865863756269656585265349399254611810173538548124324461188232383252737565189416870710594370392537099528793836683740176685525563803428236347253713922396404455096939283928809262344859933986104165993536803342508495365884485546021228799372655352120119373460524719245061779010831678950927630523850901300187867945716235748106914660020746232476701835485769516544084327123773713367058835244136214430712599667259322559619354891767172989376361355338135059460849872520334412300337152596703200840084374727773819850583929551218996794485051918364007957474824129668750932998518625511129943808098801649797364552654231357396879763691379610859762938418900795977577005555602635162424895456279376737977408871512639660851436669794129788543144968027610124014885839781378880149842270542094153407263043778069532917491172647316132497241774547811360469611585853857970910285812986996736600699420044869746439777260688724149245312361965417079596068640986004699614402342243717930104830458852987317088453847887799036364141643293238183041461410833649454484559239754758603249644590292917577216793340207870046517398624676483154007067440598134221860629232713023931873886275516748933561759211985920367819786051284953040489864659854228923759822866293942555746710690698204716951510855936038154893201944342955066901066846285830178679893607519000689010090381890224830403523940601921409391312544633355230535896451555642730940456457907453568118776210425335504223904199629552081568642552653044080396700588147711734153576281730766182033680047572199500534987077917103143554174302754499937060986298906333562687211872416051980195516688163349166541426967822240098241862199670514722536696774699372772464291221522111675368980457448986661203394158776454556190299374056053286270520298728578559064420335080434893569172174078933774425788426751806695447482076115837567964493090464737482439034348617425766427580743566932487976542725397134549560002677233402390260075491719703883162178188107977723988086003265629445091402205897070170270782384323694876262780024272559100607622405224182998631029084440280667583306204900239234346649620643616300668397813630321309210183691750005002611151609059249982866756018019449620072928595472103581456579666484145373239786913631461658097346122780053401339557690648119105820818922306989777370713964174582955454947953262008525425797465740535634261532293678188567310480412623222743229341732229937195292761518870797992329177234253759425473902498453876398717393029589105489058468017112294167985695103299773893933915274693157933389364760311712001465639285503792763982883687814147125941519222635663763109171584128147267290875749487280878586287165729149050805755110320660995110477263217208276162529232582572548842538417928012550095164961835736946828326977963727323634728747979539603984486754335185128380785346623450248027668375513415989750159063010122373369037835055234274919306628307806912206746032994049826227173687863664890173733751161451236710419478698973813516542193169866976355783673551165673293408768999340067036360871421944800826443555440275285761982345939990816784760320529984616272921009965564571803034544582438269534902633704325994743508919307612894223463271158282603893650364188349082610183819919653147377215848550846030857257434074988417547384157198803743718287929273323624927128041094789245674917505893658587964461201873725709311652468467385482104509711621113997234607163105581031613780546622498225081715198429184191326348865587193252333992248855960481427695061017119139145528445924846045509205677042322859648469678591201674524695913487440225855920064649405078278308519496448102548135567807555281513749091797778694236095317812260379086980523437189270367801980119617340287206886115818312288177014482137614302342107291021442386752715425929781308823342180750155636532217584750769709690309885303819002048466402459372397343580982178909602250680644655205122149931217058999192368410359819595484040160484118179115726878851352317792384610450286404680736256765779436876845297020198927657349758477420891355707302419353164356954773447927927931891279383802455304682407826162505751923861982351816490117573681862267262771468823663566915687783776527771662942528359181161350397035995507299602144497020630520762361193240496400841774252400145026103277598856119886497521646072335217731760386163499710890440473589308598968718327687553551268747012385460142773889244877089017140970503959225845470897749214206670712970361446586039542944966646461710943677413341761155159670127389366928293822179580546650898540179578476271340247291334442295251168582297838414046101298591985054297311362296781112805864146597775409032438125592361644305858054305787586108441873017697864398601477477905931232142052565917063419621742152250541109015694447740944796063293817719368461451403094428583899562874106157469573067246441600241919878005880739044209247231244354605612641642030457554469556241009114703946482737194906726930824436017619584975132492868254719601122708733494839172530033578891507207294054682115270642412816505900864669858694139462565546244002785352636150174739151916030763875827964228297536154451399139223332001404758377502181140455735637604345918521883542573220317216963479554529380460753413211171638157759729697932829427125754011160810741783464735760418334390047112792899534344910160196431434725620808612813742992547210002539338487183247907953051663744419260181545138347684867007711477639604429216984918985086383865500414133983118307441049200959666463332376311627220433805144027395008777788687754326554856259397775580986692114893655784040333426606232853779018099616447578311211261095499663069463908701250192819092748086233349004737383378233522398571820211228168186422929224540787631514208591021034894734687997013196048112825696525247723446753468639124944667496220317614073424102496309673721182753180069856695158401822904029527820105203152544690160884652878608609635648294679506503996343479573220559982722922198792867981994751893558390205599673232643462904486856024117082613125138705698249065733414355740609197056505321574742033512053657840880281485551678478059724440339722671289200246967330891174413504890720940980075929524662984318600474493362081235365134955013481165260991254389913597906108870883125918368130802419058619408297068296280142447245389705704528052543503476369276880711945286043138526904598456942952668263522360941503067406042855573575547553564884351662804505970591707764727931368508185591870427110296830893885447541489892154879231953674449559000982155643863290841757382755557052190945888330070089445818563068783564014935008902304344993612205947376345713568252510702926693651616834607740661914171062712643463836893084177966206994562754977320437303390383791272127512946737189924079256031883337701778245649125714136093811244113709813397390745765814003612308875144051187941511087010973180178278381979267371150185550053392877703797589541138569440915583511827641265830351083813303187394319371982107599637538702934963384050938770736263621128593834385592242367155622501799504882292928571518275690273623116421430037904892195991259891190178157065137780646821798370602120389836579971050987315657422070564808412124875658247348320232699519402678137859870507480682619315484446421882373146558255585841374594575335814040693911327243724076544257563015649082282555905226166633594662307363128605005548825242310624333462414339105983102218951658636838550171633920938701670216374711220450204503796761659831713825540324273742081128873574564062078521383058270147856910325215739598187877085086789468015643403607412263939188541026032080477331540309791084508913210402640352426865181097147170322862208740084130829996362017193547340839739809469979226810946289752456461210581634223049681187013883214422378102460609075019883950810378580126208916237269441064117628337547022935321458606990033994247410603017724996212961965058572864604293372266812106034629215899847835978150253658130034791973132477694430042858770508010863883955464746834294498906194874650257516024447204475543929889469001688192072424696093539103704140905628167084000546906928084690665005571704799906877296146768672422048046038303580223000737958829906259659357014768638547261577919300460704385772631454604608136053316140742974427107374306530945656627254206685517853336953342756251773077256517136379285676213503340674601387766311152329988146155602993815055846738811185326831894902986406312085351219212388579849463240835754662993337334366246340626865341057495059984072098382933523876235993542354807016665509820817553614724002686044413863423694585383729670552354862815124630506728461285656464608209080069623862375041175313485401774439842431114308846640139916381684095250580865801333991838702000554400210995170179483011669184388806270978407735054650525028343023486152896707361842017103548480214947766075714181345537629295277014771252014135193235876437839638262402666392069093301914442197856696487678723354542177826062488832253251018553163285609787491683991624728052612092155276913054761204024827227474725219750080344816306213223515244216727901457264605536433603830394015822473360885900507005715323321649201098132404882718526292790329346170286318075706288316167905770376145418840724092393843698014214637333906873460290124254017524382561462378622707733709244082883832129729909478255026374055235920464369889485430060666300759386628004951182597749463141748609065174535106817307411179507534308430110961523236892756299727423307543179933966703346148823035689790623741661634150418393138796071760624918100592656635127044135804698828871887450296439292192052570442206225164814763894366576541838754416676148091436752901227707822192431142283386169383143024945459618457420747868967488090073141191454904446755935493370166702800064486413630960510622236794501117298389788242543740076906185584884330232567227300334538079176822316495062010443840208036469958192794711267018631151393677452700266833624938681517810336100336337322488296616156725859523487809774005535668167538222419349584397010607059650938644642739734824230329321648987020535574522931136899459412821324781997431246090132736957160572517517676510351669165986265529487005793072654535742818584985623714910585400200308842944735616835563349978685235765997310060497733609475207990631945032060387027123649608943284675650353992426122091906347439374116667819465836358434350393594836905552397615246681761422863707972656531861285054268552796585899267848165246602207000180021572708748737741536396753828136509846162031684063845597776013334680734354285444029694078305973023492388131474541916846165917490102888576023480127072196515548710560832080952631718400014288196079166237765356169550166157185453620313634319293624894383222443206301274652113591889216524051203289038824888187273349296038770655045949693183947419544375549180126341688459182966785838739409670042439693580118636095009124198138634226341124769114083771690979938787330182469465219830402551398736589086536277190292494045079098412816645079056480603722262279612164283554697256692662607978110988597514989946845298232530298306232384899205705428154074138360622559380870494901478652516683669914403283576498463397387673537752428150166132535943666007374391526453710597911039896834871983906572323340090870579642041212532423712597800624225816303016640805897656713084957329502830277770689848062281911818336928327863198502204674359889523263363570175599544279733009392154977781690534197940402163298900731142105626699874952454681335889134658665219540206178807181024891216289980462551090343104356533618284652469394696450025154496295343737176689507228510721659565568543958000624618186182886667437021397490413292280711913980713330777458224323632482756052002929783354789308698184829574574936267368202022181124845110489222696047540443662942776018366078336730099519802992945418739237638567804939329129559696967573817995769620078409267794326885064756315806940687749977043014470218157401873560724095091663807837849766682657592782519948978931365653368773811245542899556692931542323731043734245551127367929746198928208090531991881808337691633890377265552392440393431735860552217173953738426130924423590823908134212496018460028722091616145673019411546060594575849230919369816827105093620377082707606338671979886770412508421415939327327994140744374204912019672371842010739640409055460652968107209953643902213618543961051377819303803616663574090007498878907017272147884923611806025856982747970172846450018015822429080370477059232484733447248584238428986839681357681911326893993952117725680023890501442393519456413029178811145539124973431793264053197521887473604629455751193751229787001235931728896532123251638054378433693257759274598948690799132395009219435301904083674408949088671243796355582751968249213559711121188313424256198896902945085455790957268987954586766562334390989173741426385412344858287072711169100668128623250452132560799854347496529893909481476898928928366300467062067845982122191702917024791978702978071302643608048872952270084167198979791561438861747141132692699351605357519929507492576368983117195274620215074824885613925759606633876473018959324083831816434220772486824848014289598393053048839842997066846278148435195853539913615385118167367135142472022302526712538709466624213409025663389225008913849253243449571931357256951824638078354292152970740654652733856015929812847208270813173458969729551936032478944272307103498597349676043082919023391180663820341941306366741104098998725175256911288533134616567727767832129541857119552213268292168406184024305173812564191447143181518355400175407295161807024166467351782451784841620108563731287327793439078980914317016064605219666701911332861253400871046140104722950510096124415222363218892537338959043967419558668700890558630463109006598004932878028836255505935782618390726965897427708182251600057438788515075235442234235717302751395900064805153976941311972027605584846061377640962853470679866757015623328643650897491532305624171908362234866069352033531741189697468251582927490377801175153147604122494862204797953130113010214432549288550871243779124314708351121645601219434985606314087909842835122526712535941711336354770988396682700038750458398918341642293527385791982843085391404235424384552561422507366956840884325591198255542437700432514674560874117557812704781134436669641447346196218019982610823728079012778675306252912924136330265693896557974056968790008578575524027924481329903523962667205755833930563242246375954618833168877145024992258062191247847197983372989091261347119291229043241415844882673854722028770356160634791221161637979976520468210083188830425963990426329963777594990977798044990987120912540585610973175836239935460474756422077646670219659874973864364626837803282185566285832226568472392079508958972603078907535498535777423268862004655040326883223782474874929499035227052844260526480717701620448807069608132619434540945895864698201986288987730626826788676554596654112985135700457491482394937066386180802744830825839853107893227395761355744575080724702128022868139020407242042177622519720572454755999601753038907342269341646997074052470259377342779648270862215658693414673239363069141632486781948451839415136849493560054137601384860377773791809720833216841638800055228774557899176414987758451375171072390273450392902623840447103922636920611067424061796371393338610701647970886625956070492397907631657122878302664763043044754648625814280748136480142633751552099658584544322847377035270008320541929338139359791607048550298350796889454168311325107823753066135801180036059050781856585721866549209034240042980393082564320745830766417041077799998469129070222838713676421682926766000263525056756972393842489036247026702081932739070069318560644625868183535197580782400767551402806441024766390726298396756381331629615453863103376107483492772849690725842567442145470819195498151481075792197908375985843642519188845165107306972110001828360624862161693366926295584743866001900070011005895931793847637215105955159668843182659182933681671306734061145113433738463683393699675560356977532297237167573082031594423858409783994007597218027657873629093240683045942280230404872409393036790432208127786766029325585486268115245161583944271047481473564477367889126933378265723204958978571199742133228187586521039819376181102611189290147754718252547605814161350890709283954950935594194658076932611493036569816815015966673688206715991904879991758605575458895164391965323176806537646780774854158755419311046536574303773501780496052326665656400745995785935858809369567123109691455745084864273325662908012317320037813124155579879489470789853159813734173034492026970892955239164734623841687330392119174671678530027640064161755117720473744092576894679825288260063097132854156338519752923404143739041079706130385201874183044341842291051032850168544091916824278141279578127158534276062656497064923903070069064371210566177590607598131816930397005253018234407693835890172328327430439562740297909001093602546595034061512099929685869737569383033119565042430494308827642850625589876761870534054041805884858227360943703699446813152115722465685954747669665933005026544051386328283929611457119155607880072663831268568512746073751699150465116806288406423693561521600311133815286230389868252821692970076797702052982905614065556511326377939064055516815842177453414554422487942952793794546148771436982986590139575554886425114716903932264861942668684824731055195261311506281044503957241594425316102719698934211369887562699937569511195672495244362622383328778023838781314107895255470955418554985638070074104573260254292141338262873485638752552984647838602120449583137542389840828101450953335624468768679433373674405811377989831006521669516934879356071379577660256038545986394194914093013231426323939651345765444164212562950226057165082868077418714209928857115436514585108954242293095063573499487744667566158453860600135338425411700051101894458650665066039927763152936349126188282052949189682655571078496998515687148043090016780230973120452804439198731529846597579126684357554819050354671141483171310748733986450051161162226941193738238529828604225853487602920931877308744333681439994328702627500488644412203922938741233573947860797080412164873811969414959687074201097956859635729756602861072321705514587227006162895127389461939961463998751690847581676658402506763101991805065482402655633553546928663343858269535192572523576958275127608252873591955683671877234769900974535159731706037847687588239051850469323291290905078425122073904572666968155732631065165134110439844801322993867585001642298380391646735590593163450536669078007160663254916792838061866936084331917364588249275546155992146065337726297466986197664733832882003841294013875140900897312073082968235809572790021245241645615584323184875887402308161191217849855360532093785931558438096946664965727793255935618781337177095003465892206458784234265435139669026666738330769358726590398264569674988993908120481848677136555449856810887391556303134202841216376604531415383748300284194079732723574424185106859194870850409540389279043508857203629629110670314827979767210615113117191787420821971592790255390624257161861162287316249553755921503280851950624432187993424979168833264727755055473431420013903974349975567371945484786926987866320855657874010558585942862273812767888501436285882757151336549690924719306793845439278414084648145159856845852618914405106451848040611434139399984951652631505418077071529672389229649715763757629363876865200950962573942538647087318375087616465946995203947568132866042698420015859743468643972421058509422440599939012726442751735503476583645172064254549777477963871784250133568435826789396393478999890220673441474577813705637122728012306181274311602345715854481692993587125408282863260839641768406495304573427377938133270750515001242472698803465439437192634453754542743853765159346346676729428264213698280878230025399202585551792794912912306532363566802640402059591155475700657896106613765051320191317460984743812568990864966688720999550550982335794114441210791624251550614092099849137976302284060152657418362998098799527161124374319942554151984236785127510861589352245141069440418342662230524628223560435827661753591302901049407019511920732089206850813470453296035485662416262247944299612637075111259395687719424557148922122225601911508758421343588033985691246917951470585430965261356980895554617203743789140672685819791092364880462603594871501162071756459487798129734825231368551468209938422236883228001937291099825595117936929263330590092471009385653419334723040073186180753098210612801616434132203726541310680491968217225228669407092706544608390956210371338397849962479627720677855909266049897215489835410012282565063476699964128396553079084127295454713536095943627309928673986685404110831724682108911404353592931425683002800588812232149060002549003783227892966475915722039060217675042721810257076565008806606660190641523560939457123874322083408731321693461843041329834540741239197173379658032077584058828875526660166002294571715059397366342612472115259014843859990717047725106303850195947221250651498143174088453306529705809331908019341956079381297009035949221696602658741920393409997327814304677397609566878778162154796130787852519741841286638896817877187511263076853026832383910690247107666478676692623610996246619698986833461260616199237522887630600874068279496056059222630276985694587580196435718460813856880821376837697015992579690843082543275741884723454900900832817420680573698698305105407104491604131889124595300569709795790934714659365366015205917491833473236786610208975407544204928182954708151270481357035868575019087561229144147379926449008401405460340839807311248648094746926452147947029663134507798308069426782584140675637113250758608585731349217055485055202019542993220147872266067888356531102552825985094070862283451511689617344786475091395920128318612729544448577762515364053358705306933587886656675271440462153377042306341868717738832518905989563175190822266611700920483115943083850580317254424456960009233114207012312798630761577182561567415592237191528131753665683209377482192026097198627459411923968367846493538927850654910006944980211678766664857492776149050948093778865048119911165274355730488449768528364473237413304216645221526786352375294952222690103410118333084333543318311136173545852557085126099825600870712274581798780467450950086876287968143651741957354724286564586979984887683701936863394973862814977103304772379994159698150040531789547329499911517078675220912322091311490461064488040903140038922140694503866263748194516778647025640660401456102010097606652382082444245673071166887716259198434863428353277296339519635844412634511102852839942600819251043671961055676009253622049779628163271414948235393098801719972401358294336142564951319357313026524499072249266390251797856232373971989816329189066115650931160288830991485180577352127419349975473524816717428275189954869166061615521540888670367635101618545177790724969823012931447440417625060268998342989683056901062966768851425427181175779274048735766003202963897786244201548101111351646313854572337772902842023896011601840117197292087707506962432437064108203770171007188559490412718366314803718920414497186403900343094651256424871671133860704270505028443253759773186443941989825552633386567857973692432810842618697741221471768730664261808347267708927791781198602264828076762323953700997247896267217970911373520553218290509902170605059550075215009256537195101752157057032528317087548457614205967904421167530929019263290959937967542509617705371994276367160317407930015170992073694529027623764277180729771045794912035047562409217931357500500106221719153815470157489842576460051936111085037854050560215773188248946749907016733220637750760335098001983024616429552906796663803223793050833234686441411431144706028333970464300839793581322583631226956502290080765560213250091075591146644777398345676826931898230087008490425597409712927904401148971234627410331500008255285076417318966657655030837186181691260141256582224626215164801550075692148414545882239914219313878888980779721317487081403565102570020415838729480531919783338754794806541512152101618331111767061720384818289623829898718077879790385682844537226175916442543055633406861932889646498221738661594742145379222886045242838535699282775631537997523340607021894668047215373286443556977981022686928736137129418159643435478879917225610894539776915990361696358420647942518013510252137338462430846238704697831588886390532085394367179776093200410461221557027574849703081051031323280880225526723751861312956232016389194341812614671856136191841330480454978330352098967501191286882377613258771088436339685715457140247717918840432554037327861678179271037090371983667863699526326831725559553008834030156754288816360581815103261063827275196911945982584893200119384573803095760913231637860126572550262785289305873066168881445849252648175440859590085161960991137846721339963442195660235285210336145814087844350002238299884728175450365057725903087399769768767927366849584017100383055117757532075181082044351256422860933678179509213869972693641801201633262225808329728774636108096746302523340566840438525842243058356424312152456421559936853180570635478914674208936469114525355559849026820422222038598644070449298971421630190376889657963602131844718459842133307099442673148613866940324650647591671616228911242782069532326920430674672609735835501928050196275436611667969862433834508174855922849280421903928212599102700214437408781907744284457228171296684335936553124183289710162363727673977923809516547638953912873605114707347249517528055006909981333812123916028282538866292766748906299147458071877931151190550812227657995576878564956494706086158016522934781975159434309281056839294453613657279306620909286291004859331229127581661681158948634384251158118567930938915572706672972206006288141656377353194205506001561450879162135773575504867037391390127819796432598389688060483350278102475323150140554483739886394978785257611960611906119573981750356438124792044042870243738527246270461190183128368536801434748891709438180993321358098954143051063200254150384056225862170196273094454976561629541894809969839008737039795018305480819306437174427691216779760805642453682830597735034917786622147232565890505997281850663340771476502955741775880777715487164825639259070291640623397189814497705518511850238976659340687257769967533087934850040078667691013478733422612560730550454751070533404340391774584089604740422445613568861795038260503238844694379655356445217783992885387996370505546248579320719628265104720121943421531017008291027373809863760183189799446701819901636908258203893648960930399591619794426332328660347465750062820036272768461853056554642830281668352512373121669993783114612785350250084912517569835190516887347814707488822512964031084560448496694278959662350715659003067336960256945521610774594529122294530367965609626721179862575759310337379708155044393760608529575924665720859448017871911399754969593574651438748409252130221426450510074889322200564081959438236933930044258320638821920061956288265291221904286747258041723164455920784586068906403694446661783489478641689436262763136720372950487227869219177220778214491743085986102388853308298151765683918562153478611987584520242798969770583601333884365264713760826524272945646087761130119781519471449339952881018698525506225810433477969295832312238152233585036966825875781044952748175995223914866289277559648120057557382374455868107490125610816671329346456220698431759263255762442743223904726467130476676173923752629986858333570782548946381228907356664924333944595927323258348910741616569882481442790921302044617431274912475070846521326282421295166316749147645583106896452436320358022933839622719365992370214689326525329767805550578647988874685495567665698256357700096752985506977343160830603631032477139234122886429296240413628516046709234039796825999242812646432217572086970566534222967347341476642588205567380877799564256562149991240516679872604453894842028564860695078982721984369406819652025876408036749257574434252792732507067583033017296801764870212391073888295899105903216858554347917747787877224724218717072215861208563446304555435526653383191761604730762169264426262347072257347586956256590621998047752035068314582499104582747580978739562932893413121162824339902478480837355397524135326438198777412647328221693774951187734457577972722961402552290248209692063267530676703066708003445218223773331224894697053401996127251090521198388467933912063928309816187561617166127940186646667677832541873611947478325553254521465233688172200617921626915636930124709566350533251207505250684815358810098576990657582012504505493109788053211577462734552280420555263552293523683967709850389288230446833217915042359764654479673018970580365627097915098160113169883465784975741289307935671696970597484694290048452386443719514988046192761739685661141239772309046715773881085225466320733143019696323247376558017573354486919485125660668223045196790841730165533537043193826183137911580155912133261285068377760240981513256752986953752098902119426487386461106887929639476236614150035633951931270769103140351845337725137740767935186003977180984634300321531616860524570810108714959240630578206258524400410979603768322293029506281609061740363953264893935527755545760040027584522530493945610696454642869466481110569771268805173354197845914803255272551254784704637675666473452236710378234948478414068639876711865724873620914645836748256105781010294400015083527108244178804395729996418266985031147948148423647893586640332547268970083597054954231324794850166339707245621915798886010197114043556362429461799466008111973962076142926255192505650854911410654564052818991797546931044664369997587497027310139754579907472514082375804737835814499491013109550959128141022604765084621167856704447229842199087355875663079440892437375264844397591708399243448221102164763214328506050375569917178597054649429964191577599171322395985706761586162504688568528236774775315296619361603043702354944341821202345929443710772809710088110425210143320045554099417794217507794452538024757732431523357295391269198214667852589868589335504185429606220246526862345654343978216708855105393981970557067180934680342555917576925751010269523642052319929783997508096559578708337165332559071060512321692943112480755174444565897700495329105755235032213833906451886875325739864377450740780731920186405543912577792286902455890309825413140727220102121041226433191546325231148266921884267789656923460808407714386937917382894789097357403692817164504925760947685732668102941463545923678616161183872163760858805230818874410495698947281668719901227261500383127015931275868684212498479373505778077603125609745143965476393810195361127904040236593878871486480969821715401452675332402829803608568320779670467680689862214772281993360836023643638762593652929702478072784847558911322721823131575347612143978234048997994387068649958034696746486979730634361664008866606862890747467849578433906660656280978083614884047103109966653182538114564000283520066202985439966399385100476613145264176999250009405346463033647719502066250717193278481736509631095596838397690338427501429727549716923966859830946862820551509696927758125063672744699194238830853040171350037706707211183986887671134757567978342797569872705406412559563737323594132481176454046027599208752174160238359758853466603588957131504445808185213036488827092943355195391126024319862082430050218240493488047851854464549875171953453249922748363941369608446226518869127912459211305479837617525846564653140478071838049617047470358453480843333554639671868866231494163327197674401911314599283769368957263755832546024554454735754133148745664696619888325562219313455041804734019103499705987692491998253079789330734504395800802200930795997592867758584891097666979483859339727228805958677558785697649016466283021314210740590810239567439775871871356529602478612118582567802635302494978445479374937159672919693373482882256011852724051257990879606574532173158491040243838049621144997772487557964008398290680542387684990143886771928915706251072714510574244621439720075921351471210972517165313688301527116719177507294387836048418731866462988738073323084667837634008342878117567897403573106286707363378944752940402581381914337095223520564006342309595188525564809459332851362216596297104438388240938787120730029487188119243170757155933732418684680121233560859766365432908408451934433806160392464010951281501273655522234886951607129578617923321393070943751733760104668112531731050880640599556408068321406300296919046312132915445190217901001461145052537045503836937900753489504032859021112259321334865712610951033140262180379076813140819814795857332759635066572266501923203798530667665065161538750206823037085995379451800803837447555592912027434981644162970238376067109381529458809950286294125636565630010440128041141678221101068512943221204403003769549652561264730207373445740857024419891046900580297249916013187132510712945287583881711809082197017216988606651207550107799576079186324747935020573427800604278954186176587274730709135952852997843968282294416101036580783933496830265717340363461719179118858457626828385267686365533786354732622474505367318743351084889132023543819356658890768826171867697835332908240150955075927445747386176225480560365820261774911979124544836983206366653201228417177895589755334774503895534124542404520706238937541581694053361308142394932430323132987643914306257771530525842860861292174523810093090821227404609866327987396822857450623730753290417390262031873059254404533834854992977356919200062161662381385365022967725799568275075992830587560869819000422879209390294608235781891137367617806219657355795932308594149871926414628648654202906982745440819988338246142591467565502536809987886944782901933290330356873412956933779365741682215175738777858121517137021995691209137612138476236996320041383303155060877471212514036702429611289173436399024774101455141770276056819250436520706639589220440459155691489642100513665757973875650234028805933778794182005426162580027917409631817436020701726597984324644978247087278209545956363136345105288654090984626843574350004785560847919092286625719237155561264031770649070363775856461715251019195837154495998551173419351748975908747294246824227549252663631331053055339221275629385481008915611173382940350269384513880239928108783641056450061847053766747874382402158040999331504558555742695615873039567618126757142821077028438565200796093613817163945293339866335375392453481588093354787519983261141273934165766989873556995329276088965970548762997011789956048808088062969372467363108695786713093836188466180054703777977198462012001625049670511661189088212470724872761283604340549488409341672646789718328331993450609658855036983853661165643174884477234939834872212268504544935161743627851794528809405683610432437421781632666362167675155295065398509462239146729072129805790346038287887881691822435786945047024809262997034792237061119752492794548271548900436922297821295073624821651961016202703867961571953422817466370767234210563957700657087865110926852002294568278693638739204411419398733743135404175440384468858772855460108403620156767431056356947544783211852333469035341335123871450391693048589221532485829648650615984943526114435119385892346999188614947302502420820246525984740824955377183563083470915486274667854847625216776759546983347893839326025804382019242062265638856209046664137406457198329208668769960255826342440362953777129324969383356299195819951707127880441322124920162127268118726926163403531961892558657640895584568699942661562403774749489459811835060073193010240425821200687342776183664916142602478946710386735732230166525778893141387564488216482653250701323636569043626403528774538395572646585056047896275807144214372110910743222573012334851972106811906245883623876836201175289274389955645117892084491053724242394928990284941076166138872613695270591836733346194229477512852846853294608606594836791810025109988223974758306946155549851788072535770137220413038843341486971937384584054303954000290352423892989571632775920226566102726119178313142486627800813110850272779823586989966110535956649788138014973517244140243723513441245465425302815918029680490731878540642297931202421909488157557414966046243579368043745688019623801102263136786277486740038545222375577604215655170059495012459802389891071627206803626077890748914623611975570655957532558180267289982521830383197415907417048909135276442717011147921859247793120981006822039178387300228725957693217729913479969299086100806795952326081850549457012289138698463955582709273004748060736375098478485824468933598367496816395105788203620755286955883436533904746925872373736380395813116972304051479168290257410370728576082904354915977337877472056118311091969741178312426760436081582770698882411338035021033742294703484253306922852331134629064699567390915267023212856120182540711311082996974776219146374425134210488349526802030048429623491087999625394889492445683423074905154430609381043802936519703373663037289037118438637828352212544324982930937607196389118498194098177475177983365705034482797628601253462600022186533097864538533013662993593948463945241552623847823791249745481531511553732298971949557512657296582678370563597497841296783786962045151990878332133802696229972532250150381873890107741949919516549359584135502350998597454801323851865879807337312640937345272050731670775347235610644423699459070598465334335239402204640757393635418230773935051202622678343935315637598478660138773823108845067789392496106560602871438357814348054241899617591334614732660831545704459360721044821405045015460755483068662664649151125202790108772663074826886649199727225595337907284758624124734318779057689419247489633643896607707664215944994601481783883498573526848446622857159144178297305281502730652854511649900251608263385426165030810111800819233494651348417281542655182704187791925973526974257420039682784102665469263970524726452279450379986594082590526205011479859989683389883665921748938776369883896513278571155633346128061389269310067644714671944743243674783214596046503699084788604297351002379887067616206373735785008742402817894382086041577556377463207739957958779113512127191306442491128710037002486331961013459131566573176708830503310414556970574171679612674274742396789377503623901511763377374906011199797328731799794217768901449220023356767955872288125582607723472678163693421270844658133893283366410674993421683903393702487486197945283911724813137346979164385705833097888107705009015629833810944690053784215419604137319785975017753712774047695034501282568627899559078917233477956870604343300873917040605672440615934561166494696817412157701848559207904799273165762833184910644476136536073417006596828686518160773907721267646677971263497724043214006298910415512757494412812650296402796104687725390303819691660512513509165336267636553752294422188380049202255370957006594194473614802656315550403627175349655106725872825784708166217974887534050247439345958065785875719152289486624226392941631836270344833162967309322095944959203589244436500731005629286247249359924520250772056034013847424941597751592484865592543737895923668623516044006419343533987348101094646660981909035063266581412353105922027404917130142428469891838268278697198805166553333352124486271046933053957218083942905083261826495755387903702714674892623827980818649317675550552028216135342508596155164599766146094243914312915442922739336644739621926889337273824695305463864260744168554713060362390469152321881569971711024711229973447312886682057755321294658385679051506226881703546962859563212889932185801676233735771939828802079638703897172038122045418742409847019320546154509473884103899282886608724900508390319808079330215753812338171094463236803581221692517166162167614008754633165013939186515187784952991054753728180915745999723001433148212378218058931213192500308124720414772129891210301048318351414393408480929743269158715624418141909600608859271161194671056348657073128556362067120835803249085637715074565509955975818305279570163219203000074383647661277570862116978040080585910308446989776985600452638995074994634096871072265807998400346290158820080957670356637843384181286669805345385972093962857725752649700497860824374762572493916396114944551880494382430714804044914178976319306763937464925681690919591624778908427851430807052944131270672842105993929485358775997262680751753100650532344564989059643652639949375432886235986139722328503396818110800364082393632309840957322102554521344147786324584515282857533637340029267395052396594636331768546101717544431792726025995591795689307611115183870883735240059614001215983046058657505920797772149648295849061494087966559715704928567591761617607247323570878852880533355198412580967645733650897478801816283706838714156401839184999245539566227680696628043415431986533161784846532170955227978166616957447885555496431762234654732463636901252252575634152179374249967937114962188374862495277872703014124611645186074361505092703974484682091188847358374669801086122976417457116573356962322887145105068761767571673382340858695862253984000767299032567151287291283261178407124580527162746106517449224012387760564335410290800519268408012376698394578350538490395937316650822081305009502107536460853270617216320068673847795579857852404619062425705838426990742110836794841250259221363052052075977502892429950836493624349169131106729919567627196574984049341857422238337975548735932272802309272333081130449802296305822068261706517487693728527251426615399077843160289393282507496476114813009862664200768914813199125617094414788476458956557474385328882162700979878522858529838842861682983193445386001558187049329680200808331344329822060449053390667521249547318489592361833377033762194053568906500221520975506897937873216880310420572643421316674550205174066863766340208577456243271134335751363029336182590129992640056925050340014372046423193725348697396526558796574112520526849590178770098085069288274766915854123633817889778312995298505110804529659310701581938712769860632721332734541603462092704473595786161490871440280611838011334854969044241142035084759707263211582992275401090773245056901360005593932269098563222889893789056159813207096924916008484265049599188139621726447849829038217777374401054252928397906438289433835725829028058943806236581062808368228897453898505888120685923807928241938684156668152645130306670204680598600445447651475533900723853709557820081580644099750674482967736732226531742903787714390261041938646370135800707630669723499784526528142371888451793521132481658530429989700247884168121500742755026401213897294927659246492200247474386720736172367969117442446404785998064390803606308441779559268052644551560387197394769991016874872765111100623658146158939420228744428702891985307040608074805859159719077778044121820184056610552492833243831537015893892062061688097639722250113886285369117432584646214824399270271523451129536219307335270009356769384921212636055821184977505321790566281251031229437666698494397492974921017652931110038531711102474055482637318870160999880428602741119388373106510395446096067121626365748309982798795092641750827218968791624408531758514637131668771027742950853467928932930682338779904640880249261465422217165851030020212736766427185415833461646255673269532647995243640026152141695810525111726364142215560463781453181450087904748140428336999826209133463634159163437853717972374022802831759336355110175455225289518095072827186050012370689810067376542580551837349116466997260527208590810778076637972178576200796782986049341105210127342603228382791137896255846811942832887270817568467386866275909182771225447868367696315216789339771491174846899033553702583902286014692787670717000735179659635225085055042612102602451095401328815140980128094927127132102478814813990029006393410044261264663422068972327821338054264995522728235400579608353294113484457159956078235913350317843799878848412885366856611038442229082253372455562280551741661370441917381032617015456572666241902579232214346887742647028442886831530724034585676509880664168823221521785013525718530972120254196716265019016155797054341188063356532712056096494628340507992485198977889118261423387319020396632727490401915093525697242230905179530157821096676402617693566597464126963136131598156193655076981717875736299384231235154226427297036347014050789098011016178048210004129512467425027294646249113473759873909873155922503162477057086826517117704958151679617993318683149570706659499380161548684809522982511143882087566302366131110751917079061085984482328387953193681152470197776211700810849908529831124270638215486609270734786398786471273897474584249681555493354729389110463446125916574274461476073621264467680463074932014667910872696210743730420901577310126635814309892226824181255611718494819447343024818374092040243808691943748788711251236839357637475190044518369696704062101308773297226614116004850060396552785475613144656391551636426066655597488700405036820338646532087131118578331305306206687031877004939914087217629098649332207602860750855176217139591896907796657304896842027049297509988700558229401294951063402019815275167506687098483432114776906924757716173704762588547863264644961259320543784484583712683560123425944208404075966397075824005095576844761453746755380226939428191156590111547337706535904304145906083056422516812149045361042428772636225244139124748402420454018114112970931860186358745626847207911648619999012967085234683522329929572384905287180893862531550896263392743804106240032546509354999373261111708779398928883697355449783408335293939256544162822359821276139603728945418013842914832586446361058175241641369526548597336713158029265354076289282547654838247592094907624675914597351245344143222694192560363959153540047354956528645950165640924926379053374857646086301222886970231337152653701624061148926118348472934195373056964325363108737171642129704139698136873928668661450501965168073127237858555602519381734892108850306604747880274798428501237870962437376497468920107321261491653846745442292094377179308589631372211554469607852020843770090522146775403769261159753842652581296389952135073100756385151139564428746561422779910192261400171552003949603355662107131031097188281411055472457161597432366852750623979129897778708161804985322659902776915819392669882809632179533062402646249661932706167176569812642212887632778915640001612488819660876247723417134227779020244641133252503058596615324010280926753708298679418046759439758227118502518428411269833288470605475972058211112494920157244596850939188475687634260568280632904443006832807826568565597119317028199384203357823788423254303756505222937126054678633638046191726177641134229120957168710264035222348418155662838648714872627951082461864140574956812148762258402180070873741132167795953485150422876739340094601380327388517800993640657556017366290917072787200073977614339819589386245367942608051620733643471419710439305738791062673231865657006382630850826356092408663878317369702286079565494607231355265570672872629897558865541677453330914908714241229879399275105444970774479967386113473300386781166662777212668178664914121249158509905217577890100419400607464785326928974306708089071207691932784577169042052533067347311102343538633881267031060419193626680023820526571070741510024409894857688136595345910619971336066662563664555600203983260583713013157284776650994721786582685870053294019328824907744272474973771366240809766914881606128774095705721489411509703162611961965242912011297154505398934371940152001816751510744402973372427340172802853987284973952619211741692773743857753834892855283571565345746835084361873062850997846299942333307955576608863284056124753082474738573852606011995897143292343142814579304626805947165255346826887488529247959734355890011497050439512094328366187260066625737318996837795865637992842688240724903890565915413211656178421886119682798921346251827698175543587243557847352993412604042967924147403598526980230366950643125846495864127025106447071504428514088961356689140994259672754053735301981528939013296595412673998681317692299013115704383149955817602772057810180708180941960010831582751985807267711772908799686491622179592269475301531932720077183672022438447598354990558874765185709972563871855079374586732561028170026420640848585303882676451120748864286871340800671369113642247110068063123759049968751881992757106663097350457087385511962808218577299365167933730983846498261981562388274435951513668564907696088197054932350558495622683798907916867333319105784815184084746218083892525542198747118010244353289275359686064841763919936906255366305985517630521401116816714423701966537473388400577952137655114179111306916509225686315228140330167858333583670027391129798520868610712178100878135392137310226719247958579700640683239853034074185970490795509057519851029802692491497753930760054574527329037293974401047230975105941998672525667675173057222547592328788520338186159863121928593252659963502605765065310184625415524723485946223759848435753686955476127020891681849318669488281133468056682660271976837303092893046588239510083616073260015527210020883791395039033499777799566389664958443014492172958046999575033853540743969538762887553991755317910013388864633757123593941246115616066609021724189227076578354038615812511614881849346627049918427930340019345094974024369497253050952976936361344580351191870026723248928107100958214429861585592562454143240688375388705135138552140855073724984595558255054095400547442689120605304726193078041859971647432805550904236865058936778372302871342753484289080625440095798700769254334048272912009588009233814994438957852303462790100643259215913808895746846221637487146415490861568569700559992789246515635730038875106623884913749499795140786840776161584996031617580018210387333724868578383461897749433218539169954059649950082577618821637210868321828897932786852326191479695615434088780852227735994657432697567957161701734999297337623754286980209254029696522705960365722110955635142114086370543234628727856758999826119670409629813392665686439413847810598961770880225999919551476875464673683388731288552828433142114177946909013880844778176592233061898261597702512387552413844545206389255783083652192497526732984988852522041735824780687001950429029885820071976648982215959976847211871517065112012289908673965961665691151467552553237615483992806418613851725604312991099220933713937766191933119978294758344782346297469460578061888566986718944759843578495499066642620617009002229158822967687807769143839679590089697283174140168150491110785069193966772560349490797223234727688077334797861720923638368883035473922786604969418438633873212016132527530491596165106695671287852269443123111084087555088778498994534159183266937814815085817667932485687301113020282099503907662685026440158698873380328126009550844642135387992301848513549360738578733019015960812408325337854293930706189489059197052989338788195236964016482561206970654720667669582383663627424936901984629623875052630712235689115686156436031419198351663247555731664782332918053951873628557189212287703291863333685997848402526684579302168745664411451038057706644970148388236096652052471964292719740845197780241830171231018371524338493065864695177951199652299537750145123638034933315329735964995659106361136801516337439454130405915887402426435048863707621586757624763109263738984828490355970116866073827861988084382171659957661741061962169336146144048280306215506113582871259606945687661564255234459809684549854799413983371002244914954174113799144315325830341315490433683928839612280615150923614041989874076620809593656113227471151199266069498152516762904237734173733477460157664356382251834649540050367013568542921399509164177990243742584205731387869113332809730933056677356598010121619595890537254314716620448200848936606499208737633354752418332851600141829414509563676614547861554260939679517096995300630760617504860351311853941819876401752368834238014618987276955140379117030890095756472285148024603982205294828136642852640767643081362741736210459554327511067143989147481519895022172695278960629896839499957436964335633044993352642478488926786153399166019353177835647512018002396428258065401068132523884328388519433690157586209915599006414504223400324016952187443174487750089309836038688227646134890959351548170235687362159062815077699698019378538704493711779530838324269788581519688720984709810691622733503745333977712887502375877127554332163448751651337410894161801428780086980979673414403462640702450688029021511526501706409568263710971188377608579248120464407885788479436783018767033758274568740944481723668655620910058849658065873841366187439609997464767426562514794244048010231498297757463036289938930658945916244569296575379722267801698094298588395332566514235605286517190746306763172537905927442039491555378686097896848707944848934960224341974567697927549380989822485379903616627159698131367191899176144662182434718026499171994092133400784487951829995566892689934310312891973113985945491959940044231825993304058013795049351381534170681346120930086480607487898014105645553146489865461289262594450834456239136817953650109366065238131670032275157193205176657469695636459342901993870500787276474232085519706486710877463808817601046324699401483397846029826288671293086188442177725631925096124045972149547606171840286537565456620640542925052191475380313488533706778594043157398982104693660501839310373603751783656102891969093503157652787883042050304097770098344744567799898643178640277193658211939460375406054143087307291345845338790202299042838837578638969235757085150152773861798450722594226074737980642179049752315790458912917232607461213462835204314526987810556849581148026496144806958607889284682161510834772948100336225914943545483427458210756815293240641345105925437048760961142326773435683236309070283590585007801095167946838607773963867451508039361602490549013491072668172144088307689766685160344552176281331494815489805671932995067831284712815733515801086696010879989936205541149659059030639336683042632728262818026294365577787298864897370970460412465906907884628819897553258327353222021222913530895194559040263265027285523671416452613407314836221366685523787725159167291653504410848595977092530438747157702523381244414930750344952790477931241293752619893368975829161093062259207132707241311769969312723487652830518619979271191321768547509485454392305957780030951224146713105689236032605887229190104113581691623505679753395608999518537120456034611189639874722379304249087166004296659094678654598173757490184028906277215264594614497323589354078245288031091829615649354334065482100504653963918396374618423752161967747578152505677907455128572480487774795959426319750386735733853336639971922475161727747891123304114581733533582477585216361825767973735903965560434213925456600847633794608258733288522690291026872710584139334710608872491977717026708767216528874909230752786101553552963034528512943153562741415220604255347239014508952697157816550577228189749702779472182577286987857151102195804255746537985854317066046632006965604922804591517621120098399986068864949570094970248589922956870388711297914504014051382249740812562227588199584512735174336396969205694838723700775910356109592604242106698846699765894300580235361341625835823968000067426181476982998062716729929164127227498571021315671855843264596977519885614507949959252585557100151122695346916742657696015625008644061511440669478371406062668849823287373357255095204006457575470786187277013977294981083495892334740091050907179622516948414220945990725741382748124828549664631519113764006782261689144355921276592499078209722661738869365812959246474882866403177291587683157227072025542820262689101937551103960978804106993435339107738842592668082826593224756985291563915346971503639250565906298299438742659189059299327379840327681148593102447383607879130200902349715707970431588898778111009804786791885474607655221884399865647767383299510836811951920907225905896723967129843078655537882038011529757994010298285699325322075247016750375157280943163157802668444469038894530128492053741308223538982531153176974209037641158769393081063525057999409146157459562371001507475722171271129785845762964001106338375602426418771327920865546920921270562816070851090621569997601780308261034067898647893574225999485942831966718894254755959434786157709631690316343616911551794182576768261100926033853331875193328255674467545040423248821583161168143068957760830030279527834388036057092606622307559798835361091368184231916149301072820402418778007010338117379911484268066405838477567878216230978226512222605109669867493344887708954039556952097203878417915414926725577931227857851146493231830864819201259338999692038744119446887446896065166944227735338882194681973220377287354675395605100081282231405800536170496825141612275767880580618807898569458063404301940472251886036333200108636196054423781210942776121232659323322554283713713555237178002242838119047675422998079407010907849149240436542669522545442094380042126660792296618158611436559894821000702837198732361387283339547260556358491058624414373008431704255211489281440027811208755858541546355193849377516278724714742158477759840164703001213088081505635606713709081146064383863940289736969676829756753409137632005845127082015409444822575556848711467835804789228656975544474697344160516181529805716634974415918870378059853674483096154962862133419695024742484299660490191205542340851549455758544733357690355247843024459865696272819546936487703854073124103440966012235247133264058006442316674177130879213847708388926549826607832423842594475674097655722813589434629019720370742479230133844631135719804261109239397823631953917388071377212004277976108632861067024545370501562964777845218274625249672850105702626976345397352442524776438801841972537381385298008302423672226382102191880252275849601734795569318237973265246433323075100623658540278684526253733688235295889458833585458623951287362458956739063459218667102741216566936963076680504301483579653367712234924346660350771343411352608983996774649591577901928530677696703845884458535390052582493497916096205849394445832966753316520868988740974872508496952227439520867041927228188208315288606944183607542286007577937562622380494412934900070264144619767109608329841976783531094257723467252822393529292937312870791186949500593821975893179815143427836538108982553790436355861588157131053973005633747514890616402749524547169396677908413966715074921407768349262587758774538729599057416850589770649290349527926207837025172164723706449291352967960001703105395351219858461846359322084332410935091879779478695892587262201026866564674527947757471931948703722949815008725952540603088339477527572280181065452756093700125896681312995588474510428471514353413761542502446447452771812052038570348819098313383767237990702664598004072954439467685825454725824414532170138455407754438290107851930053205198746666500468281245100337800545867256857210846582292182359413029824215356547020350871164257063511292534268291876643113690525992054335663501120598360591000054221414649921582807607012338368375094526365330590417820345480538730321831297106378417341647473164115517406707597196401935901340881328860337780878937017971579637681670175898108786828778988939350123513418029624166948652376280523843153599034445537251733603607207934475963827049784656283040393263735966916331423574084619272970087670746000499426986268280253475533316410711190534309778606840887644927117487670311402336182118860640291358864010943614669859049752133289886972212510271804472505017481912760279613105011776261313449736189929895262765118402334069072712347131507865557168892638874664651901944542723736145556072082917874808477440432137160760597499503997482066797184602382130946388594642251408034002993304301632841833359194080697641792896456965333048086645609144030068349564080819633770007113918520041593929678979217469366499095967507565926356968126962963705200336664236375551373660653067612600635020562750553542679259201880295024322634746411486505608833379812127550614767092976134779995582617008274666290406183321335180044601263364057406022129321854662399704729695473661677077702771217918279940161984483516509500496006630018341402855402985409550756191466454722386029064268746984685833806974859034885322849068669672574109809098841965926395906171569936488961738078918878187995163837996935672192116487545554721924657437101719393883596768043696119516983839935511941039621065780680901468786646519418950929174049128945664737855971100583124330314659297826279716474096691544328042921617029898087402902985260804518529867627610639571351915537488762184182983017507813657663714015418156450300017208136186030148842720292738756458688374420661050042376609617503270725639993482590075219008840480269039444177973554980363262479461227798496226121807581207969359015525327405135143847928088108485413158650223570022104488260162115787461693289783880353088245290911005004741276909655951864604169293983906044034595008054416078630934252061018304268379700337581667329915545810496265422290925039204285149407692728880688554961397849795324456313580223908225811959962369667817794913972952098338321721073893639367330382999015386812906808410275538858431556636888393982722705423680503031123666923162220038530908819574713348660360087534554943967435104022814466398140129482462411891324381695465024223407567713771319964211464823223488804783152338140095259655315793872603402916666515627897090421495709884526155741892252622098386699740924487728453838215121979982790032524915963415015580174266398027085825287649992169560965513476521179007495765520040342569035086797808559777345646118952155837018004454839187600920541837286403740055843498591350758271629723575800129812209744185185186056960357428296852966677329624456605265564619116802365452292445755177920305473598606928141242681356800205550952628194780224912415708216534316026869356388747085854376254014548005746367040946219399404516805535068144769101408009112561742746914466199985943475273058496828567439215430316630458312434372371964728897534931629698099033661015073586918339082325396204657731477737311083902344427011903523085481836547567032518491036166390383714487560979995942546076003529690999992320665600161463536923850508840619812923736555537675608322793571628131652873196201144027662506350023555853482428308206070499000898701600850810141086581407970997076668305890858524519412635394299004074484522281355240759936805158042457159665386887017739513049411872154082054467030241080676822230945944362358845738194312587059313123340859165129183423040208807894882427369536867805988129591822848948426307101428438338956513946905962254946258673898721405139918566211004615629566988277194638931139412384497719844351958452430620841095890443108108940141532323965338771988729444784976339757957540130888019332815048425968002161952405731530665716019642871768405539649705123208262269813412159355299216765409773504838301607587622127554189621695817112433559782214231702896501643290820664415742010007085474911498646043976681481403353386347982742855738496405175859923503162971663697822033733835494545204055958240133772830387594098568349134497889425747403313101173389919639821274776237337372802824051767744663657037726786534890673228028764316825124672280186377500142227727980891280401557794422357825150429683458761986750285898668607427598215259703645664914163234914370378060431917753642798712636679819749352388426228222933151910797121025428260436822447457088621764693406276244799014145189630007649419617606313057611300316718884166719570866431617656595751588038720522317511742664465795806189748802069250075825189888124912939366917722072770985657746156682857028579263499469584242221205631820828941149401858428676317159004077780121130497658667303375172144893207817436429181885120907922542977086431945926931600585511162447920199071722474277532234941750315228418648405407199355128568805641056961333214776005068683381628930090403374198850874098929475552916547516886038732453665681484251703690458413217836317516786630473918160881343024037355027994232650290949066492421651957756666674472929863324478913208280995788951715989688906513986255424653427793896125203150558134788922265106805052389752638902188327360057228834946889557183944587186693086903395043538376234206270273834063687012450080472390252914486538870823102686913134904164440293504789234361388024128369324221594160907954866922302688940559857617552467657295614185158246358362389463860098019727757770070523631381813520662332773250299274777072667481124946925978909104263324964898526835292548688572532712226981867389250886102647508096643034448657999053579971242003706116304103203482098324950965958769201643358333733141909856995310734386249747277840665343949422456907393932518203060330921090447961931832923906147742745009375448724841365953494247886433612916010920406637710967053761408919223273676993547769872049306907914940212498083601172731171862676886938719736157307679301535782421429289632805657512381559544631622278002622013496962738066102376670781563718715952928062037309617141052076974352803473398911362240757550352711267327093211333416314851735320467641144874764675117286552615607738778357443871221272903222727648712797211769955434575652204093509806048396555176624802999159081049921490116699901562402035325514624956623464628252747727835726502960784914058139401386729709260276112539684050530162899609842144386563807341023404229928272069596256191383996283380207446282450613571233943894650606885784482679514551364567982574615938031702184930520259917201350950722852095241581052087933920797501149076713051724116130314584740153016045799605126102616036982215478011126347904839204885086811321502892178222030083018283943541887107145989767067160788280572064514445931889064664512145261329812531348633067997025283315478473619003193380217503036002812246879854355194009085425746357089255839670257310819072566704770371997420270321385603015243977872971239900555084365878601690913665401811466327274492437648312450993883256493934659492516032070782333858973949194561601429437426008930446304417196316413029415623385921691750927948167361742226236007437532657152983465340353970436121819491906196037066315858668965301688752840990783848458276802061379590229174671322658722933294573906268789471800030982537962821977032078690175128892352475569309637746957973820949338832288579417948351443275157087385894491359082730957014155437419492893371823426205716826748368713326783167402860986207857482474999379236814669328074200896810263072836340261479629737599619517496076080145237172713277255336083709399495607249585240245921513310467588889607295385511591110197613146625727591657953431916070156979102364163494345229042489642414724848274573359889316814740485519342717868625444035337026554074109586581407192984290669833999031997124785862981273372966344288586091024503318224849293075968071974576447414870742247050898951238333362848279994629949472286129009273528168877689178003393406611451280975949052125193530963393631492665648252954735693414594286878200909316361978317102648433062985862892633060455677764065200747202252106464894070901291902296147424468926161141069609902807283831796319941447884871280580777572387378082943524564783380708093836092514001500364473852672545085000199252379299631674452946461827470081159153832851265275691400736339814545836206659664144254666267171275961711330529537724059146792018074581298015783640886903413862781412439812475055936613286539816503700669540227737088706646808915418904741690773963236453299323232333626983785621536520754704118462485798948420432083743190108832387505129088110907138832689583662405930575544014218805513568283079958930129651274602899107765940507714072554368631829272562907887021113805473254014612245592432487192694547230372882696306457626799072150958629823076815525021115579171998777337502058655206405091321790688769428115232953996678607045673786042669057466724470160680560179591829649560380641385244429582218913903025345936314157361775507833685092324544701615116302794565610721438650466492796273528820086169203431802872868391158561681349406378281157494782421864014164095432879489926310759264079472980624220613803060681455079696710887013070990014826129154328331635564276922592973120502466123957652849144394290599866312733103620390283717661678231539439827049536265687230448573288555722420765620247961671317374580197371408289796820785461196650409721005245209611875143914606669618792550898159823899213247702356700851781451673984688857994264060733298509798658325483551087874829922145091843249738079008741564879832318835617757523122825507775065299011799803110639314412862078139383037527617092684003296976670312377958331222346307817693068897220973344958733815891624151129033422794807617581585703626403645320365135726410232126364319454982788208132153018446020082989627769003962261848290026253110153477058359990670142359689891740055232381197438087727488238613637986902558655896745062973879254712221564741748158816219397309225408486243020395383860979062295225727693200788979562851596527504859598224672294576280564053008950364205740236858614990978159992926206404010210405988301008784584388797215888006253417768431260190574828054100220647110449256867437956191594810215707901260754225543345290547568860029991453961628265703057178327136533055465389404007337183268022161202686594041317501297404930824901218544964639620105748369716803570231181969313098425004690745483765469925667672773475255761098914451054101838493023873744548752562278419953305030018750801736586603992696062443347051865771573943110855794741470821557265451604371199198114568999445158221264194878830223560645905936825083114973096095136713074540639518205347418567582745358051029586708361651897715726269663332458570248805394967286989185726791725037392361278945966438017695215631574099057409095082495026821783637852059574464045137199905655597981108656469774134924461416916289688317296558885440462604279052643337583959119320305810600590691283405590147731219794553475259925479306514644373025809425724440981616669358428834495576769485292178722129608480681512888481015784966949432222350606544509762811038576529858762522313476670853651519306490997761334105407846338290342720765326456455746188972801368183065950422937081025006893397825651019612933646704409704053192000351342757285213932530355875339773894942183318584490809295872968662661049259476134653946429247660169686959786191320265092093974855878814712899335381189719499128219689521804113391215928324496116606997368643318684605416456907263155162260357955318005676950241365136122016848711827585598450097448748515311377697967235099191320893031469221657389064465578687463983641738427214189271673264031084889038691605132045251047239760558832781273788863681934078329502377127761213242062442393606933670281427437164701258736982854723871637681569942549373144352073923612065589890711772505175717149212559793373354113637766730482293838551266865458524047809755700552344185634651594946938206407638507806935789501281610031605770479630395835275806349059838272718301357833665118821419743480387318273771879485113974936175414310768146753790213628937883792727938916154034393257476851345994204694729300309737246505683773466581184901828267602427646814391736829401572657439393594841549109965611368967871593405387083655595285687952487391624483249741428597596908189430159810122081540827973447785479492678898988383638420949520476290677879316681526745737605440535349506711505588120959912919529979902835280692337902889609603705400829145743358848951171522401281909589206118143643301073792465826151011143558151787982164969117075507157396722357612883809676388846242797315141975880768430752228453543791102474703226235190942513005492117622909029974966950139253617447648449410048533614389102093076519455904173404931112954873617955219881302549699998449050964160284421718985240820105185506274291616521061004255813547552606408212868599744551913517490963670113854733778539850216338091791395588134998685244123539918949903765524988981739650834932797271809052092354278755566538277500598820396505521326050243380933920410225868753145994036317744231077516898097017918397821516376782887292165377091296375438296287307662096482742897366809980581531707978288689386695172734606763030761032366579786663553466131883002827984655371801968261455163806235267848076521259444422672925921466587135780996012699831149243189271098988946573174373451331829281795382221588609488959942626816987737705108052167141572766828606195909792041940450523632884179609511269988001887917802998222093217906698177206664714748832177381059422709906058131538934931084083143828733041284135390534880443401432081226463664159537941076591201641284268127128795775241799836775741019455867057021792422811231721717523716745352151640363081524747476468078516138569036863805267391810856872483461100620975162975777668541522771454720261961319559589164416564909873787724142933536736315863420726666357503185289765553250925224397866440851909870440530168789057508626379560115732911555226664202612468225399038931548586647611465574652720459395907075789751038522597134135188107185723698122304513262209506035895727525849586644986659087707997754066605137521826114714285721175436947163481021906968179670609042320341504460333364791093247380633126913520565005932286541086518238419496780645815069398636929540353360869334867857046706585081968017635951958475837963124159682620668384813862855548994756755078353900706405095766000944910964805646017143752308693436388126098036321598622198389042713471775506466185450095016862697665504416207382073567707653472960129177333439603842603059865266542193340382380192237943334697834633489238073111365940177801183574026192399153232331207899402442920731047007772659662497756542139373853430387722750568257385859727250085478749538642646880147596731035171189021806406604075428590502870044548986363917887921441568335763453112292601873184659797014050050235770076555066779371383321249242063692159812560166712032500635095079385649854036827638244057554667951702615364955161142296294322561747223037143182221321475630214304650770503742746349704177045134710713016722500911047535450237817956260274950916037551695498098246622709018961955452655903244228473024080232890908545965877342158019411827792456718759792406879642006370584247005130538914262593522164235684223597431956772178934954973282022233467669426590744412858598325791062510485708653855488132485270522522959516406593682982588531755305479553254292962034130367386504010780395474970882167179760299167999253997360251540220558019223937252388268442311655746316031156092514927765210468276920840532678686965481830717442955256695373095306221019817105962986383682240837167639852819479621804201911419164182100406899374299008600459939285317687744014146474046436214738328422573359583239031406593763564535697785629189025998121996085224221541119425733301295706954557888467215706256328450988429611207295866168676154262166416831875239541952637117911985397565720417102085624889161289669565771511775888877500405224224947986115748051930645535984674981053840372359459769728428723758167012610975051510227807780921008783529876714407641127593317854733535927170639565805017380474740583108743925918837339788927356170720505979536882248357037658464465057673605510277360891936322757671935521995339381377775681398253439162196472743822106221671367062276955605980364345874189839491240023660577762366966824335818109973541554696977367740606745381740041573821703795635991591011878763031413713129052952836350289382460453609310047366317265910727598650850535388785386136374871281848082635236049940838145729260070046106113632509457091447683094129379541968673205625791739887902758261535451098713087418606740768372468397730261559911782725260964324264389614736980290243496036349888711788040995547359943631395549866302795785491974242178207263837592903540637356735969731890979768360163752254356928624445816438878915876890333137217091626139230323457225520296267376489434830583681432564714481265474212480623726314500341098691298046058758732301942240158084942580839767250726820024255280360333905726069715793030256594652987571552793329364607961987459384028470918184363197682495451584258632303537872557678663100191390269685696732747814493837128151017710844207589366430980873615469058206106064188182915993402953304755409298779839722542919746487336711370273565809481311745715719808560927860751357258619588802533502826356413668059237391626492831319127771633020479743218663692679351094486579788675218812496248456613553119792897213686333556560490829348437970860948533418222904411238730064803073109423244052026327315607955761548347251642145192068421496490579357323732519251270865097634165201736187437993508006066756528288443904942131827334003559375354944772180417064362439274875287558379192360880270972110062402719892399878638198047196459784875080125384519556216073524338463515661938137517929311017457897366066928787596911503896104984251368929184121273034476868527829116206344433825790814771067674972083073065789223709397640961572558703881485219872024175840222822063272232846165344700363347676629497032629818053356196316067156695213766328360490212849052564362490388453211245028337990441178731645325012153977698376418792025288110774552918067558776279142019884049818121239228477962514789472177858813774840227563456345993652222538701358555792435460497376742761237134268436070602284683097524906089896429155159806085282654457517513663050524642849315579384396752329590308358631420995280082371946644006700773264445779187204147467188459762265628671375714297791187863034879190992124175001133332123720449080623993481305190188276281184905671670658084066599538502074741007194224455911001519327763802415976154094125731838660203543232397957803983908205746981223256845277965069208487657099076942205958218272249128063678529041637425504547151558305705898034605610547130112806608696202307765164071691271347449472169509731740277235775655834109056856620706512943518150693896376140052363625395847613506093148517427898799563476774238356314630234498328409646975647995347948572399413218202494635183953312246487643023071885295521170259936043405626141482083056801441349665131956569176942038599656335353284533977232818610532577856260696210618164864444301549040453300648950891580087246970584860723258888970441325955722617881737531613754982640357111157106783047557127932214340645524780130273931306888443300294330966672546174586355905651945346230131945668400981495434846418781551338025249260630290467336966360581640162081704057155346918522196047324795082097857927936243254688622253751247393415539459031783350444291715616971661624275475773607341499227847838861251180758120242782500418510326315373313505644302190926893407265669237142879730487212459841351826685522823955513137598780277786249710230713491346641942304577048859950468370014182766391426581403926423781076559771310118618074795201560457625785977702320781503811414855474880278822978458545622695760062961966373118276812225521240041868942959444409495190894282591212386168643477465159912537416672699350543093458553896933919982894230839428957408761949888097349160837669590803893218996091237104432576497387066203522425799122181057654835865694747842141720649302505009566565709310195210341751446234975033355323906992255845837524692057741270762600676439512174674299571775562942161387000853051559347466229911303038278628116699183438967076826956399522953332606577956052333558045723204834103386281679525351221187036724027125126765671793314053402678800762584538163954658088251487086185817130819189418564383638855539290141701859689505341324073876318977497506920549085993830811463258821331131571114644855119859552559182447424355424461405052939204154936391847526789889794287892085354181676034576669871590377274072101668248393403179862773895892513660937294155686844987262999849587467281407812473710866282070884117921920813894605543726918452478509709977787474400258721223633151027273543450785477873367168985622425417877501322577306655669864162703489372211383136023763586425172793396636847796011678697988209796057686303938464246754913675354735553066984644399234043181269052457600954928291096113290287182105158598993390980097554048378936753043427110543254768850102116930196179350006540172107616811464699327542220059510850623835928250574636059030440517675186088336580542947908970128854096621795779785080777096922097051296852774231557420036621122709344049245059941284819923191413139030544491626620442296966338452512855239760075069736869861270995230116476799283718595227785342013697966113652220378725187818417601000889735600151215909141800890615695375082813265239359468842386236105368239733446494648038523585101928583544716869720173811813018381443369552239769858500690935107072315041291335259749613704480371284443816774182537167520289351248213392951062112851000074724740933523777151120870321031867202596186400645089519925306526510545321117901896089130222884910662222908886804526274751987265823419655953440270048634134011514265278421089933330126402196074456517878577946165871462474367280461715460992081861259437624715164541077306843349199791604880326323883557776248257465491423745796286225276670538382928053619007616866698821479370923116716921583736526576005238400362282962808801617040607166893889290061754929305377823956982930383358168508144802019639688575411349111839131387928472429508983818519815694559575166083696736210528285947364286093928935505109096776130174442550278746313309704353154739992068546220949347607726558969788887930378515789994949780730680778356865911717734568298543920756033537324095909730872137617775934684921595286049484427955337831352555770190848981201685679719256699618896272589903034876024381842360138738077067955203534630431436993716840899535545852584699565657025300625741734126636207655733786845160042428153050736737576115544957549975323563252302575956343433333131525395459409422457205925065698658322447856168732438301262759220958058875973312236002075672521901786453513457953640781121513793404203960965900850466828539953006561850436703310011846779241132842727958629011961416619901549982130856858383767181098521192436979252903674263467729855863309108354256343585837406409377656824278493758800525985550552277367625083885516180126212930260385973316659346189404796516972175156100242501976006732788314379219821588919002097102995579546449963419822166870072235457817756655727374996144387567922360477811780139474551469633891965788512256469951372531006492423822164063436098070051531317014651271719735289226757487735011373538975088780206501122681811851020618536992663411395463365109391861159842951253319287731657360363906505975947707663447037224198910691737032793123352154317550800271251283429604171097528625524127568691648258980443218391039498086491654594329802316775350154073527714562537014141461602368712534216546350314025594266897174484155858428115198992483588756738316836367649685926965057292449469198722565298466067355651396629694973263077412283341518956991664093369065570554287459743490100275668423136105585216393995222438397368950150743398982987460782504388923936901657582067956712889465718121228589359506073737881797842774404535565583505020617676338886308351073785885952074284565548623248398477272391046616386235586169183604249566696879733261715821406057382463022987858507890500168703178221305280248056731372361703495770125550137007415041515005758292448755218354611386265993804419500431991751118363931499460764991520956678364382638454096038292559643117751934075913294360849713951881228566719506304094250760672737174935586953972202036982583201496958512037342857668631726420763178931168186441620437785073660735072243241818917031049468580618271001826791753327749931199874608984048750838283502855334764996388816184757907344180130572157412407411231045238234195154073629808729547137093381715160934641614093830194630604092387058499554664372026626598438590473580530572749385933740082466452398568794226192162176840660307225004184276997818752656980851760671490040168908179440930283219315801638421176430723569475317175709843086673165558816779494587425414960010015519425661641285840986400714357684298830005063389571236679256988863763028132259596331607438504539251880493996199238753137055357151695739257146558296156197065337885710201946385535076694775042656250935013319112245423865808881889191892406432474822104856741459123327485990746186203291201247444718278559267576757415321617279371622417820306123467306839387180307142961562340565964588463998674561473326278178879510684549497254345743717425309393874549789387151963549042403357819142158756716169036456017641427631101916246780185051387987074032238070217122763232173042372924643268964964051941252609522562744868495630988859010933677688915608232484046880973326612767879274900794683416708862240975381551877775188069366082172117343549645152748091248488141531914401221076456243021764903733605230442284104983393227951983652093017682750732510070296325711952868056915006613967994486241964479630324004149116890063151136832366651687380182589441077130400145219618420370662881746872734377873508929007441980969172157277186525698235932017295683470820657302705132126641292385346373431264959341731297365575652163908687224854765143216959460662663008683310908135175282914277051272970347638619203080657444076781705991868395686350538272739346646746658268176465441079679694826530873393404176205520594003521036305273765917025371323088389082348060144023637303107300120490847002091444943818781917110610512281310869101754268361108060675818856058446153275746280034549481904878136697763875166055594113528848894094446845988939041501847184513036001752555776423534882293425003657757858845538526843393709587579781851251558072051771099990389229067562848030006780167287670199091363355785862550470487266235093399057215578546139232589645010505739199260258949722314464684750083332171761427362429789462909562588117380098876545918726210780259740136124682838981507046762181701859637693688312106693534046227485965993952334549504245819644864482575520481486133077960309331994768042264338897108922892024596344758272058802896512450018781612654287041194436992207124088535682089784376708276918687652522058612516809565204546627154304016278592321995360843328710506256197928024034390542365543676805774551433226077369296524482528706898783800446838660591223793323466194100463010668969014381120817982948887288169068732268882257163681178751717635450839195217960861867416416472492850151356723921662025543422158855567305509174563409462327384356206215868135754211198531485502522024176827232116135255541995517571970826476316797747399918524236158086604547473219702350576976992437761694168396596805235855947417080252959600941427982860606293689253393847567802723548866467036543200440370040890561363275059636600079093846686986596415012543225278867136357458823466647082250832613160573273187555493992523815258950648643243993882336819890560042877921557554798626911027138770354566795553067253969551866967685635885245527659020256132201953049887337226494703472451005846701124105931532284115341824670154021671369561009031520571360164384201660708784907843343022743288674249536841174203264581781154131389506376759055586496765375901261696460102044063315401563138434682747003363942950765745870371162713439444429256483151211435051317978878597207509707775495110951517069670559938703599719415955042405901224249499753712575308255120792865622557109795082103082798293321113847814267492964678422867633335797991550485953256415235661600864454681942095658953724008769473981009830361934411556132200894013097346916294138444276713160904585649017212826011484287505037424809039681763595039131746400982525883939038626083617440032502389268804293980019945209959860556612180122009078839753788491757974175216261046391984670184078548200607518747883848668857678646392003618730517471624753062372609359578288552553305783646530359031410844025669622917267130700853572039177610228211193236122638612366834714906776802961840614930278034543796499600316764048113909145101256922901692778197023565387601351260510087289158525197424224338737620900007617858098141353540532066232078160656619485286419072660978460777248061596940351005098314766512772659277948931410598620579497750543316746014465194724617240889448831304226193172306174231830536618321173517106533628852765316674543448436095099773717015299195444663122773449709940198272562161284429897428274222901611690523953145634076913968414895519240159167366047720066494599144981390772919702589746563725285977112319983765808280375494053238991417765030460726331878393756936774307493776013464623960224893121348100658887430221462459707129997749756142439132833589340954344733007426810887274825081590459046500335572555477530697349142892349711369374510187306369419389794934177649859797507555379487201640684113321207577006324847542154719644526317900485143337969912722471288029585637760442423562452745332520122883275429948878713674119605667790416157280775099700326085822899719236475206673263727242465528702126971704744887671891421625720755446515028467331638546732680928784411540595899779705484841946874584143088195050642338706028160130429524950576624505781448111961809379905696642672214706737850592526475970357937384928489215933430510111794424382136189481150057015224690505157783332314740488351240017295782456154273165623025594360243404618557231126565787497979747724698782829505612562979088517700545141821742548653999290202783679812482299231468896945201523839846436003226746596981625874273797828076358905595603788050805548029296398834995083747555465399556227343250488481326914685174261874279151040558059060915836149681414146244565287358053180577626170082044683594750859068871537457054834310635599027406021318486821888194079282033664774843378855963623824342630157647588245348160710169309219983966911858392926141174001724714597376118612501298721562104273371234711612330583865907315505912615108101573667462897690559641623202318968075648658914060359623395596224206174918494289263606688794192630948297992142776631789069388980541522023505856022736046310480632642839902864549193749889155684618316235310150016763497688210109789528594142863641774714785659219006851669710341113038012892815653962327082385764559768416235513222053020626627282771610082286455983769273258807756706358820788353311342423820759618699512082333329181754604608850230481195368000172315709565523476015098804424153495086970804957905263571082487448599698352178549014377814636264670205683648741841685728844196739722002170830292202557919951334339558789090904476329311406806931650916026431193342447162416806857215449138836349027970393447878359678298632161904751874111581457070582559270472663137844710467651905072452352606378775164203276869417192720112927868305955777932094824314489334355176374546739599016529042995577616322894241254912057309467303519862684593933799220313271902197930465768171959253087025266667654525625739838648788972608899337042655545776575670187104811462997040251400718717133754841724749677547418825855816673871866023447954210157949813555003207401977468037335015066782414157220142859074691268667958218115680839511211727703418162000114388437574658462961444756685494423363792767798743358622228649075763843258220122634385210780002009285611212863205061900262025814826573313700412021498383509374612599590367239058747491766065413343063902503799077616810988187015363141347781355714054206734112613325086186977424063138679839599358015498461967710762510074155891515189173972025276114886947167699454543883926717796875079791864534216749410127335083948783859752397381499473441237000013210212924437873819267016885796815715294001150196101874416952234988089019866621085549781611622179596412052350957462508682904627618448250605708288936903427265851637861934444352335445305526223563254840582872196490706918112605354942427816559340275500442552481263707401988818987302160832729551117710889291803840955981619568256908060807830061539146018910227332894625389296676204466334995448339942174713694994800081681558807287113157533317842003280064056592588698636644353847724951253594746035123395975189801722663408023643729507789728497231779267771855022706142418213431245352943281358855145199690534838905320046118835868435793584525813116959076849739718353918880672892553367995899527595751038696797282931838140807639914383690245907875650158435814235762492861749899928533111344438250695515657913947873789237663370591448676327817490312698403871985035060886614310094564912100192114568285699527992402248329854667688134644892593714961350429092523667922640425617712601316138764419030514726191649756181428357477746592025411902076277082978972649576755373011369329834072602988960025436617222669005267414743663665205721893744021493519162519627321049541836970098501734947263444638689498047730819133231866490638446246950159513376931003492647129990847910877162644048409963329638828674130478124544109684159124053042521900408787361325690158602239632029045179790540520025188311317137045691832376951333732745756003420456253429662049680340008647736138019881139703541214920904927496728772841526436670234381029194732659849414954969746710972817752563924901226915801421137943835584999426332510973976242705874855675944555822123656924135004442127011993062364832712016490887637306956896335963110819266967774539298617935612334773557193341507160662291105161871770139517550081239340135878895261452427889868289150581490175482101337547258291046516152146963623665223215720151458147980050057743659031640736445696666634996745159716817860636767454660982504897145852057704456601980270491409153328677957428401388651552573267910648530150064803490255292072412404280524857028974775344100972642368691723228645285893607673155958131692505781323931255202693182155330552966668878232884376303192156716094854907000639295667155298829540462930169075602382124582461472765987294806225732814027821075696852878361647496062767888696466919993271859682460232644287994251125842465736180723363440883994671179736290193676435223397070635448151606242105904194733475706065416493176240837823593989522300155483044334432447391527313945812708515038760294963877224578692439535732445902151201834518649638609294727018492464341275168539982374015729121710336527322604651236828507659179986928994391854837915382217137160446988918758552209877336081129716625223675126194880684484469061532346648158426759077283126255000434136044404063031632282104260738769236801267447001845238572307970627948199648274316156242492988527889341311137333020612355222311450260106024798842147104760637987085817097023479345873977571331229877551009144517062786828412452477689956736382207999591206100050271071959582237583401173738341187460465851615459885859071477432489491007405784971013553670632359987332193238170753895418731015089844932752909395480238533850693829995956971584715347670152154430688143724997071040297432961230083397997917652050914842850353851022339707268811200795734815364169623497642522505655068538415190136479900288777923115276318987477345305676913278217195306674913233093782717920349813365722000747277192927070572343310308459576872822154992288052197378415587482993798074478511601399928052104247981300480601834940694066586178746080545054199855805933718364358233443618865723575148321533712973998623142021227409772292702269703451215377820446429922294128167977450018387906467535778935348669450538790053165216651555033563547608351223823343952473886606814401660126182645159913661005554636642625364151022216000754807183861848391585140644057115393983219897853901955350903368064108510848428143303219836304346760209976772268417283798819279315062462987156303578486354762104678621432400399783258361374722485153860513337481602824758943142860999666735626313254103938190532101146440614303218183791885122435070567315493295535732757742274610462659308471748255506798529102346311372089041286315829664686365742911184830199921316374015210480415233647362990478835706490833549784293488879794861082722880920083947404537014746644557158586136397538430854429737322790502509296710314858371891413727846900999095505742732289211426965335876999191138544099233371988722240198606070039780026844164795565952072506999908808462279403848738723648049652027743682208941808544036529840245501342877960962790234195214210539041869817225798743964047817420272642283559804111746447494210591043450653580016246699216112089438228500510857777159684105933393017909397933103948599551854023920459402940830554826085725747255294817395089467337394501445706764724538038658019631133666304396634217764513102462430055091957136844763814956359518166620293315000636488245962386375935122282920407295464899643352225635596331458735472465998839592286076474214088072764851920034500193481108438824708947999056200842929739855729829937398489815324985747129497632264661885245276637965716753847719995781026407560143384064741762906385049113376249835359179488769540935715363624122248566129012610418151312882624839575970688131660048118223710880774705155862736896261204415565247935520211015645318584988669092455155183281524989207030253204854949577207116559071784759525428445191720491171121342865045664755742952005117085677371820577241174241309034238578432887427179299209179913664939674488954879532962627985997321149125422431672132777013334973529325152943832679339586408574383121426979138731117012457698831887631042083850651414436245381041183384619946078643053474781636302681310193567302861665483714546143139468854383960371765931702710491848190097880781213212661958473167058292452547429354506830776226544810954082755844260042648017922855140661346098703163598622635386947781478358528274431118615354633365032046987550911047747014793298351463694980318701060780190816695665145339858463814303391976828188058565874605479846633543613562989416057237541277786459552730917918631203859472792890731121851889393050156354854567449533961682003014838574526962590448704585119349288747046355623528049808029399967137082600726238516096021542706458210317648806101297380363898361848598290865922162594457327785342252149431283810228598727737774564752799471463054840042834995640094140025141170159547753527117717339877386630295398914334451815253614134819154138076216362237238511930364173792093472227565666585982585312944558455810913421264162204559927702507228651957776444696493814349682648059350580338164473863401554180869174278417854329070773884800127301377463875917124305102968082853293255028454844029246670775444401949328659222828938821315956924377869291747112001178313514518398106640828297072542308352775699670746158449623125355263222261782363430658572770819814269550578162241032477062990925832873730622319137246546356082995326877140981861194922833645476744330846218481139684676793773788127323919126669790766952179839935135785183194453856200146139644125805076492680499244068373203227902576764139070829365899465547953149792838086356147525489334626849114881043292911882335169628620330420970287745982428168601244077254901715382954106111009035393705509566071766393878463156747981667747397686562295822066297308748334344165004748618385279538255208497898386941652085999825961152595960749004117655310400600715579254829114742196262656636084080000344280076695288924469348248050014486343784476529434000055248961760691529445867368570032649418381709283516566539391997164961783383441588898494505901344436922457351356571155281210878182569207381669766951341338567780618533607432604113315799697853792259292413997029985608855693486247305679465038724363988086011793313713482928633765536851334238105264126495281161524757045606759193371660178774044649913317826841430041314338061827581683514625065609643243881779443702194139275757600009098950346054273552358959123890752896301183654438080379392380151527170893771527168560702625858918459752755421084969393639152333319226482005025226392565302164866885999723730333169103366199490909968092880488416363070308199548384302203574401662134755242148124524645524269487876455812102230042443168640947259210822658724099365912742269586857319100488341073950434272987824389525999685790436283715126179753953643608438779906995545953433351335611395443768171786459834553016868072598534346543395884109527690508936778882546248342897530958293279006024648526150133886189530132068091538932741047792041184830255005595499359861522626151223981076897838617986809871194399665917591385308213864951685589616383285059941441498033303770307468395388946003031841106066576310022203799782189923097991519184354744737110422055718898252367207484254926950952199637671998486468216962625977462201323930514971194106056436280613874555860267752008352148610461862459346807223648419942698436808764916441034405618502545346916529349769914813415925951608113850102524552796913851852696378966338883698310650111295376124647017725125503165983047935139012608131764888262368634835331837403736219637690627863934080444920878567773426918532519391566622351436205729158881168518568635754022780569071093129936127235566818675803608787276408670420256018130071106109240455338532512978613803900235688059106189899017840034619581353798371609030258066348426403602249747383551305466926497752725717539503553755285280784060996324916237069902948725193317658608151386770047845706753515803648986784971035132539891132872181636248766839766423572741712619788525768071808151816547199822259457946210706324385122602002084726980996405880869113319520153559831860097918053515442780108808824390920530393738174043872832357095784279211344797126066925659060874308553545880001775488098977594704755647113166323087518291935892737186124907531855823133851815207067813836796795866042992851314783187098149447342775692400451552959956237835532672950810947702338625251425143295556612280225522651944423850482073605364638996911711951078666185981421402311853519668184893703445884858565987028873115201254726760972482235674529291740133317653213854663798613621155267370145518721158438628242738241292183225342496875413148819589328682057859257082469161883713066717863287808891703128953513275699164049174306726121139047221746051053359078315448482453095369878549093521767043493355912056911275590183266010754037411829973258808693305860863203020284976256631862721583410735637008809642083807756327557811565241881964783979852064042676227106479975802390095894610233904637771764894601105454553374193051775621895438971933280796281344924444539854189385487609239344608201429886340848680931461965618938559667072392335421742961010355384288351268309689140720513501045101845319796668811571943874706350499343624423331032979369859136827266066291405502855581084082570582826544105799641675051472638480512483559591545499603626136958332856122680460638255471210110234688188033161699948989976403301288199445096349975905129966962765258727538799978224554586391083628124453979172321769966230224755407555048645317611446353458542377974270904064928260881900145657888496057307341925552777274909680511205510714615497500174144552019075040117766473790145047122852126563955518071754339137344892778726978017253001900805998669472720535188111293601713042906606312454302483870323413781956500472658759492811151661585605802471539298913872519939026639430340730284226043376275809794018238738907953767095120142035666448927458635900391933354096134611374530727818954595803425017767882705091138316040648109861528082621712555645848145066811653593033717880736679199414678797054079667535928568508653329592277128649536443321420798235599646855561685837957590069180910522343726414305270471170268697232404104072136187047952043551266841037193243366953554353073578991448629772907322776107853800864891236839720475338427134087632691782946889611485550444238718186570923076320320829221294743766232474976830985856970856839991940791622391514527289886076796294242025850150220837466327915908642550375129400659879690547277729392273029959942881541544443507669351776736467529890351236371196096916476023265095938199655204906705448265502476898199092222454124070557559853501739058426488888865347365342232758919544505912322796547705736711272711925592027314167342621781189670334571728866894681016820455695741405986302792767294812904867895558732303986994185122366696832758651389758755359947827663814180680964152214894164682249144851458392516833321939098815159711423775975932682621126417630280108536042229835181485838761429094013259968968989682843239626467234494574689209042251614995221227711316049532095389439631343265423104063801620332200380413928012423568979444278021246431014821856310846056027403990473324728171949416828312629359720738880754661111002057952219456009099498202189596902759675278519505797959392460425263012537930680277833568515147117644195178882578324253388608043718809412714115433870743199645978757983568054623040560584941107579342507199139013607110912171818139813230150433856083073094242738050779814179098300972455537420914265895317378905310383225126615481294134120552562598979410242860717417461795997689027517264208081967727479721167704011683999808756982358673109483923502283813506261463016397935558640079740193512744293569925278225516016552528214465299428927719943852237865858554133652839535747238385353883635746062505167604453625888930620869569523932024832718646782032920384109948684949369223825828522677109325992846193719978627351310226943743097047318271282623030493125956345769762197539783237018509285451423617639893563082910802113012943137449035921368605311039081849057171507126627505630945188803775528415161195707040938145223394353710321751282061228205670467404585729142452437082421255792594279556951450957111363653888238506391920462840218411376025948945701176726629355879943779399944381513878094149876497933523575098036850548870662839535575798647931524489614576774726140636444979029441798513384642624792695907622250700023751070975370770169696013215930504575974512616892535725517246076716816644781656110083501064636782582865570438563792950642366796164405190345975572943244793265372934028075325387256545301771953513849920092866177715068952639285670526612758373613063067405180753538162648185132932804896993884397006171186800522233058905078609109282102767920273309968405432009088011629790861317158683838696909841172594796458644275447951782516802565268352860191900471813081909367548677558435668291455597064673352572166237506561183350671704213002145666025085404206450199693901780685870636495442371896530197003396151037129187455046830013182218142560739327733536312968102027359597313297947033207202084537299585689916597741032476395412450581954806341172072158473127706548332938521148674054853828462268749313590589321522587301788508928272585279551272064131239931833936412088254482818345699171098028538981064531609384550041003082652808307660083534213191391499700277131716926135611898193356017863845375085697985043002779484845056416639403660940745453936449801559558631463524727189532358965046269293866679641117646637514168812489856947750808310425545073354891750552973027601444009008461936901110445836238007161534186296895201548857667675902557600780589525545963025040907346455928727648779394147251579247982108263480666992354955397228704042489505163944224881556420709164598709650662839363296747643951277778532525975818023273489470324608862618854436685609542532088643297826484310073925680336606493069454553960061246567450846001080045285485367715668990733075338010593803447366179414316860694679695102917056092558102242385443508671727532431086197475687045783025375951431792017639401307783247687122600041471534132296158123155086551878850433327939820452571818103954679540048257108199881339973841113937929790569973341296560007617423653620198403634895705990756677004495334928209798307790567407056183725392098863908751455545484809893548699317652013663771277663212671247419511404207353704442954434413225450227049453505287160295784806220502102743867764874815856828685081174407018592142522000760850328198980338114250707469713944675062477522393964347735425376359510001137718403172373697711434959415954175078164209022573021841044393481542814209828142591242090816679448121352515821212563860214330910731799210105265300905089650639699648347057343157928147147126076643944368707556261586858606354224577439904096796917515590122287446519652238833061253804449252933050516719432401046861766244020041761945327946374285401737425485313556664667485151247027354163219857419519383844505423101707818971304798458935395782232539931067440382510820261301057679654566929721208762918678421109434681466720119067974808123094024543992059556921590847391190797976873503271754628160359601490658677821584879924712012034350425948374585841597962466230746516942607883940197160401655727733885403812554528290212922783069520853568957544567684727107290225101871547853136911442048133962233616734225927368286946838335541956687024370477655748560663388585567605013223123727566052512198411152308121689266482765031224793822863058175253446209196017986497813641238961724849770975636334753150610226437748947371181338213939234142948566991700552077337009835951108726854392033574692362054536055280806024847156580177470836500160677352440871139004749333972768830288410741587820938144871740085179725711834739453864547500500965587824085167896099682878423554873458771444304689056766171641599290682341505785081379518858670826206377768706886829674012838212770881816590100574516319275843678389043689466294595093472460943152350862126832671750848015465450334369403686247247757400637814502115760038696949108708256198714688609284123071917098050067327620527345603085795057699533671083185509350989109624498339802787220851965171347922052443715051533680414484384546817400377795968051526297235717844312394510104533493784424135697360832720644627729020160963604563382156808364715609334829666910804229609382671958303975191200632741169827363056988912388230120715025732335557778643801852603538551459526927999032713194804235371377473984846318410573438136531010824019754471374925111420276698378059760477473246294109281948706948154683753964886517587472313364435665684948845755977969671877273643793272273769112561143678554867955246876607761399539150160143515275280226369534470662238093932351200141362603971810469330586563713443293455835982513103037032450691298419855683519254932098174980587068801403066057068130594738238799802490472097970586447234780616512991521378724040474795291015086674269762249438169465793004418039388732130615206470352682193592056398059732731735110168385193668912816217744041729004618800295135671794345762639154849497185676098629706960501151027055565256063181989070430373516844748130711437445427955454145077631063962085598831677132873888671419126402276375353404365840520822937484253945684366931965014708427407904249761542649468769473820923669123201097285336758331206043691090262906705688112029995616862206390195317921517389720637609101707946291067640708905022507011647116048615430230934222388715703008010576648209693310459455665368440850198081112092356319566456211818013417121321788753023793569410892048822868789757340954833314714290066025136019181789164366900665499827493240985151488692606268396436992898263167343895405610185136960228721021746931920375446854405712494118455520602840093648413804903083721318686035923144248442401637270353212115991833817492956947780620047201614017723009647268024917565268409695634279880077317808638378953033523096864922143432199319052019423004654456935671062147234632474698579223827258352501239812945757025102443481948577461359524633149462206710391334817309463384769778326989945990996972013397976699166780369644593514146639029677097096225924803527136786259121172360067156539293739555218466112678560448618156906694875022417030498845098781246498692642395377823030189313492909661323579471144865136811909964541355356121174910200006218701110503239744630687192605138680316423948615504284315635740782166544291613957783695868045269062234835583395879547491461872854090083324525349171074786508806611894642854667756064101265033209628703644617847747838865623234711034454268063745270526000499447840258769008866313447334336409012187503740567764999268147224877608587772562838402548308790028007342079778309632672395536032439890865973988704871167346880017103493527922018510632121682986039951053920986772540723210354728522489917911283227341235391520998988489068487624299060767663616740347377582039494701489366740486751717807131465694800846925875849643795287479944804198799314610762995594288439007561086145263828126327573346081272985071745731177484324754777111310052076522557422982518881209330670269388964790817182706600077084887579787685252337872607898337955203856606202816432873244027859326320941954178963432717299118897345403341712515672892119497626990636775439318389101631042641788302796997067388120291790988061755358212817982035867958007696349983761014785278473737200993537788194487602334812239167310358685703940292841761400499432474347049216128094117964339186855745389813724754257562021803656785372997625439224405692962270682366882615259481524768208419932046733336041909801102124751746227141641908282670149281957068266213695182763821750349998301817012569511427705023071298656038385083235135007829535108424342901927010813581697185231109426602520978071034710223967350965065866594676108534462661241141314148900489597794199767988581868138717963310108442654507306027968884277458326103395255431732563697989364414797965218504953022648284640230567539452410250462586590353355408677023090912513106729757251384473068273386918895706422804901543935407966355181587188247448802270700820956274814041206568992978912218040396578291305290413173697897403566321383300561611266239015944341595039725965839028807114491634528068747118625819558539525225256750858636526130647477156544569469758422277803530966174303585917191356520338232250021944883152464321028319520937041549165696100318648854729278336242061923377210862235679204990020707152358275075694167813215135810745607621911047585059093819448192536904843190347035892356071821530897395975833884711611268049530645929253324221741019954886895687621164488583227707404893247000151488824512991191696607191897539913448461701237443813569410733444687632676335354104316708230602203683952172791825850659876902097756756227135368634044531188041895841030209509040143482735416300322225541754679105224475671864319985474791690716049651080913525998758629272822283787858126501641430346393926850497393696562307089080524003264382171952906153682387966533733891922436838744354123458742752523827316280559628124124381569240907508456089168931063469181992532654854814822202632083085772481587250560963111689766944576593495322682767932690031892899322906796224307188867504838964051522775398478156549155956639438620728435490175202718358372581624762057799559063413862209918535137998048236700927443805779219728748586834104694096035846168911681560822603034058264784060146510342627382817135811008909890724227669844298946002840847035673236823622040986213159192303193163009788929604586514136887213778941844838059611611417495182373354298608643952824470812480507806242542962640981483641755036243645403571763449839908814427939550121768169621000866372014619592376689931055737875846826687091721373587148356421612188531847812950929298869908280824330034735887288652340524871245671274266369841891208057152944967218403472980686598002734424987465321584022704753411875246974373377112910648533269390844707321840177628734557583869324721172170822727642413053003298992919673168734040783054422839125746187934516966333090182927214447270045855490049265179132338693871064634739801527455925646838999210562267793123765829348720307242910359348702937051816317411704577207495336115773320553363342156909203472067306230607698466623074982421658791082094582606960967700857553445933300163607936992437995201471579990080071101843402594803576200241224905136993635983949193446145054467392204687506036713024211954425318184316770301727808923545861835005295610303512195274818713527251116593693865024587452122380965096078936929543234089962488533789488964749936639120807814218361687484424905310352514224377001576294757035336884027030155600515112741303145562108292515186266115095935078359548146983166383865003520045667915552892184217264707866845524572183874772692811686663237311145466888675256754227091778797320923626051987481782889708954502516096766377288977020823678711261162451260960816614409903464176110834390090194299639466479118136378778946011710032383782438280553248473389481468330991610951060005531468531112481516221503526203612063637607457011136572422567812658932570809881576022502211106029599746692759717319524840243587313555465604724694424640791095058966518404092104990877909434295805496224701380481646011053917984711405424133910628268630580413493025850342451611581912403381026820988881094776716891432181020303109160091532969930272746854894688811420945880189296427940175720735461961628604561948537158701308068173712570341011459237200943522447398827297455912891187478041465329382557673595935444857791977913388853200314341204548815489669848882258499188757081814742422273385888807748248869763026915879136101505193484407845738060916754983578313537015450752397237945855423965795642648169010550150432141494162453951469865846060285572880465073470702119111530869112974509570050393665540424487031141156582921824534812315467828814405217546744541786214055814799498797457169615778098312292540383989614045100717367188831351086808210759845253782611233409074248947626340048033965183967018972712448811854967943264764160797077002662129231824161655436722654996493032513449275395920602922102149352389536806873840369629452822875666904537595842368055721305899899128578076929581082360654633629805476464705306496588933609788635257480752283452438265867874296890885749936906325270911680970510997974708451550693161736567588624229626611386786453858090299102844933872445281957011094646426756732583844266301438256418225891232997247283036595318761839094392422526600677913922296571888184135508291280012023085495036332987789987807515768013862720357337966008639105219648604546269404213354469460066106713948857852396821906805450214545452691851774435885477192448360194562520697755567411104886228686263537029800249026727160405690054133627427815590910098862213550502703900010095885595762069257290202781873870947231820969491911589873482252571271942296869434506721389377115702259412829469474921688433779446448502796743458458039451125438614275584093031939867552812601987448596621915867822416311406388452644335718300487750114885058220477366548678490144542107609117022777698964778871677641291978132914227672446714641878125973989281724626031683052314232076418832678284448268800636290005468267874625944049686776805776680015712157054145379027506683488059345188926210740790504047187211321351238181430089653096119005545099808274454957929599010523957485942403979539545225996941487085256643753948578086262707740391475164065542614238292841011121532538932721033411673173187329944295162502681002865764513365687603691979903462224723418053126256156795761215407241716533137741766793812973302338679885974823531533028858036382452830899575023347814097168192469806714116851118448569274688225909843401422436388096556338871514858814638037067590585383432625855124105604476387720677722002075455202458218365505444589579571089703012737436204360093526316779909998546762136231833073500373882811935134829788063079015407692187765637608334449400900639944249309855702662439261398780372847603158901003728872570668531129466181996949751875762320327067779035706507611286012527778482942833890126477702012225680385493042617275643193434649017592080268358445850571865849796498751199693614561808192948100424067997495763150554971731462538369672957893294597649576928767973275368491679035960696301719459474161775648738258955718460910251440364897099577311509239329699485928410901132782216532469509670105859542027405923041988523275179190271274744962308878094004919343993885201180949724954886641967371041101197751276412983365667834736579433729327445938632496830574026538026221802619954868604676628345761943738356006362203861864001601635430555882823793061689472930318895636835656598074593716191129547867023212961904089097535381766168880621930412114363825164804789744811451774099594972700932161441887921940616969527424459185979983297214607993333913778187695466290761076046556080275741638034186923495920461654008489274506028395802290994982859875990882610564713408543803992825039669928361912903360681333351746639990741889265038107024072865261794259229171204497876247455739238333941637589851444049854545756497899786901024615406069496356162135330008574456438922091896374554624608223642573380044922980245775659925564087733454249205641123528765693584635752114788786887505610184419124762750790444746807812881397730835948955485178726603731236014583884303890346069023584426475453565576811703818349855323769442816338690159066212827010704579805107240080105765219331113666867108319192878070802160864537032853577468522891811679839461846104072987376045761075581812773351332121649270646580075078008583779209445991206694418366628891092680140771477589442520803291039421832568973329166645368547136331138608971382065940251885341262682209072923506707123883622574147021158934991246035237599982406220002764117995701903072528975789670365799547770972851890664239989209213262300466678533695167371376429123383029566547265768850486322316058614574303097599951636530867139021795807060750932465590349055318121170708513681074055041035364359178198779251707574977076929353526192387622019649748466028726262271802893404903655945989011104006603208616967532918470679578438684150657128857803197327146892114284547351335694854182584427192138267352197977934696736413971604117351560314185869531073657201852367747180341170560494571579982998396814096432282834107476026438947067711078599671372773791615992388455781677298211704281947483255419251052806128494271091259865414310239899146505239477280544221262011933462858697074868721624851271783471353148400770897269647413618277237909579881584472974934009133234208572720017347733806932198251730988121877823195604646372745354728895503828497988891890485669123094093706555384712976879990754361595486285974282478356564186214840692174661427211127706921902589036643310691979582272173796181317626020640949394845572683988525630783606905659808933662751689357892258514661817338081932154240608038126184058682383229324033109979454807180938599235184456467864494433058269451427490486089534705785201993070940605748415637247280822026146936055632032297829106057135913204983908369871048189708235228581776391668163034736044131300094546676262190947949913159260872746496958695032103224964526013578482831925377595654241141492098677252963592703814497582082122675973835311105848452184230986249679737924227616517171042075095163597769687051266404433601130945428995731253563821849309764620237120342577146956892385402689656921302398761843449594914524569609913336636403869793131478160566528109270502566405156060479259563086563040866550894883608673054967449688521583063381346078589213449403322267152595019835203580577982139199745737202294991699712363988560128221907206737638139930942677511773689581138408179921109793868899143567525036924200041382752099989807799101789746015300110116099674605766849660218909737213810540961094093032840987499475571799431723282430297015308457718149790264674661610698730819874987027279673716841304524987115070910403559737123565054885956583334558999288690009434950570497265292768594987967176244942691875116718122465538661688313767263753275375707713346620477668753856278081403384213516565132543442645335415937780621811528953416462372154160735537083417224587145245776037544112166691341433638902684356051172689334236951782643670483744800790983440637076469636170356948663676663452764408099294105506839773569131505401436208467298311220216827443722992342554117976277069383093313350700422657716756932390382630768535200693912385590669719696783560519634186739928320802020849924906250217028355494558071303280434171441841885456621042355447752987756283486125689212937744243538166639551878269661861604524952318881572209165738607787201145051835113965871640141831514265169898837837290776933999061644042549945806747146054579288535376558179326975857317318136177179715940893053050676563838519632227844859500946856987157613406726839872169262576278620248176785814756692024732381066966634182297212565606650203367333241522095202924126153663240541039346572698854236036202290386835889937216001357242211707354069240512834531481124646791917410212725401408723949092293243577607899774212128884257727362051161338102658637410048438666522851669334880240273132927579000009288838431726423195158898990823751158630004233529906753188779329816774738817204431947875956644052073477229242901479005277233650713115174720445323772871824852749172791510637837282973805741127953611870518635838434560197821270722710024676908338937696806655512635430112389903888654593979777934963520337050351538357097163270210292223278006883039985852683467626406671951355042606323231439789540908292398542292814972085451413955827192635140430526472020343419921164674427477609196341673833861830808702900754508715834672681904837018048494257079606696886351656590043963023510655510640119248098403979817300704746826379769003815048128892006427865648677776817992899605331317219257302478140756821806081647740694214641333717407736690637265424823843003101297368098637682078379850851804208141539883665200961645444059447476962551544655970346539134820169625886829369052352610664428801344967992613354792113803468156158508848788941906865815920713366667228451853238682879187120066680099676019975390481679648198885477018711610975962524190958586505918351468724943584064531704986476645360938175124140978382981421161481678993257373454563830707402677954153176696853823036292241718412856516162200514804350353865641998552700785091141667277497484373685583447662965733459659278479655119446288946377611206558201872105068993040534941247664331930684342278864584626568883924267243172381582917616179811909816428990216957185451008850422937076434067023006796793156694793511547200235362319801930551208359953669910097160028667196542088161343092986314603336535251232076597867820874950042111385474988120036121315236738524782746642139521878935062536344634973585116476690348350802276436589256821659619100536800448225708077353100561860397543622056384649803734103293170398942689556172107958136230721148976940520527261107821846435610852811359245190709390464359602677954602246487574725850205842324184134897138225654064667361863937170661527356050294234720351770273993823925638726472912557127339965871915438327093602073808351176074687464055373778997622588010235348339545539485049829888191311203140466716843350491368401772875149121512986859328783429467806051711421385073620519600186250328583129076081972869301033142668855170930930394681382998719105889635652600647935164312208522698271600807895100187201672208761826355646107308200512791094665225046999771242600652788506433917979356562988159672132707373303934070498613458131376811688843180259572825356224355925577623589657714285097433413486341660163117930300506996768916769556719672642947491081836531828793187413998683433518988729147469870370061659733606426826731442133597694082820260540191201083153580849870636645230046316774405434591408897598049384387861420206808411055247711167898985291782391328663998369659942446316781320448210113133625571464715211967615529154251084032855774102637906960824418949149851655491935745049817899762472148849300111799051764894516872365274941481518400862082677589467693711546490742537254438638781987443592318898967766913013364845538028782398868688114469608337914953018332679212476973190364413190316759725275729567621530193560447794786335530890151393286049927004879966601156678695538481174711709954983204620422683143467078910051137346678055257404001264952414552272828223326692890502833731817011288046828124366569006364100232950942883298515423189434468669523215684419399978741151415353159611756872629718225165029971941756308217162067430782472270615006493989298670654235985623756142801370814395898654393510883032776366138052111015835305619998896440716171052286460697602086107874273375343148745927896504900044481736003495446337335446137998039696106352556921130303617654557953490433098516241373591942096849024995292159621896001151970977501307135459747134505215750368642613565246030156290699421127587298419605079517212212149982447797353150060014686844623285878080611158672882706297466755498468444175431631541314036910452442100664684750533888068625617754655683842356205453516352759274254669160707698840287038721586694028924134237913004214219058278929673139343036758827385279263685303404683225904353936978247440856064150378191719859313436556752204965955145557450911686881148729353411177297871622394919487849743051450749028859675681795393332449795741969746165598372836328719217736091863343267391855208224882556838162786670821700871811269429927351389256999750930677143963145158391590526422800608150200141322956423832622643291847566247473366315562287159113648658096462161562484090374627767669281266985164813948471703369701109882193727226921981041415000091104435606024969001578388595152118224092340797572563178523065665616577813570360751099070145522057371213149655744787669199474021506492907678265888886594944415687335698694580640096685001379703559168882978600593357613683411353322961050387418910290441190491401322968991598984158215859652774940755759699246253923919903986147160374734782611015243947765396335649558411189458299985163476084351280854556454729593352789126333853513285499018300905044651944728921818481042295523268005134343363719879069719021715815353881315082156863864114100990537014106490306388360136437942023336580525848881268125781184782053102397815133670360570847990357739888275155149400565052791609006816558916358994890133076606620855401919347396340507891561921030241064007935704458119931771330206709538474240668630674982788243416907816806074257468210438530007823837631251763668482972118800481049056859917430393660412704015865510886898054863048647755309046575404963706168953565167577851123074923061550455250739440509908434389544061195122623222006575658158983659837544650407693778006429919907212385991193073068798609500061499839569181173404909629316565466669791987711165821888898163082905987701272276332768311902870853896413963644688950245035587587301383864671589125398774704292747342974946074969413961937136618199600384611913302515760282443623878221186007897163339344256912284831328617032609527936587132125831066415072763608575037819041876307228983804212830779482896686739443515005443344538727640264507515998636342860956075261343640117986399282178887709925758415799798007858781410540999438158497433035662721983205350680690353373670687570760717596534569693293007864856150204124352396755969451640586253181436483498472949976636776551806275026267047228382444326164557850008136280304279849515653286160965971886341035565564789721027723080035221459919906020872840851235980270802478248090027794745018884738905059138027634992602478829440421521637916890976028454176024233857856541954423829607085583681380492714911152217212104769967076885698405635224578589788448084001172012747806021396957433849904828460657988602376881297376477075191705180447924620414147561333296823388167335141206362620043831131093458844750014194923502910327229706592629963018837382321210128812359581113222028312695556666104101840422343698544402658866729984004838872046715792881722687357625184005540312879147114544868387199427401847259563558735779257052653436331113830546296586559232291120559743197553110183862474260042531873759537296362956198557190075518869592131274509076800314100823665300696179333853086109589284835769086397617871370369034026127702505942851148753287314170254660200625547201461711760326609099100619304073472924189057210163704005765996776845205322348797684577253593081526789443128255943319349023273479949730251345534256678155417956258830286289963694121677237154344546570971669847156517405603061268340766305741219633505841975492541920243684504903092417623034709167148325285132453939632660939214860548874775137356556404951415419807099610079208652914473741539858080414161217946852738841300669791377579143521766820561413510775992110796410081442628214167515811721678315416579111786972934620460904502795106742337425351732390577804365031142191878491902059285308622190751361612963670887803010861102028588086217224906134408798743652570884657999897491375203333525671153906673260089545297931534655106867220311335163509997852569457322956860830911549345250867872242566506538606202288382369070647162342193310048809928735121528873114907928140998661587620091071668769601355846091874864715781345200642856534591773342641913364837253773216319293417195976102192959861528368141767148305418360162886140231195746697254858951427246388622142148507365317396697464363991434719030746188115328351248712501494112393405852546193649394771932658299260747647771458083999804238276091153433039332737596867555453107290973106778055660857265301305960819049466535764117119133550264213523013013543663900225141801566471154012251242189126686598544679325940634753012453119909166909785094645502577402995510370124808591931642632508771621430275695765020693839671531966572010138232743406957670823225132932451297627754639448744398957434035385925611381989571901099752172739198773322903514920218582708700434220435082644662584578637617162071552344593412169354584782050873527112392940577364381301633126764558379180693567128214908811772749898726072000485806633234253523552887169963673126969938413556974081123838975899586237868673006081777676524310184883738195694548565089368015351504255631089098315274568326962430512335100176471095005976088579332249862862445537474728611297303743983684706900980979161087808636095623927709692882603079833618708959509823839165774805770551531811072485549386483301346391899436513835746389975639678434145706750215415839806260761633512007099312175800729619283995934679427215118955158671457856908568533543942864413988214874162901067799130928765434764929635713774658871127074163288550936407765140353431419245993398755361335565564556032332403472817951949203181594685003608328535234584030434075117735250072875282236774363264707799705928369817859279498596717553760605301172479692323689713900271263674256646030852850972717915849014661400608300367428321021846075078262255077153212222115796297869464851399164541569619523936327213951962828775048638901123871776661493615174515708935945031385561801441672129231271529280517695406725923576428111191453256221095064978707326231467637010622595532216380738107569870859593015571678008467937874777731219124472602662576224988275005394440791009664417249033476855756657317735136938437926404631958356773008589337209877389720068466204506787779635264063185098942679191232850167157605374210062455519958377281041996108699562559859335610935990276960068063581737746681184884812833832110493916406253450354457364692894036152769979808968551294262589642957667684364480139053533795457729064711760732574189572262603563039656557739613231468198702064809340706313237361536332851785214436825062686974774823523331563368540693642951022955062791707597672051595523191510676316921293149480178025060215784676409624306226727196536960696486380005141534894961053358934866877514581951086115078625755699273244381559492605958685550829272230885710211558425277766734764511117035676513976112369347925994821304005142226120177021391376553457814856016195714399471787980561758871010373319501095708611775978018975133458315049412067369294224150431657873871959768944994204495148744692837781805932681568468080429921987647708285172859070725926095681780485275328265894667631707820768835856473272398803702116101107610710406973711288726633840560631100060229680010427022884236145373571739048656950082818274121436841638713462983853546784200384232035749999039993758547048887033104489833408784667149266677861010111668726381306552897145803750089845610176847403200474446438023353124963172787841124116082306699775420956498360375414210750923235582393972727938513835406198962387381122412315464713935537360005224465960647980147464823886531706018938076389545622182318641539308794518773752993876250289509589457773465656046583956719700848330484113240837262766344169445804434691928077420200222510073474020826816043286730838056515875389577226020055126325445714622701207283301660603871287262780828965401054868065477973030933271255784248688008191656275176764881724522334133996571455796667373020528902416715393044489179209398832927630456179465096239254857051201517312775730310350174067151074232080522380825152451188765119895828111245770387787543302571649317294337309696588394377710477605960344771641197974844395964748467617921200537110244795043250732546192059128377545387077233984688709011988819349510192922357455611590102926559518967253582583530896770611105088812815759640014033940812426271654476846301417669913116883898557897891634358106658208618919000395997711974593376921419754030412615468311564068773409797716087509667353572385313546698209985186611711470080500446885002994473184253502697173996726656782116443073772476869487279636914009712778833249726000308650158242985963379724602564515469567454184932783997658255878437779523254776171628988690444388034466169964844924300353967316241532295462674685970079601092041468480708999398971480489801961843049692239548215386768668866240467887520833853284621674026631962895653018559515806626098617214620032795242718579326566858352466968493330929564199355782683073012484727016388746372920890110435204474058900902494279222100450175170158217216687232607007786268149958870276048472570287139980518988054610054299401192374171415804964248854244301877063087984159170566532410357126491414489136628536117582392444343130135384917234539909753715086509366627025197339050978335293810258271446960652244309819293682756674599257522121428273121760593199295142047025352938159504526753865868219218225591485708057727249194541502470258548792254899252662729220149350810796256758233113500042628021286840086712911375983246747712140908578414048478980830328282207514893649833788881697246205357079635477225288359478552179419357019632187517223892090675427466684994773016034523075581003033722018811867027618149129961390316793786932816048407113466812382811047587165932224887248872284183805597198475556054449216050927630456606172607616712029082657330829329463603757730784215657323213705529024636440996862469230344828208966933090029841647045289681713487940919756748922743852368830522932380191590283667811646355967593756746181934255048035467754023078354702001318944841940434525704242810618209741890490359497427764006866849738302640289735108419981545815023172746788729433617057182122151944430705310595689572918478664613954584067765296926510675293388138086996136005974614794849383411917944517646703074634874513968821677284612323032376961982103167641396376852695442234404326814251826631272850077715071392490710994409622216369358574780436290818246230546574037887093443632060983577207205024199369247122801766897202043822014262743837604468639034630607214101647569392420142397845701069266076792129908470495700360807485379934979684234665597615220875115452468313897548577371580807355511291809127051125471084906698609214466350998712704067683735665305762874190255095033025287771365898957274278319253641811149242237741194038192253670201329871164002494187693898727985847275097869697468834940102928059140688073767525275602921821566931936669729176777395552005285084398840759374515126567209678558598303502189164265357410264684828999330072183587102835446350412502772696985738123719912506097973589577002400657607715597090127556506269232444794824912730258967013091944414953341022374118614935411557135350371402268356885600581216748272657823842986549975778966506886490720811120862176267807571085900548775049115139904504853805249452035482702431976565027549310208363348402732053396905114470367125381310817938872840506104691978955017345279211044631945777882912472062595602142214810406652203083588398900968906136838201982705189453111514173316984467414446167017890291809040520130653694482546208756921833258124328924230243533850787023836262290468810637244157050245208568410775366499892590316559635581052808002980408771345574953562625325159487634817167610941920707107965077906433799154643168379362057954135643051522411292853197441327684887942059646191686036951137319731374695008843887418785972069517013764827243135020543146228946074180996271304493922149039922091619332385479528993946560597057824108501660726580104010170565732024975401922870880890724423511175960788477991356265876785240132655684805286123902656312530569684389401121915162991087377317552848068856958368313403821988123814199496484934055348002624219013053071549224959952304181789267734193861128030079599896599813530046884512122299085534336108555366595604918942400140617431346153001982573284497977471509291018035776898364280265397298572783408764958167897498846998601611022616142604815701316067104872178107323166406342160046740667810909188977181442126750354886638396149625380720767663726392774143856316457871739381348971926951662770841646328949598124371530679289500820475505341627336825953732631918982365617822727967636925133223737576239830677646426527486191545156645320167558737649098774086275989838924497946985155259036107110892860362570301023412049792507278298104797564203506783150335845112686307157488291371376643081672681448669761359633139448187473837808789634133729389153849060241972489678677722390654879010864097360359926798491039283287262564422425437199571935019619920212042202139820359644535214121071580586828643929883454855547910259768556724137986020781191104452037689005102133575826568938956529359411315091439058780518474353611519491336310244160400011185847619208952841230031369274621067930614554054733289663003423413846718330043281267703657960101145048130205964624584623458880640552767163955865155318588861293779393536410177324602729630485054899212650173406041528395372654376829997104422497599588596117205330546454472071083778268005441030032232689888100134007057414883361990431892337726708104802428904009717103881952444384802805863701207192264549844184650283241762019409321985932260804821378437830989257475597204721973738770761211032897742744176651003621553641503417934756562564796353403052049538950941115814532510460007667492324997575842031038485558139534136836991280210328571573937044299511556337319688114634471316343510031868058253022242050131550353989684493729176684205179502499151555105139697064892380402318832801179864425195933332658107301139011643183419930333672422967793624580531511704418385570727727598421631075084617189469252179103220774088243530988156526004441371001241333598443670631052416385443522559522977456097447774026789186038259588480698769510937026333366821416013753771344782460813122323214919767686681331201897275860311798718461722412708288193868298282957134847520753356031820482867994703116969547725879389270186231859928801682467322122936608121632959790214998326617007192538871605293791110715239416768404298770857773238253293689909211376708094657642173541827894583985276237198989091326636285955274882387373021175379596706050811797737930896455041279381745678812896624575390120553297072124446462148910473431806500869557108667669941340298700310426970427720598030392263426331521563175401180009340227121560009650275636352877049781789111055489710866858359080031115078059536569652572940592604234083455092073833572220130467360606575377200008222590599687299961463390944120271294233838545467114968060281592043272473528696703591306663120266871951313655255306123637338267309653593227506231183461431597311178509304088666308616370371200871577098998422887520312571514338253963987362091123392024215770550595312720351226448265275635277252275111466737344807040844668126091431527159228206769384306733217860760198895706841754891048259263083286106945983554863750529026113910426069947673759330478878222675058582245411728895107554702161024144480644246097779837708279653379229920713332076671429983655639010425220837229534123768977628299222020976112782439086359268145841800592636141827768811812311553354137916705723284201925843001728451960254735358869368027459083708660548496078458693940662943033274881738003576940691099473400523092445404973088976840345864733247935096004911679130850072010975125409117335492365345486649688379374718253683554920775936200504129252837395400824511046716788114939861838644709503995723423538280269763003551775061300926597068749028799785810522936182199980326696044334154827738365858664322144386339119074238059992379595189843060769309217547591919509821371953618906532944065635895400270074650294184437080633098495198521607209787624949726726420213803230409591402932459014514010444943765004264565603743994847142289989577922886292303809669688604785623965015335534572790292006691259643004430447235189448013646385685186495946777223492334117321215098539320398401522116224076715599450051740763567106473633316048881327019384051891967242663009864882244104761628529528562670785352465560847901406593549903437067217773710433470993705159304755122524623419949279864582986293877997984555393306456651114286173144760280425553582689782850861325794980492432904623533656307073673741084898357160762364333261779616131534738587867601702043486278739760497941348088208667250751708050866831043126699780438014862917345344582160632281856693694759417584088632326683115506168441814167702279298027581936024375583916201728542006518512402188025219660107613336358915574118525338108107155599671058804190844328484815580692950094184691839991400414242048489370106262277213732995318072227248912099874461587913215257525791190929390031927469860026425588918290764878528306177449013994896977440268460868910974186070950183745494386889618234481676654406953529285698211338809047303563374915573131134396256903290679070854096009192993529769101492477111082168279177601623898906593510475872065435553333189395152853716324578337276408919529663082709520175689120271879744434333740274781597489193857042765408709012261806286000356246830021576498693415358507497661270460596818979356443891958125471794212386350259043889098278008048901227037252981706717556221692538356964650152759239683278064440881039514149573625096041582605870465737068263284696017331040888120281255881474555375133736610309755706181783256824742253153110520871095011097392258957983812256112286706276620394830476934498783987023494656513919573247201741083994056383980269249976121713617450853276722386928595480106952580252310874294140216729345730265801945332201660648170395204916635819482731390852658808033164796185460689554961192695583296843597812876035307129046318348735300881553902928956807189368997030746242807123630640681812429308993474947397025471814854665894148925811866282521053958203415136294748672411517835431819323555200684148383817316748084233255833036720994547271755319439510458561148097889030840195115890272754895692017051441453075996103424491342646810433240749912484621811652280998478629026983647407403981564009208573071388332914941679742901055971926583188444830220726487548237879966741421415328447892255512635903417534849166837258222830660067154814748591259113967673550194822018731853793678274078895309846650065347499930976063982168472941778138547141564267902616492568247972609454558700023981793640734992437237034848405202290961740535838533032595056583766981576906766940157830396177301987004176137544929891445322050638511193385643990355035538986697781330292079115146589585988080623154152087067552804593443528788127804209119460999557693895990222069244609454347267684850438887810987136095825710747859210161062207325052252722423683035860320518528352867406430590624048147801485464372675692708141034033807202990893359384158041661574582738878756305338961731427931914852682891888256597931625561609779930262163287723158182833355854758689731064207117945321149995578278875518270930026737818469244884680995945315146132156200409946983145025936707440899151747979593261772076417686108229560966445992055148855412312257181835295261481741024973912588522252016832537299107981933333678746002011891109263656849188982780773944137075170939943929960271475908341549697788892405864613979825056462964423206092138466563856195979904571156353557091440052444871253622366180688308850620568093830603384911956407540410812713358510776645265068712145257728981576740342420910516809230540625955598346467924833700277213533276624632547763489915950027746954011544861849915999564023808153577311084576802820725520102148869591389772211634356864178747290373313017614755403127710698586177141727423076539932413967924749561642042003173984517942055694775930813431006645127201770401180324764166056125287780473838445804454441667121558382533964101122257407002478012887173587662488970371983663125653444559508376671754837220339532147635173275166414567136984959528592660279184173085294164719772341629609636318210219452745379826475324421616273942262057036954709196656768612526859422465790150491764332063660419785850471731319612049784639177670986071858387258548988413646258594362545570782595773741216900542756985813278767897255798789397671069232657109501833283676572048128781887044647459989625364361412536977988130654122177828774822433124012014552835141293082614201737968575793483205335686458364505662747776438143448380053554692653978163588979737658823329884270187251892050110409818191234248495950558126278059539002081659352499599622162868172075864114278623487095479046535321566432502107716960878919037386081886167586502487310077743245191941309481187843933585141571072618789523812356217541136061472526792074331909394030599114190924366071457876899571898369250846567205938338946025559221872597712151677281748744675542163496876411145275919358853458243226947822798252082893818174157758261130739178225043815919069059796063374001306859593628625275749155434023636195508859325476718716636319844193065845279775897336649722599136066088425899405061894451475603006637948274239169179318357245734734888293198601949033405131871753664722351457320701331767865343515677477109170561564314608326888707507169466317236229867618446791864408255707814770601902355577112784421526096980073733347540437092201250090269066853791158380388375730542790012500686843454960575420268545535259731138991331275614827945445643381798442820404032196276841205736583251684309751608034706017467558593034846153299909948438450957710560956911476363941408572191002952133092001745390442577950320764598023298527495861415483081807612738647418037427597228220793307244547053119243438366663844151809564762082886373011887171559782476030143722278122420982486835350340370638793581214689932593563494307361561763165127869682712762772574975026031528012171049749539167008187950053849291490603919953629501876997219878759861139301545855763676836344805616705937935845551836234040490558892779016585190960905959188275118684251504786564459148830050396117195641404120126091310597206062169521517577630781282248937324516461010030700837116066764816657412413364739854403950093070226552119063001774689092278820581984338580323215096796613149948906433978160173894958309772242655974209807337512062118490948194930880326968714172261921584062321307312478585482524543920944757093210134345930920079454985292902947054746241806711190634227757912447951164073678156025545283157098943997429971366035752846869552595589893051941920608245703536574204462038887963955486211275647731980301248289115484653506816737875896336856124232038686830137123751736602374909615620334524888954291781398670872737036040940342936043168236971013283778098249092470215368508281205650881725867391031743408156864006471427915587801270892982828473302757956035079894557417394045857381999151958269069067758441725565322963576871214641858920109267500988524716079390458671018192958499789969489689607672177960044260596605553068960420442869825362347785993898342367143436615764520018514298242861480579278451566244799339004811773820790978698030946769251640879352907542522233103952570990289827998923242671147376853904402546889215081248285249604044953456469862165113909414199667859058620803031480236539586681380849558673571071749409284617480019322707586866772195022596845968842150263849340997712588222907269981588975857622240070369792154794261927946697163286670347938321116700219593657141065558284550595419080101173815282309769433514406395580121967621308952401614534288373860501885723194087732515268973402747573689491675832122414910167115068388437037121298627327082870189176333159432834724157065991233288210158944225283674768028351665850069223021377718853402706918021685753175830099367105769803854969009338200957674000682807963568996923919000501470014355520530094879506574746881034934943208543084076740224073974585673194397799214938617613063550744061901309540783092539863373054665769870748093739596846517213736657488284429959052565076926356605390644656671925241596244178335286674602558966270373775402698759660392995327768215685676832718528034061594840489304458057952471042529802383653625478919663651476529734885540956211784058742457849496244542043852584055952938606245540998448166328107920010891804026381419981668466469362380198131029439894461606476438603488659429822047201026026745767877642711523396061999663013148345200541169048684658116424090442888055352686665682919372991768512377351305771955258507316547141570666734458020405574838678571774537425307927143197846107587321926635310549159966245702244888633433175874653901226642303631051716481507550687056954213033632566633961990210297923617252081923037067585323039627345472478934299925540265806661803421970067537006059591935860350115318409797219924264707232566799790916938494824715931158733800307277461036148225210753188963105477090272463682995456767454641672003454430255692680037970287478617453058417873772671796464564994961091094524426787984254830409952188887674562207688935433273154207100311932840469912102303040891476751763036532339452315579976542803850717462338728846571820992412327379358619459695461255040720558515565442415747480502630238973933878075652551536462918261724288352585777587435276489286075726746455608190310060299330985911239313049574731355166039222187517434728510249888471201290127891293260340396497245146859570740469806654723200252559792365033542321077149820673925850972867875350526540224115888877292126941474793623574561297791405009076892230457515545951109863223262248904071803920178628245505356613229204811260229305958585516135903226361499483732070137095395623219729924504711380444948379336347475626847182522122036394974548721335196812026467839402840686391373098189365690080911911139431631860362665834009262828759170259712661118191446931432424178675553613760080450463683782574264709779314015632858523127171583970549844330175949412805874274449736464765592761913748415425622187092176026015821292501880992497997779646800635572200728722584809498654315699379127138731312597715345813951468749477686176594294650638236825354543477376854275460555621175811913434264852980365840443517605596297848638904069387566162249544292658270244768193326328342803852175266316536689492436486570882051684303296935765098850882075563060975181695473006938696177059061749352462166006017471188313581433527759660216390410676623688424112777491776511039342872987376804128240589396622046271139557036368342860907336891970553798007504982221078198707861824426903995948662642676345835432954883282977537505500261429399714765971411377807360400240011105815905606858218685852497174429283694534567644920347892650471381789626681772546963265579488121722915265745098839323118726756591172278995537907688208481856941256790939053105358393041040210703953206429264129647113262820797272137708304132204633398324512028395181778471856036608961167825048293095738816967163803574452292250062150392920815066150899869173838316181560562684176556489704988001899601233299972547876170567850656585223239294302370976130324917095969315702048884281832138504670092201403743943021652589705510610833763857008400866757558799505511356503095783134433106344948270676268130413575917855335760960131094672191879480626864918450196486252394712758093735191967944791578310489272043525321562301820649265859649339018195911054623766612230354625585221160382222385019549291066618958060741314033415430055307695186613583694799846845372840824737444138438339206333355368307374492298262254043719003624493436910756275505977720753473150165933111982078457126259404841539988918839102568802058907401056845163694332510429221458392189328210366481673220842265078925310771726239122855159033524390905500093443043088617429139710256310056303047441220959792356367177861622957853244088505094266074194351423967777250070767185759324961954525930223250934100073562845484279916741120344713388441793159196229801012372746155685423293907124957227990340943539570751803642960813225417200676044207431625113910229171595560082592627773038046237825985757144352489909157783735505105586607260401641921784561464277525552731480030517992789884064234253634025563173320028852125224544331714042712175732466651829729942255803287971049586464042287252560020844994183688755701406477290495069451920258092478110487694826450442447936645388098738893626182703893717516901791795150213416016713721018075511534036947015806155795277079317862010445688379823022107166792478456461245313747388440612620730418661971311276879721985616294213138377089298751478898712720622160108462340312380103560003554596498862902933463935585415060590168480474815696755739691432386603124374186332827057854081331564806268047926912132896116910027522241986779832556549575698953751655544032105640491855319506955243674397215380217647005659592036746387587158011565051777027336196711682167135385718391998910783851056336570650186398917528941632828594581565549593461248465702542345658955590782025745165720294814667037085758227091300465783382225364610082137021500262697999551255510009955609610722321891216991840255344142228667172978007819015326063490100468816419255052704069710149749404836783774322746286866558399728444018679444254817711849523770973159653263977552681798339209433756746909551908351553009504035149188376887025167334019956148360940464889074319807230960417428106215774559812209557315497755226268824300928795766013655850796328883082847787431738994123962875468092189311162125588120686004658886574309602074467417488219011153433005834776770536942959101843535652380157681003042492067679762083899541533849160180796735848684215600975723970083562229346683928188937527023760491589180877023863367864531771793569469481893951532543812232120509408398142266756865755352399315711953182098497238627652818732556105232224430829601255823613757618318028079504213404455481660063877886447837932289160734359729561415604801753612426605871789813857776048427037476635004452237490873303795592328796389081247268695423521662887498478677992490582510932480962154049633791706185615516964425811749216191157948933772406617957788118663658270739220963209022765063888205024732188541722604806927879747870513392417741427372935595875484244053981230192384872751635271600635504650683586480639052984554558411868674729421697045168663214847743446085268781088185191383705641684770972597114445171455035852658016185695862811024449067197408273644698344113489018017207611375882137731744729463287833458189325775895541882696663335898559439567826819271776760097374646312437946336569117798582791941546007827361802059131289663809967495768202253159207355036812239780419086855568145855101312894087409583801627167562224764437881309832858241528287339003810313188262967263480353301283067977632850470467972975514964867490125009022736041135761139979085419754332678659485933952135780420562460527732457532229732504785841364724634943454668264680180636494164444343182359628928945098519871220028521272971232211277821687687757561170510704479501071956016666277619655722024070325184032555404612847426773840966125610659599038958427681974453405473492342963226808670294260296469589750349303821726147997740531670880381281476640815168293974247610169276730816803193016475394659839619381244839231552314926253042439244102130562858850938217790763895135776992254296301092597419424115757056584373216938739561312226156485412123978043408404670710351083742952345839134431926574079519110277617451741672451062516844183984819824754010380201940575097408217846303847787474769655786818782268452232385429864449118194533483010256700069079705608832343724204983114862901189455118251900006436507036047729245677540457236498607412640784641515513196368081637925460327765759771964041930420689626868185360139597519965236780776240524349153596929065236862524455496016634575289619069870996675521588944711374685888737585554905434273012460772221800509950399278905272583971460155420663419251503750574628174972820106582245719016562115220826691410882260123552835823439062579015821256492620890890502240498381710371805052718032586472776737591987535861477043071996931025719075325620958282174740243182377089338837027490525865933250352307880959430441876407171854365531993510049125484460276553571698757646571765967223850490103699738848947997929730377038641424488714256612442583432398906652325528838177270161652233707600769202764649016585565494086116745821539657394258970828482790884403440659613761501841621826820911601580947015328442824073284533066524858032409447334416095824003325665386689361609268494286864447900432998844651147022256604444368026209765038238228582655346843334174111341111093703148793643690909917085889936199425970676922274405591954274962428310164819519425696715074049739408316824716796716071875946226046422794851554402969838870662979786876961192446527955392703053825476818700648787580829264301702717444812469961659966062006422963072302214868186978973372880691079238780002206345152875778997871506597605146511553852085152773284258354548531621749420889139073748630347746694539424252378455059365299166508644378598565793366472056443422371150646944757670856902159413679350377158915726223232391192181945667769449120427489180878012025486350039534429851444019106363751645365162877710002229918040696743733820209891375014681573007493136226445287478832861194427758666535855764647508468912430346498659443139275341021932192432928374403879485867466099028819438366132472347382256336526903769622749343485841071182558794670896442951668495398973527608603146323507149503286701816037666520881375277469175081236592989842301377475658692417166250864563386419901698194878825871199214779707844431950898197696314198100875453331717363128009038475290655974810423583139521399386685333754887167654449742671588767371015218409468828095001129314638859160874844310384098355240044825176318682065517158196390113688302319872693070733871964764763807579465725210596933577164564644312501567862864042324219423141879030988264392171087494222694013595130750793964735805723265545027599129613589253657184349125973878518973368059429456116670097314784218506333764592604337042894187315609364434834870257629373859638173638925267954739463771745585465881205930332331767023622365964923231749846713182341838466476951563516206436820159881868624980989766558189135102340899193359930640263820842446616210224026523936722082739155356075871146972331226497948746930033118798638880459093458517972342421456054592739397880140313268147189435936158469665535964565567220701874041938716896589861311384601820769661752342889818169775643149138191203252581301139701669642943734710070024700589549203948408904020981493409477468344027432098096811637705160452650362693142473497920411286155418307004836809095755334885870721135008825958489415030662226534718152849449629174979946938383333732019836611881592155808349350677938761834169420791140509687069536136160886708379652772767566223195336969628249903455509197174548612076711579018975906438555469324186738510753706369256432620186913574753290649656297864021558303173684894053343806997143637360275002764163199911339181164294263861867940031199290320912518848569678228418185066086747040124312779032888768058569390080122194750803490898125849417526796901444383712195480356069946825587702615457109558814467473650846031430422691489126982368274814940602014122834573036612605553907010122569320319547614740916343750684158941921997123901971776728505412844717639977226472722969349399854032013220659411623280456790688713654610493704068954472227061200884273221602657942344235678806007031573399268499504753565643277040211706052133114416469851809524510719138901368059537161059070251955059822641190922386625033708431545940394428917298923627075628834604920235842054657648395109198089645773104456585622638854428084996263363622804288031526388524001046737738774898055135844460897045399657176590628579522271595270658814204242546857897071898479123059501302497140918014720771834236986382799376173591798168312356229024410564499161234787329263917971664230766047129969911350719891925241575298040953592342859208479587343850552705908837636729577619322744808932968852109744697619354237863536399980506090825076191444772501900303293404257790698918325770421499127796016669992532480021008092865125921162015710930089166052147759722043889857976370048581593376012654267317718260380543560823793024739598388600906126623013767574558272955345493057700303163909654509496657787606824872456839202262421266000579794724143077626017988551933454808956899746978433691885521363684745813315759678307419869887200248279950922739425283382649560929589757572489770989816986514994244167774948216150249760191265081329849460620138437672406990565056131199603420654686683730363114279762294313885847499672610110530408036104331827592671086301016386684762966856800574903569883604692900935959364648668646216166651563594119602734027452823858494046755229788658208106220778323406237327628853829720498116332208469228289994884563771280791252391352062486685479649065970609707145820384555696477929369150352870426844621672246824970683660890249518904076605426673091920267571540859610787233115943404381662390242574477190871237323069056615069997651299094104188130948891042987945911886603667696157045514359802263621363048649802394100197028986499951128928643279530865154195073358136454176692507582390231812721620267116894323519950724407330737711272803637038582689021897789986832910843993297287327485241213850643910590962979260789548187123595957259541694648419046482295155703896092465219762253488452928476634381502346211650873461295853194119335384963879451719818090957818019453178253212050568833082873237330634280439869881144242007694892647700724750582105079567317492353014326738822060668055969650086114897126461032873219626514038018520978738472350159352926023364780336201970064983034268874248381018760302979262515294645492785764566863266713217454398137973527234290704721299802312766546430399949946242211569675783001623124257839458712224260318482575437185603175915815304406954526377592284757294421718805824539788773231579559137398973694246790397740277062870168921759481566815080923688546771795141036436824287138370705281432823396760469771920299788313033910383376015055127385064089114047221276728896120099244040640192006586788772505744715248223095434810518522922900679591321165742049804264651327941018733882621999904688713385896995493987013856423144476221282701283750980990724390628880543576229797661001194027685676552847030613209180146556723561382690671561735240364759791135941070874636751590320681149358305156637350586250777562720374737744364700450703870287926162070656492096748978979128715957743323372336348250178582822528583768529595433761032733470522071791878717653761964706919643223720489982874401188488836063433492639218428232380734595583445021172110598053880721538482805967454177321133218560314064936837723357456095713441771100698592746044167353736518776525769922419460272613978491983780338889230566502731263179549135147875464721126382376970693790979437443155524037689645336849491850495588396848815270595668192917981440869731994804687591281972005444710562227817092527584133476665404995877358840236862701963850715108195492095160679121894016243579992815798267436620252705616377426348917105203128891794232625451286742256181813773166895063888414727320046208460363628535881440499640407362080821451292003302600098403102065825977127786803136049721700538495216007907140428123438121824916610709420296640034269167933409272979693196029044287150240209122094181838254839807809834974550092590875617749757094313648321416094410029229322792099132786583329190329854011896280028531808124023625300891938687562366673119312898784546307084619210117465606264378867657253718364769707479094705620689052205879858751255443109881715007627799785416956079582595288719341370643484541434630796049425257975594031607438106974575586646432524747065445419047505250952398730277173126974749874398778621156877806867707046165387799275358143006573206768878376398232245253405350095192722016173715549758042915694026194276159120132306011582816867853358241807484596704381553960594821803039540752558075405005551995058227026755651013265025641251437532706472200584313391475771476905583359790361602746865550730118253205005393204712989985980088088731812963340225424550846472206434361585215126911254141953307733105160422047673801037234890027794981723827326632160686813840827288763734409021206399902482815168083010260438623688761966230278780862248868426735211461363536030746399145729422221196160609853201691623172658104933227330221021251832928238166322385412125009576706371084768589166990265058185327472260932758892981366768144132213892211768076957756812429583246088974372060891838702683310089776659627668642826896992600284894395837050234164898587102647329181731177940731620583251972771594649832119610346385678974056427266215571440095692879653961332198461763737611100521136399949964960594422179634224819700011410550209678618099319183061367207159351334250835132696535436492607432600583205300063713756987031570315577134029728012656540093674987402160487655639130416468419978878393789168349794253267681937819293351299723088190451582013299406513493753854771937290126578542636910056898328185416099254511463881719348334947542139621983728240281607128054429051494132346373407734076466444414966548667517757246525820257984860061167209943302118972079934597546261203947468320001917825642811779576093048293984456129028382253564493920091308060017914785257746182141911125388737520412078129231928338660594604818977018876404814145135854148478393368822370097322167357177564446111900459108675604254205116133576864881390431697072739768985635953290007597956667510716975354733183889867098101490145346653128252782891686768966071211042693633226350896012397318195516779408567472973960286019610930022530216575705610384023048240693851980742664592344844447393466470445797428349734726766447493769041926040280757195505183387273747683509921872977710371273323152725223269606521091328975218081320883646056435696038887368218622113566216918156731375291264283511945831970092858323795834620549856789371914828736274804561567687455570109393771651021718933097386468408971818917439978395032254392676928875433094099830919415553606909134509252339152589352686475209069992750680492468811182901871757455050512936602360172138598911941461676109627105991721817020122809700372056917870259485227226247626051716523185372760490876679681384263561158705791974330308741564895230413101798890675419287394975100397171371369057578335704574984758184176805921590788119071889662388488716738161328752506140464878962163878629449829291275375779111278215654843933619025450040668293676804375485081836648263695399306077224248709229158606907657729961745188555443703488157352589930241846763809601668826692941794596455370678598212762899414097201483421909607125271810824965703980373713887127846620955719563708291506132920634589369315441175948772046860874736840066190271066448675735742873736761711309206846959211663867861704527488626455272511027432484100407893405453414980932555630621112388734822653777100060954487152455062325203272782374260645792689030930656516655456681864091328047690447126764874959390044232708760706727104734941041864892521219357148455240863584300370564386371550820196698517746982275688605019637244248714404353518608700347474202790119081935868938073342482440838899434829287617009357546578305967846758883756169264076695472567548027521548330697620807925721465400691377616872076424666962493690913373830478061241472261433515061278115804422047019702080656069722920004287788490419910406199317176807247939604719828230151323050314755342143993456902968640056068319884275033496381244373819577155497933264683929004548137441140687917228023839301073360448601157808300949106387831710726128711073252304658523735909846147644031814173163992636666132036717362657221084508419823141853936760965087626593221455961959864890252486050077808076068368301382551094649944709333061224842165359700638474414009585048711321457418143992999785723084130537593164750695703289198061688363162740945928929744594291869122156527830344614026029252093956720501030597106583102458992501290835953961977031703066192641377692454402689977334553901577727216494702257093001118506092201310149837514740489835216181975987458065718937175077599808525120695657686828395031604102832542982694670358070877933589519669491609366983280700213234250369055940761932177489632706784502214292283668441789610724868328325585208638190425716580944484926104159606790493977711293896096942234131278132975333578141306224092942315241680443567182007356705530497113847407284078817789180760967095427427128921660083229226695895645291098780779439268668519235739878417452253427068912402753520827157299073230895850972000808737994460262976888257018329013223088250460791297073768680622676965848185417300999276107319977303701602013001249971814312725809370490090818231576408334428611977615332261275129265773014860052559589026844220168345914251708788729816658323472646583475057772560199310693504787176851083440796683852922682884932590006859947477217207042354600499398554978381367088250937510174325097511324947105179390670413286112170305622803991259140993600597220261630909190944878935379745476117080435472743547051169742713771292954620804272696902030215698544032107934078049808536371634456601421979802189158544081041777401571303412740011472768618096946295288361825730485410554803860694492239186482949033211173590093969259284415570273305672338752281993780361880292458854453292879019830457810230038121507387066036409664112016563878908368929416777963350461591673818871373304896979127541802002595185508824402732333023399733324155544086428741789823405527526303602788668745976841331074708721462164920812273506670988316326001511521219658130780904991775878833770460036568326050027326151261711466990118736981141801665501557286133241655181619251540432761925909462053574592372048261032506148847588588416500418334782892415702834951150729184683296793574243405790654053198847083061655851136609052726162837408980760631181567171801569989487988351870371886883799187827192796218274754698947570173961074336412330802539945298004103435819179561365907853980877723379574865503486639066505148956251844116441852841971434391017654829524486686479456060620930071113373637399132825975252559182095619841503754242838948257248823117643570499036667748613648618996864405957876532026317565908731477248180168178031500456951441637171496748139822668564404989296027362216841056283331862231680189276167880659609079095124186698733647126156767076452090343790636801915523594745999767817252180662262585612247515386768601108597343912619557046765972695612243390952146179858538055631130791386226019699296576849297074655730372855471450860711195461246779692535999975153562667385118820386845398352889778901950876507586829694741360003965704753732945303412519509081191094836932917377703905286473688031935399804563886450639448226254650746589596173148090865241315156822490067295734115460888423324204590996276899733126370414807718994686621897967752804084122305718665306187381170872401312861982419009880779514624275105202247207061714908487459633699464740314647096372828833765587566664002671647183967293085245609964876113481787350661221141065850892754028054488979789738360421668054382239260533357241328833255431347791236899595861125225078541749035823175744751631894819695318769287005830272410415784088045021156255370886568434873652382222945369524255860861478677154330547533746574074033190852956937354298713658707402469303042192217902984114520812921349796805603015161929521702096736998645745637423137374610619925620253666583130484692031825690227660080568470356380322963380192597182689439169946687189803100934824072592902553810682668716078367103882367345626500463305164684870803193086838060273402385307507225912560959804135229802039860601642266919856604885037932268079334289570970452449380616344599446186593808905223867981375535284391016572310675919258548410955739735975630795650759222113222912787762134803053427760651251508705529588125847372311554279161385776279733701377733682313361955533203220231994407598195506183533899127125054658697509088201369439111097974865135580015639806408953785317728181120601939064098933637235370448643786370868768591628473136077248808018480793733772971824117344664922672855805602130649207998473023177788188537087734953522339209345654114291287418683296831029520152034830486443657721016055570649387695977368874813369014999510971583701707579929027584540000773777424014700323772541099897098220102032423287952570279351873186612094361621104613804047462553049547137393671392772124465798080606715576671620636340023712396484920666198565485108511871723931246101344247069461024448314009810740778706231384181723606192216860735862438785820678998375139418519651327345699462382983099899401699857540210909175875516658834926665032011690220851715011004741905591044200010903967301526644724615538901657890299578453872599485943254479134676154448532091835744764662549098557210725536211147695441179389346147310466916699509615917888481396062279325888521785061558335717893917815551987658766786850974131409636983035430902050872477766597469748734168670420598019274633554103498722317800814042521503751652886904536257749846199988114004534115366474804570951393089289441181962619859816491609078596666358904544934099615774245763693483581829023252469295884635963439242666894951878424057988503487679650829221505940053963976112171531963598253907356662416051705505858240798119210397311114250825952545673296428927866350819017465382216650834575744266701843541523725064709174079219653142526429524237074486328629483523338701376412563638397954010296067506397210171280457206066237770357901907404771118331716635087073146256241510805246452920709629971066115610777527459834996189546344121831590543473351493374428494875041633059652254292894902113823496108881440909440205169522344763029987487414402106679346584801849721799600395897245043003158445381448689002489763643470234109399353736311092968915636211620307749158399475859083329459233842686602270342640153866875716039308419550033671209599847844347075113785343231090343777479524638339093931273744252078024681302428265471755139813666757685304467364538425530278270650982602636128823171256977681423027837883902567005322218412346716547630057592557430902923905552488586937889883110742526894228362873938875918004462190234609293166839139813762874962530941482432358034828596942240692842481392013409070580301565048372359827669727954491417819314221284920914308779091874230103230165591538595009587682319002390091706031023871718814906406980254593713322336175020038333862249612925703793677548621171333506567761921185958697786770661677923205862027437565962553210666022974153896751235416997123173811913434127593235024919598684197966755446901802924932621411617052339918884613123928092129534249017453201927099640767879953694483525690829437284218909102919097466228918801707393829447004774565453460818533613261051939849419429797878577886455623504219170509967586409366258829811538419466980935400373483152397569214947836108035339227790295475973873064314143656055432814770666340820702632508710702948202244362234681507786740216081596152737959622667520907549035803443124346627503265006160307002386307592326665096349208344669560470975411444700292767549262824881826751250754067120805805567608944164671151547564391851558075732561584332087157119918880020990245281977344937764346436303532540454753591624807724566760753782110781024278652191722905936409937638781124043030137965090183525872273160083866162816118048717612291781557898364996731824636818445505783507137239032749135307193533502350426859150357263235258117096274707510768321964883714711544888989128617874667030828641583618204439462127574708169792467666036922693747512457998696010395651527270097157233009549106783000360323712340323929184432561378255743628984102973560172998534754322622435647874999095516405212309714741326257062274570001948482926558703358014224007756266413176118748553195681620770860447703202458159097962970483500072302174771173192497287317446296756341438925722368813901536782081038646315061042482819834173159350345502975720445746552196458403400954923884741686149364908859522490845472797636250165558466212632300456425594482685416257186765474173212787266084351214281454455095186711898045518325180795255978008282717293555944106913637283715250453971621016131489780953545668106175223881699396727034485141401131546615726765570874125007764606450813671150340652657250615429372189056741933206486940324373782416400469210982816904787345479430539536289617062887503154831649814973628059612369173185397406287648547861749868737572427474013601786833384824769020149108206864708626752538560992420744014979263511560969639189476310687389083757586459112348366078023986192369959805541232136528311169214061320056682522164484635172366412496803773710494294071777721194297612711913120987017085294715930337536430196957198299075926614492906111064581556406519951694403802788177088549855419288308917086074075860491059966628007366571864851232083113178766861563022848796284018380847456289507737913554149820526501331347397073952268496172973946931870403109390240060605427007146013460647518578699135743093460365970272266460160232378332333480829232718854721268514667405791321853503065841824616097042738318399146787135619542427977609233230375231539800803834326033860974920658311419959966576431021351072647228813741705045737660190391203359626808584628696585429478190783311399896223204693863476515704617029715879980354388693585889291494916537924026941772621699235136619603122460140005361751832303411174402986836420934706987917309751334144410990871873075144064328245429830698187512106741900959526655427040431477589703254264616323966741351911081255493763191232431715777112272918558667585018107313217291732810878356379904954341088516478447669036664556102455307648867247508900651394854587499567647283223931749450591931029583263066950632897854620303256218435055284820049928193711912621705838478256567838726256215579650218199398467460004260113229748060752223279324532914109271836074302521734865244744816349769020455057766664401453709777420480176678725832595776326225452115423936243380053908708484827674332804766912574235557077840879009375103981989100785276565093048659070897690239896593224116810980597587824749149381770468141608455139897018465211542341950807711625523031991389652719738574064600341801447609150449259204004839285218981829972604010979297870654618098069373148703993663700658672218381042736606884547106795130118489941641372486694924443219292780822941714371648211059451054611007057341521587421413546717121635686078457488798760273936925181083965396875175101300296134801338525475611577846761735322716957574594623567874065088162106910898694339750328328998514726152099691333598917232291499296812265586286268133767426205051192427406416933335764822483405938959424831922069686000210848761182058614567128447246851445443807843489011662874571551757598106719675267694619356885571924307734964556130944990715855391265117541876931803387425560967302509145907753689491988294745420885180994930084589006661152459179829617146214425204133337117891089594361973012198289612353884597556621223599923203014484526465163326231021938332112300161437028478105358488642758854724483383340060298859512341787151729580697399129648035194188521862311774784405660687069395239476676019817865873580929360813380202903281324012833072332984950904707728845820135575307190327215930567357578061771728128337859398417713665565280988027582780526955791942244397197830899641462786218502239485076042378949433381816234189323930450455768507284027189386585320901457036875866736114961114763472606749384580857067074428816931036107235969606152463690746487514657347295829680885183534366848240992147643538395548051599904527733426095981219231506712693956814442170869135708496809540074435591920779995554004180322361957686434728740530172595627328643723619625332767970837834031323896413127681635233170854641177506344101877535162566512548259540251029319489846618078427881483221466691070439139693078130785266388563010860590500573195442053142713791032955814561629952991821568297658284173649148008252800583326586194854966817682067076873491521518201791197740670894975108852582919462885077220941991808256967525392488777492510462484935234351399747872395203772522138471410147359434142628723469113971808083810499351998042860055535206590720900057314135860928915006875813405523626698206689296479118559495911886569842094713744082013678587849957684633329835351599117268944263937596697308405785695482848401365512157722636183489605204170598277310018633490874765715935461610888104189571363849055849143235877701524824430062265072491014695832379601690757051586605355055331030554805273003317762719381545455970525967198270814835955751154094385487954480871612353858989537051791444124762774920530720095920660448820592340342937526703340211558483977308618188764134113377358349275143863609916968351900979574092567528871608280989909828448406961191967086374345442483421561229189452771357965378171265772696778291815836739148422752090166145902156409718170965197744038850672824194629078419390964267363094482425948522916384966513389989540925554070043318282333905043549256317255900660636618440435237198167771300314391544405591439702762962342907271195095977944299167236967832859929308513156556755305160663918941485127653281039282887852951619186022675896470442472894584117788000211429690842091302360572814862778232002473842322094597448471292071301451751160296529700292817769993268356068548090807613489900596107632848106731483644927829350782966559530881528666872727326298448088885133423304897669717086055335647826053723554382100626777760964198162479330245911841941537368965337687739155764030217654849010693460121162293528212947922140631398735971706551151814527240106851941859088470320830161196122179999192117141232209934544726662726110707834295662029817505389585091743560697617002375202491758018268977296752851990211862985316028547399210064250311542516900175114961880593697618473494589105889697064017402933173782051323775473553709003195652673345081068971222090622123885982938295492087335895771637086458643107751087632744072704433107065819304702205968635145868119175430012609890439776966765168218913643525219468122131585947887632647681600926469737674745306093730204556194570196509448130262966080537709040222880116300053406031921771159800637544695602519269584390848347490245512186078853054300587697982025591617036701215079037123039316527509000317148209495459549932862750042944540529738653189843813705789916894681670522925854412020008451892261256909690783481422440340837155017350562634054316778354762890991865040799579401628421955482675989907756324967752970385507708037072557538878253179814308249446878584973936311120931726871259601594802991672894578867448280083279012390993010900386760118920352307708274690530481468939294460224185327635343536555014692810804966618303517041886519938021499232477695577660043474980052609251141584538202936247262667493252157408016436590026010598101420024762782702575740579347531236191864925011810760572133937755340210772614596383157671322023532014478270979884907084879096048905260665931687472188967804232392740279183457398511120035962812493360258860116291078782302405818695318741194373409491025485051703876788008837560376843460386586948265697863237461631148606920266041917279391634536813015578922148157408195705499078621587654151844544986073206716611346685083321842782129848786471112634323600467833819988031130365909195761745619690215612702059311121241155154476956607426224102100796114089746784322164863199186413405242082221553842473493559711597484342195907261276205138232584042679606328130046892761949785929341015692956362536166357002771213084122179412507493904988878326348431223554179690636795655232860301518616500223832472657581196945537883086052503204364050281005319414058515941300500918193007778522658350109837371023352040507135095715487545507467379911088170612615113381336999915642521512875821062291120476494087860335209076550219921363320034204820515798939330525145081198589349965503585237632953005661574153970792187578987789002530043125285718640049705830783328133800952742831661403249999408315439988254760913947815683448074045317466301843069132550113262516392406135963921822853818477712131073012164135118747096439049057371472208303470943447080958772561449811928045149083579026796851184461624668311723980639525084994613108839706635147431454193303327833336185273513302122357307033977215519638430857193530284394976928781679715256236145140926460640771844641770042431846688245770761789338492501463268020338252268064714895588930258787521518654936595307517588060822995119050487298299316931931041660360553221271003838203177920991402306147261509336330116262529041468973913827522041826764829823299423770508553934869138791805521579825402007023276846550870814970049375892388161748527963686056432818256871160873902466240103176505615159684302976410535954313037117167838413668632120139868801904949475555321341711432271311676935353837017949813715646413920048244453325665922743751079111108248201297089585874890252765796515987764387373103776618903300375989860112333330333580919612295210106481549702626608981862235164797584918986531275682042230563014013953345005302536812683274144792544936994653160954598475100923028271359198371422887000540574316486868020732048856017088491421192260789130611493870731524659916353073426315393196987683753358730252956294735567587298803138010038980484848836565861128852233278725815327864523360527204207883943515488784533015941353111807893426851248247842576012991988439706123147964352865487305988838135257429988465510069716607352227669698320323020747341876332058198778336614346715857162177893025769690822968748857987138035331813398197570238343573031572570484173401043050121009087007007338719483117889916030615983757636949899537352316128788862646895477161146509696379567181587359213506226374747756181821776990241555752144960863380873409345686479339555710188735509319320270650472249580229293368236426846523795880065290782944699766237264788311942098759572414273885712112511424801280795827011961785294841263810407182938346514413998277993896819393612553946733208859468038350743047942282908291578672570181137337029945386844151665499797174883131903243737579736796675607772044988943199222499339588617534757509365348457117790288510804251708199584709353839641694912282422752364451002315556255192215889716558528332727225944604963563429993287339564631556475170340218609572500174760742182084739845433861454687604986183739091753248904107752641039587468210547037389879440506535244553828748782599060913807383816399936634063260282889229765031438663226291251926153237526411058297605199655463513996894925084729849831239891595732672013585417727275811779584721330953528249705995249996125872013345295918546602070910183191474570305397340564498322145070862885338537180991165796003822107007736994544937989533097723208676283625796380969155430652920290096449054160270603355082175896716298899890317509551389009915759723188286029734116670777777251327820737504867046849168777251514979225174115946450945902826548432734437790396617234993518528028963811653311489897210382685677493032775201986270171369791472256838515767489359608031254059987623359081368965197609911854580688362532597168381013765644476383704164178598083337644417165291075543490902966836275580973025273064663771667836333164772650258768941316458753805319405438830798382192005901007561013841956412455925234515320292617824957547618296617207833900501372801615742279146896714991541940659081616269080850851781044027995739942607562507649929722221918602926938173603001308767169724678894250495123140476428179261581005137577587132113452908683870003377560434731741431319385730758282839314946982901382066235609697034797268201838968748660547771896319830175121102938289172864738707289039518920256291442920175067471068730706637788818856066310175770626790950556587955457559864763414811433429319508182231615350157422897215526241219208509062051321863600960929756385860329257720480568751287204804187849472688000078739308531067861209542133517385004873904381169451038998583760740957433492031461848288637116521491453918498209730810565316725838025535088402867441868532875153897967665468247924200907707469578078833658072130228477591042211582606814949617951915538158477110851187593056756972390135348107173782544745959384256959283592114465655443689028275649081344237604771907428197663059306548650185695396818457659847953125505091747961526069308965585775877205828651455045140851482343733980503753518095253677635214104418809441647968368296755019561892757672594176788897053970219622922506581594490009689802976677382245457167436924612503518152239289611354713770991446079599184819970655587526670422389200870224830083328099294035103496006253541822452073074869046893083152848498916244707057973974479220206514282022067863950031127227662912771195338666068291922691323679999002969273219093433217305117918157973262284666098922255873372671029333784325317210489549682432251594926804358376013616726551755046840224412601594200362100895925983893096024401634356484316383541739181798592632722951062632135544396524913278941502835294360231656065314250769271174478796022008770794541971188427124809273981220339596123737009267776550950753370798012259334431205573597165721792112697788354160406614059945935612695735950471927199849055394792024567342015615412375849998614849067663120282708162086680537315603109769041482965603848995341876621423870618841303194558653080559613238521718901955774911345315364055541820984849462433483525228378626445413967846626381051474767671368981686268871673858915856919110693973016122439328235265244794607215926165082357888233455661079522111978764892562330327079010058425754874443637830533562425663798057701938183244870913969503980087629922343486273749132509584421190609745803588537513564397741159129377156853302482057186093492133720052875640253089186059096124040710986774157662408391936645784969115396734902806639762954941275008374195277100980886319219357452850990302224111518059973359984028201758078213955547606637698071674655566519925224156337471276800210407424382232535318687309181139472778916714705416656268426525504800418022398711071593826443598883896244961764631118617011145414111748821287101129634894624509476941889566756498828043866821760320750149898900856959241580573043418327983130244511486157243039446689271232745084247443061927768743277039608757107339738684906138688429170707068803007254186132339551855762994239607384839648503928143583036114262706205259116678266832469469480066042047564234379941971289957679695278976628087430322367530218665003760297373031276036254496026579012325409938741336368756769377870889596221115620834941206330948378163902368134960129602386526460073946766494468879939348276111327469557391318985659352530467595292501813441000948345071394893174240163954923953048103923998644481899746959791957013784455837426917699959034021319345313810933634786314693534224533132593255943554511185918084308004098934306300137124608497845933293068566847697223217549433825092884599069400569172076512309500016147781852789905255354562166181542017820628046316146573279601372268681038218081967502578507561512192270959880157382866455193652952424723410030382918921085991139944341682769485536306483157654039912325359767930371044084223820721441781902920785969558670085129579655611859241034382401453393676041953962334225477843368735388989592279299175939697135078821749480688777477984134142087646003761035559560964862010292654119139561103716345173206085327484447074291042339742094905897338415967111759733925508681734745521179579829711984012767702329822858757665738520059571621548269907219239270676326955719398284112166235884406947659490136133223762012833769188942954328310995359333170274913196976334936876855748407397019871661613069331654965457188923641184265150140201497726111395531815393761902663981658841429974136839372294594919363735700468577452076771856688138649337374011320393639560275131064367462337454030007877810154823798765009902402160527660259716415379675828541631325063284607589574767832338667374567850926892223788798786082311292481567773755609353660423611430906274627818405292701369723499807727116644800978031695975991924546822287989687729597714447417445172649850104353426178152698052863003230401584211860957515862870811605778701520874221618053905975170814405088626032294141234615014112134781973728190003366734056386531981870048313211158513413974697288217409372327094250447754634944937672012735754000684432718210686988873708442128255904102590777002722122332675018364448020191954206618213006173189528650385408284044141742997135284046296446676285160368620695516390478541205936421685314318139817390538091755437879131929726096982797338945923971203287565215164615332228206372766715336289016036131188558659092635976841630036002218434315039233384793402769024384606561324452316087338819845048856244721690996093641110413597947722739034373050330206689599410895501299937399510779550316182459344757173430593102219349656822105011462160674342610471437006552090656104667068060368914711970564678000058694387273870743013885545824588409601081631474942829270813337118634941066345418911700234286953853433412286347086440620667725638051952626848345148473878857635631096840301593573936674760458922119352304509905163862107425076384680299940499239342422723082233469300465882557027313816565544774447423128763876003324931621175869476443687831221872070985308563724767109317842153869028023587125408309699312015237749690616963762810021751308118390870236905316536597550794253077590277097077974466043823260809857497702400617778536005665976920385367097083265832407912485701864043381893230281405471424779342557232995219081491680017727119043210199410184880003938545196850231426607556323071047494006343265624633051571129676139303653884702211957295192718033696986405234707034601439000966263252933690869430269956915165675363232091438192620667282540854665536267815976400478986132754517248184988473911877925487446796984651701630539560477393659786526572122618190109848865103882232373425378747005481609879616196332047080251428867104085214585048766230518482280942515440085767273227377723882052819419081563395848178454477658335859341528914560778981584102889901148181287686954315892870534216002907236607298505030147572925748253295433318580279248974698067521536851006857018510735164555589199199010965164604380793581998546407965468874343168630032819013034536330080654050859592554621218711206707912164943702315659095627055516936676418062992053940006257023405042934396491221071604857196915958267526570271582447170440213618633728979034071364661171236237183691708400065320379540987035521550340292586678945780573556958707735061606359175132785384171138697204959688637238168927081695085570556755461672026034215512573957077237237527257364485019608413144285679427833103924910364885146317428058616430504846085974646938997617966313051287730847906033088338173911168096470021102655080181712915928576479458817482299870969352150109128139254823649506055116197055665231065171566154186494229808630612544090828162235673635169712785016756557913922747575415005051051019056545761515670020992723010109258968791528752760854153304622292338328878913415157719084814072796818196216909790567444951920330939028343297087965058712462820187820258455148800923237486308771865584654928948683622756902649106139145260778744748654134127656506490735370496079391317055850470710122014476387654671342333437019730820511824336122908635077827051514518456748684323692897264605923467447284249053323057405752895912334041228269738238705246644162127550793204368442694508519046790569087310444894139725656160319560438428838291736205477890071223883317259129434540781406723707474910621078063247810352806198190924768686266946351023607831500688131070668820922050313505223374660873998498311460291821643854565672740688442226497544373851815797124648048651335070400533372010219584407545445514649112326870597464633689159505060398799698638577776717462467111189315972278540770365722491732549177473124883875611022529405134207683053567042695996547171267891962880120919900812894297743263513817726334466151329125133944277733666811227266220804164805961851327980599781971403805701966294338952323784964367677981900655637311101847904042297495942617123145034039906570380634333943867311571943111153213521794044543937834756761567887077669277323299124995864246024403967666609835905009374978311333801639822034057402164206409328903401819094851173594066728462277667356232314607304081920542311139355516752543709080396821215104373924146917170283349109082934634052036113452743207284326277482651185959311586176400333368749577600512417049617926356093663676833411301343310047093485135620400524689593969105233904341276791450493525676859124164148434842145670486526639907999125924948193951680996954561952141299175097711204528762631969792355901693085163102481231900760874756004557991186852176362075108736581409849020578806323885532462830812218051794160847906274786616501194561658928269089195956059048754734825885616080607509203208476226928891760957282663250923850922571081063765666242055551040943671399667420793489846651976752745186476224142541188461299582673183027241195956086354701035251360772955567875917923408953532217041997821762048406190183358939536236267358011935326733567409284858538209473146622594923307505431851862465117949441425206048122794085244720145495267502794202223281311643833842690066556335072201691051239492607607389783039582088346265233340894667608156402036714106613286822682473668914390784791650878024388080835456441987550073627708881459586986679868752627845975040826853700884997979243618180180546555861312762874007921159753916668433385062873328971233005457373905575314740825523600578280344303344095912401162228882531569913664910425364451895050238153419009659838737534596816190738953031056203779317720995455291160567688260726258903841658697131764459151374339848616923130175657155046935568861088824262597197370877611040011366221212561569857247529900796551577368796819870459876775048011359043116542640613514365452886201186374388513876400617007377817806141680261080497460615027502361562295757845450862806744490377828237516184560783490810422138263709617021496473666606789636675993378587607946992637840748374278121488540546158521090133540110230516796622652023847194637023101438595568597120075734697691940905051159921011551150918700649527481025659215322016510149619498206745557531920676964788116096522459644027182012727659377573814377426022240235773651998870814748702397247743581320879798139993253720211015041819006115888235870862345841729213804004667943824194894142401466628181947151486929821718314126431623461894406854560810007385105140988465506702367235823652239726424174631928023193421151122175287702744694235612741930981123848726256901270260011159233520858385452247715355270702312540340567331106293280397037667727236866485417987804715166681917517721318409472761862361853746501097636665648427046855672620714886198839625566252358372015549017831252444660179842432493037416395402257884593353707344524049580245861188828024051750793920158561890174036923721913931526621551319034224318976396710575149468842840768431302048481707819233598527194786057688767584465999119179928177545398589089046635370113311671292115072963946729500389599213120041025846514030857608165565978585314223067269788891899645922367851294040374463621992688195083607142580124644091128269560291212949011614202498124061940409847629949734939687035827497846915895281899166959561457231050860135635740465451808196272746001051864344007272020630393033547661038438008805064724850496090819699727522680269174809530860843524603251717466782699523680737114155281655674941030493241202257454713140380719835864732810838507231037009686528868017923753456021135042685514838288750083119528261159938990575251882954052012266622272250726584631444760720046876431952547520306158832866000484431901341424025617740243376225927731385272417958171130642331116355528440064679582535054259796896598192189717288589607797544994820726944709694097763756101534857784138649040602124973077837521712877754122460327091050527879241545656018163592390705919823605633653186111623606480578751021291834945678129845471235264928374331321722122512012522598174365479931682374175120690729531891253316356933848274414864631447954950209863496042480130252699908159224192247138805720521249358275968572250850487600923978565075284255674489588261917322299433055406208710986026659816817880773225515846911109869232501988743329446243613331569229690607931555894474715319871963231942423674320440856030814364547126414851129219903768574831491877433829740422552895848735978615854143603941892808411931548818485913915188529226965953944433075788886406473588234685357519680686445247621618710491131273467347384548165010131013820157331576823656274887356373279225555915338276224064983224770692162354600648261791079022034721929113615680147293945087646268033888688441214681527197902878296798446911804499585467369249909655497204123514852644133064584620365014884311130417646438543249510473359071295580182349441657052591355879603306240505354724624689966874985071214444547542867466868516173911751618174334154372842138972013387815227380974562372206639933795380159857045932158524217348673929324441306934193766415737236226637339013824633066752760463701446315210319378616479319709141782530019160547465762309640922985595077382673633441582045956867416001846538296445046527891680033656570467787866361511877710722574343653379063556048469410559669357446689712492177605624133022613914274778531292343561045175423872680600497348593640251606925275943063593452808491315275932638219333322711313505222813626313892048165698817432175019452103793614561044400052004875617764864194889151788000196845678611585804042961592769008114487457649906105370648909526095128453099538202561840129300032686114270558081723167702632420069532403627686774241919018932371321146910813702365820141105134413500940824663506257989743143941593661786260761724523494678403565806627747498589669983811715349996960216552643532933782297079261198455653800027448100793547039741641905161351490484706567011786215818402262481434692333187250063549074576067863450476340621157065455417583200482306350409262095841863848754393411873953439061796260786808975916861835285007933709108649647575518730092518645680977912962622206914464073732383968742979520497262887457481374181063976289695438663772352012348827212563530158735094546718103884388137082411556768941001311992044210103430901390305136700972290840787225151753388359553829375599286206614476102545754695721641222616026536147667773183313983038132292118284969865538182580235274297462405930817307117034338812019022917920650836260052815448313278628065650886776378814653092044266194037350825909109024354358231795895835733794542733168114982989882226187281647791259824017796383585378346324499889305998468631569655555016666672730298931462462357497392485370555007793080785317493763344083973642170896155412871063517153370531987058995838397899601744318938301080968196629492782899648229232525542473744705778963171046769428960044460702761624514748182285608610912593663915111431793875738733083784681222790283882673421226139047099517419216416877115805290710478877945185902629921318267449403363805807502157283519428222348151060560300850965965839429411031690774320340743040997020039826832679975076978222426215044653467266062670293505869697823929355762413636410585895374635759051162675356214983555996604276874961588147787378138875114245586277731910215613177237254734417512775234294725367478646926083565546486426411865699061065471378706404055248304498624033747278875160172360382749527003441468767107845224850581227978223291601569548927153295234052572930448941470846955503720178383812854258678408504520361367075398343170188884453320862968757779739987440910553903228725425294773890208825030190919324348670383746905309431144499493561369645687059610300657458872722580286701442011182275622572090138472262067059448513726043952064349748699350230375808710130559620661060197914384419172507474205427575434230518332468824406520275577050056235688467632795280972607092146728744146978557810683836336478586185553022274462004671511685232452349146858385080413943821899003172887900662931753797942882978056578762450189737684137479576814144919348178698246665847214268041443193275505474459414160783370422572521676052918304388110129102859556209306188043734031414255784355976059311163668562375294542425125465272101954744811840167491545120042703212974228198873792124455942126847133109850923210763383996779220995707700836140336572955519384622186232000032328471197990885735548308172295817586847554277356449912486417018498449603242350203400653206095027423597918466711503583590956029128400975111035996662194781423887509139727874177730271248757538658045090507285227380389360818015771879373757949695062123308018405541889077850586049267661384288536999373953921841879914579022529920058762273789939700922647233021834801265556410689511786727378575955929986191331590915346033969249006685390455498266356893739433866159526295060292472073254425728726415663746806462047706239154789343632534482532811982410948036253878883374264479040663229951909522774209960450695184983754131191627588706142531656110572407030205186053804282509294671899369178607289000146388288710597955565440339333164492622435139454456674618123377057448664706276945169220006751594191978855570240279477890906615461610427935510901819805332958272359761932196680851317749338628285682470207745155239193888378644030292349728259386905061415068217407407977362536534259648487460235706526697263692212562300723570535832665019970349125038376781018281347028180718637512094749255665390862691728869671609533282757265900210436313614962974773128919073259942932376877402844552985077088819670203285115989246649360057323765460402153176075081519820000621832856279339579133988431462374374749727860106599235901428695259796160176121509611270848889434367691592286870788188215505920153757729047810750059905665192290938922607319035232074912167951046222850182323117192061008368697011224394583770804790866218221102429741069735944491744703660869152696544306775296056848046725354340679473770322253810010315164920169498513072469729536511209634718377531167425112574763691381650951318477136885162932483836376670391092451389182452657178607507065666366153151655733104994143280708431803792566305099294964329147251349705011382298340380988846363746772965378623571646977000707016572364597110668511895851836970502669767357808567827274806958117438026726116488748387353579652289031855103592218809965291689188104153035303055641951566884484901888633217699424455051009021126302319659971140229285500730834089979422362240571310307025895241578745264076565409305541207387448498127967751475060316220367735999237156923863051530583431273631260022754511834668216937203545850042799717829782184212214742216878360478204766455627870664614306063088051234223395413649555627611969088872921948708141971013630641145418903694543607303255330012471936287878828732829731322701440926703877351836056431243599567292190545566431094562839124178161015763332193913125210328767674488680218183847539927398619138111935561382035359640463364187975782749729336926714432305636262263246581986003952602490105523265286798343843298073937082851575897693410101316458889584596180314435190518721193137816070541595174771420781866406976856542654649383606363884518510995476206015227141893726709652488396656155883689353501077425776309437760210506155729421791494796779450675625209391549210411636483573831785545274342492022512495080472957049625031802714547389856402146171615820480171165329442834809001912738419490936834301159713054108694272459160768599820810144297668904088939413767754584967947104657212984068081198355345147582465244432934865905959720336617928725351355859773156749478978067402206878866789108095606518022618821220826161106089044658849139112446376242201946929720836836442527325287442865596424491227246576191893418527193943318251593580540502519969263477271527518605398389302605263024237807200065019432209561967715919003144622719309420399547313445439092038298923113379016486844451606689828764373685607796746039186452431225719500657932711236872298539386648442165017734928357572490531282888874044394016814171301459892281848073860664065156451191967579867455252176661621745893346381038659177781746039451024894487471531429787234210778767791998640035589123961657877379916319424222388667136694336414628738377676214439150640796360749119504407637158831032678533707289851657532017151093672316777481335330155050118280690851334819212794200152951019206103345702479220368577082049570218794086727021411223435966287009808269264618815072996558744341124961328567025487743315396657897205438229220640492366828202417256698268867321256134808468957504645207773487686942764711896978688761094940389140454282115588217002712403677379112919964258416903676982515226211748906972480269897366028580869197419015295601155383818907476171804058903922375973711919414434258136242639506754290471710289151779835253772872200534596836561993203383156652245650987010301235080260186907815185886652554976096854183579971401848634225690774320043183364275061333947997045865445243178824110555029489362772594659232117733934748106924992955547947013817366495882369322053257663522543700750668868640934281362964640215630018551983798915701324904695469392628692140510758730533532233704467801857126984339280255713210363496128717172109215446304812818636590359444447036344448225120548270767089345837340280884573614880263431397910050937974275697264229293824655259564298106369420507158962818080928902317589944646909957613934052604772419608883335596095663480532640221615332250616411390776408669915088166056442224378871191443494463994812147356713004595207925383119979532697428374726729898811802968337112911373833654091025593183055813211424726952217121618616950615906370425089292272713846025249369732599783364644000150407177296076315813243708190805554804831297436728863147630117038520952235726120395382793422763530953011310937151982065042353711405925716293023501064322310817594726798953646671005456531618211702513063116851699756221953390595018731229558730283446262894099387096093326036037907086134263893992837993699241553396641279084134746376253846997412689334310237383974646073828011942886195285916189464127547779471565620376481363550706521283593855732280694460145726758019666982502192531572512335082289763826664549312735043733702413802799663175568930703985437692784475532140068645531185002207117281589034915756837096963473346237687049777360672553413348477183179855796571011314288733644019326193096997515600890316876719566950279802648706281527391863631611026419166007879074669217402751203323200068314837102093106470930383727600523818758242420726704737916752873744542537850213595832046121472239941704207821951717018335688514320637557166543588775972829744698076220183537178095926497188718441006940328441239318804765152788719448012797605169146711898752051257696247371840236341086005474028575125914288586889881608615297407605085416456909724404967722011627888552531073318221773299786730978614812855607379326132802415565257153283931235675423855335837613179774645349388801800573564489032900466452658508960109274321382266881766882091309892965464606234956370335213971057381864050128623318347669213351019341396793707158543348290488913453682268894443540268085428529043700788390739351919946954305847576748751970921045431107580210974376724381760660171146646331432830149092933998038289931502596613748177508621108790742318447061027374108592364323572636873265969134424793326157684916005362851190003944568334736995924028722459288463305248239044887850139442535134059567523421346390145856471143038388022950879845849509274016118744875071717751632105419667036386592879105795488992335554475348854135724970615836678148977869971815673364996467306124793609124408268098430532086359841266891403773224513233668249817465813311243461679857941920258867709833728019873428168689344186420769265309392988495150963458976635798751131463390172857533198459377201929477996963916978878144674546191773680537616890284488288703558752662084802040173920275190123679362459139553803090954179070916233922021025165864744738057801335397532339237615082071403719184508365135211394250640510775676716667402279005825436960801845279129691373071399585200923759179275020068104595936540228816302150714095536642690186965665110364313982365234393333921300223701628547827264602090113511266443583311525142449985150780122083762126932414904717090352536380271252394418274387143615340202425214142143472784108404798970718524985573562238986953370790019284816198088361592511368940382184741649925580084800354165621959012240242355007257623827946359417265863809884881152617239278072922742548752374665820805265409715913418733097200651223047953082935709762553366240171629362326239183477079772242322808111373084684398897150910919374407777217095940846702816357511031556638182966606322707698852484298912857476814773305189037891458940275046556733952539134519952874478694153591965971308136975054341049475654504480670991149338044273150629306969309114236774096836860955457695630952609478948471167163217575639331489184937956862955943129082593951952462903810973479230774838180867628443786945374552988557141885060079485372639609394562093292845386508221216497037706890554782641969633085777012611750591676796299889756854619185059350813692942600545874339390904446534979846652651741952386815972406858274461945308688848592487707937374455164467252867666003830062084364788590883630574858394881028461442016344037955625085885889232252070580797204017210564779381219545298283887989448331188714857044260532182054700575800123555019690801639506703534054442988754324381853935456457559036195739235733163550758334026688505864944540696327326678572028631745110128680188878274146886970397380898219481525607496269425769759224335044257292872920499564009877250028083863486502621904264016475366802100728742483719261925393827425069373228417979404720697156093829134382838573722825461197169059074529850675097072342643425052296926243829095399652407832936799759371917712458181921932712060702136087339611117535793137803587090459686089559143396678322325778863977231725368149493350925330336669825959852428239923572780571790758960827863990528053834979807524299165845577356768268192638681918740974200466662867987795559364283256448745838793370661941067547315892007216578981461408103235060214091510084476266791241034235979705062344193487755184805420965370948430926549712651658906311322307038166242297293125360441775071378022193869574536658724204118086380397979039862268880060172889617289014953776748102872538430379897885933993343962734148905933111546011415895068283485455892592069685437798145134362050032356851324791733461693621952827658324205002202564512235953263284465814438929590210993440903403815484178341359479891150524763719063226396313271179505168646682308344814110346326447194548303446547356650867419842448146104381156390822895022303283975563307979944267014331260929209080095914697611103331407943779357036723681510057524843359646098548111835293798642526775841748241471267474194108223805332899431811910273600025555858437075657564423020651655572916932042732526243422731384667650185341902095281198133383998148082076856594338788256327463626941153470803550106813306679988376207115447765851642283826172975444362426205004289425140785397626760484877845600542603205245832206572425087995682663948311961478875594273458058361625446535215255040366926922582863322329005196537833991829908127516939094385964319890399429114287759084180480982591426051726483882082410349910446841456737494860805547506950864419178819596265280173892674759288009648099462789490134163447600509849098332409939303173287454572574964402211015413136140911997021117547762223524895471567435777866874702419128331062549075647891552724729533043930302495982641555278477968746677959282866987581665997600958271311565042340507566942962703679262686096970847586173287463037383424732634501862400654790757503614653425083625224854550606736517913204698069357923595358946493683540408868872949561470933775888890513120282337650027886765058642024434811780115256344489707017323204675226667952526686556280435168251510087664936369691742427405725827851721774426971334926025561675647580612745462134762646485257119143813491574585819271266304434331491072296759623431518729013397104524461199755630772557783500573316946170441441046116019784184380423552456644829162769959507701964445149498007438651727583882875293031112432455968447954298607985497142744097444265211445845067402756378709820821205546088079154600135690395612789728789787629625945566981467166503261853731723729537795399404601328319948107893329485759703552307906580209033719289319173326316837317288166798782502365600355380444759496808718304477081508401707395594772829814787404775643606863931556792073218704844797578780242131517075571701426999527139148510691735547337112280902456649266808963495434421353145095009556975389269470058766580359404225430422659260064290015556581842063008959124965420775507967796493876211564412812316019031788652991832226353879149687827180789963836406560934992984379204217380647348307989293408028537058798993588768791274591007018587620415918033486217998997743297619199703925280471454429456178040760664694648805286475306313221185905058099958168948581943471800300658430888407362529272218109505070767683455766892869797620754046473450679623915427486319798350119803217962744833338179551755888224965442824796127681740671490131521423527735945026783307957427565941760554893024248010015093095756296840578367453051806082370969784887142739111666565028870658119433071161735774771588686099590443236031179123626720825138824149390774126295432901440092139740708105453169475352826780151548306814149871905968400749686796051824705823270048633443013108129621117311900286963466776253565299660353148608008433798663963742616562356180708499850791098848680602265492016520502572253181457559818113132765987090886454092849260137279990598091674027090599359494495530230361052310860772621197091219163940645612157230092378049194430453240940863798753847351201508822694363355839551744718852375103011150970883144355818834863815498238774741134208114251170826093036186843920833957744156728167408553936992329223025889876142600355581387421385301493966988372969671345998197013660846188091496407939605887511420303503572302043274630362299332306784358178319557944424011142863008843426181204192565122300264953578233611453744716988142376217404507715370132833212486766641058567524458466910848961160949593345450347449212316682468205514370134002643193166206679363319826986543072013467071678853460050942653404818131970228549226093144481739393139560653711363559910811584862583411102416112365279137010757476294410919461581410533309351837069271277419047791886141767327939036288643926949206899024770878269927512647789222147011875480748340542815053327456941788181213124895740786477801011000750403937204127055155089530235784150112158098532856414520980030482378834932211971229138107809114330435457653105745004171960098104011764243419280032584979312288477739987442559585962083992799616863408393657702070722199286607752631240517722767850462628885774336131146386633405155905945037195060889611384569811894557871450625753897113386727813183595710784712194363086427766203678371824497858148106922029432584490986105508329243174279001918294773250611550127964698819018810590508584451623323670616334384974018704941949383357633405677874937899836565594521844590256095228483877128676123375332181239363877757592078460224249857983445479032466191368151900570455261883970046989278879288551251848165326244817266016826001844244497542724813825891987744418125434026023704843982462017069795213245211587963767438979700205069469891239240374699079338652517590652463212904534103444457332947556605266269445558857860083255279236356684040840482161078224099404834490864099641632425901981427202126104310320209476094456246348996988302278099231047055964548464559674478364752173062267864370298661263655251347479492069861482765196132509492907395587971429393721725476087281520926446710500386912243770479375161880398192197988104549404371987992914922893227413037430245992498756157968187208398990915187616230911900566502286185049329330465303580706484207229227086687892453821789212967571693846756874259039195785458100736416720762311375156337954953176164582609146751948307675922824916139913266166331151376877879123466337688530065617481657773511246525898685418508340262961022327283974791963160354233360746277678066723660179988175898274447662710056903722768952504054389357870339788639329944219008911958042141662233691510507943129775617867093985959862435568247482135005924465520309750628428174237414821533342000938629355546875806975286147158434906822369243937813471800359370117581148873246877487322782467096411232360215517380072600772242723826724598920704883536948600957055547065553957801910778282890110275863546034021618056686430169579999059457744826000944673633873554798392208076662097055644973207931006544754358190699987261914249892439707001122465201055416420289241980242079994696318290212718295501441788512760052842348801495951686029016405670468064628594170252220877109426747001700028576483608826438185444622835298025452510135407646397084591632838191541662548331829381830897679427286596970101380016315381154380834069061180508822630122438614056288144399658808040246917698082581802393690315293508694356548587220389209314764591057104307926125219092300289052746857425816984566614789297788371280136164172031281333549110209479142492484717820303787541972533476965805010565420154634895409367486279311150607160794067530819037021980475293876375576656138509164053413648110816529123486888063295708795836717311196599743608798529075573143883704754023116895927676523057592646813267854717547484310377030933713011221322050866184396986263509485693185441127063910556003467071120763650103575211078132166234452574058929264010612340374508163847328899563880046854241245330338739824148367237837151348756719269247508987303871529991335356592344533187928835249216580576033740228846322082031926410370841458654927478152985068151540849668918125514748723672540938251681708235133520742421781295213316420510329973724122904514749450883348600182621845606127033868149749187334281168838549312820697882924788707527327938786314595906263944944205101132848413169558526562171942571799034493451843664742677310885422521644937525822309874752329784896059288104241818107012852531261625450264422854653574519685934904929322415387316294202001874138107601345961757418512082331509231418746509035664705551898083429545471290229432872362847238789916105722723317005803577125767590887064667682610728171936371277749174919663405570348589144411306288126177247551944811235831708331863827384404113375497490560693754196441200418045363424065465156872555843565844141713800836081110556713021183805812770531263347842401367077552684161429417354640712605686571888698157876577236395733381500833458249216530716995585844957119354969001125926043105708702040456041197475801424813308650471360735504414517314207384572945143910188299197260226669950320547755622456219756007018408655106917516411765851263028825820147453960746496965571098487158381609494966875321853740064793549618295176776969595181764248449959370943873392875625822734485209381669147186828537524196844285623750220834294449154729320530950222556209010269191792008707737212841971969975149859016585639690858143496209188857421614645546087807182545539307997034725001031940896892719675397558041875667337678470601997090422325800935830462310227185827273409415791106669406096207923294685159617254859377988870731646769331422166987373229163782785051518392903455912299716569022333812693837433069516912513722343681195503348801478491061919478370666659254617260911719051143327269150989657286053153268277891710439225043083303459646462090407198053780788650986933401062746612017891805110408788154139026591387797479319313702966618372141571509288600938653131337946421326363183455893585956418087238179523237559013050248715060410666623604025535761302776594983463532950140732745532219542354383783680852744978382945966554731713710081425195530862331349343027646426597995834030418857183218707654491174126396158496512330563136858760352399591668712056183312330610801982575672109773688804901693483422476554141397551091357089599412924736173199768990771384356190573072058798637825877130230643957372839440244058107720391251949638637012755570373351075031778133857220839420488634601793045665319530640466282517212847929751295831129066974707741350944675484171225517115406374450317489407998964564433257579639020096446500343002404802396367345787292094046405880434701365039209257474947831677729156891811730452822084079510081417666976510013665051696203023208682474436866019418615084401157758161409183099081082353504239111384236891890343447578791737536974185366679751538841713431700558814816320102815069179186082266827364067411606316120020297403299422215204334878930294407348377049427965965647129575417766802017029263000640490031361962796174460451524159066333132912243712047451017898129476940225052262148563063462226659108108791310826741922910229256180350791305609928229114720337512050177294526549727446401392186816886153583928294469425500539405354960754088449291819655964529106422112927156430460648184888339244538318209754808007337925175137116646361530469543575346248736100377931861520322498095444904738058255933237013800108388595484247090804360131423027994624809528228769373750532519263937805354046128857100636090535124377383193335413873289708483587362112558253816176742347843558149274831197229346108244273255603266781740561273596395956198970656463837909860594549422016717209676811586438424611982249840113364502674040849940612822884946993716226092029985872922886233669183744601349470625649452668703955619040179282819381302912897915854936246465039459343792703733573925480554657732275093035853263673000273908893654070045480263113290756907276281286554049051871743411310887899462928736309332353320464519698140169394863483377681859411970543962781355567600025662605155497521462633129843826699387960227077642245291184058283787287388723796531121913174254187021618802088813127648161773863217102759702602163652418781855826712987837650823552373575954876769793096451567046170029802789120761454110432685952610652270937665610771456296125774984632031277152498751901750337041808035673896032766161052406458039172187863941930117353899056822440931068682303236640454676538980030092103356935241950571472921525070095191992964240910128034384370968054790990365741011353350415637850621363510073126850073789250067562553569827898708510248086371710392968839703974614443068347478577114020794616016240324362381636503309967017829811535116366159076881756232877268264976205851126569734729844648879424466182492478061776858975110688257196036463413316451702113253200567574341259244716422664630895067504417777426558077913527488634534317158543094026815044619413388914674207852216054704331160206371790816768475734654658045056544405759853542826533325602894084223202953016662265184604872189597772106088652915041230959415855735279700194757105770757045409242413468244247884254172905016635783667625810257649473770787277828122647141623373316149277576873581718192707223890214692576338901299496679371150789513090980418075760447980853694385743327056004398178403576670578265916701826982166201460144849820320614657421762993726550196112726233952771865887127411871149952424648700213494819738036383141769929640317313179810104546520256509066396091351544544652213695992665952673535808707815854887820352976899289620663442039209834333211362167085690036065983934049160150434801687132803376886803219441296822385131725997993185774584924471114441633591186279061059468697203673652975139730010478760853110726666601234718724894858378294513058999538776552511540669635896259153076094776518242881258369183134941972704459075798009015100730747421736992966824621992480021194539491383670001384357976072421787094401460493666666645876486724626277467345097186975051627160008450020812692155151734430572381372370117922022385269320083970563504978261608251871417861144025218550009058711634059538690123828936782380573044692169031227472435911896448441962453974039269578018424400174501229989394558393181356667583119169701886589444133613322867578020486651470586695075576390282153727589146716114241656688531282563707589594223374324689526036581267165037775203819470400273446438680232092118321204684781888869220758833880530147449848343089928504904057948633482328105227937887064082906601049868901158364224513581121912033796700048829281003187871365876678373410845210537786764155385900093676187117313536971603756156810052804774846175159665824904150321368409406665746701570539154560721601339428679517990283147672831990162515511769374408314705596187661168780891374982082163363894892876984374750772598522802869974594640145816110902169506353207272787805941588093979874134775274884358472172999234236224077571697241599478703304732832212853543786220839795330070574135276656966000547731664793075704412197822965511039793851911197251344593356231817697367745699761229331777424433585757124784699217623597296109963332927004567721333322513646425319383621426315155737476215554471004796669997959106185458968617027286093192593904196434859551467063009362292842073957141716663747645117918861394958732598805341496514841975011787115200417128988438996765494683040699444572713525576645425823777855485988495674161090489763466448836395904386908614274849252130076180201410032662439148301967191628386097169767336168576835704304727042665584642941723884687464750364516081858981213382761885053826075909211966384572556953627817546837194701433744874377731745738994036030268417130086099547789004126836165875733036756905533844973128897501889506450793922584537636431761140526912296523006734692002818062217181705096413388362868639226282282732313980851429722362617345891336757749144270860275962074827290608199927347276014433350327104305085278080961985425701459168552015438715604081543207164274075132905220397412872256931149978691969551140501136842310317944345693577728057622728527733893400825727783420599025972815543271424784466933897163300515192568608251736520689331023815300398455591928018867306782818490099788921518776692966807180676399549560682520312705851693790949013790426314987339415905371925649485251356956182215044085617712500247171711182797176715405613114662188226586635213875810964446074782800501521160463322002669960214984859294704401934465571374422940615580965228185642252344455034318142919630442471422746590742827618811822939996727901953284486669519477720415789863576327895598653418396797180744872937065642898717330306053357784844384804737137985712354971966890407172628190105969665141693580784242208805277959081634530787671787223218582010928614304143924412573976712116390632589747533890513901564693764323722734965880335594458436568840276158370577960400034266697038482100140934546674499047651761919117618697067368083693868063680399173537756671749704296281557076274333560257610895997772880276380729891822812732763726578425921132170011151189564290427501415110937452827872096366136076005120350454814357868126639109179532232438160793485615960739475377898401261681766452741822944214001242896875888690766059419564436763837158650039993864122189452367440841175438024736319358258335284996371916526567371646682260658999575384492451680002273817988849229701530688854303585940700853711057714609609124435918602226366426796481751280200894735156012237710984116200375782983927015662053113572883009782700539863134357740370441022599915021313421624849876032541731064722898977442468700975847751022978239790247463506280297339340555949463612429422856905172721274381962743849196374356742044493836672663676675354617577244576295376550215137928530944273839909626856590501281366291960823296574945125353624162504093643850043083470165015957771864042138983381640405389212749356128851456229707852087387142507766385826969101000443495145884481732114219457482945863631686011378171599945209324019557115860891230281281139717189540752053337875963041685136784051053927279063964658064783239426892570096371456003591607271297995542091109319130152466793650588096130851695500751893742473534669826463548139354556723596178047054511467461244969688765865402630700320040763560199078990581560486060195041671172022540609502676304192542000336148396723044240173377662842048465152480541814671554229337995861505921152062035713227875737374288090672011298453655685527869517262364332472158856242873238856642118341909788143409628518801413608625455418169041149174284210319104661634884641093654766190621519078762377901024498261844884101783574093752898021761359359250615514640183006208369344740313015957677323046236530726294253384603560338349616731387035714300381452325567550130583102662257190026679826521696373487033249333542965483594882247618728356390740529876843462353977401234649184743627349696113133235475238532959454657190621501328675467180858632901388843411996961915462958300432443583885101925595576778797129218504893200822591538128557674330856920707721816525888416425403589518612227415365729931970606485795990290905300870847241613031830993666949233453038367849228084225746903866020409403410136393428055750755351524689413376684448747012595767905695577902430291731943547140024710611938016010471475119683960902826221243174340150928354524534463014638041151970622342203073947660980861999711948607342092147217444968617133594441173796966793727557922667203819148218421674032886547255129696049284512097001311072460662002152080892482509290956045722257942299263942792919854093096117168100155971834969593260585423993887753915711428527610370671285907745505463725141920666635826166457229227188478340950416290851603249808492179106450690425777536067378607359941463698837144320607860659629672093570495222934946644793306150849670050095499077855086546426881025250403741395944091057146660034215919487137011818875483720989757304348043460060831288192308277126977054784007755555266620701922228362543496598484383990721627668061669936450585433528948263045882884079089425128298409004144326609494745733619448411566788649616586321653762907060743514400991820998537176440939793566112119455896162916144182767147845185708453047383148191413481917474416666870718930514170033569109771468459306108586133480968879865790717720822630079817290005920849279885778431662828765076799071264226019060572039173485020866183784476402995791947168020690668756295088283419373781837758386812137279250261307608310810643411305146132783487257134944614144774680354855749525038189979828104847884991331572629105313529944652621120150500393473509054906607121321887776715277482345205890022021508917077919591251735357022089157017020095623263327253502352577450148349351315134021319967855934736637184836826265534849026146329467168923279672164592604164225287806455101565947553006809808592902164952371357691713324791154992368340081944543517195351938817909084774598977037807082998195887708304259603183086257237556594486173356230630186294498698813604280735833986475030564993340688304580069312127058079899155999314487913859355202900312442709131243028265830098151042401061745882399678800985728795387014585778694909478906501747387598069378218214099903945078318604267158963958720203129461438671640918558054522183820688208256078753896189361492692633577856823833693394064283541417076219414780385357643161080183813960758323124470899662428750404338145552716068821201471131711644368843562521746710909876695661657810150890990261004112656166242514062880199883709967912245998598201405977552567153228563104961396717794570302062115042411374302461150633143690658988546893661654481679403163147244763012305304658491396072947021293969300385809130976591512358471313655994340944855892362873063735656651116941793574144050275288423877957264157723288397017526287362020491210774726751181395713003228738553186315966433495206796824283588203712417168892034112648186413544430459000839712038704616484468242672854963868395168366914993529786787668767804371024653572751776145653830990088287639746239850233572740889329846112743502128138685552054777932321463754585567754352191369040961094390651138307610849671152202289131337293963870808901109369143014863008278850638742515890383369342111319977380103055661898458104756819071535038332644169193283053207219151858115899618633576074048041609156959514381146628120134942667640831522419640324976591062823399156033893160995864650098405746743604326577915010908248634279106551562727165609107237444627054657490117047074392840647017190039483359064069980419743951384309468992138742853519849123266484338624315879188515423519190770219857969192080062331670916135464481525206398890403926751977246454343856676205616763546174336269432593156057258124674517466088666316059480010200881877647343429446072992885756482099436297878178097707482406323503627339510058046435143013243356708004493144795142843337936476483198953927094201306075695679831381535454809196431160694603205048341637806544399019596658969806440367320884054326276005561584540157944167314977940667813477530794169980044535241619552819089146674554676120100100862395152573257773783768457823869576234446725915720586352918546698488994569640405794209586621918666080412688781953323707993586165244878655886768523189408207418420612249537308361670777849603398389414449061013928657603407600602430972927918617306117615838976389127574458138101263694018564736022949554018575220834462530671291504964111233626868604101888761665294361109896590115908807173820929019446368916185495707065577852799610556227731813658354791526446422618350734096430153599416025342148376573740490246054839838623351433082246347390057098423798407727728346840104021112735773178412333608952310440349123751272421267633637231075668237626122383614991506476530923757906899853046359523340552743888611047032449474968216614548980892059681962809475127499225650427634564057130788113132785298365133200896470965276351901112145626461042144807787113709742200186819060882291938185602223744986781478007066785318438506268150041968631497304212779109409876484065442044437935543706064842242119017330905108918318851418429484042856624161776058766874762456752521411888156515588260706585794614036238006334342123013383765524170702694310523687045317009716340284982164344845625735372549700224257314921875477788524109128072883574983686625308509712907834114812279006876248224270543760744005377464097832347936632050521489460926753991422042333169467908587476311204857992538641799633876186253701264817917231171065457994832757236771745666752473256537926893871146527084085699065715655214938453699230928682857972170280025589348536962223542984797453978861754751394958539830903437742248436925760328651002409926468003123757455077520074170158511218530397022488545591475663570075510252384800240772780100696757432535773763988674259581586015251517540746817733626739075211416977459968031680379185133876841718370400752294403290555306683869803495384506278864077251092835447418547020919486912276956858146526122779746476193992726955589997130804378150497197189083312262260988577010454554683258189940359891578764099081672077936642986654544879609291940652445246605718676901660875247984981066296837746191912672760763406374947395045439966754678241104341514329153557054090744300632049267158482521657209410582045261533462943915354180463612422506959183935801667926757951020095799720531166204217473276564422908795883731551576070448011599062855043746746174603494511871054922910262367282227622791267580937065649925153221379355745147023173011310431624913090897178766806490453445761359351270263031471452442075405368257453694395703201173251910348368011324972129094694511562969728304158422375213023181351733810289815364033523179152457406329632633597305355080992615040673679231331662668255874953235156545515964099211921219643389607178038904684465282411741095488907083327680201907905848554754448118210661160796863269337466459522841987720845133959111751541938934394889921172296492262865038382736656521074607798846436629166059645248049870571263714466992535491723807754239734169046410461494959235400385270135180393710643387536155643439415100629538032531975615020761401865425841296507151384192397867215260271135876331906033269285204737567329330565735537181096040456820287961926531025625234239240686992194479000202124695668920159116123670380711540710035674776614727927605882460834839222928675887041993462306347371376268083622274384426282199579470039189535775205540969002931689499506556118505991354878183262901197824584929205624321222016937943449367702275480117619368292158022879008412507308827897067766964778062370302601157919434433177686327754199141836262401670532914040711376134242451425073658573993185587208209688664438259581229662587335070521694569103017458966238619249438795650411347522681016029763194707219201483336917840413145196949891733123448577306242045902498194142340211301109598049169518597892573161984171894360062879662660616463619061780010094416452704746723535461283093649250915403334152196737624136202156632147186726318824737901276784964112483433667309297529073992678031221583767447680412574108194558844740436174053515408086882140387065072857224666670508344276767707287933276930775808711403994144156595151967520344188859986940409384351134319011386702429916278877431450683471640034210188836194481720673624593074241742183612095014252990176860358660187412059806576965787061539348886570526535435921564839683292602834352690538916724875764941633010556489167186784286054807683955044396836319178296464823706309195212023922403966978059100059394807110525915813163511465966464190090369082691497682442724418016230355133743282257237579134453625375306885038443788470091251524965184641000243398233067731709773554367304866101398690947235528403100683818764880498286977979495043228735166752214402030939769189249445877278121210850796271277309037797588743265054373122298654836048575054339221057923052937428041023732657193430375435347782820862341579433957685635123197828454578254963589539947681479918343574781487732928883713510149883425827866733625834588912663543478916588695989149592810318151385673900819567209439351447390850941133769019413163936784930000225735637164219459286355681460989730183366500531656780032764476638339810107148830591241487925524187798110916014396779108011427977801025533648731891378090220184576710117618282811729543375681706803025242180700791081749004435936214904868713779839704174504908927720688960195873211002541741803893357445216046270685193296580953499767300267795647142719122818520987191363905839580707912856382948172609846055153406438468402775430860981918893441436236555137541142677596284132458489708637409840452341627409527879829378418000679452218189936623604498271602621232871560923177764094607437761235140614735517505484725816374902092211845185104234466255562048769465021651756814015899009372017857190600625694742508494208349957084146046636532293715275410159985350231072200703458978513086268506984163634562239661120431031931815654425211807402762519539629821925768925148514101984721960029148306629142857979411332835470364521191627915488610176399798922347521967103343375873955540141513053190158752991256948996074703167853527792188185929458267052781607092032114747967635490317775269926498357183824871697623699652657011505825442924516808219419496788931011895300050328591644178987524255728906440628494992936358337285796587172550397076460882896435288059762953616438636597685162104396937960219068233957198197779851591755123529871798727714716361558476314169537064666594620745456379857038674848595370357856589934050832609731377552884635243151173911986597726464181125415760026972267111358054839261918848771441904014927434435510401519580286477846321487069710367631705932416852756895648639700987791562428962947514184371031432284991157230496681975160448948540428213092372109820646078882732210274397058131084397483352205296969441582878649805995293549774768409158176293053254499874301427070337087180554088413645639860988370573086704992894439889439520190952494275739719786265507835477238727200488345622232290027087322782157439676721971383315128092007055646223534118522659674420337249254926468094824608832117157441144946306596949044566164756697450762862912212919683010564640805100386882630131950646041324334897861734075524949810789079353452911800599265845257453408959724166433821145238357275593162645564327547636691828562217181106355001783118258508942566531862961876014966306500358355339784520763617031515430708256852168045189361534180905686912349623909818551578404652341509933810390783021308818953522006998032983931562150935797773417940401513659091882453391022362611962437429597176430232387186223194597897986204971269934227517630592787554638260369472703931248209125555241594367938080940460734397912705438771003233217599571382523885537263384568617087965658194837328832455497058573848490390280056264569263464346628952361241827616924808546028219855672730225872418650482571651008413339329946433915844910496730993858550826464796054639535908562044044831790022101715499818885676677251228920098829596828397895054024416397336247802694145863969788536539903067369300212984542573703542815286934865941406271552459757415157096358248067033030036141335565761505487076035144901321559663985610133866967010856609507004472387134971843398388265304272933213002770791398279129451441111682430963029810656409460082806599311723910482720885245269375467401276143790827541958229043488850205164947313385983187258852455987686713564045097218168533382915099954708794205778381533761843185864703158739480879577831734995909251596767032970102542350703729769333112767537385509216199700817989533026679739015286830137987049950543058620125514341775081647390536642499977786799379875692537272700434795237376171255984173211176959925332569481689909474977931316400327370441677289094598313029773202398646623598828951561381304340637659595322703643290347457382826329869330869252118417393317577565989305083153623767435608942038474519311287175878180659887056557058516592960735354618858732754479620133329042811834824478342310663643946546188545419611440330345326662957982621001968769066097080386804604486799313047619005990826443264004442324985720339609732455313591747617339072339893143546067722334056155865051572570341575389496842622563983874012913690905464494461309510100079475369798020058316428479439883336812200557470965200557481940024773801796585426622681722033103788675017779202627449523689163012220016631444874639204455917249354933376303740951755285306113721763673215410409282461471631477335168840915023560022268482931038209347504242078235988883011904312598975335767204167570554716743927042139277476958746224058210490487870357958630723067806146489066138966133971922854401540939167763240054982799587457064308318835732552002890576624405434134701175817310586216786526274148137299166662243670940249900958554499502475089151689526789654570089256235567710872959025430851150380737563982351899531578291045813489576380314901733427003330715420024167043091686529178346085201957430075457359581106071014129738207748781575490827536164756616650327255395482906580296793584651648999724810749390062674909033974108540648447486042798631081983881529672872148700179561707224385077491430009364418975646970954367667372577260561175086012990497439464414780653532496457750757123440047537321872588571301384359793759682938480446981749667038310937406819469651389624732833969498016308536627243547183806716207889970715249733823321056612545494984182095868132187572649873764445983299757425679607015376716748670995539091131524459961799092822286354015633263686423739274812391583993754492727724500540196782380696903754466953658460101969305089702879862740805781293909001284495619412873642364875451579772784320453332555943575937418416922253105957761658795844178228889678710324554674188501788335656035048751343655111788139148394074317453430227150456394547588507075765494683217540152930406383992393816291283327628963643909843560900884381218397606844071886054166666059940239065943792016295771290319196632364165538850184429268246114817296643374338264841516946962683896295354128433520631645271615096424392149811421122501821053399749207944876005838104952412022480218590528298662168416767669650465638081208240600619260226646433079675252900354047440527454044020028898128987427976654576982822765424270375113708289554510565953209095860741100338411136776908053332997482152323448435794567746568096064572953948805245500351496225877615228552199096515236227249464335518176147716595041479946354586707227799935605908053192969096988798212915182133787533552693214131301281534504283433201235220124350340433440379570926416116774651877053600175940995875076530821256220342561858502626803760875689457791163542531807090671095179381917098278998058838169476283572258626574008180954327878810770664611974827734025900721131997156848959266737399953291892484891410093561043259960638491010967111859195497923157081273797964923999723252552500991559605957989635599690354180381929826753618782705215044491813798630320767277756714510098291239762993604022953318255815590762853612358109045510129357594457021540762261735079577054017586294607312381001310884623003864875282805350442120949598392623999788988458136677984928270832485225776003122481892852473887136123235553040936339084276807698700073369157635969175842402021486384765546444420698789464839955549274534316384805006113838611110618651173680355874599979826336798627825657790497138479092538014976177120765387499122544656989716136705973797570246324178959293540553856923885268636409088336372660169358707552050654291403686466395853808198084018225420421830775539029142964623436432519086226161168535051129900902672781751878581423865693065507121647774980940494998015238857033143858486688584907157777838210151816712711774223989480516069923205994958566290814488149604361747396366271428582926781243432956196717340118686029534417468510041151901818676264621628034161972134276395268045678848311817184550466131089599368824371281014772994861013241900485147074181896469954106382040472659584836308647833474114103172807696996015153666425194048826763172999442863139310551725555475450421020278902651188175579293844138579019533567549560313125684680093849245310636407127029056367113483835202154267799185311056284895386282959916433972614022839335779733030938272152378145875407276692221874290226555886604490938648890471754010254498724790420346817353131411235824099830487509224378406392453144228881242328351216123474732279967184023962008194818573382804845638431108858794802809739776507300175280772294772919887017598192637254581930898737580121796793552731971938738012805161040650524070278523685910336269955287225806789504030817926126095609255509563582231869858919630377736706739689622917556248531517285512143144057520489940964371492484044509377055813164172095757876563530480792572651402029769319649655233327751833883861661285076633568936454436745620147682608916148951615666461517179511315355563784963636893523458528409000298229172567505895401217051560463288753590684287481310308031597033137672513211065940754781236682506472227751376106804384650956013168381294217023638591462930396745262784132883276388185821194492063163133418856332993301301737765556684996334459777525923042355737226910434342723426480945046119133178378387703440805985095701184315943069405518074670127373873030251943696756640315003295295754278727917221640314836328622566155704395166405266643026299973142507990143538717269863904860621778203393836721354943471078303775583404267137383310256422195609181151062799379453598471004566338612839136986385986816084080939345304085707880831907502101222801011887218780776844114230496553968192752703403098959815570701515598706554103700504218920119532986043536310464191208118612885884470705038954558374095497174132828085629614953187404703098635089382251350573456663329926656323115997591800430521277290028771751495933574036716377531988602146062771762915169833232162727832691547686186355999268936915922323924507861101784412190846837293894380147607328825500072945712854045097343760571435912526446893331500646676720264758766863497342700627575080251846812632206917029907844975798347413294368549245810971255756891388161046668277488719517362882140722883008119377753949607257235970511323338791222927907080581310634477512106544923811696974015056478582357461693464964598056388544813955960152176186623840588622942611188612458669301314334169788584477664192666915671773838425516148803665030894293071258816505754718452077464069142374187974931894928559614778063253401115825711269778076543891777389978540735118630316740007273005381618700569752097278071372706195500902778361674464375621578561204388459044445631416506902454967647582576007499967626432673561363310888823276530429409700221073964987482307189121047158045074992435324135481443248670137781315103087609743695733562620530868551135025923934740595760805586918293707610184969862424196965628254820150196763737463592915567783723970607058030505484647634595789980447166430074150934345132957467780885544836588290156498769484611175434414124997644270603698340997696532136387247453444607840317443815030940633992766003076024821601275024298192199122766669967315960677904889255900713665488445831593160467337999615304137950175558642730097918607759517733344678837782614103776047654387883230399757588202114611195413123704614139130835188470620492913070004298862481146954345357536262974547192386459771934037005799789886676106351139174829702539807809758473646106797817434529634872293509097145702910314419231533186822767449218075465312107569642075411221357990977542520466284713080095983092759524249847148154604981624770943051709999628774628160058017649501716412418632538397959709248391819455149813318334249896538946772976768996254118319175115719550346853452094477115155748632356106536007872942002486997577325971503197996516101811469660819400016369821237848748064305045744404804581025989460586793326032503556972797911530177953126767075074060136438505350045187591353501111436133958192256084574277194112921480914876173899978669739416585737191583451315781635202645538530452796058536941322717009355246472715167112247398859064978989012281021941625589154035542633107175796441321881094946185408629965626995237704553514237447791004262682709402095868455013321435579891445725391427543149558750826292409824962630168575089882633614667715051678486101066347571814429573039088767106329136474895239748721431253867024687343590850910917260017379122643448168473383663686020805652605143585386093416194964603655863922973345206251776536838399382255374906189144707118290206193439339739469861913527025888889762624149104143719545520120134965651011631539994634719419504858153854288422059224046920576467443375550995473817437310072116719112434845601354661251245390894561675738683539429073674778686787615284246597184063172541057911714403504066841368015391990117214415528359433050906214822954477388502996824303037115848576598863013191405198043865865879871369941943953230250410260299426270155982211169150092825277707570993830249741396482554767073173779937662577812126783084175323492739391653283928638149565208966057358982329611957777482634841911090719602909811443125174181817510280123753715829261707002736356981256083971491091646830384536477231597491057892676509430140113179096002801006892154012820967206929138834710942687766489988284152729921267059099470669488258134676312423853950695580630949916700451369553014709352259090884799803807422549087203111808932389658713728954650726658358409344802963950317697638958770720912965429570664427351496765073460051680012417138837117830632407970575483505959220446252659183666972087706521057061115519832499612990514101707562280273168929436625114194209152107615786084496816302059277111912099272955747611188444624221641851883287776154435348432869262968340494368621628948426036522336009982800456027737965415940777289118392152794846500638207573621000741488883950989949918198457501232202561221519675245551592764801937215519876962877195344814261538814494554049781422113265803033274796390476213179850638875774146053422707325334982045675801462203478629748894018264314290964788326714692464835069335587397001454510634289474951190249005550015597311983069808767445633514949381553718645164852514943211855521778420033312447562888582347529063849102253307887697926307986258499195285406532237358181701721988628298583941373495517651931414227999920320550628481568430855490366048215569135458768137370115521937704223667062833326732264576433760011452881120432388367028123167725278866439634606540962676882387444581607993196709697984190542382572196060095370764828667321225441887323294113129575907594693520858916455671786497143679715124443411701147887576225285358779955496516206480085740064682523012759821777152672319533401560923737023532107226629790998805878708857844834819149706224528867361351061646833328222038099838662761433325711648919414565049214397907829718155846908325750428661439257443397730816824633283202537804062105642873639536808879483864001257154966743627193474825012564859648751683951363778585410069269719197921745957491601002492272187000725042417201357007834582140410735715703250938055780226849689776000504456594038551300766486422643218664311267005721114471435962551504958659921372041680631004118331031850347609919120699198564448528146830793504362444082896175183574899691904754708658609346261432490435801939380172467490960792440662710118703058078308953754979200728158597281286553141855589717212361693489029503993891017746675923344264926372642664742557708340826138318687010114453095416038024831717481106298986532613731927063680203473103043605243475372621674898298870802293562686776072090812054654275544048371259420613696181837960516519579730528080838491852415148137441846136845620771840022520181309274491780048649631415315564312357842013115808561644806759200172690798515465560827940697339123934756646797083273211593823753358376540180195427585911976286591173928293429459065747185501101063575865305953942071470597041631900904102348368182625457294154574341215313304150287442719501709201528943475328244595747368216772515913180240200435649137836026095070632461815006239057131183912037424993920650763745448618721537266933928734291147063191882281253116510169636475264113051321554805245245266744553368546732120738567952837505748679040515682281208969505889775844337739693303163037503272575299593155609559523490157169853049889943155471258779185927487254560503405932976057700231453679080931384053280892327136903306083773321751198107881867574373867059105501281526166417574852912072297998288477668018741309943856409858971052395434100378340389999647404413798420601624230872748586849416054914544447514232072065703774318623899247878260308781132630258625087569226826631277451078745416306913642411940044887927108278440278100527992214647257198014946619474096438167036615381277066749163089515652535287657737859098884209415938309589628615769993423393787190603837407148736927232884044506856552104643402711925357824516760376349338878858518591510440598065130327997134238383421279690474475939418464914281809997242467901438251254619395767852421749719474591827542671147043886465201962002151883056823187660238312130644502201055751089421753484795500230811504237760512136773952834006636354380707901296238923218920936549694333913720447286311577097741112396542621720841517495001147441664742956746898047793203563862544528349046442300957053608511911673640251133021954116564214977232830134955416869035988005475939507094979100495378637262521191723018884405886191253899246693468731897163770007123328903512524235292144390649572755023914116732541697250109559363385313560275005041097309154159793367147534927526929200070620366008959143033162309764477499933892034139299675539036505311730919560007891683373498664438707711238915576470533414610301695964630681402550041292514476356860510551448699100360746446907567180935130701519067927694950556672930885203573269774969940853969349601610407262596310629225255363660270902725703764499566686765330184777472008999706171119778868364008057939160994373052114683575149342039179315280014768364050809208309380587896452153111886897002652599547449679738272493256221291281933766209675200183024187870905760722080228322075639809091920970997673929322269038370133704628972264717041732906692502554966744082373933849317724363413087434800627261020251065079740550065543159184083426640218975295858049932160944880288440910265827312464006915596690185811670920623212974508674317975943976700053401403624432894535302009369542515004884574522242955356275432874976145263253902727859155433178303978050695334124963946053367680295050335401983606069795239127096313637004095282210849548293721180412153913123134608630186450795619657841254419451102472767304863098355004084608500397978042467762224748845479069315794558063918544536974190227471116937859905879031897107098546785176417145568916363778729043467003113613679457602282174254554102909738076502845176000963053781660965955362067855405486264431367033978942290987756699603112465850187743194180094611440380537920322411776933619397714502026564471520294436164835003085561848613846070233511273192043409732785933239683941839716976271485643819577954411954359587114772512286652340793712507725282807888037746452941351585235691774514206758432874745549360995062311923908335877242138971268869819209400778420454569135016105002668727656300252409853595556490092500673613138961917254768276692496116971158455309678503056743742507259320818296213690778026112522886193533617339578771011204468868704775223940148803222292127308752919301377355341475615963062938599400262272112496164081976516037743250587297013509695458671301065040330760872868047643199485676134536560807054185804326373922418300523437336898633516260131510662388805283127998437435718403973407587360214268134872272995453210188345868194458996604118844249341674629698157979812756856828077807953713258082154138204016717058671571084303298758403657636628726903968971086125630882793640987238317792035537735080928208817635994844450311130558671711448707851023582824462558153978178223943380510207148305909055360898687517392526356373027152124544901367763768218469117657803098070048799574791774319821456004535483068100723343580917905096462546826249283317954735963881255019259817304010627109521281402557412524424775680304559097476958708754859581301008892628915793348277948639876846615877227713219723183381938900333999747329851906920607757775360228708770744329787689441278149229726930549218813450101324631176614947732022038265840176725151991541541842209290052327182816118060969053322902049799562256249919661187492464310155630173991876742636602781183527452760295772501756743643795443011754366211327249573580496903935957584451433950068218827885117417810768216258920730429408295726525150371238301760139735618448991741770943397850798765998509604839622957158550503645615742774234814960222465604015754451545846729468089059629339308016748729557474726305045721315596140366481305178164948357963096892781644907970215796275580861019880740045924438166358454426571078242052959095385745174793411673428046173938970555309736673381061762377643126465417810534862108478944673807169304677951176256071004577745609769678015543739428582389738092284037346816476250956232798553027914258735772641336360255993751426995023636848213623196094443212211835086393867748975005478780149631269925136006786728090629427434213462832420758150031582664710249278121564692671740582866752791171529891580360895303291114941872592994217829103264491196893730637259591533369075971951620174213524413174908499032448169032718712904171943278184001539963796366194793602852474967883162921429685058279957134506264209356508357721856575359983015413379170039832742586491162964689082005029882800831037980895206190772575719327121648798707394904643520637013834184889530456988994561209344364455750982432235708726747599147020932200821020461882742028423481935677551943320757820662752439369787548309272314979799362455463310996822366244713211812918559100056018573837627000972018697278247260890375938975017089667507361330452723818746593219239851106064862741921729083229700354184516437501739399883448720287898909023225142675530631851850854996032160117229379846706110155757277715794363261221870962322860510467049948614553859530514593309483764797962565311773263575512505730146721035107211858431261059186752320527692327698244297367915993211838080547449231708104357261388807351743309553615111083963367493405946424258663353941823455088206017001918642404143692457098394829429954516770969997131491510014092687475988587343071424241009784730121843417668398612206324023418236235665783287015559695109287341350261506326076909124297000100801420151117481556995293690905189615815831728254105081452567525712084348619803980716508707327018804912990599452398689335765777081956519422916174912674266294702814561234589218170538447570049710891787598582512639629374332978420273837952023636022629245153539997331679238867756989161270545578916551274157552619159785011180500799623623693260268101464926551634394603002370272001197310262719351322057167888790669973953424348667588931052373075027302094239924109192684916946890935290047084648428347387342340401000320329559478828837567761481758757681794538739874275670370944868798732715420103111641448224726176298317035952240475125686348687983851103514642486038463861472477342073087706988890959319899973673927965023344162194888044578651704830380115824345588953734859288535440754727899261093595560189814908836875958186344124276682970036244006418949426510017316831164025808878838813544476463703729230980258786730840589814933486843378494584784969658241424267209546981247715080720121714159303265715591069959363952626774156836263780402579520416209624192425922389972784210534469839909405401783433287389930420110994090258779188741035675241446860334037427892007355487654331246553733000651306369467422335588518937093774343997878459867714308470338056936200797613219432325386548094930293889124076323298618271545619957529235946571182401774532956485004635500262945849815091248388874392508748895032790480761050868461641700397055758048559382836863059295211201391702459532367188286942680683489803825237785245616829299233239823828996246024263593169112556274640543718011669747358010608248790217914597343908899199788820025433469073657178071024382057714017575237237513886525534557308712819256620717422854600446328628225443730980982390288833101345142814413615930410282874604178907368242658580725870420500952135701075981206853404512583617592096125681063093528838770644274669935947518571193070794820739732120985909416697059230511612712021865487089376070223362800347391336654195119518971713097762705907322131062887781349947973774172207688750820298894669786066716148888512108623593429691564850513504744291874416455332172467388977432517768899238639373726065665050366172697639372300108143210678778724222400174158635978016470900062372497417847701006850517726707418359612619466854820630536607806124748143117546715919216725353523838238571121496627996268377254051333990851754907533723435428136240313006408974114345535782542323047199598741896389359467081566993114362817918160150025009403491561897394096052928445398017375199191506599651897571149909492037495492085454581969363485274171938115432890579773683096629870459450172630764398637187574168800289233104519193260706102160678360621165822052383766890229815627967611222637576127592510715285114784752570563916453541981976574729467656322164399798187410557851637489140348821254594689148965952814611710131460670231891081001644568849600322062018742278345611720102868991481798872942202639228570830331607179144509734267827391814285684810591179377459207750053101172928670455855016948793925144889529100707909511732174238727354288679490076719259843871461387380307069825842904508872016266593579644889359103492598279758391110823848028834016639466345691163844684962084649963563781498649383743245382595457439478964405351937466833858370048184282267589604229625575579048464662388489993494193030065052009485902868264522514159430384391201738389285472774525882043560865062856132869998322705806669656630617837448003311583077385056531677471387220704344493092591662604427554822674014589794737734694035550662539734334364504995206919240302211929960987782566107184907974987721777165671395058478208206500909794320652321551586359239497849284468200396902212512460458616336335411790406300426920317314369312700709798473663140315120848035485147297252549776169029769249036362466197479890533097629173751165877680850905949769111749269698278446619947463718027099760108255058155773417324024632660450057791406517069976258052481512231893406222845155890771326084589783535522087231971805771387773075426454111981453781391575866770040473334223007751502545912630138793114769048618578895210579920384937864864746674880773753450218822824535776056744840908793075376737237474383019584194160407815318585451021325382904467575653526374850555573559445741600650453788140660110470481619969228547137353641070511719523414440493219986325836697387017719996596680585779420436552109860132463253362353344355960773129719957508420576247147509775468220066345943093573261290763436842705988198867160060081019433981340769811509124891552936666316050738938726157480431917735211078893585659057551751231138325893355975372825559026370996030894597938078766164033107610165942366169954496833072113689659854877992065366607076133021846295926198038103125059426492058621800685380521873539050103856807953275286072359229204939763921773683503279361749115552229046192638562225675774722863897800388442057660855376974124238374979650591052868984436294680538129945725855918960098501689256198016833614747751898355674970542257593502455880742168919824524124713667633507594241664114244920537753823602794692111320468954506026816047002805054186275471243020402187548329543281064918179579663085219468196648774240003020616413133779223091340114997377963732114158030719386221621965173584430408597968202523331290992453763423271514446094013462036306367992033974178138991304977921339062811765545245522864550293001543959759294042104381129762890322692698746359003708905781811266508933956126840956030796938169322749811522281731022322672979747858494801866407337823728662567979752312487844261927849472793681734977964890850327435658394305099457202848594840563595410638279445424077933101956856437648827566759901409690215659567633537107240821158016669201517432179918748761534125408020060107917105248609123568914020045942242925495264152055562442798265396340238954612745030892412396444679238721741220706431831862136964808415374738344181687089812588331588760780718887705107500779934771958669692312779933832299373618501745570764784968722528149604353737168532197402945059723355215623046256025161335992170271079055270683632650675639579912684448939623160673717306812625570428648441519568579280076300456759618699182055785021937278606627434153210169724526568701671665792055512657749095160299138683924321040354553559211083967585144492931289278054287359133921961250243408545982361604417291960143247246768073802822156901820659263078716310448449138563572163689471137722967619245744742220939774561655646816796739062959152964278949873177148590326451944493872828764951467998411374133310138174273155775219414025068156982316759138427511613590761752172189366145077097991056013475308434553852075805797088746501997466182079996587772774227133299330875438808248668575640087960405477371876698976932592504586022030000739798449916219440185287041191378266270852067955926392637662303895747783800703715638544029777447747825525915146458863818522125749449230287180635757225479513709939490677273380372802634485595542526305421974054284435963508187797253101506507010639803761752547874329359283571890152201752976171578294769208772246222593112965174064684273677891815874259677678948397794163616250949532926154743615116884720552241590573382726450967835215081850074041455006020257063870232388617020639141119499929709432448931201732815203571284862851660664591548376264737886354336872552934297362141020057789449339518332379068659324824921414149546515760835374041578568570825585835403269963072366623121449260234904951437892849263991540622619827545467122094178435723279936036555027154082924783055631876237582324740882008463161057775264825444476537657326490903902157927918790917281675914426625855862792896928614282817008032188340735289231743903574829832479599409818778081889760518416691635932856660343416834724730138701581677457035156101637880599377509206731163096641786666402072047558925470664181538262581011392695556347814793815270724013896019111820039480590061569555756679544400617525931152461233337671536062894410267510976261242015278027517491308214602105872564746879487337123920271623609441821281775182826559729792609292455145370707143035714982440845728928527942935565672014484436044781222151184689859567216374553456937526254844136000883678736349940814524393068360232659804071191801652869097888324009738261515277766911351244406794784648597328080635917247787775163637590999764547751608361218131404831822499892468633810655397958269363004094966450968116669054594780058639872787968896067707025055757052068111452217807496669357182818252033498686203093804896670867043800439346000149547111141649838131533907512909014608999116149405697455277861517767161493054700902381922584407546735567801359780076538703319023040765132595792566549753004636441659596733107956117761294831434338821491164145219503128148609907873017426348543005287196946922674272083151524660577600159294044029279543476443392864849467079809319369888223244829845569186468144322304120318411288293994788771743099643122960662536897841997077655799441920688028429967090645839010273962279043586072224739053468948237497479928900973865468294413246896548673787061793131785044558066641987324368565761215289663766054346183976921695992217638174836805974305078542991323076773007872367189892359698973513305619033705828123037375183466829776178687710402442463451096544101134619275525373128593166802258799933064476488892081679025748541778254393510952557332660745864792369239010986171058761523011216246298097940930865560612150072729757987225410953122013189654856386619040903278878275034923605727698335795168200759462813469383421179878944469547968287674623991374629133223075885599843329900131462623592150997935199757742370850987357365234727569355954460738298924972194036357581552193963774497415655290620093379963509911412857815715615683933620088078784301863666221787790402483823478435883589133223010948524772196794356180247585307990900199808893402026758294399130258740300495842342120850709497969686359616180644700269029079320032395791343971311475447091008646244705634670206708549170591743340843374265184945493694872643921902548280969331205442621995428659088017580800970298557646183658035195479610426056279061054760411531364516293377379268271652587156480871434236105419274762236458640576161589476115137331425366096697864998695353542578153629499720070720255318090894811877093453890289064010703075336116046517426948620897225167191669943389842745224275268738048611857500877495414972983873437062102379725820206391460264047844524532804152394451947077337969285165252920287441061029691816562653782075154077261476030420211798841328716242824670343772953259407290147145613495134186316594921228902703606915656087676021019880363224810458951285646174731687829956324157219416116549580003814052835640296544795915594572440770452706679138489082474279740251564336511491378948548366804206656585670624416284437752808303547192331913971229916088891014807663860053736684357714984899959667292796909499700737449538685732662386705019606333369449346359280943767034793991977184509809062336184490564073657492573047546475220445328497568647472890537256318295750727325217199633834771973537118505249683443618714827059411061868891172937476523835597654383777254044524678053234775891557171052165369408699595413113643812477671942618136859313838231382915253293222574043511579523864354071881106280691447803867433728846559088554844811967056955136187627679398888145666066433423782910043040532412920826287550748526827913709771698358367902193230295837918305666533642122067321768485646155288039493519731106588826084687165109270572503790706412049997434958219683030446254110287812907242026019941512090788796804362373367624403708357510583708531996461751606110225349152241065930196088879291736411226044113350588661435506119713376304109613831896876370279333843071944052436205546841946260285334515563388141998481812603423446964315920191049603092471017625087699615690804862140165351031201041561214344657693808511819916595261082167265375135873816038803986847736376357798750499339457809078772341400328073074825603218892667944091214624317538778852511122078384637413934247782148350826374184165733038297256279301128767981165411833719945555072012675972538854120511452074211876098723381824800623729141142699185492717117012864413162553098908837051867104067950571100016131955551114708374023315948757433776837378532542108866999905057809802114425202680457332692487146077486448264017809176235948247170254186209901193461254922531727554071197017063875666398242325722659047886567117854101043404531572057714706466448626299009981247138630268189863153875278021115145990540101785332147835791758483463347439301327685460195427631053532646175025599006505032182566766283870201732263565962842030133287473305056509661634086123237415090489504140756107005211606545828000513547217363969793244482995307991846454083107669947876785469807464729148186292586914125562260736929658146381465640180255037584503650532927523854475262015142480314531519395533687876756645437277050795873217317961187131053010529841280938449917962199157348318047192266455083207429235327819099871996168739960302253482018203018720131575875946237504877067145139949128825325276235446836136204669637499263044987508276502896543497838334721082639663629345468267618841027138910561722390589599851866475256601745212519984832840706912880193349193655236368090993581999732997764853698705941753230218975697301806683105958928058995184046775287411369760278488765456445749085915741287121838503420141146707802152820784396324581770402141776366956794842744441476641194689464282284474521283980024676040163910275370538481336830070389139170228325659503583192285878150991199760055793706205322654135827621975400495348604580303176718428358703730540115132882788611048769614342027726615224807718031610862065895362625330636832831918752390043001694164962950367585032487165612403897955627867222296301046998876363031533018727906020834840738029873301356049720438938697404076921046909692738705229607858196555204582521205697900906686217152142748864277391732355889719774122385128373068597143441829862007125267806719470621493996656005306379530780122523347421807750362171691167448021049890593075996574583393762524652760279217045021678868770964443530836587140598928393444635628882308521210793108392068126733091253383204436491033799296664915797604394092009341083951832533918502763324526693939895744944992223684085573678186854874135819735927298765120257230034881763308340640607446615271893075337018702653762737331084422683361755637936286394349037881431391459872530047630457515581367246457952714664876598080959635120883666544919031186735491596167712084839504820742200485292775696344498562350698860552440364471240407599460685658524456678064161265399016504027988396181547659535793108837067962204953069205313526894112184724008000200094724756614775676267682773611094269629339060778688861221123307914300038820059671431590683502088062190060925282511410603969126569956997946095245974823708139950685532297098559460287480624220263363030966251695828834463046901694592715785567866947045271510608214024346212685834443587089902127114828561283896008539002855705822786512252674889497760073876775596148562016593233136311304737429292301857222599077776381565953445561382214691418086335087350900514415209676742414571014667406257782385457239647428884064040172875842136174132295478219237462460543354751247871588355222141261394570318228303394973567947355247912045989057186439644137300681607132064557235116119014301588103138451713610639978457012802777102694495347173123543472873515298707375929902541790469925869073314564669107159231187559909023079981414949672088384032468799564166522007170493059678931709643643255636769311023154731999922689342885650514653500166963151876758968854151812412833296727674874805288616196558697243487183557300190911008566002306829109649564910983157834948739095047507241501043811405701339278592872479117076642538288507977661346192396517301652705269086433981428921899342366905974167492081581372886531419214726329448064871398088573113427905400294217176423809286326786886950708054877576889574523051434935547641565257204419549560580180676705256628792304006167705818305466803236989128770633668393176205968074396160712203310495838696127008916509330314763168152078427204426458681143406913847428897296550310231063512652980482368074134617210201463159706855428266470607105899367096112274756817062067537917072381312872516354425969590556040142711562757024942888934515034563354016518734738361252449729131869819497361524635857810857635957649293367905537079134495698536993069460639363214047454772601655720154736194886641756581290686992310283756051448770053999204105882257767187157238897392669796677218615916298774242484123972552652268606851757740437759262086772133463690729714742792356614021694091676622210763871933064891091990458795430374337494934926979036593797050811871509869684634436166174205581511757934582417081619299091296950157325192844568797858791477926331355549661739183325659300763515834342394791851682683591461655386473539190180622408882552050644972630393531078975489361760050291826904164523468340783878721823645149447603148848195579497435757003075352732951994947542508705889783605898190146044616511355676548950674754940531347760191221022671021840084689829013209904237003323870185858016435159148110357150865269981870443480439490364770930331226900721147581615276015337716623765606642476236959268196975696804639027122817912905447831663219316570868624868727766524882321127986184761316212921556823249516147325899753574414122448954879592061939760620966495390474847001184190889524686238851768245118102773415663152425523015370076318993602029678712926661526539449191145490662217122991538110244024768273699632336481678117963097318952693781342633674634672741875167599090174977540396739733337823011813526075291348994449807417128120588408989748679771708448682584860563111146247927227607855822883504686555255939617642334062240976067207577036405986966761073415495147417552652160875278289681906843362148956699537932759540494026953786676010148099853566511828222650250294493459945582185169912857981850893094850166752422897710908894823957892059075055663650251239650744273358069280225652616062656044385168395164860912478548980489929336782206994973447313112587489731546335444432112851801155692924691253548161756021923578917432773839119327124674274883941243494408234095681420398152006487452192637726793516745480803840893210564765151459531522320823404298436705814633501817246907889181856321960399936723248829228874891113321069064276160253910535270688727970881918104106707773254766554886400370374561042462628547631817273810508305363897960369144281793978545763643017991535751466632587834455267167885305685567857713571302218197647516235356024070115482892783304926765971388893341627752521857021483243331770652989611673279502524270161167755652926991625684540131064343933123900525153509911214548498703786960184096407025730133443434233434627676692979775067545361225464065626483306338924519692882150991792195014678324513035975464454167044897701189314419907195119690352699981823829876937981337939730474672760385230489876148679427977296260923288325214916609952929709476392806140059884275421583394955554026233415976549993306991828057589906630041403161766668342313513665319079058925320723888274236823878858219528338660484280338197261514583633062203221892480553568655905558283571962379993588731918556863286093453123464168163375260375617502845641334739496721421473409517915893958696984766599156741720706427001213908118533681460309166657688604660841358534627190251075269784437851426385638062688500813279531454992857054313377258106391850564153710982529018638068186263691391916529228610530291661548795797515729593586582951695019191407019641048193318373508074252643740687496668592051475430473026236206032529853889043588227452586473099811251037386183186557795693410610559731335192349980033769769909221812512317250991937328170236331706918946761374627491989870076704107047319201145664647801891514583940013840212649476526135280055911355677210629726878534199196046009892999210938201257599438175060310060108098458688171468912614316434641131957889851094982167314408024154421267529588694858491669017690996818324710068869281585033768095229225720503152341107508060757470227197509056422434348991139826148420149919389234227900653705415100474602042127768952116465520407295846047666489505529106394638467298937589618016191963534688951630234408072602953894492448516562169234694018959288711137671146124171704602594070874461014684716034857151182272747779971237808631912890980077821758700450465621792032220715458942445178706194392218610903096763625146913966751109996447698134571560799726409134039968231819229512155638030485155806195717520378409397918975436106896064994793467251881360872078801273633592592280134861102857621180498474469993110427055419739188368990904483017600953185361890523393002265793212479436656395373363860200961057099286519925984360498048598538463341281793985264299653435281018817768629956752449441459707917264329759930886607889277489819067091781438940591513310978421786330908527476930233847475647503391693976508993056021768752105861337545730867252030450744059856380231158702962863139962616200350527101394311662189551321484160101012885522195135075579509546434275798561879807608803197247407049091778794765062005019366267329005704767149725196599123611474473031412802249281279666546373464582061964886099122051876971535706932485037103838662940913519337414082804398319082878134535197881859985835478482568324972542732677646165389547181354748491793407773811046543767936319213611935659149561793130774361876060763961541783122952674911568917174802797047478941662141932946260377421199370394061376676591976640225310981503021393180856845562973932930918649944900774981588594695886642553679075108994597510010666442644076273687534446032455914723665994509417755634398608208843297137228807985015596027127477144912559786123566168330046378469428978677251679134253667998043285229844139626355357659411713407012876222248650787728939528342838758996710938485916767174983347474069460277536984910641356133487940303002297084145499262929908074199287461970335816874287665509907501291162596990872010138144241900532073410699525629344679315460470883810501003661994663567968262509054796072640007550576407763796567460819341873053699193346404271718829592336490043297874015493645707515188723814943908733293228314840609728922276455005540377572614329864890685642992724945189434443710048724657715143328149345630280314375576819064481185526902101282199332872653416386929832731974691140944311136566971081830796367618105697899014062447586660759204051763991730015693134121049655837569018784719255603284053277173456792329688230583557361822898014432635842322556650351238305305211835855251405339822709047524908900763594354811980974340472873204976662698520904050260039680055627448334915359174610963982794269762808889529735065336014418307760671703926659177243546759742115259581287231058270187638554593290114303579364573297634639431475436407397981289052971137238370824297006940264245271466480995619979642515372712605049478967764233307035537405380143920076819509736317662481585572330901213996329187753919201144514157607949181270742903863750042414091570283182933407881942018937523124270651753845684241946127393708407180773418455519607356356454117662845467894602751356646290207474645838397736832050823046722972704757691538205602183523537621238648472897637330066309242807961535557080323868473956878628175834834690785580996239317387335704327393414950451283235865361673350527060351332865832552128442822957217658772349124828405323288142036490854363918867485067680135995362088817894811280613109679686439334693913579199544149812399617679976368412113414638054305394270599209859054138036397654157249515614745036474097903118013021774523425883065837084356243584951434843440822492087644701636096081069760122735428441245811431523590804015586435818815235935115292044622072958283109905763069615234897896392627788600090535693176378490102218697867102987628882784198577479944775740066135247831573095729189900465562485863646840538832506137716041182227023552496930278921250111686523073390816426776948078009851118384543415947077494129178165055496728571949988146372277814964687292655716240170199755263068642418433888954105419855047459359582979365261136474036558926000675170456626806380775134780720072285329955756750789204716082633299738313996312192886185731060870453528341840491568966288782207299919065185720837242200577943287293450603929798044936971581814722912634475862318855446955545516911526724569599703243535747830780091582365147524441139792604538877526881486992666805798275790755268612976750856817066470949318978408080958657071680983078372606453049175741174904815856497488425654446939830847556994078765222561384996950742628797769405657465950315952239146072890618941298036031600520001178345442111861271359060765112210354140291064466899309289321151159600494472418019009185457634080477558479093732437522331308824679109855468084154233296827281029097414085834633521561132469772152548538538034279888574825839393702160981654739995350559709582497688076836262203516159422553730562433228540009706132119769657573332986343038300434560635387981421270896705158649649634550316723645880551140083190805970632640966447957609807318956938377941601190584112326833586048270832802111400792644590773903403032126577156615026533493696381330585633936186473835772833309400950373510270963472348026848494183037792612994732199837402131229637644045441480875563819871785321273198445233398678816900817822582576143535491102585751355310152561796454257854008888474595116899210417266840295846570611387726670540153717084377674500507018728962637448341833124389698347552956991837309081775569193567374666401012842733331248365710252773355787808737110550471253448082125679940255105778429632586245306420574869792471797565276549359792655198755499553095234249283956933153917581065908196290460416417789700974729811329313015665137760083647349700825722786734172628778254323892123829648587684355475134712813022513697999458797371538504045802480958500239581619475604653368734882923692267372392421067732554856250342134778278160174089846136435117274648869885623822323783799119557033673572400327265264451192817755069947858384894215168583508202410374882859041875846980283400158189479553341737057560356258702276827172559687069161764493098426764760181710260728333002935930672212701483721368815757166005644380209470379465352694856074576768600146982007291781139956334614216240904365056190836097349377127281564851566427236728649909513602934101969635388250644568556512393822720783276159413691683951384190292348320300101319375223719025425431038634990520398376920981536089888480876967757917033313987044932249624666319148714154733312650935310668082486269696014014938145151560032168349199518950992099439270314293027900604295037043546888829973911337971602675427807285398567897071794417870629821459865061497500533643155995448565865713038808647963640040061474568154385227745400841963156972234997934989005444451432089378810733836213455719185498525000744797972842031624504374361608788378566487635812478987335603569978201119990201501850530827794323440898034137353041872751629539275428213313756266817857507733858050413279792304100299549150648970574821333271656263149170908876061791083926559136438912914399243756094960875818066640882612446241185208778718129221731038419284775064830100272327610977780567888442763208317058590586802662378376461558608115550004848349983428301383520810155986015688140458217922889861021796980395563229392065344356971986020729445795097307837216799607998973087507089465889586574284140918508865980080483228151853487123459969028430077961921971385743454552042592564317143792360844343258159440425654291136895893307468458438260534027049768905178458979534634624251005965810943008523814936296651486097814634248042567963378201849379050210465939413239746353527232333373360164683757006225517924137009954094963606475844123395108139703281391949900271824646203072252772396658139251608043482854433785831847810774629039619896742062833875862761483549159406103127977195942303075979082247169685019273344429970736563384982122453355846820924889468155076354825270908345011847282531299441577140952405362910754408845624481878739337433583319169634340618207195257538111212592879730609745274663340426672315759241100085986095573794218264923905329746833148148488840776869003468367931019064884033562734286354036409165125183314309377732128286901226466069353258104450645316642513442292459722408972834770697556738731502235503409936319950880296474696938960700393724207006331538569568708468160726425547836400489951931457303181293870483808797866818475881294278198532817562870369637464186342130202049906820388280950198783194507783480745810677238931184114335998132811436860779056299186822098928706546056519892060834343600048965192758538291705851343376330166943311223177479719749068317299870364253816449740386095790030255499466188452037343123217218174879094583974402198696347433815225124445135268143142051497514537432632266984993302009679034311579748262734244772882668384610905216802926101998849393343103768525205669310593030383871270426054715418200942204867750784018790849941152932502804444257604315817867856509720648594527809795199589540169586866722640738307969592972231245121241737014441538998001582681790435785320786479823362551381801710657687536012690241703223974527507948723165226514356597453919706903094213554656006893067538354309156845852439730566857373423791087639257365443937553246016265618374848458567091103263683573016162259624857895583165046308740461932339223827401463088085390860689866288812749743243853240664749429238865615913413510992289077577672337416091972489365306408830062823855478388548297175067846753133674507738594903942555378881703388458203182854089952732595719178162595242899355457089110920896828995993914450398786536501180519360583420834068425108342195477754863119916712089609986078762383955203448271093820040656172813059120401882260410824057307686171975912641407093744358784264154119552728179344747730828337088628593968943475911775661687693633749959269831908656205155457509371849677754026710501104380194319491416021369797983628868442296755243717482287737116365290411251242613896877185885070092094337465475225749060754780559346786762584990575308730694463683146342528052247875303456542907555052149215625156239511908597993339181456826459267302704563493368795923117046638134968163361579492620147928573276682748464706906398424888921901357897367237701495309993293931335264530428176926049321440334328776504476710984525307324011269345974133123417124038354791811509969798697744634093132556321760791992654232237534154064069572644774116190513560261088772807814682733045035134544470372606258553484950707615546215190025312279822762732562288949723080068602383667354125754362904344427335572872529914474029676535513619262386351167506764936518169865575886011463733066644960155373162828480023308731154450534951430001417947507096525862257766582492370536743282199679685358315792125067832906023976573034940790376699377281936491730603301157441190010188574125365612674293714243943471057421679791260896713373633532485321274544048749857952424276585182629277128038826671414316945642974830314715583590978956675122040393406837148676578246904527418595511677657680236269535276548741654739558931432761252254510332313076693189202214105960422672269729361446500804115686306746298427360935386119684819011328240812361474236476830515059601126122741506256195653920593867797195001406785249579921530035031162327280239402193242054090827218211985774445422753375980509546683951332491520573424143938332772674088579603487026916023804841979448159526293775593008805752259488774609101951899839662268477119550317401987981368586461097961704577600249885294746982968466664086057456123390722262462851890314186112935832422218156351261202080100948110494810999104096522751202606853813165210189347626652306139799862724922570493797381292989601506248632799434802495827394468619907406314043610947321087215047134364225407814804719537422697636916628704147731050125821066929212790526161715252969637969632742490876777343312716495575434410727472661499317341879855885603919404750651751072385233979741060772368035599965312498244541609348384302398771115585616556187256374128747957069705406121342552623752829497311852762122943559448705946670306518198911551706792408284432595264958553473879385064681359957549978650777008842211388630271417388056042926998781215133407452661355628566413692443621416888430670359363118023834883923341905769734206981669742291362427430032077858721713907745752788348148552310680767639156685813896437991319820517843526050833158837247991594619167123823500275071218371123036812566551020119834755458309300593689876876364705116561497931249072285372525830162591923747389294071309801985378649262597071092130583695522766255473465881423733194454389069835484495585072430577514844147838629090165239491797886932248602588271715129318817491044820932941342768033564883071249908097252757570363971096983333692172800331610822773415671445760567207418753932042590341754265348390256415028559169923675298297481789125970978599644817306176176212398887514043972331182660955285645917616036247406691633504556400957305630400922431931938902256726921018292923773287715712592619751061929606806978014678997147461676197240627545250909198864641848053179768406465425718708825997942223789704459904589903859555905984680853133659497671591886035011742527657099587347800310301394219037000611612746808576893900700714526028764438073165801939976565966916787783313731134559885623552071625950589790395932228944262840914395946214434859147742894430396402404448762483525715964843339797298362009564679726587901875640269962608929369212315028814518753279188697154990701308910397603533741326142601620036969457504882779231556142461225506857566598454773622778568020857152816745868377607796778356323612187057594006020084459314750311579998256456016677398238611643569078205501305841080089420371390491147789393172613825137183362923318123786585686164237894390669714096162625000019057777752153470864502795300425063785305978213120493423401703478098978742373968810036823075453702805761470498171283683076173891700807013292037102949848538711493006941814991621604344861187355885200366027702562121171124644497038541600703360950279200776317699767722703688904636352366454922483527716440489844873051739609917318581641391548355910896956468328136634184586896385807509472218611656307636472322263249348332813843284500379046169112729150246925901567705109577247885227531821902324494910494771070291306227136724330245695478125882902630663706095404093156722122551898251452974538723736111070710475088249725926572922702839876196120593583006897192519056161673984187205932830000779257644918284773548689145232501540377355902221829420571282624290390962790854322119501478927598743594467430675975972031806636257631325575963358109520058990597549749949923110965282242502569978172463844493421400132714842304913580406517577671787275405306170350655278610527313944085729378349884414653050418956489249168782843112026525264498997115379782214756503244145962827006524723688775203811387111472659256184914591860334504669947484338891604403551756361143209545713780783957787954108805686515145935547548479173316813010566312057994497046077720586338939157318069364580962384948730467162605280701438493283361544559471209603646074274495761987527724403526482529282262873700902792110746165659368288846423004107086876691072122461109326636455591814527079327323418352066624936944895436429959072177350042568559442279002692794204218262892787876909443393215146654804614721741977293353235242240288970890476877440729502674980049810002329515079182837135268118186531084680964819542436605588136195021243537701549458904137926339582271398303771387854042841337348777387728696569992657829883687973139160641895381134305888755334533903064446639491000583959741029033490945682975458689528657869337375652557738701826052843733578389314801660038373609711423815469943736632594872931166723016091864057637737836146210600522193197065902017853569630766138617536961715764910935056856896720070342342566032084618485932131788426142890063176130730540233547437937261374296286276589969709560209702313361132306193185939015804485004442668017479352150594629407462446447060665939316714101932117610620027423868622310559106297922788135637207291117775415003487000296177602771565139146450430050583790791038798435333295496479586832757629935737375812417976657821745052819243863304583452587498125611018641836444695247804130717381455379225809393767615160059611103661906227721937199329610857440392543552409942583974137054177866751971676868774822691866073952249600762452647911700598711389551585682776047565480307653726007440046131345375151916916328268697465054645887013904759904458454901719280582503276415057735330870182626523824969527436045187926892657483006203905623046895694064297364783894171447787445137179043865569231526972175232975159338143891766043193251356394927402625119632756691065605846774513414100471668589805815445519773603662401961584934101883721065226807084489808002503551100119787277646414749992873341325467725888157623033877242476281091897048725650658117069740356724405886649205733515601112581056553652748216573743187730325590135099847572029520671907557309754028122063592018685412464807878875732778798606656147749064268738661123326897608276333224780860593567220564391822856188785830165531761787176396291030644022742561324115297405698130725070017831426962928246190088032677002127137914948221051045725831907635574848798784379129995235459631425143609313185874476553610347818891600641114152135111593960089808225690211986323904020491834749395294381242807425705316422349951947773658546203897469361019876947534429477910736149368455752364380316433438900264692513536232841890135972768196111851767611873394236950531505026510097595814605261603676182250363207648295696718933922285697285575399528932130108812277698723311726508023335462515230815577682238057743752937161348510919829798011237307111405913608116533268329398714700169168579035767713536495547676704838672147572785042875199419356989405523766660177196861493962840524198160191555618464340004492462640984673279059697496266796372038490170991621993209030203238763473215481731245453791193407800994819866367173654343877965603587361081038483748081038114917197166279016136773145330160535047022817035353737009717876155706125835778495077043295777064973155449070724526056943865303013502783534764120765554165782012303426822459794817699624836962539210398218919208420390571028708826285416160956755350840193321137472030773510180887174354766378900823016371030106257612698623612546175486494145964413501268206495020540513094781757241947167950178734671389536849283771316700612355646441319030505769517727093418122300836543475884351190679356021881292523877689997284996997374947833189504209938436762537381205821458534061675851685717734466299296125748416814554480367891492779593485970206813282589032855865001295977918952661573666951352988561997861012435075059994226299877167754843164258137063116771334291759666052210645036402510237473098789688485079894244978991434740940329814615028683956585217277375517966484979592031284028972201475283579148817369692058538900413681002003759832761167178067339669113236462427231307886970752186752812404718260188106253305395420028302003552735322164875113721303059506131867672147649087925151711696345090684647984029761134088255355393407561652375392000441540728687162317308365790116646206578568022333826757739699189662953808134890531722424034923676116074401828666441181394752550517692572040720478867374152591062920326575176405772244772822899158822534499090091745190400769942370876375684926719470460943184820305626389504233205254404326345338407449070187441542716468298852033244891578360572462586519498121982636520577010047889083646495421374898500821462985200171842845672379148350492105855403401081112765336587621115969416982195027529397020555777056524876009740935387141347446463671742867094287884634572211776096853478532643771736766741154206660417047266511717997606950349731086470074533358270124001030158060071501410982591842489378391468767143335961670543208687800396750574255886253627415819474439379114590229035440586064808266814156149008776178940328142039888995327915568161973328787605845139659691388902394054082466869669330846142907721868339843701397588312105165642105087928211636767114650725101388960141277934095338431851962484941975924187711814785577118256471338532929578596483063202388175903415484346390034381160474528897085943625926226689569205855856700271558913673772938390164328524413650445030855433503685961923420558736570311535146744751186494052380898031275804003224589765664110427035976979866748923717339391760589920670528692189518620978576143280221434185348312427813996374086905837658004125333723407096684987692730202567866440632405859266538422976317881132216039811552156574727441673552046681891144777171274020903641058494406635007085308233743662917701493728874186863895907464544843543858126206438246837524875339546145693880356722464893224163451730408584893588328292239611574473706430718479562125963680381551350378312346704738118606546556807967658784454652674533185122242083082010289941756918469200682593635894294982555239831690759203398725634855041338612616719737092026925595154124654914037336321940590049528436799040191369830099377009452320423253522690685162017223458173462058669262588947666363121657968936034428997289978401823558656655874293213902873358019490908539214126190613434771994418970774828275681066160644733707764959760766772160957397611121805171355112387882176504385213721354618719733381031472094923857424862933777668780538017078608265675216225638089902446021154304974339304228367759213864098035882203545938372434558644211101735205040361376481890869765852525513793402736124450182254770788470553101085571283764646854246759604559989857253164218968412788712109095884688283493478948365423748514524503746869544586860307804254458025793344508234962565194315169294632099570899096066938239959679661356543161325259713599877527125097457696295195014357199339233827849596539438801115396272115179257158166343721665661725732963817261800263982082026501629956733392041226617408302769180967779128473763014608930299825938880215073905463179515202130733787518264283460747554568723701989203645215424492966615707248642708823068685361578928117067029133427819908850576612696573817231999708171596637749930361789950554926043999227665831417724737270609006802555234582198025430005693994684209146586622743392636871453370147594093987188547342110942840337347118168217599901631938069748873903690727619465163042394462974785193545828337465404030359478875014889650478856018825604355617928301351038722768488759948062031788193839973900205717385407055188413121105722757268704604039815326438326168867838796385410215876760745048345276610164210986287013050208924013059160410195927266713883689707747278124221203831572171329648514445762578397444117772656783044723584378163723100190441026293782740934633020432339929559800888328683154128557691501554963297128305208628707996376259485151705746152129593186820916528351775006014082940676473677034548864921654912082943855321208168571626889046941070343492033909188088171217836207088081417568700285126762650177221706996736659559770098192667672759160396044203898043213742761906862064805815355149372069951655125759807707125949645914016084986175301361737397990108966319907661049044806171929665900998395690016596770181934621969374560981334684700501902726502464647006748998309439890818420794771121006270002115151650084264719254113977168580387802356257206950477425401033956623521252438917070867663691681041242916235112654895061320050250230683427601592301651774012078954341594564155674803778774398868299230606010175554843723019714352354527539606304892307058836654312122620338094248140902550560400542772612847973331041117417137791523244867641646961075894936297648273092670761656887006375696501160683051720398235399748041518496591687645370588942862268467244925655422637694635389223000466719899127243095267776441397125795639751630193894976714882331926293224416016471354425785800023580884828420823811731599729442298720217210068337965985046371013765645949367293285680479866800507302772253953296521395727502540353133860948182146755965679759344833063302423442981321458012688802497340582992407254527770826962956672853960627519390157887010027287684072576465227644245849469555561589336286221336086932274452731719570849610133553529649031013095932192870187450932808529902207029524274940618122366232264455987995719783985052444357896980432588160441624922971246859924210482994908688999350972692967283532577841376082009747843373719385104310856836340767212274950113237988606466037024696314149764622440705150040016556687812606177579885658237167634006027429815598235985399066002051066632173386143091309767219845871919511379197355322520191909689872618932593436747415911593384610039590434430379938009572451858579575298145960167927296522227324440016286980944483806417038545277511295785880945030292007250237322445862774166310926788533522470442552772919666575076842657217620552957459787036740358864840005752069669933042260706654419764022284253638207028740333988313470589069793933597331226429005205591202547064046905376646228569705678856533512802363521505405792403838611120580367010685749074914508280082305551423643462073028865808981679289256934173856647728928424649768849595280450650757815180821503936276658394293372950677779927391206668451406933857408748017203528523115168612789288394254093887465834800728125556870756924760835975594071664273042128736378332263032748061898853619751613442593489176389311092225734070077221037940782848012181052401210440984063406917308139181589897448468567419255001128485852110453409275813704789568430645068429633371834616018344457963519524930435857512134276031944217837964143367542144566973158506207548824085918621104790017873165679394071482272838597545223608667572046144093370232430209203883379599426285183969243968554614336445720127835126637994225069742674371294152048599390302382457483903403269655208976496327167514055547445045040671508493331347183807310055514207224871332507853939986759852956744255024527672442034499640146360815342230460321594005210139252206757356755178303904987736335791885501757916372835182065104918154211988006290373173705922421469495270448440428635937121838859484851632779422421506560190219039325149171641166071699426474858965272021311203377389181047767915575177939668258356014596903621070770875230933528201850619004679720713263793496759544701104158098754198995678885656511357468631212410327173020174802584553107678167775066951752600337707049124054919500842618147616541544215429510239502940306984143871852629687482976779158653481966461058498594842013844942182989151942138336180396355896024882968545723210790718246044585826100355619624450096792642174501267978474166870030208544325902748876368781630486488216243468404286361703862685757866447626397921272313783372590697867180252960367525477662014228729259144820980838703076490474641366970403554965217066287774673212257605344660249730695348281630446610192311262589932971592684555590387207931709191177921914034009454741478430661314263712228712236959214463251172452132940045014983756980807588671281045762065863015788511502112759145611618951286842992272789861835267206653284894263890478620515770580217368465329793142255938494615355568449282274279519431844869178444444190924712343147596809369834118149042059473084798395610405526158931558314926505771491085557531406825859192680117135055034991043130495597368752636009927072568287071204570767684652980916927255419098656712516971145679785609280280206430793466624950243383682463998145350753246080301023304947041128472689687912618836308760553390893413799749405271588666112350129231164900328686828091742825521141320424216231904645170049509108394203568416459768445566719727462973992333031409404598996289731942372702170483940858630213289092958330095631240841571349628125252689221052788915697838230493295963198282485145249996558244020434422435418359820921789982070511535867635688494338471966267926171864939435826177178028649536551002942752754548816850734571780195312067894423216406993162299099348253085619743317091291391039510418192976418007677670533816194389605155217183885115054870500175425900180383360543993999616607798354222202090365351059402100893732971001153023398721362355126618242356023489785971885723453594406933863537986498412553836896683255929775355728691396379035920557904055703021378320478476167459003984764340490661084637524013806466193633162480604623303067305252994718988584816718602312788954886241140978714339418950287381853911172796288383799512174688049272959357915171686650626961802981243394388216892199716059674635961979423649907242008657693772267765085916129660255857816596186220765466190816088530567536688030693326408057786724431686047487139946676741167673835805017698691249260953641823497986270649074667810905128303058547458566443250094797900449849422804475394683281752458957615536161291099319842494561313437088849810359199935360497350210446413127414552434754271076567376923126145761265049537983429343737412896030385424178103940536507088396851705895505287268770405737705303955144814016516911347575177848292472511094546408814935156914689107605049106608826527376295797066329811910707829113206936667932444311054062287981804592010454287964232817734752886661614436575152087088605745861442884347281712677310988146433818478629686412352016576538198756903177227588718921964776394081446179641558370516487714939544536531553322973753782452972598388688121776003962588323328045168817797111145032821566415642104769025784939340899043532879127324755654911903018848472644307899749189410335466159030255903644880621332218299187090151005651031870899411199734010998876454970486761072961288215969232505724880394058135687638881246296748542371509651676437471117736033112885978311281815636668583297783983420479321238869794531446626998299335153578113028780391916586403755624085595787543704135596035024531714206138706312593331445709707936123849130850926701971645869805270013144162038512422747163082983507183364327147895133262950214116601705095749484904276904104625572921831461546114426652500215294613996421020758245609797823789373489264739852530629180711236042316284885502407208608426990904660918247290886558670120895589568383931459504677726895265540797510459831818641159329180300722080412996734239315082294753858075936038437334055090984611101242427232057386722237266111356700241576067903627610570392153664958687585463828535332560420008989076401421545968792908655873725217223762296073641633358827638984294200264084081764233076441490560976579447435938019473415409217290252864440443874927574309078103650029374913415732334306681821993693836708834216058671741101317770758165021767378655124753557559639285210717263856972231807270156767806710905089419783205582762176865747456365893449902727428734940404781495367134532661457519628804269091056867524141037973110915563544417319201232214678104147496940042039021001772147856646099224080799716036124476509580701723116391465701744442666650793383279426464469217605955986233586195950907233117757672587786895443020928595202123848321127026897397631715843833731349900640016854679645355200249938551552005152311837835063796500453091895404107774860182748969540337927856309711552795703827257025447675962060318104256296132522088067297578417104976691797608792085536228540920410085816596261215454566323873979395937593942998773534969984840403370139008156848498277547164436309725163534861594255784940075291632800511340510296701000135374270522872702557123847779179309252694373078094311228869752732593359500724549633811059526563334041243018214716704257930154878542934056207763658179129880651261214490360636376068847065741452633250340829093968193110112613442280471329751521471733390615686556815122009777836735603555434066138057813115066294561052900810831825443681707579826886490659208927177264594756938086827229061033693927854114197327766638591993897828965517861917356779487004724808535217907114147750448191531387534380423017393610667829151653830746216480553919274069358499762475657460749790743138325132541420871739436983105346015769656458535817801476594429773570175514118527285968314600877126725549034580815717301325640619006658486478537925398598357739394364982273374211204054183609917894129844834978913494172235493816954586655280582246574040252552859053308965089083482919290745755160851203276072159960232993523260584812006377098433190598737072877400827567756765532341638689388065226811511687173143744392900727803488394701304493667191435163543070386246758312538633094882722641703200786409644252518687858325579353164936944018621058128569864626128556904045874318228834788482494982553973532440248816917592090767647440812796128790859018056357393903710386902255977588626632657309826360048588872622624185400868633227661877831268016628819132506075838820137370664388028969348523199760914832549879675340899764502069944997676104137373319151913689381340730150916882576754110966017231941280775421494398712893450156923572473818127590610792102495818775571973149012691554975226378347006197243131211595796254762751302579177367099433949597474009076450214770943683271746937305699471187505581016739327969543060216817614216853588565747486753837223019859063802398285767215069204655121816981103712120355333804842337087922365751567147011982892564245854759239518997764772858324785439888532058061639691619911026112792086671562727159554338860521228376001170449772835038720331009286946520211676611243196349108765905654802798306493530878404294260260397135157601764288687348452486193452378266873923656042956020170883095854627735746430250583384818912182033654456856070173319490413774165205793948108642883324573757778970801525747703182765676028359335070172634688875022926305448073302059699775484783734403696242728502131405167823307486636144042262485142463253567438541682226334310451350287071662592118427019439483648738815602705607314919152803983538639330316389585970622035464577560242351975333627424578121436396463840479213152064791230072227920166332117362843211450455203222315219104659832596962606557359610878445949605928244674039542321993254789773106105030553160845316326066461269622667011347467034586102797474589165382202401107967161103036745945643797779728812272348856272371722011784816761487056158999664615595927697614292866475412786887749807903919528287575363132404067962305391881743741727891395558397976776452804427441949727853973553433265554435393334000904107448320987152798881806208716849478738770766334516080369590638113520199395509626307538967263754132167915313633018888379706787190724823197766451763437032109059381432949062845168972395212695491653092359273201458719975426311347146392594041959464617844407305523021665633767492707318684201172120471563084697700624598542917173754340960088729507145661299794672731204485815018148201391975942334524898036452715128097892363191383316073803587661159195199316590114486763667004644960905365398205785112744886482853992330005436770692235720088395265919630880513489191421095720950825540656827925194515729909327254908367444822286726687663011744610696472726862038775670529087843602386419775475650128923759109036330386980266890372677571773474740120244067519022801061729263536390177393759831136855848744207269712183957500530881450997203348148649682047798257070333724406255200674644996831567021539891674570698806755194064803601954430572429168449243272179738610020110641304436020755998075949560079332639071602332818103764709745431308622315065959026364974647576418877676796388307244760549350227094323082356318723328842079708359487353191464798118095525779673276365387281594525382927144989943841309634303679079894725178448353706148678031806113839294767956495500310580908850186382810784518855368843908617758228548096919994487977111640214215083852142046283373685648584450329205693435376692007298212749381814540001287291261606769965443700751991500723066454828472220564728279247514037209270805720993039279675810720665430017538466630147980602077896797253880016100858587290717025582119178163154707096977492954693254757985253840686813673021020104860007809922345394146793063314938106570867060931951225382335561587042832211301600399018581578738575028213422087635307623376120152488579419598676456531045212119120945169531689676006215378601501925982002179413008317857349736190413210151844119778439821580478831291122190066451663393988320111603647859588887479235881261705857450585227729648769481770436713521124880953111517151439205204787227065332213944972716219794723800801534712657437587123873931139878241245800589377112833178574724779932346773497805982374673370795187205282817983996190773313644770825925305666652434823284939377797334844562471202333942085909302774630605764273988709858674059019744169822071178343630058434445670082416631054709570193291772799722885321394274410376824196803196120473503064102515924090392648153140906225532640089792219193486125439002469680381628520125156391306763047659863913884245249480674885929214106358669930114341893872262557230561102118930820150873916254620741337206893050620748174916132573801129347164531699423469483033063632321840857001779431773792682171771305077205049640661831023985168378091496774519102336467321362109515967207494919988455612153330384732719066425792623412603142452773374881453779592281683610059936746127621365806261637654020118319164542305051650366620941388379748381840013348478505201466521434344536386285042810764246310072954386752805226808657024741139945540692662036307667872928498672949294478811861351417396590302078660220475260668137716260320739530707589484563211245381337107833035024743858337673997181480535019624481064819193766367037102797171476870679458989864625941915220416883886344812409625526602855430875389629099587621671176143460709318751861506104817140519736706116306543303760365001809905623883711359924024389792579698632072919932452667606814793762478601684850955024400835682163883952307226491927187993937957425018841085508628756035503633747599472113429050992103098337883040664799539023394854953945193231257761458893577282566140084090109495692265112543190438942581074724959585569463832791316423882511546763459466558241756653874969199193964848644478729698565453166357070166038949365732646054950559335226311937609294489219479739046916512260875171979339295892101337060112239954271674771027757918593435028078924714087799456609455975035111381902366899697042612264245488578596707307755066462209523291052425878192622487409031148533415086362168054726912616767518004589376306410783895444614253078287177371509106886732876169473958332659210139696060079367710697155867331495328384229588736098937534372182147777857773443074319000105189690829616800157997001596405109283336701793198555526487582282732991988221439792782472660336121282316245238954160398783253498788680009774472661140647620836832062341233432031481469997048356019019896463260757206140437168670739555791309146243616619808414947673175958939893303301029913249118722008469323999171732804884107115191638987205845731704579540604604103784016823308234288637536038323722567731280813919568187396074483874690859060000795244817108661129338712049532693550158085898164026457248745279864863021005520003837326605856401969219572603230046588111371169284444109367200012060178367238706160408583477836823556795505628942495820841725416844325618809372473388488854585440509785588914971864070824770589984222340392923874136159733025224777134803924268776234300544209340690275766766284705438190384806089253432562669066966709446045672138701118686369184208371036041123637443560996727973402420999964116933022482192194459163862443916798168213741571727356999879679866680921656602423757061273281068179788914512944623983373233355107144370061776252912390176375714155470909067415047672323878668431154586948310029133076330639308674387022225853354383495301495252246518359331559301651013426891355126744430771342562775024424959107730038537498261769076704751745883280862576206666044191226472285811579661157355716506692660809603094705121741931705432205063207570995337407031307151185724876245256544579583069089738244930944244381412467343220137117353325750432951083484871500491019676534048402545155809653824871146296372545666469045706328414413417163034025599291896514227542786277146849071488205103672283419490600033306742197681549231035810044240679269445015855075902169043015088787944249010986460250184396869548212785817986808914243985695087818059971223426570797706307251238073007535929218848954609277165905152968667290019282453493865132923705986835632207079813509325041401264284101836359361603467678086957422337165262247048388816262182164221231012394323683372818881123507185203830074079561147225152262554598631011670220386531576316812025256700164204438197756273719053263181418757057853469600748737687450722583598896793333267135974123328242386851181042544573531304450920415055573299752475107737530336821581455292682439996489980260854763333083166603091081144287168533144350445769362200171225535852788508883526279014642662068320760405305879602495834001816416682278062142938231014330333071375985681905473396428691148818640055426674899713146521326124545340368199479505714492423297014028773854751578937341449926629349605570591685776826088165864042147277655092720163026548394887123882562571958428938988827121265846107281994844298720432377718776206080855528537335905679412478434226325370724400581728404992636164031874289916336751263679595165444888599498002728076572295593575440276820153063120813629871169574749135423801350564946345320360081272280740365520185512245698352595883342171060231431929227413027434582236877345747936434380807603080679161454584157676209727464468114312098364450803490093196727149435125666566059472785667614054305765662431003887881680996579496431119833300033343635979951238306389289833893519785402514422854010827437626140820959762520191401622794963036087828301119049308995439664885416304347225089336173085828059185534004745816845480436609677847711031457013539062768120689225125327344053989705585843076208604243604539334376445361410044306340733964337395252033870588880504633097207236945028533863553435069678411552020381196654587163555015355048033119177431801836818396032184585640425112209826171535120731644754369935488058327255609384280103090266425134692959862589194006343440791937269004449204043549271203977194444212701166127326243832332280840236503531614141046275145365012821166802423073069751737193951077129381911073721291747039964570327122840480348026398319635391350256527009263768866397054658674541013168636305383442566110126141413961302479402082274797219118436644264123602636611104450185735875884584855449818547976820929021654915377036161871781394520764695862853168739177640480108271994210598353973665531704279742563753564484367841668425087611679634463394818407021536715257686633299560030278213288154220702255574226682839056591223543602969729916511256037194038766688795655714613357575910480470030808038375543060935590621699841321064227199613667857681598504622580414798457280421892550752132020623349490939153584483320331888246785412584141578209004032584533239085110434255211708560726662208847113344985143630539478790748013684786304198587596321329106260582370368169092625068392678499334828275157773841147796214940547388298119217548747348191735629779742904874320140088600938024034918517947121634872653917440264769086553743714971256274251511867510444423546132183493484032347134008573066996572197987541570201019372470966935919121333799349315045312019853907283680114777226112036315374163238840909611929790146382807989181116238226740532954824769706567799355812516940900260472335575680817145807384736414500132999104871220335538511622722974295119080017061723201190218867574491316278869356271077606016854161952040701580479662058446120946691202805731826764697033966339167028252537275715999104807479854036017048483580597307902074903054419089199558690321662927997938685141755113227836778096258240457769064700591541997516231023515230843341984467938081859537973727451244479377797598243593041364290596807439755811235017998409422032830849104174825986709123884592500109203487611151118838366793516145581963660490706833378149178127582881295082119214408683335163845344131743513764992427808005524774570570104666673804295004526413537696958673176548786669164412585433955498726792590355797135377842334327874210763377568127749493015191193277877489930521210118950294837992407983482931405098989134298365974334510896495424540019791742286690589511135665606371388287052663380797594477629003835359888589015145576938747853635426927952597869292562828574356151355626171878300162489906929658044643540615220499139741685247605776686128381461224116042489369437565801264553603696075906087873898022086581442955248835902827996483924999269268270427342726720005602236651378188347721686454852031183801717101157372372214450278068838882370541873189070508192074854533682167940758824136034428097297706960330550288243626414067291929463471812957013996838968776431286027336605900904567236728984227643324762944939507210071174690276420360138029740495672026766667692666067176396587714865413805781359304686622469179063121880833075345541332885652232300698711038253573756394474335328358556845873470402709562066641525918446021121094099575547221168654536247516178013327215224027643774330418590874184939592831735092305313273265483534965068097807375873626079822140924552355363390109094667881715642901277767972986082394137563214213796676165547522080547084565006939479110998986403130645068880876768108650672770657101712886047333615825325434369417790320891411585115034739703624101552491061910423816745582014173886296180104600808490261603693532463466694334895432712173703927959970554800758286106100221812407521230963172323558526268499144901007618023357361592632969371778827747235181446015428135046265419058000886280952738541419780929679472033993705047191961713637569635337320709805244168802492629150609138634085047038610073702741220057575638069190160798100813220584023362343008761227992193397707193596136807140831913749182458490750343953632667509924534251884854806319477365097210277940672544085639525198382384723795645988513677640766162592053594238979138445629034297456531956794239348415932510814625321675502660242457823375273349087386211294751282815634148172733796143602418646990569939403385475269062874977249601061461166509449531177220424377478567357056087355233601794298576477069742883176079410369198593581912004564626970130791367149538635771512353397796996443684952556162578165502543187277676469132627510097802781827881192658837216833970872872968935519407654869667180811123839843008534559476008920646912711706503661673152793078578587338252257182811163985885617947414874946108544896804921907762938904201536633949805684043873078121852102756325443457474890972856052062338800449359639678100353632820902339377672242092531020314135068781766543467250493654217847425959757133846340393382372237710832406168221408021381510023407599770768278552728222920010256650696214566221327938713398689609701742653036449909949635567816910057274201617346269693896171405034797688064456784393453836259904023649967658548858099726245494335611390607588519146932548831135572778127676292800805537524121544125623119159826558134670754412423383369920018349481145449045139724746210086333714468104444272468483317099802588190638574350678376405277411016156628137092317351425175740876483296900458613058165279984759025595805939050523736546779040617861551701330173079786246051561944999456768218502229655565934869921531538144422693347683842605218720164224871509893521184915184464288200290655247837243950830446302884544494020350141455580847432197693576738624406843834971384982077400754656223233853041342129789365879096236666147373348903800735243093226158765439712980935330472505472799186858780297380306166936433990787078556851051643573534843091805776862354306813522941174347993922070662903914405014446814832927905799037154813084804359028938472554923537240236745596578556631667300672959627600639572831560844489663933638425983804981368971282468666442664295852594547862086054715580454579776347879364207916981223184352846303963037463081369516621500021854444072609605808332324733696349690578511927587644319606326209543165712299660106544752227783298558232391330729755243145347452362018155510458458633898776256340965173037302875022751058198997230696218595370709214866757629499857265688033403266773640375313604864377906894252564609841780380930350760878812609977298448320366990204308171334244509365814885286847463942976824736818010660928825720133274245059623409232803623085625485913674358025955697638006091873845696423634268103775940759568100442226999027367096339495673650366539533541529341673590953639679260863610622922715394089120081685213774510515547345093505758949187789208910594553774537247215424392293263313250492175939337984675304613477903667600318620419007889072893898791790577245989840923237377734105085786159080168301259617028416973816530022980690937755211786386061358145503216243030629814314681995715190238323480641969266123886944862907575805668663459670349327386824030631938706047803887649380168914066939590968027723121853606930848871947786300548713597177259297005698318840975456467709576690807688376730750449086321424529396327059832262543412300463637374316640781888832865900998446428916304939032232375627038058047492527450498080924217175714574600516066437271172636528894976933968165952047879392150799881787336163003884191349319082069035561202074286777090560478016755133385184559582895942892231890497601326709899090534932995520458607807228345690926595150706408975984391204381329340786918982457356219428205636140514104038217451163631040945870561278550351570353605689873605826860924168571920120297489578347864662045689047047549632690799076664388641039680497537242801395673364570669998155838908747338813339751166933756677415638180230395830361600835509323003542275543365527691285824753105803818275619400520540734960525723495466766526101534023073910533597956107043716311506566676698558310395930565133514811791478085014828380336754815322677455278655934878254988173205959250107504809417097507160182010645781539017734147146407305400763836188323349718203133558779939107988163788979115315562938505164270312796505104606928927996850438551954382000301503612165908359466202563324209224146561869867569109231772743492908213087289477871679661354760591281625909502638778421416559958116327369407154109867016981375603629463485442647231344891206178238108568152031154993495161308558895925304924913244196969526628965699823843216247379351876111722939883512353743513610323089471603583737890022513064825085190139520740382063865848386433241106986381797798407318813119428398421665778511900215385907867969732243262656586526371984982168832358490498213836980316780760822162477701353678827883698678730802866916936811843690163647515006802855409146499118767189866477951074332493014795874607070048326647893756045166894309406011777728313644729797090393486539560667744116523362733691834077377266120890650454635596897416617166952863247287840315446231964090880093842501242468045814651822371743124404556269587099905995747963509274823268730666334439573934600208185333674034987341982605405498141266061977440397885232733397533624962231475038077904760718918598232958912474963104935987179600444063297355212502782733744916419659826488984659909236624619423414562529577316638105858849231328047054848176408701951994820759007052520511922950724748700527572169786726085867957839604331452141609171896669736748221836102634333239562795456637030348295089126826602839266578219407104248035115576707354763139384715042593529514470456782780532855362045763183375866823916629840077468208818674298979268485475840907955663943928436115466532010261537467952285404460833433854560439065992298667046012664151108532650972767479390240479855573074927127699793815194571967255403996575369364981065384166752966956085807916286422033815427286230652643903709234057889078632317423061844407331708783807076548010206131576700764295616689235238042874962551703555597815190397051953538519810062614610175935755892089046961358737731434270606170442558064556829698765201017209893940513717353070331499428876580333612247207946103247692552066944193800834836753322413774344605368068327580959721612956243885338103263101728413483512598875355569052962822129806668531342922600922735900938705176866578674742561587884420553493677055527729356489505125071397555152229692349614960465604717711781411982985338832456826751732738455375132990788507119334059598089553905018572916076258180495338640192241295204846579472787965604605129344127819974420175582850701433945883945784183225211934500147237313554381653062953686924163128002709356629158981962498378838640214323714820737980676313568309022659157479350774876266093426379285106470080136030985852039018772488905248928272809716819917400806268310783266010399303742868941239674779954478626627296638481601371310062493063252478105728896835341705484545426901760563323780943956656491048661935003547139562798441555431644599761221469907464659152635397249696776809510351869395694308570546455169262973931808851207800149617994226430301295259120097686528015277493316313057367660247137663202310889382551500535247369888294733843301918994805851490417172716628826743530300171270793932818456745074749548411658457528468897629996847275549202341229885126689792214239958953472894806772614843635094433497046286039011718405901243974667244899287238114137612808621135830577022578118250447461654414091871901402814980996506059603143723092587880241532761341407778969415796891032055928113780206535245369267936918104429960997439272649739655378638161577794847540425814509409630888954307989031494065908941973745232918524711998989563316324008579029983018564865781119081719795171854287727776404390143672825663233517114401996033206311121905113845384762302829909250937289460505148018441613983203943839777848161163984471297973750242955730667409937761995898288573848285185452578620548443019212428200930733755945873425756631551785955945331687869364695568641982116451133544213486758513197260055068485127568759505613929365637664791117136818178780674033816551409100581804707722455615552711754978134299854415615088644778573171432874020710216596285533700975964960467092860087196088635769339971637685608868307187828524633608287429551957212525904258825933962932797426659342030866344017670786450821471781677796422327810417937046930944178825453362695934173286268276905595958592326509329689737503629584471700200345868508321960891001039319742288042420511604406787952922013959888980524001008160211447735903960920844548695862464128746357857327858566869258452716299418522260641179303222052731425237920878244523277731918422759278286522801738048100608827331256864990165504515188063671667268658456344040196086103574332435386895156977187224530225368694376373998042636102048331672295302001323411098591071349824044387805585453704312813049420220789230520356372295478235855253557873527252123101616066837874269035340404167362717299091967273003101827318331704616438594864563374959062893557184928632154353409364217877750451764530414779914916882840816133682656414218563724794427361105898666201873212193963372552011616715726678562459118510361701200064436215524913313413133716265210345943226822690237748447532936753689318809504919518987823672811076338397411009163260931722666774046946823927659425607912270203424230950332744080780032168876848841552514747155586981532068480266162587358727786003225975821741212651067718553391460514849109712431510726789371980642360411164049779334283412272147423010559483828210917116089427593775022571923786075469458001217860481430997976755508518422726761992537023877077956038937104058229147173417639024317570410052314049757352290933408546022966152647495979409671529149861450443456824132539335965343403364424510984337228888521043111761504361272598715368012506525096206178440566433393580341577212766013697309431337043103383264170692236111446832839968224011768104145159286990707207602901662063277238585129121110326293890120893090418964813875537909206663534670490238217454583236488277416977171127194682458731366342313899616195443270704251634302877112397171319143657500470764414157495426888111978056186271671161032626234300406411110657443614766565548177994399410340844553696010351397643891773082670948670431778619124352771142866951960839704426251104929497158330689754037044528239449612056160404370784101283790634290956102771971551721435375838929722866313836781319680532732897012115377915339181344867151764821270539395088380771914340243075104773133608501599929927331583127065710118169948652689988608016915303602122173903580195581573802363527606939917319752976345388662440785877225687803563717439509028509335403128940763404488807721630645971598178213864649739614617413894929384360143180544869710982682340728064128033787878167732700710324041089455115204681595311592033415055549271149168930227818901518198072910216868125412215257296655606691184155831733773837953931710290181732142175376492574917085523133084875113033489101224881804206672593913976205341052832599878123866690780760877977666960793014320938734134322940265297452356033607030731361880152701193596069831134239626501680259107953181532232141341150213033121204838248818544487234096655006782269559284689047622898471715264185552502105123581386932208832015321018385092824901031409614362151933672142110137096749007380509486698898006229663759547134666905960693128715533879253427415702332836995980917043230849190347271846335603444013468435048398038188164093895354331408370000061237830037733127510823624983300656290367647237507617694760788490587357843470943540353985442350902101332802352616862245683163878668876129878911799308875438487845390183233222193573221015423176309740634611342819854927761840654157146432481847359879430886026290868427780582848850572288174387999889298926314680551329853450588139189233087906385076004435595875166867391217414305406212842657539709307975058282427704023275524987831845931746053347462748083053363548332861056297381853071698660481524154237352796543810856230109433990813878964795109571221422576328199641512605919671352855760582387652781669284269348587755418378913695394235075424244010954142733008682516111374246468356366290122788814191312408354836940372479402130474056137595745202238313920927265607639834453977013811888679039104622694055135987296991399766433039563243558920382992752023456715225394416278270837108928851086863934289850822886787148179886387320635409789024885655891660769930391661477264353593552457728402389321614035187117727243630442790809075570141997415773615561269207677493339801873236864769728110601351347374419978273764590307149825325335518492842288715052148911712815897636608450615390456446900254948617591402355271913146593945570859124658573960804655033426429796684977163621216366286914823924256858232741759709535202187393924111762543114652558200830289820964065568643585655044065559639541034533833991124910095758000408353126286616185484442506458828185886497136152948626806440203236008655032543292548518312617659949491116028756702173383377644049298605895356986533494866641036616375256641176658945921992767903871361283846517772724662676678484139070602789944942904094107280289417723008170274351413766372858441463222581855442736182939469894017290432693000464830859385176580721495644044882289430725441290584880151842138325855902775633668047639142477602021628991739427928693101473007581473412546221762469883853916353288699896885422920595470009934770535683216958698376131629500583307724001343164516343188984767382879897480984571164122249225728095194068899311798258905727802849374877243383763960726378972080253595324344430172231983383876132288549015881884646843553911133935388639337163532455578627488564413586229943212481955935961093592592066879757863395549361621887310957626074805041731436624324015680086927816263299451903668351716838821972245770306186936312272698438466119905788206991160921168881957181259697405593938622775309113335035550363717619799088337952353331502440839316929654838791103778612575867842788251242117800028729860051828764428369719079953770534638688183711698540713196458834592922107677300250404380796442540966436570325797163648499069738226963877419901883864859586292529886918863481823930077786924284106845537240794571961800653054594184425830475194101923940545768376837863044494453928766624625518330866826041903601134256995925453885723814350139178959429807314118964070506299984390523125673333186874039710599458541865385089977041009465197225942982489797222778736248481395221949053643867274546146356007632959610274187845326331669711768286062881036966570153112790736803092780626273700621318228452993293973267922474616513907703601923724623714949456905865539444180520197735376736602735382947022419887929919107332059274954947623695163907690018175107704963673047540675396674596136164734841367481374811763733502694859454549719515470872363509482519995680164415438335405958596270478535474763061392304732593115720328040402156455408226815903243178360644682500479845451728219385926206984443448983173640517443307132176284801663414386010318563810501042168120910841366272818738613802919519133219411218107027959958615438999894407207646687002065065386065471241883452346914850198169497359377576287923279744355552554415093314457103119472541047739715508407774660650424244867347923343075307390166834288417007882564264298191784652180618949225240083025293260368286764745975522977793138394257604842021642798186124248558228989570269535430427183721227548321770231108052382734576954716711131198189191111834599206834889954464186672910406712598225625474931916230831885187888094382649806080765514451970491434468925655281512658944084336747767852047388316932761862315005717591000219390907601832421959098919070560267720680734112929083207172234215671000667557608339370387338493258940431643867881884362176974001741143950359266373108262752576126063200006525011230022206025129814174604637441102510024756490591469267908131164460164547087232634570792262350719050494857220477188545410092957646682269102904206841122502451947029886892395887169714196292663929260451553548042196867995717369993788579950296953761174916656369134342657110767524787082136218493772455426024927866817237192801071279228805409554470271770412061400751967713555140366754818694407583731979613351804498636045601826882306569430277908706608062056949376944590183040523112684752210009774192634935260213863024871176341500234889284861626457878705367268827177318989540867227259582489197377276380774238975494579928969015784744456945946770820050095797412985269379927478943306362763141960050804053911137055914348316855961081629673828651411974507167835594427116083492489908488531937458930817650317001938925445024033698706016021179102443978488002321754225013188362334681697112665103049337777550552623337470994972594203229906014811729668541882088462912908614381851264935344267046052744774841651326569003732537169856939272521452401407134281236959323364300409153657148362556578861992611304149326289672799419574192733578427295704495955702006992876041577931510666628102593035003694427175613459121322039355117948277177456741955562212470278939593270109783009730034557219899861969441878818880856657503684201105308099464205652587074616989326512383262317068437921940396540447275134842261332357609349884631508107693115177972953791828620960135713331836059278294268048684453974664533363007892412824795619682785922220239701041911106368726232292285955835796813526963148611038566463988729969909407157097352235669668237072169779596484204303364934940418636373435768624206044465435967754076831896090610140883857992149080838521126968131451352010229342022543073615807255473014942087429519819086381409659832746956034926530557898888388564290722353493306049375325564192510208588709172902814995975233242918834080889991434636515825185802046823055878659060248010262898337788641067762818042780907744015976396371159104396813568787676823381301227343742290504978205590776864658088723064881114606706473552518024932671547226363553649604683109589422519354802268848015921821292512782508081632469784364718039806240405788817925804209845348370594280581328632450695998445714427711817358039878611854414522120261560070650905932544467469914467146544276811808831186577485292489934869145401055098244887536394063387745147028525720555096247488159080141001789660741266966489970579930035134278803048820878606743729426163656974169003032256414840908636885930723164559449839427614499331331504610177826558004458397670334497720962470655484593529430774098049972764368589459658451492143895398437277793402647567305803223854983403730953056435906607894015842803674568094113406745450431936930087754328951779762640904035245971962549049247710580288306435062250423605043522780774753931051243340826493030068168469856413008573683030004710935799533798044068979160079866854031052471483031393235173149602318677278428247495578439259024696655637316352233951362593643193331167694914703908785624712495424295091012205808671727783328813710728665365223554946049292513882304671043918748088936385191600786289791801939070130199790124826246456507886973142572158611958275347916050557272662132600401769843587108671807689425225893683978708783154993516695644103347090497714767226439191090280525688654598367000588325805312173481912078971801180420648845637016408962799108801409550114172420236760804650338400864829166164464436035136776436213038374061954293031156034717057461973591733245779928923671209313480934603580306546587725172880966783506230910988980025461323861391529357078700458919114216446482786060051011762071107331608953024462508096872725553273117084502786636659693597950332164494610217100858255176285342512314358652096121489023164593078923470081453958264002132616900111847759429344515916134028925774925393441847792929517330240385435069345693585228145485427720257215518875047923565062299949356053849851954856374097012868952856501180320952225936413684290371981358121893013834430547875429002919116845392735052701543293839672679692508881938753841083664048771454863487860669830444012555973805970737050307012219626680025557788861198432676072369222278088189230661390554579531379338413475773881420260081890898437720206967303058004294765098904670056929389910559276201968837164906858413920153139240925356838352652886305801994649281708408147190325164183236898055797926718035508922937064852057217357661004916244182933845424344476349967106871910160341636270746802356173757569113068506289337110799749042649976787339658737995479891283896503386376549325213838753277232119596863311573257579066850891690989411783877255708672097060895119140166549910026112877715700463593454980161613673158693896357295476111874538991107689017941928944047673329439205264537199553514484775501663894832565472487426629419236115908106130560150164504619518966737402735448997735135045006817384787436623386631026175628689200926736790489080261569539542786288308229971099031388936789130650506657655939005292979970584396707498921254744982527736002883055627597281087147251731321824604549220618445437823768610233446243770795976145676843673032974351872643161164137548126040758434193576028289704010165065759977605022337499516446763046185300370198434370843876653229652541984786533806201583616399950156453672623277036483565219942104767163164542010785741938079780345630076045562256258410536487754414034775114438925071269574769254408551598089976468285863320342432613687280292269476401719553456673137542734416935630658104304503103999885745236317211091840736463451843738230712906327687354536394750117091399590138153529332165610349725316599527620444043221503248216600135058406497191866270632980779952970266815109961684551920224332046346400342029071541138311985625998149778018812201262890722145767406939182726525112612207531743534859828142163126972703522616508393853646816559169685580234678272659068403772617560776252630319820309647047023206929999994124978587125834900771417981282829743084281330277660781194211179728315854278165025727073742115203988466036410294646977101350265710053188747262160193818706463688046050080254424448164140892763043081571598174954180044469724285647016889840889098605262059131069985589151958778715344990592210383427167419133482934727728783510042814197398144033707162784894869144627519574823345819523470371790261814149947185492956150136606229787093447712814129132496770836048312013131082554102931209443653206617412619897395294024067338593995094251757387949744083191114620530493860155480895633194088167480435657965515556942753189919680790530865627540972831941135808957744083729949836254485739298738879588054639511181660677208148306814678395435414926891110478512418646694544615128166250540417625614251920127074008039732302171520587181905266986776349052480402355811428808581847338238694734140002386461590912334637783191197483692296493393488882612104003786725909731521468698094006780248136243308051073093759991857637259809343357336895864598050491625310801100383335112517711709448403501376152596869787576042542671584605019384035800064596889463029147934325181724318940037072556282460102501574086628898544389820398813727249409163772924813836657345378585172197911807362714568870248688134605739695847507436574813783387391494234283156299902637824075316836712675566473889270439205275323768846472758345416685225226822369412523277395929772836869488968635727089143506304838022351444339295419621607736308000846486233341559614833862288679333995629437268070411781347143659601144758420535259645565063248018731710121559075487677564186396179990924458583168492304371700502513333565691280037430832587897095507645758611144156718153743677357289373024942355425202163626929138759861954172242621641952954545775652916694974623701621475304722512335275723796308536606834857763760718512724832069140567883745799423747156816390819152460158167580352810989500370303838434447293409863343649801864044623431133921635993217333580517893654866882758201432391952712144171547435337949940213040565532072240002416021239472589583200417027019062132785358373322052623536460483801543875503194175345687035198384426332557464535597388679606047121569919935581465852749857653060233631521352111962377998489846668136819835558522161731653112467936618791243899572027472620768361181191302158402409710947108705313154714718455591323135936431029518090213249795308525016615408155369606840415241535349796007951377177838848593250247597695293464373912440961601148026239507855739305778262443555026266836168163245743354393266521345567948421550185560283030651991971816711905366067429191761508043100529332717532937710491768550666203226114315573640447730344937345885588539361425618560110110348812797155030057578354812289638681073056832352492183626732659433740328352638040768573966564302507016356127877009072093110017020008487490276763487617797699980805395738837702381970431357560661682560579259345196051826585529666863832345925325940697972846716493305325869210500602994101672645194810223452501880785820053405441173705705657574887708428228019637196657985041086642217023357412750541240775279638469987421401018510142501339430516394089126022399991000733772235641673255918008801075737656954265623831191796881843366525994235557551639071107539085358929306309945734139416060013602906085714180693523531890006005795528991538039514650282807514375948915045881354643484546894410013847768811264295050002048361459436157442587816451554399816868779916565292180036573120529915766743714591485242652044476178924809067264946319915810216691579944848082029976688931290928879008035887181857771478374286203513519527275450250566996831949822659375172634243742948522091514379731398715636820748100027915190140626167178635989904752450267445904234892496543083521957353614892840337727665163998216729642624275628814440372213127484753181816464427718262549382879250814919027829631962813917241659946909150020334854708105449168455439876940099202161526393972607010773071261468890983830946404482270730932440863295349029033000482336430832190879613351851674460694987242259701255490478416940120379383906510708765088831114790033162486792600015197833703094886860638385456470825166842729800505275663603468028238805471414043634671316394028661610357291754089416559522714406454888232806934886901441849611132905938445644675577664457215182195192643046745595868905968097802340971828237841263127952813874400252813748097377919681702503288410247868067243346618712508781321672322491566197342880194465732238749617976299578643143218943941049344492384372387392009145619944197676695656771101656798951590062545672212166812122778372750869028006360796948656873043246382335551233941697647432792624867486177982719640983498291750118432960978579568828922953895226266571632603057791288292802221493592046616496493209418116793918661495856488286151984513131491636265566309326733433980773876737672052499252481322647174836211035242040598332869422232743378795207738522434694000614485895299301566409812764947884348702229107968285432172937954419267683451257351347057661820451942776911603617315900325129704220818151656558772904570553193329977490606980885626506812624166780111451729869774741663867659252484868059787769310926655496766662389317980963135406390492760655902143242586603652925248007360036501412526842084832271903938558624301788708499408842746720022176414244851466388661413183363136440257194557344708151146757923548362568326105524759559912949222839829979020122001389518472331713247565844118729105985103356388020147863279185488089092696536486762814372110164159803472893215833698259560704621067739438984160805049535730337188088437630642975835890805715251938529351503034629774228575342585134303201111601400747356448806615553990358711994673072319222874129422368303608084461677245496339252581025621953705494449043411964925903335934596551575621689872538474539011340384416486323560314735750298051148804358023078778137862116635874378188416628719358838673637511245764088617555597376296706468711583884269489173920013958749825168347014083726810380178504651261869172515582752521048115360965057282160724122689804109059144280181178129711996473162357362190780221685009497411331014330952421110484286798056954714791941629592955556571004023171111574693247558180037056324684781743458547947047630033083347044821978672561780450266939653251410828929299077829443399647871616361988879452455403613575247774654547857477640053345189673424634368947432009177763282369184474998268771478733067348577858128512824388725319934730365483750937640638507252581105249857639919902495569105487434440973181622935669077394253557223086310322857521068527589151561372810421580970169825628543999097891684609873462958135151335635635159718865152555098776354257380184491592706717881421321827419155818909941175369886593753040080927079445969970634310027740417035106579669018697911043908104772322501866282027782059314712398815686560159052453825970071620749767585268425012391324424305700338048961227643001582422544071787554834348561144418686753075270147287729435541434289242617596472008820208734771840531124857356910366608536279600358568022493330172583794153244717571502635845121222409088078902541744604393555809133486530639001772049470528503776797243165168409613725541308021548680161249955505206034488902023174443821855763298456779539352584400517045423142269120218519242698962624783780918808790894003762423550612212033808838538513801979859826565154495276451194574676759435597132962472192311339415409897798664416111132533629405509122510106226996581639666393724465372943101182222274264540829492269607733763300331934899048072488103508509338700979635185621001371154245431778832573635317744067055417767532480366303456115448849908814767514472895944645911745290013560620212759723269401516199605661372586186830180621428934606396975373450313552929808786457680689867156279470846183063169405307523556568185396195734397150393051538407259241515737574966716016967303323637427000204711088470671784394812298530362764285388232956915016487786732987316525421954245130475100697774278722340780904487296154545841953212434705553482415187267588537745537612161323821739063717438390564521614848576340322878657528556936364423948644149341829641507496087213552160329245061451766829894988922721145833667022190525073462176290932221590752752044220359702903113281119484018790174442422757366757645512805545690929951310549997713275415721885930986179868567105252692427464122445753023138548449819933286491044524119346464659440027755062412843059767818894163274623193028264566147021930469722229841819671504283849166428677172945645221554246555427933895404930541596537007608030289989260414852490843865951982960331536860948769890531292689639793243742942059137516364222825829285424226305258259512395606313195453956807941089180232993594963740722174888686168011952259589563289657876156963771235881592304342986587385245452306063740086178855043273405711736790743580710575319025773733731850804464493312400183660301755919208172365712031847445849174309289112476834768951432227806432183019440524245165144117672731614347539347227874795612105063640372387295909352814194552029817173199813145517442094685870506552006874971021015807265387531761086374277961024037573984579629701436658139060707816039280917863011580573364288024251231354632480105594500430891430325057439375195618239747154408907817048853732373921030921308575163509575104397795556773594649672443042164667021048832613605596435372747503246110670246004002941275481453948556615016396749727683906522761448853297824172243936224802430762326013664724624926674093508491281445385549504905602007556692110125144558695213055525397209648546975639169703938125888692437888826286308678732887114599108260165111589164889772170228893331550546911626800202481745714532994727338270756277693900841770745291944091733644680638344151358399310748133511039442500220953605329508095750846718257349265857671496838603492415926181628154880551194634218939953187587609898322269304210502653398323686974222971370293170345121107113788846576139274265004560631001117834064404449989723151670157961368255418413871948937110258581265246846819823690532312735930587283729668615530845327820760395146791082878903978319775669409142326485097171258098590712402426438845319434592497399778018250241316522959462752614833541073813154569145233571628894313191539386570201858955645867192224195001101830091109136783365185406074382082280241567705924023325514954292677359458792990022966732933655870735967397754694158105365294860630626989338156884464247613493254409717812566911752160100728929915976445181023867481844966876285480459306748926525712526332199521572614228384335425270486910552823981784648675847805758709687164366995218111522978973233084480960036246084980691993071316459645003273081512245759849223122290147416415048527021465534651121909474425458453626022742647098110302793694536734145951694280296874769468457605309073137817549456178086217072454391801517962544008377289074796034642021617734836709674932982462423783253453437521893663988349377345864829255251980481518616999833257988090117551608354855605073810516319722628037386298837508125035597145422404199106594236685936589923625854415351675695456489248188277558291362429613339165261161565268896843346401275065104431367554654080191908983047917672066572458793741325176417885366830311468429805764844816508375345709951817871437942750136884561538503997390248892997618196829511872505315524844251039001279325186803404769708009667149874679766822415125289564701593107502105211538832949006593166237155224611506602945345803418707798786422600461695299461509975561802848808197534996729093153811648098135087077663307336579137650589227576295094782356683337829195708539428289603780072294763795957302720643069654947250772376487538254067442411215407801260398493582641952817477991758031780563546813759215567126656687348524901818981287438746157424660094145701511083527190416514382840156768212184213490310063825905977678763710664536039074797800123033210562255465924152899988347025384613214028686930734429244529072787700030446278907461475769556059001237275082255492681068977471554422119425891390710856656183953818064324206864895501651137320814876192953021683501994086734175755428720326370794508864841751022362138275331738236669792027972754529854698820628166436750455621037795642246069018544625842893538657539120579276319420416546893940417054322883911780913179381540593956828365596812933278609037528001356242831471847235922167661111005676479220554572125631567313874483157036833762040204605525088647233197982551232530153950800370014504421431037336912417242491017685190284448386771300615906985019013315829498326680848039300584182505518252843075478148291182147172043622698228423045769947611926329773593296007623003025720068728168659740430220332264001377681025202964453662359543551744968002661503630006897051606812056520591043469772398876929447313876727703219075792266408253767580630135762083311157559628420071652962525771273028878354192530563115236630752777061481329545015958057165407332734619663576648712661674720132174506050384564557301609568034992141988194163213634961896281368466154956062090252822362478456909630317710046018492663092247324704459870570301624637959363986291946453825652149284597511740524178882240010891383038391860947801208715643045644506013127397512289324801614652040142170244323308889417953109847391265251608246713964660743798744898102876050458819767724690364559234131715933335603414941469553371293662943267586324329975978369700108490194763827348871577357559443716306734795466561039946128567766255259841213254217981972761522022468586775264042707881484879338488586283890118275502188586224726277153486107822433637728188320605637857432652537800797106397784303523534384093643996253575374094850344106466690178363881002390906457708902829135993502925076271019210152119376987611814459098093164194702112292874118542708087153338801123663845550375498152228318055133627012012778520804834442889333907467951296919339917092103227948168977473233834933980749195039639443748671874666553971436315841257389717575514741031724222717868194517388128830781445432466345612220957771877623618182291619882015748289153928651758060680560249073894636199859273921348262860574123810307854587696985203740767987476916738620431284458194770351869522947309163636539923805492467592102095227948429456512218665772216985031030456465880963269060368661043462378059338580265055917504430007226771143371413374149182838964811817768808851071211429375097203571520248416750737885777306959153852675299398227275098782373717388562899037061929916059326767985966841928561074030094150583871464338006928915176382564881940405501278499332723541717186113335041840210929509905710161806716788849969799527456071867001138532961860858028086366159071672596190856594120841841589537463852741709026263520348597390919920009621902659597542463216374457079074355974644684255377265020114265597006264786097055116394952260564363779743368582948481982625157504996037356374090243804510453638906627392065942552914306802496081632248944269667981549660383843335861053979701875499995175729455614015251132908734615256213709555087406019095982974571479194726950996209529007716739895042699832013929177492161426628293851244541482755335089098362749337834808068492279830761592170264199772949589409210049682332069043152522307754154954735703376739673481605139248274459885762039653332121224007027170506338635327394468785177959125479794864713182101849260384758659096696301517876746092021339474462221249172998145992582115703469522241504561225550646392496303141367439876624031601607929354473444134517757305243294720517256830167548602637573125998974056684674068497093611646473796062888813686424100712315009975678071809058020517316299077727899044907421576425743690981634385361141503606627675817228158919484724336316161618846372726245811170283610106299343912806960487927930583713264797259462658015987477308765496890249255986530566403224725713146853904306176939418846648489957384783138378798062235835441848733326365746264789362865463563094500714488942721297447282757409182995312599035651443857528047058547679403020595851599399046816666170117754135613303014581845391247069962058001264536522134235063257683216563752608741387485033417097447837200555919927602885415471144366075433763585378333416533561012207090512711913170658284791999167427079386569615196959138724843835241358945784405929148009590811870705711426324664695800977499386015499942062393133179535327433255256955096088106328803098129634037740445166118373932256533421907782526553700831768022780663155402612574354950611270700790547050446002149849331998252701522192581866912547195437347793330013161059586720073018863118981537683033072163113470613756450948977282253524492953712589108433263501664137629947570113870952433173019599908511317604808475906006863935029116078562323962116202443108336223018381351418862229609107553068586191914974511804087851769278804979024489588823252593934716334651926113477477081550762092324559963793819480322675467599946763415909522901454246146013393936829305153880981420656141527412158916032066098746661461322222656686613939190436949216263410763261788294996571271106392451901185533048656401261497745382404549596276269063759867169419061720353869429514991686305417059479369133905471108135957391860507241251403335097154436817233922349467404537872680630317576664701517910172204120542821483379931012296073826196291346421646144927770550673636052138158461922852212606107498346842376348887396185500457208798159305908146745247509327644380204604617536470530741875273117206082874696540389103710803600935560853269677597186696667457155392144693703297394756224296110645271589223097437259243630608647502727932864302361373613814922384259820321390195015326982694551704390003213323428519106917574344686668904755355784089428345203854700859505184395394709740768008535203584258447920137968463573834515244756933522335613005800622244042522639213203018197684423522746417875476741666189888068131312312284971564373708240282109879533123421699064785507343776777554599971713300751277242701343013254003537130312594597912502373533939574380041178124015990852277273718933249584121185436936826968903790787893859866988030485797020917957649858112061644804371813307070501461020946540422288327316752271036662800719328720366036195539032123400842596778668913875174476850548522077793112796772542322778337452823910950861690831800084280312243571939656050192121128405397161403428786146158956516885821224880270262250682259959973259090573730252875927636654386253075037361410289654210167764209795337950981193606003163222739729666711159026043010462255852147139998126152491541642411086730550004757961146958014737609304267720949426002692903160716923964533202206208090844773204269764940442663517465409196836779799121847603697589153794945847382528374894079748977446515399131618681479728854742699552517438359364773115505311627975673585833744487322722765688352666430621569885575753248079744022168884348350339082146503803982756437676823099004735986633811484319660521308028292358201897518690071038710764578581595401323492436945324920325079838506200153176685342344474088906276110184773158430271107622319640309676614150387762875899593850876525003523354654114850973291012216050794850603460713800934970320556764279263798624639506410739919268036774530962610861791446560742385296352022228056818462775996839494961943025403828374350129860674091249943999378467321740452471749844505232362019563944166640338912981885954253864639913439812665185329364719601718402162343336651081548370685428412751553024044598599167682882091244949165848267601551172865860311563402094716537469089374067113099874581680570434666310227298452801664221953280500527378360785853937110219373382253658339363720156055045794149317583442847156458247414980970819143056253778665680765853271937170613380439204632186885550612314068148881987319023693008324237424680962640573390248663884399544196616035300545241501561787876130452427195240295315636648284491003805488213222799639665267953849424965436438560288001660611093767779730705359836447786344840025889763708793102711167301711746608634048056235160174447242462421208942183629504832070675170408612677662564117097430661898308966936904794149015228650095926685248935984258581570992576841339422948465686759995404965164796834067427146945140118816439225892124271350233340479913129197252359754648825515989122919117101242818034005771976752390248809436421697491686728120587389724107289759943295999164689962038881677031427903713484626079798856028885568805374508688470511656822121699052130783554550007156031053219931629232523958838403472766647621532708917811629590158978186789377726783093168628673554173249321558459896472838035568035648454837220440380469790428518882969314198438266725276165968136032742757819304980373467365055080050329716005477376355990257533676452349966569447518818354169165669510770868813240056263253701316746753408684217153060144027405394258231401442388221634827575732427444049862511201780827673169933908619191699710977915234264922682028052303103527956224960534519410325051711695149585745627227848869042694363808635819119973124386095042001240909277115594425466089891272185849103307423111960660503730185094544519655888704062261448521727169446347186027260945400786016731909147703429652236518093755991994803276163513498417700410317722468425771606802259891897291196793886719441664135252647524117667612303092098073312893555355695830442140475079960719346998557787139328410704478632470763758343726477039975328765194405195707587310971061424717398990672305197847039812625468823884425393487629632566483852281289594989907291491250771673339858494025664249002840370066603174578434136827111724216665383767824844355754750538797282715494980571068700870119865012175970204749292588077805939093703880987644004990108005962293659556093560968519227106150135718496582958532340391849606509494317524304224997554767168624664930897135490732177745045126584156213581969923171821525218305631068686064358797425603375050087742235387959438262673270105430521375512956691176037356245849365320324422852396348010264139643746197088771847166200743405132041841315076694596559904981548178011459108893591137367734708772892300106336232791819084497665425024813402053833449497966078722955283190153145119192343584746084071384888125916169070637968131454001156948815464248333442379678070290218530263842675046449449714858505075352511878660861642982622802528498705217402979303297957513360261193057830982574434753548200695590161052811682409130876158125432908710896133963644044546208054710900634199665238317801306157050895632037775859153807578433037527060690725747165603837837254371977610586743812280893851024795051451252759234382653108965833095881616948084686532821856721217924303984916968804351172599306437710329885707493198886282881881890773760377275363988127497250849573338974627609324034327199068899101634321417899719929120000521736439448838874895087257827711330045259275300271451857461088816656576715604049469138045121531321581698812322280475979505999201612860377248699949314609217330419196931051194822632182517788569904616219511409163836445040635505160689998457446246990174797689792068575937297271097305935870609482858700376974755303809379510215378342915289698132511767682751212534200264850283408548535630592474967236608859011773905030202582453581953034285543104999022705976010970564655673435662861438548170593378481728279486073523826777635935092947830776790339639723210275478651552038078640233455402691312009309484980568938869247851606159477941175307624448270566040488809687775342158244031684942134055396440761622670586858362057210567930031796808717749900959446393703681387944774878278256954084456540247610062467723270203642631772397553138485529031468951712909314513402805090653902781755372950613085815328296595507925390356039939256783166373776665486915875403389750985083294367081472487675859039927696832078102525937690961161024537537264806617698144774764383968191320465640518771087725103611117263089892814187687739847876037649743382106416014010115055813853943369513091598877171746391797797620893922693468395329585660497797889854869422906435678003784907037165308143957013158175922089142949689172556976378433531495312488483972302267080712706153884954799983942978563949183018332236532933929888585377844473976907788569125462777700033112684676869048940554530750719083075434407490115939586455387335978945321948913416831394063497233649076275737725048941040361008556966678269433839580135333316357175970546057575534686764285553377444882458088640142044520537386823973759718702548364869984814927910784684392806672773309267002615199673527438844842324218716369160108491080353102188947799775828497376270018699861741442537181038975655284317573820580531495731080023307586214287777910720139039486541731630149460686022191175763206943232031668148856493155867205283736693927394895836657438094256687609066954621710736442526410387893881505820378705300232257995971040539410232875367404686901652405000581036072225685695341621391880073509323695297648870809086153343182085695903668153527899682739921553148656395164584096761095268825127949232342740546213762863129217856883481398458199958054490216799384085381120485311359008560789163489150954609670919149084456533100227973036878209076910611950502851206841552717666923721466164051233914979336014868004031304800411093493310530149807461556587484039378789889155994212643653535640808748013938320585460044947239479766350387403236701247069863093603775593659646953708426072065242630797234464937779982463504676824774084725719961831429985950483844968372389972026414695998975743408072261354895422058511489288413483421604803150699560889460304517634990032477293983470588977762946617850661684754963770861710991811015811706515390708139363588761465564388331697235082648146322098221547148075761757739986716080383816266380227660782265344522442298808355334923493613967392908256251981240650763062401629050510095126894294654646198628271923562110498787176006278876845692587735314599071831042640452155480509599226467282393872567140157828026086204655420681823278373559927133254810128651882262165713895734766258550056262688322808112040606188801544037679480107826288095163596319310598407486229780750336773078695718315950452254015784941878572056160295871522489119548434746172947245086799379269211228676537228579913450863415192448462786455965271770106046509626465215812263238915491662760184115981847991079373686487292492165773882068839881966539869991685571940210380541557948114841387120752332442262984777807164147136070639098538754665053901543900543658095419091031508171080727687122530112281428369625514641750820771656229209376440456681017519400145501242290876899618677387852621185572178142034716890578622768697537727122034253894010989073695079097178840945255441256818680737556623005270649191384003187249550118289182634300550933251787578964285804111289962183910412146563445054031103818110904885879408704070225303085700814402113941566230396488926286611947771429291303637585773707956284056789662141884461982544301325720887183104168616007851207470783624933318668108476495725617548752358441101799705101632521965214796959761228933930532446883480621000882534754748063656883661527276234720839645622311284813558818770848413001351102032984108984532758830809141012584541255682983925607848553158923829147234116864735155958409003980852355383847666708244754925420596586371503774352621309633763223187380402470794503936490848544699162289735256291430953081977686938081762279513979273868215102663551267224737241513393653173421307843924015629147024676086299071272782136319361986417110606610942801522871941883449429906500485413687108958018088389536394006511427468324925193735419427683914120397201966936996005441939272899709675240905190438263707066431504755082178514541312217606630565897220524982552110165895368444396039592204976026484901198006427348581030672504349361128747895903027903940520842873716714390667114581754917108526308301193652599309029668007607958553076735985766996050593963168600901725705195915075845032491651276415550472982087610702194567865195647589663750623817679815455664290771136362301051368451944632798695003678399082087544667166784870694119129506865923943138470112803259754318305553779674522190945518135905278903834395378982047474394674221167856731202385910143855842508924922241491918079794361792476322427571556613040035731798132258736296985127425371467772544435801079730070828490840199769303256060759725375862143103291858565400905598486075236628951397383889124591738917480144756928751989779057648780498109000826557379531991493908530166033542041561281300635609368874521487529014491281383129417831168585976851273306105663335621408530085084615255153811698966492375156003996892591925585814431927640030056218231869757834531731609385747846221290978946582341020742790021793232849113316521389835952799054854715437995267330838117813099403433904772152053563623404539589557333489800887645146470616723313732428028751904532679927545309112540240015783729549382283442034922393903385078774608104618680045972114588673062802759166543572775911224639565951066199141682659916063333073522232324745707678135443535332298784407434754503608534509534812273205782078481036937353086689726644118892961971819532952764490026282133673491157979442449035798540597165043168815741844713164370592127253745443670965842295740509043732216502822947920080300213611639948043976084992875246977897256744427755144642210302733060749507389124715678934931284323541596399513768366858980087384565062684511482009533026209776334182644349121753552973036388090125089204559040079242168607984669756587482672221259538397279528271069165703633604896692830229385021297497820707281080700782614819449068474233085839299434398666141355175821150549194017317085012691691499393464911463402860338236407908535487431992750989506078475041402420318957783320918426506178130622676593380400164145735442845345198239819549771456161527740798739533875136989005653071225999527504598288931720290297465757604752290878431528502121468902649243142054297533941449584672383626599241667318592418539984700795845128896905415193919509449197888592888681386434840619228214160387847884764842484019249234765947040288345601073890832731937090074728436803294180610036898893508356515679426066236463115323971689216705563554507566088444028571714546570419516963509009105034667343819300094800069814798735583410554128442545215350750605642116647760261800346511594157894681531915326808561622605088797774243338434581161160890771843911565827601524550650721045554188179184148721695104140687481673094331569106386295771850989838387141977959216712749156643147672978115259724970472408924852472796389773648533220114465775225155285232968814274442090857423339224034500718935263908937229887274267701734872278357092206527544532697317147690473643910305058356694379058645159961177086985541808492919752394763228841993456588410525283102556812291183853659486091044368039760146675467114355379531047366475697312380381314686238899390530519233449589123592589676151163211442188733689236969061162999206944505518072879527980900538587866660443685355227521915918962905213280608583054019199848414067342323789608789890543440166450478635377371350251044090338575379670916254974850622064599099857331679106641075798347329324909808957760919456312213319780801013007961825492189886990333843286053836713244198703001806488835949648359843943743088587149404575009387818262208806927279332069359120844589683992650587675229662049052553403860224509323053666301819721290858117323698219078918153852781825712136643273307621901657650716763113530678705210052560746990577483043401408455934606060124494438450480059550884670198638904532121728969486126218790812343493938045468895794370246650244634843154212606424443592414451887520248194975885761155383660080891039845416824628652960409662307178705729183233845475441449675217585243759491974560605752717384379284800703974857408391211025302448652760116795932066333037019502538787757842414408069962726460830646664776854417407742019569944619884241264680020836520579835064618961266643620250161505037381039704095520775043247473121617594575283695596900949725812214960664896452030600380036631589902302530367014576087515638445645696326648556939219965996612577661793984074405897403565890847203850232690796478035603127738976596770641239511669584615911147939309830498055015205703504598302168657953670047657349313887048482890160491179403622527934901885343460617185763413052350510270825518301243930695259641650953184946706966218465220961653296023289690011078625264765805894303387244084290540588103165285900422418333215926573412662682540546852314553462777647833730838428830947556317972902303419393393528324501270860147748130939216527980228289497447452959624541530458696429798681652739271597523429960145427607888378079255743840436291564464861248830497229219352876337754824996402766752053889773731641445190529524316037560846674338598397856326239343791771577362719801889139416491462346338055516852360372480040732045089821824871709752992250283184860242644440909357564869556290468237399295997552875657856858186159512026044400001028871988417396727535986343600276580653952827086027740266093892570464236670021440821155272179677682608307717848276124821152444292124981799500315087267752147807101273192861892565065994381190126980918050156711698454183261378891461775899013016323662774091058007828585495981127193315757583453815573140866948605167624198369183918258576566855854564384426068994549271333543236992696926507139684029814513187223390524649332479957535880992032372969226033516113581620318581753258265179865605075517567155953422512502490806406209685918796375526998694526109229516259452948815065236652524195642669273702268654402543405822084602053606017901772070965840083064589936589686549291209056801106327535338999287399273214364453438713746503681689752048273162604724580699855586119780628916273265976338968275888700046396189374143985168671798969138647883600291058056372556801276242979728311057310009644853275169301502007057715093601880810867262779269648555407382488907400221737754187670332124165744163831324210349683942879683644954516455858119327053006415934093381871831676421804425951914879221980238018836677979025779657205323028925669371485793055925006628486048267751544898403985884116841292719333689955751347976288150859619076602462859533019104360166000744121995293161372227451242404336709933678283109003185448321164333173068168778594441904001943537584697796328962592228568462384271775456686081163833347694744872997917642243997859733375762727388606755807226330550847281187512912104351118880516005377675065264534563480551072722870081692182561986332232939038899097128498137394852418095736234814535499778277081986813437197915933690164727934594752277284690738579564942692607302942899262803202592388879383730242643177434273367710502896501412941378062391376948463322115400073597537131321740847643988216082232106813993721201956091423687612319181423057337029529055747202856410433558143246499050664569551365526791086501269756952092899412915907368918916919523329567765862979657710852176946806978522123108063995818561550982522146809764596149648440341533698806656087545091857212169358619308874274961721313265737773274135170027946257464296951683325411365116144403909037413885870740863472406516652113926141162921062264184807367397231850281460284891062253644972686791269529769677171738472646856580676023654241759937269626774705004853587520752694399731808946969566011299818101395710240957459572681813243367926918787608325172968511315730375579642815855365292240384137667224186264358575405307460597281514394321775622700378604717062477081126284086250789174096660433296377375676513041164955108685056802964718842551359846313632340589210673240552189834035827888571285608782884690166000185465111805731147512497058207680497489772850420955018435706848272547193757347831657397990138357864182178868396773595660231465042252270693583388059514977995865521994626154773286637170081070062929028611785843852593699499887883797999777988439457527383268521404616968493150726443332835959913628422464375353512239707689707039653471954374751303893285162503790292608211370399556486866339295363062080208873379521361293139966191169717864218802067497904474453595598615347049947328639404671125283807117615961432837085908941694835651542927096082075228548944596104369062403600227196720646654310351628461618733858331052577681146096783765757482196189758744680494861855185987820862272279684722845488708064935484988246695749032845415193078789880630766090839343917174820029243706190172907699575527667168805648097528894511197189424721044479772762599016151701816392610314929598674939115510574664076107554761389582229427180313037134912488341419741135262706012902202140848215560739612573898164070729555366702349166712818561307402235877778083788358119434793961405887618744962316191554444408954695099729628908524502623680610275612243024302914446395117798350475109025240888122690674564721295139045288390097874554456700453258743995732485094155032503497627991122855896025802765313748132595172817397679344102592174874893606902776101461729940529431564390819242353356756694127947805221485118896023180359077143107399509987615462550267305636812705622467802849148526818823708648103975358444241346653246795136112643543328238064254503179763426176128713389038013923954139934526750397344389329020745377752400367372390909213901723313169030719348718733771634804838587811965635367063413300814821142162342176954500986533515012230430707420979914361164729793470059863114444563946018169449454727555098948488085177373603579427899373571320761954841117547521977193526050143194866096700806908648202710703484365915647672798753499289085244194858392741492459760299286713968561785879138007621730581549483813499341954264352471488150589575829532975907519341676480810902654477908799295007914331538117897367683172564723799028734540672649298965887000515119005748762232870859515738099787744272340976351160253175912674423480556428647775545444894452231245834700615187050060519394316245094533908462412879143936538838167183729447500778506966337108818233698445889690867544249048639539229286206080280302740907091984719783786969980303379664090260420012608822809101813767358346928715321896379797691563403303032011342664865585975500910405075563217229568729369489356556128941718904849264509790198197457711289083257395334569819961342892659693835631776419656584209352493869888849907490929418709046475168187407143669203416216648044790826451695049637017273148645682746136214673176337017093819099253620986042394599467606545810216183081465802883740315890110991505682149210048527510035993656818363553442851159985123714340325761407292388272973829009933539387445695358651454438003269600699657991295483628665439527978321527746813144407328406434748606654512177899584942378242013197873959338253763015461106484149355458771969104675709133887301752240513947553164112003517714442585302579392547354198548712929593859061485499005946742499929674851291029696117297055482246098604285667930369485495790038157302055831924914586668866981943731881923122484696211290659295685305460898915883646335035829060559178647503538436302522836894783666226994825904156158220932068469577827531745891581443285752681045411002668116226003818773024513458869360460744981753478187057885619673584266755197305421497959989801186261430755949544026861071422074957968710076242049740480986576015459265424805245612458610687475049028614219204291791471247256486296260771748270801180310868605441969543569631518768054870847051062567484694175563326570974882261477364962213670800419141455015928068991659801051734486875779994397684609554758585817866398334543255395490209431562181395798677295806386038115645039203528653367360795732337771223550925561286850293956095499435584298795300421758010582627013000170210786011674177656152114305489406746174120224414058885114261264777837026848282793027308476709051354856457233618430869297367153266065558795142454580070379598083033133016549530305633841470774736217136651450100992356615483047040002538093923751011241105113242811877706103722153093272768314476799124364993483286646276090736263316847340351774062133585193961484275312204633255962672424235054969753115876271903930211948450628516703505253549025757524616240619885204809194193522918774252015666618608503883773979407945620075690849309684922675410515377299935962657566645246200961290268845734801606065529593833882194855168102215477062465988517264456955695653069960156242578105099484466133305462460676825644741604549847588902686666828316432963413340866337872738592401542464433793637434291442241449592588889940551515084564449223446382194985272858122202884524031127378716542940546886374306927352866418023391571829891250437317374224026486099720477959721869241733418947388809843937087363863170622225925832863493022077765386564468028786363682098656973531154125729727850099233386806193379524395626339137807303115855454915172801529039200197066695608589749273757589207239267331697219876173488457086236879302975645472091152409570123451150193779591554103360577437827674596437160772900481281445479826624624827302378295454770265348550361485831013731133685511380212332980206045114389772411041416984606776456624188753455977647384786847199345663822076923459892452920719658931613745235826486835478478961201321147449609139035925815221645705717832648107097909839404647504763041811939117756485576464546038222158723716968010103787883272925249845480112149294032376519931279338311975606452513257770665718641760769870396183594699919838373565077306448897015337695654025724793945192345627645357445661754317715658749037132876898901186333561437396835135370252665724685304544612907575448306617137456619747965643148464186537514617396130850609106611919014683555036606540683026230452113286820859325426515150963115760880127703171851111280606065443307961476817920884714108482782857397521802854267648626714174765671411102605263282198755376235456089502081464533613103966300021114203010579371864956849538445366625521629741540237112271854211331761979637831727799121632781161717149886529745598962177893677744247082581351635358168742196266383958354608708994174920791734391826154461063943180021527824858955932556489386882247537735094334950295942263701962542843278790269408870055749911501745349528348133110274164809324386480022260422358680052451862972308130290870060084172540309239288172901806716640908360069977566879782253068009552830244617442289510201645474869980653862850516020257248967490924731010244195527041644605998068225154621087150766713702290232002502120566490081373125729659964502094311037638459709656311683299022123214634848484967643726106044986782121564771629896262156354355957535726978256971513336215287456823726186617222948742535043326920897336414686244027151733090035792248786113887585177303644536475058813060385176728529916634963952900982819726863798013195555926254545498782213158996030886968331161548230174929402879746392489106618813118066959563203979442735641404234115733938477103952624484660548858277960418490019035584917366250833497628215852475881595110784852280770553664557145671342072394964021194298675112824944812773387719974681538506460107243235835563664579110872488295901136652178748024161688732527848055163077202550668394641934394984591764740136216157507701837816613133574221022968277436555196727284682608970252265191662006838755624312092259348460022845384766986374366169819465759219118620400145417107782961844232760564594212007762725472974034169569244903555746493181810896976238113055923571650991663981127709247305091086883973813812349274008026476501162334713431164616798002783964564944170592242932037015618638081077430290359129620455448121842307556144156889370881194622801807187953939765418386313787526342603212118043493666031770319620520957514098629634585509185497300983028675244855168357082480114614827598563645305134495007805514049482592077130181701653715091889195657580448483318334326556496577728783127253728595020915815674264426958060155265324393123880626956762431391523521995994563915107169598741874190316207072432562890070846641003449802243531050519784525720590237437842397089431097027407077050541194892002983642526332361493368824079962805725004194263357721023111163024378310840220435730630379324279407309104239969823725095085268445470770173176153390360095006555909405763505510466928611587371464955883649412917776994522883323598085977897817325427418193274228853605615845231424883836763175175522102041043681782667378775535763104640739161000574071916974523131117390802455254011620698980543085899540294198395173253914530393455115915512979087710630858251561981657915300776668761806409136818612825479048553105585998518840580571712645396249534444468602719447392156371462304788113038256929862605911039277662437990654483061063738748049111167831443728830014253831488675799699784278195185460991730675987644321764347265604246905522081419216978938868214600694884588534523265196844063900487229716979204404462222977321546554684593881030865678661096745968852691487630624063059302896618506002402956546124650939436900419730231158464615326177374253462970931537386567090446960889407650983599169757759462230512467121482240551693994044705237422872154875497308725053411189871222074078703252090491341979739308593028665670724226876828012684861943300805886193527214354778991788887898626109188683431431336843534876233531484080442838382666035743429860931567547875055829046067136062547712839191830710204617651465034215353389440365044914749211188087933690467135802769826673186476226953244691481158628000139666781317296079201796392093471137669520358299813811895018065650621622695019619492509983480223611725642485964959225373725467061697967280073144991453151969180457583584061562366680078304430381608453872940007008639703707724700281964543658384616023609841106139412706890481877377146913828992608908462221198973745128532161043703774243690887436510243622233647184995889875229294959187829744221974490893862655780604051307926160063609970114283685792182119302336284646024444075028251515451244524237389585144883029201552686025988584233376350388815187318542024516574526627805216138389985072963669947771149599089624602070939990918311371188815280287634814311824734479097264787048996100154910340549032654856529312784262588106309310466008736683887127047960399555419662480072089071272324149083746997318045937713251594955847169043436082027497412753240191495615194245500199620415716624307795060686416290856079022910000641241549540948233416474689323523685336711875656331318098290466141511612207123063097047212868554569338462499363614670360749611494088501138151805914882063043790371865977454969300199231434010398688524292948425420527597554004915501811755403735511793718370092114607291038925532474191264903434935471947881552926348132542497422210206384927949646639958277138500178111756039073079313670582752487926770347638427759564507093893719292922054217135810012723700636821495628520673140125093405760834106411008767507800980661364874344958608981635388105742003500962752230880149979490155376675019814844032063571604511454505775287017568871082973701104004557655473909257654222389651352849370027461292429854929302982416026034913161345970757428301402192542163906679632935276565672436044746722389412672132890968324468772253925613537456892515007478624310449986988772333765361953890492743438711361784456861432730628213935709806967728900844251088158338822986472893405354230281187845944827584327005025481578754799947143485693943087719333890316498155307013939608928260114201062993665203330270783766692856455786939107646002228003376404504889357074119789265937767095286273169085965482692848820550348276222871485285822238298333434873134358053689087130171605214070523500003045931359951263128905900116405117585919448639275036285002370250089690820620476715504191242625491216427791735089820402752316208096451910334736386138477590303144821486650520852319817411143978520163423235341091073349578617033976511738948746826078773540088500555725111981022301925220498169360238159963805928723631889575292994785073614624121535788584172724164651674768928343551492223023457170779898230289672200957353748371768142083427927656878883350930078804673213084908422594769236139112419661217979289761823838403672020563201504101345365233581122456251291181499567346140795477451473845404762752057499344323288404319761166507095670133208016867044706801885630725462106524155579362783292102786376126098714739244891394404351525864235025781560702909002574251661598439068599118659610867275511080709315895170170223668994304005431793317048053718232702349335238507167209120268275374637739977592844790380727720207664740318703119993450418153818815492182715016256814791480545735006565592453668973138089714091190634421078015137301281542851306953780561015617504522260353154882783849579250619692448000643411370052471585093092591825726945406332553241041517475347217316648008829473433334820228434611906663017396722071866292665495409818958148784621836551779666152122622049383831837066626360203346086999017515815278132099503803472835207362798733684397398605815179678747057145017842883915226529849697454191678757160741537986552178495781561532192596648027628167208457268358698883615205485938578403029580123793502319437717171329314598269877590879451557996119802298077402450496504644338630445783392581553423030817446500587432722103254917950139299477919895979278855890629883700517617486155448744210290737770268467627335820774637372491809484612389915839655978708634879403851317599132847444359079197536656428365313567738706889320359981251634061973751689607543693102648261093387120209898847619786833721021258970917207331553000627393924446903039845726187985639443573572106108031364237475739836142939872095235613278950117087489650357541588822935013998017324100974385441675074080017472439557043706863454700790442512756764076472355486232407600340631404157875433635640138269271499911043644951561806020867611989872224928426498840180296716670987000033561022574305253032335317439770272657715120218166247387146083800599748805347121839893357753942341486727551226164520617444814569401460828118430714019711957922383750351248184057366851402580318511965592266829549376438709606999139417881947201736944560332176011059035431479346219156282805836175525625927935480411617449217780960905175747450757778345002147198489670859942523403322094614150576214472437617518994147676193478512928144860715840323798396430157020479519943815362287212218219908057968359727622835763044973168835710691696305441622374105517282516418849737102751960973350566710317476020390554130046911132873617301663501365473079956787623781676821143933443246768290090249130125900648584625845543083989963166983531384002115097865433281148423655505703146339841635670716561861797877410047895524795656370325760830038984501206709927113167896051970327459885131977835431530921952550044012949821886884244672986325417136480194707314940699609250379525695424157906007151753753360198359205906455536666277823449538227038186770791059628402383417610027120833983375826150733175367592248283335257601975225011590460297131228703158512631450138679681313857129285262900823078117884167581069492539835247187481703793201625567232467759905633956115838059016083584740467512407969944388855099975532894142121174216820466678204588918279174831996552856672704724587315722204689519708708325302052635484869384899616305110332022432961789858183104690133533751706610965662679238828309380164741272955976899258333076344163919811709815918802037235401207193168666967513574376806350892435888066119215246298803273311363750321370302225119798396195516845220884546133141386861103095954784596246755858188504025774508349929573307359348808881119311792231447568834428535128946573432670355242734499472161591390704515971719954538579044948987290186176128471526118969882261858458705854629449955707166838805444263389352974858047008730285450273767083558388781474455290872802492361059799466781813623786264132556672820418908754233821302635153993669926360866409959577985474743285973525730059954305301328869977707455329656246225092904620034253778030639173028313499965655010427185401719694047957011414775102641975531400677614346889019468646582382762317961466406318167285646903586414268017675378912281590866322533323860549250546821264982253191006445718362598309718798778952420302212215107296504227243141261137428448171237217509222504999400022981296378866474460401556377590003770507505358453723634848433992624083490978747115635965498951644803202084386295974548607394493543771406398304048738416220554486360501974979892391684696695034441177060951825219852328362166650590655579513150754883501594686391749334235159094630717916370487277915481820480696363177390966878907125138386785025825750036147537238951571660973475393021324442881223077413117193332939900762528416855691140701085686504912440740783976852733593379487074222527719465317013281295100336528103622870694155194231943439774960056924038327074613106530075851816592708922271394357338144930380428766704757293841366698098302736097216477930032501795587431522702329213922549675911295697715644714538275747243210971652838834922836847714768151696769695679260714592916155598257708960314926029419871448274601185073090737256122047921748296581239381016802875193635822114719977022977923269970675078809825294284453244988728338352195242425402312677781936382457961464331994254760431225201513959435257557102029303144675149450061509773549272997406623308894426437625301035746734555327326640623473668630180218301767178842607758265093643948482682235774215044023646118637855873078465456786789855445227638896192371315389784085801824628030366633905054928821517973795617029580422768246913049865316501556867247350994048200683337393138856796036403110055432387368282118590219161217955751877750527914604711024480747529253923125316668758185635528370257866181598354871603502057967780216135370828082921056493295665749281327431922258431049147212930912219063125962053267234977842347160848787379045992984234576822974682028005060401341711339633173859275265098712415861545879828192353641520005107636408779184382040946634610880582456708540600738707946854314716231493740923779782949281103136756620006755610946251350179935659807799730418571435381869977735428060049387618306911358654877059409587052068496827594140321419572502679972776161768964795345217011614767889406245234528291873776904022569295744278546688765867877831474272002859628491480104898149745379292680998305880443322587765567417970520031779848185157961963346606613987105840079922578897010062148339913086384608905332630788446316526272029270437376220380308951191427493796101529605278358644057020175599805058565431727002889514770638292876767245316584122349143556171862550440853319353338646454054870556014424612401153317837954104565120786616152246408625394063572754164738400105105585547935430090663335528160672176683459772917871402730373236248647516854808948315994667777174166743958286472082788333121317907552717951987186603533835103007339539728545776802548728791997314498220458692570980379234167156774836818093492738788796360494887477263279048762824793466857308569153295261331648826151797880024982603455039038349053508150567849919316722567619445335936891058480224804987210327883715514968041000886749496829693999356683414864132648865142247652782221086749153049970125410951166415447642414996360684684205555939826733765374089486849177648580903998366082179607042192785318255078436970966119815675705479502955306550060833067615637011170817767050349298769052935580304856708551664363444524007478359018188867608654956379049896206057314449666462261801580038575427419857151234956157539195828404343131420425397438748837694390514595743477253054868651441559554462274110321697098038557724821705241516538248053063907209218115676927675442129667646346876485100217854645927734987755300240692763767542983181832769631461326321972692716512200854926162282720302911497169505149866420949628963342195943685826683359943173048825423730401120381926499755227453206592879433422249743421909235116163719359108504407506254794827245638304515068159867563808385872638870830266316410943636245195621105033718457767962717377101275376030650723167300115409311537398866417376777175022081230827696156764934438881836935352329497442420712983580902112185400623512401186773156948327610726006155792643181286702561597156349608073248327220221324272942812351924229231461997498018579612302301487222402767167800451584061855158920987253181254079441532686872923437415584971215971433768449355935998428956787732489987250280618984229429176656267968141718241972522153317225324091877230948454139862740691932657670553418659221765150139809018172042276752313054711036968996287520846860825032265421504387992544242297592726136730209108638085232578171055298594582368885565542497793868434103637622491941360955338199553695536412389572484146508338049960397102350841460512672106375057099296360214576934364648711757158423088447606315049278511213668759339458777038589948891004455991786664918099341640878905024489895332150142846318565348252795505796816582658369834150593474833227765338822315517490856299344959556316173761292173002752258806145352121104138778429453876531945235717146803345015568645527547913099898298426578307799653334080128479829676013252902643875772672223352224654521360882792919463871048233428956013408642900084299919349037260006978976386283404921000559440382816841318386168674560332258841197598021801366419685406387002562728958398640165640151731490969407504770424605107050681839033292052978513438804935893976586261380661851596845222207352066682964807568146166472118471451526991399883678741734575133715517288322379677213660604438096082932221819219467098913341628862808417821618700097929720410640813904607983118126735576127417023717387690794212573155155773610196295861368298940744445015501482360540486531829398948792091175041385749630337144592855850887308317839886771149454494409765195173754746211664581498046033805324603779567090037193019375137789811089096208553810683571069496809692307478958033183998869213402179303942276880430194490711894014020123882571859475063414820021029821678639762006262981535140743231909656664426866077204059581528798065437525905748494939302924122224163847881028087521343312921837568450258414349307132133055816550489747473661630027573658109581742319293585533920836418942362337046683929626313421290130992169745497242958158545137599113464363080878590098199906423193632313387798119681798818219334492609036237385176739520377389668558865663852551308698559269081162837549783482360088988052181162154980135935690257943574030420085216568648542577029597831714778357824197240746801999890335244493696022358435639829821077226712228037603582605213894268936983117665227661532753321051636591466916807084930884337742508363150306357440189699314287027694243652426304746752321971928222432601617849680644085983093074879612693440640252810169085500860848455644382235316118127499149713600879543044808192074890650560064002525455930463395473881674043006338500548360454258668397470781769312231167027398029504871949708400525534261146537278022358504959270867578197995317077395156776634274888935569109302834797979768058899940661506834517494714360573961132917505013772528139871559854013477213021554080811063504284062695058268822229926174999082575519656972664102884291391366024071350323194422586044418299561395944859255585714828295403159438841786272528150291866094637275400473722971140383159613494103270798851822604824670664865347230121928942655161545507894225550915514300857419661046913884446261020727585136560673490391600981548801733068846502178138204215889961066103994854688057201559161746576433975246135303640724546418402097459169217246277980240301291035516384538254603576314415910609733840288954612169417885884183505105618555118725851359417313479242475488914762611439009608713853147645427668075212322599245343179376955381574398295400307875453093474814642382095456981344495155552132186001752394366417455339263514718104495752500111272633611458569888038894056137992406369623963880081319889299604791914740275003930322421561802979083954427215810372042726010220120761905329735594711135940640794327537435091860681240054268910607746776817935422191892518864597249014903715047880820960336223509554958049015673635667628755410405472606198310971681647442907309884206658065236386847907828466227846674305217973927213694277494301078521763899981293486001441740586003925070904110030210448038244760819154465114572512851667413299422764833064487153307337572023068961689029241773022655038467184591518416298011883408056997558697559157852499782496688399758793653814256487399227613802061688814588673876662900795083991524982139850392823599478230759702890767962106836825522168046647104566360398631327573362458834375797924710906890962114330409334504638743421939565498683811739601391388944607109926903446735857464557741398912122738729585787107832387234020557738343996055283195213417140656425991085131227085437104451954381211839904146192912725147063820423671956061556982306485600035699375151965720082888047194439800623295603067896546684402049100765756653341931491432998100282605932436029936461002928951490586583674249773932512841490211349750519629706013064827262105285595186832568215854307489888691956657880279601184984599748980800085734628553278331157910746135049076066716183439694778747745849665294802853514870977033973290208039975566988190680258145562784328643587706746584138200388243395789677855639143211330772581350180569312944849960592097002514006051352595046343346840817937569085997335399020910304689740826866990151171062302875308603937797863446000282334172627645343034018719652283454806279304777945401168063637396007330346899114350865083501707395147941368393470814774036185066681527515382754678563974288521560250509168410443341782929417512246421856359004288392287666384677910256705333838379485060970847210961973524802624328099944795499769221208970009671300643017969512550198121521660823890446734080680635807519305046392300548608080931536731343732606210180399191046507887786566463024353998007062770863768716851464427649953815181207447421098966858771969420375828984873067506992571691508760295786798530518120409288129896452799849214100968844625095163729394156786029508328771481329001712945036472315478802335836987431485858705763616091161998501512087285163739770919006908781413469567640794659494162589549270320482053269433725063879615233980394749238016517676721699898080719439953101656751443914209631085966134917033490102420094210492012409411633774231723003120900466966347575825107653744937723109032163396713109730711418295006741447231647243045376564848376559891004994765072303814554443407978294953177207552149367510898453160165190148273628004979723962423323762107583033575706616712696379664775430534568618819522335587473891737787623271830698704737888840674174379510372174219868893102690373942760873317778124227736069720475704528975426463432567653625439082194203316986496110748867731018165668821282005895857684430691635823227040036689589779633707999818695587163791246317320193377171631112952388450089638490738944954898788578644639942363142174913354189675476458666905246779823384620368134224272976917735370154839154701207893988323540153996246851874749898622753697787027977418286639195045471334551299066795107330815972207265870487767690349306857977266033033022369681768464071736289949828847453524216341408932094290683200160061359746374492495046069444462942479011391596470532619604307617465251941734968654798779859269878558486787288928311012327347504745126611982336565780440599071987128919374952969143137209131738732644839526522643756974635446145191546568974360260852090069581731326444673050989585359141443326295100694091226140425533665841819222977276046592364936848675663479824978511850048104337075096943263367010377383705975904780877835682901033773381378680309257910005257857980498551023666138081934818436649598421729555619562528463751899875848774413746972700454858472289956215187143621599679233496423471021202395568546486208189534546301678038485595679209235911834513345360749668435879751874638924959993978681541788127938907646978915998286886430371693964286372258623991163571785854418392918521180722516435558790371854766695552383403695111409376325004127897750200022738106476070216663146412642364300408376602738817800887834362291557956887453692404417310530962272126940586242790878895064425506381785942557790534597186874316383719654295395868635204027884414370912256976585869686561123870655499745515620672253048884789511658244516819363263198507188541934623693509328285472842409783231620949304353680933041662071999125226794877948522379864584302309017394081756788398879536038025664938295494183159593672314522944408973243698745378808501190160481724967397183102153916719821459068474470807148255235552871831222484923021458513586795930415681358092470340716974909242899184778035530013317992322443554208037209109406555049543637085944946896165195492219883101310903764633881812342822335889925425716102049524086779019130732810996408231443938932431402504429361573448718800020979639259980689665598254005049942643063925660851123506836516853560466181912968128618290797736388147915721941705209661072832251920829056306728974604120204035291330072669289487186764847321929818803933890703283589289896051515808620549736949353202556990854208164818390258257290660986605354088727656340211834019321058447382039675842274274985326207629985417278368997494269066574504831323517621286019548255682305142959682356309951645007356670072657938946544519442971844599240096195132413925101867819021688272350695808006303567557567668140168411665101662829783718757869184868669683334113803211797274241865450132425722043935202567872464486792864848576830991005665717037581513093177966630635089577880028326811059746168370606155181095461688317195458782861440418531800872235421704791431701465557881410844786383527853207075262881620892267212896945253193745094813454873278510697228213007151459689296925888140925990570980874189991247077686159395576602411338927363900529340889229878262472471396346565902633224238231796164345175130577089198752599710855667641846165115456509315588976604698198100567690647161047998152338584901961170317759861709877861897870257458829295433544788110838089111216090856061471564187396183070672760090476884090222309979118571697820602943757212210314668463460596658107326901669974706003054931126705372463786922291514500233689236105637761574269995990829907678021986369376420205510793335531121875127142707334530640381916113994767335982167259557585372002288826731219548451206508920221738854152366619870465532324616124654235757563289719036885819184986229869083675735014318473649421125551237847013588326139215463966842737710916473244815771623625370609321717249012222682600957663429216445819725468805785540719828280099780598048507682797808233411377787431222968992364656064069219128217914311453518260277391707401257932172705897859737448808495880442579901723568543871821119012563647433929073236447291151091649671892269953720750720755182274255334735544938043169310781814885383357000916523830812091799454847932592686265787497876964866745319508011802790301101513415430769112343583512994731408077118197590276901763761142647241398567268292329448035584715569827017653300690828859981805361163056293735897696532898760773718332277997560832489422920731081696962107513688428572187050519954496729903981392416488989305706210122186472622646234366858511412597124069599091838423197156382423993851541947381999647183968080590807711357641783910707913741652539190727969894686091019949272093042045654664486541489733964559776389010691552739790448250055172436492230999020344933286227266757015902189892535383729603882540525933601778055786655291661740594700233525944005655563940035390085256044613363444996484908322463176207774265695411902939013971326846160872020861696895013077380232862532019870943684810211213125848103803641854279481822444715565289369197802250967996963907122411059312270912909176789297992317231515327821510947770238161429291831574481134832120522681603198432906578782528074080222971301089137441637388839476968499194379491124905585497371879758396798982986258753503836370605572186518737356550356264075016832759798508321993531816120741206551057148649394369489152979397567183958732028952446415072852301665904541644547484691561595707547057764279231054474798128987378396504285275310708059797304910853085710825635202283709339737271418719677196811494355196339797859793244689841175507686126671099878681399889553712623916987245047696595501643583034219340572369243066925641006412337497027471236947941154407307023590726768474991475622384717705207081823480996443434643151783937973802605816084727167101673493161330302338260604656086424018413174311565045791682070536419868259350577087143995058850891200523028772617395675225454448476593665728533348344744298503684115454100252712167437425216140515055105482156343372336117779016964516778474555497604407749441623660057451808446586782144176850090363477833258898567194486862822017725248485349458001440749765568524121684448553786772893375024769927076946240946082662933651574345177316503175203767704341108042226290686775327413161741722132895003783605154399576569213731705501589124322526272743226708275051764035953609059708594454723775726124951344870820994790397926260200745651884541813146967960064265524682820363912510482467592119829613698030410979449934662929480118178488385388219702819880295034723387991614485595485038581568153654911256462844849047603290641879395243191440139655498142537139302403533217067111903882590988871133602348829443065720723284716112442473852222875095102750400184770647188700557129778452628130285116844764762208453962869271817317793230601575769791575075912405107181286734664835399380383146487183842552275930546422756897839163543051408295346743485809711456728418206464780667622026202060611197676039508694219088285365601427771064656455839757231840443495378948714252590341248719384220941891330782942606160011820304682476762451441177082203919388692311813815626115356566067577586457950942237648568836108035932582645446624812620625049785450284797634448231347136460022298403219473429002066583375043343443361177993691424251866481548712469800709028154630173584844774508657180778364725964971294688474403793471738944184766288237221436996474628705899420860507809568222066297250268942168489823886166165722619707996501024695886373526045773455497683604131536540385972788211617805463780354609463740611205753060003992384166535408374255587317247535805387399499635869471104281555603826844452104988800701269155428110327669765506458537709124579592801974727044728445879844889319023965592176221772277270790668573253163695621234854048084114724553749030548879155914896930468307093422491060769661152828252224491116932723920070066667171320658916498140310640787133926300053333255282500398356560064864283623312142040772379681731891503190980852960553347669869505881873555100434766868586728577331957226163417128081994699520877484037701093803410437104839580051791388950677720184248185499719022715957658983182712336491881672501851132044494430366870714271735768144424995959447297818325578552792846896257866902244393940889576070381358832205837151185845196945827216809325610301700947038851079834743091929172916985498443424710506840021790345442440854425390781728130728964003540446522170236408109258598112823855345159809442997879853644851403899649213720729095899165512962171141103988867512423538100617366804414983062095434925299163817626452998200337089788117252453596259733108211475549909969827507932497397836341603448225794821960151022919655393037450463331428178713253585658090725160906287426020643004010104381712177800674329513235776807741763192189521183131324397864148504498161899798882473614428942959044696517371620794508349374097949168115088367056296355011779825386846193203755150046828701556572453245862748998674264569312813037050951230961796673082439768550844528289649887462524883422954166406575649964967213568048394011098449934802802665212404928152534289643321429250210354055337588792199084471703524983999152951423556085368817029207840607683013901709506397295218232785490990606274449349957209432388232339930297081883840388969550001941089364991606440076654929737306632145691341621636012752793170156253567470198694402184652021199302032607781042670113083590943006047434482506398037401012884991457361884757136291559851668000901860567046000980699174965702117277583632186405894674569195498708335298717112939135737615273217353989566220240198828590986002820665863628559347143315706638498013640943747874248727410209922767247509393980101492966128076517166950417317311512827192758403772610989659752446995086012579880717904915877296701130051175465267487599254637568091879617171082126417359375026479607485909810764915152516332783884762743932847290062445705879310568489694849831520378442390873358321246085874262211999168084823296711924229730336176231707305540907741053961268477617619491822123837615801642455548884098572080954971395678898108589791053517468115515487371265125761393174057914708864769519684143198482556136507105908535552262990655893577410241265699397249630327521333203139236054459678607123634908380334511652050533395944716467488782879168752000919502462269508086423207148157937930568729506223563999070843816389759574504358565282496795424791157549970986006057858110504846836837426723268171862973747459821884874364657594282856578105909622361934906907719082591551055915378081291377062919206713680324994907261749964177977397944029801465468122991775505833005890506907529460993165628117404401377980654542419832180547574942183576006736760998739332084024402489555841421198153323529628750674595415707147581876863627582152568959159610288135271265543494697727023281656518019915586235473926287996300438929972314023154282233236321180731162108541541540886362378332573302584569426490117458227626745708383406067997143837576310197481509023566659016819337357475607703498336375468018643623461665890682529012175332346225470533304064124561996475841413596164213596123949776117058969453016503558604623734247011106502030159656781764516633719371221725943819877541396803101124247230494942445561788277154625062164965304119082506038988506848511534582287854134686214426667379595180817020546459838827144211081170503245086584256356259576672826978327770583294186139624704734086485887262961724463685404245588184777751819392981493366583954730878576383091872659930770970959699714585162895327026739976854698753382896632075143998297093477566359645643400937134456742164584107532663446440929297679438977226095333401012188416843791896408525115735528296730119677358643349697798639184536199070352801603891961780228064249202276072749302518535232769184320705484825104679543776687543382669418139557013319377556460157482002124213118883715858610514148053072702348763419044874100763544395949871240614479270211422225025997152484255218882325741500954919166377533124028487619378515352818276484733145681256343457401785078339917686251849948990411311743870375127297126349774259896323014086704901855150201785040757477984823037706237379750403725324211135064889063984376896182543208642251970518648442272326345305799179631284877690035738845942252884324191509484678301627192109439318295131427445480150379880752763159759797596562588510012432514090171126365300763704561254326591163155795982105145092324590451511355753929507746494584283024889918900664979038385412352594693002638641305385470201479016150207001627354137731723195830979136065747870203582500258555067997184747177788148754711746863930198389459839265942419495764040531260231305798245784182475762642835303822151774768924562514402398321118671998901294967283173982766456752198584968616538385706728495800889443328237903609319643091351958267763199294525669788420730628007243577268080152905284797196559462435028598303972615588039463374522424913249351172566125861700220095256726597612004607891511721076586230641569318821187280437348493167472405062965101804732568302135017957899913214745994954998264798672084466429450693661646319068112949423189998529221002000256051013777347555680704647158178028403939073110558697636126578849461574619094206354899851119191777649848396102116221448156921364799481365965375386594818637054278311749361268363677221828968257532791044111383793521497924120017071406074750416425416762633698362576638876202537420521039217766741815003620134617749032844639051138299331849616163949097150083079752466687787896899177395285732117008680994294407256813094813820815763033778688426504858456521394041999322184311675099785813994664975856567063927110045942056762643074917656044872290998312540163842077878980396021776739670665170322994855581371136746753466686943835662340416099716924114218070684450687867288650708259328191043637361168995190877216573905696463005497597068216811187890712882496323315831834088037658727279806931527207641720818429844558731548297342609188028021243804512771387436103278629073714924279026237915833199199433226789057470194621993436071729419395311968142580830023755240898601196035080549690608091227633045480876016800637689583242108230683995195961737738452504503637193303410449325289210877900498385158754207694183001309605446725797413745147396993219341604689856157554192074604555545503811930615246458352862673357167319745458567556645379368816369178604736394916723945320959749480237694857134830643247700968945619665429779784195495909910601177928738861275670866267685092483199211658512775495486425362156535008592017191276041512659706157516418361799949131343477063343376192084736312846614257008037363592259778718787514107873142824172529454018538519238836202039499590886832661640961596173881112555121957531828516218335801782091919138018038150928610941516062276795315554947137935284743932339671820144586442837578974872287081902036435262499749305218218697289642223329582036421072386921159398911890527444589371306026654224048210079284558130654774852807244540472010612888959577328151292779368955267055477816881646543172492327133782332062078951235284712531521452772398079136301568293214783870704188881321581977673074055803403353818284233998578852463293121080266816093584053961274114469413863159977296624928554223237967373118909678614167665711645958661181942340802554498582244438561207177674001109320757457045849332829403845772497280116911020130371377968205748462092845247379010351989808801935002438406291986807141371389872729807450077729447811499404934316130461325450086949794919254414296591366287509292331302199076242016646846581378919725508843270755468423259341548674366803169682152156381219710846877244677190692916491501292434804239896535860268103343886778579473522373754854607064925279879719578628903725783438896401198101127707983983322077818597284747206897650356068411881868971805944193616478009451034978928333655508322675286098475266706423656094317754650574002446784844575542909122455746519004301452988463914697154738937550223611294668713122894161830531102448072093018856007360482175021905578134618436299772153540587166054970258483380987880160943817068695977182524740988800558953644734615724012226411483613140205550831358323305634931863582311556154071655986307764646419806862677473291703070510461278812734821974256403012769902387093314745403989134954317879942564034580692643353909427015835672177605461646152381899734165091327164802731348157460973398398144941946649665875142508694117846146077813319566596649728362957213308862878206271743985339603129817949814966119068986490673898139548808606340984495839482843372823895234088915067561511182835641398714438857314570676073994207589088313633792481194047250850990171357872390714035223562735199377097048528712283916321788517815326175555350594812987904492801858251526584587420798864167120434937237199857379789337225288757757992464063949383317136341334986603475017205458874333667073335142626292554824924921866894708705485417476175435167224038885210547192512760423193938059821525232772092526446807613756758943070425631143810964828917781633782877189300103618964637801650217365917469171283847349246358552621572358550267535506009203315118046613721941216105922327556741829937453153880374966169453598093567020912116229398316593205559311174303932633698418488666115625601657048640289339898512312099610254514118296366015206048188268936159183481875734591588631493280022705095129520344221579941338822526366640151310005447510276415858302833862170331347612897296169699691363650150406014251925166205224449568701790641937170235497096447654621247696544451614101516817153423095095471001599946456055047973779221796785454962630362189118821570494030405514208004498532477141064809000702351588480278760842169960750963690528099029508840967457972770098190916560414478690425713064552523600074375556926047831911110530040831637613183619513372257199212322479131032109874435212744294948558759219492336171517500241681270004596034015760214750701898910072624290862366746087929753139639296394292889492992048190038171370667102218586797283574405247961623095833550980578736655760832268649801640834460274974816076304477904262943074687745236186825307145475030392374860777267390111094177361756993834966279647597039315427438341010432998199410571446247750813839002326897349546326728529237239329016575948409274983281427908251895601924284277168629315639845878668157720187920292699474129495308893690036988916932134935331780951399118814209904000400423220750301718259174421507561740157503631577162592497061957697231880916300447993873306514959694235933670872831593894288535039840380415374248673383593718665585117272235835320286753450653841502093994143719981544990837784024370641791542664784741150232627950427241121219866413013211424349225061269357876766518423469274576329559113132088158458748403170060069638747053857629653827156663367498936008881745873907197966698855136095301951720306713774369289229592772410920372832994590952862374434328899608992877046789261121807561808332895836016859101984817084693835738669717385677597278739094862347538837651307647281455695775865195365391264202823314835167284692403453484423320740127207982065774844842383307004304738120889014011071246589176079938211404044850770091323711694247929660762527480069458554767470910311095995014521969073536790129317740653334271597464676269784306288576303958014908219699077557533908394724699466124446667158634616287913168812550715147450310683147117913813916504444931674491038160339825092782407907586385755053652564084131876157424623536860001050276624972518544063069156896440088414225668086188714311387330730097377203803033824676113902283958656144854643970713699362500423618576378244190085215116706597325293545298169215230232168893777029241507309856644436111078998561725487246180515972392296824647456549285588663501782471902412153921099151254600487381742728643316444463203999952394580461433370105144163358806736784271678460141340363776076952979117351207179657946297731044413888584610471189706939786108946322818624788827348809321832003366394713115459466183158329707523203138932934734641559980588041753807003141524359251278879104389817044634493025982594942284872139220515129864125376978134958711128655418467623477985149858524468790558700885066984653955064695008376358409502623309981452995370859159753168282165890504114251204019012157797607099930931379267254994673946420282678425349540593291066005172504995307145016365081717505552242055127706578352202449745032296437002784877560451052527242655169336879709659696193077903667554096867812950663711653721271816336638639214628492283308868939037964656680453668148937082285888065957388478224198327059915770966628049321514709302260091564143953560019082854004399909379613895132372066213460197328299264658887557135403136797277417546221848123089401042327251205278657136015967150535565796499527717576675139350878449792632855032161274239957196261445621504298923258264403015486955116937298473874708629380858341939684002083913987898701183198425293182925907241839241563177581260359307984772441284176365008963155608460881230879494058881399943598794282610378178261100596615033327199032738334971448560906316993331032481999919721271077411500505361937874437745109399808766935006587601373455213866889683231516453630324351568256437336519478736538596261578380822880579488202472913618457208786403781678171753303039197266862043339494797698010116439222763001839646693278800570769247509449946161954830021080718772073464471012427301313218958691681341977065661582482459085733454627235561938752747606677683477507818464427996825711771675456892390992723100994319156948354284289369180916445244452894501849032288198272290293851525780208511974948186876635535547690261034917538211913143206930094627297527151959473337651733616017710823642712552879824763136325252137915169021157546988548089175489020587367825658397303115496967611043028726385757387260466974894172480718803598334936391128783218348506166493690719552333340718380637611063724945082586794152045273073023096600368802608890420461766007416559502899855287017679550411747914634241453024612180091316908464781163772004927748513705424536859793833155569733886726827498747341028532733464007888730591570323092149985249915588503753426525562132219856514414135709754939861162464171475708242451962576295126234794371906496793616063023731966842689100380367450942811696694942995156938972415534257131037649895473671243443631073312110845066443830258964935009209047362209906959434064793688154943446648048193817719676957791931192915234216191161340603557439175126400116011751394992968694633465466433556664313586224717063405346457800073768830007830576255071444435758380852972643075667838282429425462615977068736139169263089371062686633457487852966401406752460872004651003592014233185587297090189379058051468131746775312892941982070891558204258979722756720201324933775361127134919288048621203540311717539773887990849775414704661354602087210081791783137480961664552663315430747987596007490439193115334439533864269483755770479848455600259446373324279391153002228656855090971031684671836070942898242164709325403447205153652781621491983275361011153492603030947521750314533098736759532887233020848215839048959830933435091901767684599987519075236452678600788665158054151998753951046561434630523051122742471328034594683745597455983312990008092543868029687475489069938691364711935977660612381122164790827246930731156435155337452581324660937489127999344561961778523581326025100763822196755655621051987845782511534571847525704026643938891540353742922090138932048460800639365191316641971865836475712363361921682751987127802997541103158389490989801107898516744709899352286519080439372404255536643222564800606074393857485536523189132145988512359695899325803095067512315590153129801167957181008102542990486599394875560511901482480212908785034546988959886365206416429460470310840003396849348749538730228429419358263633892774182406018212663951965148490749456508852856931008501219420347851144965291008649004028487608291229946434887443678087090401994172381951990429011549159279816006931898051373824798787985432977423407676637905224949201363965720148256946331738584800294783867484031929642904166719537554605731866081572920872453284424639895855980572869486987824773522103558541433963228974141561533661216591874686930951577167225301345773041293938560495123232718985032252227599201779538111469578849374635719049710095385803826869068781221095264613250995292315907861031045706496337609305424191110501247598385115131408076499608079942355874548313533518462729418698284088778019606588058832338879095248585263008503391035720979917918745457294163517215099120138817226736794465088526732282976782135990487681954253827648531258258935365212226773197204500656840856698430043487952374096245095286856515589060371500688526998444361357378965540706399804380546352671801051009293432118784844097394533766209188982246457132600825396800730124028826277603596304904223350602792242590659004562930259327333661181351659221434575844497416695461046456656994510093660371869154595079682910287272243333890778176354557835035934066757523864714971476422285273541457748068868654482220976762895077420177450984765212676256645725227100343250215750992605813895792270717347569089302439457529244339089560961795890040295403158912991772000292325266087533918676429477679069383620056965262034435698071282319667424401548137826595756230407828600134845501218760718645490786236417938953821091403271716308686537340048747999928504306590259893458114170714773033758195742838595433086921636789708957032378111928383069306770410070954770186631991554663421437674148413718642245487753503210197075271062980666746275172216692344294017411746991920977287976379225153759762114370872332935134926178176320579816874353646954346623832843513993885506020619422445371118658627368590351799842454939439183955893015654478138812283637583244857395382863495770631868882009868055737913641896141823346585596990410247019093369070791086056510968113264890101086125651032774354874612259961116471795253618799721984465717374713128665420550119369690457958408868189451434126396485076616748944606304394491753978201884198546580765008907394282099130228807431389750891390290724852529460845614132005448773928105656966611468795948993791296014356873889615820992465198127246707963817837845560421508239270796083438281535995219481662478210618305189536064597673958442880302701953274657090751742235658556869888190708384883691926561572284089949688566475476335746569014880521044797246386609051686486094082807639264157418980249069111091059895420465407705886793801069477038765715335436394524134397741598029693574671158137779973337311113161008718602888176364042286088458761171484145356211038791853768270111231359603552231312846376952076769815194352771198077888706603305146195647115615394030041820094976463278414157968613561046766500827573358231724723467958467865884763593834167688143089352328473746949034234218097891371036640306474201890520427666728034087329464384271002730389060937574165379463219565625760759923900773851182438200312848586976721126221666721131970780537560661656634091680786888840584277022945565542803017550740327512279246705636273262667209765662776124466187451270529075567130775951950489551793849868389697368118752440828154319052248427179321200525227739570126706556591084581070105046817930490855138109307891965544135473413214892799141031801532009995739192464306884293753998553285992458787775097159457781420715781377031442663809526191836936103687261717637052292400943510190724367439624026243190910802767653280653749195584240965555438765820631713423254916102006999294306846996260103348853337757715297615088024955970818207071487703749544203275293777453220387920412988123259880143446254326939256675720684894302263221871202276932593998413326615696062465977400401618459988812568401211081455915726285438265238513249272070072627435264729882745781851272413074389975727540389393669551004899505493179619280726315838354117418567553653466697503363669209263577563927529535450263307580656233246333137258202941363312506706072738166686982649856871584110660431523053371523696567077816096032884782813865711325899053627426533655000932230022541574375573572952866104047377342874226692040229264554306267745347124363254706584327225804749673871400864789365799128525895990986433129502027589714800450935040957802550688988003550647914836095310639301653159160454627874864961532619910611495666913071050812741014952312278009616333512757629964237957985045383094946116350984761626374924577342789546994988754296304342225584820479414665747273126301080823463625781817992754867444410933248175166242009898254636846818315373568804513197576973266190178096682723240190146899161321736664007441458979921515598267236507672731322227920712142210372054892440534789373527510795209589355580512169911349387997647324021080035285367928053712311388324597240450849727112879334276215597141214645127737149753187139556589688343351422896472098495768375441868317254159394391977216296201597534677067033352026158829988382523884088186467950094969066779931497769410829067201634172441788093709324758409203144013796233011156299228801967501448569735407731022927410438245412252281482885244399191250244081302506794480815684529994572053746609859472672089075384964330977634819189333145597168674102560649527662327440540235393672615701394076931860153005738763113030529133594197146828498736835905547922762419149301303146252693655205186876967272462907080511176141103072972219219446763736378734138092454589975529056598228915946712996121851761567839754711291305415791699649114975504190173403983686744216958669346826253506491528355535165284171450603742958337201694043983398116121952481705009891157567932545482822504527044505653488280331242041727387500964935604068194524671925035099865745145741503594466903402404815783842823551780604796968347645485559819580098052558858199618318229575970200611670440525205963951201838537638703527441545302331494630760102014322926002070079762156756101170038739722192165549769888977281645558189341287179580999376136118920372486781258019469681418267069850496109564937258622530877289017183725098795081924082663301078975346648950279595123539652513623657653971822197048962192301976502398501269489383360138743534575435018616111426715764641231746582783617542051112149214851323639817362603414080777816332271050808512161091290025472200153802745083211653391715420544190674573015268106585140882920118303165660749115838215582310158415581662560017047651257294054525875665328077670716047403302054006527011030919587906163443376872395297285048648133082359426811166483635854432992109943257238028268229758703227871469569396701814943224733013193415041714629721525665067392683436088331392273639558782345712177085256298593861715904393413087651389359626859495450468819457643743576379918650275195584645899700828782937910561911311728808259367805093069233325097970416335080751990616820662324263621540012722164208377236814684750228523333803287827113923085952588258303261422794725367012633403682898375660031972891088749554114382070293923503991071854638328963312334398476007446684189318589528080228697479165190539824786432679735088370759398079757641054734082385512974249267820724420538703026857921701677604599982376282759882515406196337625764647357260270631866263168164684919861437012903158261725675020409653778785168538141344778485525328158465612642847628355191093738379877898025274482894994258521993686397462416259117501972332668867535601420586289807237385829158832030457785936527431874343183330754058770171251012331330020031472495337647292244790561195107990494916842825094392146962592825504888347551896517958130932762143469713492349517773846292467497423356162826745873644621712997454163233861175631049767771838411639985124118747351134324861268787560651504219461007596132545065176381386587972739214479761952343343449174545852589133975213201623421610740189989566068493218789939469586859382217920238047905425222069562418032834635332484880684689128853781410071124998431083523724078697071641398855406358085758380284149514710713127237794676857703711517940750694304331631134866602410675275113044579075794576885825099933026002873664172707151529506811178579133032296757853617286252115815195787936354319575828755809276033461669387092936649649613344788991080491543401489765553009961910620760275749705204895378547462854411691241353714974285677872738493051219007293540329705407995690665228306601675228715069940821836684256200145559041407580884843337537615886846787617834192787245813654583890170045555628719654640103211592600711509783344752502361363754662317334579247542179723144829363907186946982663394971934501625326025594444037504190285386157739480366759571309473929200596142805010946292905019552067680759545878881410581376491585247545689713603786328086821541256472480358808646271360084049570505467660892584708041999548601728546434922218650618878709470805789774520628368748744409554943258214778721327179717351974842196646447525572293300034296778827703432525701991438974569641442235664231392814085977047155925229476840280227359268040791097830484505443572969387118634793456273266716721307217003499679320647173827937584410664503164623422893150321678700126181207381064722903918168841591584046161871503033218166319585169410756576955333187869573428157196528673899921260850684492910305522588012421533329170884254212784531910517656520838498886284923940618868166012402384803128355158444507818627327432761430447319126415062088000165702782303501275954191822780199158735929221200179185933168323288570572365444551546578525639484623510227972189022271059220048312550316998540564325240189331399650399078957921279876719070812876186110036163572857055407148020069461753682394231573130393674528373347056753033013693900601472394291077222279136071181186097235552850185417676784431363422946100915986681041376224627790639950446522541169568886617431351853862765091138185449779630593924423778141984444006014041657112270318801684122657959614006109682706530524852160590044280878476919417115376716431995525409463549370766108010688162458399728997783676444278941053410718212002162500967402343616166174505723219436791312461631879040790641867203779994593377622901667762168506838940304659594673942919505530684327584311646198456269524233807548872264287438989705341901445402475401769016597057307918586493127716756355012824350614391333877539066734192809720689077014109316635398202117444200849283032433963770281989890531813443241870907775561138365934210086249406530941967974987347695954064715342539421997304463488151992630078994567869776295946531636171041211048714779600389416183970150246985564237896525610675097355040127376485141851876870313831613703238142064207808007522833234187082703017352263968305933705232044043910727799537920731385776742973100778496580355679847636797292733189530584389818915148968453882318314487770972850668347509732215566743447662699676232885928855311214253425287146748774475164661221859747955687008851522914454758123244003732796509541134934437300478844713532464806433905851960759919709032081404319845622915783190987404836763115486957502290773341240748885395880938591484109706581888275977935199730292214088856649134752906471367227177000860016884848402862932599083241810003641464385787638500828005464385899284719686630809311071933580652929427967225306327580601514943298621057920712529652801531732175899040549979151706964905805029616366110562031744227865132786269636681547210599248184488161256537658516306672736629033717884594272649289766750845571548289481765236692493850556057271628579339687394406459121030334927044241888350176319838572956537406493580271076795650409714497585281442089156147429726660521252913828422723172578238094720793328595454185585723861003424424289404825494888757784130404623071610722988889468988670558078894153668683931602729468540602720539452111010425715453088413019740541160603326991074818677723001463636115360784064191653149147117520831957583067547123587379259938024154486023154056425421732101802845840231372384218463200267534234765952818043308287253961169388936842150594820681955927704918037067668938123593122742824630187659381925905917579836645162945521371780727398859440964531854096643273823917555417561703083414739144313868647810492894968357632706368200147703367208026073675199735941609467797799216169533121711290528542031703076396414394473455664809437055330596706633572283219619997592329226427483128136291866316816957632870735816995347600481589707163918525829314735140811534289581857422743872135331870557029140381514497826429045638259320728291626734489894044406180074411337737807475810470859442079101486040856182339281345691940906123740876518251915793416168156904052612786142157420633325870326086211972927340463495867939078822236127564028494478765687898544381512166255770389449240067560669060351394869573937498620419069628911822729310763727862944881125387802276594663283176997600769368926038934478852588389302937947856315793655460375249524704171292951989927461053274065797247711719549898860504169219749782605669967996810672033375914309317512051162280665952933680994605091640394805302037944398812467792910908160497626829912891310038750291378196629986398368682438043876596047935032915564557331574501213043846713099603005978250156833302341142172478104942002607621164236460301091817180759544421247616030061681361467897450036367182958305592572671056316039925853809665533517807919527587511196919341800949815181762881921842072184428022163365215433376104813352261871285689014829247231124859309694654596529189044425206548135700773192715420180523254715941397904779524563111249829731280506484905825725176877468326277401473886912959628809236432282577826390982695187442685820692656243028928871379050819746615127621063727525659564386509077016021282879576993165224701024039542486262107542358963152017298512239899335568987528552385958008508448875947773094915210576120324377282672032253050461595372663778414468359901553194804647648840615331816207447858387625170535042219937717610579617054549363603356974267765583735899924644023759152342513162115122649199010804570015917224061817703674918989226298607922111677581548980189443040553125524359487879819060497422178078227948656740497722600893676389712025697456325989231588685988350566007753903807671533509713477599288692577832121656876370593719879914190843654760775811764366116099835015899600872922732678026224797469492987712190212849289619555061717086076838890679856024103114694451723924005962992358190621875316202564497135488735028963767213134571886350505490482816398007327601080105893577884523262037637027067336367345774217784691039888617457007787091636796050665495624533260897945738393139835940183487955018425463190751528878624716329965750143363190510184976934594087101588901939729942242543315876594549710839158629064245796643859444379888289187855133239999352802063499622829244712056433866950209598907548905965222069386834490730913294851527072881411508526562274179024920502841303188379633435149200356215688805230001312144397436071889848158702164606855903924712155455188600162413864378820015204805739964173264132948767875774583372156702011234721778039512362828805893046828699636955690131871315075904535817884373186761311683036186447486029898064254846811278224290582320146238480928489514014583484190182992641835561197596928165387411860691865790123328471162923732304771997414203643971792428967669268552556214810480471965505352947841510760179426091016556986892871812756389108971137556507732046734257227192209545200670388575580160303753322669791105501128541817071937358444212416948023869105675948218929168670263782103868672662605765008171393508011987949547092325426016799774556765266907597692743768092683623016648421829333135401820122228976679356640905467154213269052509835227013080977756169754010090256660902889386035074577695243871376038919251626397269712678872980611234976955804637328597443256928535944445681664875081865188709109391439767283916291605694697125344032357018217387437834615380226911421176933896398653887656356474432858849462608048112109904815961715174816373646893768181962157922119776235959405447128218566921543260008482685414437570933062100194791851540678260468550080388999151469439392362526716909235674078322820430879383776733063212980678693783832514569740743641203877160713217990282056741197851041999186415943493422614181280667207540772550689540896655798238045615621953894243659691343566290064679369631790638088729015587545313474284914279991067232298686127987609223954284575009216641854396014352168612036511378148406028858386594795501543492654646769503025439793148289193622742944816706203234467643458818876185897228749186838538928267401840230421113948497751764369705110374412094327909999893662022899727108873257476814487433684183144417194756534799372325743117452415625346200277953355285793994541858474160681345587269667598044754593719176882314583782009602293162539186811320093689573218730926406590432389235552156937078774901207211049540141035512785232237946313858149695032119542199501227370818712240540320850465340924641155619257732054893489540858467259760387526368372262610465129384768735378257204218961254545162743005723416787411666687078472204787252831348402768966113323001229713030204370631995463993976788115431999102032525369644373315024482136469598912534588919608238421026867417921161333195125403460194807491895141753527859401424615888336983559088370931012829473288448490682201342434473886753989883776576230639377878838592812904585860402020048067013725418861477140701879952452446117244023574240744098845424349085656722060588748211354334830950817844851327093991580576358957954714542537870072848491385033165368956236818098878216712344674032876023310021770371295897227788646965760258216199909248038193842886904818598779115610040178292338784717724083593808351757236738058905586929917361540480513382829359922717796523719110823254768500840612012675636644927993396179019016861159138817509290711976564862480897346898677161217599297734370827157812255394504855961984159834198258223572455656169094138167008766222753819865513983502133874586646034521304179772166928319008869420628996907535118069109475696270487288959529357229435197790356588288925499402834322108703688512900024740375095678159766529757977435076147933397731122668805244075441113919971553075666604611254254459772208383924205866900124669123235246515520258495679761428533836470167685048713657177980575078557783188980709086153416180990774042109115897460765256292826560209572175136517588530301678268833358560790815538927522275510396277696687960823559182807666128433260255738207300228508499977496782134490599092191417841389617000510251011707745333650473927006160407654324079704532602223241109923666536811447411324846156670044090298235019861988350623128836498929646296889726849395808304289546872367187197033387946910732504179489867097185836351726510300508319397856684612756384065219592013244076425830969110113802857628921849674115354423764029413628563868450810275347380424137418387975014930399557030299534863783035911017598862946162611190446781313482748111830896415781875959892459941634956809942226505845275581813295770253858556549797397847530481988298648025416697136522467852344973096515458146118504913557204070524129821440315257137838099085983925788024450555588134055620519552487406148341767070506745807953586586129165740597801953417617700727207411653853814353266061299525248044992447837016346156023078012404266586317733742320240010657912037707572854966211836027143130801678666774695584589573016795297198836427008578807466828810601045483943572965050842924375695953483619783121124387321728958991253614447587761735344967509458017092414951716599048501552440883010867525230675888219721010032249147499139653711958232493333208027815766275667954326234655106984553478166606561782129195262518044036940625724919579007333491293222868457037737668766139680657033280841303392636444119374703053989178286855971888536590522075640843920544347966413432204189103095905889377325482322897446133774488342721359744098851203819674281025460152747671592026957374025610857295955188221736467742160455901148617344229712900329739156905109538529232905084785979494051013455297555936995378746831132338524786778781370565822679332384539415537795641672658075439008771933202885366808159428715077808210693284136879403835278886152871220496824911890594745075253474498637856547463174815139120394530847158659511728611841602047580983026019241190182999262695486471782337498650128932972039956408167439775877397394870163178177373529525731715990156940996861072854123713223848762121211806469334064493881358100863120405470989857268988393990335118417340460718900737784475242684826349701656148371246606170931659766116620519808366396004315080728577022093307522883507355787488171851436249710302717639798681286130084342316533983231588782107605742782241537952001680286127404176266637179019022126036728413703581447483902849847566415816335990434669755957706065657338242050352120402462235864354832100467125536174211021133433640329299467133543946399203743555345402799514116469346381654873011635414504989666411212408407482651686274232931677550538037638470681616401863861746421941094945220791961357836927853408752291621100171243591959883751573863304358034140025335221597973034833039861546755224426177729249293221916844274875092554019128468804074099865202386450898256221666154280039371994364592730093418823741628670497165941398721687884103253266941608401167781204891477653479245279668367212771667643835990472163503057778591010205729384653438419179607881930889627799217313814500854881078803262771227811371423005295063621770467299730043656043716631593044012785032536883012096096979449650235299722731307263890640227549713910933633847000813118275906866617287637930181827963078901123927976593482696487946162466359892825493508522572486666825363555190916324430319218892293779139693674260355041012875945494993900527738632731101566178069014664118650269470940215622307524467682234089680176837868270505712651945409372683650053185969880692670970470533342185000145460139549538235064376226263321462646598924713346429267828692072085734263690010510908807214037578149717235507154711928077175542064902178076875378837759523135835257111519523621391868982310636657561092642459578560379706245411228905304695478521110802561997134444502407467615252257145507017091144600367853379555978579868556257656944941468813983052094573996476580327064951213322345388929721135551152960564653228038200056755340054145297977562251154897378148736436597195898829146476421388921613267857583629139439857071324657809317856192473229594882573158716120694646166661994442483659348757742787460701328475944746598406227921507007255564462626210081452116399050461333862887088253430159174341166209001838493787890814676696960359312121733933979314255399061405298420466611320970333984595376895663384178601712057063271325495254932840839114689904502636957045022459807170329835494719214071604974850887999826457543017961576390885984359423928928880607745122707311054203447353341964824526933908332675847848643455719606143386907819138942000667938563864445215092808230283805287563523685113520323943819867513976689684215862267901535495921883365161821879658575818180021895059148401117689871574723648013342763861656286125438944026751261151087078342633993889953976510296402343867360558655701302430855302728305926699667863580085450675477266679762521486698978644787728234077410063765062009598594258900009069856373819896863694943369196586195257797225693589864289642986536778630619325145370777288370314715063037458049102027980840027814479364890268775905568996545245913232130207834185235927516672542453066257739944882289891538813707053676594882364027808102839175544413096254162292082718091051887646405488944245748358678652102737065002487880355248687662583745161022720173996843141812406422720161607055662985622979246464761812043950073381702034006521153571748483598336222605242775129467894980314406579967444692316147800969254233225291533673758158099474703996881164783629578601555778154921200806090334429134115871684997454394244500778990817622762788368311245302331736434214534113523018696465689459813619324262397997021032623375219851392004018908185173823431132804683966897224029044811627717866207653901468107340341043398209175893040396294753944969652917563130843238731462719415294918228826705505972297605596432663234169014608185920107783098521108689354359461216727216927875753108410333332602636678850972866703612917444775282910792083167777395010291718556393947925689733120632314105561371825263979503508370927111449393915778553211657905535284995719202469454431127854173228138540801012759500770981513822380519090589721685135226948077661481748169159610761413326230997829876729613863870415276982457747335060246871360244567349369184018959972283271333533981718620900123505438852757573159494303374781378747806937171651703710322891292989045771952185470282459239385917708722969066294243077267254295756877485030234369333622586468176825596506000255341237159375612250438605951959560010933913229775037884633459382020131868979414935769003683691713634922602153222427502440293439770037368907798924845808995133570594186665286058140202625052710136604540563307580573304354770410048546281135885181355161298571661921831591677744033739867295197009428307515967238005133262541420672823712378304983170884783627962998855775985108184378821648514439628323478236045616723713914672346129675818868532005033913072414769222757062039962787410757992822992141851611921040337619180745394639271301421167306685554525645629856198157398723510644885248902987302579438974672156845979172470785011837077695936803317810943741259682029283331106531030425342218253929419345192194803716659686372273651387459418242366579445851315763886474203788601702137495481779552680049878594251324671206827779355887490705099858560090222730346700521701109873318871177484219257859856631060519920890156380019898011611187910409703732777025635800670550506743069402909766970157635539877429175270604407099811413836318559795589912633076651544501673664238238082374596798441821150914028768581138806507515337853980507604609218876254595580754990023075665707457948623115819636241893530238717419819775885314641250549597701568041035205140896242944248498420114096829165127183413811031515224811327357565917078281422363206211023083017155073567926754116912359114775459474497418316872190198273578507397482232251509869774911976162049272163478510407066189976128233822245535597066812685017522987806224764077595681605171387673338866226332403691296524367634263055211730249399551928834029682804623923018732220770955761157027843651189750436578971582627526520513452177193364279720494463282255742904114953551617772263829606483489686341857000807723645351019969463593052030402735554174545340099925117799145727332927781473846344178103396195844121982467655419189994673587325946776341204063233798627173940533870665286921895068713808188452259897151439813554277831498735956075292689681633426654450296054746603233814848814848011221490574575312168414525138220908749144739098244754145697786677683556250562719769415909821702903227928852782603111145027398800525906804959697282868864203494186605305774181281189606125825982705203510707580952828871039981086173435351821616677134603488424939395322280493513323276671233579674196002605041348453001471084736445381071582395703374943959790524828006015187894027144529951698696525556647422031292345950413559622550901434597819523195658181347950921018489117679380701860479411190932088436602498358845328312079116382229029726932407683555996969049668426017983703787459604220394531804470145208530274142079461402166769816123124805619172313136111089226583508668484079204445053824026537120731591434585877416013983268449074344476415066877908336710478659343937563593821363070198165905806391568061616801215026481649101195258624456375070147827325018327774844824157185039507540810756762399752127310104295551212250352516314465291037634686209693018675778774973883938224970572904761447742109376391512923527645344416965118789683327444535296395275893700006676538398122428501280893475065834238243986509546701033286566850287431242511225625906136916276069209499411199983122485282220705629511607149023109100199276476948922447651882410103623647203807213833988341225430061206612731209740431913827414875114992096568975496879299206960661749705902513296539118104373152647038574119174760518105548256301258927246604412834040557377927366923025979595729897071405784418203382414462829048203076647053328802152818950549132615623059005186545644068196938074470251883406636784999152940351155488674819406684018872460286383294157290595066299954089723142224152938595750655195510632715584207207315688994347328481153365305505628969147663125280970477715573814591701891781937269395437859078981679714465783762165627932214978572556860596270241775384960157269901856634660198072650436763847758383258613170676367307500906219994399763665766224435638783453542520894600785165267807252278742432899272029755716761058543746055086642252477743002070802489303237111449905109016109189145958192947942388459026190325186009763983760598649989558764704190819329485177766896586407420466152245701661231155781657979214708580853503151419707550308693078920503121500619736881663558547267229418698217824560432418695096834283928965480445237262508525573482091828684780699061083295734754420264024349439620378451605733075458639546637786005764179876023360469584471312892570500768003015188070080507790510219012583246181153964100375408719429109199502399271579640139200934398626259623336071020789407983158779649373904363296345492720246238066076624168439786027867549271276277961134856179788661184884358196321113007772964763346386349389695278811588949429704406690437168168215397794186986429214004686030739290586817883778235764887962369508400797049048479076321305281355967538543729066680808129565907040285373792292830342942599793343159512290717837558649314316598990550439623721441842086489776252294234820995033049215159611640519848339313016548213489645465499826930815894653631518192005492283302761248021157756447938250205142953851190454213104663625568010799106638191815418761959915755782436722042431652048058829681860557639094010331540802906459473854725370653513041479456703818791127663275223422076296601737135276251063324270809203494564884769964294420777321931249520333853167669526778531238185629225460678124320950135980534030084499459790777967750559492118386338683324691911794329225549240763269518552347205177643298795761707638620054055989661930334553642377972530821527520873666144740604732125040764656156370875692740347961461838659604048481427946656240151960013004072425337466320453485341168405180203785619994889506555985657086789007785912873504301800111210046198876328406709349695472351446962626620278143486981766744847616711664151835261057857278627478867338801768400111995858290877402025445953682037459569538030456648041258634817887192499846368447896572739408545112293609267183137648826751944388467184521613981766310678151572674062491088296920874626940301196267258719264256990899567880919306035831584363405878501691277932012503863271233872811574004919533229338751832231306163505236774502275088245638711298657758492446174635447301301014502509854765820954598436692111955877900419098988627072247307818841681506175349482392342359527806777086316967036824270848669922684239506561344436567564370048855431580820146029389634187052141846186518925062903442158513899714011152497520974359008596656961300013293167826496550883023450696216574419080037593951265466899301578457931547719513363191501389597602055849448793086206297717172716014178266402724131144056744360505918846480059262640344236343213534143881574377729220757140228939090668809397869996194628272773663089913912033433386921549755441026230491377654806009515212309812350827211693258370397274709458330666051909213188082145877007886519757225665314665438005415575795682072552235477975175204744351411239409741980450222519718953647592903669653099900658754393368973290602678630782393075522751100481705499136182661018523895043898071607612274142662858907110098708687949217731024819442922079616264141720118689510789239744854225272022717875224355401807091766250500559735346155831995898153821726149494324661930619379528580586740924901311181427273680372005426238795133765868420125158300062051434279116855449787921044365151412552548589293682815187880045931149694162688858188591431360489695853512861256066716791408011827325618432888855760929099734274002458587130583313101159550790750954785550218583065819566118115442591013439380438862371706890259520071305687162982240576222983138091890415859542392561869689080760546384826811222382709293090970909414499800639642680625365816543036018086272583683589521618229787823940934751852978694132795697763412244840120375721169002242329012485382110200552585456446795849024381768371642716372196294551107227191669376227668013525851938681628189604768085774484144726055378444798030398167549206890819957707498824618565799689567711896146003213406963169107029144365452111068784654967187078790424653418266039695014974062379398300395908831220410479613752659600672551073405141813109707316283097937738146545196929054557864059339849476943183623780740401012789005243354871755107410028962382019393171638082031386368087423630780753316922147662344991122589389949204057168702810474728259794510733400051718579803723083450398677575523683237695149746256391214755318426909181305439235976046399826327179670679751061358826307712216709510776416857591811778795267633430516487172058288167989680532979708857252238949800286704590016502061080259658502496798103128411054115230244024489250648508316433403809417059696989528821521825346615685575363976243387589254063307400333741387580902590735130005569166490193933559067839008077242927565129786255468981680715742578284843772947733264140876055263049713768214093527162971964352459021379441163920986478828310686881226456996594496127962450489278302155940260642821935718232910506114851331923706836373567596031106116771732551868120177402410692763609414161069285004172496019019550122156169115530152900961364524216649307723257519940256078114141841573078374455019453900585190699875341989682068023830560599143332961801357079766140012027849612457263761599830011993893472090341261472845475680336170360079538179965118986259325790437914759249657275570862614834715152589737438292395009264237321659964927806167533590170467645728549920607765389971822711093353591358512475893625285853336519280049519087240111258752282776248155744143195198142995806119700533187130396936506575637571434192680963252276712253042908132501382273526830054011114962356813045130600844503531683765324789993106962396585912956023733161934299917101501071892308275845944288341842302156169241013782004504324973604018881265590804961289609558308901297266982962330196103712915371054089324237569393861866020217892673742893692683676586273524584938355394895583071735682363787315450404807596977374100546593961125689876026306881042261206150087374926724762019556522613051454642260873376409068919291481294728249720228548709935398648442831868453091975349759378973720872536478887517959292677072885532335484360288291757809860535873142023811982259653334923409760242777413994905029590684684569535926022531079833732082777267520288010797840541714625149503879058410095011493035312141264349592155352154509850413939121209343745964153795743060116785716660604519559595999894185765533587528287475762457756981777292974910264802159028340953099625800673233602504318271178832744568788961209546618871222462387979421388672854331481559588981363912998034923429589195417644764911370626652375749728546000102672563246807364550205978353755435550525467479572811698356146745241852774072858873771620185110899433108097736264794497040456880534109017630233266155153244327073852619410125502383857229680055405654081707104024118415835295801748909384459918743173713956615003558282437678125042630767458247512968374343512406834817664608351767437309678852407763624587537315616510984192636072775869499141926152867499153855693269596028445840453958309132696735157507741988309865966167511563903074381853177023397328926730378743957995303154241500966477646495714920787817302265929761807458039900003988291791386094814313905886400313799546487446905028548900314827165276098030291969474264544098768995719260148119031975852153660930150980991985375937943272169126091794442817882128000616424641762581468196233874827513759128057104758166295553392235733669760439806478299760374877630679429245742650774887853935791035546501683576492253594451433029715436125556355490769423917136588005670444563912920432237816691568362079051096674348451031515193035853631649474207415666301038974159564506979411088823196040424425375347766491339305800044538286778459583055786489178107198063845082016975737556426028787241570411761393712383246826028864996153091783827414483166930519037612849919535128249249900984348340145758580580428239402531659382662085560695316681272177396986119073206590319064843947224177798769606427910571408875273195258620975541255195845968590136733083576668174837079929957706163875419268362467527628250576962232666816252653269381826224155025952345672113276457311545458030878866435647470719745335448528721496870965960616012986709905757336329605048698774790867565352288973039225741984979352940602134740646934708091132881774813847745944207398678092907228205493225845477416846047294430043101650646439015528838530618434805006135741750985768778416231088916021785269579897804174734377622107521231913609229147889423899355941274498927443464230958079930824301843829885051406955774645037669387487213301131194384022155894527535340237186839530980723325416493015234314996214057273252301078432824364128554428039233054843435030339108584368144840431805140101024694906653111215807736425237872205175467457870766377719255799373278995983528865297475583942723385783722412076824708546587243435345110649839133502042900281933243248848119209049623676926030575824577473427782851405911972494896782288304065455018056730607980799258341377964344630521586514542581813941500960802614887846548246048122312483058003213342584632505014620531634217365829909071493775570376437379583664821380122880093048793700089316926099835396395599567213033179279108779064441506333970569685385806180740163935083592808728973569234540958897368248647609423435317221390526986361161958603991637307718395775915708873670752912227404659128936726247413851253757314055121957945376314559899932880664330538394935089706356888966085285892820864627996172816505024569677129097017466573489166396389246366492563674484345035476561643475768946437317959391752976387341463903135885901831396399719787351590856999041123380964109391505519277119943998404628702235211695947824518346817227647227597923237601245782930906149059891500812743287704533301699740634100972718966007793835509671076332514184077557650116855807040805531481213072343712126802274555728850923752572999604694327614105528799791223675495722697023153974658261038894294741760914860852535167736886409130389377726843436506068714279662870295880168900999724209187767747256346042006678795188572675000747893347996211873154582642453767287179047576958267043487848417578705656660985662998001366260022564318664443659200951577308235564083113282363883025055651675338510990738343429011242735315644610185515725366851874201942132201254457098200014087984443539727634088101156647475640530589268258950528653491667711649097303288298108519756235947190644643306690695929299448261772788443071171967230491915896321640543441400267062030367900311551126051054418741658852505389601751866849831093690360076402997358991238850716757923987235360812856733176012493004777298065821969978879820960803736049838911697542275880921975372728305454918458801912259811287512275650063074745415680815910652275059645968655154045375181550855164438059321339609021671665950061477132506932895869681600502027250317653587728202626575663252220698430336654796633463219084347567203187677123269900665751416489615563734914491424579035733801144122329564808132745755002864066382790369366458953394730499429710383131722562778275591879337193886821850107413884293547081799435542911701179112615210360186158386717947197195233116556279941546852734031176288391581362649340136482496797658079146608687717181271207633612934759219313548441849445879432973139845946327401805098990264452045347967029835301912353244802309442444564767701111003813627739772983514639031037560223206761106395906612440321355743168633156289887599616947533417621309599951508094505613214646666789424245611107062747494717325645411302022329963561846689500579870990477062758439604906227994663360915009928341265903443509947235545737895518726622312075467861681722732896914561125194562309315093864899226849820929693801003112028539694038676038605956297027585074596006291949694177772435709180287072996368783310467952366359897171266469226044893551771484032097735554015312828637207921132233498140492841716126746175687320340687650286824236733690570445493267370121458109493812124081817360849183644999109510694051917445725895234587422184791598766931926897697633695283999029558782791998616232505110541210356906270559771096120909828034467029640314925190578314146354198928501900833967905926386204884353250071274644452494425535440461073772813408477430413453694967960348227352295208063635582690295412574669417730253948969261972989982714061709308852796964195883737419001982430571350107681377227460489270284987689920257903666046135502356223426559037897988258643715752582383705863439469856890506762975979610933408764477252278922590646265497725762268985641156916378837321885540274270812002452080514986103965505558804854827797528024204517344505099371740655212235872419455570893544089083979364357800334077788769407990870165165609810539974148535796662715738616865541254295825814254677318299935029175140584088937822950407919504575024280691185904719849044169260276353333064156377500740973225256936277786619795252596393331462610526326905096053382806398257526721640069566950425060004003967444696432271248074113003950665784788188280715433108131850700726674051062110695667634667437427326699750606900800858988451599756169442215077171259847619935880902951112817115073135704255964293173235738719446554340247025789750308988812026613009452745298257603597855566907582269292547480339442062320231031577183895882428822775549943982711632700146951760561753582367995454055474911437043249421177080893940863389869441177412798225157567753140109897328148252995514059326668535183760120703354969884352299294156630992878801475990701643647824907991797142511962794077684922248881554132416746745887070226774416943316525780814414763970274551161119375717690167267769264076745732442140457831995179795560695417803340906477412922824036211026422012551123918269243907810413775167430567646573210702623753388794541568852242167837156472131692830291046910983347930107725413146468118054559740137171798111971679673601799257135379922383175693280903853196899843337244982802296458454780818917762031802056074538538273911100044585641982647511960385773236267273171595575380574894478816756812539987745494868236298528865274398715585064490156346275084442197334537923571637499271268373472009609366340933908520640342485629724149205754296132083951976349128862038540932317827542041749232558144115044856240808736393500762782025666974931709696579037499984909476653033370324496083243185436502338782462599415438347912152848938257793950191539374061383954290269095307250903084040329293628650145307795570886358117680031752673143094408004551474374690743170280088890987526216249492231844446872789425268687513524572569120417456023412175915592347137030445696421705038119041575957962763507514131275459321603643851952360684274643457135267654927778721601001586892954133998199850449616765696797757686844142174672444793757330910894717678111297247812431931019932165702501740286343818622531636100106287508209339586647636723626368112343988765633592976900405899336039661285839716598396777333909193760099889393611637031907951843991989163195564059383777580654289103781130598787379621274558716544829675505766750804917548651961748655712218991682862105181929038047245208699047293904218391625179021032830595934960797942305315422853123109659636383612882915732887425337559078072057547387250083163332237540832522445476084863948770400243436175132256275304796961086368294778202870403359851094479204339070750156170059356354853660868748091750730891447101506960775219054481650145687503751737724786963001983155203168621592030718175514378285043153142972011853923909839751004739508656011750657540155587449587713849990389021836089296853117074819340814636339920088226812758370147279431591504449338732906293744356529394837562387213384977007813478149648682410627137163273632767655710399269110722796573966469496384066472962697443445592706707719761145256600041144217588426716662858622170888011423212866782476268956512457694718115313008824807344512535477934660681289111629112669023436157535777979970773061867662850685021518223639995941066025809205816174858814036517920714697535182669397892522579966115250473154611604289173869875082961854156535939465599470894031850393726116913972647840323475991129901583095664106300324181442012103638565378208380447900703044214524686110405937905254806707032266232775049329506531089059695736841585513533187164733247293917114863734218018310134576458782602831541860670796478653947000919825230298769484284811915046330575286095427809290593786526224168448628915671468967830718695835903292471846034651086135685989409927499319941848452156724034015521779360464220908389883474853224031311422463305808190401544887248441459299164953377853561029727455767750731346114956283171535223635571594297315080768875974377445082980595114519566790645431517481906723907555949032076210569375342738323825140482613520889797212313251247484297631956806222580321099808844406317829501874993232970716829419409713060953415609422431131275388130709156506499705238185309900802550829777275122434944803560387019317697856237913601169344248497166024038865677406163588202202710130464040989869054629912320303080149405813118406672448006792279191245340090404960680648765022196734297521205438896618242474582470112368673923060198379590336826980970509232940940857941381227003379114016580829827912003913910465619256881484537535783536744571996488983516241034300131791230217876487832479161555045787519162496391818334235785705376770274602499382390452475684788245746392554474995051930133753792684312779464607382520101152443188669105270412307968378023008433834161206843121868335105962496436810871439541123037030827478894970626744298088343748361365227311384465445706171906619839925069055102754798369271579671809662838108702097643490074596098800691132588391509847168152554557669996759658119178951143007229405507185068922580097893966887449507958454296635507100876090803168850824299335600412727535761607226380413962110817946141429184611485364567887780255674977392003269398341114718814233607681056299542067361640443194118052618717502889169322257483710555110000545434699074163112915051182458670723632858628411934501015104957327517695786479834793626030134213375141609884647766567225602469806133785341031633290850757645618334310449640104466429085027927749597757724746593683013083812091817536980505871833740898596340625364633771287971979323769028592587222463826121824751141704928906314676510958616142047359526160305767196345571140138217912371733992478975736827072695798838501175723478899246010423337545584774653667765079406214799154440525859608266612545614452314030109818810935800274620416294451453307917071899393564644599590142248527750536957887990249166166769676827146470666972655986790335026138038837878617335142744778350014172400520293327131426979177879938503876309160645540618591013927053898889141152461134193439904142599543761527353631923932388203321539499050199936929738957718783678613118599919837085063601344644934722331327069668543879796052217942550670022050266547126922241780574352512256790783510552938767120056663256775010235507919014545089631955452209997691317402930063274898407691207006833073218361337194475692957805461133697848787294301093404785619983990789490604648088835165958574084992538869125125215400944458337755195584180563902149579170985621816999633120965466897508116729938244139495572140071165602022375201528408743577032248696240945264598029422787383437652504401405753463742311530105810385115097509788818615905765738707853289128873770196018785387493495536638929660869548964323007892506248249488862418572730966657584266403278454662399599155044805110340220465469636020363249609468259752452771738084745950945397974201998822362782000629764860175913679966244444186863892541865485769714295686167616076038692956521901460292924778759966205924755066753521171120182262630724537544669318066491146260969909492284360479041848764768876006118026581637649423115412569454215522060948953879693951659571635890741269534039424451920642943865318085777190305424673452169350481355786072505901878344708921759253274133992459939298328558133351230420608378571623083740951524483765697195202014959892433655168512165656745739764295237483318843732824612538910483595843633039912442091088770436090862757231950605001219578540878034372602041011080545334431016356847199642153911696132332547982586648290999694199505178611561450147213753893928738604081407602740908626296744179351375619301053006901666995619441441754636113394565652569601440331023864167473747541563587148770343098437715854455332831358584894725991936752305602831595324026060249499077449716789849867364690131014686523341075873797087309250611657821992074843611415666082095758389412814302856235326163130710407127860293433436081325582419979477076789560838281443019787592535568143233439459435309021016935014255726972816436809590383648012255079222539278176370878001532892580698847647697438101874552168498425275990580487500717321401999334526669042503208977576610124048273886314809917281291162009139134880335579240355612738856239315562447003594240704346477637040494936793529596688303432238178631413440566496797262119633703350303252772596067656385322067736620657007461595855999068189000523801078128534346009123109252929106380153272617889914007767712864037955987739478032995257506745800131627515071496267047985532709033862340732916278565831210742014256020714680529949736091586356069285089048199594949727819563054123609240955926264808479705042811854826432992797824953472421533922373686072922277497101741811424228121882293280079754548294905013777835040362033989974495362265561141090022272212117015778378561180004169482688745118682927906437541572452299221065882555451024267011979190569524746721334261889498851285498273371590982995015774152192088834140501789112902715165926584732483011282494469999857809851692377407150774783748226731855224224658229105020935256155224592763746749222974536264038138237813580790121058739722475853471832872988480856758202809222457972233489914171262518085935131978816273807212030438973866431267269207219072382075553660046863045262706319598065277057698782081430090830112067032374627589411038463521322764157639222378094623134621556021244930664189468595171973571266527599036080613534161874199660547230660684111139071836861593680085993602086329270047644320805175686958807083500315108890770529547580810533656753735515084898124154265716737116043631969528222435435450563759676621288626256496513509637289586088536541776474408810825142283847422630263261836741354550730119508714810038821605895991777602997497609958365691628742854994586942939337105929019985097761385070915157379054640224587829753520353509479153571112718118916766202431652332697417716040841417237628233892739583887828134562314223941107984856180818079087477237455610651414037481214415710576637542986729996868284534361008256099080444641798146121860732799485825933201308267141997766813402224688148986094960323952983327361891380950053080205725335976707879521506215573634845140299783105457083269373034143190723869311199845163988910953408606166371208803640277683273432702083052641388222842811537499361288423322535123585807082901176437650476897343892661530889228906762350726610632218101340458639215124227261871825614047277212113482783509469661061343699270083166174566019334126257087903545853663451638237778881684489322672293360915886560496026747651937677697008816987631488098628920411483713363623089869464889725406098811787188947106983861766643404161862529713065267872187141705884375239521639134352807206657650790111135416937460315200718748623283205976112567533665618033909026035743582584842800882116949834034226195138601257759682433327176896595015178099029901608323838930633299206768613372310331366120701191011108927922281370068166307781898212254980125112869225040087292278214575855839430568443237791991530606120416156086706497585308088692480971143732679274203571932284515360409710990860958446057310532446251250121216478257722836781674191493581981390123826149413893075248870352162426882985442338051225113513317010146966696759683793636939482720045698314374304233925237086738839905301357012155733599303986776607339199243907815084121394477821174066371385853351228512580275034709271960540017675151621352032576077983154185217635533709854096661669164501830035357663329971560597333381151366410303009044058756100514607851210672194966122197892682765978749899992492033820256854654516254741309306547316533208448366280959025968974150102389858216740647913777021335319322553009196543849351859028656142794398858065281652260719518320224225696406841176939114621504588823577168592962256869160299033165410264857499480695802422046186684677369922469040069975024760360073444119198170717384441135462003289814011083766890770727502500789863527041685075524576645431080137036018353398922527679248347361063455833658866862100554616687977279886756980677905931834513129529421031986689119422507129536893927765660855438220038066337084307465040355270134165458973893562720055394337340304370342017864799786623179016215125466958110207994304030805944074746910579993117927991089672218624232751806604329608083893134831757752152113634640202288629561886512254992202699357546464500354061675568811964960719224519549923188515320332924778342263524312867380110714872023098654649157050463121172642520956958148667820068204156810331922785579960305684220079073183176859433001705771267891189412871406481338634539893855694152070086275470340384171401545111930436464124039843380840432716656724685623045824228029173088479921856406632454192810901750682590945367924552743241483849631012794116176984550006258144623546710335540142949197975974962109972376145979678028110221781739961577794720776530067148452576753137071793512797743892609178180041412076021097593496581893065558891305296488063254441225214693739142549008555598784391378949275404643862545086871347685899713215150346256819414935034171216339523967342113726448787565802312475709946635545734184759745454173861234305273364062957942590787866841193106305107073947819313843203210734877465190450804957648661356930816169576319304386903781318719462110887580293699047250677945354123487360392853097283673073652931224853191595247456862242755778432695263386477479671854761235046652734026089930382024213207901895319219170024678581701047240145533307990854505099217676267197872291847545561056445080487497097404984870482274360525174104057423102525341662049162383546118632108097211919898305832999580789930740795682257681655423567513636440199016397855969661042806455124382223102998500925675449940948089256429194170694644863972554729755739904636262782667314154885333091665696800348262021818180298627200473069268847527832792888426059112429596876714561314626279993317928809381131000453856049230075211447204841889982448121530601784313768816959371126448066775322668680639462527616651978790227908086842895180672294148588798672721524868606556537177024178326566355658019067409909929565732112877245084797247352625802379944092291802491376782348752296097301075777910446158650148835023441777753007373593259250585316182003817780123655070548153567046695655823492670210096231724847535412861236638060501258236203591602714752085962859492267134802053189595383782209041060175227227675943862880771754310361275672384040670809810749937898605487174787968486688450192029583603366484087154388942837127084629571266374564539139045308774586825947372736956270845661188850048528815890266731121593014621052193821203757977647643126010351810004686326211208761342866221746145633463056345739098424674943280412722838647524598324650193329640038793170157874094873187631262947462117078628156356540989101769848011063595517577810703220013036598305371738853513225422336117708830697522422031552114476775288990248529299911720040211599842521458118847335534008735513113810786486518751355457379555247314733678677665552302260900559110173872564383642879244683910915363333865546216892035453242192046391705364804848540651705045322747662484865574119672990881298315991175089265948788574778698037446087630237089854167127522612933064752800726215722740158232859512166863827525366736177110726411151244405621776848544810004501317996324373277923502205656575157481249946338341197812160837912989680126074908125282973464265663348941863859580228023505183618952652824521591720360377848810340649631717216673031159996300710310604624981297479198082450726177470597400735886347212465772017809351180352666679349455568158567020767934972290666512021739735216468479345724411153122886200565540511527138183435299326656102197389866300665669678634637779567399812879652729211643587566632043728563790251333429734174758586687011041246627301942621369393690120749155151691181209957100379186587752149373818675898906129182474087230086766871543293117759344013122455888398045533218817866243310615110832295166226771123502373943051170459949342339781826929301615566088734306119750985887521112543089195386720486505151218464433916012906238583502688405225989596771741895989298564453980756134232537804068712774491125539909476020277482134977238438113899656417651022605564337413123112274160513389449711924111828283101995181244266720725876142511555534377924372185201730140305773576147563142404852317249032438678774499263282844659142217839704281627585192763961154688841641359262382105222996919442226880374649534136982416560457893598020988889567051559307662793548654025921453370794241981378602924960434553551428028756445481778910186599166182886800247515582418969814431546422311675435105136350913083568679542404543568462572059931326446033767208286364799709734839267838013360450113883052961375134964037460027716659072365221617968712683114341806641647843486747718144855443711928446975461026674457867806858189144075180681741214285308349131281484187499348477176827620347317918471464068010856555362687042035104275084285945125808106691946411289684676153334861602494090933800418182989094922456060676350582484714007350778067601645584710971462150541119065753729394453724472035320215486278875079172444855408550200603015729468494258367803000587412889407400880975294685662583297291182869833867593553545181519327630839124400952874163213752345540944553011231563889317595085272173934477180366647727940920289780517846812732103776085025098456389978746402447880614025659803924975066668928262752100231401128307971049205257739380956437247571901539634658462685728874504901605733287360229281190826398448554226306585071272607502628078927132949743491864211511893267568371503256734026502287160354558815159225995928659091760955171385677904264740344435066887838620869174755303286870748913393114839104965339400084139805769853279998669548164386847734037213481580319103389618951996078082887751339066500123323861426209474069852127819509182336326318621281048430933729928147952155337473713119166919322757673264708087316373821122921892464947428272324992176463295156931320133785491237859867106743146143157779288740150980356125766099817687882492014137132592439946951969124735246871245500653925427853450822281167256547546639873179518066281096786825989719825896380012572178079244435575357957260040171116312032314747043768527984103984619611850366932889390063268798200528907595965526227944519695742921601209462244063999689588231517107570829785461646820258710743458600132504293145007977436118398951044215003912131508478269634082981616973483986847031695866951339314272850418353997387962841749562256352542880090480297888648602371584886514936991774671988419760218745278586225677149784301590743164300371036050355406880264451984963466248957487616502073592898180288747433671659742040611638138891710786596109338950948496306275643648754995811561583378085927941775698971566494978039948891656487013810105639573082297954355486345238083535946440969672916064299550188544525759040205296390771822382773856684546426615094888423319114447015099471400096937996604162357801886724615553682657514236956146807275289233224146821569911495408774083083070225243107531272590193416900042451236413572204134420218548857842855401030856610588034203223583168645909577682288327998563186306373643958412244450069851803729588768238686907592394728792895112027273613924995949314811801786898544910012219719498623140750484569479356038827400724946610783499819829119692153012142919813189036269330200528809864606418056659642325110341112730681098898039046530813339143813377605742507299066479325360025693607532691554329013019426115036482547851497576503341716594307848027946658598285871299749303224538615664781668435433102155942580847685003397171942101547177796721300501713072428179898814033845026415035139951215248535846777044201263224929633438882286760083424555241648342090498313270148684752616706490096831114765996569848689681986684528022567161542905074173090903293516342131672054702671107674212354529457066165007887279938048627890078283982817013110968777753626252222859523640159210887221204264201361469178821494407994368032465925134003257518461949043968511567878649397415290156347947473522554093453619867680970859804903669772811445662531746148145459398887057838029030131559457464901951039115004182841901428384184576417327512910694421438105172830385225563508379133758904674020217871473041462230864324361129353920602547069051731827780985250281947571730181126189302629176512781684217914689172264773509009779770661788662220273966054266669540105858930905106113225090735583449613588814184440611782212724981906560237506655815465038571196517755380191071434494037810518307052927691608579195454227786041022991274226266267336598341410001418606411737046394115914785907783469241522173284805223723032756006129408004325580416428383469987901280651671635332217803796432160050182705422172857180117597761442388472294822522439490395186340961218105356676647208347149711017283433177519596553001413135371866494237371327586521693615687843740996336401691265602243616791440184937635057263674963550799931978192098060386734541914151594342344504686378212616051244392187551337724342204426365054425194618588837794581581961856810555189647892857845075539909160597711768866335234266750931196905646453791217618192171044458512370780850967913445738528137227466437464795440145983737495733897791761051792238998851680996997603585453744434054974538160760876984529811240623204908251099434312899523290893058030172639057486662060728564280425033303797842571265383619369468900611710356890022485354371990841012282951092121021875655071617737853010595778949605921578465538102008969561707357143055850968181426717241981287536622236679312264567639438490314386198511695502720997419418874967989681291531097999445013447343183270786355964178851601533548326652502696916443374393755295254159671579080580438235145442427215031315779460074579090005553724266373103874731065191310359896230921600184312024361070918530840232545099195288946180077395233614693435651891032509665229303999974715683179557123930120688154585324622329277391474704590127777899483191633498278307050559424456417734808743432471920492901353251120123157363017175593936820323086584515230026360960733684140289753200409231186409453869979767632652800004265212156908576014150594381396964999354639233096428061339315115553677889612280465161047695643768163710081143761423887485838194494801240197468055041230841471710509322340487137016458305838818336208420994931481701473297843747379636778640993980959396775212242568995960314990267940206131958925632955160426202266988931696007621483287371262356529766658498617135322848940459899401014690577227368592515513151644770893668769544605109143742088454106893556097211140693980642031294110376210638189205895283061334724641509122134120334410833526479336038187365979312072426086841693588110678195428308051645933371944614654836984248339818224224394806356434720491499804868977891824468689084505516915413370097545589372525774780531543727793010253079338012384081749342797080546638831127271798349558296762477794279326051022017389702709016219403051933241659406492785556248450749587750418617600240873448165660641167923249678914392275713311479368023943697162418345775912879665976035651401524865292803645109442967913309580304541354790645104233175519485929053137653456354255654497400959090741251194687142486228126365024493012012014177469843216037664424212281975753991513393417384093023418364372883645744419851518398372473489702527971082741442032120478028678367784596100216336666230256526925593870632152971077601406088324955031923131864121516501036242460585749902930662103408319809067607599815387974736254192768469944503341382126196495894069827665759265531734886414665853642109432145138993513018956421980602147695946237562342479563922671028013578007479829595846277393068542153855226868940088262348601300616279537773605641422206178389253851190366630247888301267846130862808908889215562439178869147237795998154276174816896773515024220995585883483602214523083745022909826542745812877745178977826971154847090949724328490689504439875945347314941062561583826999042698144168760371532522776546835717295994712367237483040569268399518291642023507429183266660145069912974486650814618866386249613479817444901152938367607143196463753280858925639543623808617000402258260467740351613203110305751060782777743004158384547133142802922844149024491721332142404255258621937304131698166866923922640140839056983392828802375276543754181364212783339393746881145402793194335925582939601664026601309612468112350945796717306596613963116157810530832992368725903602051939355869620590283992394350003284487534035922628288183368430753073902167037471970347580047992184785875722811596434291054688467224089247752270837405154277745989531702066854564039564939736321926511394564419510180738436496627907880430024426771682692378433444490122817661648042724418990346007885447457554463327365528411355838866088465409188307799047237702443028526612582835382860759504570180631128576194821079753129192857073065083770135354473459291673709058328434597045363349943726095523169188709015253176661415046857131321291700923721130411758222552578194123535702182136275438109557975155752996921091140474436199954376371617543633863817047272171452933317794433346130656706683354007358779887114113459000271227163517050307171217819600470532411428897621001117818151442872481364855718985233296741411141056590689178592224123620657434669613298597824492084621424781171841828724461497469170826173216043759940537549768277481687260410480306577603005567257637713701736866419483097167899511497959834927868154986695955751664627839871689316686304720155503917720086140599699251585446859748276751361708660312299814287209760840245547483193821728983974705321560431523776938781790726015833147205191088135120569095866379462795715822205289742572627639935367956371842107444123173344389079587692266946682568220036811830949449121235060258618238910809245937801512857515518781888871915087729337482683002937569975200685057058620204623926837459997571495119785755087632486875080023177243581243133564648541094278539076214674712218631693394011127613819447917062141922800426903834479662117131063356517036923852952299977740853397897615975585254412672494370836668929584577427672255740587539563227984524255122536388354835902962124164561860084993074245432878919280710892466250718594586421133941673860340162927110776077451555950214021281151012075008005864529434199359046536637814205358163153491699290368142314101514464180595240479507625957002448978236854286562386409737744519432418431114893260389035903660950015734789031847455508801024309970773716077816975638175076846023874649209725164060486011667042021256575222773675605933129197450795638129420208393506392564690094862314024333841856462634782537862185696938393596068455471890867470470469458778270773309473763591002791272107905828867451402641944752854901927114240846191718539648289672802326688855398929896807922038765306934685284254334501848832175907512329446843072595774674858441501813287259409422988965227652639008190494756864717195476168109981969479398641388976556207563879185815311239225775501088636495198072014373150198084512077170940000598314601348354484596442354091334776666253173190115630926922987314557259756823835106336579162845731995542488449049503197490474400766022294357203982738708801502411693162910503491728681005015020540424778751271432629369865814237751966636977163973761993590453880204935977148775115292460379995052251916327502068913416375759378399304063953213286774618758857146984485994991386245580165320069141396112961895719314905691527518530304908037868932409869771763003762964895980538922318276080015042615629894873732025982453725962187702238413064974893414867550461903482427180103858604882835948783413065274239322277516173734174371522618648211147274704142121552581362946710268244660367249581169229166717190424637869294829968298456682809036671220688550804644843673048582756169287136662252670174556658138735999653686183663429112278925793886588993527594122815860835752063605585837596140291029501197760044826575792132193693100494278109683655178184555589227809207655002865337810566132527465479766847048151738834014855747753597596209624168670461030744192228827248907500476076662922577017708475555164006311807129443362442563933349445397939129063397309857217248791420801492765744523929611078396544949747722482490906077564328943743059206348372093953044155854269158960453159446801180827433517974692592237905618512631764245586271361280306879009088709497045280382471820913309955544696147637335159365780937771514587358476638798990780458698621876449300801111145877983998910517897349453246188151032443222632867778557179032063121596488158544934843628014401480421713594939438594054954043127300668398981492920305516632691231814261753282861624492692408636066399633617580989498574743849863294365149818815320981691686527451245860808312739827133057690848616390011262613996459776588635897185331311608232604979716040850750834584606142930844304162762140773832498377563816799322459977292297186700491078303583219384789538950826063268284309128372621727596810128973413733116015649610683962703015556306674047996310633180547266032877258084001535682313724945029025345584489199975895095930862932144469243404028316310201316660922385049579574914179510477381705890135837836614477885126577110061923737733162150114686663530151787959957259939269181343704560641410135062341820194410235464802867807475513234060718488835825416700773394901435369145096008717011985640258809470012229836757450405200026876647878077225437226665212434659386167358718255241438282345295279248657547822529596282399887413023391272996686616834690013582022635742800592642333096732834446848239331264466238420802128681098860892348279567415981542032959914558889869227955809638520751188672947212489176468623078512700288605445350113543134761596499097002610310622245400813044414855916491668743790629246212073795752431752283962821183196692745620467348355428417695864129514375291701266485883656579597392902308497089081046449057011375599663477445889313250241106328769769397592539043720495133644912132981662462329436178565399067154456392519729217387207655937727534723367783763270960583862745125337733857333292300577845977365099582901793564301095992865199110273915323475015121098383086949570665282772275515221436499536145420870910687449286976008275625799021218335546546861727341487924077059484080922481666351145902545012082089460259785089168232665695181919066458689205960938658576302024415051500117812091613870590230854311790700840470180785817233394186619906633522801565773027627923834095257756693650516876191061180050992812913237465253132045049765344025673528798283530700420117017843095439270066526762491787214190220547418616043318572515736571230098018786995074215376580790516465722354558973719390188225909186148724764313036606210227856564152222184099631750376441418779468424489076058687735813314691408521745786238702594170705298674599428867451834978093936422188639055783986664102086415336105618358520904592084120398198777646235950248341278302304472039096592873136196816745380402504135323025566057520454656342092311405796021404999550644322302667346873352029150942479162831021234193584816953192271413407010101954489924392869179744140743739066550093851926306205365646998745421926665632485010447812837981380272855490178059606793695052328083235683214288770491197163184983092214793923050363833601755727662291333310983283969858644134428197035136488376604183610626421398444566767716195806648905935132612216672298965588094342728047546008163541927652357521076795099457500276631684748122751068857759501272256879026238970676089743492080607085134404865915530022119433230025150099147893481597384305319171083577442768346459525596316437255733339997750292628255212606486706418922874443419753242650413271210425981104346689203240148596693039910818845670712875723061122893101260539295158666553941177359493525087257485261682475522315173443170739352123326600080770572952247501866070291047750873199593543000066587557489537378215168948823817905617675601661774194805053318078997769829140516600533971599845018614465668675712000314622433195897315338372165679629593248391853467609059753564116818870945946810579139085132031914835268548124582459233555464031895767249314804686736805050328059517394214756490596059141266104244687463559006959013148534305844123718999576600113628549007705299469893449113947077794207463593829774108360093607108174851151298186018145270149769326177524389727213067006996076621835346678644210129305060842529366983173035933324982466775343638213583570020537432794935413562392475095212158008150819146361987418639178060048637804881175127840642259248157254734034783614426211675458289820289664724478984673721358993362878483773672788534679480176378162261759626692583403207613381874144873040388020845425682567092688950909354429672807578318848302632937076843562081041637153945840747045092915005264419947469223885963936879794715623326623188271668362219838382377092758193714953765882744739682407886882665260383459562472070243190417469085384045867260310341938102724261488936827801385379344576702353904334690853845749275998125261660052406910383974687389460864560453561503084992026829008516474276174832083307045813020681745212951365477384472462525767696104887566515004411196663570406171415230326409025041196972111933447345178594383643536626093571483560878828274061453630241006819577616047024732093523964915380228662484592427750610896907428636509414978957188516198106276777079467677009192991805857196518396634380264035588801962207593262212130718382774723979125874776078386722256397640600904863062325209664582041655337434883091276351950171863443649033159294826733491287923396730063230190339721313889359997371900902033030447903266060763689284320265558808521659917012168413661770174903209542811190944182574922685207870374362672813478285050903904506764574513493247634972443734335090039459002716314810855621938148783767990009572238935695682084030024999008944444384615023026808794707694927360927319501063666413563190018987967184790635107386449309411203788517095721198799522288662077211046301891470839501232460674463937895964255788516816520032855038295933604529802662249596573448324427438821191628228213125242159445948273881848915025297606855337457110940189199776162020383584398807151139508791388285141907806361628673397869613570942289135907085324858719416158921488446583569303168409080928639288078856842419515693990288634843672189681526343200710331647722056783359685135920583452002948952728007050663786970592978256815135728908042239800967927228846549442588292412433968511218963047514866332260518877590918185542737405075921571437116025595869118033458289915129823875316528877896616232202025169942804619906456611641243889733407705397037529564816967415185288326993857540121561898330352411731003285770767386210453099936924669157398557328674806953390053289847718415859710373336674635507096085187065843428541490003155711091514379666227969324836045849277520675846311806648875596372606377310736759284080023712246269718147500075824512664327860417794159873764327281095741748541086161004382539410874533791823863550505495046565661091236019164738468386377428337115879513588841169719141575245137228634034297606296391706494547821854427756320614039933712624386322067833670555282099009879608268775494138506121144481069242183299205070435254996436703184874247282862395565380887685772359792771679285366868234057056060604349832640497249089270116847514599618094504252601638675751253454009311452788713708759395116947001566098832508479128692240552939663639242182249789086215142565558490205352032859839926800264828375568597797375656661967117854281059710283012081906940012728620858307155811727569765200455298840763739702174452556055595903958902338554331284440111106540882061521880695787702149250178733241214089801909895140447111541532718974219644058594259054581728333597248560978962672163093917606336889734158591297880853318565987389347655037749252145553386918852220868731539918472611221141178633503142360127331900526139979492187716016233327189481951720059583669212814062708686720664555009055968049312925550738608859445319480197076796526732471249327710146513174415799021242366931337397899252395384781496837004477844999644055952174955011907418294092300522285877185758648204624938092855990681585716303407100909106633138915845445052353453419703203386360100877385136759404172903450969507650914788295820725276319976681613512987950990307153215252735376033361391923892271268947662124290512272583670202984072739541611478030474647692519928343442591217480926942719524462048186203408840307783827919085313481171223015410056381831175709194219116724574979711982260959449848284371366674544320841765831946196559505011818353087210674062781461427035175243888139588458299592898808468030838153332250176044486276928570897294967127147028944380677872204438477367295078680431115064312428934044300022356490507641396220499561011674154724564762905510627386436998778034423392624818250591739243199581571465586456143192885663263216737519932368146296645364485319538853859505441606423017806012231311144119944486219369112659259750582741284448665837677847201663092268762363531849388591927425997796554060355435458907080588408198543322027131855848043027284625589495794399954918455851175614359726274019031300190118137171314858819708274513791541452023085127450917107418105582436577272778484667855503132930649351971214782279193151923357263385229790039069265820294485014598130787853435416440183651766685279041035171928107678755691003946421418176517701542582809001444600299609372835170037985087181296483644464582382223207760495685609790711206983142331906125456011658271192619439459603333459554474718721410790010941832266495991932897580032586267963480444986617632626937250338521150723366308177518372444988693218234485843623199227816730053592759262821198307609753867543019552696187618713144007951715923024300415698375253006696615771154307139179334842778959057370816032141064535290746045023727350084619975299500257224596753996300662465395143889717042030672110850794010842987893147404695105804413803739201034078830443228578375783465730735757260970150482775060032666200248444036121133823607574487563673641379848389559542037833675559847397829076506289943067763926605961021004177880642679275446463982661054909123387364197541401638268699025345618301309005002229760153204587281356139973930111388275562287459259207085686615931166080203417387104075713136640525174769403888107137010913522242276853059229215736254446667987420464985067024190284169045445893201241770694821740739207751576045589961496289260287419315923447970957282800841722043563913312426657776604287251449679234380320673477640610716173708969418179325383253890370609499255789052424386788390309082607260059054642911863725813839107231563949941024899596124710587851933528094129466007395638795332134046913849542684439995312898853084218394937261673016374565505248804391388655367376783309442206721884424421883493505046187490714871981595815012743499105551091306765285247724710201555981591048898250430688441366603808962282013618719283666950708639555879087392456231261348434291790420540134173393862566675263362993697127507658565591263052227553226513597367755721668797389906344761153362314930663652262521902875463617648562067185995467802356431882474313427179642836895308446363019306333961177341442263132551851654551442131040279125444107343321397587597635894138131942335162887345333602522387578732583623299362531888709747770077508338663100749884674830644744061045430781648724391277719834429273037687509270254100125355788403845949228216981259697314939158194355134056588205673453518769723782442334878467895900386816977337308350769004544