LegionMammal978

Output length, part 3

Dec 21st, 2015
38
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 3676394505538081887842809935158607394909612765439283689613104474201658126775141290362242582128942516161672201028990096171811942748894336915704662864653443031666305484379136020049664956888952425439720062802984000602338090820367501301658468760535206862403791129118080278330603433947675584710850713574898315315766900110523024793432081811610921039672548833080627365105944594957422319372051681798306341676321375174554178176841223519810970179025123572795376346262555014563353372538623459904347355236979137802119991503325010783549775957160630251792456651442088457713656848728538966235812344567255030528806742174329618196417089834240521110212804577196772823855710812466790079116535177878824258153805373262248803703813965288769409705126463651282388385522085321954319859354186567028624135446498504242367124482021064359081353736182665326624731602762004743932586066531585098701059444696358766777085260293605746799017643773930186747414094145923503138896011497459120502286684158850135187190457077746521086612942120427911923915190529094853448008021515576865563799176658046934173724894435836109010972104315645438488082856096773972302440655824227450296617600167420164957288486003876834316819053020245788938880357852931824042056188177135816062185622504223479791885562301156937932273352653171688768389575739721776404418574095138014282533368137007785588832813539020989448209048562891241554458614891068305817880686785069901186991260569502421538876727726622121677356368669241906473089166022319153923431751379417694806071073760086427034738390478271157678382136785700398118729625915159634017847307628289387385786259350430992553751725024759746619546042267861610426300763606935226930816998974190152078616761895738018608320491321453316383238739334086479835446352618192970941804996898864720688391136006433863405736107851001715821899078928599958925892098339974589753962755064643550571228433372841515790608891186142047114381567083640820135691437160731294286486540497747247572949164732726505037330328772698374667881705483168802552143507375093917482697616405224426311337783929132480198202822864164577742759205378315778831081754939666224709617266294504303142760348295830789423900264227327854671033799937543765945868415345294881332463465599238705700969516582475303776848152008938318830538302434576880278279912065785836175804896446460032647972644725258360976553273290794913183279526341700817992218875978557827003110089009890610119987557740453927137018300362090810609933073465367582649100280146230732303098016162852676271869188150760531777770719135092623929367893982958572824685998549211428569208331221232668169767366480382399622533120431700792742580004828383468161092912188876944439437715323169907256982313110162934422730983465733163092504340408432089063223794892715534474855631743142113467084278439108418692333812473447276546894814365020565571958314377341879907488203464528574766254613292590574726475041001278820686698008510656965667007317592072539279559316107550846577317032828223818497707547989268927761272654216979863557293510423500744666860048448811045421029183386976989634133927473880087243001415086166970857246864097007521163605826105064562451727835120372297563358169841701709700060073577135709625474094515257659603527733095210983081364604021932669897843817739268003932172940067768760019436108341850736810041783634135832404427131650765297920091878427223013292717932670165852904155585079758535584848860729900068615983862789611622936377000208450370352208978845577566499754302435371850263788696781733109226013775718915760772074727933103813276759423659843126945211644017007618599288110694800099275663223266285391482254380494990763081529394291429597833709906448834894361558887939273423517509546418541636334574782388888807268007498055129881205894026315668378646347152792774842668421909305352885850250624989285156919057178359965354562999580204451095891729668267992728612325091062478223208576975137777045976141103815397222878502050956942727797603705376055585461376506060554357211595402983292816585353506543586377755144836747611326380542003400443013199735653376420893506150877112416681280191260096520117427463670006907460294040829591032755292068954211468261655906723931153670225969449863890274270099992633111971616144878981402470032208887597685905820067258728538621103439035247149633656879924654161561183579504297620940174184174583307785002469925485831907953225378610910211488538109571118716656147903866517495170653713676734480784548738673858202972599507747037021898023609037570000958684797158477642641889709536800092809893834643533744611855302194248950018847509147976676719889585327573470807349415999469461805829925669929184536289509997797506312123882201789096466897673573494630184542738065374364413734764669420366682569961749356996253950854646124918447732403894741217320529461289666042888136400992128919962141738634472704354678657620017112660232789644396423776454970392901462946496887009475940134583940876963324288099234938685066108444841163314425373377108055995529798965326097116940649974217164528614690116631765763849589171266491132693185467834203426048364415188558518180354967667080840128824717782644813231162252188371272140429675961516771880262330056487573879403720897181530608677638398664384387161373850723607896042268105747155210984102772801309321555540109587357194275023532287888278316317708782856123182486360705011394947667303217344198216403406982594064195229745435475726848898106043228881622581767736488128714117804629941408112318720269218304375907584640208263888430257517302613453283123457728238430056588925535809293783304760721305388703399954551479367718501585477486638399076378635776792938241252243170045319588203710414227520179701033772286099391514479729489900890005170691745057373955729908548143830285187950216375437288208484549607463924715614230324088808202061632449759599817984899101703336306461866733749633850434148427090455586442963945085156752966784789661920668665065757233679846070102551371401860603694537105981998607151895962980593476778166854276572087070215866046822943645823518630774758809609186189065738025962261273373611666872087497630002697660158971473359199123578010888198099749143423071477846443488560428625903995210814574507685814971137185451002402909211091374824130299818969076137439133724338541091434355011163882523914186304176584722330786302256045238685454536450216714732567418695860583113580960113685314064299022627615728915126473321198415200060363287710359430377470427439545979569062512288496840815572449726001138413031800332658258094696750083915141791592048059780865400882230674920615363115439917402047301187524262450270484638438240640078668381566596930940366508823862957144481283271234538960641965469296698716771475574581909397473640043419575780472794772006622226850074339364293952048238736490263197086192374987122371578976281261278881181102447015279583213551733124036863128466271966933746153638172302331396718756923585168155710942547468845001845824929452078080206545034686718304101684746846305950064430935954028583227822559777897422099195443165914462899413997268647343448475480834370188759617011028898523945999029260458759758030762599097481131546660426382587393321732553815405798495034807871556698924985748907484335367185409407024326658759859302282252127457751268331420088112018425196289663784643072854139645443964823737538737508376304044631026982620507555430766829591011162543265073890374184519391625651067461090025170890163283346620072007759503044087270039178586230369274415865349339016939690504026674991342288525963942304944084145309717171938159986064440241140330787123806288376983152867773211313358095752181095864704717090705016295351297534443416270949799048076887424060043609134849655429008758430473999533497348649066946478568923073025281136862549620180751283991253555928147871124772816293536487037403559805248482473077064371552691267724553864445076990191117642466730613398943815535032740136573553240740578521884463547008187083933570772830956101588484325162642371320585165049528695175013427353011098085865860041310623514592501595594994833058046490739603225088718434034750275762552257877842193581834011550094710770020205905069436459694861023659203897980007452913626512656551103806346283043597140339799601866645235674401691093067404007189788160778675048765002308278667843197695332796932751215570568907074764299254284408263997613286642375736254840040511921853547408940024502413112638543174503836922521689435012257052456391291620454543958574653685781000773779112243373766246898055932085007715218365457115749454565452690745838060495050185682874553211451196403294497792548564034606071887239741987544536446117266039874304681592937584123574652693025780435087819808716012125390190161433039084568136742222012084680586871896739275724965475881866243645241564682557309942566602341060309618278974676238201315219414826202528533586737160623632625591786292024926423049239495189125315303021091741295169214982625189186684648374942996393122505899754660037754791877016883131017665976389155755992356932539937988396699472602042462706022121378553032248595308776002196452565380842210805434361143721534529938596517664822537062515943213575412859831778434899794550326761576025336613404357109791553955183625514997212645468647618999632657778509072097310479103860339476422852115707597160583083583807321117814989806874721232998226110745786310314133760304925250380880133775833969340277532550738695186710913206250989809539716663472955268620642815229995509455379798237045626515796527156190762270822053198307347205573987216513850864239283227239379263996794519621277215619664189253965308571634866735640595639935612470286153520483413465636858355871006089676514792607700208081523527257481718042568290548165901729210596395448270963144519237587501054147765332072985694729747935476476147004764027204462391935859076878534570485870554890987914952400420062578926350227640600195928481799278916575203990189732221007010702152540383522861110876294553713947620339306719307824939965107387118718958425129273415615569117899486305577494890018873100937619596021156880390027956397845533383866205595770124657813834916745704993548144855239676469483490287910866010623096272394434599414052432328114516644422322326974323183208196374633320147450215996371548614249466817306352419882657422866507443656794588756352879489695301397792569519459285682752832803964540466376883751763404894930165332652617120070288886332695136623045388980927764858721307617768744141763686238867139657977202354442013122538126660679099227517032827403319618447163231644166426284744662465222237523889840304853453577972498238996247041083456439366444847061958706185284119583171169468235468012532357242876461337012491910900017724290092732433195392225280293050777990381971949349764349659392198174599260666897922528455670730892318325162732711607739031790642415627957501723952114543315001066107849664398648002876218073610291132500003819835049557098842133164144344728161158790260993656783477563496631634026379850447447248294517298554021093276585471735543717072111563398873882807529849935574322623083474855093819621093472898171422971496817809338195362388701687844155911256105706019550152505714472593430349561618749760776856693149015264194678915665652345147725881425136564481905030133648192026807881051205895335626388382587016621400361939140979481332860403529050540480167618854791379749507020677468293115253810494271777181123315841905725820803815214425867653355953779327369788888660146555800614170386296804461489285648347648562706094461925612178001017419671431905564218389918897130855715319175148664804787139922165757085922390149008463119056846800927486753798301915393448499231789580665063980154532380881597456249983643551664762185409313943452932700122563555409321571534097516399213560715851118106758923877146257215815103622911495765503361377143775489888694173453773908579973577368284476245628749869219052849038648347260445007132056721330098486808990223108408539222326211164154661475627652447132973601063756342702284324682260392211272392451795922803373670699628301504879308548317868495291210665638691666688930478926996044869083752055151813642510296762692444314486375076563589586510241064751542983548680897360972186068924772711465578440343486628634045236292877449034849270471224960402453624140261118315367889907988092836803063807840770351193385994644630594117373394193523603394481851643979261014525307136820082640859988182634176602092811905418525025726085583176807669002259124712403021778423951980438008095170795050139218014968112928548725405076614603667588747064758365774987824246299003082728651238454513464640968899941837812356253453432530590488469013453734492071400366040520429106013582684348013715343122438635686771922256812604415212681000235884361453777165176415272568462636747281426982373785508932992966249703020592393416485613845545724362808851907358850914570249954726764635636411947712968833345180961837832952101321999971729770790785904637559674171401748762322974900848194957625609661064344085423251358212133023252039179541360351743534951647464082994709925155502664490671451771883878304986632898763822342473956539810549361311667257516606129185522063756439972128135422459601295339222732096959457630622680382453917376174032001811357277581606067608000341129576385587068812616862772929189117434783431100123938460402167284530355264559073527777771761405413641769999903254199997153955868883453616972531377262011085540306835906476823129316812663408965873676343412473140030392044567670762924924926320484776846148482596113998299224377883268212238394553204445764707710956744743542184885610498944709549976624818796044973290559724528342974113307997511447589103815713333269727612488642090645082378294955520141593594767560365605234085329367205433059601962111525969750428662536231784467023616747960062353931295081270207103934794014287854596947948467207165016418516974171764688958155452013612744201678647036946536892741262977850915588010717259234861271354193300611785572886533374300856093251680388256817648168694089320519113659212196478283894498234011701944049356033875504291160184694815153754175969488446541891614131865208302057404250439691794677594176418147723192216389894428620961728035193498959780616436660821073985067472627114404865290439074956611939166280601109253103198357826834723051052781995779528196865988454636530538897694763940874057343869607974999787084620927054159561082091168139609124058613023651955589683912902694158562997945956441121738256041450937838960264491139182764383474680671196557993583588786531383956088929630739133856518505505486373771330487732830855460752656880800118286255491766296672859366118082591875912245019962042435921549467454225403926588808991204995533177270208935089074145714615874354963055966908464010006180579358554828191954475104801152665135317117021884237965021986879627842510414115164278143835759873062614290537271491996944850369170077156234962122981324283188007696687779494651785309427593690255870245072832568287593226696518938366634268516624741183366381882800048608025295307066406118812557172080450538552965764747398203960608321244363033033363422574721899954671813156681178098518565125818356765955650105338835712862354468919869300315511422330114297544461660798931434237503382005110093832532103367245698866085483067179362872130449344866562125696305937258341418792984895233175103728262091770785686127649149510458639597817240291245832889617337637303848861841559004290625059762032517280836568342423989110591235483009890104063986137172059063970942446230418334417290454943841243174118895572656475418413060139326487745364230016653306921578702778841465697606413980375494622924107767617706078204901937696517050403076480595911469191395545661683113159847462867129321251651664220020705732047685927763393352064227279211874804280402177163085803819230293847795139205409362474000671159620258588512321399078694990584977447691136895847606936731039240841497822329639376832303538179329074155352670427689843061089820729980426602883556000243759980763372737550348624721952275311183687192247755721936463700728165138540364624045085218056793504141536294688389679320412231868277861232435777366256426808291621375068528123166599975325655967294763864476124778893601215181519731261615476193942260929384706699765832065860746419338750883618160742906931655426467078843785821166392716318807648454638350632787243442336707419313654311330008685857064145635307442389396884935877284352620798910462892018816114859874226092785869278666655613835890317005577289039418669426291530210661880696044769885334251244940226076074167036159551029357635860174815325340778428923874021783040706973481647842664796505228965319416141904722402160181037545042818886863254877436325839641099548212396945599587363227991474030978551969456421349849015081182570218466461142190157543676636385862850123091348354163491367621293476267862325107566893530665788317883881831103058479250524532670281092147749424824240355289273462219509753051053735671133665063293596508674111664754146359039341725707150221365351573842258148828187148279097496464105301820120967066399445381853680183262309998289237160247295800973528923283836834260721142665063055759163512322890919793045975004718225850178660811369601231639464907398893820398449261485647054206228064899187248691612792909885193873677351854694982246954492758375145746432395148480605145869071850898305004500356684835990468165693693727415173497423956165084832343011711632206374883720120077372307510891337285467828256815677596073152413126907763150208385484253170037295538546145248240325725875465078036313439990119435560849929817367039075670250487028722281241135950967617832561090901107804180284629678829339471521269456662673525130656564111775791089515447559832624819834130890749500137897568617187776336410692135335015492405157851466669251960179104239703852361536815980023359240648784165417526216471378058033622897670451524384702589700691657679058922228556639443987234913632479210834621470030124674305794547431557877310068905502969487659337982761169037787218973193135919116055096672393647774934058735804968293772859295499900653735560223179556854396323530940881582719253825781871984732139098103782828129763809677503170846960511610645064209086491431967505753493139764905301934175587668733557946413569091903002888389476221731159012076141141238705562804967576870905552176594480007280444189632768949865906566233741754229245701048805961289814997641452400549430951166007925531972511335478471861198414553685594483843523377594160899758591950917139877298032268216891913828462520980080967832652231138318290167479978247764925668317058588713488613678889735496721968702242465681933418022263592926959898445082057394291321936811439084751506472741830686010995808510914653181381843933650116260147708919111559420625622477224313094277086534143471236355066920168801024367319355481269001582647750412421376660841754480967386868731403763658005434667072826978456192808637699108526914011898623225159776435078421506341362633340447542548813796604880247061765371044903440117195172346904763050262747091860474617738640719952397784899729350857339865595207779276855490087575829496927252867761799006954621739427015798302193771169072163167844392803448818433794430199323364417754247593961142275680295933776812711352818324154032637955028111992376824766532660729626306530868447213814217046431187620926000012425083711297969394896540090828490601030082337035168279982648354953982477742374216459544253602227503202324071188360193244009455814887870520286034290955073811125612987043726617302656791015549465525855801663258978758731171148623561636142657343890347384072400756397753581896410322683065042122693170142846553205480013420815588377803858570243838188358385078367500762024995693177753436369481521749704410348994694651529156487934439720897555929551793546174011226330442432483823850212457196732014333625076082140747154055935829241394016535450098700501379110631417828606731373412223638679013408751652487961899059073744798213012274062689897344525147884347480991192270233514067079931560882251932677239599043048762298911993640778563209688917300084852811297700648776498080783309866287644694159500467635493798858760775166564431494457987525880045738571555536836581076790798499896778802436933057679953083211613049927156003767641229891828921865160488779434829634525577911114463231949904013019475187646485966122603752609542164589447098559348874245053690646305876874497754390240675796589111454710672619883544831188801421431047556314743838176092895421892812833407548582655546756621308448848813237568308015932466498953773471169962033323125070612031366640741268236331713092397705153370373825105580851439805592196132830008695070696004327740456685888050588036920068465618120302852898370287783081610346042372141116848338460083280118780817065379478801592622835605314770120684492398212547671490865386141653289423343558780588737985851060012570736480664918187806263845855428886720715480446753862918223442044813957949741774570698532470813247581828640865431858441345261777819695482847248377400225552820447532474355924724831866740074906019963143944065349333173704677940033947132523947409025275217943986822424617376225221500607197115743983361975003365771144594889720326672484059909338905364165131361182055145676066597069085424303391875555809066052513311646895778410632517241103904578125471952706540238491499386513314471982324657877599382245780863140340315808882271777559670658137110367010348359884942944449152712445643187662110218430316838557160969834118925984894104169937306702365108630289281696809413056842022508603393382759260828543145617472982640901003264322350025395337315492529487418817095945413907516719298788205699842977886839342224372940714823706745554750596079598516170300346082218919841571456499708509887003280396415676782060366939394123630409397890384903776668935455399792764867578568244522468486563530095661668201598467992251997899841950657992356069364234637798097255273755842409235607613702779654327584606818263790158102325536374591453712342225044567963104991080491717671131521452345813367433743896161042807710523557537747294132239471823521580869617156777345191382637037627866967858472022109393576985857738267123912722209556108165348837616208364487349555445414403683219278434193738932622988440205450060135099588612465238495605240021748124133781995846201942702520705814773709536692190884638579438222931937641261879815574194981642363033899984817457583371475334514251116809879513502563684403497212404866304755332824189321697685051304882693677143542453078295783301995099155962102021056731700140064090215480805836459151845676520137398423948347708074276683022266453779389132963451739924743765181965441720353154881292825085942846372628355323727671703591485122883326406412424532988019422225161681881100373445466431176489286082185483419901817020775095281891019940302515115837861341301619704290833160590861607864451978788181946226087442402424055395733752689442933676640778963163119093768719899447071193832916455975975655951638760074562225755145799741040722124160990302196090306235623503001559774306092182785543286104249589240565559704310904741746933378871963654874845715734485153102259807035509909738828428487891288193010632879519904951023481576938699978787505014401978603051674848104306598820627522845356669705180540607747297882289665582753115887923085229052769059004075610690907611535824190967406954200745044528611801826859948171503654457287905815977544430146645230885270007730838569979012267174841437924955329747038918801366743999727134487193112153396037889323435557766283866276294772060290892375379277817069143054146708016724884104588529052630750869044385515334502554734330672283998871210894616112421569441315551208897141414503618736307323736723767716499753059474962265273367649199339390757080791247585924037210331178330034814313822373341531711187461785683037987694936449508175416853861256836063493024718973649648465399180131228053252435848952089514057825368043276012765828467716367088447318803203041040009914724804346735296940329214817550415569080128551548923819647858351478164806151606385050105999968218374624006272446174894119244769443143626823700028911986528659605951358088978275510774029265971260376710436051723741843555873592281037372015091819272355920731062567440116380410666211680785403154465074430580564838594338583378283106619696644331223056627551508472581968717684100845154569627327977140825722225226711586661717912105329725882479538787169977231021229394257586274931860785140494984882070505292235972102118584269143660434770317224739534686560514730138142331412063195851574294237112878383528542038618165151928584551705788363078887160532053159521255942746683537399994023336510398097801397427690345281130347577101418540493866085980377405101713032079739523765773575131836893596508774105310540189238474119442608423972107993993154160013642333987898018638522260770995269750171416128529388289534166809385417166403616228054545509495660302290517431675583202365363626569688784109681898891364708889341012581865018713193263676422484139960663093431170230408799166456393448876805164161505867182188517916212300314350595326865667790446441479611911416235134325731810500454543703349197478034095251448731198105707154390511023880062119909933330252470829344535210277203482129598337598189273754129988762719692889990011891100066039263985577461938842355993839079270227549990421102390325159224929884404858639303607508619378777188886278995716893518860993347614320369890690016637534418316575471519244007316141564993276924883261335195952210085634884336238229165936133094138628867089283396574591101215908366513686282649308217923339841158384185156535435650883015364647302628764960235323857694166559886937494672466072752052761712968522621840008223065072942736065105710774347133897270652682285918287771550081144246063717318651890186245507374518602320909702830762207771943474370425743306823920027623466498875933530286501919249890494263506557493223487263800536076645157535753504562204423605073610434619189214482312660840961111005510158412305329062300946270839069685934448598297216532366805830477240003933470725740387240318593998900380102388215286607598487652578712333924962353321554515431674596834740459031489280675613879022873825045496904231795040670447934918035362951590481507254786283678235640217623871079843068139006868479002151327362779305846424548266676727644267321373845928875095928517982536840996318376859102731977837111672248277325697731183154166606149293935344952896414886614335912984628414219565690529503155446971657931025015313617870361644354580716211071718700329085863059317525805424639264203722256129683093955469157907284091423466008301737462272425936546013132961948061213932045365863607692902052471904898261209333508649554472257407327268077082811464592013400332353497654563696044899268995065781495487376129026127611092531997694355314088245338272594450741724147330974934218967693771190803860551666186186820431785144824777469472663393442667388872853019227784041756490264518312106416043528064667682749749420889357608469149308229534110891997177695249319982780106401695506211368445220842622290963663990946080248320381902163750384626687474457838769772663575600486505391908280232238163469056487676702563124171452406467334683526261393847728310537850257259184600112811206856760241004588960160787499347859481024385297211842970105014252414445281503324257384502531782689205369706112501918877892452922300247908844516878191636087463522003559443135562695359313112401810931712457260121532627856331726600314280344301111438657395717865634961451928214235895111512938243468169983928617295416338045410155076420619138177216097291673125218420803333759824078612404192045588631609177029920900691486547552061851711441801879921855890674817984299001600176567259222835865288668889676235317559241149148289818452398825842574505936590036921698265152209074229866828817278261847874913497179176564211188750965090639385253404115273085778524397856872151602277604565940102184234370076226288350306549840334326782155736154805963297683394317319233971065529340320196071835761756523764083251580909049459443433182793215432181204388845894670839763957763987982100763049324891469595376521535525602509285037937656461715932071937871038667674810738903832716354340028269241487462492357237272973510891817665158949053060687434654389502436571864459275423126399545820987170212420553776024118538311450053454195932262582442133956857458117710620425990327099285234352729395698617563905597201001161927715176556748224836032968617255799749971944556497831669604585383314072667800954843929455492771447435711827906624514541769914168962404237252936997181692195508025165284576043339853061496985699241435178349933955415190733911296791309617314635222253622839364389340886495376229869771750108641190636136300372214045829474689027320312614070354511205912867917161086819404582673900828244199255580681376556399325313248186795616197389384163979514125855687152551772876345043252471062418862179938518538319732279468272370759423123949176340037043279292161029587234004982847015183795263739943700533345296120689913061361944218270378263291023748186522575222245453130137523868040034943840440495399708536482410055361688932781468029642890854083404126228557303645460783736926539617111231794631313227792662436212787688658211619579070926392445489393275816555840878179020858350123691343669616442238404904408936131005514579353572299614454325238722746689922775381601672737158592889830368613129041774995785513921052056521723987069403887282820867764186381420312143738291440651234289247860608124368608737739716613767470354148451496250896630368359782738640366272172064379968429600329836179546133666833847295198146821334119484996989530509863097845617220206596161498800882844005505002229129537464523157170265977131786431790172473359440869341582852942669289812429964383572239267845823533053960179588384179470327725446060862690285331332284352100453765503658695495932038628946200540482667876265770384086103333635156089535436291318840744217910839284478946064055053613027016760717586879744259397914736848534099506013140914159171911396755464412039621382528363548354635028190478948653854073108430527103487295950422858416960390067622710489730640357544926476221052106255181706462488813805719464085070266193627884921503887992321115628692634905672474396952165056333658225901226732238853333628072020563345467662034332646236124003730033053871431202905146071358239704031845702983383699619896466304620488588056015073944035023709083537789749214139021304577128762830553930295875036709974800836592163436761540421499217675419931879176500036600682985683829615894846005863411767428165522802000398295299502789785734828997999228237603825458737186334699922011777473985739901096373903354756773575479194734451502210345654641510421234678616364342242668928287023028907675319472743711580460243054198048266834627701699994441070142234576493999019717326008791450267565290778176481104261604435657608838758491248767450393564422094240920717189491823393925072290422097400923249697875251360259451263965512486490698352454241764169466232451528394326418669211923709942221492163972296890794795327036822646884115062135535128348358383052135637934406926358835960983278214171477031390879090182899740498333901140026941698240168876072756896184330788771830861310675514506617013605239571883902501865942285965690136684724609601110546764683910536135728517989411652299235260435959106529828957471598823791959175478493803818915753766641956628709450291083029927891444767483186549141653778502841708702922466986645654682942049469060277447525787189337980493703884720669958790881851712794277347165063082030081583945134758760865624298759259373946472942711254612227426088316586442080228495535019471274607985816783548894350006321242738081783093682223775724986440639455667873333108609514629422366774104687675324790974567381860468870587076812581347701391819489359982435686754669617182425126917727988751914479033786440566107202628414186644607734583045111026540074373911878703261621918058357338147988741698055626928844142832373039955833987514943800322249365703883573934710400816327180853829589204084760495548389827198560369570041175903748219735653920517252052233119292227885487375574086151038290215919154459762895542176739414318837094600097837052662410714700734927650794201289636843779920297327965185416645842673614692778199784376989260190998540148907774538225589954088643994932223204203269918493874151578710694476875815432001428102191168703237641117261982389144387335067695912957960434529130792078433348325823764130659970314343774912433186493101509626575947385542106525552559282139261256300513777047917135843403009796296002908283216295115516812318307812827542607549034655890178141888812114958392822989046941079815881107797721144308542533380327206153286003066247703382328948400506232336243248170932823485635317545735187365949404831960113634681106807653042931854240072128989406532477005074604072779379235292317571676924799589374904315894697715241986905619117665500021258886349214901775978816780495853293755347863214520732204985831881652443490486848190175128493100555576374068302916006990606114101925565765128436654581009824112880734480566103486486391387894175403665250530079094085931319638678799355836862301687520459370623486000760447813201460807488424199325746586984735884250362934986979059383691557659329874127471140639035044176590598246829876066882836635015409383035182510212071420926800957437587663769921474194764223969641221306647818554440459698605097092384160586976952712884633836647412554435727469424041835131382583870923118117029768482043861201613406397885580488720807777908766682363321372355219095920751441273659608202949442088499303214387604916275544792126303693324002291243896048216384665013382990535483377764889741270913202716982286585890529963903321839089502153040553103303899484852862926798317914555924696014580316290881767166442428448631905628633366415681008351419978659592734084294341074455412264628386403689518354873217338237661640084015030790021022890495031193800173653989628417842586319266968802226967960247582185664223980182640585084892611527835888615323333433681041662212847405838105385309243137425664503273651574598064618897519990423701751588271278220801831908492418669597753294016342170278255288565189661170075658240985547225017102992666254007346511768440399481566642721996712832292606914945108819826164057062941506050468098441059224885652036487099522524713991884856860890072887656229897766238495038985679458336807911789996819871270220172660729703700055136657069162615703378031632215339167226647658572753629565537091825482706051064318178229964234958677841398372461303329379462242242850597864407268475616023307741472413921405733459566986353272695425134414904097672946929510721465475237579688367996993448999598239948603304353679667141481892124101706887393624550512276958740852054709536109572145120035472021192630638499776266581299284014436312741044168971379891403125156287792569126034275926413279102794175999041260772369373927654237917384874037267983324574645152469890550085088396164100727269674729842279025667362597201785499339785728010983663987487717873181574051814851609386967031671987659002275845457671520856105268142273271269534795752137119161643586191427279923965994398297521384934588414709528041392064093104676022863870969922228288773102446081554786885325350447274432929662967775864994039228047102167243213564576264704787510819427270134387732675352272598669367943558577204581051601654003800464555702193374662348004525460207979176788271255934395595121021058637978348845578033482042349939765511333512124723300882101210611635703555715098859197032697019159211332141507550722348607728539080724067472615873977768385727581326579963248977842748960113232984354998154906359250510372065335807250174278630600912226517503074761319055592558539582624970577933664720586598789674238649950649932296646720959315865547691046966401843193523425793889902786393460177002204102081192474989828080422534637546163927964387057204378733928363495814253751571237602450352943024393005741609155360941137687535213511545214077924749322900630348814132099718497271250445212798518691086160292983263901545170122299338418825298488567025201154150119910649401634197603185572738063902255409226440375741462825171741683207902018680825649219120446686833606494601738199460492375387664290034092432261024348001911907052929481981910654780133680545266931708264618324040282304343666649970789672733463221950704579921639921392239397881235698703207994618409801531752175280837691406013417693646244573660714206427242620287646272623377280810894195142848776467807050417987619069361670608510033007824529023526314388847579741465452919486736253939880099538501090308142165902919442488920626134323262030410684784244903161530361553357294099968868964160847315169996163197899522650783949208431027662927033806068772225833083310334872196376618881302649586556601763345348582314166916377369447269255724709216428378171468825491555425084063677918972200512102902299809483743190769828521671908560578254683504094710899779597123060115891638738137678618149058708866971533674106577969199283074666062194071453986687233816167514605143705334743049592541101523859053260091492288255149780601513308895505904222015253515587611151607734935322382745322797655819007479154517740178766606857722095787944059879864864839638123015894436649886225587416364510509860714815968560172265469456742554236789424709173394452103662501388881311370707296631331909090179811206291365071811012298367366417445655189356506941765814999455450250436240725329804739742461616105889316338684967138584879948969643223561777437637683343747935948501106366080405114116532579181527716345309587150025070525908062538846956027795356441071782701271724176023875200977851120992822998779155078946509124643026804203284271601368485282749426739095555797434653922436521435887496897613011621673892823689035582267702151021954535523384104709300425758491589910001792826683392688238776514757793134981015725167359083977517529563851873575420528540716152062300904803268175989944748802968047957068930513422703423991054493595886084778817798689082814394669508586491574353585740869536288958971847851409536353731564239799654992478612721299122887196972664783777247961346929926868838668271744856849592176927003722491954504478527832916363428165101026552875140175020911861810652398604891741843358199296140550136062098936123084762527236098003926548910855186751513761401636549078793783112655775898835578170410151471611125845726520896136803677551852533268264066328863428544540529379718838457967386688159818536860111366843427131119957155944885619550182991050040296983746026409861412026638805637094525114367480272834506607964386939683617606697638808952528093379253190590452740969697340954012773391371192489169268901865908937957594543530247319933078026081070556261473520559822962213247539963241034845797722780017292317349290077182606097703891385731375120266437275762154341030487853969626798655697662269015604473341787692340097154429390429150088524039615527586707102264580213169428165076716763934751735589736123995862110553322431990196856823444548975122816230185493265054616158454750583427396932016228479035511218158058423068559801909565141945462538447374804609806245148218311355376036947204551217770817374782089786363786019655198902361161455745364899694591369207403013656970873012061363512361037430946295586841030686727130504707663803348033204824788684976713847219335641136154596709633396559814476051835306836912337031042359023421304555266583753999938981732512399220269117824524482122979145939717433413688253896398723744426149030625364061039988445811846485760108540672587105586515182304831869393664019082067005187595519762927526180440408112233067091845177383978650431819354805982746479213969146576797189324443309204875015027935768398889167479132166475309796889203773448695484086164561400198332912943168448282326081837635899112365557536018652726987184941668707726502411455515730170960975015510691340288587136323553486718241066441681738214551378347666859776153959105567632821720231108626807796967264661763417483174994675440953299328365217301319165642596894553435738874909106772369701392969820977855331987178613509375952777928399333733882713677777054626504475385153377970155102347008751365727748510721575720974720533341367448034366429141902822883371722687735660150736381046641335130242438574074908805876117875215090100629784602690399607334381400986276052975304086161140027511983313719726708229121490151329077838158944938297454999917644654320219207186362154349714471695317400023649978640589846501415029428301606381809234709643128275891046445977620097012593515338746338929191599494640310914079727138562127697646823949876358734359389107550240013997626186244355025468086679869810487457830468882778733518452511980258022866546315029743463021080692873423595994147391989908806900620203731636151155613998792755997673498345577321473180040126052855616861182201092334085724219729577672110452511051022952213700014200399547815582623672390873741181221401249471805766351901597744387835809912258476419763050182811814322428622278808175140452345703219117027983251065079509418129550588540513652474610065611518805844395486474912442965484922359180152444376964754273940252696875359891634556682172618851448304211235452556605496044769741456839555176871039058936568613853155677677138418451881309894715954877363763761631178998338247793720085204362025955561362631017820378280589281742472093566816277194726949137603193863542555182075374910669587758190652632747217269761775257364110764326509914813758295141887466876860106506585971266824811534801870009005582261168350518592450491405500338724892041678742230636984997947979646745166237020514610715551227641117497534787692523682894859256303419999509412697563740868964252157616684185226705856402722418639239871267513141231763663299696923091298654321586015266459434376326250582757905081969640843677656809695956944349663979654504845003372816803329926825419218009448084875409811031594422519026057366889042559668051010591155682399434349643929556746133366536754305579293649982388603755144558755102705633503892842601182032127422829413517919280668910935096384845320408521296890113173862171012903380406173874009908621399113074512583158719406917930762616947936143497940378551964325485179119113762630955480944104712105351481300441840417536187079574209357518318565629848120174158599239114163292444356133015126130712502759710716787099330156193861288515098017062744628190147873552488904152683030072307015750879518883185398907756080734163142752069642560426313075520474059734124428863478206239543734973690188294304895877031273317178577666900577748953293823184186801313625061101835480090671090535572188088602684884275466580611442350920066945190146264033490567169230053736339747614534287600306886956003535912034040229804456813808439067586684872659747134143013627221837696474809392632463940265975558090463581427368340829359294212855650780781170121087499028602602575488612510135272892658139035421308005285922497674465945570783018668435092011133476498112507451764214145500279089409474352618531495733136580105409538831417164326056272501977487919334735553254363053215827071327121495089832649191823038114512289505814177222633560453963001760516805694453184419878861154435030456568708046105241305388712249344021336311190677989301488882977146991487229238433978452631000505535938116609558704084082474129643444219740041228062112110149593639667455940887666737634698162971428438038838846428923273938803873844727628298820444901476156701714973070651749073771771513159470151865683196643421993437280468329500235764034214195151900108019667364353884311969725836536188293230237903929621066346518260421575355743078875001904380182863966604688790398047287856608339358853775407265284414651457638499194303202446698047443169839073854507448968966618419667416790183914433253557889023155849777468617257132197601581771623627847514616392639100053305108004920382245768552415361004751919995266013086552858784947883042996962868273028804019874368937301572962896395158918334273634042223749522192706015490250057669328186664746615220566416829588999076467115029476224260102417247182172159765134126719443086264619539243612791227097433326523018082738052839255968569673817216543983818326455820473126970457998909033039298956605556693512966100917958185402616982694635670244097904467070790298361982542908039279086416019203556795183262755886920582322013716730251151267521877601262546037429269017818548594604579596577422659510744740366187910794039904709491475524351287337547140257698305431850600813329576748009556018466621524712460325479108900299182983431765618265896765030186213946078332711518199318592981207671892485584248584205978071147907141929949440378111673386354657143694324424273116521097273799136867685212084592292728612519837817397543237010537326655034788228773111564651867886927619118026987126208043064911242263159329883957089101126270175274499822546410135707548393771807810030861762228662266266709683540069699474284670097054716256961033048860782011677150984931744928880467739537678832575163819445878887539452262838122458744886131566014979876434962381966687310914146313462756158184141053076819829100223723350679384245054017318957388528141075237005495002149969679561442956616230231048444276183726666741301325400847899533098476996302800718704552826188316997250088218627424192419745006321670030242445564137407343791860909391252520157982614897189956733461164676242757220223643332091200051653442489764155145282234386884050506564557824371603964151144181054479138687237783138956599574474833096589978807809528440373182701332616019949616074615678347493917373827100062684043918140346716868570493600068416932174753110136464429021765776521022625665755381927571472813216418700273189932493683275037330420096418812164619308647677320395298479586653465230373264932617376759493945702557010667922677580533716121268695462135841649572143565493286757953403204649731165714349196822154937886780942722867945625160590605724320096997185729995984410623228674161354968786719141097419791289409492458319804305205407739359979673023550115717940384673704825094790579624327118164698475123348200174182718619865423851381022567158913481028311408506571030486727856765633545602929550539609668941568386063878354727697749715337357637108522443581523213452201782442941267111985142199675198524668814785453071694123854568772779777915213134571668116829598197187918968343468646192292963612548185206859505022755848619911500655931161023373680878108768027167370308667404753221627776476318215719612842350259534359555899092246075725009443441606044974564183547580139863045816299049663897657434930662454604464057471363070826750323451814097602930731208085914987272895078322043631231376421808121670551522360414780868124158627353049044476504276606691119771485821155336550152031264620999565265288322365586639768253460754452575964833130374463238245834027077704471193620677056777604753637342489761524430535344816374525172644198529547285402564590841560619344450806241817439647671559906676802960606100838917006954164647044008264214815978194380754835634605104413788440234703654950518630879645109754248626299495053595870773052151881830200821369991230889421278101079320206742345337712065089786890185946177563930623696572585517635653922875923327664755409068835811476890264999203409384144943730237525096098780531325070430676193615487069219316702860841706168534229674278239663745571221828782012958905000508432800710094825922485918965838543358816397727678452975004876290154129230201479247369294584184499613019771470375067964879374036162266155759474861740619033704390074011944774295919662761560594772919863582509969700153227919515757439193101786506904715898830411945225773869622416201046686977627440664521061083404961772074601998599261029291246935014660766927476906306397684609557663393305621636870811036104226060660020686870331529954772632891661441372546140868159542204819347239429940167853130459687617201635566926299825788239768885240142295786853861498889911343470473356646667953422847215981442347855892636220390717674674515171459351011147225679124752152043895894550255965550437164991111299326215479563051758061186334436443569408352393843974914867184517792843944429390865864419253321424069962449083209846676739979779216421291984865431455058375119285286643245743692386705743420104103260295254536932103570292536306782711012647694227062999801044966682571158593946204991449030004589058575236245269397738009337594763199064710984811811402356212006447102576904745537981020985660627478007369133892743024031954019349109872769573166834675340146137257200950898206342960173159134670542294140597578038173907147910875131840679380470411083541617481186501301748541967101282485954972808528955382381264528348112971337386458413328920198411976572756517868296810117045012693202842111742840199447575671386230852518769217137659287148865264231921027266557222020864361515934678306974093137415857736965495285163357819082936132413840075058246954452993394536691150541921438794382309175567826071568817127954834282776488681566769261929057035561273474755401030748607641801643412395402408933914610962091173005289306957425719729513013996949145995505059913798110890233848359529714465559712168516581661337822932501638816490879854012901193506633856257590724805515356459584958539947907467630041737068196139038574802325477029520019747855276375299386509165275510497285257720282094570446597252987375511792459328709592467399188819920482588656062536656073631775982007155191275698917770709070379031325014579093049721928977959185064312071238103490727194070399221479955320445651046350397554479824967559352621089835940144129465472079575765396880589489513620592610508321555606129145444703071967046143020793859966050845386861360879124361330161100779936021667058650454404446462689588219600123384046215323499729538252838666996686713119564688400785789143955716657479939030640172382697992081289727007477046132827317783341491143662026547537192523396782496039305819394712567764153210469955753759645519016410965613582053498797649813812486893234483399627117524233264209227518261797555689667416043337665931297653854625402106402592370790953628609704725113133664472853543769858633378157804020081197390107150394116132565829801264008795354031767541917647605317516646418875821268648018068118188055626563948784341022871174824850472355898588334075277620572859819942481569831635718597131569458583061843111843779637773441488415859646240386809312520085695086063887361911203869619385295491939636894986355801776634730725923419809636554960441802548908132030501371484780545886992112944076060505855905649025737203209561012149412888988865359141279761142458988379950140755859300332048108759913373036719905540483098738398993132582465588095305468341169080875267990296499149191101480040237637232235935788328277648737456553821836079476782000054117100496348589679996161135377389770587869399082212040060809155031645807122767856474219637881003694087217154697581540239615324914107391578958574594676165753631604368646369629494991135486289319981792123447439127293282971089208263930625994087010781877574004623399267709740810648489466280282611309560481693156335764578948154515544499781421017275502272045874571054771772532985471754370601680809617294390561417943864980108609639326954011253501777437184488353698914776903342039661380976133927548541690408180648755096623539263488950787359668689572506777059760942915777072182632276913708411927450276651344474112678569479832400872313954152405878697638232573964337423018558746293351277717733566923471361183572055962166872731802445034032158565501938948517592763583545583738108835440947413998803792710852966462059035628676836630160883144783308220138661264569229206447145383269963634774317475190129601542791596081320144235428731601652406546762057547358898220798790327796380334278314146463541294774486485931588104244840615192726039995788422805109589522961821981578460584494123565692031077565750486808681081029725411426904707077838410531690079580558437838977151610873292287290111131700116705206257192950239456572042382275110138301322686493562483711504973911836700067768723049808059150645097659261946013927282537397572142462465910401028084462745597272942792295125644876800753590626862867948463207345858220576774553720335509052060100780894191891189509386537574088394784347178496625354589104163358501894526085879872480603120226573560668195764876512472070945464101562903430707933604582570597092781330071847339315269579861244713399388301992376220562593077963313164833748947211297295528309148828795280472540035341024163748111741047255509927679866602221803024141228674989258346301943755458089939003944767341737381936998744338509397293094694101930287305653319551653455211907475860492085501828790013254553080498652097052195660834174873692563048085101437998014915288171940627755655031034862661247712142853646543277414718087905223427448495815700923740550145320600583156598771762866051620270875161435772419961397410640217184192816283737407224281810835644204658200689488926949270423041214718306567827142354534533271335577988794221730836486350213473643983296092549096631467732357356948448917573630433720241975313832876311585326118919559524386001732949227187222907202430452025427942190239856131669745174498180909219310805305788563644937583723387491722691425435197881247035406155165231652660212293034175473090731405399477780839995205825284174462903460962313992894285283260859425245747298753887722847465896623016512979601013690609379946510826710588020325662295195493810132132031804507307296419646771597807979504967580125820746774456061219748256195621451138598798685755451765557685548261646187322018359716858063934117107084058885425930387330133522660893389046905738707558021835060706268650109619445208427952504818932880529194928554165991626359171482226420807354164010916923633740339515784204826410444485495773898694012765581941339126205996878420049011505813261261684346103976909539693718801578198343670653196551440115342542025582713529985720227001937750020335159537093493144829864660503805909876280108910297027170091466824624804835353414816635837716462318586726527282153894289411861993467299253106740082095424636336509347988691888984113221535503187302496913393503383674137902648789057038479710115192991306025442660030689050506461648184069224243546301423439997208471546972822272550046515425887094005837150732789731640340315679398809670724737963082919096531012979268266283129768157820557229261505142469451870151921941702916460166173705491967872768664466778961223042507101585743148120856957179344130206838864867460369539745953152189288562379152050853475376695559866880427750462783368883688794951263459447103289173510334654578865778840236649740679052781479495072393871570732084300011195916510786246969864334800506671823681830402987573046841760122792372909689454623344982403318648091745889758954556801731436873564366806756767277502539343145504067369566878225422801667805302197283346058564089608370559575086486264771203537465328504302329454390305229068371551031722507759059628915134597947361904130675977797079256617280288345977021963816656076192678706334883864895681607782084518828941613982027130269486897980718217868877694698193019942264556188047782664535070622921252953493810403220192907321185624644597266559905329647358561489686473470688226038438832206464759899054005613601193376861586781756066696154516028916541645542489061699121952237445328257059123255480865273500778141166110587872807181034530069916905655160113506986909177805974839519235831714507817626728166436551828321593957662102081350476484735257015724384492665515652296599737430841237368365593617100456822784753896087148481812327083795184716913161044164774471152817796231915593814592037769242275067148906188795933445445044456725690002068041857026984384209038041263898599595424644776317847696713886703341437482653990419376596351433668572194326965933330842352760601215113899939383818181890377989456038924234258202120790285197853245609436698408056366923458131054160921242375852259197437118544563493758540545018836288737099994537418449908174940438818540689188667248880796900768471533187717074740045235752106408305695092039429787360520740732503689790982640509498093799394156783413176256560773353928534871604018027121197194395478932789351069094358837125964621161712783257015959743628117418801571327650750974544685500082503816010622184458087175707493624849777174042320902748375839455015486017483033279273534155265936326046346326890564493627784619676793256176692274633727861186733931516634528080849155616765237851335227672557609403627879688832989691953160787671375469938212525436436173948188938793061910178916049045293431677561242807854780578777897448868346403630725837679463034022105543339424987567122156388744808617658832358636429487365217093476502189514995747579209974441887085641678942705795591325179133430124240101144946507363247747280989650095581642864776929776013858880325059391538876334262376186808563366475774236478199178380261881272932425377154303127571461594365920026978479322638057716453604601355319458346801278639206826705655713709489341722026866202981519180915481473311009698805817540517739208127524778014478596229545421740595374446727005157152220483082693579963841814075942238048645636693126668212483055169600573896452046144889554875267524041028112977169282076610517554804906202547466442635072876155053528700820981608310581544524074006353434742231131723624874166069897048354922481112237470817555450543706803307711995029285530889170426868694796498264033363933794430535612644583178460885254343652139789724406876115855506806685124347725578293451923953738321530173575841483433530743172461825845891976948215689638315111467097776111328385580113632726885906599303724351734950367368067764232905715052371472496722587845799419243302507496188738409581962787439797626435486848845557280115174569964084687369474968951873487099426000360462080057169907204656999559959525045126480693812252706647119125166001368024759843021430855359701624653597328347931961713195527648119361512751384182018897178685984992255388805700156708478281522588347200831556240615261966898699868418987088316834929943852239285451014932968052003712031000676970038952489159807200911758076127430631268907382912450624260374440944113827328768215500187296351763110651439592365566565498719250448478078949720140664533011447163311391296346098490599876597505583260360760953045170402136062664962907327770107460520584542088299766051654305081737742216294392696824011420733505341313512914751650523300232962049719736295590287957252295097915387827620120402574633687253577410586642971465169115130240198588787802616296372012086852793214326376213447086216727419551180964693618005919362643973576739066659853871611064982519202932572761720134574646299622136034658778794847760445526043734518224195746711651708073647220583182713131794392841120976108630186769655001744543894880612170992583451882183119974793115606057675106170594473016943719181056141063018416823754002363667028574862636122323826334688067037387614423300562973775593005243746634222898029888986261498348844533599970906619829743087805040363285830154887584970177567345128091425701684803203404551881133551885719109835633170532734776440839380124168375549758225435598783668946612957722570219991873902423496230856873432229536948626270560984886681915687103198123849365255203647476077175345577747099995760261007951825512142849261594131103287374889311303617668661236359239269648250220868270133767561338751563461886577533649053850297084856617164688940675550477363785075350535106600478707651893483795640990135078275233844536683816392422429916681553281564098109657184582357844111606989839178479693858447690219885871972721419935734101719990163389516724070458131899364261342204552538065881618281528647651574912138571898300339680812002818946795678143328899453585883867935879817001570970593323656293724701911393544160959565222920960341009808471014977206467493954728409900519604273399881650745215362243801192232432204063715082000253675114307914303249835986381533959970105965197382927789800840851312514495163442213998183919620689234265756247261346669611897888825263961851135554272388990793724889392501349068452953627166407644662489672216059804184268912244776884772462035259004088886998374438724717205902350544705466190980667099616811874652532690355613312530622174709543521852925256881965270136322617445209736667206533575297044384107287430608499892820318372747469650495220692796811279619233056129576077436015571645272579958199616423254227606177867453385908615240446729460299069165382361517788067409171740994723472335666300043079847616154351732496691239033473487127288037893249592345035782625532501190472156953674585414435621987401799505362914507396923536616189223081796678732252295113382477692902154988365843508763180868352727556126100623045416552962341440378870848272964154272383885401486241219899261440098438157147892738030852507865219923434496012664591593717655663361139611019909953498982474249856752029055246314595293975574876116991502862611018222929177955115453803986601321482907350772286624254737484750751954854172078149535644069717135274293344575307307851431563149912473949129824808847425381262972576805604613130311284146209763884846585830357535042583782798122392282127765726833603549431235782084033804950315667606427074794699478970848935574530766612594492259414759511806695390860359068079832219064377040723447665491951629485436165294110775206428850830971195259337237285117790958454052189476518796812162882684859165470228359463968228088718116906096336038003568910756558171784890235832007159541449156788209310647495693012552184444302821423544269935070472919595214306918507391175065971961641945846976876306603450642875937102035358023350919775617797600991072725639265496133011667104878033474043649202455126012407003940259312587032698833100840766877889165145410255079743613653376355927265740221031188772639992832914930423925445982172093354784410385772002549822627537916422040581814589646852092364341989037535359178432775136008517719754669203916082879809629575702360450935101429065839270899963324208827329588821846280761669891666810751450594737182008526384453783222188462794754361970071624278575756566704357189344531005439409103405245429585607025383261594078995232077822829204271357643727433350469341749494084716181941697669972385903693927680951984629477784299232684557542489025492551108883140228946751468755998012147678850792315508505125446948080039966586568171835570518435760192717804804180154763591104703144078734782318957185044610406853483408220421793607085251513597845295408193417989641196561477282016351328716197174816927604082540048813631546770405388640391904012323689145087919296518706716172894133059944930789077884025411501605738513464901431767748996713263612705365829958349653050343070855061337258823290249278799865439308119216555359558596453928313163886815420075632633853416848725178168430622921072474530692445585044631049003903989643562061308009031169607275909377809689389071285300365013765388064737002047248491510942038459295558635364486307081145445317049023937263294902823769229140342244596525069685546285507416737438050239101222139303787937327501331297375948369243973963695312499837483591466782085318438611762590774701336151868825931100317298169021353287770944567317152461143416372037537401351792821273716979623064401166063244474062291291086894896989184786675691011783316938651876155264315395619195680809747191419553993028604074339566167102936274915151413253968051907888482125483199234787353885718049150043353249600193842041700644193026316845484093391381185515556685558378269359391623628494102417090620819169447146998639231259928624207251784223666800744015876678179354659368093700706530416090010662893057229079300562590263638008570904813506641377190910771488907802403619923591294305616131092670377300700513637848568489993413782774634223890995831479657008304644432420816099597839994545627885249965504333270707906495724099180528876123267276276730007966323235748166847386776247949513355460839672282508520808087887292797607020887871852946888967620340602997882089628902853363618556082549762748858265093891610493628605540968892106411834435041235124943094194346620332791825393735605642705437089880236314946743207179866064488609216147110975889698317306207145482442757683356056953197242726294431657568777038758669452692922386255421041757477494327560489762409971352930143267189762624756020632643399672519194121416642367108603227159147508519458701290692281422150324850078778246342182247241563964198505520444039144199076310761437137854670116982612432650327856076798511764075501690116625165005164175600292184724097390701351208657546345407603524294961303173826420457934513846009506586082181146659460237139911203169443565540378226934682545489837345085705021959705839388589182946078551358114905620138986063229267109461005789970640592607598784979987517212223409287099497665182045308631904581131945871150798379592426014899066387152477540997172534908607094686118404558626077800555988342682893862449951734017244680999591856525776932973520005862355170226970747699857147970018763795632995110602635645146120811832581112381899294235792355898821315190236420672617696963562913474232675579835194248087779038022601883028772843608459716657885893980680597035605628901844621638461626359127303942429937133800097426950038964692882217750582865252650237946600149677972586671806780203389441460139471145882855273024288965341935112665072157539689713720767351236421607822218166681606060697647476123780185622003583946150041516266706711684797119423789751940333301423531298800236811261411207176785609255541135345773132314319773703205619945427927711305303029211992918147778324443279542009141291266220544421361206272974039918735637901660420509190162177076099733721512687710883714457681300063537576211444648723489826597775344800932665609309575947631396481261454267103901524186497614129440482537634908990156795156921492328958997088535270094285971306337259662359515962573025925547583645917719836990684062157864392878459304069570082760158272392082412575047583656915182528113854943932607359248261002162904724587877036319012650386285564337275310549366492375042417063618038111043990930061819670713246314463900912394471360731017421737773414541897184150764703839372570912181548570766296845073858611959907936948508561675431020990084671006033579240777929513466014930247002990094665429023468859170116622848991846336415915151536009647726205267639527212596918385286553942993119092071933063404197424091150690854609513462913502387333588714115076312424444872552196875255058865997979905406762009073920274189743943958107010012206050214027881993228458853802349179460805651929317721547897758795594286912276184191730623105029141249274650501897550313737825835404248130478701189151392121788147852436858689673309865803269301788087438376504168811245655207166765434988335757625607426560211250569787217560810448963639516186239138478622434426019121432702869353649971227648902433089661503732130850158062877205274652233863275309365748589908046845087423769999662695096931265901003042168688372964527865206030312007306632033876247932996637963396321483079879495438953389644206908995327881967183616118633590138177040155000845636219934260982026384944309326997201438583565340084699671154081411176790247253197101902589063559481743174464389982510289323316186585311281726368412884288418818349945268654766795868116508208096071609387823420587539771257427957647729041059777337871155314418264334670246309917969365065573662640510780521640132963739655688068287407316626718441865533341146749494406332124611128328731941920310360691081758333988109412173682180304331115148450712879289519259377138570520711439828018664757641264181596241598910156771605779040517575237083423212607554708818373909296151544396963608992241990102154389962623407649438353095717248724456206123725717787843228071091736703295401578631872748250288366548938074587002385277494064308999389711025476719641988157617441114085130899706364347795165396752215069759649118367430985977003497599574582858440110238265277488205030913538880451759095228067142654526472416316924296157144124906399709432444140400525560039510058434547872789555672681351423684508213671010114684809229034705045605510569269152533172759365981049334820629565074475567238923381133239667518270763282959156368569997292612269600390328144038441081742306394978170682800647091439627034896832565537876825258373621676488665088356387425143186193460522938664597027613327288706245968441588110127576736993970798384691352018331109615453887958390159429384273306307420913710377327025579033748936799736070514541901819868795736288339444192446997284240345015638911950177889813846568155672622801439406190884460816658158919274252232871292229137764663473388172036370169273460758157384271919197609720064742435839159375436992191796626711098694636924269072757944336877000397508946246874691403309596737908362290070895895513896150302056999468455875961065964071172457110421724054647075115179020068796956722492428505429443342907172804334745954865862706973277909189534015946645406321504211079490076800102099631764903818940738463703600325038443153791953135343949547984257775935288286336565974532442021689066088987350111208045837185519162595361821131501015057918956269430430701707370720299909760951641863972516642978645818978206321894909823281519694604581670503991761166407288170066874502010566918248248250455442420419845672196429965797920474529394132967582359432321272301783741629210063544356075781698058691678834086244939182588049838115093678634611780292195628716787049509284527874512387386079879668707312889480439273407655890992619687785919953885007388517586418147294475559757598546189670598242334297397865585657234383593186000197022082655048278483456490312276484563211047045860168573366484897681286190444914444421425226878628994918559288953320457777003831331249043013801135635298266760273111190599903224450664420620176739295326482382272346090102460736245404262956541938998841171193071960254873587717401235792233723210726976665521611376457254410875490325273041565052114818099575711689991628525027889716983172257356632307403535972532590580004579957457342846130884679215651357847708142144404592559230649020226727348704703802924489403968326640114920117723080830744073132916983070505387844285810399000349079562440699439653942038602583978329963043431555771772259124325739171265328812448852569594381785248618176333224947328464019365934551664080492959252647819498146720317671870895540226197997229020874382720380493933595766648273700545216401569315479217251140986016297583887183901056551055924945904681644409184219163958396112584483706504721846346642866405399013276851759684073700691412454346578198662956474217798931001650329395937373285412304441341776222510542977971794617846966357893593172836999384885385119687877850681876948040851671348130081205631598787454030707615007072529959352506313882789112913686336203561795823276992293253553924777019961475563262214010665249685148044456506578824144387311535777718327871961575698558864865194732916517261840100271000276384869444283893982599109827908691893358105674551669546160253973172909448863768090369934309603361498797931745936763922255024819332008344293541168134594924389529879266709748962908508363861609058824113075360256068328129028669754444234786383872719374180621786996407447695113257305673685543166819747365952884895917162393759190683657509738535668760022615685655203695797591121158394983233869018096470147079408033425363690180184781400558139933645494597313020598397954507736051364496830713138934783166175493072674063317797396728633497686048845034397691954086945116384100228629675195628048869954096164695338530462908898995797154675074144570987132481227960577226517174461296994075264979880751832778668664610392672450124324609158456990435689479065339977869050231571053246589238850881694628745164815355416494708727965401695245651230044344529387908556711533051664467555144440705365859187524868054194621748757814601988443362859780942644683373134053396368967124581820298632352425015519404524707277609932426985328184792774818552764068854058439549144394262043609879560609848590511230532396620396218926436938780611578921694821218582180223804111863785313539662117524774696442596559373125150187643383058780470370445403080132703541554956743041780912021502052141510122631215630114653640281550673031187424862848268944398805711109248619371231478776323540395670586893067489889649274136967116609368711179597406090322508269441224530712832506704000478740818105571752577098157397025286503901027716138890223203736110893277566158906818062493204111710538834003591804922600243294816333398389863478139288081745982826044664379009574363111976020731889306615436013813292764107050441244063460866087982338091683547946758755473646007638839585517451742807922089533435499034928183805339811416988434992707342097463415080500783620852025448970955562965670460257583737781531542785932037105965112284949272741174842303455417924167723904421144210340509287253762440758420037164001383111766286323120898122591615719222244871566128383665014953288316632954275653835224702081612028461065076908375462079568100340571201253952008734002206599484820885165821347189983097565581460746098907576956190459173395568351344257865806483809850555409290394500627325679148512103077736306550224375196826600263878635186674173503143703157112126606528021472575357886226213203459872043744489042192387516618067421015997581204714597938442264718619599979769383683492291726714203619761304974115973794330030524071555773782966923537739860799174870894986389796970524578025428992944254247342991494053385371311129552278790974992295942653339796090639433266803291262278462814126008913299184112103967167203034898767621628488899340216296209327846927173332452154412391216135451454128311643006863473355917360716820068300707933557684952346416753203847402401903501552235132225139088748924010081708940023802738771071316090497986322325515705978561047101964900614072917416483071484215233743634140800766693737687691251005668884024451580915737983286184469522542930064598145080585673559872082464741052503712346664259445620086304193474715187342992234367722583221456787061435134426787403860762808035943648643163419311972718603433286391056921792248898074004945326117725863203050245106944675685036284363505102111100184383968681751371191958283135918116595333992605950294149145562242061008729576096146897307092247729806496774664931246627949122823005265212616472945694986647430221979093225759637426598264219021298173151537415444704998619386002620111545746204505211946220867187615658231546497361741215732421390369189587823027828717436650017175023745782102033201809885987615984944877514500233369223931594327233665830970571754969357278215943015691394932787151937946832983193504432905213470352842765358546819483501052212614996667542080721268698030801798157752584271518720702304561676070160341073905671378682712441185658484669821835387040075288120588968937143793789888769514983300293012198960922225651407845123504740627010198524094129670191245492727092266852913163191370398755590820130762600472281399610553842991095643950940691509373615991958595923972145633748702913306562591611007796374773989145464151524737122222930854672497134051538769831543880196013030636242812431335018888787158110323230205136832157523978814545781101601720065767028923622526299159980255012985413516478714190892943378133123322957961713213031781434865208142687029543417075869358956095578121946336654200404251825870372823639574607521579777114822771333283409022707131166120349754350407136892437831545757769564433216297493465711898615640725879216390277885471011262954011070972237089217917625463367080960734390940790380886608777523693690482758731916841359687684381551203456226943794483819894765997257648233900618264763248778191552014530210324520844080433724977193763517344183551743479845225217732490850645070817530648586055837570236980546059622680103190806738744540565891452830590927867234184536930736944079898756789702606934306581505781268260247181526207310711155303105991228754041349758707060331381683992113045448779547038615130423408894005327006319008459097471179329265923207513865019339919567050161822123370161363279325997570629987544547776945215958167116403701279303014885475593724120656328198812480684897392959474604170604402614827855439612346091063792593666835809596024892660326914349924013593444816492329881282177472751507464847489702321242846558422141502099767981084342492499528080880449579305289812752070288560226039514683162585410454407491079359578800930180605979509942238805064840920441557704629650838956788733600708505812147754187824454415051793122586687967233110056306074091265990295092652763175225557493786234332322428711696635011181940940356047681327801649487001038911065919851222700774843796959004104130632426329197331445080406034647368497434588951450592008493606463572774452386256316090907050445711235703056255691784645883387167658877982796762794155862263833785049040435435816664968778761751457842815542403490180858011974983253634601285035474869638628657428273707068887983467851304797921513549552679992267484633332739111766910910839087949410938249678604458304876554102937439825823478207390871089335778697427359687763158582738951340405595025479207543348395145903569453866688284870278943808431227940449275857165597991129278084714324804163084699667409143887092653639006656966372156825233390572609480112325479955053819917087268911903143574806453646158747253611534471024146849956247652548998830544301069229471091625143045833279261256117582031827119141380678099419363777048834111393004480452755274147109731333027182691968196669419840519438406507948985152367040700820440447722619975256780426798657324765641649618239816035350744244274028751408314379198940426012631841820453902071622242088674604053194274967797892485731967172798096977076228053859063934772254463801209343081196819437005767924869333921904202456948596391820998291426078261816617128503771154653942798201944591469455904437870502934082438550488323066258724970447032560727321596449023437019923372413062777391867164835385655158202424208844470131162478148459502911094540722501739382828531652018939884038083284393884198421291787139320594584991767908022998415118233083699894273271301719077972094915719144524260320480004737605435718094717352248904016131290783483372833951603112236255099219213146752598118570273754911928695225165568924043365568688557410994229553052070090320404262535053271380955026533556042936864767158098862181554851092611667131058833216763631099578477324958293069942515451822820164564001700631486855266430805286655999517610716403346464997673611216144364815966032039977960525590220414343618549206888588078874077480745260974171453788885197108214468824374041027216121376833965122857494689803438318832004000217987298274706206692436412960332088269580809891299422895167656533499600890944154129812661058560654829402807137090304595566258589436519340642235854591880672732096727885067607994583195247726743413482342034361114103403529857951353783267213893160995494411151017809521283048206953351403794239132802224321112406851392167603547550665868827950158237239840169901063675135403716800739007715908903836907165714978241133255387417751899609813585883413698561850445044335383135180612006165045913785868423910363793227813692044425019276340940797526505909030449604072413670955576893962957832527931573773323652903391464135328303294065649509019311308221472196940007539912472216076839972406975156864848676094781084602573093825665627657907618608732264128411904672152666565646800601726783070958063431889656531423232690411224126398982810038629034668092623722165356655510425463258753066504147532839922286527649848886966447212835296679596634694486010578181258115704283790401794273464827422421351915686551306301483047779045654844410057728948279187259890615180251597908833151687019129227883158657254115989184017822791490380635989431005355003615694148351171117046601833922132869601482739622924381544223387571750064377623999614308625224713595779942146762961549073678134236353940984644380533936090319342782491894360633740433059899365097121201329744221169794333340476225960117552316994489478501602793763203336343892853349769369048526353191159219843517359730790324275741499170529788679849914810676936195010337962454807485830069697574979141152024636662397070309516119399764594669106282529618531740774529691362986648594684715016539474240761389151773403013677754531907720027526807229618110779978950015118928386717128303814475115354958542531315105102899009821611249000644552299918825374366899769819424491939269422812177866827043503087830394729871577052521695596917079144012078269967605058937860353150023331137559097436619500677783342986502168707770646079244995920605693717441244967784214079478442618491838893951080827039160064153649892876122135788556615735583292994128932254387998202452195631975922795124925134458142547318744425422476809543924505167438184602819406940481993990742590038949761437760821355811366663317857131489575863209356641731289054027004044758148405444409324670918967333317941340605943738063197873763654513498719173105377307591589482992857369004588445538536393858687808368488077236587555492279012803329610350034255692974130405029550169041044989681990751484911414600174910116703665405827513839359778427504575908663842803738649511335224607474152853950024814278768246382339755697039500657570540835001514857855822345384233534360428687168051722777988345198970466933012100799686036927784214881624425790625252092473240178134022038609813706024798297173888755536891175646818130019056201464816809678828859121250900503068753054074263874191167609298759093734565294566044917880789660220635986722103671369956260712819707268083393111808181025000279414249819901072143932348630725384463950382574447566000380922715816568090696757418893425051669877988383784946009300425140623244707746112800951323819398926501451758703758940729257151768508389900974990592690946789083950007517622112647604976690588226099761219046608423221279722311653348183560759679304186556057427737410110038984304647559106089948247139200964710900400751427566910172181689518689667266640550621742114351246364257221774992038254144093755034494666771471142242971649476841360754939012644115173667701486270391094701630284641435144209282712273743344386212414754139271245735621433402656246545957349521108407997909662237326337157518377225974824742565894737345825619973704180203017878196442746669599225795793137770731349754158600634980669474339339455582616656553171123859812024371092991195590705347661762952084368830268791193513882287039492000589264145038909652211185246672236205628640852481882213799168364756144793062526796659389582812190776251505770673441831531859205449851537286167497504774577036439734533417421752521823212541325456796110367422137907377619715688814351747791781029130505363182741409703589798465578941577444117697245847469505592726188957493229157912592885096854885850919220820171471084676269450723933949744579997845444176545332237772113318539414010521112054003159444558561006103475540422568671616492769210112782910776828292498819481869051723246204251938637290730733541038588538893019309701509496757521822017671964473230245254437352252808195770128569819086411778659631464855427913937900605811494512481513523098275371965043519328110346918533079483252359914692237191134614722654061971109225526675969386574068544485154523837954065781431475570354645029173472455371087439258435217241725173560904967256829273487521064102527645677945709016071536891107010347026613583241032529182018737229920554264917673198758569011454537443123094228488743124565872222105044402581985311573403482773289301541141249183276126354541067071314621934972673035436952671411223947705183662361618884147596548719763817135502922097003738698089881227346119544263699888624779726503789638316574830042423251694120682499489819539136977879857314530604134342694176607323145335427775646542125657428630018607904710222734401033399183333510552853625699203481953350474200308288219482496650290925994558762689234990087594355257745112804971927579265106408466561228748207293080048562556540314467999370361664470660125393840355342784620467480066795557236078404087329939088650648547386591350766464544569555459622106597847803260429545387614755947723740029065207245915739987300357780874906793981533518093475271256102502346890478053149419543060607442740829308629131605663293725036906019367935710431668703172261862103291040035418457950872514631141883208057962021437599009856408391782351892745875566305887890387601162931666009148136374292162335737317256221162121421005172347431325375149624455094094143593195645460980426618843028421959835440933300269834890721474448530115619907008937549316814632015379993166078250279289144372278577387295527920443518776516578218802190422548586082932370108402753521231855560146834392508123845300327661481650453853538536801497357737707266760702772346253375661535650298986624939919182441421272218756462892490344387021381180306238377561556059184663344173277819470107111357619512981476792996517347374236072971184495857322509166257428016348086275148418814022298869484812165911358469795145508379677212106923831753175412677258586354182950682976006312211729152424728242683931705874262318005920508479565616713599363877227564356349611188256216487643136929630721267065753780407349526714543750310310309121296419057399611287093233053996923554027494934601241051680810607809345652395620075550944296091582237856124085907058542749838539581028380738195852149909465839067172044333619293974901577225548906810753931154440716382526784069799676176416323792605623394841378497073407876162579130881867227755685975909427174744558955428080955763153184611017500914397677112080072219179252073984334257414413148309665472771972259208829441275475725627603121106629021239984341677449703712092891760284188227763955969086725727159378004423460895259635513305024079297111754831853733060765753503949665902043925449421607940601361624901586683561814262046395096050048473797819973470820317417339972351949562402570783144199602193631998731453073775780195407572398082399966041948652944847517296362012577865409905881647589778658539509769973051911976502727012186801269037800439211624983244032346334900903604122184389925952357391821646216331660467827015067489624898719936784691896046694973831903058393887439119738863999400930184432759106470840403939038969994120032407631126104927698153019013230604233205354923230080974931063388393935778188153041649680784101480827828650472839286845360050392436318791346182572199767810986918802945465228761554280990854670851737810844090848335976637487265604380802283827866028021147884708430193991548292926071754402145418421421508953880067903284225258143723458050086033377736800892744361610708057295115893109266983165999053351946242335877090515104986551963630788723669178196965891010307334661415316988993055351943018145107922177203609120576291727218403877926313557404809712975308160320518929073546864517023977910866467773370972094349783990767912014501593658130537981010915730034848369670739899854840900540283996395395295721737704540402507964860567211757471391687165471505581544269030324060802727975696473343251480498951020684122324293418625376375062298998029661828050454830087784650899597278994280492051461253900926028099927467229900815626083612191380931811497637156601928577726198116988207574392291734287613800916656899508717805130547641858972345454664820351301812917120486594631244758638645295104139621318656029912143004678628030245452943720394780218096757348303704354724260950273773380572508209329907802561991137972670349740813513546121337283820138474162194687503261487412102673326686526106235850855191135372534703313385313573457522133186219145602628427362571291035295404759690764202970104685519460178501721504964444167256659323688847108093600523157337409520439440846230284658480644792510450695718374631471923988290060567428279025638479874871707979316485533031936964770730340981784562868643976246071136410334843098940874810738641097131707365027848392293134559139530792897101561342077104391354116265760682891937298454283749194844209651074662852784426899576903545140585661057498903645143488210190112856105280897249480733988079562620579644779782054925652922735308886901423907340407170903454299172702932294685946885148316599313293339146516170004624479472394748025986763947355330006214540997235701720384073912994569709387920257406625484629771488493620217289911497870432433890004218549322418065170912576317960267395729684686646392815421358443814495255866667194319318303930411176487607002506139763876663524543160751870947399812606150540765141748759916094705477422809944234051782759705841985541795422911855922595648857833864661896555048467010519174058966823764219496160513857421510484473450506498191410946332594801889506445391187009157481183663851215741193401051199455186925161329756211680540124380707895220453467153037700361714600349958693358520388353050285419732617025875439810635045108550211699513797593979418432718831491230148400071452484207702303134401583958690005983662994062905350144973950041262116560868662742958005952133546688944586526542881972381522932821737751086620530667563297748460340249664091244753952779467452933596857698247744256909715627807245485476181202661849812286217498936278702353664403614299842438075931353290651456264125073915794084373880315902094387382600281353145568732595376467299030233468677060710854996869559118015818763426680588002781257076454478970644226233574370713489229637989739258383622149057525443709143591942726832243509713953774648574430119681291088516211947781224376301028170183004518130168052880294741995820235538977119763630067336540630341531348858890185866809415605219254912954142250339892752062732146649159153825485263297829127026054821285018276369934191923980481679148569247820782794570400425595547528449885068105505415904293183445407452755223823942145668127606119919573558213322893887564491362271661465407611705191406117307137446528908696933743276556450376477013968849186420991768060277954582720795785310599538097136476326113207991713468859045844247595015578608369789503749559462543646545704083742528269140503308759630350926020583674902061411740727427898040910577168599515378603836851790395583301523702094218180851606165899612363882389562890406466965613929157007761276234831970647839936558626070770975689511726310984561254561417105463704078856036323105351586426424359064655598489459420030938588300605804270638160238457085709185567899918575793395884120229291408262818206564597418922261870400000208867351447658652429599963589435769737295650594698156570660362625735959429713400882639601289953559027797747451437021944297474877369092059329694817135529090447735808736651921002509098760675206667824681587422908743942798594361209065018889565088181813941303524365048581824464733159632953195668343048761265200938529388478953605391629004367984138336733704762278368230080228032699021345775422740443981315350202076546882708663370475747378333647953952176250718783136466101712492936994069952341340417496135801732751844799185821949692119671751909721714549324477917570379681593896235077785513435013984511707086075077132666195738120311929392538075589028467067360849894400435841540443573112042579454531502613285065042736541106535506235059945540602222272655205302403468507789481041946697780358909504064546082448339431642713277846638158558838966093397720719386196345880473336604231342183248152622975144472708819050606624355609211549109088090087199155541858318277844219071199089232442456793591878875401647254916251647229258280206459038706257108218742051909611830092637436041995999023552956083802226466277920685931852304773292299971812945432424379857684311545720235147570605726947632747343432893670387691499753336262550834921117410896720184889756851760823689743544740061107504131813485593560582080849829244647454170012799869258078244793437333996683049303085713097812043580655102010148964726730236037824103226322678226079772360574119949690755315437906974934430306495572675990692023144466638770460632830058085689762083765267347552248604218264928912638195552451801422281746395167771742786116660614919993789412434764660477591414856100906192303185065913173756966006311345189396736923813561146420870763256692674806866511454122676586383600963066074263286260613331913973237026518688915969825310519460991562580209739534460427099354732337577373381619413007021608126700981715957141839934570898886272217664876652621399220423137581678749822175684675613654898452485961129971988907867397956462923050059917064935756264991586154267227297913893130513184386010692292084479950228922226086627556840332131022540497237759213481738462604597732776531280175044406592954463519332589576363742384679733343916803741706259529260611751178718670424108043198927123668849406988923702059669067366000089814076545903175857217715518202697275458483410442929640366164254665393262448357717489626581150558127374245628030180165720383795476892624049129455838129117189138785331184523244182753457932436375625470991407667713865716288847763796543808389212383399934133884774402846778298557526839037875670276815665928473158543780215605398291868601952894948175340724311699253943878899852775124125028074439378177150205753472285858854342390409616701513645068218905189395660924874671443724493365605959376721512413363449373524154899929883549659057591684105899570504717057968876918754184807390324144060706449981517976141719054340554523995640502410809070672310914793483035004493161594615931793053837782143132881103373318004353531370683618758100469818696624884651509217765956769797763441345706543467396891041426355173378231973187966585679007795083587127276736475333721779075121080282694006018960759379892321390014192253193318114766581124604547290485676624437347349033500130061142244846509072679845634043860550350547082148756408295478293556187203320504180571180425864032214200223019370289077243767387046945011551282714109495188546245482806201666122249865895838640402398612412399290072926873504779674865511689769230843123778944081555139054254128973430883502867263996925730290478992092591259285541851325819937581987193374453017100052100300608837747571844655226250752201682054940206200952948764462486952323103846738466556286019279141948879529745287437350749390847064804274151782660483870070213633966307822825893477520579129229738172413676556032443831425212409434000819258767604813570197371515849086893893324361918113893704592401396677389569809142840604259156848686520112733895507965401868147564617291080454583333891617709768823897280543881457867028498606474144232223078274931980703790861754899509198849251863323018709164005499657084819490046400453011242873046510594306308895548546448954854572250110317642625763997400466669274751099796130873305904345153951905439668866220861591151882631463015088704915920788353383346065565203431479450440233309116933819734442112201811475318987991658565904046943700186532701203923851248620181803787185527916864456604007140908300446356768610435565191166684658366116492567471330787560064694436237573591052247800620644673393942889255487867173109874494496548209791054426527141086467212801719013349810749456808825302669449004787203809143593221623950329355040952653156006317371673309146033236739403369349200799044639805464210941035659825012688207315957747253319728644287721193607075295224957704296232289271718365379820924033574388398747465547278911515312953541687447368236071577956687308220243564702597972824572284842306296044575673462079837294441006254096717866047046338373432598774537194647793740878357538094579513126666369230406867405405291055469889515163067260982335520633770422119790504895358879771546367181108466669834937992913965447523704838401584944365841276683794384638823667731266583713257667992874752731004693322623848004539493180016083453971941415555129896015931601865041690248945480013116256046488101676096450030617004214623705863950816797823145737425435198093409655354862020229326651532633523241276872226400028345324260673984139566380733324884527828967167350937707339220604015538740252867584581405220386541472026752271634116085411029933236100236062984084045410442650512302441221319004091736086049761325333153825245697388516334362028727088653734469944065197225098176434449689024574794377740613111751761524137769664559306510863925969110814734557310751705504895365917000036337505235602816124323221905539425773490720380223179278657929167805173768351257620843804246837878724386164521017271471710426716760496396700936276563372635474536365049327914838443141876212429736979213286237053251304240274828354338014028994167568973958174691638714554562827336746793063269170582789628413626335444477379528478691764505923627882090831481981636658965260482626157550958399228087114818953821227602210205898110499818467915083833657542281614520634549678205742139666604660808080380089179381727189234046282280169323946363220940239610680336706166932826456095039963408699228195889760859764724690249964344197658173874116985014393408279941323467314051286340996276126072282188112698164084522671342269138178978755289808542901245984335060399743680710694804972263797645080242142785334898389806261604556713766556711529837267791795046577799713103997168087236586285219829401819667977766989902778684648661457981284226120843722108024612509353684295406144315910176830386081553123796082630366698263088106543780852530532683871158011848440026688336851388065222041346260832074742334605961353083131646206108286340583593817466725942416928073998557940947410070171819057168750051246939701843760220561135650643366248214016012395559296498326500444629793008557633363722253423928358139595284096318062886841323467894666050859449431664019573953364092706565499660935154893333863412755333349264948044387436358995285332864237685093922569985845638058862698117736383744471161430908703145930775241752017160578171542243410589329086497713128544297507070018870344193724041825616666544358397661916611591914322299821020190373967531312061626439803085215463108734896525940846159269223247122287498734841559113371382766897168403297686334941299568156099749610727014209445325055954217883188866588203170732749815605203801282701750535495597685159691667726947084286695578467955489228441166352648259008890909859290085499797792947642393435018421253108815726340064979683571020432421476319123321402677156941224796719042282912106944592540735442382083922966680564404327816422077570573255338493871744260479264775923998839392027617670869309226710298516766784635046314870012781816713801240862415715551653173612042780109403225168571298363686890422567932113903835261429393510195454047108033503766803378738869902107395992314314762278824279663526799096347689471706928178101736171132023251822469818048056267769282645643316365418229400796730892582941759723070564655301151582085695975804703414676665289235012713899653159018457657383214849693121267158836077066540155736607138629902874105759265281994683962726659305221059790616313629262849988813075177081547260270591583784476059301154211484891575950142835185770012908346503742264267667599554561186398091519910763593366894140157415691214278970538678029377952895912865580191877558067009005530327587014587228806598313829152147824311507197940193827858431453102380296561013690810109638931464339696731021760448324961083063537146110010703471138155908882086606520802620800021235610797261727369322573973754332887322697830685904554535042241024507204743537887560934202351539568195129861184276630633271147228199162153518867729416775751617787694768811193420110294874570322455446636078352804540711200805737657724554448167754941622612081474855901053513539798098504317411442298856875940278418133288152150313851025915557584284364061448096432205003186734567052455897990190779174636051362268797877382168761002727976651131468498070131023144922668796925371418175088904319936203977855311415210726508016067162734172898740665719988989132665913002784539860643789030517413939774021585839101869663772816053415645436310422060968901752491494585520509441301665656661485754229845397821771525567359060596084255032131239329304329409800716949050594733322929812720684681745076388100663588042729881194717238221230839540716722437742326605930594008536825867116006646549847187673114665990239159793106642998606250602925378847192562764724124572621419223360910843080295095679229523234965453088560527975292852789882683672744190621049138627894214022565556838134575158360056907193549732691854784565109781024036198984681993247751275062249388594691083339817239932941595120697801185032754210554826241344096634504833087827429017760538307790187997228307123456510301703565376282960687816942929495338330364373452243153420927972978785608174109423671515495058912316584283699168659741043174883899891915416811484230262098014117900330674004966355877477573456895043721323275786062209328844861408897170832504331635307403231549900761560426811492278201023156309013472043854030326832995502444278352290410253447015133364806600555657028647897194706110136298739860224428498471319978122511559965375359289963458190690795042133480137152030586257037554440016480943916943056856364574964402427834699759513010305946926892564196124103121749882679654302142204860452651311993223492051654154035997354982566110654340214951176293559419114303306348874014252797708966915881450526598116055350864206858199276935235446884489999406403378409122359159534523280035451703008492134270613407536165755061264731487931875669522305913786851956943246740262973549376878599065236143130702125104705980689583055393803810893946298453323925513052678812436762398599038571566507125719064693450992547239587982683564032277916161411591451948775919546493024488961592160324948585634064529804748324390132700157052652373969593040795019886099080443258655504492059780480391390631892629402719554512845292161177710222027877872475574816380069844237905766886243717356970797426704047597558644790247511690436111864848479798142523307730167100607357027869821222093035263979950540340421870573769122347084232070440483748367156888566874447968943982338375834778504894571449487124413312620492582421405732899182056739853081167650406931710863615038475134543243944496638815670621374834261003150786068253018529105344447594795107423596755404542397920075007713238149993989296901015151463627516356909511552988459320072981656541170834691765299839956193013749488259343253453610774675957727568608480189383711630379993520782136803554018653140710534876410052446927891548542770312184972682083622106564432279219177859855420767860292652276601218542061373122377619155094542103888302389095863167307702769175901094287987508254457111930091899617711301088778039040033158344692045452110203636553635235524176698448400067257748998659897666384726726481854010329010934371161793354416491762856735721467522144271793489671505579824866315120552733731239904913551485994150728480463833769808183409174369902180125505514761049114525099072104431035393822691362326483956895713904236450107189078215485320642940589511084343895631684064793586804001751446255672174437866359058327446420436933063963110865447556022873841949021276745331183695999226094909102108909396155745759218664442157701680300671120468793728827037976484614366161283160672685653414061299434039075381307003900093702956222976975724031437354882741990914170101330167957277674638939878867398960857960455749977504961496710001190773319481907205028386375934532551128418587704673529986509817435401863709459084498956756400439797748366604077411856797678099364072514781611291906431050576020437215808019239654602774772363402634836287940983372787631045469168052628556866260613963256828886463572467431186418137597908832055157897223059113569918363705999444702194466150691413443595885532486557199277811247811872696956494299836976850241351996140755737744642239210078832203792237488889569989438886406524355896728950765320423539690765400006255126501483953654342226224154756853111649167872885324738845182354416555595651149503083792826926924382398289360049588583029640019178249940038070806997968303726018665435814917413681795564998458974117281371723974397902609268989450511339594881620134724217571006980302750650683528044330307508701897656473088989874771852552465139787682377443713195512292866646233170433835439414635636180212480212155258780346407732020553226171939085310663457767149670278807959647599082504395668494603182333239018589756025872739042866791198871403390310079242943429606643901693037179466287003810406818437565472331010149146048921657873602500394972518095575155722139173995292351070128161527000566562995973798220780609155753704324007198916416793587890483400461382745663408023605517993572384453052143260828703226820534150430579338852072957057338455000566022029647744774521275756353769130008303733535132222569183799302798123425978133833179690277169633959157576030783320574584091644018787970537668842052166265459954282790955283477911581072848136381443519705730593301525486877201043258477318815753567527144490055745351482450164262216659539819058200516677316348193557586491552173841593400189420545734675122253123616451060304335513598155007334962766478948719864450896216171541480391075100008514421861276669116127423767418129212055141275477515442893910143069169821856690199095962309610517996747977819333947505768999595025884356512838224253002356916055226130786051989886759758395805915147937235709971262925191033444421431724073299517493696060267118535835201864773559436276453863593723432152618976361293875274558328581386013919910661197005581007744380244526455776497008328994664290192575440783306809627813818389538348309299460841123357871279434305304902722033024492011939072065107206400552582376423703017716524016492764222265598748220509425478340097431100414682653773909357259566756875666471563796018891170312545358896538763406719810283757046616529352630309065909738617059162221721537222306839174891895885030122582121904010158457070352821482811393586116103847976573106707465967674353758188752034518452982005390041710985777978928070976812254020892556185822873986730104820375640063821550557772401765406248054386972933308579438554066904357587470617829981818147835310648722981170359830863253722026757371492573010919046902836175879659990634363517054744995287995022293103142728123397251640249192430138141242897418244431556881220923677876289748455829372481794744587527603088264976038862523619777734631122064087356497213312658598782754084305631416986736686346971028757015899711371458490110993255000542634108894549277667712002754707643917831725134163255627750819985350191726331545799162222382341368405482323780667372073009755512964502458510092045453200309321479015814621168016024719995700055518237784937819783102013702164280165642466049257716712935904385118405643345249397776030712601108259242134514956285147803923837011787389450411023458830114643114692584604545791785843846499803037697730715892407084761869100476330591178995953391645505637447077559878232236139973132457401515185319621187514413610354213172021419370705500949513036869801282808851742890772677293772244499220978947903937148688276981002513610857911593367429810470848881071703661708143361191989346682687812108897763144950021263860354765806229532888174020258251790351665279008419612817683793947256034301441963819351108068143476202227108827815476831726320416953016746234530634264371528416003827638912208202493716130785151697934744473384094367629137162959579693133607099878116843782154735504268669494179683071374325436884968072238212780427081845332670860363838916773259705153974238726686848216178680988684146744757681713863965118277364047913983010018839243650502618612725460745639287001937196137947301654434909477223420976011817367794297520085674283601613493325445324647841402317058747416664839195401351848313482976961805700258591551035986317902812328075580198622311060699841176400242046379873122262295627231283675671428716726116974378542000914743926932927661302596304854434655585705139156661594332020451728281846178145698766945215899944997539290400893323410077268578963963151177421905306291417004517906944637971155168137825804617931706144598377872927167915547431881206631930077187039075676625491572494562190763826752388217478692753516226379119754605801486999368500080170685198211202664234289119460133687883857003506734492606159973521879493232479218540567197708696906396242329549727648070459503094943141369789493177848565948960110245769784695627446580530694712818662795149672093634954700345904592854124023448697072619127933567146988942277178668934580610201641275841318245335227123719935607318975846072218243789025541284587846389875900644765132813117117091974604572962962325304174052526601977724418892659492032765002087579908458684841861961347469167338334286301627468230911364426479895371018007174940448444681663149277249792566777432008091244878252561433569632726902579297744938292687434172033591524894614892337642672730401984060214754000956716712584824694290155336909123454456493047657506090160171264020828533927625200897468939415687542279097868540246173746828985871051804712586126607300671704851888651025691544234591010566914449419198922312399931211707966691977262605095744768468060885819625378558289107224091102575425941511514911072116807988002884983287151251629514532089260171324845671338927246317923373072866646304446154956165318942612108610391219320926534708857631384901130237027639136412903343518265422975139616854978811658397019207559156574443974428546311623654510548447913881320035154397322649560119016441754998508114257803255101780688608654427074738267345790740612838237698199832324648391181230143641494528308988224949579297315048818225213371547153205611818106119917535509252547545769978506083885666987733385960529840987085296206655397394780268706283067202561456925249942080222271919610227742028995072056709273768079078430875015245277021795050634418485204306104396286696477220721509240922303144924498240300466341429873373797856523993272443519877492215469647632048552024063435466547137460744565849275496964109522926507885349341431580282511724820505402480298478097861350494852389613667428562439178858585931681318121173552736791111778897549490175319944315715040905235612181503343650556464177093863897069839366067468483174953115018343985025898654788426466719235893407822261673411975577460654471542637688891127735990282043465851011464117095512459876035116935341516370787838297724947026088764156752551013119137989609747029539321682989863573217635855211086965136595187343571395208848345045340022324284689701017674946810822119538124448869256813964708286129691793090556620047115623753838597879446015688184361145764729644304973272029715894405339126449033537844096512763771968243264043785139822078291269788649536983657282598567687061569126894518976128619891804449546581353415289730956019293177325116207850126686249323485000762499023193627240623148821230954730503846346849574797567059164197164563700074933338533114975898000446723098055819445868060382784394367404859187397461611270170774603570974463706325445096166340774380235112289896776272191256523797206574587221467074927805106740821309626866959193344749933446524920276711226008077806710326780233090988731639190713603876530214829295414816019806141742758661660794610311944653434809477322876447684374552315164622973522129271000743768807000331799227429059081394424535460636054773610905491592370590086056747342414181832012982820921498478426482992240627061455807793956054147554653811881111657020786481813119564185940883687731468680128238525203495908150982797412473835165344141138128617290478583229963431765546152020386589963529468149871236393486919160874169366450296963730839084931541578894208445449605361894905851581922990877423994870665565235479106030647833029804880406501016554624056175112445664461637337309031586701590343635081734428019018232276141122320495407501832096645216185469087982065271070421691129356370442838860058433459970344493241845668619782160139121674637648184265671767019148489630301423412953201859594261885246835946038424562268331128882293257472126393060843896019470583165627661876453479972656933029426065087661358461484567692483169729181623518144031290727640998395916485320076328247674764709730955115948454454086313528736285410049225906988647140988633608233606459871693201682501301575523574348642800275395239257865472624874419234220160196002902210486066096638663413147707381786360908450045483988226298563782808681121216948539388052354466615428838244460997783921216886502345668995785492001167138649787411000952542139560218884978597411669567566863250782521282132280563945720859692686624835234751973021642071035171211135569155691176293118921988730996068479597153594134080150332088686982779990879447828837640454727887849869929433052069156965195094490939580019576284388253307691010389559773286962779460316112800456642667930483434382958521459906312068526184054094903192862320595303757089191668009827232329887398455862995174226817034093870026248247213336052166242164849363613157467668607905631679104976697146405705636578068991153766883059753180496580228389359622588872948772392642123101044360658661052155405519056553623480629272133560625152749843677748316247169679909779621119927364881715848039261227128134790397649331243340848426340591869540683715118647536133950809295313416556804426285710532439807153891994249947495607311948656848791643729540373638456430471778438034743807172387604700150082786946774137049801843208216035633346070142186573519410218230468469648939659529316506115949461048560193375270909574181454534485572077354291544620217380707052999475562751936415047947422325151900846558285629668893542554556563194780247553957806606107980651273556387966283291999487431604817339698892541431453641460062321268145579940337030254557360171182525832162799355723330372243303032937564158243447345378750333609120741338933696526069435771971644228262914237095203643218105739311274924101568688820806369575703287135096513627221474851306601016725638105734815021354712672827175564388116294359639001408820583032310473261280560631607820086312936059101444088887920436424474948791575922872333914142106851648248710229503699006630791581921663176453655112939305985795257487144665637773794599922794069849424978982396007967859575098774554231686433455991224342513117317963717771097093914457478835101204242787427258650160034829079407651478425076198560429945489273152447106241662862788717714262010854125507063630292587164335827791089656585689419121974629573939084818840807186832587486591807353973021486315062866506532483439801050147195907624333498709733006780346503832389402130600577407845222178475987553925512457655338181924874321861636125944731742148073943568322192718705900617029418488360947368947916468570643536081677162246021035087385012944225752252419982155775330234115042788717797374221448467569651391851595526871028440046330267494901434297047626363727271353580536717904419922249553785675011644731204039086467989191003044596398888679374389067203695075724372592709281427606204719987525602077450454696828976434654729394993397186250468663526408424937327056123003887694227816920221343217710462582750741499544537475499240516565684572844950958618463274580430698894129540494612073302490656372283307455524651538117542251112728017701211936110386286805705258218476240033115630942681462022377362920777615741939666741467555785147523140994311299536866015601969083083017582837178763687087533976647606874086134936493517490799495313951198612525156052288016008242697984033142691861919075064295123593760261178214749331090478488912513914747670167135847180240538516823460219553246760970066720865351466873311879820100930098128965511602462220449432745630300318689386969529994211623041653147698957055157921735636223685870824231979921752171963085199051827197585529465791580268410944678641561505201159803260717521217636789015918950284470258196012699597482130242721642941685484094366263833898287713262457434803699546147032505556213023957772854369352347670064940844723810185513821734117574026299999679825463329604288179210000446196057998623633829709684819216689765308527955662540423081578340046726476115391748013588789648525041987910290069914332695759307742250398240353092181845650803599306931894988514472171889845237914328828621988685000905010066010166228463034261396455361196186221064769482868470944563164193450928728220004040728371446655862845603757305891755666726695517766651679200087162421436576002397986562231195681523055102797611576637653867533133369532833213011232453911728908129750680227725157133260692216549932461601141187487262581533905225145909033504041952129412096871585007320294125904023341159250938256686120479604392722471687624154187982687421804997812517890038788542021174928665916793467972654622595162873871377508817295743476616794315217992557244002788761946174481665615739510657863772088533993894783032956247685515291754140954142280496194654379170257705889135024918119892903400762672440293739113678775686375562109307809168174263117348790112617710534317854331832627324953987782856679481609747156045571688544539431816527675505743406158066895911531160776814549903200181264828642902952074207689033124290749269344727247168818849211432562325914902093976113224798608603790206033531402970461667134293418553191910193784657510150454290269544397909650043392809923241759723905898846804746847837834858855196153056919499179355486323930926974637594041048006104538828910649385680128941642792778140815612388581466393302384961824784801843385664751378163554816209360832694390063503543033877743224194657954200669283660014222766241203113277894630546328045024568240376977065100510355317736930907065767915995944150367174559530166545606050609002916483962493775160640621927949465762443384516937820039682986351129927631467513712709189172686324520738259766893943149101851120649038694278640062731261707590634822619232432724390826773746284529862550919719545025302009108446157068451386918729580230897780271249948043729948326515636872257141027597558792824536012524530668393827171522718846565276350454566451858141008052727155456487751631035781964322718110536438104899485477870823854221581114380980616102270233617133236905869701652426230434521707579472204942909611547245528367056399200540086615844352138119982637050191107819733801684631065799083530048553921212810271986862018080526945379949616313746799246021579589786623120329304077981413034760981617709858172387960173088550345022628843952223046456726526243624333895381754832402359470471783604413818642346333385567912434595003553462194381422021430875609770008824451723043398773739155602418307716610767518135322150018710357887518458348183577088414727262018276718936937920225462852993222809660048996957083245579954652950594041032734628488462993735778847749667027881287383683358293031224657955332928388193483407207145067410724331501002082616805500154811240517113599147220601791992162758178964788955424628660235373792068366889488776112597439111403590779055116682251365075774969344080311848503969873442241745255215127417378858018769117321545490090328952486697088072107802316872942679336794214493886074598204966102613921420880337120902381583026578691568929856540006252775820331112047397073056743452017491424746534920169953096428503076409323862622720582865730230166164159217738070309812642893745470751261087795998202760084930015469168355569027683719882474912303396734435499417757923046377743141125378788558877899730152039420333500254020694464383269570975294725640502975733766863272300229856993281238245786642105738076205274585601463472540040801141590323732594798035793273062727394554428525870352489861557052127202475195173580718431592209276818216576551960221307556809113897919540129297705883564868402088578446366781083036565458812993458426206075440911373480949136181415487372383685988991932741466118309436021242588574232291736564850423612631097818082658317842519076819018387328243889739574058093724985616505720157934977783566356210450948723739388415769504629514477399071953011444502306139849539827139152219570914548703542992098051312970617882057531761668322324689107638931347921290228554693229650625194678885503794332711595917212944344112161261057390549872481478337602348799370149263547448254681855781279948713306299413518243210762495125799938249021402470028343396647949507490127836940658819371789480389354800204662510287724514318751172472792527479350419733892320419577663042873067937837975670599284185002649700347846032338007699044248827087998745077725391664646367881568547342238117565032104018551523569132078044673171089062655642134731179351963582773603560304772116280392442702328070409784217687360098165473695579638255413475579527641195988787392954858023788894598691632773054090218971889795774860026665845529782380543399804791977450492802191510322831195887659247021151499962327559845173059106683776913147390690380993514231908826411205093650036043777014516332502601828156297143711363472378402613498217607906103671564532268185224409883963255841747653633326952132364234245297920851566744626937450441619357053014749868561860510516447272579981681545465787318743240403667881300034041042668784910642920477857332821844612842863186611943230363820862510414748391201091141757290382314821039949684722241415266549636944966508507241753635031434399871785093735739292235911346160176591583345887230112213912963901812184927952693461639418368885174930500075435192701995706557580348867231960599398662021344730904738468481258593307211523290589187435859718161055472700416795106173668115325347968473569024013505633463798520110083450947522305597246662710121536379970866616779546588542753413258276490768549801899413734460780108124321884392105458089852179572659777591986438096693929549614785493104414271194560296630038806968355609621537042042769631191832638098906231689868428575669190073046316445099203990691142659800725995175791756609496288663335246934677182534972498704833476539470511160590625798024938335640309344434900296904512517855430949723953663311154438476834705008309907428364925803304767296348104739280631330973536661923067874747977520878853291690011527572865526292141678955519746359582467522746706641810343664510536626098883474120989787061922927177918285370707495954632575769565169225949646944925561652722196405939908200809965798786190738178162681522560284858822344936282807315019375676614202345166738046783282159517344516710666359357289300645775455315234431741826698066840684597380032140405257904096291213703892416770233344365216683896756575448754063820631861574698781360443626106406606825616155711940444772438714570849293618386995426982494481642250846759802299019219283886232599182269492993112641862146506562399929206264301104347288752503587037099627633503934995032912580490988075639275910706318661164285351305403204828641986859487095313843101403782391078877331834392525475453155557564125910923980670425306261297176628972058076452697959880001833078329228340193245578121827068889549760096845140875393965947276546324925939279903234313772915899427506207559816971699520750027380012750293905832413352139323478351755170956232194187903299317472152218410106041116338261783737706558755488682535357251767266126692714981270517202736754858618596573076420808197658500164412261031153841081877602332003614921873501712915598665382958366138361121965193461194671129497968180979530722764427009314599598417000812159274979710580086866293373592691466263349265019246209459456183897435171830114038342128731578485188785357140867286150321919040132403436809429140394719891743923498042693144500477360297736134218306888783987668284730204269524506325579816223503246866033358793256048780954263047212166124133741014668148928959195021783937046962896025136507519706208747491382850999085006315656388070129873567891943460064902250710695760608595299932590064990866557804401398686770305144360616192790639686212146791277335946591199246179267121591352691223174382737619055987968604271206344915892523474025239130193680999874240501296858280809623230264361387092360021182360203068619277575340894366291670337819081696394342493321388051637836396008318855281631274078955156719872540729002032284599164938824450882618387905764234140015532225911722752299433973131739647906991958614477944424390145964336792100021131750637589249799569807399057514606327488879200207279069376483776462779331832890929718623607965507945361500512867259118341205658770883766635552224222764277473307705600024915051108214115701217323259673225094193116770232364848911828035117036010934142799198427883619292698828403530251936589611125016589992210270862048184322072319288370536224979824651376486894058197073850003822824038792020511352511633626385639106085845668569532273006735505528326950176165598776097954133451213341054011031551592033841310832249506990072836681981315093818782010334185534227820523804042416548724475503446637886885028427952814079874978427221735772942424814070039942009839028674748707519412236861814827196433810815152218983237590281424775586425785234937889043190942671716738648485033742494301925503481145784727221057200743764496647022303156514154319273637707804848761096698268973894839471622818834579009318043232101460397930322562074284172276006680921068531774754897787018981939573994954212405267070912431253832197126723830966030228547718378135237435734855255595715872956598970176961947267414153811960008648851613904656521185693664206686657782357434015854571272098473319440759546875671798707409622724194438818852788940581514275329933264439204982924860483068245375770185361667396684402435964406310456874822942805249965497657660622497944822804267199282349347213451270650899082415277127318439530024331223795543192883056164705483950882473732371769319795168251366140163516188553180500989948761757703930067837469160350182840830827319457747231883590713764164245187524383814423365870545507794449580533665874585029925086688551488876858580889509038490542493579165681569732675826573354099739564605806585745994606773777203777975029373998388879598574424638454010632824696253881785648321304130421169477750043300803497328024100860127885399629791978137621774305179987235604727540758482142303304061996863610804117168012585411960078494458950208677586072050602505805398754816280296603952016507556322690838182958128266933512139121701039439758970439889864108623103150832106609769159904315872612878829653258045835630295021304708055009513663313749373010144244221282066335894947576487609964746758351377396812996744724799843784625607617185677104880225074276840653451697119350372854188350485425095171535923622832061541975940042035067861190313572100946721582137168960100689624996235138787864047065216588728803866074133947581652524509847990196462852358697916673049405221424879569795809744326918785135793785255039050217470114624656721019286729276022609174840216216733709362788158824819506263728502889904309006959408061065154889740222465524633689743585463877372041337111621589500209233661706268988615720282127169630465920233323960679920258143126058535110829196520994805036999586426211977308283212920748788297023368128586195014777051774147258342456526613851391722617711539990901312277426668284680540594301701319206621064307049238883442719211270015353866287297120482730578294157454542422934510242617308153216074431095468631458600165219097302382175951415687597314247018238200413843310344333193343531533348893404178415650957642201418688324293649815866581194957120757438910665309989638731389880769245696399895061722609714700684215621286072452890649474016331151723783643171219923118671058628968293630505601215328244018021004543885014157740459010471588703202076219466401445543183236167651849348785328885687947798608132454521846256999469214157173065162707815771042449201158996136219823568245061285916836443460934822690184794773503985436948200222095284851574643848869151369000172561879309010376604438317206771727060920182242025865224476891671209459491586538764845960800818223083053151258249774923350487955718909668757214952417360171209087796845487315269165442167643261207964451684704968412785723578365389363534630043591175677016298375269934319409743145112084944204826307746198737767964577716205413215539451271683464297176470620315228780281782764404450297941713946599287113068067297489535501811659741737166191937830868355340129893125550950076331157692069223275338141959490754816684875437914445103681791736948454631353243539778961182308216700181435717441096513767000041948743364651794708906967290023793862470262981159127188248706387981760177994899622650251103128953965324654666528055673556213216246183364333650291132790574315316528505357567897536724713693870846136846918109170308889399699858829475911188693240684159909569729298730965683545209566012362906669936192752324066355408988422884483127647914735800341948848159112028903589312315337427181451913817024300074843429464394245673685945105015581237524423223547698416660603514180668997310265918975832405563967465766300956181886277429365422575131511934600632840387984837228754564765202209745941699163814963111370845479204462242613458861970022151818972562553961658901107319209528265605262555979772122918717591539899045219078744278207178138227842650907064744288013622578874856312555949446835978723042977639208360915272955142191466735178667092402311798611823225502912560951091834572520109643271138109860776128324585220022234191121833620956227219255511070121749624533161957578591397877370542613976765956276137744285247814208874015955221679752166190643585316764170097687242724320818657520293655521417214839902257950030375521190549171663720642709078448471868825003975399764715064707840667041292375019629531170855617193230776686890134525986155920054306248254566988293240751035212396631229159167508988510941037017905597391965958027767766030779860884209750649153538050013808791702954923584714640638385371662515986461734187632702465841264888433563133317971272494635221937509353342661088000631369936637427601266770418307074032600003074548718355233006713465196984270437496493177575942635951991892582215864892945193307789811994669643041022634161790782137489273761645413560350501591443875973081493045731753409193524893686075245292442737059484789268939747020865497537732236234973018812965031630247509484913622583163487308246707187523440998826046374133323639690389457534586710198619480409017575608935819813216418334066883394208270152351246365724155931254176165038377877679065837638119266313610805235115902672350400944234450720660144513098410365424148695379800167577062679062377863424789321623404231035639148458463939973826747494707044458812221635720342286885982788727037776537852656949919835069874785324733492076812112377282492220398165023715586550374296746371827957040444223815553837370590125145576493503407065233257014627147453372458447068710432184033476482920311579158142836583115279354807226397559391305937956300583681517647140747439312631117819323387783929980867244176070654946535121499353979275694523014260591711373691293065855683631810025099008663151129681042751345911551292104258255750122655275940287665900005401502936472654217375783979645936745144148887641722353945571877427083272243607979184748574744501155487999745205842646678596090429046649288022957209579145232246264947689938947271462525217231586963403229861049329200569118139968362280324728817150244564213597976163054314718294930039823685262867334528565256485419347443953644120867591392052478854424391312411129880851480546331573921833336231452335282800662597710516109154128097468526602120239088058876406423477559302064287296532695249407320224545620543474262238864222381462120109825984675957327703462850579961884947190149854106038650005704230138949958391112556330602896130893189625687827321119124652578354780954872971348453716181122617009053980456065350989264781491478024325217934669102144014754434311470345569084064092733803652526275707264201510127199121991509150525000897026681320878464760599321142466531376243546838695314900066472749298452239619446967873613243115384295117106310336888791796245794872311358936420729953807749121138585342728942135814711001013695662133579472915635430274009314685055758604825660050566575116993688565719533650237010570636435023913906443281481596224356373826007417037583688344611760778709215577879257240508296120590364908489162641736822598652326663007941190538295570476868872600332666636247053065352733110764797809717830366665651887826848665474355127065676894300099291033906141913226368924904156110834329085360724837784524537711771749320435794456048938285596315047810116159708540306406662766900188538742947615930207495580658512814499589948820675122247379348556365221119362057866550572004125271944199235530773456436023790309390458754546093214890031750547850496586635940091503709768603381239808216154146823052827419184040686640013974052510655441849516218824473067167048311671167784008144604967732220587607109562412730031648719279484772278356291258518506706043526996868778983164738130514787263645181958048876860123776072599599022549031866854495504350728546369260683783866807646888768292855285284282673194226333980767193436075577824452612733590601959370456813891451546584826052550116864081649590896715783359969252962015014588530091485915521535848882627141260273791008930606516214505012453236085532945624247186005705960883834854372471933420039314186610927921388256271856648912278033751589801193844634757771730297836115836305545272023534329738845951550711331407826255982627653393384306176477967595633228206094626837053630952230951316364825488420387322662818264492470548691067243065432840395510748799738874024083732601226290041868630960737760051340591464020918953813766848160634051572094257380247025617654079582939865130560083932801339574858990069050344873579015720010266276007892957898645397011036059082155979574512457110463173954835610296717330986713503148551250678986999347859473665812652623399496621717771511351031509165767001245859789540370958038964972948130855507309925591886987121700402364074151600218077889652721671632011877690425321852510131761351788304348316769081896661094994234663116327946258262096245608540478004538218319282658506406310512513388116695681803779188416028092915621363875384107839434484565113137950633032253655171749493530296060498468995419474641147274621454996835560482272185331306315714326277473065010586802342438145637738325277100463336253177966012166644004713270858034740462469056416582529756536617476111247279312843683462523200436815066064491375124253561247687749974259538372442446897029829341250625904110945273814041294745058548392123135595683695238471733223938555895642358755436353955342546124156581645313888325845694263303990595901130324688663432504236054339446557630828705122885984139472737812919531335913182248304255773149803650992502173056754030633866605381426389812792570155181344130481273924758894699321177956642037185366433164950517993516141534628900698651070473592032853951032740769848487678253281456389805552563977835018951566591670204567075021545144642424241817246366563423012196797669031472578391754651215879598005145617408079598199703496991296106047147719243632251198496223022974532730523796351644445790573404437236933954201416009780779181023636236541220822729611350136820615579128416717323862210450415518143801792070227392598190383647332682510819165804562651438347590509833313860265092602804147271389529407939098656977787344988424749373896289360166340107347478332455753181263416235503159615578312579557361884328197668102319209313915889231107854783583710508454618308009111558550603892877119694656126785158463450283345624943566541117307214189971893358815419966807515654668709855664306831365107222564571597823524299918194257891992042035572203601224644102490305401289460052128215374289046747004670451165914052643427047168819726344466946131117884892226709409268021482792571482194051148510687344690581745920967111022782721080985132851420260223571873441247210127219462276171120095885540232137794984543219807222533004271258903698856093401936779410911092891802744252121352525140691091360312269450426158293016212221609342074740854861441225409631232834870571908634404912711797345634312812495714542601667698305820317777449429454360674563386820292085870724862174506102155113011318866650284229302268496658196357090103931275477639890652229382987551259783433941141009699123385978804058376043718698188831275313898780578693287679896239027623571057846954395740410274845493760698053532666633786175925030498944061844618653155568946587579762828819708698126155918549837021787769436850421710219034542426959457285160151857068634895634427205626884130733189126630841688018599484483213835712309680774820474664009006043525610981947111193134788585916430616419459987494690147407441198296504401446354358815714579158713497646182844655471479023578661745133537768616664361210061340333642701321815682924484277854828055361673979837524603633489797262400233433582520514841099588250979475785449996464580912262271005604271236781347363088508678064673168384869425107901964459599770690727622658991792614284471524183738490928351660903386670209133456208191201230649276928011290212209783246301848978120345603548858221220557307270286714502113654539612868101661612728254100219776648897403794544370933573219733541826573407309278633841053397035446719987604518518694535674983936528006707174942711471287913299611917648852210547373174989639141247951662530045868853376611621162519656725160406690624856561600798607845864850861446849702940720578396253444579016275913726381097128555399101365534766579705308410825630437038769133457804207273386633693025125302253206915627007833591601146996939520187877809843267579382931247260605334020481072888515553156399732128453121854976318067509022070113758949184526710461329933868284982299302001145323234869407844059004741278294910122806226185724589619106358178241771247738731978955065665525930493679706189979324973501989817728059313180464562198839995086535336002957416400649581259038502128664112679126909493575629226985746536238383787863403926078691653716783914137211868978253841572147607750222626953470286364581777703229438165803345551031611077495038297499476955333300399368539445622932430676055522098454670461008959421623165541407268848178302032154634167103342010444333213921898720987569214904461285339477578087045564897743373084391599333822415874222307358895114175939203038901030472042057961659461252787725356408512407816169503344239144518759244514586428992847176100878966184763641497487267454818857640590390996431184611894820066414908553611429678347417420224833019492302579438728187305885595178491331440817786763455660511674975769155137055655788836746805297689785026103523093489268612164853234860627054127266679549259382631060622083941555492044893191088325283821136846631961044813425090679187484346616792214434142833375833515273182417160254225256867430479330596345525056496161346115589871137682859641641431143221099106963149078981932995015938327770414160605629103616752501080569658565095073346466634706231162767711662373568156964628727554531299373201389663194372843984052771157046589612412030607465559023321126992682098381621001388666304212452376403699189587118876815017759276111318259987668422928113005185078855296983377335366902253718873065469860633576858018905726635648608349820100464850505501355949836266693382175721275071865516900247321462695905881690762020140605933159574096703372638898961002427992412132129618489797374523715562664201878592883965394754418438042768550383996280414984149247587673316069766421547552763699477480322059115790256989109889685177065714336590824113390503511880855408128480723961850034487779992189828496887898174969367886467411986948332280285955532261646133088130301237082334063034658391955674156288024348068412871840268271850661264168244669263823950086765850802490203772065228229016462129131393600890203241398700723699532726277085808982661673643095984109658261204583785843692374661155388543939178663126954505068338059474935475368438633226151488007079255153218946698178745928820150660115972435126620869607960753431480268437080990029805930665583538451942323468039831559477499143249424224869389563084407567750536468450077726076960698499812565722079798147311077178210365022279606388475782960179799255209075393756305067098678482851390990033744916205091305229001367862879695778444603198287282714522179355067363728111224035770999620254237891904918756947677840562812883267230446589729023436556962258673638778368534842611210980904826681358360117056653765443856075822325497911765205184352324389473613207606924736320334182736579700684957790013756544598127843540384421561937218814031402631693330867693887946380647959526049473920851814100470320884724375671327194412284451103609524621706461658664447626999637242084008044826807615286770839978665304579613112649780426992077657189886864754815313061203033383330518309373775203459170442676582656412914288964648603099525275431322575481350495843781482008337540640104480484774066324588970999820643535275373206555625670111052651594912276916164185450872656921088998812745048022664837804007826648132098731847364706515937190954171782484201669489018434285543592555982151329905026205134224117318626601545575310633209593129855085040462482570242756276435925006760363676000964146788694725292508066488740688146134342350759574051486302260712069664785707304340228396265085515967744328314674308739796736530640050005276536558153770038603039330286319607619104638507727048387545240159991189256609762672307894101215009201513883228641372480232974008990212773368873558757956319647627278572498733544164602662235353643977892640245950695560792271268639771931370534937702035925235231559602424899302083543847119117396462199085383007055799904006768639639082361520236097687198472749535851320460959799742833458050719751038892666618276670599177368689633581034651272677636053273144270817149075820810751483724953989601494079496612026443397634788441762346535347897561624225364663132526997880690759201773205301462059538185446039634938820301522901132965689882504482315758252208587596935274138884035547825943288539286570862755539197561156013521023318073812706297990097756603609842297193625136625163106045094612978029867571335991853149245765468543551711985999041807836833445429834533001994214418267039999869814558525586866808639288150048412552962053380227125360562049409635792400793625402174397146312954192650133656747403402051834812339279862552681549329358721875249961445450788216051647220526385223522231116642977151348300832966268719925810889763745559759284285582014771597636852804211943539977759531791769687557832400923313080341277178921724047141409266956743599618223192250355419044242470015380315454789745876204437714659508582314835255357124582414023069710147557079148020107598263872493744909431115128505357446386549788017863007359510696780050094675280785756717520527803746842427831802092347036581244391047638664952623712628401647474654925497627216792638497832834483045119685043845955642611951145041934107630962925603849473504765867327928683015596484949044429399048907732212358588991037380902910454806096496285335802367928206155904474119285099572306897597379950851643424503271381344563376639903706233510290600675170125499562867426629973679864811402254739750565409482813350221849841066232590453926399590234108703155376665968542958921172958177427778849778412889584584037854910386281338125416801121698973035863271922957075453827543112758220687311398681860606210937388883191473832533982664606519855382277635792812895736838041543039622802286843172321331875857987071297232460872265497982372637367648869975657549951374644762495045271505444425701684079067533885651696612240343102020490467784953755819914368918641835559427745312694276115799853411228644426369005665507930229493097912078866730370837858448151188342685264952845638028989802639879913028792326404840483013942710240954905704076343734465042476436864787215031250079423553115159510968997982016674216679385614344303540349088272657859518837207973904780470020527345307685940498659543886337618560353558396263537722079305928575119528320816697090792044992210639216326921543586573661296114995663685989879217615348342283927175824886916293097856300846021728920041799259732546793987171411786499036626251300440080049705020040813850472740949393079344164487364677748951407943238238479415583503029098201174612664013660559821810345979417486756334261015220632369531364574427345670739630765706870467459943893729978387246270226603456891407535679235520435999361633534034429058254759966398791012589934153328832181086348991736854313578623789114115280045912327858142434485914140880024017965263270017483237037232752591651790638293570823474050484594202791814089288466085823358731807059223563417150554617298047484493306747523310277376951198724434884069749360773305431846831000577195459149118560675722134963340938674507757138595287283396320737858065604023390963028085900089246113051822937516799732537265613228095402054404676921793696007475575668640711829489895478862158786073419918649903837756309480924614089357209248627152523308547247122115057162379326807967424797221065131584220191020307390971178086250727266645085521224413008609698924659834559655595484180308664583430361302449924419457696096651844905625547788041636186133020863589821994114413821342174218669768042443793449582333779000063095375856539725818844227238771168519709027164014165879687152893159775008276513757914796659945134716996831408403236716055731199258806722143686781902559316041826034919450066290651969968123980084703679156774008200932427406796001192634504185823441815161948576908599980202041637860452098926575525656313287313781696058903645962702244547850556456546973845157083442054943717966154241666086350207703561296816057597467398486475578938984102135254324713498198288920576012553848330026013912491173228693192474698182501924348423761726829369381699595797736206850697623077210551911983891736100297468831987370877794869943895903698416471013921375027790679935441077544296638386044008486019947853496541446118930297091543921149979491715445067205475596621001920687129001571602630591555997733127113255629735199026669639658020146692245339842003679420618899185107990446780185346712806898342761124659883681830952102815529612003879923486077425362884210970683849825480338561838588739839063040110729952852357110015227612937941019890854813339278394553280896145060541190094910266638164799281719956158353117957932390793801354985862981553939003279889568985533583672112179542386534623737291156202722383554327921710129143631399280354618225299114534417591771849110467132048052798424743192525402827095712663195303117973946900647151350635769045863110694625887139518195050318666520806576655857546912721345611794978344428534426492072767897164504692442089867858445746679521609862698275883355741380871879148869349627786960440114709073983370834691194509200130700279703071105096529953601097639642104191737717940031641983103656644365204028653404187157384215439555719555631579784680606936688091097257724298757899200291602948452256779254832034227000359848339466011963031424276380820358735280065746390728651997352277238942793101748666521837031900075810500802476183945788482544979421076637652077733146111687074931510291140624165531194775659203206665495237471315078758255624297211977490111258950802861185256812161444032208662707251752432487182887185078221518375949529321221292692431681366227318974332518574545871100523809844835657146962813103477550124964088053914406151838493323312506801687538407404910794742921238984948547182872931499256993929583664715571382314066456664065633323432451623298472443183993848086431197697692370649686645941789730773806114285965801687392321056529493791295645373788420038093752173463585930866562958509969994465095495852675160741189075598709170751522084351015361019823881214725896672775886254428134985580152186216706634344298099205152099077174270566748365045879150768860341932941843662653581896392755806666594066269282119914175828679225877337991323061155417377849435453112876531568070134676691827820052655340538842245081021924338486798983349803182685433015573860617587423797204739577628191946548789541854264900628759775354956433617395152175953031200797628654911804665960063138831969611960814721925101459528476997715665572623895656280793579548047625485303553038416535020879632559023493493006424250715626415330922187144985893370366277881239773801671617378373279160687264527496748853974840700725948514696936753503858808202593519322717695445253673251648153011117134420110910618023067398345598986977437799406313013968078909992035503911357659596916717196683327319986515817767459439742903022106978914799741312648771101783013195173176279630988772128846381836398639033690104131783195858692298618218071609730707788416729133403638492131757101529763090755124625288395034710577885870149993595506604669659743663484435569233887727159511669481141907090425125071800235610916655791474183129386791035841130313339831971247684717846699032169910136232257990916686438322108565434432302497812830781378060176602886472383808365037191223711766110595788804455356178529127746500870233131148997867299735075388508383288391847665752205957341597294346800109411654591806896637129097801967805385072172247851560312586476957055370246573611276276076994051325014817838103376737468089960486458505575644914110715776493397406470257159529159458935541038411852321541260125543999544043432352899851968989973816712709956788425426911733844975392330215159341620585155739701611760349120431040149957471256495609872152744363533986711601921978682360475427951877688723272530936085390501238480891201497030877578934456918363750645140353852742945661229919822654392470172968570637301615465238324122565545667275995438356653930306618509636568014832309641943916570307755978389050116035664773213659459827407414373316047040767872564328325987856446147525137258502326964270446710745209258609581232204075493476813625367372219252878234238976403807612988764596579477318368788782870746293619941580914231663660836534409440006532542261752108578770761394043471052701842591013408002663165599908086633267740661206322226611049483572332223078929329348457704207258071996289847090385249941440441352367433717942278414622441860699804619728183627410960652867019806614293648916501782917730715563435984843446979213939094421857315599936987036305491593279349469630032792283993433913439622154341710916512290373046803230187868163250862766105129759091094397084473105849036251666259943016247182947395403535176270041397731983833117785199438708110782005258723809488285668418271562848305969205296882678948425172766827619983612544203579741151479675233704338878583533148771848087525083135199816354899280627845708147839291667666972808874649510198621084088421305588938191630820610416787457078920142577012852336902076171059053575139388432863626932934006490330492487933082358157455827944968538890673114840261604176945046881082833299077292820100747195209615868492291441467692668120432957350106353509184081359190105910877560310946610881703503908265629017675506475119171739786824082470757996633711234807177242547355947328910413331755984617370926265403998979780841590383761213702258491157728051945941854176987027650108502871466629816955270574359450889951560429289002860397176922179295071403039928235878283349240956501672751070091622133649874592366755497081519845567967402279632621957273130551790517799317718619194221545925645620685199197404843064561731905472623842166080647394512400839343273575737007369474433160293924445493221165734740321237473111584149124775528715554610949462314119241210221489488097081062313389248785969281218462264329161854779793194986445926836551206320550712735390939906035773884406135072180299194829486606417317027744874443358236077721437651080838906413004395462285993989344041959972028381993298502668713958166585573394214143896440859437612952992043325631145518149618653483470206920018345062389675227410207924128166690770673341041793857434782046039777595685119033721907893207225025325503052060064292051995055537092135543905990381034298688810357699826307974304870865018858690666129708203609899842851320280052112526443687745620209804607236635823456735724492660333561153350430397393320807381076211193093409324476007638939276646658328861805003955965238044107523996079138118143658534823933002811748786565128034879856612238620117829007558721444009473368933788106505791185150262663105099331048214619648625453979068220980269301025789442266302178780422119919768123489913807088519939453304595783041528166490937015764540306564728144540800871007274589021747199633891352458879552302132711205672697403529742874691573035879110248440889463495417505080897988695109797364802038906711835714725288863789581913206004979173535470193075691809593706100344338839463368521340519732728452795123638445265458461862278410795721922316377076505350115740296917081076622062971592737559553326175756985770946359175702331845272734582567038146542690576805340409020325315637047259271442087082013917232932484134218849501035096915774440883664148523443488718731416301477900862024791876175016223580643720699766254293516266478019728077241064774394557127737172031749301694837927977672085425757332315935203279638343635459965739989477635230785489947889293339734829678993212910278284367573706681264134623326277718219412698015397965788502736933940420450173496069954819580801740175737260077198979581623139305713946169494751122663423047293187749178419305276365787797635009171929808354783640969963632655790712757454745939212772227593454753991209191420919066171387578557219992859085171268914821622173609061611256275692849335841295681220499955831532860879991952099612233760660225191290494616591403344084417401253652694114308597803817559329690118479660882483530148283688033407612796106559067862763721502953205583238971326217486626789904566141892718133938131196224444258967678174608973673666639650459717007122037480788484525485398296871636615958812823514326381475174851232411603918216630795269389211417448404990009021683965355567204276820014124447216886992813953857363890158534957941494587763691870196989169809931082388844392292736415064237696002590854956229226487113667868531616911236543040616965301458819727035613968465205977286221860959015027704743665148244022121063473216391635151768481838134979680028403253394804714408877049682630241156481511268449139543842923948340569239028920009837449219759749404687053250834404186267232194388063185967615236648770961821512307530367401749050419865152565759131070515842295400153105213609558274483317190845165756562647564325772569447056727124847257359454882191517178156004609946613743921200413361534188842159932200731832403958605380683544382645693289724558328908425014996401681057439382234847438639104195480661895325100053677176336487110172118184661418274835272957156866249052753252363708414291126084163337985555732329251518121035370207722689494156870075423463783455235089989081926158675619780164607087632118304258804164596655355209900103115511978571348244296570435848841997358338912586186971140484709586923666691157830940492243849839375179414147789269984843887212429304313544596256775274944006866649560351353771292623022481347495338255216439566932841734991457707283075647974824037695879935935895904988530554127715663505303537365954495373021859062983467146070030380594011036383123816940596825416218599716383273207755281330356333359429175393464066734138693456569785614028743584537751724890566749021749411919181830515939081407044796141201007079258957773808992582053925811320486264479684947775074518266409301115213240415061892672668280778894369100642025065382497737031519508785669815760130567728657389631951772256156330513022909069383756643981910232459031230069866010568650325665773001113189775680161819853309940413467176060477185256160913342107083146099359102924346470841854883407049348744922559423344663785280683071944531639679236591263635473551273813694797269592351999400939978671058886917942086244746066711269102859596087013700153896674605703175538035203813528901007919834393479326728544402474368899696804663364427211726585938384325429296300260761138087608509302506198791024692343565040945608084822185565056861670997950347881693019603399910726011894839036854204105801287447525647869258089691361163289610572758008382724551291026335941415586366845920341063971833624706874894752308321859195672640928547459110639109033884599255464951023920454384999290105121055983989961455576740387047003428546915057872453908714861759545517906189516324016222127167622792060366539516708484005515799605513443626110121692555170277863592516965303423566648316452211150968632278664229012024677707849319042535057287321199314332735244493604138376132834764397233511291251780297022547169371074211660266668855429277475944476530580436652854901634197459598841835580042213506401355103354102213026591226590611638489947677388961766543916684056561703203277949378507894562088588265204095682121331033903944975762980686738795959307440222523074800016353547661106632622614825535805565534347001708523977618795968590832861764539441982017432358920149926445885075743129007302309622695205784807794626369292686471104589420956508037732501273282964918884691730471783146824308525065959276181109001502784319620022574735957605382973960009598753414131583605154504750424926144730022735497578271401627523189028004753387773718864728422189610950888426420295034930349201333520241211742054779852571755423004723641768877992090952179664477685769394874997617635248357835440656442360182908502522399989116192823322701672422032915984152680638033073669911849096966065263129050598977707035554753148940854037701115880962854950627270026567855413696450276229370856765246179060485578484147682551174647623866710597299901615280439777271953368378206015506779328942724999323850409858237451174096575298061383511229111434857779127734185150741554517465680270581033362759438313684228649535468986022222153737489092758008934497755130581665462415887244163246677213996017702212227344390818198098909753119445769486195250241196365725358246405108820815465244508085476509454434679714859226760156081030473673318977627585222764410878706154729484641513628041544361353371684229718375039577684618784083459884902464203414637020701246042962103091917867508685417843984633357011920026801326042687655278027614515099202482711798995346116181488874883599788196169879268250461352062480103777558782641241934536734136884323516461548638055470011295702922479513962452525791640571838535018829523630395309977753711689228980051367022071568349093579660903519198464765118118763333603390715574150395022490883544657984261355174667640303823323685414817263531925447606402646722017585508079401654394927266846773316073822900749604168646335708183119053371652199753464867042668599519856147465189313859278780019157364748345337664139690824380485670850982582131584254368001904700136857996991473699560117219062514636694633609531562657592987049061776408971533553805306885919790745517274100802761493293575064067140491125766828586577461271584332181545585928681216859848470540580139375699941588720656346158366590643411875858621438338378592943084540895518117367168149341963463553521551592983237231097576643002754419140827734761422397729512409535173476946158087975523809893117769307949869032321246379334657219843979441400327964799606184717824414317843229355837832008220427347042599001324835098191588142712340298009034096959104479541240666262419379430812655780024526820744534536761331147149272679623101731855681922481502230153450688683087466504737432686780040259301035995735552627782346547050947970337202561420642462125324534337224367016391564176487366646871190894777763351182207919128428487445836042032454871886870406672180638101007474879895488649053719826519181579426032379766646854296532239392129964989335394470792072138945666903172828992113787527123472171211221692515905315316988637523341520837315636548573948419185980221837134889214149877004980671819737942605676136207503862735552704003502493939123742325196073582431693270090264640828807943524023538113867217039563636775659099167254226749524933010836993409833445134163236331739141501989290208396172746723691945017077873967772035646497720007869368416519052881077633838237373816259033306206796177455825961792724916670411988458578692688016829219044130091989047078597937632550906628593572827653029322696057555408073513809463827037020760676188686392865477408865307385355939949283704794300122788866878263078406117282717839086234446649529170559691382169724243014756158466733725842498267159477430432241316311352916784939514754920590605216886460209546985948838974071153290379657172479851589549071891157687733025737866498954061080794416156250705939952933886824815098522966085342331861283997824928715639644982495583919690034786309256662681502526046443630497281140863007771790572048075085719682749443725900229926862971482783335897364141912334098181341188399583055974925236728715169494367783037345467736026296933407635800404204514803106397327592885479189635849300638451472684198536458097633814375086937727423651848293848720062267882526846843226211403753049895912859408694076420993767468708737499102662319666308400962752648124594201402158153381115810151215044888728198106115070287985800925531206547524204714769392290619348207481295433231964310343729434779010586432817335367947588010452025726750814898780929206348022843129766378644159009436956079852637015548714901243155139031044076817800803117402769268260950636125559578687007732853414799961403528522838222222920403105840928738743433161829095091864349137207194563787137406225302186761644145529440553167790033811397137326917460955031700979343007065273098123457146856551899606420766234986769867668800620827739837765958910250745845924866433779512050402823183066141122230242718455176240335646037405080404574233528848449483528624347458796539015544528455463175281943631393255659043459334871688978007662898283473924713028703750356515675347332055458919081908257226395084891549869551877211564984188814248765310029922190688609409276232404847751168911125933879358427944258710746216542229639770406244507162945047536796312282132810740960247038266063674467914966947017081532082355185935702580896310260859153767696073708605030117817244040945439923986608474777673824906255355693995530648254180370634965012003274915367747402639690309736759301262464071269179004902143868752771174717892696894735374182908465699471801425406579363721131186655418319511503593005293911992796919739117226212543617353756292780935443413244385560243156871556601012449422125363227513177412138033455842965417132827589000602891385474975457604222839138721488247190757937085559020972189142217208371359197431938399722597412044932623113602128286117392764624759553377494460132147111217763347272790144257195017498250923483185619014246548389615059956870783874477183779327346588290285684162493127316521731204608130721523188824653268562353412166621022571222035053939863526602348151867022315398972279694225708589168837614998629787380848331620778538104638478573062685330603225127829359849798341409126816754975797122505437221282175554697534270945832847227763787155695366243703806483155340314288260357041079309306225232852641135157602303948087207938799485863457904636720210974841422318049926438093165033417639320971493341409931566584948958191433351482125791613851786706810958876388963392302908995008658534720253311737588513040115585835413434172580029105098749789622909832057793749395544269951678877589929630694046834210157981200539588814528528121406763306904561126366676067672000348405376363472204622028633950353411347125984899964734333497500225035220616404942310168292088571447034601901945404758584028619043571384409000509379837605546109345219418223949009180186909894056793250293346339764198128936134585913164326494962907643894704330960029584673297647146277977259514369428022000503635182119070638753494917240719726316337232571363757622022348197952635529915171319381419315750291970713348916582390921847919691671878354099407211942440590195867837240116077184226566865804480332936840014831715702276907242231019389235064095843283097352557832667249770962059729160064478256372691746742632618859902086467431826632312690042208721651540950737365611648096737311303207388013963230786602945829232481481743211052586150334870347362248807444340079407867075892769735428126546866631813120785946207784248075420542703486681752094039950260893856302718178930309261752050985370695410341808886784097104022786623710389893716436743380786500225098214957817455315889093177870332517982866170698955154585504961978514756750118461692676963646147284355638418684000225143442829217132702997939280626188111414642898500413294926234605127606115359903739991852959817407025715705671402423945320631399755596822241727306693037745012714052405209796311942187664926562597093025907357004094298595169727274317379291738087946111713106779534514557266558419890989211540806015206400952523544979373940140390430407733902629472580830431390336766861665243972982283412912840888193939648429431627573770148294157093725431929086521047031404342810704591051598253209378086047591142952113735776795358733541761568206228013260022044086675957557115601191130880553780700546357455738216849075822390737990421249099958834688754826636496896759307203497890684340819180090866693933957327075601620986364609877870515741022046750303890937086945628637524578159868067497235955902921279084176917914150703378939205234190554068348278372287143423823577232709590378519654029592242328070287715173033690907105077489193508758228258878940843976363710670990791742119314234042830361148399382222753982375551868228184374118607203140390454683513882645861839794252096092188952476915702527789478609677898170427213331944427089849338641379596999944471397567337354622929678406765870598029609504878900293579683089985603110250705482423900685798945423728015273774790237076925252057280339086650558503428672120590605697780028989387243562693326041948509383261648277112886538079251587008507178515339855615496449793715561372026508045554394191864720523621958094316606520650497865483992041470857212211825271964770520104250412570331075921678892751438719906726487088698828695170233487203125339145707041272492916527423382692973185589435282716400368831801928476648528194251061688384753333388806482005788232837793033455400195402617770650497575149331274952328052104097900489864796789777599435216662453961073291902694118515561933524891471940289755823533728140809206156410387407903544040672132961971635718051972366516143969643911448425110449235493348099367062739368495672152070247532578564064287882006626430560557124724722648156339092064317688263452480474053298079320707483550171298527890425212791830711903453461311816801241908199156101885363675381379885895756444564725242796593933212947880348902305021020626373306227855519330448035526988194796621529041445885010075900032304328828863731077791113383292424238369698378961863731759346307866781498358827991071537353303905893185929901294189512945479752065358422260664012077989470465683265784734493907869013059730668859631388065946846325263512349428124636319698814108439909152024938927727612428364932373798792725776103898181037339765201411031224821869855515587763200675688715124902952267768568745214794050809280042006938027755331676953440243671823885029566564416677849245877524678888683876830153128785339522421582356562074101367814265503717823832940038895523726671752508554529436298860732460561530732883983275558501759149572908980884560090739690904845598076896795617942041075230547493267680345283602263416444958642208396121167439848247064844031594888536629881959622536385369438839899781365474632095585391146255775848239652410598700576147206150288052957311392697033112560668820102712248304960426611865153829677562977678164489748506203126897709638100363240817894122956599640282834687672668504508367534231556913883158264004465876405210030691227138245534208622992079544365864311898973676400521065721784861744524360902708473633235052798918893066901954427573779574438672145041055048119027023574969435097755631637406293805069090527774741275150508152230359772565038101827154016420153639801527364250430662953673241287134738406145062160490526034884115872482559782376681209378417150725837418056350491315467464138364949544541691990639951370944599650908296790009761629504030961245305876552153563240649184064001113370561985479238435220988018821155277834912686496025447476735026016432103256209946175964981701784320306931417321017388629774332343748140255317967226216296143444704660737286144318449191438534174290926465231058532191383826127509349575443159247613593653796166268626833997272653595241073714247210731632524776033007399274578251680266767684623002256547224717261796118944945615742975520126904994882438686323425766856190311201995119276232758033301209835689445083480307133915641520593642099380344201079929030879378006339824447291817102895479186870868670857242963372006290196781570742228236130877788051884454274564858187831053263698481893208254984252212176420066868535495509742634076956529245957113568203416767738010076995409090374876667587833209602283795207835809195116941006148028405626850671062057145744443806127247877840940681672402003924936113163095606703479079155707381164714692139476414119941375058831028497626989738071086397276514228230419323813693347652839664403362733320604098198171261825755496317501470962390613940703601421497726867060595435371840628410288265962473933760679119701401326903693131122371026330357255820776343289118772986580293862941190195375322211585366795959688989089456432600013436605527720678340990594034939691918010247285106993666306267840142940933101006360038070042074337288725051119651466601610507451195732077063067045188055741606197972333954397986009057940501476431835584576227887067897300516881670994986934390430916763785156523489541677110655896070937481614372487524085275243932109115249268707081622583361734500248647880199342166801559548095994287374812028013192093828043530154407345245297796191094234937026534428878001958161402186530634395637615757793894254703788507611135895227565096517462338518016536036238265649098376220535024040646031317985609644874504110318152439959046165742251530366167960740623211891141033843964190990479072073018750114450910678113491858307535382917269229605586031283781627339623160791349099294317357352272004472022924552038757143045919722679771970643483874630239577067750629369165857221573436452862632145950430638209469911443223829259901751916366146955400894410333362496265904384310685364053693783633927817079079283013436287083055937007157088318856726992470411984847906707020917424497329580748403440496766166880804041137192994947317358901613364633457299779990004001018442258463528615196432982667244019728456401761957558626749170536721272997365388179268129189154091144753278705052616253244172995741881863618130845356301618408360817236815387039220902883760350642211745134618398264735991997601659969186830988844456323309288224402678255612810838938431805359345631996128500178231072554069170207591906244507928477707124558254527829328264280471516225582001073863566550642493932446224266371089005853577942255489559597112766628755358480341665283783039639764109438606210656012453004744357667343185086222775554046766513353109818014297897814455962937816671805298046661975432196266806052865839067650238238189782498338929183025395756700943325777458545349371956008628186384249238454892268545360498717867258999749266307762576372002933376614618401019478827620257029341809211616725694674386333252260187163350304119693706039284756795753216264572004538660849436524262339976383148972161711360785019247849010573495125096377493093146318247569344368065916474903226863645405967087322081451971433265092458023232128923843385554950269334999335980136826228600167093895412424670533779992498253336726047634647032552350281182420262901479439867514811750289265550238083420152800325998844187339740534535202486688896385435141847257344071899131475445782304385791570624077613798585846293871710255284581198476778447874291555816388000069194933870617240576937080358673611936606533326617593106616115808029372133666596614806184338991615013938962903542242562562444832086702910733027064774485592352674088109498825195786560353306612579294461886364157775762364487554800755380621472136523389835334518207214466006011529112498888957250446719184375981295345881189871380513361995858383987991957863963170382361203296315487683832292929664365662940679217080379061698406425722998909420621057723224933241565103918646540987498803782984386225491573236076522707981333843559245902509677871404645758120541855773512186025401780506103112198218243733645540073761913493897102728541051767434567257283694066052771547102932887719156553246528763269110898002148444715556796858784131920708264496356802359260414549046639880989979888837751733703583327690898988962860907232373505419315717098764458579906171935115626938362108803746132559929561530361126323794436842182782371166546539279484233226846159531694625629721748066302976859510268288354492490144120348970512202025583109115107272892415388698329916927109731899944202873018848745152146708225380533581468765334498208587805325614641193980246536139480187506054499705524884430389693260045439740892376291492003465339622177077667223734227301839133584180532528007626755149314945163534886756828542619579417849227261419639135069338759547202745223984889700077243140589210449123120270820640192998864888194683094408332382866718945067718066452297821309343413200679096118092941947043203571274217317887395570105389647536619995018456626968032870086787057347723585570994121169868960753818592697494967964265897963211579094557625120260540153645522833974947147148862161510996790521161857451372524785061505427442885198112129247348670855298016344997280528719806323482407220795670497967027690620330109177422175569873282167723001028968431627476590581911706178721649196174362169807635673937351561909755112000844717301200084938528812623982657158854438766662783845855902223279432009865332624347749714123171277093825093402997279228828236085315496223433643164937602227815805803028756548831229210089878662652703935492725382034075781167716527156902188426880817921220371658553528420911514396249750449499537556048745386910652329068826520251871266245913734738024625030413474481224831038102492969324222588087033925508614350790256236678225279445364000819857462693019855330619524029397465199926931315425412467311621759199229704342720031896425240771320187831670608140689160172619269045306669101875169384464055267216835671467314482576025190370119607298295337764224443746326183826185100620142618657310926598890381502600552507518995886148356159956228411778566835179625852591058417517745379617894228263209715084119139945107332874304923401784791435311801431708412699553101914557527228212004453644084872861770200159077481735470177671735402120334820370473248555796951330661418334677765959275609968691762710767485066873621495918200676349535690403978854035543505881095541764992203521879615795264596030589883309945267138685301051321396352153761978002211526678992515681850635679878475908184228667031584382073429288477776909039543342172362775178814762631303997844335746598145153805063055445473543025057878600399915363389876350686548071849271359294427364615121875933152246720346855922852816135213408170382666271208887233331812275210143149633680031931768167792779422313796898175568109763484205494086313691799447902429564670382839217907879697065079089536957581151242486404699113953146142959854129524483359164850445924408064730599723028304685117825393795462551578570116333272360369682981526781150662166012897828782347506468724589646772242900515917813757464131516288450283392172760293205755944197326205816869683398652524975709959973176391244576545224692664051743456819926049566473400054923221593420878479996423839346172380999969831119957167232860968942697851379315980585481079692454924910098802863304287489131152920276593662566837109329904880748760657286681994237925833760376209523463137664623261972938891565923287448404341933992582838477808609368036671818125533082772845512584749117815359804639124587857099711087321498708463347971937176364985826718139656111959723918837703190163996681291085216581124714809214254566788705985111181764038347938395156826211376146547392259447310890059799610108948513264746662648084677448556187783996856367706506526503025468612009591138902687933084302821184012296767665884706463508349164620033744411465121612330594737270234377464034880959141512242890358723855392724189705002791394750647924224577284683257447940004105837915706259407989319967540642857967629608022430990761488021666505087755282192265573883681869648734227475349041739350522358642084910714786200272140626206243854996438975388818156845425381596211812816612028225362482028539814605292432878213221288325405735375028002234092397912432744738930432845610726771505066022930422268826490402812319025244163275551581607531278773693282363317339602396710530504403595288524156786379862736605480251540823634510886479093537190325505414532837800544843158464436834757359003598596303627128341346146715239085801211861651312372610600092210730994292319909721778743597061067052915556375287544253408804054427762219407200517963880350469554494831769338518303186560676368073615075286473987514869648600198988091716875993149286668689693340639882259962761061135163524369151176087265169767165592482299573452638384292146426453198075362860055484437733699406856031259860591008815531826181755603008136442310196573908932613815275540366656268136476665871890833880619389334781637427130914835531458965999069272367539821853271575674196244841725191075685259814107161233530551667026955388691140469601415255599132678823694401775041187505534238840066186228079505770851628913934820031768822554504592227430522099662459780149066675298936868291776305927280613995381397947183620143078593324319917928928360894594801069053674098646189772896043905675219351783674820850061573972419256554657312602297400621958991808562546121095082672079092697376435544408927334851185409500260599321659008044082928513875170116731474922509997825211703454210899658250448632958365344051834555348624535546775411118754113433656365246453779257799600598477441475776324221228537735942142003927149461756761595901937560668102998147812410363595307286553705470244388084266417707250601570219727346003732634450692160731626375578594993654035203586383917919124040608976219689680904196285365666134409287836032563415967088073588380642236689658961432766641545282194773463759446594071345396571875080037538822140789702360271786994989410087803657625598961376216252628800462951050429332809156528239398793301877118845385869043385701604250282625050430768300026378991152240503796375839794176554789135615953638922348957709025957846973439241477514835083127507357920018969896710930917208020488525396954676511194765000437884258345158963101009295787893968131918526460469907471872369252611580609416696538251265336454070551777938763669076183263238553749682830117210925791979436504278582403061728076380403802495566223408613568633965231308867870217427432896923411716879485889158657423350172849812588500183927202978587739946117957599160538713724143505509145173166388693646162230771721907809116684063396673580927866580305209976699756270788132673808895551703293263743863934432335079206753876592623155625016025797784221697327973820299447546494538925928555323367060993531529336245312848924576727139241262218226827478737407399794214632845161435939254718376093725442703626418243890326863994099119871895209017227638016453859294832110638958791896910152706169287342496375435056811043030414127392032322457670999135698409857084345006399073691118039809290809710284094470594852353848287196946923056628772982441170749771565035968731607250756172182854774070447662670965996535226361432022642576349507562046071838786417375869181428368899987688747396304975744299184607629739847907204351484085884323776622580970927045475404345452972107190791169422875209785926982191830708247728486307534097701089168248364644335471661208449782452087612653745299223776296236837143283282437591425357668391317041385582956493276164897343777018316328896722420373868609580388011974548562570581091216319070339263204388984073359792419525252717141257270251990247572776940757924491647657604957003458785886244137082757386672916834852536653970268795316315426763841739854374538644892977671739574063391724671623983313764216965913576912868481765962284955260037009954454674819356885361576772907014478720430097360297515265209247998815540813798163714617189941025877900049551303305447162659939599511574981911202183175878380490213335421456912365093519828889693700455524115171426600702275360711553091106419334922818332976890745753358264505146388503845841889768111029222843818006548778255675675139141779053504966974967442993187210740887340665710211292834495551319399893286168956479863310924992431696801506955772805028905696235410854996615416050851328358401303596572103806195478944596052761440102931682605670059770289532142076498693294496620039121101436804148350591741272003997494800789217064078713207157391774228560576163369001982312488268385170137463810316814061069714030799873514136174949071422117532216554139141395519052991470160631010136854268435651341955146908513251938337666517629783681118757036650281190192821031531442807707064956335853984513637283144879607738012340995245826720974232487723291323571670725543081357310476034141531932689676217021688099298202194551716342133603034809332363655565322590327498792964451817146826777369916282005105405441768435026339344781948117120970759526540139650492491811584304895773018098936711926097079446503648607136075816649318663060325704161905695210256328505319190498241847594435851963193903670237545968837934194479260369648073155947907399362308581644982133369050326879687855937914194214658441578958014050123491658743985956306732546783408448833539408978288888757779712869997607016691810180826790456315966825629778043701282361872476888441513256370752376749564289496455871625177813040254123307315373408691295873394414880955191900755669372682555215229224378417370938131597542086966591075946525803965707641111283542944854048627530476742069646266089692442989736872173271581071918570772624295398404481441902066681987164371082739181063013342805606009995990294947026520863510674804559572325306572547139223993965520603436078158097299318382155327697153677899210310807748550705093673626505467624517942232477656443511290786383416456405081188346163343922064665231631480941458113917136468735518967967858192584868525647673348552470824574047200021660762495921844669062169716044382384160630016254080110152509109053544868169233912239697759025384076569134460878963382729367079420670109595116399790762781929379677092930237397001274886303141193760614915123495348652702699702578823908412862465148545959201084785331701630507166272180944295247473512890316900870961896404669754274816123893593043658250139302844251244597529679937556869002315581647410756265403827602996702889152934297557706074824256974305548145600328979933276527108346278649191769505798292657534384645836326328287235933932570687367987272343696302336724076318758700111143404525446308405080555689714875904741115199431477384354798224756631289867866463146521719573959102838388857710426327623095578893621071920660338448861210119247556758825515305795257925241521119037851302046058640591433269782563422108921490791015574654870840593702452464149982709556047510560934744470472326940282181651753879494586483294638126839341130396456769328021995103344086424032212247670482454682473520319131559549960168167176997561995027169259733830610427418175881784791146226507588082904013650287787756251356117766878598493021376735653703161217834522612705406900065773343067862416230118101918642283369928023613637465118625664178854950227461950260704431594598172439469606888642789046605437982974042034565382267019154649577892587023732296118272721786515040583876946079998835565376992298301013918501241114041337231803372299383030155654735784811733257726851340980588399145305271440875410905597439390081403799461284407646647920836268446861785102605985554398954318901846760015655716182995876803599873225016106913229204937072437944420903523976011088537250366365193070848516492871126364714544188968461266508932794174836814524192649926733534670986122138920129434474359997088632138073043052243357864685563530301787411762372783251868571351651015440232191870485652837198382413085878356415734381677311608597015490429085956587273040469654198100869131957901626160132479284891270799649160818790030324310537398776378802606450559784329661593921866627548469327876710022958445729554748757407684789026049003202306753077073335666302936938549076998978637640856471282848687624873002045962292205824589571430016330539002609318984395003938859186386529500811349271660646005799897608867405266799224503052375860548301666083779442098484842789026349508877164643250744106890478310189993958947292867330661453188921166751120604420752094476596345707467809264969604904191764579749809126236060241181361998008489108559797961147339357374117036479655505688757868072362977236053360244093543813996201630784318929991945850627950547814569128377058847736986569959054980907033657830944262473845473620525303365400260545040649804397404249129535677584841429606503465900711813000333314546569635415728065550218592990829470014735053819898486126711102898843697380753174706181188657847966760643922350640532625140483046321203787213779543106069380255067683766177881819881621406017028930043972170259740299371956799673618508954991785352601647117338266497033226673318245807153338298990458878746332673569459147133936537696194253741084327325943036919305674695456809317733350928973941940054538857438555501986965039621268546915736464509296594767933457620597092349387375460224059522543371251522940954848777505531634967278820179891926831985448274706687124479033703923544078129594524633292059724814773925708805029098045514584724131233781069948287211110219507963074812257633773340752343812480480540993087037846283313713849034167189776128110931680141910259027420739753050495145212963628201952728728178585859550283522389418421116267715207173908488537884626529582262230435280912904016285063503238875938428045868384534196044618203472640562684822575280917870361426942163475341735038895867323247828580741468032932073905302448914482028497040174720188224588193860732160645796613901625021771472896553316255633251901024604491465910391915771077095933551251843115224532173323577197562690064173336324270159413104169671031323391782134257607978244307891886793665378247414395744549685960540035862066468167254038689571001974324895116265521210799266379900621002929923365835657255427488504882719886819470150324061087500229421686009386755376596599572835573149857152485723859314498004477981652072592767090311876264311456176950409554825985906328628442681003861093998110621959220422947857639266007965302316869394993242258151061362736539261751638489515126822155445389945458063584612432650010755548681865188032221787828320498992642268761142492846630091325252369152143105387397259746682261483754206641043106050018712815955668640484709986721815656143706654782897943455528242112512551803214092478615039925701017666445778982264584345405388534917974877778976350206183143426347991553037420497918755338156741014715066268502845695478354290011155234165270287089810856065923983997646045124720025923289999047245536516362514299118626461588019633997973037269990194723586430164541540481791503427730496144143943785682811426691105187123159297350953120353828981958330599983419846212829711075296220160848562960393818709229299085986219005997837096874057470521615438465575949081939116506134228964474280218827186197908996757201322175994948574209246051223651745494832300133503192810668975061801509574968197862285747227070982924150313861035964453479325090818416501186989065562871960615013026149126427602099574935840746698628860123017309112729053535294073085513434125332687012305977820344284887256615611581449843172446424744929106217551655131437057755214481812704542345031801503968845296697942769565431670778769077665239455311348353493437925216683842740622191491964899313225611905810645939631640920443628737693479804164559510318506934065741091456762349899102648696910766758374655039909210308615153244938672800764997920500694689367737294073351315776790124445467782176268349882909351103812056785347551789821467697707972001148453901824802629618476645716700487008625818392650525303486791442643601780558043606334932808889334832920590631748905672498331507156339131059281350924890776044914881093231329255746653432968609143189161177269353809113339040085834445919701187235832133512134339872424282502740904503387463048543416522105047329213869718224283798660804030646930818871778366003697014378880070340980019314006416385526967841036983593617494258987085101657197351113220191229421081256497256220522980178963658365156555756669187112272943489920595206493259784369713749976950367550865428354994467916856722861642074122505482306837618547864862148277764367303347860454899145135699074368697346577323336395001144981254920974063263801230488667100166556998919792956440752111607649145286953077332324715260040661835027543408386354737487206950910732608477418405501399497251787263159494766433379705690862147491074905947608154077894472473705495349151041486307883895981957697247216603063803042265332211504035575031595441796359015720734190680557378213998845986883009125160803492676542248762669074152118658785188373022005931483089167666755725512002991909308002783333520680870997615783070899083506049029391833385181102191842810093345097426761195390810285672016372973311979601457977579376626612534901050451577173461320417879284886338504003698472493629732782570787928377979906335743891075978901415663274710559801886369766222404846718601045325624648729955952196178958006177488998219362731554696242923529301352331990025514873232462081523895804395560356338980930758193503113632256953978315928230190903946572606913989548560686110282960970880260675662947599190194332451944451329495907909262574898250837959783256755852160607600709450901573614149625330441445559698789317804328965975271070208824019430012877866850984104700309426551257708943479519539686412057592720800375095975363645058330467387436660617338626784730929775709864004475602986977978470930301904759894683768100836316799984940530960797215710399639391209930036039785699633464397068324788840086258157726176140187945540187133869515793037787643454181882869741682966397447895223858403403399737097725449853055839466768984640123229079062405746496339254197398012821583343098348262080217811254402841670205021882133249546177552229776933139601816990236198492623511052055497212720505355995220340227394209486125588852376253379078344768918429352286656141506001426226832980457414574667473010228258755072522229560198223005572485705576845759380009881385732585147861267176017093684357700338463745906248418559828517498758664368962795382482239906202711943757813325791664406570230625646266606752620028261295808580268543873827204477077830833231173559137925957308744930148977586653660093846872129253831700239778363701220822640071424027472676016974532963766206599564701417215796795402718258518792046573937266652360735389963753499293365096710154830067600481694774655340259095654027687023661588739049697326771031498795248488877477322867617462646341775267615514337225604509918401030761387406953897040629276011580414866583737741601890315143802571053664909614216729173397333202370580107121892734586093478659230636017258462382415163053397131926719845448958220502505601982758231164522186063640941253066355952181302316405269667877886632857999656888699766399000172083518315098174073639031875148465190029743555388628680250900017904186881663090606496325016971131093076418669665608897354164660327927812739075909458828704147198889356000939257636848520023114301324441201304990841127860684775977310494530427759531625460354692501723875936477246159970981315360074996927382575209414020525569197468716304508818638093950158444899194932902867811939701777473031431709155494015993756063793153699380526591893667287644911869810122181508067958435301669853275215602849775536979109103876796069768514249868214593678820944536261710273162107554675845509559382254620163459710842206565625514809265719712151819430924702132711098720119040830613718330959033348816295368753581416576058777167304121656295952812627302477300252001699343989763488052535411739514699770043326369393356539929316637800249611725980587983413712660389509951775189804968091410377580307233141332283569123400151482067184648204931087160122424119675124563154522231306372615512703973608282907921652430841207404362822147043171559074323329684324403844746352215257087247811932547591989790176013132628705552317740513873909877208980627889956045333728459252420587856756681026328158632453082031869238048515154014109167074139782247289566533467540244830957805315783501149879352877248711435726868279585131450502659776369751488059764528598666737774973989311245762795055670701087076439702445550797119193481656172163267278071109502268691354367616985473482423301884844227816826089374750078084259073934009412655728162112715107875794709304564013705643047684357865559078872105284064757708275132252269139840281258873768390094509141018834461985421022320941515480039486354196951281047834828370684096384362006332693274152768145924309213188969644062410284758979163175330391267168718910939148774099342842325416709936583936516884168686510406193643678474346626623574231073313283645250942477569637153605833400095623678614376908310942477961436194047315153974831785541803315895922716845048122535374203441200584545059765504706382963363524689946766665328511275728945216700997722748237896322190604704670426658930299072898162061175912320080882783854528348674875828242618337191000171926193075681821638507987508254428937917152095970786821533262207289844490907478077118905430825705491886984314202828686086869583532499143902075788851637053747154658966493784344684166895068582183321700897357567119218515387570840206625615364612351382032964287621975387529006191297231623254935044688712215778165322395152463989291342787228550121259548435281553590470789069700320754961979255420528651287403501702390902118780374946090793768951116752720353367531512595978439311459891088368042971415521473877544633836542604783446082547498739094480654671552853089823689932408250229175430844581477742412022591256791049245131067661476245722721053263794709386327235138925991947330780877042164395774216762905996750802995976401141706421310892681122345864250153103539432732826958464630178368377601277939735190513976177581256367637835096821433000210660356960304446719594424325442971235967200564855935958572122606385383244862518887859753069529204640538617170317890336928203354142961071349534150131992660195403482063083459475523081872711269442196396200711721702629861452420192092317315453058691680331392375922823419197089196675657128945999709682302643514181916707170386191773382126916526519384942258014659861645808061710604365066170562072871905791855410524489556503316055260283600097638453964755663086086694284430620266053670801312048868515545861370880260015665046032765380291742142964563692006176715740544801284403488176129083959502303460099840494788626319039041978826558555164613573088632567628972517331875927984779825740160709954671648955160158124877209135744680684900834759735462663551122028187518178568641502255946962399390155807887331333360573541760706873119242799588958368037659233413197131613654619223840818913773015300795804179923267340612174578175725947292885842217410000866083469999779888093630902751216329133433818186811620481726279634640762254211673009412443816392745697213933821801215717202352779451231887188169778897044110749401861751820420843419758522143821375345016214056075099362616760900404858468077998238946233674147806984801554159880204806725139647423450362083418251781696236636569210794523984009394196475524971535128609024646625623109127135982844661195676325222969464351186341512829260720688008073590923709727436319543419613401273319884525446140032417485170614915227846882203142738603625789257517660879422664352777559384882463170209591199673850213555854514328204533408383449458226201052975770007059056368918957320349149431364633572333775563037064597663490922764734575237866832507051145076288303600274479108914552089343434869494382770318471260359762626877329719600446266937260713024244642368087196571078309193090951040005437526038669173766601172599347805543218601649824110867041803071091434275754438245492215072617733781614702870545210175707318709052733473152158550511509774927660908172980264724314381552977982603296701659786017836638987460748086862784720407206725611597666132107150597976069351943496054567755263944206342989426696430591541186450496914568056072868181796207306300251963997972978579445174049266139816414300765856732084339818463134542345664659123675033222813927693561836705503325669105733293854753212473465710337425265645184145016279612386779059531001206475679002972216003437208068146913901231670292408988711888004600010659073861217829741804121103565555351899349533146300646934387272258907628634541764157766926892717447453791446597642571154125680488685084645493502023258828250227783798419474031097244123748198540148515836113487489450758835520907492268904601027374368410932600041149213586152780472127111276453172692337654896035256293937997371559303456530340053536782674773732040296055993918222575931487139215359402709102758587526776381903955168687474577409843743781413537622472280918251619684510144607570539747611656199528254431388417823730552780606764779626279252423996141695907089896548326863527249474586259703635558099190247951837043486649386060922698952273511560301985983566900852316453927341824805883351389525109148359889326940925167273477985950074699422933743928535924808182307100043160964393693581172412803677089919257668410738981448588497650606089987788354432768833615254307265778701282953131325103036853919199006931311909560217998847510324010027881518043154247102632872735344351370881277548005485900345983163205220870672983914566097887196012548026030340461371675868609974286504242855407011136156682447442809042157276289256177493644785582998163908202353676642245528341216039413431594975145518651619197206510142128605760098753408099791917501764325945437281482750450030262464871734506931580159083205188022429378324207743776337769215817713946976521604710212491226926987862284682519872450265539918775390912125315574094533286356633478634367051700481875824613253163992745697406029016246532323231507661130345393927170058585397711474820231536925586211262082496141492674266330669639417483238568706320074290814747264993313327132820505039103113111296031274652667324794638632584747862686629806383244832554943978615761800684573030468591192788953507493980521519023970499104101428530736068095961671387886918788118739288811042250639794951338986301777106397213238955618075049446860485814686819121532007927774016665179926191350146469397233300108623834968592054008885637330441885909833634798768050379468014325740481018882812996902797736502997989132392091333511858202256702606303737267703232562284485888599469476424830919982008371710221723610145498250987393481575480432650080423587367355451554564709124076255618987000742426978555795324796196592710272794679783953372847475172966130676607691626843473005423808645790614179244005234924084558495963701124841252399124790026848823213159509301832583308952999054461112054065956640293661912091315724791378633491839176907396554328861179093801798452089552014170380482716947046341017439469904928774783014018249719688995863434100445324262709498510386430193195657081431983972057353918268810700575221269680036658780957751795484677692277166507788548417577589187749499272697517693824111048201411380401795051891259320732776693552869541034164681577099354921972306757453505499968263712847032909195031122913595607571780730284752121193838102151453382621827911376803740041283173828227917428623160057075818715170621054324207964064254465817167485414431569089842683215483780453850958561991791202399255389845916881932661980548816619881252352541648592716329669712250223801932150258227404026838288300400903933877430972374101368251162652618471715139167119180941148937312887166160065652737145542946472635552632641017214945078298691164542820191861791473447331086092482169191461538466994190004486372167673010567048337844598326780394801805145116838503680820789677733690857609383518744081127793157498531161415878338055165925384811450355479376605097247952161036427655415848500508733198529790854692265166232402046984687157298105453512110431792956986191743348467463325454676080442363341593180218910168111121151764470697234791775861336619964487140105153022070681397718578663457339343895204195986557736020137486736793236622109418350661683796593229119682560173736725469192823177379409809248632317021743610922626006009982267795190566028193079574629336226128143436439736778255314998747001544260243354363659766224156226398645686462338812892306612406561973669889956435658123005523280316005225183212165777672561790739367086542083621787160660859943442309495930901713507598311743429266122036489248539613658328945333408834435961848705033832906830654785204804687675417117825994059841999944817138335935984869348637923521882633393830911817803132484816595984052022043410622973514430440837425336869498252173960674110212343598178831125783549393862549528181806604748954665785474774920568418773636271048046652537030804519572834414291423969060781816154505831825995142557207810076662074487536701525566595275847669883460883116296337946054151590574677937741509257935175496541837602390488270783533718436357989904287346834794689683123489463406974945403806175541672880724935084086412955496809999829233921779522925469737899456313934035126504659379321017931194891469189211721613416096483633941091971812370204238139937417362649713736196838223431984777444580895597326107719375038276395566082941952899146081952668267656632112433333284008656357344522102275435582536188403065119344591294307178323359119326492833990152755931269042469241454739058033899221848992326572992834802989734383798899428167435835225826840522317501150662704532914779926694442993071625725182203129568417903810603346411517748982940539284906322235539285695897633751173496293196031988436145631679317779682529076512846837561674452506706386482480115453618533549894190877505490483499057775138322709797096763289682056695683899610904269892682175988731462642248252343679572901223430191539008763381836193142091832982507115958798303297227117986050349395491218724932396849593058629176927137450432883197148596805100369118998893920890652173558182787062678387456510487570065652527256347030209527364334846919618209176200118562383610795301775223252587884639206036476007584050656098475756215371947561717169520805669209861165985247491898449787499994005192135437842120138261607061473481438664558171296717719777622349037899033421488248681072296413340103110129655837265632423588980583074508782266769119132780289238274552929267129587268168741040336411158864684389632893407513715740380489879539245183817253513902104444039016430587032231260754821672006540831747803772145502421456356779505316318837766764098224622945020535605885729110196679375206395706046327350336316174548125347276515277861663009372635253393004213390290849693161204399199708815744229140712180833785873558914321993672496415295068604784975875949742448771907946087391628526025966629234609707723284377381151159572828731076909053412563658778062105083821875108745186909541581459676726614007274034957726043354717560839688463263726986234801571899686279790583985648285006313466638312390178464859972769112364207523028090314430147468150187815256532208595654844741720886311257165700005440211001860659193737865005349690217691178494854256928390166133302892003044787743687516022777936673159744156145554833323688348885587476537028684163223246033021338248606778030168785399807251414716405233177441116548336104354640527147778300998432767402780196993054941943834683299661067000015316121533885790548322779613644535817307760065800323242153989577802122786599783350216278123188247509076225972792068071180222450980991391776923904131426544290157481635093607485234138028694008179190560961367722151342164337884055726885921021243692961668928293439098359350451241601499833405214745571099344629511210228245552442108433781146701692334516293981431958745031981639700109427853958290014008416902168236636082661801900660902836497834801749075847054475573157806863391561232545427112642880284411949401942512260960289985530156326786028095425473156891036680986675129418731712273401109978484374012147976186666262562020851053116520790999353561669814872849767608274837675167715869183328390924217361949989816858127358536805455108231868071312264833899505797782500167493766841011392849130688124216173304611769474960033446172564753642163139187947397429678965080687307577323454661150342090058767298214348698604763547146945575854175402021482658710127976763922383638587459501552593152589064097352531983057304917483457510891479936283929825535675426355946075083214890017590512501056000133498355970731286307094385172449988124668166808533074754674177402652147290019695073093815544108268255371974532129771775044980882819068996592754746123157977923473303901748956348921445202507029002442889247286152807863281582468755264819919206287913295016544762041087972809744660493696861297681016706329701057825407648507279475259344862220357604663590794133766681672887765765543113355848483890524217873754496154559853244705767307851835766831067024965175408050240555084785876962339185612869768281604788411425521468016718876816484599993564674552253096282386636463356125396132876622442269925328042832706859968680546714478810133910893809700682825755937328418001209485376687892313371659370643117863041283327873097404356564282736844613590536758711377723605602970767157949343487422270641854024560021578648858155216422795246672801198307984923674483709342842470848366700858275639943446493919132537523200765537419959944471923537401363546434604732507919661573210065512327276371756562708196099492515668819856610736511958578454258213920951697573963180094742335536972957021555505807989397262891961699734862969868938371559081255719872188860403125854801696504629062328996899683326861247323607818797177351532140659137060379897545989837013136213383438927785441422572603755256132756316334324495572846649162211213711470247453513897297167631202484002644562989119717026465182748656204422068795203212573755157293051404955163455411961824005741646281957749744653735366925326175216805374694689340037524036722728902250564382724685936363909837121586544160245212286377866017489607045437144621676020293619585496215419705057427512925978741892702801914897768453628123910437414200631289912420468112907685818403014267162512133861079419433692225785489873876446071341653206318957145736985401108975225071277618798987002025520063898782298413670260282083715830672128549059501893317823376350918180593039100234382395480026233527925218107006454113068905401788475594332876093355300643884585676336681985219416115727172396856900535111069020006631118565615502808201012736574497229022231959633316621107075064123819250606709815093483642045180278544304739876244075790513493550661179604418379297019934259801192079594440078625032484040107825776217826461133070695352160753313306604284150446394473553005068384413908501782979253977915091709028138080988251699980848605024849573342239500288225948552779950051207028584572483815976170573866662669520613719793772472021536516748967343161998668167309326886497554090165364910795132217522719931540130417390538453656581708708136526144960155198951608183082731897959007825380556507553113922374392240125347601414487407228569697366807835769333669445658769166268543245595391192389125390746980962144779409080639366508900550184159210653302858996297825348168468800362271784010003194917308802701578853551622893460398226770064679269412543689970346842004884031039876137164901053454785725821773374558042708573842648452380964782919972345475987573114174529139169065660107818351243891867886045589162928625804938270183804921614391979299702183258269522677134088308895001290643790870943536576204743777690005246937524371673231651295013439895746062987916836765986834383230611288353220850607378525201419420388781573600098081379045995006146906538775066729838696510074431531887584157301299763053084746632052279433581121705698044751512757368776903779711888015996365058110036606241263366154997503368863911931603132189108516883641825785535720019582571509061677188108573511795175386774505747346431372881594692619458127027048903161283256880312482971341274427016836827914010012206372760574843650506302949928543510787919202615361036542464188317348247462276944112448133658664728618340443616796074491111270127539618984290898598074673711435848881725672251173978096706980943932731512668344650996101517766982662368323638872668819950532119108103986438205614565839059393891616672592199470937202181660823292976886763102307575369295217974598221404998234429016791883597353095115001659869483221063733754908253683587756280272961704048553782903679326618880857343723279744226176532906899733659858431472647655893131234385793674161141696447973999153575613039896107134635393745432204105521483686569697117938555075175438494588759928071205686035941307082318413922946157097054131269111797983966184620909313576119635307531296532431435708356205658747747367000990509538844197377986318265345254722210194358014262992064364695712816838832521226155376530255871513437749893874020808617026584667792055110931899306058070025596484749461150656671474925658368578570100790704812674401843121249563907608820622639438596841977011763895989310773921937134976108354948201190515113517166816873878030458604663137653682300642550444618190486040699271770200986676059567373275554265468219982618525048907744662184785057180690902644024001637489281995689548178561788589336199466801674918238652733162533934351366998525494629248596648000425975115864622517508616000691971941281504696691476781421558483131660033425301480164344813209390629127238005740029808546410189516726750430200387542475876940670086334203801210749890543833413965764176172875253211976441017296031687053925813185279373220768314888961679395179545962336771453866740620090014457021752932932592312806266088569070925391242106655610318793211499222655342766691051800393599930773149396380476926781837435804448872718228341174977859541500930208012226782280498489113170104464173613445885583078660385170126107409898607921215895292446281733419761717533406322119860698657063765113813645160101238886520834793850761431914136132241225377365672387997166792020285225971495568549915161630872094884469662789719616421257677614112385555003670200079679587430924810937417797336501557836685836700686551075143926357305879379710006055065008250986764745157733108831445713711830577542914680059114687339692390340725000193770321749951619328345972431842026661745643512546774998927730108017141217044332578731919833147518812022785062823267335520543817958469737930452309602854182176399362245432763497404771411176464135755724233559805046513533512952886512215491633917083164503050413816894258760265406375391869108767032527128875539051518253181708957078577214039006358417621780087374350115311507123936448848547963582919682881864261834971248342672414942601463221715253219872760970288022050361826379018442405174020584257344817157511559122295390719792999970627768471232722534350949100544122680060427128354313799915111867834028796961543120475204999555997145305124335538490552294108206538023371523772611423141368179704122492518646421536963143028894263389567139342135987239259826005326415172634049541773810406657735370154728062925874413077873428297116353660477333191481856906715974941965934887771319925744309684683553325853324339174964877586437733873148910572996997375064810731688319482652350271062869642806501794334028739683115535812357138780076428830667273222909990034997933250318374836548332994888420857940575969988899387090717512731035433739070465667827072117030158121099784364769519980207491284347568419722879555669974711356266488501628235617030129144423559764308774049024564004540503246004147952662756471624226727777461560818804734562320931018053329492636895566908163630680046192123223968683163225191771808424265741230919079297812176968939530877569186539603422812807316080156465985532108022477111843493513892932717743361564391242732656457877991066440534332513748788144212486483444872637613933196429938501380278194955422172328433724060906760054366409602888441372730868973812117337782423997208289818604525498786174910997497268537614151663072615938533465700968076484908224567717472889134300938274929512014296916426623174634888245858363510875401197950858639907808542733550168691861577689343576783020709881672373574721931443257594878918723546019908853536817647383804361910653431353429801785288705324683747342261819526281373834317871367020313237242048669247299771641619757120788428091828340087399092096315857292943908858481167620234664369065829333321197906262805984252151077797427992448685566710807458002519321149691860900329769242869722242686323389569326660283152976347984325137880001179228847388723495050207138978712383842779256897362166017668634759864973242453898017536048912668945974639643300527255669488950232960799877064607400927502880222058960278996141459464854780074342361422419589398126709111382727888084606147057787551050755932873916255442544135267400538543456350479103434363249006729958018416361808236588066493040788039919910987460125814202293227172259273736386404400612809753546915805217577979053668590265701285603109419178848475851436341124776436328071641341345672075478798032145983289000932123248230061910788173322899799193134991216405931965062112233760380921721023692863148036189175115146833426000753169794355470344709340366166870482352012848744480767345605850863796750979972886521494981226535896180122828273053567571091649018644514462303573238483291135017921291356640230570517614774767679485650155223824637342754417189178941906407982235409994973685981801671587686058897217110416121227693978848041578449460086174511499767908046934222354333768053611935257293015670154493391737089358496245928564949733703090859442666956400000589622879958615386759498476503389797654835968564726531074668042013950565727803889758943195820075676121417392484491142493865668800663278800060011438048608129284645930633996900092253932411867780716174198379934940319923831323111320966495498565710537611602722848130976334529308597658641433152690716115297305503256230997497305167749081899644202845718161089991203472567438598923810398103079999192398433124729913474437780573103880206354333786089795900579450167501965886100098868020714067913248884344383479516096950270323755511240898502024913669783094546395421669782943116717596195632908021893921852360208456872720429976406334352966301803260230427773056883473898168721363746891066030965637490420638386586395862173772611977872412819501945988906210556954927641310767264713469089350526832060227077630433969268394485814632774519995683906551310167062171908847133319355019690716477711954527229158467230734169922182879269348475638292091550095656604203179468443501971945047239599592562902481071185180814620701810235439824226546670031962080217046644769814139615399324161322715897842676249078768387017604729365112520167611326539295016683965734761591736276958579211482922412869165718772621084376867662737510487997167749743620450732947733692706194218142179406632591344418512332407230357065105687602030193044972810884359438334397345769219535736688005137492372503824380309815784764565101696747954618602053160411838793815621367368515069683167541192141491374423085169471762267092988019059822936497699932323841402124033564204928301747690680957741293082102725353418869290728202661852650733091071264578817754713790711208831088790382201499691157077772559785192456718132698802299404280901237327344104278054662386154483924156850019461090861933732114869541754022942826391454761506484470091545869228300389061491784216752035028960867530973054549908186198373311658997805564612433566308675210808129852866063617191201375790694308612794789243891639538687679946954949506630415706082114649481523642297235451075219827458544154347348688047129595299167394141022844549713117239782485737437501989103553349619552427321228605971228547378876918779137192766330962114299878663898515131049011611593247633003045462841518569662796261276583467968809210695620334738027248525608476450814311942093826802157648025669969384258014430349197789798335343722248830624844309896684951597818649054384539733727381502830544502902401609556029299104625887051427290417967567341249468962130370909783106986312914461263832523017347090746190207584558204035461070595923033863300460068285360873873529405713112712423716044708771645405429019832689594307789723962715418576939800734228436109414746913871766016861219135074011576072318635009516406077585127640286574068293652654883830402341171490597384226423332994932522324888420023613457528852073040679182289024514576070792673851597550810820490216355039158591967268880340274576656483761460289311325299808487972312092686876827227521889425464765771531145771977345728058497065654619256611183594479042973375704819367874780006531166533505110550089944281271143770076335069497548398536829577646337972011069054345424969850494081245731480952768121186709714108191345411127372004600594743940370970155098579635090064640123810569919783556829382340559286302785641062840055427697747744143135385123485864323237020619935121165369806529655252018612181565153211262536857431719417530036239851686692903100338231750982902373390880593622492116622505021000113579628093956302938984965636636654946485058284321409097299095410723833289577625611946992228358402085513235390462795414062564551457128149215753888871343089465237076647367227071670243527661465889434904475435878372522287634239950662851966057617570880878440964677141204180148679458164587567786712269101091464430542747650637404846034185834012778983623726485627457718393413594497669032544794329541699747982764415618061323986150340440099545713081162122457518515321602669434647739921103453513671528002312671537053215668541248267836417215860883781565854749763667800588005422278816918189549795081196793104175474789576046835097102014407890001605966374994909293220642628652525665737569494562220812417944776264660669436871893332839571835322874185440091074613975855256932082987328159172640411275673083637659517172171470827508824670728452635860882410053082145587093572814847211161308425909339045608692996781787890044771960371838793883600415255678122429040764502858550842597446810636836659808807883017686151410171796382578743525957745967390880734538525957643325667071874040358698191893177145226239976237163762153727080627944004598553408987361760996604144760116534258702531100153081706939264242670140111148046055951335612946501024092229365076519465649038844171146736047827434816119401302031606795377685425943216813967476074080825828098598492828332274678167092919895831973040202390655341408805858198228726894805585838033676340645502491498726478666192853523934780481593077562762189513181789482674940209627041988564024326882407381534923948336663974031055574670747469763866464908753904875692287959283057006886849303926105021593302618282402039355741862288079076655090930892737801394388317528536586447401140924122913204227823423358256299062087484930256922282401466861655920537830701695169877948340416764986658568068399273244772476242898966960441877464751311198196200204273160367840666544318002826728333051975031243583551796318801110499525061733536542968605063579186214303025523559141412628402621065895440934727342436614409585612023118992408204462094246759849792204199401127092260920059261130531012870882727978598405816662010750836149678198370671729550577643957539052935610610933320720406072807099473939768825793576755495962794023352602773025809948740010007420724172044994670439493094217824821995660243629380797519531425339530300629332384305877576733976005783203442887878060672456889130997285162437923424541442364207325479369722206904669821393192846218318205873002016095426037927529267459470797471028030165848273454595398417379315221899411412109115179561158221512051214926538242736571775607422745275896234288979029511288278239228864035482811292729306894930735338490013013266543643123211337512530132294328077461498591595455493943754666262436578727115317256420557791543522904156196993495464951843144790464004245513015398437410091281331405811279274711772943616671010701942590009674335549914423022155979450712581596492818191182785151751195225814413966235631047294469426513421164361196915548707758477279127307679853488290127105434644039687204370156105431378398022737204716881143087390498085163462970963465320673909139698113896618794092836965867259465701449808208140564201856446740725963034103611577132316441060332824279213249671830099429035041137727310985304561862485463907448566230512578347317063108701016973614798792158155623554327519632217292662345355734068428334447863804243823047775939786759685286469384456193308897054891661548475654019817290489649791260403636727943694447868526417928998058372247139055618633933779387364260479836699201460797263274231479447054323164785940071867298249183490289303245427205438513301466479961106045318889109247047579519095544894053967748282539022977606961170485908640693958828192404991041234626927833651092031603568791694507003281192300251189204834601346011274516072070846122365471455655633506605050152345424188516871218547535467115016657318058380755577536621954363662732232662620887676259723236952821560325364892959333866245481820777133528664101551398442732466030905260947871427802879470661867286487139480773110526471223792894067923609754451842549711705788341168481841353321589524305480427743303906502914884150861082419460739872731016571896225063329422157511477643054625107231927260115405086638488912324459657365067220952775827275889557525121506825552770818069100083664875936559752894179968777262338647431922456075492152021179910769250799243755762930172078733784264029146557144099466685373877749044052498582182562878297136805370489844526386846934860901141699232775614781082896292047573600066612410530935134356876897964289286757774026055592872614162907795309425575213262497916398230158829152877152755841758105122480357999141219494760313160439115997146751291320456715457538660621021488232374707711791158267694984985105633580750198278566985793270410277615818934705216971998940178823648798572054774892702985564907084933393573308357601727523971487420032095124063847490128954408627134563776446806309755565394065375719429562968368013898775280916078374016095932156358024862242194011072790716171327009470362375462790480563048786744745709340994701934075968306933685666256121109766161058099449553250325430790102436788223043285796292129233265193936139345831339592627150887299779771410025643282396397285992990198722775057325661973013972229176155719885157300216705232723295748636084973273124502083920188551514255286233257228243744230673280912578080014466792650433515288872688093897934890723995858919328761783070356078606595060278395648031864271261779279429033557262277761461680803186039086088439397610504355166126050570531605499573352304665179169155641639697752266646000620297238547127663972640124893232475958740238603651649110282355493567876948513854527559976287307408206699650118945718513759969663777063632970447361814126407638644816754427737815249761338911292134738050473223163263894656874398333618197013310443821889636555858576513665019867278811702487522262139458550398224892260286491795217670910436617503927156830538034176599284200957221222274125109097346001957142568261667819817365089653385257051191454598686640401444902854381243066800392099449645887662190946086545111475590456249539816165347167711436583693417876246929708324043719725416590176551115341260660402281218764280578971569636325519666602218959222477703223894575461082730269264284600493328573051951781170839481592170796051439095064140804097376662116115581787394857709043801035424973613994958596236057834733723446441752663959299727198033412533446150118531514688474805026532904921162890009859491098801811099725333954562839369055629453541398460564520784283702304971864785748007318859427122101918327658043900317915187048922545667842256972851699120308982522831591877114993164440126147451626209112831404591656993100405975713666736461565637461459959228358886187739027146121671093054397453384705617670469200624538190045088605107748509569375445328926117243786361794136881532349177262923852250149828442591792950413244338738339133334512208933019238857458650383043736613450036246987838063580183754661485579236317413826059596230825743693142174771265266065577077176814543766691214384848939029123801536456173236497213172292469598094279055919139174049034957987232458413655024832921849701127212873737829813378018170417795185818929842321939322463676687377311157813501479304299868788328876884458469430370270641192321899469765787484105248043254458447935396718508963754323780885150718839264877944750847878820893138341283096090473180847477938713733368779776952679115293607101892717727697590455476901088622833355952588043130300088832204021390688159637615600382229186347069613546709036892368698261204363861891634111416254541594877933212151992048332858521741819947956076821260320101526424053656278062590310839971146784446853074048490289572894835279152574357479365822026550736041617521068782142720203389710156216829332199109828297035192752383243416477325529348138494753935595213688519236999052429049253601953664991246345955545537936826443464381050024076214530139206056883771610718759112938025501385699295199933883099452100283259300273005826713706131402322995214197783464847103240356198543990429097236069987391841801460017026672029314171192848306946583686981200885541350918286407043144962274466599164076323774248606474843342192905847378947187777323369650631240797877762677350901252258666261107428244426354121062030501974101743018571392655740437964501131540404159837558739245422862895929698135358206980514341005789703721250438782042884802036950609241573668393856127164297733038782613984752919659765910095495707401491324557364079818326512526384314666156692386637956433091771310524881429595841240731895117301209786325823094355096517466105504292127910369770165569878350755693673349443580894003821804905799971821470906942697325632392615893623162829027979088273996077204310969213196887088243000611843522251384655967273122407365264302305304896174142906431045278864863594144551776891594867280740099926552135421288442388567038802308791396962286660828692216163651807541333899386963297188634977714352133604091909926723462609886789033173736963561308635067355417213323293902052363915057533837042880018470476381698780393074564240738483767219104403999634929489705237930397254822338735412801453882580602486903711159645674158956794661927093082499695311941602314584175623948025473548041785314610800746271958811149647390559307238432021524707548862911616321558111750998809607483295012436349798144711823691803064796592307937930205443128505723354934128521641191419568779703307169796178884813129411191466815747037172616553383033331238015722983470972719202270933831825035827723102199221176863220684601637766658546486179127692724655042737440547876664235081749832271100421421957502302248642278144341538067130547881038009908980917130590628672503477831071175856424529709453819335116272144500131338397668038504359562336786673785340284343391854823919976395402438747370924313770078196059336103551331242973544796593579545036011300991789662090722359165775749961341756446964320066332012845401895854752315957280287813323437807144571867925581362917354851261750423114975190869974819917543067307389896441210408429817778527236495136930039358376869237264100941120920736421229963583739118664524070134939590792376950842188430408668991939554415532946346613247903302870278338003940586438244770209027764815225580420937635100815233232343497549757013395789158617831352692220340608338565576258528130642620404656510128686655973823203938658703656913363447342014418985191466466216270583776134576936587214130896462737789176997395619668867429631245894871425703440287254118451668561370023788798355632700845757840196725569010646776635099198872944986473803813480774004090287202087851701385183357779213243066030254487242541839233835479719898578988913705700622363872658207946226018775746042845835682373357389491165541111220877615789854437756103736375322963517794821108723916208638894702379151224025957559287487369601407276648853067479182912891572780017258157028515110446343766353412359579649973452252738878301412746721263602537241544960256371248591723509028829148567747998550128633514583353318437511386742114499131500272624434637091252802394155395005816579289859979414686975146761223533077091506917032558588989318150564956648186421144352927147058960574042533386603156429721597270475555914775145785142268004453908161583274062399118023942999708089640503820105388943577628680093754666483207240819520588532850651827175997196393443815871069017135784395036853054901814810209769927166847148228211382116595591317406307686676571424981674228649903624531221471287068509252374205071594786034349838222744887710814159391799597565474779262691478771038384756742804489766528777727273939307377125215541865710708850142382439722986632243075359763976912049113075783580379702429569409993988240634085182828117389006681786847333211124718967658691567889261837977156420060045743748193486258048094166802975773367409976959405430415821586662405849532554453333207427135868408562488394556487912553588765826843098257724712557069689159615220699197782049727476774835061742744147798631467837109449684072088865716505761524907716259704067603698169944517265643855545126943893256328020296735370409023324446005645685435596886245793953007513147765046035245724724488950866283984350242754249861803879682799563230391610696859169433949298322673485159241530861336220093877124392594239658626524495571352676025782423477016721938784135548930548611055992265256474402301819983325133844205538513546799008975608447852080240200403096517839466674801855268231464597536801744802613154632500625097411850561765819753757438838341597199101132403945691036222173402496869576936121407910843287718478851406407920700359880013541531064499260873326543115621471122124321527828349243121962069656151255886089874212563286166837673917566451606450731277070172481650236048739994662857031759363177577302075893453949660817524116057190977417941930413805257608640208924675787292094359293297201544191207694780929369168389971662924443544632975968168225871595029362743028240286685642626485691223505476738483533499311717005535417592794398436171054981620771192413842430568280300197247786975389342119940500114578071538288097915460735833852651344089926929872996748210088942113409072538124261409643267677976390981773520943013303284739957543444481802029034533761489671777334456978630091443947710035030967330526715664415661891155608081290535887774359818809030213547366293388624925444831674643113360336064011963309797573347870153793369524266749354265346903887024869995755836824249169082574709929784993753512702820255009307931617902227145859187430883655578843566232794449842629175704780777328205959626008015851061147719908267370473644153848068369592163190850444956688713585039942958637933057082745682788311988729716895218077654988043781826623039752599892068309597857147161457785649539574299113713364196292331856575929469510591828319707322900375803382224300018657367009763679594120403437243085449630163456202183903908408488766552504732164679395429632641527484655173911940610014829590491358492861565667298123479284319730438438150896487240147157588210067904958251359629201157053506549713672872513064382850176090745988958937885739432616939496584252384191317047064070586984884752542534607522274337583961691957724333522564643045753302403843455180085830790388532309680883023158334025005575866699707333277094662921544704833725656595935252051562875544336618369190579781383522213309515619605599551723156325498255339265248019343238648595245734091314173774731800183811598193009026938867842411434886833414444680511281386183971698650702216000122801594997341688717814908023431519338588592549955472947936690153289710430708685815568944828534872443387521019567307902289474847697201247942276268844835098295463200848077343377794285149760065902092599218549635680663722111772958090914177184361671135578603613251528816451149777204908922687078171830667501313133428247861799268773268556759190518821599994720849757017603328995076852948465708142237614451533463484556978013787357806722363517277285655827541220002755715470935018255690609643666177187629568145145347691962527117772378789734205351085954573574935334511241813335437363792946218036122291524960694903613122855880644122839267496469130266034400292076950039040948799954297000610799507349702021917515918519107783121268015773694805555955086260879558520367130507156766385742585203132603120293690479911926901891408236055836940822950533621206700961032861560223297558892893921393004457757913384944875563382489090885797801396820983562300300502265683550084965916136530356359515908390453445175108975022956687055117892484363459144697992226690478993390215357734392834802472026739739425680556049555833584251361057199748949391404679439633396230925233987475306884017783956920560655351047972575861371404135689409808115189187832545002989001237249115936569371651018551782932951434924042552717845133427111627509138608841958577603973061501369316675917314212652666413673677119725556642762322449146487831130416841764269595844205672964057090981059631933952501261324886461739032049057391867488992883846704623155450116571967191541857029100156804880591971017670420704914113446945811301978416447888322661701364852180882756746736440726932343970820708129682716778482627162382607159247479328369818015929296217038921718643336990749995959172259152415277912191620961755451373559358145014154660389849442158012140241823921119965784765415621071515690972317850156544444289211524364047890348342978781809345070321431915115309503147053041853625127612842703978336509154392635558680022471258707120055810280050435923963694365202420597238246081326071053605945270456734730109107747214551932061722257443460548509701379841766677636585913030753426135247445090354307600649386254009945373350105691718061988924266265374588428842710179123063994550340090635664308872450488838342283346645599497339418472727510447043008103391184983265025424998378769734970157589217081786624428546776268184504704240351349262488795396645245645796935855654560840971046984971096777872250148198132574111432024743096510212781320771122429806799975040732542767071380021299638892045868525558914572379894803466482424913676787674548060499391283489889996145994192719679907437102431187337467956193675212397602347707282844771759439298866361312257414315833705423897196076020310182991855264782042763668063499573084366697887054346921116736725839536256858333065414123942469284681640366731112713876747130075940034284043669931942128281616198307041654678840104407888972810140979300677438523179554201701793054458075312958046651537885057324309101688250607284753704531092559032210962414884491430968583124939157817478929897011195822841422314328938749776356277246733560198002214806697940242389870269248079422668988616273530379385450897868672552889545733287115434643476104165773189654892317861134123233792645272581021796093785906872286329122478974306876179747705178680813676224938733734651843666567126239159990186345097015380945976678593614427566386889477460456789290808623969223576818088963900180131111479551748982442090650484866558003102235862391116224880701619515229868324761882010684120173190867033134513275387214445967438454031257789580517302837832923496237460171420153544485630100991184554007637147167036858720934729890102754202962040542973502130614231977384473525269278748856456285449713779905448438295314067361079102415276754681987361388135868757717978501563420996969930168272424188640322579528319121867545882304169877415674479589661417463550340155350908004064886500073388021419178926700709071637512924665090059308524803142017083217962662335380456486657654240356507805116310888148674746195181831223316815308761794648045579642691369623828252584755072203018890636564916139752333938807301661808621387286918190478443750553763441325340096804570741496042918881343685222789091215099948760766341668583816389970535641307277174345794210801291133486948679669823224869045518924285701521500783238712411063307691480797752983121932636336454915005649741023129340325696593199149939345812660711965828277346959022882420183363392327033606109741349761041948593882957832116159963526471390665581464225229149601044734571039807169787568999342851722220255003352331601287983356610682814450658619358369525744530127457567112391595863743100653861112646595834504258036476265973653108758553840833905119657890308088981696977320595151337139929945857106278181588336753601251150479945931469735782460331897097091231903661503571086913545645491412357259891915660430990958606412891494736099181337379096731662253473806872335678581890558333708965706026966184414451928945207414128492734709180606678795289414734118623423029593229000790241053440514256531660046709079600845558223687671233433010908348898841057169121248419102699181860173656778589400722571698766740546204811345582312226267252751398739320489835930340646608648503529366471233083345420730104530796182453664451261261344181472302068913600046042434536122231806423705925834632359258458193548628767162814205207024974650648131390064178433300885355029775129842406890385694907031402854525530226237879010886019126909830800399378318213973109809818484893486592624289938683826246444323823911062447820382896556237380020852474242344783552068787271959654977499830547812419683672705752870148170914905349507105968395141382396387614971795000307549211338248806981968243049085863370137469091497216246431579519209796569341091660417220266421681598814313199899233501892064971168293410757653191668189742681738165496123805271258730640547461253519387887002332498963258215823399611104046490675710665895739306032858693336980263899392585274271158981670904516183224267899136498673585143274720605446303713631951037692715880269018139176414113606671316167659441641618515510353689904870841528006450513227725043508771848276223753667361417314246103661015613339964024735242783606978945913954224635313494631495154567690523369046977862202513045842404404415703464717644206988372429200839338370185881096631609141870959594190867056971429875519767302737355336115448637042495458868240618304296380893764471049565499101309060845606883391314179016206012022390533180617312955663870310138835829377702288462426863252473557287914945028810635156271065068132676914874151040381971816088848704533176419820580267644208932951271705392118226693447661536770180877894714389467449479545802171511417829733025474763879780690058355052967538842569548724546740502302112893515985457712396093289530374585602461253299308326938889874574856885864810657196879622758836452579227652195409916305430435098503838645505004712968082706716757529357773333125960909272802504863813680575780585849741059586609513128061904880673441413922287009209771051438395320202935717356029354962891029077555545688675355470660024095277904517009455829147424943429299859451214579064485063164854830991270489063544938868218084435370018004561883556718455602341307548131138894823124870338490689676229656486245664714413992611292170065427181397833368161006022608727898337118454378503359993998737461607427600014110976100321359917552198312431450414581716553801462682080099951641433029938651803599511220381394478187961075531598882776831448869205774648003096591916737947545770005666792236549598560083211433843669732469987864334403673830179750284552086954849725441332402327558685517480999978275459409072875922019206185253196107353500847307095337501941029515787217094893227164124587389858447011516126930712517024249157600128709023113715052444077539996130318791528453040675358112975470271938929496914330602132642715498090097311943048705766590704893860471007969489643935087698086456662536600278247172122991253125354133022423491379161444162078312565662227324802645732095179195096746390793045155802688202611488822117893330793226669534629433035448877891278260018750058331850934038638601330400157538536620604429164085685725167577007892818538062724408784240315374310889253002254999317610138407203946436436179635195881271416129230982199163738982139788076790981053887984784934151938541060324821801503200319384731658338493228242422164803967946666910113061037611593596854423661690878044258793846620967465365980419804791270926799602844117404165127041990489952451417342505675131842036972858065102769340953686262435653079665687303132088746557016957865136056919639357107480589915388396005572869588139273805582686333834860168351635601569142699304517900758559810692210919811385757352089375970924263949595000993544934930546681694651517081615189429145456416844060278850580878550002016432879881307832329310801382638472323495678433770649757108790981462629953536424971236208029440275689310921159837599297341793554851455579478100192446470241579211797142694301656729230770643601922319224791269577225816842354601842214296310172489276240258620778451694527393082731305460051371715301579900688707727077173773607659923558675453439766924131636953346187148642744171261522574376059632004318961419770587770848638099555059336164022452928378363287609282215064221620169740863525359404766113369649633706058999135512968532548515282912109609629598854108559730699446526609450310177911845395207145096916327045889018066893602167665710538540693744860952930531689626894218918571884146069186435909104069751007603480377021418483880163691256253596026389646484257762689571475719215165149673216885052762738024210470763305824251778383022514267689123487602472801242768571704953964217147189473299082935053888471741814026667449854621836884990503659415663917819189402669529590972093470187681543425557225275801246831548465214819661993748260555477728749183647968880131579036248472696682425829758696736751535100582644655999097340764856129277592177944711829538253158127447969986973978343795861622156243225799566908168045738991715243101415476330475129037036787020998300453603865140837395877208188535204635356042715816602594547805595318631959438568720368403234032676795663656517003978719518375328591742614900063959962156761393070889008602072978321147162732203881257336593819823647865217726329316766426882183011841866431545875189849353934827348347599436510692185566549483990557293342599653900951884773511251446725366642402864700045222571135975622740195073621974869095227347435746390499823148598552088214383233356526042819390443233416537478209886084419243718700497092401424592636690835446617916801961960945386626535910970604805615500996268764642290072005436523274431440059219052019065528891849784873346747455690045012528720515772513613345473954221264834856409992512873348710329350173386635753669469582981205156063151869731240326962807140312378314388820814704872100094263199106209355107717118216088557190098918240903129995942279727884955821207550899945240709182016093690758189454500101786022917681336431752652100562879272903010353180151394951385558832577286394780252788011933132361364055769577997314538736155181774620300990400608865321038350294773626794406852815669369415629772269325140578043746944775142260720417633109086646877242490566133342757404105626270049490646945371749116066191122631059206712501580302078920338412982477490463849930486165548717734157122823336770507784027572954254477758742773853797507585916742511296759973523186005741208064924341326904219401743213101743822148445986842923313706065144934085476076333656198129008102412164974769172018414665070312162822971212262272110043947124058085962761825493914708367279378983308162150801339621582741186083494600666244993774714175636029022790925017342069477440826162516565585391375103001133336598949288291889709871909510017937244080947859957058059132891693584035450541657472270527846271080550423312408149558164179013060063204060124412211199292219373684364666260552826505515445888717589313296645141804977244984812597712402342841182397109253125545275666708368685540359928397970946655030832391285704664355162999306144266401466340872603464336359162072961737362057076548607556070740913268141183986771041175988091238231986967741503891857366503245284228652464591040067982057896566128115684569665185585012979685324548762296753285849907574084129446282941662215283067205124668477120975444899966212343344407861429771803654651107198992217427614620825882529330547052535156455620176795771712719587061765867942364314551714456061259822415644243203294557991489618377901840657859929125168806707049375186333636318884462284196668954450998262460773713915831234649712154353585126680205442376019643137521931451320331419755735721156386235084173662672903694589268796061617560374763909716315774420487410551345494494123307007204956484875683845075535888066948417406719357599422707236992388177885439288577308746022591882944711844630006442869751771281673500629657847771498171091151101706803577102543701350343377348596158558840951755845235566248835895626237567993697853562548518591141862134408712851301649795802834856769795581760184815812652955910473486415552062088805744879280112868037666717044727201383332761953633310862254912754785677370902083050542888181402253531096988065952451283177509621304693422012850695491759043089791991457891347160302113810183436191371476213200989461826993867507202988364022063334971805611799068054565585864568166035346202433564869861656578963915197059369017115906138750540670759333777071688744418788022638969339321131631950414036774822527303183520111796666271183387291304855115239044822913435539400901712126092181874429352027530414470453052359793683665536953304378443428038294235826002837180724448850103001138720882638517389140683669004636330916496910799890269841764741998665501377902544577474863617052435369375883946604590560814338697561073506164777034052010037325812153251637262977371151435004162947456514854948662388387475040534799698157751605204020955409940274417190258090048354015238114246626519997871758250678680131291366489296084110090437919793915960635349940744346514869053100407940536301292338975954493025102903566925547479808951103739891725215845623085272742953020035160409150638542773348914629239001243058111297814214065974117211388567814721752976408250141133098229212918263695946850554963551406366513910164296218008260783696045665981987954086049174537599512120870731375365462634006875566465952601502347116325123276615600792725879851194961280692699212621926730393375338388000222788235728218996917923539765573037797128377515004770347184801677146865427068607256390784435725305692128753524725171909845909852603051485724625839741997457583147898139595267276523202963016795647136619932498026300247707028268978298659280182091005709466989203144460429783129912224427585592951063803592353356349749035630535961202329514529102304161691415584910195496147608955677001887636516265573837015161053746137898388868394315413809527084854945905574020981709848283966436656749741654443858664784458710203179144785348133265868638211691367601685798957448360506534789592375228576144085104315880592483152918030342732808915044180249153735443961904457480347308088193704141240038983664863774979645692694551766073140639403885445782357210036463982879129086152909738049751784589137279929849917349769715525835202681160978125135423376687561532941215225030522714456121311437688589384664288728213884194741364309381774427301087937822039458764841072228010200330265458243742057661489761790072141962007553621849095402374957139859887299060176796855630071359836853476885797642941412638167435657502608947847282965109018458147700839385593916839253545433200728233763556420675255409782439860066984300650557174134509516919217127878976857829513347451163724035020644296050875760293632403965458100823312556511999417283649464671416228601489269969850022308285172822122568113903590370906884978756728378262012249833312492574084513507985069958272587344567308500852534764646508333423046868636873659014730298987804892686018011994846340963804365701016882338618681916439396489918883157227259443025055952709057404343854440479973662246309223739098260067637073985479477318710482078694575905296660890479714847660691420765221698183598362860856250591600409210725273930390336832493303142877855893067754897674016594094311550129663020334720870777269172804316928002823573798631455050827584182921012451887727176582909977950183927776570464144004717471269328754296576031450165367798678532464827138105306146959466512907983756478838971346769141920493372173353547027132507141070202682149430492838963934442491095199406508627033653365747718384768755750675344444475644598167607299735272701071443430810951720054593571100741414405335595387614746471834752541734225677512233437654435298064060459246129425208748632645844070963568561106578067200070513944210728081786120945983211798054563188019017981999423238245103619011831760205288165797572609603600841501943517808479989225395020601875179983801199654340503431919201487491200749221440499980016767449277114778103438567829194397559725593354093090759333326374262061759932846675152187215844705399732901058723735852496102114513673638698884835025257475742216168735938285109920036254034223832877951052414472170465191587733414445431474897604194049496775326731623354570711776042386835483758733941121407858672383606563899194371602568817532032482915662494076163355370571745301250244598412050883145946754433528406055864505976874049126418962733976545882314507571982495082873267298129940923756997122256638687626656702673448693762981458051375550630225032041560260875523128482881334081632204579090727191062065780559377566456474565436496109182820129974736051170662983047525685104460216104616893076749016210150373596288233152738994604463957157395835755536667403433197001498379256761946402864350071785489420148573905173649006978861813820375929661126076846076610583965455414691757165897235793524255463519724902411953161562648675764081005014233067274746639339946863052086546802555928194693787716078198339346366891553802012618727274553498381659049270891765881379227043655828162321480975113366316083411453051903509976698574083511224293184909021761997238399246867973532605117926627811357340125992826238275232464525297198082933761767036117732697818430769839803553941824504556945209573750581927618512584083316937487983280964072705693283972276097938373054587623574484954797207257306308520594803475056127437969435141147082313831410735872514234286144392421757815967729596571803167545501480007449576285766939759682136476523183786115426701240090532133750817500294415426114029920558270634743911106554300899957288963710501887120222800210577173707044285792402853129473971128411196027589643073547690150247577021007820465336992539522892086737145750669323317318635891716524314972989055362101412827521515253934476864828372466901063565756418882772499858816635666516650286219826397892478533273318804458726413815677445942410022696923716140739430877824172067474941992631893233612577502351162763369000774379024471940049441009822056355867292166818747711315234145376356268887617630085817810830415000468162849160202041812626042492393870582211311443998824313209713695457488930981001142951330508390420871521128626369475183987766262332646565688305994613104928995717272331095260889045214419738218522131209876382688671738798367157227471319917129535892665130796532461460205650773421240652266116999271636876725736323317082161751182406684587205467422672037072762489507825158676402161916012576758227027478451776669214874574245747144322290023820159033012642235735406830688032968475301064548268873753716063214983289942111252598472475492807628331820744185894321773462608488398355869753602775439770880498466456267891746457601265262844065771526781280461442513381869897691314939638177225715092405276043841993177225305199649701185309380643863888011076674966061958872700374079957496027019647823631450397266418437878731248669191509939459506067135359670398131755401940036159915984299726845132661901176181297008887724300025581690090207000019109365397242314485068005801347926426850788928028097529297321988884534363815793107828319883228622426952345285874741563941909709310334120276991627755641253126917848466125309342005245515394183613622155564443851761234418757049822270889370829518483293351695909585294456293097226713749475833764814917555652913257099160151302579315460358427244388272889735604980342027137059592294872329817099124828963464587450673812439773994010910140160554503561527431328983142936619245541046748597036290713876535370099228796056718250862084318702778658987311946628983222963235136610270065239096905270663573476763505096534595199760075967179543178099910541775962025303850520357788677023406672970531406088278509722820759889510174040791675548653268863257108127623839125146362695381720614777161256211557930858727688199644520958014550998266723600067421269780242454883162935382672100534118833463966606551257084285231772687358299138987348796133426974812854568159907373090774955911529453988291810641388885945318063926348091412924555192266274139668766932056988001507489844859554607067849117322221323525552801671018072884300289918729522756179084906068970595618508344535402105080885162087162500104354671678758963786065347075678390989436441406529875107029892934577050078919051206704973548117576131824520490814133269979882022802170280355715450880073042434653863464204780764811152639725373452608781075322714685260678079665318917690775914902578871014326598301528972498564452646657483682742303708900459494967117334479265686081186850481405388940924101340988963694003106218081490935275381185879166687001924172907212850709493964611493941375105227407304125988945922843995058018251666458732374065276767065393508715903699481481642812938963733938421861873407438559235002394102988355698928133715662098209305672480923348062255715626132381033273070377490643044325478143644285463012258435860134915318344222045815257570028803500916955722120213766621925557329829220264667165164241136203283713190394446596021850232318498620244130000276008679292279822929105854053086142129287460867894627622289541740625702352546998572143879550085777266155254958574311446388744768184405764007358170628247900268343068944695456290554167077118612422636573636873271668864037652635173728096410364701590943187914871604043512320488148407455840968112351909139530652041585205874902231106629557771585285954089273577927874594729189725461397831822053101787985145248694340099307060615367038799404131927836024942888313025128892764447722991345220149468192246897794492428418961563247583230957232710795161346596281042352766845633377451758856341612596192775350323215525038914736201423222602185472754114067437241976249899114923660201377502243662761664482900569854599438813700521597722129834605041916122376461519544545666307882926883283747545708755949146339876171383146802353606568314605492479606859089941475874014412578226099235847147067219141753484609669763685949903532901452198034752347411869639575376187532069277648427265144102399231996476365669046967450018451334304164692140239143983929904919876674655248451026341183294414976197929854058304330156441651255000990820946372012509276114129017016234219872208066610335779130613514124089562484430114458693855257455929950865425962836107176135182229239741863059105218671493675814166560775317007488406030866275789575453940813568004678460880610806611718461547040636892101012660786083821814400389458114300887227724467929170929309642451686564022708563025433808528211445461282921281637306118671911352229845421311286255315715916641330367694896525843658144063448025701600650719534264420906787311503017648620804106049880869843234577545857406570272335900907641276510426748822149310141798131953839031042373697850911717402538245811216711878803145099614335880071081593516242645499387734892145991582990396614430962938257189732123129642333756806869751925999215127224819439087292756694631922578904031290189613172201753013883559679510938123800397195927467571524291892029202505000196693264707557431864282244015472052066418306883944951943937801865814969693404590603366983396322436587347960935583309969043580236575150597689272219357962612242564241784114980827856330466698968191974893817653509629735116953395927876404409999726347152711973574161244407751488236934067793191941427528870462266551341287645351951537862909131554912392243453602691459324138613627025444281249048365457072776445524988145978008709866959678381181149364229478595032284638705797515693251279948148383354550751767961805636346465028532572907999008031499158809436267915995859972693861898148553098557482786675624487364383246682664627375545659201768337962300349803492597273389660788612163197662774956552139916064524551704164286281769175794704196923995858658623648653894152011402630949845814636409563384180336128172895816311978776017882274767095850000977287013535749305736627846591233566321826346515458857498875555314762479313782698535784210516366327184075890598925044041448044284299695749778529759403816475192694012805166258570928310268984865584712402069899541911340593407162649879117478704312578210514637833678441162690382929706979880948323266166963291752470043235096455148586439211292840063376474917836660610859938732386237862121690953082469788141298195459716838628808463140880621165895436640877971201409205608996633331257992551504019762688305426750028855503651702314932773838613546086993464641937524740852144872409843800062292805502790904452072223922591211975550026593414432059101011245114501069761811749752939858576391685918350859323808843923302640938266566394809271526166813915723323960899787951576471955919293977905104586406436031605867232433597723863578560066021979419517100431807139414824138559677500609498351037320983880358577937308359235850561163758606183758193451284888828920631397104398555490685287645383941770154924150201294569350868664956595367843866616337533528927162194309519945733438691376453561163604295992557428921192734770250219610399895155846460328250477817191742345795437481930691865513736075909824208848192282841083172004172493497366472847702753282939625390076830280765797839574473015965010501333188337107249166221727624560937386447154464415787614396075765817687709272445654421762918944953109422138055632071760977547573262987903262726257990236408461676233903842669395016361836981474421587533093581003208676337880550462145328625179307086039574742323179089250313220989775444918494898126944462599185153106649747195889182689448637723048770675625805778472368675615371690975875856124819675140688522289523582176749745700368115870647716870829843552417683008615779561658940814828672953712646951548395183162495154323024042387530621162143978132959853932006280225369141242453155015440072127680469600487420088898487553638301496293992892928624912907561848714792891747146849545863064485631316190765827340034063265369829602899151713247511902859188356245429067371788835915098207437623721710409791935285613195300318522980745692387083887464271804787947932195928303038752900368848357868644056257634588247083522016552963309507993420045216597561232709567077129043014459901435515517597363227672147259083564904245389285428316100834106432617721534733572520219254968706187843147978217163445547749749139916801690689249669248354501075938762422458738023873377401927197305940744896237589041405434191578901665122232018109744050879504664745975471119460978571319625026092732973926428806775090005106422977592058781802679692246505952577814519368718101853260979174334973569685557707117148152841605038896646867731095318067657220782305771492909872446637263836161293645507636520969806325664717471060150687409620408764835394940138888278768754782263984702525000663702844238644132377754604974773315961151721125846742475423002613283177078583275947006028405292205129651381624993192419199309773047952546755548587769710735376334958621143325991265694352232965926798369263118262998831440094224233445875020733069573960252042295932916758140857544999272675233145823553122487189898119052251304758790648119524741320698708661909908192453840790337483303610753948089149600117924603992696003376516943183806191490667121376191387071356372923962334091853108822825835877839554582109153508389105940986300003728804193394832903389487954540848069926278992528471919231709996354710880910642267004090539889206680454795225392395216032700336304192302615795478659926433009363628544855556955936250669048876079312415611611474538169562313584623976361242218822975317255398056282775813096341736880125126428828759139922978376303719530005988637032679064231015708116161703901402661372602999639081668004282510676856578762393509678924076167204395354965837332416636486013708302841288809105317459805235886758209333810765793879708078663037566234578522174484530576062406450121107200020305916321335694901276126065651946020472862512793053355896399790112205034089897386649919045438414684626564120597073344811639598062376372228309424129880018596620965220481394053157610474465304859629769811651544662732885002104035407648127824810290924428798966004146399272306111075222460602714271854122672157331960177048678360925032512362792321299420196661224134743681402928558140654154713250302763223386095453205296784146424648188090647770611709066658173529042216989501461730377527951724183235949047404947797255924035974630122178761985736531049488916837153882372755745280276823951843155041473444496837031053746791155109134625262383498494769829483969229415553472803292884561199575865798545880971752351398265318874767535104300870063864606857653032663245329053534200736188674112482166018962341844863305563842953981397837199139456251011161665004594723851109935468166705485056212795177028908106801575748060866304890949760682373382616817516620907589826435213979098358421419128048281572426405018120802267096849800491135014771190885929365279587207052140013515279891545450416877867279798504236472142965010706118535449029970584314809069697611304110400633095212379336407695834452814854648253945577387389592209093423853989226767338330833355837043424324395066613055725824707620079431174097482022977421150043269645690845632897504360425866979801891825813966369544782828092263797310112475544205352300999925839487993773965597384504415194631363339753021986715738428790392141067530463408360710118142859111323794938454208734263997261140421719413013963404906743321392345373162927796715809047427248751612190201259529735807778941728348710682400046556419569012235521708551245995665296476415295457054848039100633580548361878393478983981795594618835039031575729553825078695571646319466897700484645187572215407078618357547455635540446096683779799186868347870962458081008002931618222757145165037337181821832906410363424698398411353722912998377717065662757330299820224481700934809916344190107052553239166349179665983869754815401840698530400892403792582744604718924595589244976629413015156325036425070223582790830462783475001204930131491306859743024004713616398364048931487562405281818310263797557107443047402045474654306598397652372676728012466187517777482536540338982301555413288284824280464387442361875747111775905017714597247557914982217785907222178243595537451779339849912798412359275259137546185019729902944755922981533121835751909457251256942327576112674824275150629643913562942806887205367165933453361620785320869170579172106362785238852257277200347932724156975259598895439402629533769775239971115459405221999019408373318370095958607674085636084757415935632052315807344601733067121632897041373721191656613369361238822782320683566934974063664320313233630534316579496603234061243183534831554183177826864565635928213732715921382649365385015573595630753487527269738032038131380184058186329022001205484886164990914406782709917678738374046036250661671229454960493498052720501564930377147827621809243061951071363449979110650575425320693163090057361452114279060869700648501987934691678379960773296363323288441419429059995641008521849750363962056968677336451907296294116270592902842466275760720725423094800602563539099219663135753879221187923366062517722160884424086002704717774858095401022822788925228649563695497811499544344634322276724121389441549646950038170517268181671073146841365300714487728930853268087328477988767706695290528723251656120601724568965536782398299907661531967887634359131991902309219278469187188343148339695301557011807134601793835148507722345634910784773508095306749927206928874374985724470341504472208487699406325958731079556387184353540400550444950940234461621723599921030147627787566612460880299918059957898259356671654456751200836139515714668162835801478459366374130330877602757495240242838409100338872805471550323820657923993254709359134139845727054948472316936596871600714877640769725314151188545866838533571070098996805955469045010266117407351691170477066499946226088399000112414482974341889536412267635117242532511415213495264278229295778977974547957983105805441781259419800180919903254447192429002675407217749718297038818550062204633515136686429987610770236699597325758647179474308408236398065450996581337484258665785913508977169249352677397991258710985707353976527068082001876426325334733244605362644837289886355507777303550555767456717799652871163429300980723140370610810908333736247200808506918478114364184716538564412260585572242843592114336440804095832412990280120511792980728630802720036018123501553993066008687512576518419104158949062614579555140735957022953495510865638073835254718350175275698095817538691722871156604694196650325609031290284894990548521895141074751923108796876766343334539043684767798743044622141512655988817437446155451358806032743393379584028426003469036254281252776534942302789036514258473464753309052482775691525067717455834709451209233603732178482244727184642295560039296442424767370902183673071009073094057130286363414629352637472051704490854406662404645389319000150571059219749308983550943077608911955988758037875146992712639002553787113335562398994383200039446072917869024530082112716566992652572815313998942485419237307734910754458673973676412506679632706124548266400191885823109857964261208355209968873119681587660151074001512599042180240834852438485841639958918029112132262899189603511917494475087598448387235411547394088795239231974985625875925875203794229713455686789641648510407853143461881184855606271184912982170177865098462619549206432501202376619943912512940092841094083473488180476756610396327228394597268616271230251536778634603204637537189389652723458869918412066521385231382353939897777467240145702294219133006931123693386908194703465129603474220251767315691838981334365930119444078069229705713899879074982894412631946558309896406350282663409264568649375706480443256063972384297609258962709419558469821508521492317039038457527908972423747915951086731093910286659612818365511044127334198284462089151357773538504398130056293097941777433673272622439245236609230169900896685644975304220454165376049331851964854244571815625790914641550856081332424756646984786320279061311897638251646832852355272487681337927904297421965864467135845890418981614349725433444602522865926741134628839885865436710678537702989909718360474678224012739745548972792660286481489790908001590278617057938785926486609344019086808587623686032170499716607690893316057572531699283424463265632186098766293731609981009496360057668882135162849429532079308964449085922483021727331409866781706989201219034497169343692665924756059318561372484234716722211847710266520536982242913285336207588273077933619142818904362784980844774081320846372180152080659367341731520888591220184950855782285293898051155774399797349842576594898509799033945798116255540472223924102431631039247882076878388537101288924487100578650021914722791082794035245564450635668601287691669688225083340344032645615970759254178511821257802795413926205255007138188590322647533013553681419172470543030449058734440253167638707638089237559839504374775442026166977754975944454192147700165720411590793644606944372573226942572096973501070849346301852267136927117395527127832086661684700437830145446001476637555353167182722815116437128100780380811779798197312247756866595423592522839113496497725311545897727643085502733723977345157025597966596746441116572915891115661863170303804504763594958320436455755940445842616238294750578975124425105071015850979910848727307051597233068964762073386733404835953337289919344534236560482693950013799662679165933490110238146785038363736798932248114679491601003870962156530139617854830062956716690781953139218364724977917598948053326985228283737282915459702092170650539091595115837758155073036893635148496033889097652884982155974517205947862779418314681345969105719240384271469038236040451380597683382515424672051506809209314253644727374586921399435555844707525254808849800358122667792422464904621134753680613931621508113061006323677077269985946091655717214418682024172120353109780292087320968799570334817102418636692474935810346732155717263561983584759104281173396876140970556991196291167214123022529387695438898844390177135967994499456352355502780640388332163291999406179024770488768127184621019325702126723209957060502143831366790464196326640547035474327968758580742422754380650444752856569837997191392985666247484943928739945180728810575039124882734638737744346210262975070722601252560594733120588786237034536258208444631949337199026178974039581135456618768601765497738652231092010140047571122926669295441845030285291475856728924164206220062840712154377010518411616403301639648543681932683479454169694284546747013884945298672547136245779119506821604707806137785568695891716292203749559576322790630568046591075092675563122641543441439828307433085351269886823082985791547195121290671744908652445961489787034952171307942234223367921512813237683319311901928875882895940487931363135479952114847831552101842267687474427439230403270344047952348857906134194766785985148849386718719427816183558645146822603304853186695479562326564189630617427093898649994015757271976739413387470594695703778882463268313094375370586092213972880549080561362522474675249271319092680876754945680147218882034406744768266843169308652314930912001192204939427531825648327750805506684941484047668917102850330290599986414557699138907959470665415239590398064184675502950861731390892983585741873244837598207420523946877103333402234146195964076512556476089304869189387940165618171021386288939533281527949873498371102036306348379568503672827406941094844230961883995574957333369222631627375473770812761746488245050516844670155238117305086441398182278657232382918057295300548759727766946230242366921711018878983158640452556857668572636444869410534004343182908839377325068146717953996028905949529884510222156572189987909101346287655632008173991207499610513276626317763746486998911033079469034423594315109883745879569047376546936430900632063756702725603432325149759504024252561948262485647190037179409148727364215655763843394037777656652875342767267655931272686820082214199950650626914829645505693218996023560415840360450328350757947053353574155740324126347273432516627449661343521210679863593453402246360786478240240914766940549658510284162634843576310438345103082384910362255538448604267210811084176203119603099020401872417906823832108961733690745297541661430979890277232987388580703733282953181604280307064613854512673629236318032236407901428966314183203541532233742115630104744691722421418189526025702100092388470570508684467407551099409233127090406116148934934220907232102620239769120800615197612926853048219400053746305993973961745763693266209203164923983764062056401817128346311467388994349163651706368985557515982245207721573244282697541103272742419547001495777002301578160950776709960532208686944623317163350344627512547873481802874088833553475407532106556676793450720371459649146281983305916613195366086632738008471123666483311279157844984042523914157147380578445868508871700332572604432363952306374746913950291367309030060131721205244530524793098132500909824682972262593757085290633816876988314150937218560423641673096370927829476615584099955348567755894145764766875218889456061137966113936090724703527784429667585158555405526966243267504740544055336766359987841158169231401913224419070724013759161525538959068478052120464378777361421734833517501963375612246056609605063562685129233622457351928454973572892422948352243834449979058635655316198433547782936143919585205449919576245610626183357734558649122512522595285461010715223644689757123953640331473454252917489558566305112495536915380016791895359890207586529409104890398505209954689947680374156378279136719403025295666857224957182193774225402557894176478504668667713634795388139366175411941050970093647514755848662107484261464843733941221876107546534738215768944752275771839452936235150522168166274140366522817609313701777397140520798803781233892559305023816121725621931071767197105878112984939919434805736230514732595209034731119660081417548262699641097657142418244457436422137735671383274153139349292761774058690578563869054959338335928489545081617346272424443075442441336141698544582613967315154069281473857554315594953369542868138122555326632244776105161811093698280887524071839693089048880025237955761614082628170358701356030122441532801753224214994726508447202816376660463579984001814334907954302164803482285812741615504790711052522706329410849072817696120410261527004662982580750895597978477918681649390545403614472631878788920577438990358368404033478711430738779962033641045163513952648633331793888991805096004432542568245548473017849707744883484875812370817570249307724767537843912505516962477708634907888309642328022192047268645614978464839416519698809049783757451244438688079283647575322975382153748333518341677623959735677818492809898839474022366822898116232665038741794521166324195792978977577864220663243167631433137147299376057217241301406184565901500808057338516952594408420669426695946549795231293725357638520521057619612453810477313523802995607306630565326701370155174068129375121990682090279685134475388126487977463809972593824274146778023298264798832532872212501285820832780060905597642570769986877448263136425715205087892958298114732491419594819360764243592201648879890331895161666549132816899546979982423076837145899784578141216217626291380559908539665257793874781314332196193234650166668836515647204958130974614392477978426935346906589737331977384363777728804004905460387020995283619461665287826884531955231038049121268410410522147233103520154030823702087628786128292240833892819814312358357091322104193646613237416565813768179776805712685515083398050543552552930913232803065080733436440075514739667262944353260934191834796023056003623038985278210495362599995435881740351624392011398013173233762125057962583112703348611792439951570169140954828284942320496752359654477871333317290535772005008291691908733036039039918260589076108902641137055651926932923404967156226263849779393482955069916506396390326514788723922517665119616633529506936942527839773572236123432222812272405530703494104521542366998110110364279164676152582408420297833745851471893211418222570607490188630991314113993342357836155919868403941374170263636043727705500294199330539760283924823660681664864625920155450342010253022014639523050427679786034138175763869495231858997991081006101122777353461586674517117563838622296373245683815331686904873908587768252810598949362681452711211480657802203335291637675370212909810707601827889727274546846444098982070846809749891449964199524847504577955322298154399916569893509154367635136024206176091920307528734551996019776508964386539881756666578302949669116748138259908796280853944613959733074076227532191848192733388944880664367396650032818898143258635591554010565258291267573905947450075093706852538597888238608826730615854534827985205370673107150166819477537983830488137876150506779279262575321496806750925588022175319728129005748481495869508225756835109978161064064040503738030217297890854007537045591173421390763393317919349788451551306497867017124497381320426495545076553672592006054433683516313038207582020529609009143593826920417943635924423433411421640826594696301588058957284060926488478329297005679386669899518922799296334265340071041599696977731279064311341185012888004344381502151752181472516654511578555044354986619024040713043297629904551679121745333560997867610873965136136083805846872722844233574402960809779033166245810102305529304446923133287041881329640624690131745539902535436369243114571784224579959573888512178293907694882918910732894388983025981757446249947620467519242819572224637553148869905123045884498316502508296491744179715068284037789436533696101318591282413472869607778809942922315757596486545984308766472783863875695230915687622599767522719075804936963084381371163411699301389393975994285762832565847854239828889656566621357310206082699299931400597649702096985023464927075953649097979125883232165531669390108093973476960165285283616596947056455735875366670010229137791253639815643182808836463642724976068852200057761270273729799118657580688144561947993411656231962076870236488097403111823198683205320048391261293878374710392064616673345565514748702424378517442956100681618137999946766414614054528266486476827305781565076877334115391136492416107182854333823228115414569614877715187714623561692751455425031046701536228637302359531158442064091145588688573847081834751420690821419734600842959913089883701826960929611068814759103670715102674631670177166507929439243004214387200149852862836424391353297697553280513029954913923829399060015205503475032764195742229025892794351635593418159963453516699732543063477635049683741637635848894345231365176532707768620857022021866257433868316888089828416140951540738050365350694560698935189015144302259042145630756137647424693200994048059401552773912390418938772622585122453453943330052904014821222273746510416108202106978254406652769130972377917252121987130292963387887701308757581768043650726270046404171640760325514479149289820907263888882399134107608021194729049863696489875738377773819260726659211711434685900778541028197081499610716088540411181358221324963643690166850086178414497224762620086826084502535267493364773196748676750938886855994998064816316844066644107813628047197844941650771267905747819746985698973895598117077257341772322544359137507491736804617397378313110628593236315451681854680346939593291446493539139855350576371991686979477799842237089203489679516152562425203622813217301648915699174396156388668794672078487193142264043720051405900752169268043375539130388970551095205031990888027610937060162467709968054394530999930407785319498262285627511437685110527197565670682968243793015239769351126520683437885004285393168460199170663394153210969619845497648054996131488095437054944073323997709698592907253760159943893010214252199659340010860260817030478405138230510757427024698521947697463852918024221966208148414623877987096286584042870165644642440751216884542180118243699261734557072818656413663643412886227865337608578436329547619555786211619629674793649969901527984345614899767410754489742728808267119110907997945523207045138284566611052708241263912821020133511367199792115496876006559562102326167562614034404703368070971787572739289624984362493809180672076343570265564302823199302647435623767147023008346561199962795305431233487726683594760768937321337974993295116189488429076984815042995474090710932947091483113412970270202729658690853740801881419851409133554088550793833691312020260987828553555155297603467798122768524084598056072477971901530840018297090965457582252565506842579159517351804664485356393732003936314144781252935933815255061340161552525961204201781208977496555938597653289005454207680802515678330394750273323232513004288537497189551203021852879656901814527144945162950903704814003373875494086830859373584376441151897263311943961180872829510026083881604659794488447876052586838850784148717575048594189092433363743568515405750732009017891155507098444819727579599281432079616115304756232231149076216080554663801890930822435139554845014161797867366239986791829746339667942733281344047543443096797460940515289221158029622579832328864166288215881549937563277530976374563633852559462479847408282576064226026484891274157365872116866439199915923683123729861823710623523325069952608520871996598018951972956250171949962611993941661335098127784627053255508581985336880863431896098934516982153898629956049672083373517794060233432761830241748774361669520367814279140370414863041701155856423467301925242725240964060815156113031187561669951811995498125340967497437305070808420787087605569371008600868712224644463732282877451432662236996224615810549643124635306279504296462706719374911086161288670386992680980230307750570037811048540162689166766298304047680176869587998959741145846840822194654560970448444447417104452578984866785869454612220466034743732893079462858950586463223248638643034508031970104615814743329486358963331322738891391634437034700056972666358697793433425092756076171339275625944328736671888339119808022452562827128187548856643515822740772292144325141294109031115367856882453140485581388286664097974533452105952977611031956345799196097553135505077363545156759037064212959798349734251066800016143869474358086787368493469923144047151144570554521593198053657346181145966584145530561454066968839839269881073099320484073558228844377715729747012615051573130592681366326430220256884469554362713022208481070240276419053969427189677333792634599756213058902425186173188920021392199402781581458022623660429429906301444919413201245431383152573927112435724888733113105035118138015238911140189016221192616601621321361577614758811069763330342821200609188409764094564616208329232361166070686619475716430620885551386888461044517036031032952231311017840104108344666886956337140092556235625774792760632332231004400625028370308652028944097350058976907023816853490878617923578689458612672402351518998537125584496839680294102408616264801243561208592896170121827476177475465753220962276418342053261362470547593173765214046216645562162464203216746328598171073152563438762666430295473581326247868851505391664829479916172909867759060171310394580166612995874169374232221553398538042473053570428573790364724604782761112128383337341206471458987167855558958333286071972006073226165780200834473493171725090186163427854011673824881158209219095831194151766455449027772537192016695940932994566579875800408133248205947435174483314558361665881935829684803120885701741866835202679441866883784036019478832490574873112469961244789768844565043382778849399332156628552209070181621124821555795946517981940475807801298612063706825417193719995730303760999834477475847199581091074422732197954792246638404388562696272282290448719011853991688709240882850761902073386587038491169348971647156808618945654149830398050966402366891898680530379109527571286945416816747771063193550501577031663037906192151285943533145887712015565318207477536008913009800301012894080138939120336027242416474158375930548605296111518212903408610848986285111874304768211555091768744365505100735333960184844857144211688063364854269929865019517165443561114106734982471910373852498915437746554257957202465596409855275365895279402296920791512342836944837619278852471319282239069883878588461942617985281593116034338850917475174730144299043908289448591070597574873157292368086790250401300379179364529287416886755285565456037055344637876285110319865785040479448556129576573843523642582412446743047193930844779269453133529870907654748226766218064232378051781434173478087322768572955658650579033744910211228882589911987081697655115905842689592192789460107912122663775320535938101060465540229830365561968073175119895633474847709573979208703505218726373865909165133531973431472291670627528237702275324283609840798314997272745820242893228902578797592828451168288130160552182719229498037352868624116541083191115817219592784299494796094452353654008836535720786625807724784352058086721539338561560461196368386137088685732064374728778211033289809240818332820697932652976680716315614814093667438832441336506961634670607835867717381628109973003931836297663523560193712639223797862630338259594527064921662570588733816933597026590546102744795430336138299962788498619578871248617114090322592180928989777166123425121370462528617752789770358750397732393233924689569178367805133931214740396306365910380305295180905845525119948229217728609699253959407113756956475135530980684020178191270483792828084042679081309002331512069441329265452436884186156914822905754798010879924532256377336746269522960857020955243754653856920337692500197856580748389581557039051038104871713166660391007302975169493215393641747236408947291568630005348106313207897565144260023572056489061353118076741386296657916695091047112343063146412188595433068990835624906045132720021276864865875986558316696089558025962626820658759091688928943608903303414481818971746581009203065877094162728880150647625568505320195661367263432781108003733724862188074693862273638715307423715978036966372588637003428114397204608350884515028028194447021935033731120469752653356792533719090250669598974217171035520822221537343820618184185027336101171454877604210993126776781331613587630223808853713388973121241181557389563436743387201447318910301288392903086156201290611846966670385222345736736890272795521534211516558412425853637186113556418911109533504673326697113596864172771036787100015026812432507017140423718847175337072890694069082981965052255263211246628496335436492188025832055923534524170511936958025243681464684346399240137617116797968439385689674904163376545106467042967858953460397537494833228306932869244336855375224776485741721951397619537555033487650032999446301803193007891069345612907516419201826734647802074623187689418082783870510150320118879519061342563781954934595446620210417597604727257410558477778160760873462376008263203612840053261051617352042973619547385052828545152553310201777212221303147930458383080128899272408547035847236837128972745170728848640818036178998325991676017714524951463679449284882171692263099065808503182410284465123977390560313760317145938074613772101029780888022445087244296766092175228390864772814801002559667462551007947093695462536982227713215330267671428805003589410525670814970099386863794420763483377418165869067299829435902509092133277062529010997069196499157992879074983872840218872241195049626844717438698835293427688027214320474904726440938128250648924288790201166711542323072238302733542200398922511817204144883697793074874807314802995651153032610971997861602585808090908356994920187489486902944653226217210611600102646202749604703730397717427954495061574991979005678384066984203154203252337436809694352090895200749232249152299386471601688638712983170732092617366455017449487559437884117486641394095684991093759747869787322826883182737476755929341466656080027931190853419824160889397605915530512009412974295875912791596347402811899608221334766366869968812952657383924128463730779973451619507703804980861350206130794146642538717100488088957621788118194765891748683811767829098187719543286032305236014898069567109210043086814935584052942881422676894143441452792298836920774418632748991143755803108379791852323673499598895409600960912804800321451007887738969855106435337167984624925423327640056776976959349124056512119782239979195836723395500185528943687825007585751910559248482944578991052684268932094241373417180451888402739617453844739938343739321554297223862435374426039244066273510511155991405599605191320628027733456758315298508434068983071476304859374711554849907822396952042053013443602714407288712333009511642510459313313425921979145832153174727945397179031313479796181839119255022247318648438513226160927768586775651091733416578275493247096073291690857137721504845115562548646820110534371496623008442486784306430187071411692847745119110254423314591259630039332999783582707049178419127416970938142794641119293663270497607266483662913834705907431543987044166131363099837861812304359239058381987936147335498922872176511708118572140002427664463648853440059399495046721024374751489896331326248406325391823370990747741133209791393613039875730490113016812204483325325441798466434408616435966166996058702941707011227216253620645254121745723629014801945289641967762566127018971609326213894201364145067860512058087592227353430020501717859668954701320472262110019496256624319496178619259286389911203669101611642557479006455817641617174292854136547289978983464077920629408296763136580578592244037389081817149478450355767244040815290670594150059868909560969142245779404926733995682439824165205722572368323156356119791572117575769643024958741263720786436450019539870876455348670011124261279896473428504734765386398525635345166006509935236934667544657591634739608946169081474713505200275626264749157727884106006775566022289403291751839919750074721104094625407062421667285856391807899066726416974409351461388712719248435718355536346354654085195619588195007573466379386346353781242263702302334115714057169913070515382866809802155743317889847311837640876317147285226625129662643094080236691409912923628892725919433305163315918885078889572196630110426241340548645420602626725875361061133921991734414103641134529436342139380643284066648465801519113335519354062012571597913533902554641378604558442816215795255622054144301289716647494457370987564004497084771688350700592241465384106127130408140109764489034100817803522612509373393095403372449172083220330947299642651339121769477940737389025255877155798202215456488181692046097586840824060650603619641639430311727163848868477749343711087855526746615629893495201106647349912460741085774173695641361411388841872338612722680231641436637222267480372729115928934003385625377648725286473156396520042105856727193723787352634430750926560891084319832798792232838107309184018630568627719271381876333913617261259781960982386648500391909407839991991652293041328647690968612753863340730518336874780934055948006996529879016233367871384271263449496421690406070524521899255534488638482117401271296206926060667300017832249316049385936475248855838922461821192554431162404063962280813139579893469374120778670195812256914529595901472135071973486385381409537832901686966033999094504500710822155297519000142874759193983263311200496736458604651838903290353062359619061860718886868195535555175200874116006732947284317216522530419549225764871753587914833097042897096996417292002100193954878149801403369249729055664108934564057140852528491304884778662128809427031315419652347997386809340167532200515086932750801732434723016613376166199837028179942893832488927140478625892863033041657050412660306890786047570267761291121613183259871263209720068049044975134560681555818469518670630448440284915908667413693026253548813668486230552506513615822938833112144608911289322077271858561736334333425129956426356968988205755464861281124063837348529580942499736370269684042855042282968546972068247323015023153322870236154487649466489081047935484353097377427426654443207438829917632620904240525340370607754092156551425947589957313568121167698176668221371390639087491558876964626016684340558176107330059008583503154639536508635063302377669695105772502638612673572992157387401588421248988806369200639221248629910504113542400569341425393404342782435353379329442253944481898517113127604500318761260374891755229972660512751842083017885297184987761414749569834487348361322640640701717808390788111236326075505155286385548844056900235269342963978578695958268756274461304996847995571551253783282853665688758913887043981084050787543726250503042277754341218491721731737116345659323208093439679557079085843606177402798909893903815652844250674533504666516538928473503365614686051072802241831050286309136778935620180205515365133677208735245273917415091386501303928393848687197020497397228313028499095107362269027948496740364493649604520898196524227189537568952666444575344374367218827409057268431439405021369711119075862945324046601428338082232801385017029564750728901670327693059918198731078094513307734270718520613212183484692625427173808721751290650320292392823500104892695950302811352362224839251641229272364392582789178687861990012967856956870865782493689741722791558016207913066092881240703631046688853048264859639174016124221094173457848958234078049949653513766806525185232403407468620603141873255128452188081594041150987589521984427027792561290046096826055134810479854512602324829510244335225711736788144757028198844613077082445891208343852487155858455806297742063368365803644378615707710062146858458291629987577805960020084642645595472064313761941993396915363383394720539649840467707612407468061076346815348432224232575204467656287563709484948993144346787384444904833154781636795200655497183738750204482466379437253224243242971733387926418739600918731522080138754714391653005863731967078902811019433841828989430176161596359188697379348629503487407582307115974266670076213494531907777591069112793555297042422606974022608990455610690199312643316225078656365854804445553468406017537152628685886575725372316066612792811416617174403521485072565080847722200374914688551705685315921192404880304861972277014886679567480980052305387796322137079696208128144243211193598303685528897903539205572775002421105649651971168371822980044051792486969311035306354702267585371049176659393188748714116726175561197184834010668478884587656416480561078115424166117984197512764838963072363138602461722615989660368028185086748863262558092461284710678369719466478610280045515343439848723593746302720145001580209622179197182714823320046399327818988479862118132143709337574796038638467339283548870430858989622393451625709848571184879119987933957255918694580687651520432230724128842609401894432719254874952142421951874155774797408677965662959981057303295996597788643282582175470286938193794836674548170403855417492290661018637612826426950367597959006157757643399177417615623841816834642246536284398431781741349597844060350687476981824519384070476048620013632006470389237874888830587375603671978672302290720473175838751690199884741841839073167233362866512113085526473890072007738361665290775753931416697263144489916381540946460845964154257200684902224230769700463035505991836987486588962878292685410467010761526076859241798610808779986321015623432627671685633296304354020324324913193586516382716066368912588086800390279635875417464009529259736927134769635145476285992989392305405874192832606360421754748710711707617415784519630972170039354280485081868583055323704975726045115595042440228606608853634142653563705078135526659033842527394686563255324002110269234162782689052719432063642845770576151711185687466501728405302641653413201656433371015703239784174240023613849987044916151995197587639694140766513291140597459655826785133371761749188942022047982084551145852567970534991044967063095295750407574264328649392706979949065852801658055291928987990055325469761673784792999175888171118132514168571248009959075999331263154167075439002643095462887198884103667864137709171431256803748485533803353980217840230928941377405171473066251334283807841765215158825996649567345155530306789245788968121473215563223988938678453276371801844604257595171902656790312287703590686381537067638254540696016719731375035855176749466634873698849097004366528630635533668321320067732086429021822487102428357628548434569400017369848309152033615502174212916745600122848006864898973983040988320368032110446249328134705428493982790451475234635924558425027658599335371330617457850901504638231051159822674637568856163146248075707060920115679717959994535189976597008941449666684968586108346456888516341123684675515438122398503816555278349143918459953331768469909800568463282573161591667046590945154261685875147819328287723855496878935598282719099550186715892387418287394992184163300832470427723549608936907068302493018854821608925133715389733541641103107569456901106155735628915062729690886790185599045184518451028780717667260458198859075344390966721456442700673376112863793796032232660077249123450526886078995551863226024090905520741157933036346228875052606943935839755517904902339285524956566574644865838533618561557964976525705403207023160401978374102542850196176342552985341345459948214948116110668586244718046140835627482144455625660157578036492666998410070358069272762666378843860107326628174186036319997511731317263454747750823047824672238141804319631809122529638311836062067545486863396442286105048809819293859523543230679701621752902901445434798948143334118392226619257348760955352953602143028238872450419552380938393782586384883844111373343853133811848436046566367964442950957604750862933287015398028708462024825957252988468135885555607255279286792327176422865573216383616806126366763206876574382213173875525875666759040970605471804648052082867640753296541373072600971009748786818389768034157551302382713409088952784524249767886729595564276790913223179407571355201119464079921303310864845035697233460023313602243694443525298620177330407277296578678427496285473408007430660909829535943704136866863809925906361404001667107835589534729264322418698411978101110532718163490655388121212181350288965716790945629018696254757721465659448575625940806525196029021676973720185444879909443497386610990958767439405296166752603813212599708425821529213172405579229951971761290616033353782840306729421547715113773961099099382864851504764934916684831802479010099587297823009597826597250853491306141076170433618896823749675661596300643227265453643460781619396707534490345610728266704617522513959279133356432088324290253028118033867435214172541380135528282277510178321937239843191778231003421575437753011071250425417745488902187917985954303328574726612853940222793513365535806711410431782834864678946032876226717517846280351604116537895570262190158144341665492427889157138402474960482015825012986168363635412067911265502289646450869896332220460906976393877400084697659793338267668380003659419586511663987234409453072699451634780010146842337757774993413036197780094469809872293184667069920765878967543941048627250167012789711352913180153573341342430698795083670742747638852872044869763114586352818916434513490631339308098142370205411106413046046133724981153472450943439239122578219980054408192420218291971438771027190009526512423671332859525893199891921780769448433563603630069390923334507868461922208493498670734852242389647798241748864946820072427260240821147597623854795305487497332145339729881906837667846807059344902060169478192515681569637343357398066106940809471711339707664214624547960147762144956240719735155146953064567697362533861070011356845554332567597432635859656266791145931691532069574350735229788867266541929377321546135866325700075345444523506115560635045019127422337149143242284595520290770731847629393595933581879818903834294100928536885838097741355904557402055960626844883772947375207279112294877259430553941443246135274516164243023309200992823184629091101902963351975311576890402115173765718540589703347494214576614768344264033369103277729926661008276097516950996117976256827273776118745354397956969637676648259173620009376054997589664757000171420014505712578524482548107298467952453266317124035581097215433818801248435569969475985413323057491355881778909311168447912785754452673535107445009105548222750526862900953729799234723006134953580182429381957687635671714512228920208224896326267699893309019102954327919483087694300307813360769801620300364252470219768652177649319761523057262556307926093953309003360064137616606858644033048216662868860017904013955480378958475766095206066237611200546284106072057939073002510606247757285797026978312461179466794935452033983905319540682493536850563643304415884187299639462494134232671605216471028079587911232652525792544346113774069664312401136835956201459294444458936028731947843721814278556824593541820017634615951611148843966069675706489518431632267437416815678504708141117850895849164414660999809391439207360138187422388241207064021005260908247829252130685666119369743765710926758063977205645678461520502290655459747292931649333573157979940487003508558886786052490686951926021446543668953882971680377246710909676071580613554197921017679176305947995070829280279357422744663834246910561882281128726270155235083822764681745451056537263820586272615025723515837275815461408101816049790636127016626438457396405317111949302938483239272989784988033234511759204787385247969200670709348881842907690276472500888097694911736664003296268108335030321513889902629914937788372156808811436707981077763813929691591304629572670320778013085732719376805677641406152042009231592556792848721226175980754379021662113979790531666342591649452237121361880850400610830850628271603153085173637588928946998194513859717444793585957696189373848731682350501134195554868558757772208947338022751878561404760324926407882418600593458427597365182180364476728132879449692193813079410216992882149033055951320500696815224707433709171171225565201288382741276893588276689120237983486138641522803084481884642768826241205738130044938360224366212758493789446831849455664460707920768760964797866820943070036889239544635046920733458228254923059583045654089187151497145574718238084477589555381546471504824794225234447915357325467481200685523949890538237646836472511548733567611883254715781031966946578465913570542569150865725702429880447382188968925978558704571350675729801695687574118785009658139337300353340875801084022532518155736037522609796410315320643925655572526569447010902504171778773621105494349494442213095859237008563269182184658169729506438119760722670135051477454956121266962995606687986927758191417693095946377826037538234462056730244836558889370278598150298200822052566455908867494213499569090062773484112828112395831254664454227990693609176064021459730488753849442945703902353256947126005957270088243463195270509150650507836175187293262002565655430486826134176978397247678139331807245969799367303317241208761511119329505295510602526366711526829403018779944736546751605696071553559400662563299004309282950601833203118338378295733219857206196044968868989092138638854635185200357589879423517148349659141753920073007074036190220215424670930678522067718191282298988228415090373523413323674795995534825176627982940457070629268711520250047759799723060657172475635669805721668826159317451463752888620728482414885940824572814480910993454715985081275563914847879648656464984908302229038722959425823440877636499965509937602995620780082891825458601305744194405842770597096438360732330833335280072096421967980700220744383645390940330953535455053657600156908197232423535712134569677991329127730001303616530128624472795740490521630686125218118263590189690213876293353219587974667525136461116919607317790966065683429668948359459179076270317794710914562658115649375971926391827292315537472511648971499106737279480621704893792420468751444138375610051554456008006288953127595787990331601969126557376304748023674341717214894380110589844862529194789031854491532302925671346229304465746227712448064515940086208400824177096052003046498311708658677513027871009678600166348104180636524681318458072107270380247738059597644356461354435947132217885709018539507103669376971117828407903821653370692691781909786278202056588570489288525450802549093040591386386910657750419282086786701546763844461460220344164442923344424829087825647431646753829588045621234829021770449201901018073455242893944487861116821309546422928704628425660529765842116960408656204759657647282573010537961041767170699999927464934077619153307762230632558369405894980716896406491159441547821566297150077390448253915272096811723475597261893951232686107477874957592745272203385667306799831561166852658011742226356572135419530336838134683959884154081984236977927231194033063875647708852871809664780185793350973874182892824202783045713835239886473457347266615577597432834943968324782154597048848272079247234016220969505598401141930167902563530006215030164948093921552798729245092839899276764894781275063564413189356883625812947984758922845704428938172451313508057602618784014209617979989545114754957637681818369552415089903438571015676517510037903015674590420514159771565422059521486589741921264534314959413323843209439876881811245687723632715852997837836707620747561719212524554595880825150250233873586689016602904939157449724751937354180844755390499796051154652016669580722525102121768376046274903051473388884813955134767899764775773979207934204933975436420959258176862153137939125826778914839993618862221847484074395553681520263534733164126951716400212784040098481510886631992298468407916311418945128755270603538567723292879967511993304685385330273596616264747631616010207582897229058111094974709596079708577599025042410913629471139423538210739313466495333066199733008623843329142925038001856798479828382592071617832648756373494441021163139651739105580319124056938032470005995242755161647763679091558379640937403162781917281902281808602360128649069543115820520847368516101921922591033938518484034416819903851969991148409665530877033068607203424234645850599765227900791298512878620893425185567187322320437606620726070581879103130961725956995361834487536482141437500490836987431665236401426719303933566240151200384187730015445125606858417914124670175859515734062895036994700736406549045209164458629605299927500521537567499210660313803349525091289430557950812280494876892699415229383632951872182918971864368577501730950169232532229487005662664288553040234696021209502015125112604514529087482773680681537585306810417244353568487636828144794287528525984850179334052615814288936002397963189441772079148519424958620625343395068711500587697430080027153757651834757551823563661053464389552621441838258846458410246298293404374626223331449080755016452836186983737148448597327870618759361743665170086953603860061198538273249522756944537239866088675551514527024523261898130095430779362468561903101277724843381959993488178717151361299620812326186223656898360189270391787671343240408866357450830464242260291124602180278930136571494370393155625172213620352270003176778150513236602051481765212504282869092158830630803877822925457038172583662023299243663185149887702049607571843906657135810563318816157068000127345039722720006426592405293232903355373285738268162194341245663928412138264970159777087410438769204190390193939167416865035540122270107170362802676438370868404321535667893801469895549257357890896195266618500220324177856193100123203270437533961109100849438580642217964421548288571056176840695577486301625957919915637288890595011767127131715580523115132600099208252113087636651587969775804353895116967018396936358529253467548974475473295837098289152502481701931216933672496948278529126804299174944227586764238795215615888260062572325901061068595145960081724613219882979599466331014278925938881484956006352403663245126191667145048011967118734451105500333648425782399881331679594678745349401352443318344420653680141916715281227683244558991422412341922326188337869034483758924092057798598969942088430564591452562111298517052611138459309391048196051523099425678191000533926611685380217765580725128789584810849170882353593170225960862046399493260009055004895914000244959061859984410927060705774214789127898500019752698883416539594725309389810845810346208804019949719550078145724092623862789195856485570989759033297999824341815666019063576988582347335164331348734930749368225187481784484401786277547931789552842606763784293390683090677686629379375100671479527429943422407474129503861923874090101882517085265301839419605033113815922761584761340659539651912310419068576091306454715351733792358884656115656106590683196381469479974261417025493456642060179202058827071897959400353669593779938022231001191914381358650310114625456361515279176205663879480613071392354842650677696271894186140567234162488698267370805497046446455253889366024782703350930249735594236871826199988077398536415333268034014681605457903881020545749285719946182935239252374894792085741435761663124430250697971516145488473100210940459124399340748082347804335104384889463336931002741145830140197147960191583272908946449012428098408675784811071767764070360614922729908699679286994577047959869843271193544490408741275307061162502340780400149687032675160398934319709894351374344394577382359221871293443515884063346204255367874155253387810529424988165568952766315578088210816996006063125620076790492764231439413824791560214491971729664473964547746391056720459938635597879207084899475005194492449970158882518867918036415940086306745236185317740079443968343613457576221682683178467212426149094644660626251991484409222519016943178860537404355369211205295481827230266844202120260435105418607329376275854554035273424869836563615560391568463534464470162920748419251382260111987308228371735604192531563137487864107052825886627747073279327350269524923220855823078414285664553882150124876338862936853282453484491105639520527442192111858400291135956459139105737091154579281176240896807715724188533329361612453139107391280068675380799477921651834368003702446917630538560274345742405318636044414144319145439583389317577048258518598869332854586653455186221658387330662474769097895889238078911549152168253294551612714398687103228851810749726770887312519851074424163059355888257205171878219805799758738067275923136733866373432286906996096981839754690103061255708165529726853408525049900287289243476683085193823511334630505261080162475686028880276128973565989823385228685035351351739305467138508722400050349332547254841681333838850769541999224958005982314962292276526257030797803126847873561331396204594180729157982456251079742937915960869499938508724928477678353485699589375307724543135621888771189165669733489731376088598064671733574879903997313540929231454916118347976773853580538524130420089077054227336200364127188435562310872672034495669836083694588782625108058458498950684872962486819969390741299160949052953341436537969039946824077823848707087795163162907726159120654615141345044822000897097270685383733217546379456647860935050646625899520098391320299047942846891843682875734022564596288700668204968051975351280239442686329696916781815447352494700667218762362576662098137595554658688571399346062622966022939644069057466790350098835639366068908778322802934941803962746579289001251430175739840194287055555610924989537643297877171233036612709903506336744580875923974053104089934955174951513188364807398371078703306569495841215880597496523186540651408765608255859880042535281041407330122548782273755195052959642241060754490849276759076307682417934166663500464435929224206208839636394241488121883192369757669402789067797312510773324958371646252191434148067322957773944617545797008149280317759294727883675299265165072559014965360691496590948752852515165870518383323025539021332057782170012221610770413280343066233508011899733845388119732924006062542779481775302598993096362317128340040100764162549141982914595602983902508630499290054592904198091685840844746825878034958498479737887746719070973686825053459201514583872717616765372040627244661994334144420176244015540050800721838745543883007669402651182075794262301254150197229524764794913502758249767964836822680256760484182648343899509146775129126126505404853840646633958687927128937329521843121556829868272280332083443644809308409227061173049359973573291232474879468952143150368339805512487042097507917341901952175866994794844039520343524254438308627327401229313277511225206644280351645399075974390303342387234861850918555926944492720512715911999897948200987362460908335820697231803569796475838082192480471728494624091295414841828680829091721917298332285144794328588331770587293310809272466068909545563856543742586951602787882577189218699858845741626083653229328035141032294149047252558112777253907043565549364915417310680036802642851620707678012992586686434293887771741672451791666919520581199932795573563717047402004013180137365096488600472860655791797280345245226282704644228823133988406294495229600274893991293257204773899108491358677963903379306469654690141763259453702157473720489007502139051727806829332181801689335037952446629670596601017871556397715562930214355468345535738675091773063583671850991007741034247674952275198857232702006096331813940372576626352902118660238911071306597028231275178716329433635303349878585893845260804921595671243734938707137914708019198174648191261432510062353756161976256645919566965751665755033449528804601031235745967508611434860876270983991095402304005228371460813575616374654263208091894314241911568985275819405720439342604309124279378257660598850944621920187157699522620609768136652803345355930694480365827639541269695195587231176373632912732024884251014646178563497248404163986225659397454632286516864026821975199537776274421253999343785330294328979074465953351961072453127941088950661591005829081809474981255574657379233093146746695685198847061685414953282075323546063370141150146911682486292791577974902412314270256171505743125697793700624175088617205068037255517410736205377011039212705496995361982734150033155583848742322932033869247084879795721633905454422280385884905043209094592405148875119678323221978205728116796484955691289073741566035232499708683736667263337957077587037274818614891356004713706680923581000991280001977024596128763746694868126437171826427496401015194581382912875984916119366947370546287723570440057214870461894170328715978363064691761327190402590530721063099397657583778173965157104122856708761373114849400039169584031924386026295530546053581264625001749483674039799971928670174873448865903877840752228024132548931621079753277357615271709866276374503695900554411843964361174049775178239811256307937621418857289767068412750437416818974436933678540346445812621255078607673427177365118088304534272720126970657606175195800849857494969238766131536612993430440624647233978844105386818958737254276046961357585703973439776707873550196802684103820016834652612522624201417595517794370854857068532260515948527377159815333864306564070749458670781593368076223674738587770086824632547217658546375516668123531748680775559181037393856139346016423547139671185428365260408644506221480058028300947145317253339226735253674322506114513346326211747515711627698071343109181077104597482209979805956359247024530136340138058811550016708070404701167952457185346173638441846800100267794139485509876881059709453416006750284713746304009386960890797224353941594367231975096842922260121358539206562974613899795263960023174369555752916739029418707194318411149264152150353342966724195539667060762736061352468600591363778469647775566541185591697620643464307456342597800184679464647785205405084708618388497349511915858345799703670430427510244458123035833482804399953076814325655389867118482969461874754365974554128447782309349510150109613417927364931654588073879010927024421600343622865094293157382336334467700740433217236960869210478349374920915868622854452264022226689964807357654474981710675407879235801841262460923569127167767651126291819258517352783400626121550494758831326447223438053337576153288045656648632016823963460523788908142916331575528385828545480026916420126860343544523950453317610021088361959478888531127435269111896795813329817017137939401964687855522270288767240303971607800161601682503981048727854083055613795523762411169734491872173076676500679893366754856277510091463081823075376113811529128199957969538139072001113364404063131397665707594273645777165271388704305507044898699027844834402568536859838930554464436699425557023546000688457030302824831777350877386132244486068741880612537176588630368760281706838378275275044125091095835584372963019345658637446308524010110105715225741057337128785980935742907577227965175995924658548474966832133610535009723859598483078659175254074060861149349299593822615338923058454887035403689669590225113546551289025518733981480607831394959726177697698190841107344542521241497150554316661392421218051403759979767909893091816666829026901316340663404750733330550751183772211400965767578143705526282234012638327331872844875164133479497316457404707977280585616477682780736179609594050198000609101478938775635185950387714788003489836458698349209933030589310869576572434075724141505550592627575041976359930119135811256477810322737871719804740668511792324213690134449561021253915621428143000198051646490172462006613714367423508955577011700226662006656995302680504175218860078598208964345824899606884120952433779905601350027074064921344152057748527163377835815945927521448473148784677142917513475126545431122359890643965128016025973395292990793979122372628911357208358438887423779180481607207722034841602624369547033306016223018708763441700341141717026760191407704153802090292139804837831332546957450569979176140383456870078009522893307810217274703152540314911525254215881761508431361053836895980991060086724556378227373019266467933149633637647675438912116264884782478468183981093281155757042949550477052336172759454142795716151936811176799454158833001092746348047058241077240721095907903108639323013961618268148037226313252274965181672822746718531011204195688856650620651872614602343961225317007164992125252945619617603644571887716812307124161268594178278013469981861410221623973663804769730775655175364905679661514354905166001386383287063174878974276954867296965338476595255799716535157149615856444575378265925997665592676582318252893017101803016438388981804066737851515185805778140465105820688813934671283154473289958205380153384498024230483936768924063718642929193575548922054283440795499634315142729321326150356724510784742252730942760393902800829724874908395122347597729897758117639030031399436333133382029721152492816994880264119587645112192238127734833119173018076328650609550821545524786539358418200306166966377458175075119368433510315338846860588319373620024524019944012059352147527872210745676491550798847481761359372755437387325254486528086719294927820888457860657851934544316728302756034923051050440213847299767011884368291571840123587042646305543768740731373828304637779169949246941942110335219052476938352931635727890248001887238413458765852989471889864503440047897883438141615668885243655077339294519505447701486369304497572933986432439475854305110093955873160756041647949707217583994874128486740427983159494150240260475256319571998361251325681331617580169983046166145092049453550731289407487748963313685811032377952617330881773113862575712497908146607649212554096855688886983598621360132671350372906265932403586022057282713687389824283430084521448144988942119911208846205114140470585646540238519587345459073507710481864715387601182052187080598744349656412179889540066477481662130907812519047116680566795754435854622380449930333282037020187807280388031091361984818032811681189161920649125241417920662533992867180350715806444842516929033399872094959432192492043922914228227680040870444157564316966349294172491051432830099132508212129066019936117650175388851775725471569909685238533057433591886452222861790234378600742240176430543986960980727244408862265366917817802710002235913416808268773793569989258513535326074989751098152102143208364759203970980530215365695213862965876853859593377159309197196224069219008995324302630193935425170102409800453783378636414600873274738411484432284986969589956183988691548431085142122959382929060783420523001058374069870804040921063034662367832420313360864414408361127509571145289836561393535020278769448008647260101793923004901795510387122595824395414006260446602038306398365603293544632306704101128865565670383882210349305053215516319411095198046210458584735111855055699812268265484313039856735558538204495385353706576918259825539761523502553320688223427351417088869214745663439155503309377173409080768083691634176467471056386610692538716724466832952192548446151928168374557186135522773334933508516610132137591384064318462524302277671918590456536286894082967561564086008727357822023569717196652546704295064184941883323765346066366636562146060010442089984210640719294854722363167937709716678876375397936594638871318070831607765810834864199241431152037093710536421967941052774907423295474041693035563644218091620620070960395867201801684826015898291463070795149166276210728363307147283964933747619442684738792693456568938948814279219020814720662146285640618880607985420781378108899213467242039547400304113966894015326275124620784263805255344081311955209253153103207611447562144209831743189130658197786963834430407172334640840145184800998807142034822197582502165866607272232283062063996451664946475830946449843080104031939917368438409374678920815534345953676784274343764196236260677654503966611286672638805122226862020642960086788550377259669731551919818727211601633621806356056803543780856272281602311207843698453305784939667272149162455668379214529308403275379917340576416461323054994113913366013009583630404118883792043336410880765986931750094441829929235399314728515149533805448229295906453064756802995176466153573495962953562761113388952962876957469075242406512837920096320438401971635075902203470369025686746074981364175439472834258418775339402726434778121087979324617323378077366985292325357649660304534556220107155835895568562698427522072578489482693812460746892784624517100667818243552038083637921610075090965659733634529582572039821419428225143596563380756268187902085296700362388560040489272867516479526927017393409768792893922496942145588410983413411530596541430324647928439332114080994633396471832420772834271948757257534011705250996651822870072228036469108609711116110871801783161119282875681739499200750853511410936518824948757381292590656046685815397300945100668002477296749673378399923942986105429920159923082594959638429333651067680434649887200831372167285686425276450736639404918529585753189626596806517340896599281268077189552263874035385417920740967308536431585998694329322746675993146973770437292156764785024415890561098505801305625671246188797189711613044511413876172552269414140291832231756769861160489253806352112555538919831501276039948370828356976894477578153736951488871583781246950386926461108074013063426069959543506038107661131564707210797343763122401950034238649307077309912565435361939855691355572470983316542175299210940497081263039002122600231977919266727301565335305039454219252681395276946275824809385949134775082324015272730846444420412612515089873225981113139180059968628102695903129065305925596826709136902650005344442339614652037108305641591680635836185859546422482692209571877824109248122177832223759292204536731732512160383388876776381831676322141698487389213662702721514990715819799349743391872876264059238481648669367757817783127028490610691614443138027911442334129990127617998363052956996168086954697692247339502942526391941282871237622921604718425603330931557728505741730452390277832223802890881660316005950292036655900348284268138192524832940345125602621390555061333058278437304774361998483845501127379768693660470530321764971873069224155624010845275688236341873885428942102161688071250662808442893487078381019122246349933554206036573564241305921654094730919567043894101262656036630828355781554719211498247658074240018252822060740026598806001156003507944991490119149503161232271178317934778513927363672135652034355156873459431781253818977232909844376143539303652892915340723056366301953917389989871408496949038467298471911413826436728351408505102469466831784282019366397371596511581795250905669502271431267182272567461522524181206230389258318360579478901130209739407622134116713936925787925952090127449789692754449732383068112953429244333399127088103187386102519419980823162516269857942164008306838577054780071234265687872827123558022320439574613403595578678349581314708375786393448334438627871587978414099201716750498047205475578750318290558963921092905257887007055655958524596114110052974216680471046502287529767462464776197610881006796493151539802255197576927062763442981825063061485674837967871801949352993104077583543598855704720382918687644237835978676714187187393197720322458094097718466335943005493312307755709130523623988699088458924239818560931226033313481263336700963264274208145909363006938373682868121718290651942734150003389579915334555422408055273211496040770186494303818644665731439370275533024634415556870053263188765877872938519003697666933968407225255216500101482537970284315665119407346665037956804639470088930087821041489580748994945929501830078666009012768591354442301408831168413328208058373191568104952768019904452118656864211818217517892002177307765594419298810530712592333212422129188774439910920861228322727045303137262133669368793714135594107491935980690343203065341141313711858315560381492611514629081975086576501666275029445295036241554949951554877006202977675355905819141737387736906819997254800854588815309545044585992045541216123377546938132413376591925022703848388206379367332697463428747637161054096483521869884149495062114836753164208195403181300949428652336492939776567579917162920805132192033874129430659570411368753781517856479859940256933861996464205444239920682383849736913411089396994609324167217895163449407862177017313096898496498811330039587345868904452060678739608468558772425129487847924448411423902691558010307316937790459710058246832071637921746501221089729937208043913471696180297095376920920995003847984618121727696697503521457258983975844908100543388735811214528999921552402986366000608581245038397407992278011846597414739064274654564614491937749289437760969760605245463517660800193019433939502839407058648685864376075372096559439385805349198049329348066250024148896639898812173578285202891034704498674402521291015843418342624795547987683542092864338381120575774507937267277047363542355296002258433276758955494712732070815216188034915410144347337922730267191456120931777536886039344312036252879266043459918352709603185353710417438314462055661289298694841397311521207151323678475344073849747969148912025587809971744755633147189907120121004192403819550454310537220781333031108005239352046481497625059771617942362580604375475245687397678705270866050496383443212766397459729405242032690667215948587796008733391447409990955081134263291078846447338788764182567601427131868250808835970180733870061159315540347265784451344073680647450826725376136777410096783002285301003016803374119933010751168497533265759287724872844145127395606975931414850107804323476672912511594960553920372671700838725061896671645063035285942666509519161163732121334013768490589705691126229875818771472591042178389510058287226329983460366505717595144085733840461112891847337005998149498437285477155898246850521926562183709169177186464658147552824233348898291594957599456874745146103821815775670667452356884528015305622864806506581620246318089254961482724587188709375801492934456790019968722617381139790164866641072919936153259146246555037341536421981021638136282535708753780598577214154703942261600727703151599172762274453622671013844925775930465442201480223557285484494905087306189892518290815474527473954017835527403570656574997759577724333765961216668176021086957359229879728609430805160598601212602835607461549081140869552769311410861715804697894537608808879814514841618657658816296118100711171036257716642024798572138631068272964598694223930472512609753996402049377881748466275136323102475506937750760992684668893536495205634030611090315285436969441896511263635236082759316860222168946091487094377776158176309773433380722807008812844370332578365572447194844569932833901040663298635837803219437656559810340396586963202845853954230535257638116275577531046506034527109627801737776979249459090469209683719314177849004004573266026716015953501038661321869999734809206045507243986519331661222871586300768427004199507862144314166912212997562407017366325500745585651669732818207671291349496442937077990775163037969413834917599856237310918801860466880330676554730107550363484542108330827986064193566444554877905902192146118073006762800263433463515350545647087416624378633215343617597622897478252610634270618387226720937752329842233615844956935968512773117617235332600430871122568422628797935318840384709741584632330459805288462831996066365777990139646568554908812103591708596427113006311647759544887645279690874278160757407585785559437969850788067071811780398662295175791654739166814926959584163485746602362065945160037075450933729534428559873043676474598743592200747583700552696016310341056352794590521264439508019060975072237691950448794919520872638267425536248978310248426460859309756963471560191047161665766064493072493057282024075195770878445396470665011480603248367969330805357821128190726749406184687068329531958221718481881465487986837024972565250136808749768479983377437418376364342521529156285381310698231919621254827782650995687179311070625000769998033086273930800550972311658309804478801741088254933220373767951773387512409773880950105915285433860841718131463203024700241017495180665344020752816314608336169310398518680027793565294126812383714745900363527831180602655377471730019982735547004527318717603502732784516381571196741848738174689582593661598594771340602857535107881440568678710109710762192416414548308399747644994998976503962958166972162750290365483384564791294378676863534441628395033436596565004490852195615603450745991428808050758025328966603770516318471146591232332730098847401883893109053275226571283617363724358009775811863012535676789139004862292456975923671309950042100812414308050839132439786678282745258955546294495075973690013713879821727568163312941538261468298195374187541925432099330028003036403103558384747551282169461676822713200654207285923212888896284442937809260999664371460814789106192218556581752799692483302678818258985794872169256616547053002103064576592353383301197596818098672364494202937587997953036774208323799357178586466420219746328549480437254764731969213618513015575384959940537896839753568139437864987346986586378182922777468949441346122027060845978344688921599275956698802175430747968245601541514529093142647361964355241366137691048307347141362671278024309767186532173134424115500710487309214828090497878109501457787528775661116713130424434024456925173386748840066256047259574065888804345995267614154544227197420660558201037706940029625594842630424794749113819423990045297772235079486031213275521897014990079434316020709130805238237733956386489991245944126627442261144540948397779733134755638619242042549486240129886368273783835643835463656051592204524219934537208554873312747608954034383838350220581354365896812847097295281343477017394759573658660233678095707771042190750538946655765660860922544905572774064976430675122897634166235299005326085265985928717388295412844019622624912923374779046484906963598767972191569624881971312836302797117343487973459539200042788422934409400541569680563992437469373640520551540517111635064885375877584398108257949536302627756238626795824357441789414282385562086485756828879603991309244838160157999786669041538314863629590543452653722558023828270807339649954413866960494922697698491472035896521756013437033720829303369935630205868865906561038821736347357235314959758343947115418180434308305158518078004775807623648801019420845854406836801079376633417511785229451436422647377750489952974287855750133058215964587475527759253277282334944387579188460167292137423352845275981360900468729998082699833601587402638363106406359386892176720424985423682592243420641663560385709282069718385561080141861747937531651540003037855241332742314757387051050296613049016973697562409678762491769361920430749608955711241124614394809452663866069507349830850663893217280916146215446019004985929465055509201907496902526485850841273045443668681735899881669169433798304871746556097309884211096306303888982547278632248454340069498200799985380177183442677879310273875564635809984582018579481662843455822696452895686916269845598871972059702189172268289412776373861163176708686764138295612764251553692314708762744246712250380266597508330150620977205985703109341574671348342516325387359898933250437645527328950197110953239166156574780427768570634828336900748029788741742310100598798907211607020374443743773913686517137566484290303817713564914832764100854210552726994879297942530094668069956065862773179971174755796188408192478486622648560351353590168340259284941232821632121184077473120789455882834518676724142958583483885994374445393187506384650722671669290419355467703174391641575692269966367790170125174803718341532882703670294173339164136636666051348009639710627374699009361158160016914414375005626416208272006655303723703147071089389221495159279916018765159189938601366795400298463756296915822387842009837185181677951252536779354461202328686624994940711968323189989368691559095736246519392654833462360292439219815814875460814223343283168474102182065609777573424796936138464216222172472591261952059727071115518640202016696715847713757393385279102629702602111405925780679978671904676074785359561467520385111805195298499143410056855146588942761487516532499437811230971366085986205785586619575068408397892989108467052559043050224888759000503055850696218530288770702367092723960275046878852187020357693070157897658734395109804366215567204122537239594736701967250117154903486955909327402144977690951820430405432488288355709035576426199939656699977974190784778471905592853163407620682899483589037471387645999106051341509485415642286166619774133979990727555105936442202680746965977538949275273384310955549042635445064363866141341852856274035499759442237727089812065437259922310652206815465899315901084837672663066450309821730926736940948309254973430386843045066728931147632357905546726827012635660898904004371334102226929086230526048655392185716018219957681319367716422341069841143591201156802842339311693762124659317326198242981931901211255941183550765347387841659156358879880250860183936823327384861490496055112928416694419621706049840719398399171382521340887076394066531645306578947984393821820268549598840208841387013211469732050458463732365473583307216967708278317750695901008725572537001708674242328156190220476743670155418133783478928784647903968484119525406200294988830433923077271120122626177958638027817118514688038748550029346668002765252720431548563184744484937182916015340059503645055361251372413313131060219227571325176710929305208399636016025782449848279462536447690972009401023005612448828720677723764699226260450080185444252596206783672567975792509535935769229132502980557758356693521408719536535720773459123833925633161489507845354971967496436086797486289945702184631597690117078865120569790753110069207740033069511529880213678566369900473104803544382383740823494449594924557461498625308235353181810474703493058825175706808188200716556548726083839367676285963015234449168530118743359068678650364659204412208939000976812720083126371237331218095750506968054197767939721209155872510539628804644815865363253951291916806285205528111093208069764476854268443599222123286669585127735168173874945885991649916732620919795650586142325138748303027946762198093043266425685524179322211163383806433766205975853417144853165098411320748045420710633214720822414383837749987954051422783830425908441376246456590219380635184276676386939307624220881164694704233500451420373799891411261459086382500929949561169088946185794638066487825414206792802807617996200460462345478637163883028478452724634741803303642829251199906146099875364951837438991344589698751863600935113035213795556975648828225547551302871382262410798245879349158875199319614496760780566903371440152583651601761039725488310022829957683309249276480008071512627249915058394985703437399004053595271808364994864637404605882739855101308084169495131360386143776636460908374212930295454984487271382334177193860112097538113162769890882431292754035141554688747378932968606629391304223152075111017198719383197433051453661278665316941777278324875827592614136567764523008712654677728918086040123634018475630745151617277835182953307323821261556636284989411960356623336446480830333928756597148076508190999115387061439536151248100898573202591392668142668519964412433961278613179592806417930020740598204800837679370213342151754393677318382512638168342849054422354235615674187745001655602416631167927689536090017040649026736400673324074788188490044381903182995659434776008535452236505127032890445871833384728066190017437558159978853370178646449883849228577965080921137358469282978225477551013678623215304433195283330412592494071440583417769801157469169292282697639576798702249593348241887119043836370690592107474468396095273679939043315922585734793330045282712504078084348156474481695290341318155321589169567592404412275689880591014705455912437595930990980311924309622513597839363962440917214327598493428814535782724672273448588548979201039337447848489909531658847722934390531699484423608434665073682705131631798805177943443975274908371337404779126771478734507809929330154187177284385355179351824604727353018589573127821214593165297660869592536128341721874438219641175596643393636281285820766357694470187135501831986083168537139486529332061068602919459842567767785204137030820889261641353106306468351116203328707934061911836002828097324267624889019707470501350778075323064717010027507095148018384268072146913005656756689416650744927020920313062773982006751728534634513465813540252504473360495357133662923791698011275694149448549382614605940658408153596621474583960153133213738453776068203737371564724609270440852924014202709001010035712785610873948224831802496918892134748892528383611297741544778065067966618952928789242359115595090916060356218935576862526584700618680620494303513040134998416975118378803891030011114457056969684737066249046527245111550028359668702073425505246974984727347036648958476237557123197957167145792404739628681749031649864943762416445605322005114889693300098828853162102530347600172388399385996094554776776726056966138875916068212202507002779565223753963293148078906042062768259939423596770567479880758009035442575649920020758792636251315366535660966441676205957249285131458404446005645050536419976832147394346278742047617379363607121918766198640751581089022494662761015536900923722546431912767476832913252563144714000581635647505419312945676442024498277005869860428362097990220732600846717569511132215617447557836294965538043044114491055552641562960564459909459651129854701380098589757066135060815524884167863903433727659392316569007831607576268712717843859461749992782170851626409912928104701476097635132159700840307848072996836100565046594370049591345988468011905990882985200414659836757590981878586748801195458732383881353409953772205268853072810411013226172446523361516253989945540193446406533959253891974639955760564952582709879300280558841133099849583654769280784761956455946830111995331995205640994326189666593261600992731786941133331281428578598671914559438815329534469112059706261804472885265417192760286767893250106151145630988925169033452549458274741973000285736902738483829085694152983725931972341855087047878770694465796078694897508480070679143293462253397622909696196337941912785531458208605292728604103902812914393405442285211318814942063199839332360476811980707066132323007989119999818772431783662110076600355430076640897323729050070847038990627153979581858909833847629279009847752295197200975820619358713271353482685784799540401402306979756193099401373121659514844486450059250022910629202856738249209357623529607497511379398125057487452664531066474765000699343152704445021559063444052314473742162230634049712519897551062410364607104199576424995160320196910945318750052169226179894220116074616470597158351660698456838149478335390517152811459999889227499314039202199797389974061337467674580706944055279995401275599535375900865716694455901569854162066568082663887826676278743172432129429266036764148372113406433629229993280550602646379645679688030182969348026119035658210887850268931055451090298290866226808198488241087754685542075216496780203242495710022219760591932504228714715398028822065839575065706010832033245394540444692196508354767296014263018242963227182958855826131623833029597759097951220300187013992842383203106223995121191026499051638878603586766538728391028575568591551743153095076143892174241461870549353124168975233033163163798079679327395348476258590663210066146558360862977635892318261967142008879342063152466977698059042396591481354880793069410935269213286494436963559099862125159153038708030815579876893187833752497658487042232118869181253932875929996947907682983280461043160456512671608869442937533008358178517681094734582072369671104942931650857853774698608187256160768208927234362109996079533379889152900073193608427539234724905807971357798306255483647514482839971090545236586842448788443683700843017606921115077898871374844973218290697895274935740750888571706451132438961357663276419396320363956512934067996969770404988239074330704913986110806097071823205513982100098201910597217657102119905792794759559848202820423933775166043743195149977592095960962734944813469669174796508433327455769804667256710426606974048991543932905512443688974421400319270054293686282849115394446547752023400169548511400002736650203364079303408328631739013884407164585721780100083362909003026468988762301084237912624444447100817991077281463903683695931710278361905530919694384267652955397827393912964033880687994068056167576994811889453764398261904537828293954647816114077090098258136537534612941945580942096263753440030628026801905386236341837368381054958047617177862654001789104457026676227601790645356816398007651506351897326362799904736703768099007737119754872816264099991105086950091302299237747940490427187290917842068164722921952967465567663302923345196341811962369843934803876655954242307378813891619970571754595897374643974834057120893062396809243197539325918160054390131542898429618807168885965646658220827938080935910971808301977396422314485225601387855783888490324824984135992540733994094395122158758472382910967191260070348545839238962226485552677690192556303873125102684085901550551985954840155808985036247069228704741006474184641948834572629818982408437250328201929024395209141131487238830036830887046925312035205751082338778942193716944309262498211113233992626998581488499887744759914872761934101766896155290358245934442643496024100411796902877015958198826417984675599805596321977110446170775022409092380554422673716660314047236152110161505333883339781318027966250523500521756884703107212379682279893267610209961885299457142037638303673525412431377402771170166639119578068118372800926592749644758648807542054170848857687409670440973625144101993127235625218333786695572509325993452662646356292959898385133732892331528275983762436295493001302464473736836430930994377310805418561613526313065243531601639043812795990498027175218527708150712985949936560400388830159789490566247694315084210355952977142723002356040157653797646773920940450205895718655125487949428475664874451710063127225825825567780752926155384587468178641150932166974360420829532733794313809093981456922927435783303272060273598249584461622731395132684269377156187087636439535713387948215779736430193345797812907643999404521126306577278245459682569137310503495591119955976195764925644025271317029080090739663356485829962436899585454368884650003745502250933516125055235093000561550393945620620385195695547908800920902600942363224824909717785595581808623411027028906776918235345134943864360240884429513108549194706572950843572890377834722432967617971697969528238855767879782106200919095712790478993660257051959844009277867877913008043945295309126430067432228306695047790882164892963217052151355925273876270127669331245146893407750983719242608317934495618614370891939400873549546058811035497825213556056404970208970884607982168781702584103102376679603286034905803466217486867760258950181207438807082707871391156650476425762518641114066693646224877126094320654896405520670618439844254937303844458746698506117723125254770329578179190179565069841890080664387849947181507598392246134386408940258728506443906382034887709829088834753476519772846834069149577571245171385694380243412174718612826735346803739073465914900935121806717815368870789079724796902592988896587251797564622942961682133034917029272835589688629019771316767927322267008137179561108542028923724785643385473290067464423654893402185585241831673012165200946413455959122694173067110774815444415293313764471245030749139031999586759901757852383693368547553876694288522815751788725562657675316655604478701030454643979139448471223927963022974715068287804757328233619310017743071737891370963993010268394179363973293485098122167506819719571084917608837975861182839182201324047806664107941732897729179036518100475128418782672425783832254354450985387193943559485715518378687852041502753343800651974354806200330499297041924213982611761407202928362294742537836012876054780980460034399494038256582837107262879069133753853390585056758600202713881938541059245459681864034184145706662991289233517807579779183994308919254472053961723048078449214672431112822502162209027095041131173051199339408598355017700566311917074047085077944907329800104821631576522372418955090195195410580158521219536564596805569970830032074526890202771177413958879575894784303604715723190130401618351689296974531237417841625826779863197895657478306718708495759198348191243455229089970596903514167778071232674752153569174798436518167694308161768127158793807987451458946580022405938669610983498349273319698897334580673869232516875783239968754624563910375099264577193265286202858121098427921793023588701895824240560513022723412366879057094962292563306819633356373819295455712383071071580615562352683157754816950060472130883180634863904749945375201631918251155665908762079795861893351950034207652510995114094529746789600878868974778871792323293472421342010267735926355440682370528503677059693479808819766781778964786734688548153706993454243692585798580714530501367876027434540443587223714831306289478905993661293153033519628418367573895451332732596548190705365217374276271474993485904034288146774783522553219295768604614702530757756878424751772610138554702365163028500908740619194212782942377117683039891329494927716320875158827520441207605602768237004584630480340472787845147782791712130948478987694296943412141584788313844216340700683721882647915647815944282554112744923581233397023971189323575663950794200415450928454708984990779460653149566497253093540505707350532925410542181371972147295693310463212251094526319112972772897245012273898513094633133425025921289293367192770005090419294229991325012444343836137020186397642340398525995282733932013673110982235873940419972953549529091560706926606197843551961464879425646709268321877669182839179750977509580452010981731046722056645214175048236434305329786021893201959451695694940805219525015437512404373001019261111352987340124136008115624797086198072335991662772995325423871853729246732738160209926357724207037668829751415028653923094339807838655614424826406105575291924587042422583039992837208003127755661650686440910946715064812536734700564705595358113073358655451063431393831370497118960544729685844475114981006586943833175450695471334457492822258530970382129120699391020557553780688879533399734547674383543387244615381846647524728383028626966099712623149438597493873510403461554278593710418958745311133346833389401874485186976600736078246963908485866130941621060217964817786792985210836312897686706011566690230198657230425501821750160144228059870007788356530708609773422229250103997649320842583446252407504341512323718748934477257867915455642320812680679252329102767928489684963763401318775316241333132713666762084349982162804883092117912699564158481726298249210151121132712354434900010390139565701094472523146081282256863249522390202615390086009269619156074803664631329068750212412008663887392534839590936407825806457467415470787810226125409311240082953583155695329347895017776430000532835301348017217467975195733839482528439153189029405036618296335434486555688458903665217252846697036362002722050927929204515917751477511996277703441704052621987583157579697538663790408162370121624058310356027352650048190698113945348804866934745610060027750585691243713447592936079980516508167365800327131016927116773241578836809822755532817401001508267527881013760856795188723211082189184375156486783085972818600124505232837703585454464190010901876061924700488992004741509728262889426996683593566242144434510007398948043261760009680756602486558942209549335316540761178948345307304197951126918477759081291558216794041492806074737761217515921102698734702623106639305173573357082746085948040763841895727361022930353911489563784224231376184347506227514966611230913263233932077421445693152056842088378541427255350110322900775508062315650840979667244427822890880041189730311019181934401345836641169537839497371130031862781166794754747473311980796872760342949876451510141073968127401038135176221990743350306939759885086179441561185346099335196137661261330995807495528479759956410847544641062201457726416925931176209389016351048928695171076811934845748873565535945345977265710710908295973363924788123630012095329588317109544715084771037350625979087035537326391028734839571964000413718756383390186130131061583185311576601990225378146079355967191647777495873577844263431647720763373993828876088397594111745130431133369581948899670379300680840932068574106283881409504121646114917830462922441912674198727295570403028895735301363889092496841877260108828442050349386912159604727546963058006319943957258442913401964375385089971077530168819047761488268248438392922269192210140589985039278950134776418138880591055467532561293799862750962965635281003108910503979619260845257664532799903678997740250728167283636442203991150280650236190959360501278836551777374835279390614682734681047500839145958240735531858846117209478737398669715528856781708396069682945364429663903623567079618876135363662391936147352241944592966448047836901103100347278364068523149977004280190631543880913947668148069773885843969652046162634511110325096447142593361031817203053577943332035545869475058908412239757905636247780338125214646502284483252555213012321045320648869760770763985508201175918052395024592730155383537485204617472035120170593405663866845415493610976205485258580191816996729265286532992013060341195838933182732115552618074000343498584329686891323268043177630289098723574868623167645245699478526545250813790798306090188907576415746472541870914554867378271209473408171740745639327166639454251589045972184642627276180975143128807452366435884980146685472116637813907636993086450659593043411459365488782235001294527014780576866525300709783433043867354337349353081853181035098318293705654217665929580999170885706265746152272288155147873022913174238017098115991860593100905783441049013106606476069042018839866652324520405271906447342635857809802506201774787620997509971605351950637476662244244052989073524568390305168433542474126239211496942754415604899609003902562224878701539511824137754715190161399967667397632407458120026702643877384566875056364644567472794831646729490664290759720372565343583689881204351791127520907459764492481359121182034144283086378577997724143979197020626816139274834737778364743731088042886736604136336982130394221261175437903247200236351968107776819894951802772456576915286662877120832579995323761733943632964332786395648252453049707096661928405528305939373917789466033240580512231740976295761157841346331993074150070572602822066699888759315410344276717334359462708988134431327213831049030804829942024579352477113055107469698749720099907435551244605416934411601744873659901355041006584441381445653646221714597988507532028894485049309727407715671179985390309205337823119216442546126159272333401012575130965759189466429759705771488524710020296361013365855872630374561022764872525088980536403496627817680711552437080194968929565002742297385701312292964204423689503826091760945701801034995171343176306179155352235902875914894074988781772001866140258903401457766613779786616590076075500547424151571175320178145374445648159453974801282106237511853488510839886112990992083867561571569137236897149079965443592397597389083874946882179599181730546146585588084669445878566565774813481766971507528847276048486744351998922085687566358032619933341609906182650626195721443629467787308215931773938276421897769809432862195970350949169768280244686060419017501887073809964281606244450476002373823647087005197486857976750814358586536621304452555679864388502762544232455021321212889127982381703710798485037057691966418114379997452201340493798622688501297301482027638248784602856301292684505746591337076672228593874403727995052746650660078822541748910735653292002713234903682110537738382567363360264431123864528397966229098421180055948604017913001591754032628347312795095224727705596193206856096176762622031250245104306912765462936304734220873089558066254579748868454691472660892001286973284198670910496986360042693215719009483541089830540103587793808342811813232831520839176142309164115895635477533977757418819205353706519618953846850542211528350828295954925826676270784143106684998737134307534738997872564957196295398352302007180506898948294465041460707948813510304353264039361114333541352476088031722130255495652622597675578294818466319406490855781424624772790445897292606456958906299275694978401815300377079987801961360561938575567202326731012360573643230144008792205568001511035546612377248628651307817748060739155251874950731203627192926141073556327069171619850790584224404382140376610249269271884238780267136634144055934370057242786124595630377474234156877182062889915210454939375096018708205897139812441255827929453216186107280373676284551570020639533154683005139653970283989037401671422657586926417941429622906152985811095119461966170773042856504182191512420453439303440783919682164252070457550421114500680997859540220633078301458323256380535559588351009851739820173073296289219766401519555244121081997282347771860358321143806563399499074162480059608010173245136358265041613289612201072557984550616191184688375889064347730407736937547194954531293171447691645739157741374343052687426252947148489408913861019747289773321751912222979106545315723344732408973779892486978946527039328012941523029177451131486691096825819600196510747026650501443139400713028772179086629068830178748534842781122990578787577019578578677081833196996847718549301806643163829256714325571941163063840103248384680754444088239689453203802302741202520328145746630382010143565483737474628985374437314129507512330495836368812401703789984883312877956943630512521068873953639832263167838726239315680372376832952601044275817565732913607357256582238392924858825825543376869675237801561019687058964413187669605418061524979592899175795106743849726539584084927458222352114894713375515736309184084742053730730913144257634166158141897161616636348667185785249018641580610922484348875986116226426099167595136447986438370187081462980128885255411633747124155366597842092679471754369844957334764702880324790934753910672024438710059863990931126913516000748677815063917556346617673571172775570950800754957587969654139203614507166118779981878270914871271304217562346900879328214042096153245200861803131660442971800200519744534252600047497366247433975176623709205244399529551340470010947837680726486507362225125132484881334773328999079471342022882375244965689573692123253327962373787302445338709753790694330508943399076361445865020612393951365100976192661301282243327802875605666340893770879881661031002433127957137027713454602812809100223385329014325766088096941993439742946731188291980253342437319735503435331446924316992970714257167597683824169774074376252033226550110572750264720590305905914338511837009918573259447934240367570349458399526669753971854865175439417649396014525391742476975229117229763888144744671467652965975739133717845129721825286176536699716950270832242695028699572721619015422728558615602611920251691134192855030515159598424513170807246641394573863197424816509316337191769059205245320233121116373537703644517577416443624633199265390695959201343628016146203672148156864074383225162840770958557404475593258201403893417254176864590119188890918385010904792370920523839733791220969487959351723680716792303572705702166295389732829381052687941112713883592859338262363302970861056233936856647078755364166472468029221467156871470896467732353903894390820645451364750400697128591497776242291918731171857393482334913470082585332387906849914735240696576363067250085289708906957977248788394936682174808908753654716341064166643878635540467734510456937470893039577272521514894065134704292620706316659179154121439897822495193400943299975401505322553783611002587773096610063388451824728440932476646496080950868909681295972454672784003393855753380948088137212027565253653054270008806342126461307690080971416295622982924202572862591976596180481812794219220240091650135518629946189253469058779884794001915963120595073931349158617097892456287951912182582806797593234167972147224943291999555042996502917122512699877974303908964206952520931961647297288698875176295221951299520227920840333381815753635510680160567945394575768774297361575149030401400249326187430864877652245760249995201270452661667733066524023906905930745549916314229457815232377229418968671271417012484071025314203367771226380055785380681198438158678425046443114188058275565038291178117300272752429430308157051364839787758862920937502471306690452888031832325154474508030521624306845750397703597039358789893509593533924172184410930737072717286233257260428585546374001692326409917536284238282690610711309752154933336215014558270451566064872465960180820165220259032814635436885750100659429474012860837434491597986509844561350348263567064879123038931956982686774354821928214035680805679044674702408503742756365800514048194622776441963802387107210071217542045419594235084066909680523093617721017686781056964748818689547530539887137670171656603296788038634077347444243790842589173149179259381570197658675629506353006912338340815824503293490929252642750210043691123795025383934067809062211887374106769718625299721414285353761796961163638549083649642060309733202004969015948048095528865188816575955335921379715003570903029223069207332460762823347587430976144911284008630522366304383094788499058770793173317008705384453057449919468089949022931265559858359463053231289896979139465089395510837112624264154750866738997978523877274936948240201392361522087890655583385475325853393111101113006198027982405200388554678265587772421984076854027842339241266020969278759814659643700319695523088135007791161995608339647335719363679204903869051872391274950908460444476361542174985094904580614810960327753789854911435542836941537159362503102690122701666596630725715116079523125772193599092331837656879475457988507975943014467568471134289760119858470804645660209547694780876258546593338878995001293294683992662170536176936985074047552155151618621180007268414001949027203003659210202045425622217993723817834436067692189719061376829059513161152593905534887425162708872077599319239277533652271863013525366492005226962999517699589463736624802684353474297698911388505008567848380778212039189064281387546285378960500883768060011789050280032101290484688616405844030960257189709316361170173454373110017732135759466076781566421865979381011011215817036909206865132548022624339392629878081408561648330839276591016099273139179626804199065268674488579179155591553805342942751749564449535772243143322625593149783308041164863064533037238452966959289782276423241479477032056540967648892705350378180743768976174756703776338580424302331622261942094776240341330347726708678022910044160713235796325640040966205795398290331992315475967818961503324911102354218953479468930428229504979686469458986646467399450114654103026178884895585988659947981422120753827393150634432449525124197078714798760189653334951944765464202882075511812534938419968242009842349539208314959353474529494808237834467842554595239098424138128257755260938335290467301940553940409749660830189942763232658307250896417866811100660836635091575819879577626089361080873246722167902890966580814909132398595606491803135772109992171466439397862262634793212202014034705928899808713326993051755333464923843582663513586074923398098780671776839010903902989008190675814382140960774275328623696758917263394214626798774451512423439894020525191403165327176568616941780493029993631760559397539367920995998706154619726130608745151628057992386186578936733638186247569852533490332612942306270688355535443078825951934503183864980635749319421029766248184129219064090794851629093825708931511217454112126452877849353997622066333902419543691268280595076129132663817475348522748826271669228085662099570645786163376797799260394707973121556931853079666184437570044681385583880488644393308910773898140917875154539006057458864093638569592061534510672946786595113347604303895274394139000862941940964786418533524480066319102146614838239212565468284650124611818159988889338772783532245330169807972227604103451621389661595319843482354357784252783372372005480381668872524905704297902814805955480039543311138532176554656826450654451734088749840588780744975006501172771241487282204331685739193221715686553875256675997489131231180520701237383778820867104614568929926090795710340142006367532683399654911100874597584608046498231145689479642262794184861323978594821078983943247829644969434820902450891016839397573415887570129269403991613030611026204460644285757753109947139864462244643481937065284344732234520487651851328169457360929998268909806579265159737844359745834095894388746239189875068801753723439858659945181662166036724410841582745550702772252301504188339017893383286821487292735857326446794870860472819260985273349234977283226929514956903061299572598254429813041433601529523421249548750322243474152555356074535780047130433759781754238020903861618627491661758271601562241237337027930085687070796032415159760435111146662721479209232255562858596405818786285959790047284243642321995187640091727946351117091667526182816382109402836101684278333323791793915940975748797360525354400375311707803158275571769708977700906050342651680982545041459573439869609468525537536366529399756582956033141569792150968689765643573377461434285400985402095180795811467145449036611075579481930913857761395641781333339524676228130869232164741304981869791469682499860424728168652036475129620687713362987051399214198446223301464945643514509182721555520194569354652220120090303697030506299942339549753783512280535706847646669154607488003397492888177590790434393809473105213669282557339592526783509507820686362099874353729937546679454339985476038472783390881218513203827182309333402570841690261378242962725612495208859826826653469878586882927399442747806826278381134179217540665624342790039324582766366599217623117727886201469366604460631693468713716503262161589157915224829119365218723862008900361122307469175536007800751109410000411334886130331310467232873092931200891576447047079592973262825943443285847399799001800347064495058985189359386423809442972411011350277484309863110379537092765203160494300524085409121709113433062478186285814721793973310357342142283325511481903331438304397151650790809256625595239644922290712696493945633829913304955749493065898375958030554861862717451283463250080120126280166206612944669023857989330064313920238648689746086198995634372667013241296469212672541409085658791797985990834063468994344352643137010710343841002561890541352553736726147687547343161819603225959235702905088092888050440580604408167638021410150727761836485042540916585126158820154314339878382939988958131225781240526897239609996279673656260935125606192084953664870704270513975179457708732822089791688924245867219526219455645094826242220260950083991299400561756456793697637462032287826399689746196898305438679319430258877950805967119027701590591058755736904794048834078558710024656403158169853034199617797479788220839729303537934852806132653251171195151587242154814420564962621884966771964325561577461180353015625352877491307242430019862190958832296823825791914626131167426506375787078572262573612114638925142569900203706013866364398391639846498777096012109721784893932898069624744910540139120585433926597102922856917561035601914667906440941108216299484754997618705977805078627193336156082464140824581808019267393676111785089842190726976742507575448558326639617851327577402575344177198099576128933771409831096386391072969266100815977648620879084623229484492597953652927403215877051442941579190921825859674512092713837133010913075608890407205517538583403098790826072750300326918453536374532682053114165004946982389884321911197334268676255077181612829629174398392438623407155864516157439356083070350681421159280683716870153068423417891236406032730497643558576636535960390560472323168766334473452010947529495646869904118587023050740090084466301516306400172408161549658865832213277546343566215794792510072548147784199578325451644425866405753836869744250515729142669815629011386846345717166671638300424585178520888046094449119423057956855666068716097114141215202358299412778803698122933448846934634359219995756013245049495388006153032282264099091771200585471656227500382485067059808489609139631395934229003408342334258344607272972103470812907537406436143281606061382670643792499517193671928428973808370910582509189788581250792633045080087720297239780068778461100077441564630437606011793968187908353871245886086204062555244923495523875633732740615143118494315876002059053742877957728001775976549571036573642132725889764004430864724900248245239723951210742627246357239757961552237808722392475976359712163441218781470129742910575233311793435552392533727927944592129317472279853762019500709010960195050364566225338137383766352336317470260968494663521092113049840181288437728026581058934702480894881280492171892824253126248973221135718098986732141971651450577088176874832484162738624397921425075934246651793325827071327568687591364305971596998167314596282363232725520385375310985400490956554736420592816306358295618809192991559467112834234344068398184127290054427227235457535359372008724566199328625140161870146672271616443713353793322384803273992136655853400739003729281490095772975368247471332224240204033235592380540630380900844687600972553361490906708734778484649408710863490210167279660424672931735349877884268022959934147169002753608694070005194576738662078950476432613610662099210729384453516210554180104408861996611619497205748083136387868710042135439536978255635365077318166164200939963935267983355644831172292699761836652110958449268396656313573323126606443231959074369803507749912107746980825455129097055992572170413669711829062648428758033521284664201615347687110068184050917101362653012338470423979218305576365458243236569740987605111386217098371839290853606468570884999326278191381196945254093255444093248916986325900628522422562530470961485457451490067326228533150739021731329958477214014059677780737723528144095315609908885962877885108519195736286272747019660637423894300758550843106285172172008138827784511623830234195911853197185668922433571514195505455574079814939107302937010759528856003535044220935283669071979533937123936077623243362841297490349686874188810983191256267343738920488159624701259509773433739769119330764670285645910810165890401428894680677834398774345439087768769255495261359390092821712203006700123924476228241705691319075319618515791319362508189466042187556926770276126170956791612999913210146714589851275144614261924439755484651074255565595770207084282697346583406166935599379007177187367001771235035855545937879110261645606783382532001081664955795623040653483678951002610080033437680417988985467650067342147639637855687750163017137767591599432146491829093241999337333745931253381112166309790763370968274676337857827757488298064371612992276377149611670423602913864576828889889879641774920926794323531959664035511021250941920640867266178597172015708684734568594260337806760506725244497292520758916214030180085574132259425904741882696117704294079247273091632889297413853866690593916613851964796381790641026130948788264965653619851378100908007395520027460265170116155430216633916482115039607221208008638632846533106903673071671715404009331751994981765712404266138606206771151833184811828042962015777805466935485370445288368919789615095520710432654022066717823810002146399573422963489727142701573061341702990731962236078207937255525970820187603019205123069342520818332539970257030706131623882987410804052817572726411423852867827778315678357642673865502818992984834120131943048618952343331770857061694904433397449322531755731713194531861429853305671348196410622283828175026420216620868952746661954725786893761262086584498106496271848245633046408554147929530989456600545852945337451710824607457079563564137850880363212444076303919042881756695120531320431549968918730517656915265870004676485007653537841424572201818685616435894765869036574269270368997776148460512147168870651258722706901133164135834077018975497760500294266581173789401290075571219057204474415329584117362610447021816127300675909958227057092097180813826024572954909561102337219311513732275093616169115148288496172394801129956534581532853686954450952194314195504766326713114780432422603286138502424259010957943237638387301972415541087808118431951357388310418057343975922680475826499938189702447852349005691202107962629292283743773276748931560234279175394353026902375919964983986834448266304297797962700739396664217607949612795712868829311550829481496266293496536751389068330378869829491189072695028130159628532768594771465845717239409910549172226623244032279820636170968191573758803047041403452248671764698429768186767436639231046040778015154178447545998342781759152358746142414762377925608936810849942800332171242875587213386119374977181826559085731616159411134181566032161670325756668714464753347357573315489292270091242870762529560354542374588971409198328710911148059243066291923056656335786369547615636594975051320397651584131074631514136560421382194659434562865154910966311160500776044910156502047267187026397167253536616776038619763230981268264146722475466320807960769084014272617580216752539430735948908071637265751225097359857212635685074000751781724199027665889681472465444403430047963157619770519031961734144423162544569004027632095965455455237210686018149536764287660005317553875036927768682522476392937181037688625971002097323022702196523098791439082850380859928441356775000324765824547178482852021673423978532777509892965133773187256274675921969266279359057190546233867653837045087493494508375778376374990538620588367125469009107424026981776027610666134567579597586808867315624193364029272268041445235798773347042497893774559927664402620870883851923012215428492882448099564488528770429597602923336279871597757691835282246296758279803273118935498467478424440441570423948770708411707244624202438025142935998275460381412968800200417708959187559392770408275292852499932575472380123584790510544646457113299032820077945255045685393042202528076426012975654220428865722528877010091917082405397909963351714843594728087720032813242141777563883809615727079533158925785304989820534291038077974665752359542690287569311772507182351199559209641176289447838946600570967494096790016064488739644079077345312940004616063162811954612263232287052760399517860848852277277361685088445844552250318938318914359540249165268648310185826020805050912487029993250340514128820483943089636921831279058868801628603397182732828769487685279242472846136388227728513287356498849211206220553740864495451244995738602654014144750459582490841933042187825703912127960044135079645833913473442245859984861653779837365273241647710101334588401754064915447354268070742071969426892967233705055746872950844647272881418086352743348218297670417133425191086430753503252329119104558029971684924646144477808440308234049728256705666278339047659955100624713935471385867892696539685450470090330013637924635589926259726627431506677889503427742713830820799933192248329676775914948067185854714049367735188139351978612182052955412330296835894887718018802731626096845498855456875770674963754052139700257041919157940690629001214964700114280137281375733888362004123296544587109067158308079013621779034594863474792009890886246834356647047799645419649118318125167229301541252572286581205381962693624715680659556689362812596016132917797128105297048289423591964304327293341559679577387301234337338719058757616045178306174442272309961488630998154193754842303023810860962446780638837398178292173768806661582845660804032629105813063568182781104331404322212276918522677731142739251228827414512562953902162427323091831084543877120714297066023219871472826900089802827959616235099663560072572141362411337039562415532624512718542158041857786890216658912451085055071379553170913229309477056767381152763600785958308678197361391490252468601838333238210200097793122770822647048837471935534939206668750677979331830185091987643321378640132632505550543873673978098298757190808306538900985792242112220376154453347392243800206965149726348276098013473261784621600412913119858470570613926141615404682950774114615969599300414658334463444848037421124182281997784783713772500135719145035835981742166079494793360052073304769020148334193693993095088411263076299885748147210459797526509419008738703953931145484034808252988389719254467927099932634813717239932029198866129361746329887948815761659610545247594134957760305670852700328895091725708079267029168120315911515132695663929204130262790776410537239191282129735626556382853019665720133625029833514992373561839453115038796158753655294655456024777973022659779488800252891430292607951817916011084876660715347418585089580772818582017481014468439410644999023456350581483014294811850389978252051877376199627963471594952216729425763249188202225162013252062511899109628228840175927492123743756540665877278145221010814224135421449112924131754681114683447374423235114318034258156678578622736503835660833314313317736946289028622420112009903665162812830228088558301112442435827579931406654178594222986254308876448517885270474545239260693112129891824300967311552326883082763149766294210619211808283041012189959234603297446859910969959417740762479854550320905962019765539893780652844612791618008613550492767753276673906283423382735418238247032912628706635998655541940043756238777299464990510634775541665166529104239889122511925826774484085260213751105062732023861278781718792137059850980543504957718550692724086104072853980318849946954705455155631099318935508419636409803583690648715081136311623809154663155086427441287964031979672257981812378744976663059924824775714135443170564536787488201946864139701619957193734228003648384741129868654356580170683489562190017258859528782228774667383591221104616366261634804198891856428428658795726258999149740040037774834175821072929602183176352836137187646420865424900071380921207115267081924888967430805100098476404409628203724083225273948640966873006088452635147027522741673937175474709407156714347319182942510773325027760240156276515338875738839743858516171604933263517300968520007852021081353160834766712561434359289980996819498875618571291320710643642463186411448595831781425199577477558763902934072927780990060177075484429881276152181349708510728990740337986042558041882063245173431066598233113203048870248785956592906354640686746002379236023151837594797582634325683806005936115744640730787471831312740468908603070806999518691372929593646571419189112146883909335259005747006639650561414812380031179822725918847784814432737784119404476508018443126817962069308125771404144787313804806304728694913134704477591805096988129954853924594266906149713346555993992717166069787535757221221949651057959719129358318805334899947295133770445104544917791824731025112412681903932066096538537217175208808367829733759042094667471690711247819811778898973733354880500011416213035040828034088532498972829597383459062691222165742700962618954954914545522636570856213271254377589468076727354458536584409690535233605852062946991254829532999357559751748795188093173259600997919112451804012412818130430892747936771154202861591793995615060641326406157810226213757181121296421475766604077858647047155608188315686156074700420563225989984863205891133182996652909553998331102571304341580510653869334153538985433507903390693865682327002334829580077419556656340945942134867548217451987831292537012411395014916070170167046243318817572007852069967278511849919398020319360478134299817680413857400474254338593745773359274836649117531870664302750946087031808876635526125029667613599077980358754773027597000287555234860376088876095060481704652543019980595175219597253690031868148960483320120232656350324712343917491289749278611413242377100649619128717190710857576622615725249875906833134256083655225706157536997538939663151906316141018246283973250138700126651690176280293952757881315362157337402969443909061602364955380598263483970084386351881895343658630337748117072483918144470668389891911299610779313394811446968187442796885128987193588256773141479300900150697493063913135544712166355930570370923753986049757440553706958271302319275801909985363056380825102214330972359466922491280406246516832113587301269495788180020162063028198194803186677401865469935151656419491221003826303240115524466718455449862418944870376834726711105906988141479622375882301729305419950701158711432769108780457005176337738773803067502648636439892520999631560431383146039774017226443158827631639341817068000051630501497925842619449640016970241452007172320838776532281910833623962862589237244357476273722940354332966027021579404484427544147182018475300086014323645753259588323438377857347244671825272695954485502393223880800218990427431172288830188390342609362443291223473784801116071538879150056220448700768020844798320272901837480556781063117301756397397182181103757530277456584378393753403750186190999701297919050209210378348536767267416349828942815999671942863861482043948391892316706576411546879190073510638891219977363905314961008064015779342242952783168732096985776831999259987246719894530947405064103951749808689994298634479546610219529016051609878255920338601137219346362418096141897599411709097956247327973661669648748081428877426864526011966106287977009688658506709136596182234391719684479999320222952393679226976120857606005132349085707852808393673874620922112275873385047908456244185927496032819750127820328195976989440814507905732869799055024988084536421719394337798695166702889630798771710073219085264894275123825197488401459924008250321182230330413704393214803954330750229993126508985221337341492706087811164412575332132716669140430546715291946993856013166696236725942713559489632678586830417754746981272975870504964037599974374052103981534336000617635228554466827534772907538205758242675082897465187940728362104743830476159523206623177451218080928851493624077350230512397270970018547275308205858059124125351988836690263866283569359686999693699511037640440637278510074505749176003339537012631036540584906698579111910303766674261925359099940673866412560002455887556285994576277584306438809313176101152760183247778248087466305912037941615708210570179201232677505942916779605991714857709573783503974084787878863447513654028121024140623469128253293670778934749123882880372960431821593667240499850481256593213328208154407810040698367349300333526586355869344939182595572263155771630647506249497884387077888090104164517250465906024532625502585424282649261341640910188343635211418204132060302633449401535710322057623254375498888431843088582994738715356655735827795359058753138087402409600918419961056699277953172928421598568074255559958243119853792294967389507856229589721211624419299246753800374363574839862246218786630991632560502040942652565892775748658112949491545813698526810656471374970916894852389239958577253433059113173038888608849145206316931229989969428533278446563131204363928484215189522747713597872878677317326708954416490414286780762649072694903332030031475064676547090897486167352215535519924768079794840042670255251404186613066669143019020367148367209011163953588691289180613363313041349577020455339014755320743548724240132669136500570238716136522170175724617211653565603451443002639021219442630586602501149403500803587586693470877246493153869763114610110647447915232642150215429331069428030350672775758082883064441101453559561491853689632700106216638396199789251403206923680462367958147986550486103312993018716459046772454197046273936337451275267986878305824699541988319366871077841955362064871069082558720041974008213490606482908901491025493890137374475075540904959521568402053357398576938046781872940229248896789303897947888110234987141493478808342253187522877033191391439691040196733274955422606277973383845377661355306119498701069584091115898397659939682973628472069087289725681824242308124184127591932389191904121010024088745755216867772613014550399410645537612829942841732797035937085570586685881173047726051060329497980525383345433219493289824938265875754026119793818665491700618907895551782261496324512333185132339323092573196218404674121133299714063649505459534051590593900826326881968666432248618632701964931574419683626639565235920867042753265358556167279023510364177951028625819406280534257166228048302523305030423327236787057865462629544618424042912809781685751515179424464411166989165351067100188487963591985952159699781777550844993631338664763082541230310002140145775874912841137709403965373363555979557334510284082344659853539851532700467371760939870311632306240063309252014598435729772652612856216356771126364855328644281000194169209272464070928824492769158221642407816000187351696149082912451461234672072169318323953119910008115900721992333446041087806456960350491028038151024328291745415889165942259459450222286384068607905353301618526022816347771656744955893048186625166402646641546941154903654350699818324058278427849063668750908805709045976024884296002646896473046247890296918003928257923044398131753695995955827460310560415748249006831689943998683991074432668094008608693907685065003068792946802943072532291012366099564298608778351430524895540263671444098443596471849062313828435651432638693070435136123397606543019062738246630296222784419475582687997683164263581492176952851071841464493736358189213468640791720410588914093680848091061697116865371306415147282317855702520986716571751419824418610034394649654445875024392842322444803652032016796580523287665449790487497682948063257494870615324520196869845823680789559945792363702450910061506113436004751244121790870584048640709366498018217871366863126710841183588328983339797372309426080018871199320182150910616737150978339866211141558952707266440413950376041140662551349310144287929345378841660178915378894365149892090097972076631841411774913005340143770516500983692729638410455275588799192793430098603349105666288905092116954396453564445794029167708801331917367286724552625292879202398955596839019311806514679036038391125066369745292602714938146367342000603393838351096296994708979422250113324916570023370874050064715872480735897007563260256253901133548481157321458196684091237314861509467963283865638072510128573120350380337470425891967006527731120172503295336282460063088282247183740170128777518883289101090755831563398206367998611411524062885838800840958713770148769712439607572832905039551535723926052407842201922346785849680535084237292337080088620731303211754303607093012773287510582787039227537987113384510282416928478277791666500853302649759690465438953410759003421616040677090469104273882700800481627361957746770894909673350431335246540232442644808938351335852329382173859919981481246161115339872382869375324946530076511513064876578322446821630278353958274064038520243122503640571665570472180662392865193927960241006791536674911904562562477924176610098670997294784700680892628357845010039131802889256673962192183219713937005738007244246342120441757220520607169874899316471452532542326157587184287806643564145383847436840642084557509192627546212282250376474949644151194492339577859534704968906044629143964942263643649941978819617736252465810809678860246972970637463912506347155104611759934895657864780546508044495429770971639502351451416711548755947406042454589558513741218665579558572342904038382271966520359230030817519244196955535765389950141844268965967128560301402457325030374833788850915136865375683157284708619980020618554647112266062389257365433781758277384234459339135186606393033999538480929753179849627032533413978724790444407333329548548444363147155410734188167265987439892968649724437058867841743130885095978220857012029824573731437025739917355280076032168079496756956361054113529118962014805770064995656518423202624897229099268516745365259520593219233464562086782575960439754429677657736362949281475248688864534588401099123503444846341501277229041003256308543412947041344182102623674314500233172781755922405580393887509618411854333197937837504552606849005132866237838952022702079100457198406715516939882552537092381468662711551204218711272230403852762737401323860951497525421572827058760215530375683078745133228596856826106499339185732847479589030767423705445194014199251353644592636585228116767998680383944755193097724760403705586431065576761017536985444611227305521454446097600473497866505385990827144185466220977121012148082159917386709053257376593368553158823188756435171016929186708243129775466675488325193147995061461837597991857571487995742644441906744193805418348528737419213954893406744993169532375183113537754871964537159210073105704590943607720395420819335395876347424085140927522413381955204508640765990908283959311827213162221938424739676093975513795972922216017903017333485377541598652649671004662270475367416432616847201644310714248428410632041707717168131272567354664947457202868780211757582660445337313875034142262585312808794392610028183288847982740039367044138260892328877174231452763715661075195236530169051367256077363407315482723686216496221111311507036070920015861588675606118879281420040148334853776597915382476096994637358247063125110529079856161992344663812963934781632685217678585398221527489900777059852815317689428933219027680873749036980617694001902836019492984585281546231404710898323330620906856613579881711066714952820372417606315486402701517373515703326519508359891609963082030310432433166117804290833715271738328569789680395912689797234416717315540955033784836072989112199613290446575283323662998400853126183662652687558318798694823321041911928084266558626060126573678698238978910513157394849336218756231354994606841546629727345670110346378256120757954083017974762796728578987730752627112312860121962129579218868958981380146704069639419326583365868021271928455366780940224634119253697519601397035157373520901004911022091104930906952130926580702657151710854734704204446912616425486239745988903731152496060890766779945296783894349665963368652607422624972354486636285326711001344476675125791824415191429157607557914762754330221373339700408753739717199668630908874467958362752013468497257933528390887872157064277449005049726454856204130198566604282188869602834309565881136336463357710616079066835174209446579132979431490671590028681980670778414906881843894982674586305722144518673699596630536874913020586194939055100926399998490008168340583616658075396969394510480968189934123538912348012489987403210307592728054748923250559921920820615918725557976660056963812551264535264540601809440077889194135301252951009228339816053178440577163895864821633756205037783151066503933316973927810014180338560503998350041981792378208643665565848127846184569945950096270371153444094739434791206607524055044431326257712003018694854743461565464760967232919067994541239007337159921950379556562360644085883383266470340695372026854562728023211459272885133165935596732414593383414361122947552380030708827218348586637905781736612445594012079120414479713709142129355130673239972811457429705672030904033583415604195720672438112485801571524382539455363502466114717844303547746671384602166532665780868974766312818643420628037496779304935510199416741176053309784544734885557557237470057286944757417293785579986792623314108405573786737898719211454546863836530591951330204532761799906211799059559767086924481957329219788219971718457004119976242389462800629446758194479185246159146566806538558961592265634617347670797023031747153549645274273913114215091574472251509185365512343801341531390022383223775033535215032060090710914445227066835013465185703248744093654485907820706015302587051961666196702953965746257250067274494543665311365855549042073784366118314761045270208506760001960218839133696162441340685580417553346539153259964462638373615369008986324087556520133487458278547557927242872798441553922546954091444314512863424875551698549533946362579410433932372074901340011542805358404148685306485236868357771164092812262334573272488508039783197077829319896024964597170220869223283627179446476301128900151701257641620616495262427664638497157622815931163921181220620483901795865941206421546732854068123673728752953950292566344790092942634592837543522063676304269471556589059710387496123585712066104096476093635218674120019754197400699258477725774593246487283180398659520598274666427320215617895636939632293733842786463366722522767615348946231995704535053818808493732150194191905882680459501966751024158050442440134577466362695961013560407808069152248084608274390666367808983835123164578542494866251077964081168865829824928120869243195775994382783614883123580154294783657569657269178354017692569981027515242584326773433569733056554412397559275543228332749343682814275809740197382708463076873786290333923195678318423642701841085335096810951570333677237932267431887713432698780494719431071167813114056644659141831717730878326444972607418443332336115683115351152392818545537396000655187968854361893087797937349026571309404963692065879664321998491317483768977889849175007324381157141333847518161871027600185365440488647462093211931686438353048284168417074652836164630133608782237116186541049955198613655545943129545314526382592966315799208053256196022025102089971971627615660225083181490636444324282404344624627933004544985669533059339264091938847098968248929423961199306564670698663962245856425925919486761343291603403309596280436413058975549226016304855575890760193504655069895932225768919758303352157405340314215686840693499642006943107829691110173535505495918413001038015633558115090863087904330995598778897771416908994893325726500560862044309860454963400199162560335596529287830568124912835899578696181724820478305432613546785124676543542610904236943009702239071706967039802410582885849021315528419670427797051887681163793739531532312828452335343831987596394981758565089716368649774517989493734575772035752639549226452641202640014439148577632512613751546831460992646176134476397137592489840858279003076859283232400699254633202501603644661254218788978634470836229115842940307333241515789106987773295046921157041146050992138315493782657109389262865939128690053398010091483679045496825467601987288609349617977801888173837357078537647328244627491081538203532496102761044010767415950467236366745273947008812660869862213833790215973849695722077376116752944428717716052394163358555765844756281600126689349814269915793819212611839857812214430454823560875216734731829510069521474059161158236042704597517334294978447389201091667294316159728033737935891274298943966238137562545317801525256710816764554972861333817850962195378535757776066800239554602224533968946585232089865633716983902245013347278693994032627940012076492175242793351107744986928374716022853311526749811749558111372843670281880729121522152392818639298220504872514392075296212381867566971516593161192924709973057338462139964217806185420071129065447600461769176406821663109587053444019487474003193003498278720850744496324973577727553870802625670486748907443602148549638335867868457668350530430777483348913654512786721809268949204988133970662499174126749547195333258078564480487268248211542875776409115211724143732075823577719855700930678165012606831347738610240704601537051003934103697718842819922624192025342546958406244004042741505414144623766290739329604197651592221687797188853022596994578118864124806806990111404096086448680276830404899028750302778458110545194193006281611919283546893403149755713441010101727720616535273286746887552788735038281154429375911790017144008392631041877478020065890748941403364231517942182290706930218670584577933662301023852555327400942672233492298867568515539352045133473751324844688006587661548586349695942399857518564255702299535972539282069216112733003500898080175677267118325160500274276244271392410148448952904179760162922292024718580824321487650342853243690808472923759941108624121217206807032395616870804444450772457895094201675808339311781090932325204055309674064949660845772541474055595970887521426636886525144255547422679456627632628388971098521987194125077894433950855444883544590650701854599718687755575721055298251545505187317391793553023430932945726994847708796190824131181157414665276421736228444395197541431562864891300466345666115971174309730859949746274550624487905652519487224182289084721968221244122690146360157517708936062000680171287705699059752534029345674476646472254256115151475382439075752506590548463372562694956440056136873813883780840867500219972068677014137671728268761029208639055624083681615332817737206723057873700319680818030437743423126648568425240168633303032540998899534254016091544932045042904295179803606788314394605627799009599934245846837749750542954718672949427434953952515587442655529691974960821006306540234514655901320607345062491162726897023288567178452647128686940351632940896775215356698932358378931833844238368139348486062647423137173426970709365091906577609623905538073095370602332490560331061884887151533392678385658397266210892247808798833657500786815546716023736006277616164987497901224097632677082646991758277598014754537892989544024265891460408039244459127439922952778192000926861134069906650930214824197998150690951198688232596546891963902026716720293643627254146812354143845077904678816230639367120463414562842464895228546337059249558217814747899904823903007737469089865244520542981353473409874886830781820341429997624157206694280932360525167309051106052061735762387693741397938199872910984164799694772693299789920474848340187333161324981978980598141975188675599242254557723343599696979870661733753807854502569326617247139211366414200272546815042171695048059814771084656408005430804056371657079152989392834611764266702798007165490876804298290450405122491128671194723596745880494337855401945104128880582503898863912714331436086730820846298889879949573657552581924024553424706573861528691278645130392649565073631723346324180817201319278000240041205585276185864986050319346522587247650524253340485594346017526153187426888771341063271549917579908779304664944249619343869896496337016102088158641519759856313598838949146891610645508112026133172141412237485768228087778611132190175008261621285609831539272150164565265661559464321338229362561688341151012755740423780660564260075083490361137382073620002277136328353844708991745066051116173552589676750704058163318832145670541507405870841941445034833906099315378520490940627116795754028139717828438002943303965075739631140902862150399511573415923440788722811523952272913525396180213452477059481729071419602175684201792829070951525112200628422802262734799650121700052714795212450435194612653837655400918050900836924824122509562836337040250153168668320755677092468951848845307308018100729941468987044830422520966022044853912828710592493357435335507140063025075572794165941393661903375543840729345391290843582987479702227715362838493812445034654448002207278287653474744159868358840599703339493980795229316978978690666943432467337281901598510379071145629087333447029149596043608365713267870877926372313480272348870441129328781091026965537364784079407259070343982413486713049803794234962778255331940774950654688654147444632033426528242612676877914617614349243275422279328089009469196401776216902379539059021359484853979141886076845069336054980705042357004370968427323289309431677874502406533548394293175840159049387834424348679175769844801534857643698152476179556409567380621970418451033737628715303150891090075840998633922273375271962780606100828687179119188813800797408440223406072083535191192571262307011475252087620055317911128703798689249816402671212202576430496323082540371091789790205865462650555088032435527082553936813432347474022463116620963925084442731622044338446103375158052959379456101152807431404098445043101464027072507403488147323246070486534272454972151440200382800664836917336941461538195403935644287520615570009775187743238504043088440829019305433038861087641301683000131871748925592490518354800822146538740205386891867406091224053769452220925162606337846747912886502393114599624621928072874382601242151273332521039105386110212109782084069128156065077817840826626735540151702629268209470948137755558176805846892683555707306990405115364629744048074574818178770691276859312454030717287204507385333364644701513117491244322331535866426623147989192485685714569743927920467070094524710615784028523107716211767560747716717844943912508380514866241575888746344036338179833552908975054810920732607190620261337271394076118293454972502317101582886017410758227073908739274893011643829047461862602356008931379154964080554903750252222574807074440790587442324293703876116635777449438866268269862614451709866207120124150203588702677395236566586974294635361073338507381029805482260010857162232433887307661063088184695694545089315503234454991077415041172123222168863200688697884525844117875127099816532658868923535320246659793133602544295369164690706192521792299171926868960315732069246488682583375742433367491971409152834352774125773851160538864265424656418675406422154113380210453882674912769863154361694836416840284183452229312557394167770427534286487928699365479879847197785110503156715358625426044219327502730629091876281582852392613011802622969276398228697849580596900630239193003627125898399523344128539018606810182313546044773518261692691946480711133918907506796313809922988934518577376688169154219896057013827507996333674904236101495764785478432400431933052822545497348675962550570038936134951256466241646328919945126625399081937371708789546046210348212387205670152540444469035898860594542624277032546566354831084250595014939350611996813437744986189930058440663769903499993788544447565011655978303846997826869437586181700175982718448744458602765061707116885163644119358800251047306488876101876783711868355723556046242958742368694324984923219161038558520436942945860608297915349892490770897715861458965297517643813622208278917099721006114945650475841223441505705568530277575309143264694291502631434666050366320632767783164902370660636330869616441826796883113017227327256666311856084611197067207620332806237003898742613078668362406050107009610267532024733070809873777539180141390490741563281733059546035422943176774747714128510108043287197068485988721662095547439636232621582907556437664756266541822844626183611855115966936429685456975576624834965984278424895615673506120136299301753979072051342713059103879566287679682360169396534020054344716587265098715945927497278582934944240404022733251170990576830516872826096810183978304065422064322205982755320050310809162796690782131377329711859096808532676867700552905614528163099718064444201341805684407545806458841224977250384844829378056297370837811753245519064005295896866797336846090779205474117837086871373281830283831365657997558914732320515825257385676734351994754112409021619960393093629695272864432454215924565843933937124861505396851125319738835998666918190490819782986580910275571674207529557369638038420612413153402612623761586323824293521631986143449351410053356179661918880857219629578471312480779998122167160831870188335840279020328257722245366199402823374595894127739064327340449127626947734909575931344396436283138956718945931702024654747408494806583590414505828348526937225053199786176343512663065142101954893505384086309137723925650601563116252742532898742178453942965005487065656708387382836729112085958963096821585346625797681490787441569358811158550824646538241178749940345320874935548759556363618484383779981480153889774458262876323601795145111596134589974096876681426508033163807185243401159704229901708388527116930972320598315834236465058522544695642533536582113973544974692817003886553368203276980526979473843810988097291588822581670272703170302041170187954629102577240216681242817209486349245739280235185931143236882902138091873930984973106643663670599225545307401339362360315836849571023788183987184447844039381366323017594662030326583797043290570755353389473273701106699046366030929233197450578005055970251577283573414794345362435823380352023382238239009656119891513549613003010686024321898859821809267191578742273123846246067215631583164273156179172276305986897883021514908303506921435459973175060846279218339173286250839424969539458175409449434257603655740103081143629020248593808507428176151495524530072743548446547609654198300834025061627068268824192303459900414125141684421978770294760130332990926591171938418881970118736859101394439279150769523515723770163418054296870209278241930013823933778090524013784479336632233544872233591887256901671035875680245402432123157755959088543865963971859000277068301696022679192325564308812384565214369442319517065409493255233419079502047978463760637308473291978466363474570167870910001686911294576182231956839305704917236914826089916147683811268827602721307715963075790630870948695732750590523078689365079656646728438313550811448096156467113806296455219708508959119902830244791651796489097535968815093824130003950479320683226838002219634366847921635630040912692803227944991953503660269004573257589219206531011668512041420477439727712225122934492776953739035278562383064829486911037311718944109119654168056518163870343214621690678831683644518311669316148621547390320568659349934792149748350366314396297717388256841644603400347297438411623824708947534893601737638392561330535799121586534090459735290894384641694760649914210068299643645384975679166143533565874884209547257233753604815628158088113482178314810776847907522640037710615118798027782092492328371872882042299559005854135309369308092138082316916701231557332448138056917927887037472450348269641584033876926833150846861026410672646345800957267850925859972319330220436835278229238629319823648877254278506572914617933530481341163278492918101416264320195092249022793484142400778344493450781516635303815001452255865405546151386622202287290433924794234348888687855494319514176420978026017261572033784119503236176244777500674786845423352567650526018971577453115788487558629939001619690388394418987341408328222006609459005056522382557995697715782756524943210259530086892032590518149742801328623911616998856379788333055868728091738946525741596798958823025460089412687636880122651054013660843530116983577567532290130265295554923856154358113903433151565183499609241161197042847484389756179913444740960898034130380629919129332406231225938080869943108052445404833089375239915060430003578584316022349305565984182907229422983751760532091943106369849245315498623357563950016011180258910424700770991044623422597356670055303284178709876267640993346340090703112467244599139115076999457491860218692762456414839483871078331487595256628565069687351955333568894590015212800526109122572931156731822773838293667067645041729477189544207784274894905561370915298906287995909739054756179548182717609720139287764672847015304366530192084243418637664354350797809292581739186576798207913755869743737141876023335764816510356494822142261266154103555170959152672037250690393879297477866293771873438426571933188027370094688601384727946557144959993920229539390046533805039911892129971066095932284663834674293962775400756482041718895325772567648779862096922342835334526278465918483049449530121307981010913332470538121267847911911578746536511481434421720191548093180939483416586723391708231630744372560235607422473589077500476309341236937371567527588212339891695520078536459258381336568315208614482947114431506071820606656495133540415205710884958124290236893661481014297766380044726452557556792453219756309384306462997997255025476753552856238707096317791605831724387502335585251302571933490200590286722602708599489283770399423475392462000373554317696124044103407254514571247105222362546226975539932106144399373890771761859001525280804396994763378206008124113650647994359140218233940917980408461806420474046590768619859149592957892296347686063264678985275435773535748770372224585311493785774976503440420240545452492852701816688631539447745205812495779356113592250258516238745781412535562628230296940493571820170398045032464577930265515258927809463486379903676925288250086440846169127570894604848281567832240894969512383550795881652620348125164664927081373572787619944418930108587311513750495174378848125634615793900028117233901261028461040119538683324086255470647465199836419579694764363021992712702856343571487975523627639577679750378699572484789695734151588061510401862779133295462240410676299010631856807226251673441906601531201990208426150683057580765161412475520366544415814166462839710830218495522519366763955906220998360969446267440908582184415660650134655125514242178362883684538720392427503295950736431481838779135547404892915618078717491706671696464424984566556040536807157983617552533546534318244821526413740167761097719229089718545698535732451361132708901871591883024683441484053138289492439300173209985733157384685359777946728557202408316148383056734165726390590800172024145836546475212171875657018782998023114560033178776357200425142651595294004129390073017591905246416978191007916005532330921385064540664628808433828242465010205819011834541842653405144762451530000961326705175684592615777642649235234401880198444364705973094535095856859705329466126597861056369972466877917101973019794134317813841128785618085007404960541110637485231715292476264486773775773328293754019842640707448799812668894454423942429064633565177385053700866213965312838072406349444648735453282773754629753525222683618189544811198855374262730498243831637032594645704404591940150664077163880202864584664884748247854152640153143553014148792881308440338631433317552408381780416819726867250401690903856390982620385765782466071330158057575292272026516923237232843889154698673764892567124406974807093328977103999900521737325998927272725408801234799414322322845323888591331923306174102123794978547624939676150924189068587038759604197967025607253570003492399713315329275125968456610241367154913797741076021159351640871898818850775448074249467496637560880637371125160225601746781862249703840651346729034207071167242898121437225236895896967609362672460651503701070671124623513794764538950076137387663357059259906889444608149706385379391500248871346042896301654139062803106297566916290581055973162716765849283548010913595677243939009965652347550672415003303959198387755564538468695364422725346162675678699670021161183001838553768300079055569582525447370432246945919313105502147682790386744393894814149916541820647216742603393773919557753327600372875102636488515243293322676166857955543153616166971996791680795407806753091257855133217408539708677504016504612542558245017547533214894185560033897066361217784719441832264681837954970212111735973900525225987891953221466462457163085240813724115784169049397236927965551229221283611979268157904426677597494302535973493349629009356038244651830650747059562529174207208549022644558042011658266823319502316131241091015120255386407623032006612286322112900400645999820239130120461622778084892984033636038549830549367434159217053609362435347087616266261973757147977718916360411286880307113381057813735246217418263048807379866033732855471507415226333326685124884604259007878385489128915550774226828459211810000757874324119614895756829147891395376896247729407677946791397947324989868611776998014804372916934438618443229935711565138475007213282898935247214530011727911931454143746220767077470981093269476984242059699572715363113449394451132570730856900741743194937948741743249565477453319042571235754789332526639548485084280740854520168536430820764875639350586545522123948734896694548913461494352526671060175140469661271971414824086734245506563575620589667505373898200726166358024578955723708018636390837882037460487546596750915682877832642801007171500246238822873544264294417779030321806617875849229568623669174649187940182227907611196925665816718744928116838811129068044509265042043128480892479997387036160327107371676240049946204718556048683952275514495954407327453028070479934489973355581017668158123866906226708311349499306394733441214012592486306429546451356046738603371926195587978306100940461008653859470278948325477805345847577967459977441236563698024373791335173614373091375401839356621992847017479539618160022687213236215874066089844391969243813286517842878271370526656593786050546000385302914560937965349573463540940408577320758880254783766364302315707731659649943856793066159128378695064632305504441561759893165234509353991396423652676542165011188847659127599680068906204543947287226818665079499435642813930821583170915988121687192118958797363361250216563569447688700724121121882420642629036258552429333838078227245273813409935249340810947009422393899656141617794715156848674454700195448686047404983592096429503368895622525073132000363139786019324615989098640584339843244409855328772615733171599529327648421395541719057429535548708996757826741881955042692674717180584683285466029911770705877296765807793509611552989963706288704154051706395956774318991185257726264869165414575468597501065369185677267034996546955445773677390314789920331995260548823815261810064703293856685672378964214981206252726540774029646300604402085210767463764503726654023046697583132153295427268934586551754515389007069087041978772450276338005333814746011717180171943988705438105785175640271399836685853427019637263188434673427537540194607582713324423466582792230350148639514206133743758377212782496375979256497618489450450500199507822047419119835226115149612627476040194025911067486787797351231709699926360633906794548856749863907589516102406273924945423156936210903091864692284896679610033143447947231285948369797858310306469378796830428780118748688086008670022596925614934130433349121210135849000459962874848713521976290576768794148390885449837628994360091884197497547466508793000439347299853558697644995813655999110666638534427973329609893821103005768946909616409664495889176589484075729532726614307703046109914560063544264489544453153622532898529798076161059478412597744020048448160301178050496099309763253932491746713785421318419199515302400291901233581916995496818328682782151563090361422125546458041194518409991475175649172421507822045971152528221724658455019438854491882649438148676200665329929161423392797557991821964643999362280083745034521711652431714234932044732825061838886731700807248761003734959665838474833368616061738777024909222756177552053382844503941476287322611752434111054838308465078181233863728859726366074724094990223156722506803830233541175809649945623406752535860338155346320709771334536415181441005590779465598758319709850846273270845431714209939539763027907606787389468344268076924227175039517549596656059239142059951035072949158158654618682610712775370151132124197988085667111641168507248915080707341563606223244576044897581242136759665944436269686057750511674756638463083091209794028978982750275838834709541097021125788325656820073058578494573198070689337175376367294988417120189584007088514540349375301573055895459072398908442176687056080086148512957941096299960483538380835566885932113284392027193176732431475409827467146834373070219924515393025883255933128019001642342781945962322791439329561189888267287576729577776187195842253307910596477827362544787300305055589053332767025162326398786209891437704868626068665220848948096394771607176192752182904287121744462675102909782401309818307121688095291590407266977993515694765305170057183324948030928432097897954465960199848381587373100346679630409069393334494810193975137079061864980079204621043576762947407037021430615943664712203284075950625443907322021725830907966674484881918194467345796787333348839698078271943826891458817384824453415340421170340647065226612661946979164475781946231538526693585494516682754056080580369352232630819759718239590574473364986430563413412762830659038566141870049096551837727246343232797010174927406039775306464412952165401959194171951912691561315338342674220472918198650512633951726615234472008683790043541656475584663403703473957986579287787812504060237760609616129984502344755120759252598838399252611568189363453528237308707747872724437664978765611868894754894466837969028244487068803345964381528079701316445432391216444156277280942632159751751306300719857091133311378675168586121462395298184645991867003656879534184736113392761166390938801719946382650958496950657265211943899382527894096610346705412394123367918174495350030565640006730170721800782538272646096210554929528522144961440152201802495267447646441028153677071436249969771398246759286677300582949165556490567552634298338450955759864437398214449213203492923565748145734732320292419800231181874917605468508339310672129727348733778486454649088849929349038800275171828670417543219721050098745971067578636648750337684864647048854571101663417207761453950519439385134686584718409569212685465961282373545384143851786504406452258720099534404606775603460320333206393890991918167508470165725151392922823417726444681698626250327695476894060948531108302639163634050646036856727199113644071005599907666585081771650768406100091205243854202214516952696646684480388650465464744398735126096648586438217819569773506907867067088533059885924392415615557853414714912948800326111656330215706225499841387580867434635167989720518672395076264515586499983997115543480420605315699527220406354349638438435488989847023523799854494043448605372353082135430744551694843205524677499592319049985151294389731283486263415674551530839909067060351806351926319933186130933724549173187324739297243153412186164006450650126647690652670123341545244559458741144334379523877792875586731959860058809436274853005037484209945940847013613355555893458271172470073949250671516207977649133773380036637995718972324013223460069577387390290070465961960996242715515069828043989576894581560625765460498878504136246994067160145329999311885577991295685588893637631611793741202008996630323492587656395150724895392218798036052855695136888499274125516074256335039216431000651242057186442064575939729208187516724240095655406814634159848253519267991466935541857514182297476137302159691359295884708665668036533166372614851123533832071259511740049175692448091103063994526828966560208117391701938983208117989933512795307106375451798961755954166011147328453492893018544558904399887725031185541958684293855686080883120438339267803162218256167416614243540790521300769195796182758020742773017756501441873736837933827314893618878554904052346784583642819948211400564861531346852732825248136413538834459650466619576996258456798669491071782438474807434017943754833707153264951231632824938534506478464630835754645327446365457481034848053054964614720982197796210299317624169855934544534183523448208420743213318693665301834807662635920866992929963655394447296932304606966951634721576650644660418311717155247679292461146099393189747527940890476685307582357729714688862361617912909739874730392528213641143825937794553985560802443169034950838437269658568315096554260005688257979238293957459364650119841321034617039901255335159675033746785497040442016796227878617921598080850207200764271252799913881039424494898214110319939158203990926453932943408695419707498683001661039630889605709682923139889637078526967635465092737273681366103665188230069108743339188455104791431986573500234194179690080802906451337643979781801470157659585258390741313187218810214874091311125136881306547868957607964969432484719873896266233565363130954579137795514311299194473794324059125590844831171843656238474101782483640671394239130914728633640648377764858144804942844879138212836282886290137801104564084006097580897334130208880767990553302438065994991398988186008391861302719264938008396967105197992498065984757261993550395219216305862286391825468948733661577354494626927554042321012322682344704970855999215094954701713998808439732333927097762192465053902080621471092258974129318519403776300801981014468966828153035635214409074168377700377408740012054481696869437773019583630102205050212636097073335486576747415015236617294466610499621740340442389840813980808874628469114763275137585332793484831541253029361034931458787916698130644722422595672815909589597095551514433653196437141871291914002249322641530956820035402804621779956708452878236766619730995595773801403272981216158387417325226199025085697186190153773537557501224431895856988505851682404382153623027492084163120215785643148859431282288587720628826708713439814939185380054761248184219681979786952031485363704678843820015678022000371500707350904945901499547663579645133363569992840163514268022340651501235006200981266843376862455008627260297696937727043119206757799231454266313353799768519464580564668709731446961685536215486200663212789379733591770192113555696033389143468142816824896519755111121740944113832766460107089596215374052998132266585584242446230078554113167654576259843639959507992101858257300222003390878729054183326986969005487646824455786389102510845480033065972118659439401830152081666478225593077670935643005955434603631146051125784849503834402449370295270438934545145763968080187658294034048148162518996721905534612458916784215084033704477492416946278766756233960640828466673393340774981764110979692517700345895514253265055692597720956911368233261646744104535459814677143029249666633202063562053574714769137129500615259154340372677215614258258490144940848324945279133463543473500527071096588004498552982127991293985016483127747506935038590483322584075103023533813519633048239470120315052430128989314361827027123790228367952829707926796915298110604729018563841797926187639107451578752525187321364111733427031228071332130774412667071280669435162863427194018642995439685829774919778769288044564607776809302362793704464249182783853943193860950929191608370338528588684684698871510505234875634393001290064968958005627439603504257707265388445325759998654828643805185314524476995710600881058302682847954699364848305851205477615348060980762176811484496585977658414294827242249569328801529042347824397170160256689637570617436769362431264365637636978342241846402611692963611652337931903619508716672050374844737482032489056506416575047767544502252876212625618881676587151506884673473957325490887294348854538076401692745573820729490367401416899927465482344456820000520202156386941008690414672424525527967742710150933916799748531391250111511097218184698906390871214739750594793391022406676344435610432108044630556108746149698213229791135936605280475250010960549818406045719357459700305403110573371484754758707013543888973326213253957533059112340051164726635056810951480542418461908053290642084228591403539000351303743784686612188361309991931995034696255314649187045231810132703399092836275715970421092426457910622791520867411972411795467158592995935994922839482486000225103575649302735248579604489888951732888800594186326325821718951709674531138415428511909942524629162383559910728045280985084510816309748295196334060211668319488119941121737423757214683223228535934252329180049114079822617473586727667149724739367947695878884989365388095955017438605821759581576025043824694542591069079431694019886364291694140850900010479229563686092313428981250482856976754661977405082903324822649134158003999736193729432659453369902851195273113948290094268001793217049433466608201581659608551517380977894036306029025809279752577125100925322076233417287311188570257920905831696456650203917426474357330024379991528369685787614117584591504224416818276607851926553433798892541933469895745534051114733973088713272423687938615177562862035768474966414834861576959508969713202526542223315901093246963265288308433177972238319491811730990062694692246255482892421983493420297451224786659059910399994550388766682986977800250978996541826436524890769374075853759257138167907379380684634978546093777382916843341997183113402667047012702950436938818363727125381626917521776953707784781752183648907893542160835348214883009867629178505399737041270834076903123208874579236908398622697475081491545613765724404262903470144009105960974031554669115781477595656517835732173363453165358321820573878568013404429029397635262277943793438289600495963927015333744830586771940972970559833206328662373778650431215616041672843370599805887230035830449627921169903039404810292887671171233467352010112604398536770557145007160292462825495371045232691295901533362561213366107326925499196336611261335996315450959987048378657092862028310118395963998373701581864353654778556282797654661318174001810395275041576014365724657225060285933403819624262961917209669440436235961974581432216477062814275442924518219900515638632335911516136867654866366990833424490981154316062259230971039860143500784771305264481554284426689890871789444991864579139263362411538215878008389357155879824175401057466195866258953588162192509837508158333942609457665633610778019609104263637667967358996732721130403526718579423668778411490903943456734461847795547091297082927308794208565591577455297743583664933078991368494184502129041487097857464229057274370014256530669993503471649237000012361394911759199956022982686086626953641502764675005270144090408411352455937987164407557567350479902086658707914531522501893986126502007711794026939448399362096031929925737728334605865662690192858115036845916399777558344435326931226940928299889702672751708407474061935954448291413864317249806981487585857230462015518778515860961667492862186582456531935850643538131706461971458482530092601387069229341443128690540516185816732276066266563524885412844002836183563854519939072715371304482630216385852515766873730040316987839274870991596146366252235094005697996836688003572023365126892880855129267380623199793593419131191866803091061961144787734441196349959461792233769928669946299548963875919393805216959034557719005287384406248719318432386627041075288439925572688439261008451109542114279072539723139049846371376944054745776088093354430443365624352873856237729347140304231001560211874015533782151300977104870440419932361635901735216757224664124750583973643698105984682822760994629738939865879840444133766463078429399665481386120028780400556791706716021541175828861249991003651721615506769404834960392243928658965359549547849664837351956280075553088537393720230005152830455772721798564653738808861209001720157450351558385874520874496702453640586025479476097705095715857719380425527188845969071334187958505130481651080063771680047874210688365876294692711130507131564212557470305708607468500991304184528068361862686379156245406425171028874539900209028005928341837452079552797379313738455261894413059377403025373810592322415142738574047882820451497213315486204066946933290055924107811710170939204764170913306902224661003513386152115128090465566537599978375917520128883359562799092945147757691756757715060537366403396787342309764686564695049411765665990625378606749493444160041074008127270151187748100976328200447491014991226207165855217582029405464891478284371225681845387028729696295260138702232709772139186686920567542805630968991443259944154356765762425145607185837193612044247127407133242425178770182889207409532319714054629201212266599942677239796863445324792726243756119010411857578868016304810305842609926680257345227719813513088737401907443533501443075688660537782765855965785766073813435507470545623042348348749534938890906497815027702866700414018588156257132361426190171277204288594590418951111966499366025272625696457741888866591468804855041753665464040446895938865395258620308248053975131902552229878551625491683837843499397908048701605017025893921951966273291407787004943930820995215461002889733620435356303292628302789999809876221744918328430359032125526407206066243910095231490480304777587945873982611301352050814223899359194167633162917570845053576099544288737532468176986780958656436667944023351173542314438787652018156334281203586946098192105565399166613606661346269660810777921638075415256162807665305186317516668136390085248809753963366726872815081587066867089365592424926221824867020438135328881575163805743247982082404349715878871142933464230031148630839474736812763139976976522804837044052123283810671246773509547564516837707750928875503116192303739430701390994810567036550110754912877698389968622629075138460417175705313274845565218873959092724327784182507486013955416489663341177480885333078435504634730208380482179474130136196177329184160024261827571774614477992504829740934073666982403477208991200909916866905061496414178549906032439701707359709073870826131917945019861689372776341328219311259494008343800064053088046990855153047635703464818794318267775471600116030476204891036602788239259779244549677001005016218517574194973326282837720230491047150773900589211224303561330525042303822859843088477467751909615769612304989913785226441134133363413582875368742008583128165409617756048287365322620515371639726981026612721680567841777054489954998903693228026881049422580468455357606294321534803773411677950429336103507594211196287023491907507743494516984642790768828111131504221692162087999551613292857217719214260909304447710693694073488672134702308285599480555799890158414760182302918807135079171503480277533044917402201437967228956549332057334684614712568297277785445556822924469411788002924197705252996842690532617435796986655266774861108836897445686319770479119013556381067974038411142079412476989725489401516484515695404266401742466935496254729223170586133839225858385389007770352529623278811106732371384126179593352755783273993933939800175654520306065537745630344761698390607224032159573059393569112884352573574227441806113878725255131944407957136574701656825355852804269466748580195586607085294055692174104096443547153420351973630725939743776163035787373228846744786432376060032176433555382395666587010408895004626241397850263108981573326212250978416911123202808975060697896829934138521492937293427741227472825145605594877827146968338653237962263987094492086526889004598691017459990678097149954868662497387690564898414352833576645210662329642534643234814732360472911353803432884906989132337672176308998078306884181299768076090301097252329691373739479351374684718367886816923360550319135346183721649906503619039246319464253025735222100594255241867270408961473779249079681693110160623058077161009918412142836734834009198523904693205180945474633514250878212330392386121698608665148887259312122141725412569347065487486898894091076801356477982906033410369454233920211501028130545100098012143520409430515717692299802541758787563007103884800461499637293104362213588439934124999759972025589577758542080102413288748395628439584513843677137049687095687127780938394864782636510755134866131996121160893777561298928115766847519183621493832248513229345735315264650330787405683644865224138568705973829581716771698058028986688560694074473978452087663830874561180261501341284130856483711997760953045907264717349765903319280515773114842689342609792483988562503015223779292743205527151991591132993778287066149663534386174464192681935055285152967654478776308382693735657773792442823077231829093809732860503850725186988362362150680884067221111979033826114730387219400468013616204872411483032863057327862091943714332165244661638508492747914791988642536657362825145113189293749197068866277667524018403504232746858403992373653355364064812732779588210470333525444839719627333109141169932981130677652521824964214092160636124389687088351409432248777731953779955948109488510931552456017305716719539327604596208524095599426372395443158224488051689986384215185949157338809517602067416408188983699805718009856759590720171748592335028141386057914318602442067239755237227828794349725793389495631976686339803650154163465219526603967177937522812473174456962295375150156149493451562099493495771666226983566450348905675655465415052045767550307379647823083313132374258755037346109269866904768434996752309083021223199735301237393783685816731725938052154179792931826626739540061805615183674789878980054617007726929033821942777841047631261851668029818174755929697715943340853504033036360632418884968368363317384546056939468997700037691166115228502978414872493081779465594059372996055881923810249870634973552590643974749113705861049236625333391764862586561733314653260335656243493126220429647225628254673614122238624759659904439570213422471853105183074906899749075407775602480268460868038633704202725157537626369189247581023775438235770306472765087052437316784912267269661740279691728998449392346838533821647668221493286721523035442538716297499079520253180986498591563958355985973210339136850741385364949289278934471017755453497565428100977265765742293492952038781292183781801612936692112810793238879440274152167050188500121120737398219295241613837576088386085606115880605666442283149259283787301032478427106722748827729337884095490272121448670078474172146923347749158099899727435097105532788704342538310063021593987696673971977720241509597203802644593948002602399161912005071491586678416030743799885190009200865472382129711863251087524332169276072391381169986503737749519309140389379513124377100619372546827433278338026814916308714398749608438927366242900360662820531017990934240928377024277134787016803427121163412301914697285536297141000989377542370291125810400867445546424032133772105876431734251750898303706124422910191976188069258544567565517758346843304843450529769569915033524915426465102615001332645847152929907607246846509474789133267241978082085043039413530262083668876171572658358480704277381370790231116301118564248883000333500119157279758417405582261628747355043343686522126376295762381110155994644949530947859333932210525636858907694272084445045488016244280927918131711344057420012948371341873117010337676520439840795501917208624375000785819060416118748506610553726817308237598050888449742544250369888531535322669858857211341601616383723514777539397683368060750396422610120173586265855713973054532803313583981515099587400121580559730537109962755647490790038623621659375557127921500668578009501032639665462839280072319369658187535669012592989850413084256479756560688923624667031747567923055587725595224974223267449980569281739045061897985923439113664288696210718315393763556072515637141012380747401859283902615182022955334130788314285383311320810630618219331383782891514797094520621727048577691517788247452340025278535811866623531511243219579123690240782295941506476576457727609358959388953894829095248222294909646687161534416885238326396803533644577782393747990951641033263392476038405639176521492239986073154711062345447170223160840199415309262980710300620458466316341742822019073005714787956537668740450709638192996863018545511416051300809287974565283893180847708506036457018032975563242930335496286800423555309148272645732115976067904337681107583837022051691725874437105166333857128246361737430305161230064747235408794070992775725072427812217414343545023780577779004542669900692430302926183610020095070490144711515376882793046380396590988503129991996066763287519618832189879866670393992035097003403561857481998075772823207592854711212100208409160772981065712394617429000493038278968151958162220987067457028377086480813837164502865225824451210948278989544954778005853905329998176138955296791743474832588281858000490389162204465023540526729227784959499082307227853689114749196591452469776463486267956821430726005097878337646748789886828602684269284746151317305595717302039233886122146101675381718019209947185750111433045707763901964072467599035430041330813392749224010540261457137699385333148957138428769702370142481690424607144721294633905270422765130303916475411326455174763807320356976813278170629661832640229949668949278994338353691761899109944511082814795603952971512201063472788948307745839867128436571988346700614311255611399289986437217123732876476816991178092827803605085865246481047977272254230340436449820195108467538451647017471332022389320783387160563900866272880950302445325092772007464415181866237234707939260457313932823941152834317361250075164199102894943416853088382809780338011584345159746554491324728282613560901921940349334490521432589581253687531916259084556720022747648440509206758873883160845250352315156196305703052738964087383242212889719428500008709448377601725013266884337478172851025539360054047271028114907313647881601133189852870597836494178263151445372197861377580843188058163055672597060654195114072656414612009502234066410227439049250509021312474954792993567788568846813969467031321532403509662742159016822603508480713121685738229444650000224540781593141959741559699652829603239356276405622408614648569490850576136125754530053248601729708996433095489019292347853540862744976278165698147809655230051708099410514205782618481228676330378131934037492344071776078297106631035680734867903357651323692990999005689223951286496893781202188723698444832998537404123981787709700088018066808723818459834946298366623751085220747280446381337568145117391146329407577321942517195303211435109426549747613803225785090155722051681442163013782015971751934497390741145597202451576530430342753705628050240535036999489714201532296532737726090223713510636655743172793955574206952415207101319509887693867806321515085356506662115605480974155295835659519145468729448609432900542698650105625883340427574121383374091995406648868200163469873514535352165858168407213901417012623120671597095730649466921707343687751812582245067861800376628238003551896161201897952439952335007078076141209193892668834702172329925655298195867490161815949546133575896662123310057029403003876712193110033302664633382095695636580530287957023457005070012389131947331139226857175202647731948415874443306572293020949627829762598429209208386255964970466374647099089815757290763386406743874422597399561705298414439737670681728665316794752544797145582025894838077337795837055118322853469024916082095613019118609929683390366287533498142872681978724600110141542958138930283453309080327682363256598746823131560762391946038479663485857301261099041783421656051810896055964786248285101040029210161017983223736070697990599658235351568718681458919481833812569675764311248524844924584320920266027316139861957389277165219813513933253402781773082173629012366000426941981085212146013159282747720210784193149057369405874696538818803417709684814749559778893410628045007350688776161192072878641814254424910378315790112579252607581490788718522835197423937933596407521516799389191110804449372396208031372825271435711190343676177761798393972715668943152339036445708204539219121805090547773697850333041500918885888856107977891051261227894288174739832744927146477623973529530056401366339688155201232352758065566378870557172547146135125437742270412980768744322741096731610936087271430443972978545433369282507471072698034943667047283219243315596559723484305286593753148865916598130734549198103171069664196422960292634567504828399940248507463551332858689462746351964035566486787769110929777249736713992192987622754746338413893044173100736348358911460445370850772212181994328274543281288532246126769990223081337160009325042402425742999143087605039787361110529435694656875050964883649300749010201527099289586060081066778840733276544812947548719061530752416420927335561797572627400569505672314815709401033525077651515672926082710785371100990577816486903198571133581318192018798826894996209868782823343817498508966168064591710311899922339236167116591785927381549022439163727467440821556862840571728752368587878706766509148436833739313005229448171161932776644366962543106733996222055646407707680397094967188985139656245214660776196065207360328094187417031301169646041329116710900389053837601461767003399159337177872823780380382215084437545815649458693318621629010554558938219755641754044346422250316426679606986653791050212207736238352243829811132988535902291180194651186855415577985195525038252688963500985664554052487201393481748322319337144330188428766283255567564854888466419904911499502398477558163741747170878868970486413570977962659218591987809679956746688805372216090319368076831464002655272758967142370025059744435608726952572536852538125831628189438899195976744293659285202229712803680694341276123113159788201958454756457767045362199825407633121528297926136313840098535150726568702512036112831598284822244187114789769930835881064143017590220165132541896547184625196120948223492034010565147111654100149051026396774397977091332494735645607604837618609825642302419899855641382349551218297427977786020324952760688908536351996258922663102147581901412561185892291253926592986681108120214118784574751209542979993417879939994787446360489845072765018897255498819211716039725218906646324830082566497948393951083628654995903982675124802401752965838826949662681561444602903528656240705586555954783650208182450875309176536606222193738106362357837787661344217331657080442934569282124332674603543372551240050878610968830338457194145905272755739146440569850171411185637636607591754263499576878191200469273899196432315849229892698331855424831729316197133491005680666120073411736788496972235860593135022432543082814626523901685732257342083621138976322211160658813833337667045913375406869144697147775940848558600234700862259231311835990438496320997540370716138716679874588563899330405481225403825917684835474567116030173344413026381897320424947048702059244918038370153730044978505815371304696172880738504136266722300916619704818267942476107420374474848831848556288019194525326917318538339919315689505551144946848601676978675468373858761808482870996114814973119416574171179620724705031662574703298176168285560980298236705527780144417312167825221302253765477071095793671675975348325500642124577246771540874714918890846495821181524738067793880275531740392526911094397755704727781854986272496964229284114885347357954592312711079865582417154145952377890491307935549571342535611579119122510499374490443629905598434152932192291436391566494161265048463150393500303213188511776582679923190623763483345824408918709431210737810852713019276622429676301800039664210735120747126375211485165189936480631961870333315521842907203142780745996619180138918578040891907852058634772319284982135438269218345054001149798030810678759237959725947744143248191830129732574702587708731554240192851347765836278589859774640155845528205879232232150172546823503201341701005883103657452794990199673324837561542572392725053431277665068778684526556305573604500324355404404076461690779379237175860460084163917686653177071505371995053488127804903674282168557452746308825297934653388619512058853629205351613230589951595914581217377700754569744605110336351292434295534722083608925243721135004381618415128307113061171367162338756260826900351569412029452293126095495240960328080954728157082364637883731081666405108888125776101604616927577691205374008525208522227100243567992361189624402296272553490504071597066519317567755562814915212958852305774731925651272950524410271951437894872949544873923582531457489334562706682154988642781379224164791219794617159144623797580838468117106243636584952531833826929561875140678649343231074412331746172825885933776701631444099315429678335350545444581571941483762370251439005176984056875840092263866813263749334231815115866059043927161279236308573267107864366306878252204648586781207080730929124820911956750067026925559855520729912527279635401531463543108914553554079283700808787781562905235242283067699445649057238684797209558723453097774915495341935182712237595477624431575250780153845802187237496025818198902963169528725494961232588590094688591573455335778508298947554358984173727122013811928429003687907204329902845628472718373236671080362919702318879067494996257525648292570711294079663596896218606321066869666700752448283689905419054405731187924280618634583418753686426972702652708897665798597478332546972440586947973948076984552862750484755288246507336222051298177626126698509461119858202520673669783697377541477714691635816346427991815082229294741474444453995245587543795927774462974403683291319717132308911231134343081647119838028477038478281222020937755687312960071650100077469766309219810501193092598249735727386916806539303646187216601442673699023359591071356764332710118648986408321765781511368584810137262906643668273967195624802014883600330670895351974424689957126068079225283913857882813133062885844272075978001731225942685769656909113576026084073408537845300037782733236510571857806764538153497035111761786771035496332081937705235763721203034224322056130602318939117445381516904101866892498529603995700834182362435924675233916217866181178874971217972925539968379336014047519289735918854010424881241694676881001144408152219348309211308059751942784972927594419990994161516857926350613621009019842016565323612865742059897478536918520781137910870047120771694698943763178360227048114421205867680914243013651922202812846624789839865836822582268556894824340879753480268521701776726500981551732083111793759049283667772235995293202707706505296747060326114466246336031220034514003366924496136430405773626921627654551019971876764897430955712772883960385474617878971097171459980236473763326891986971608497990503479108727271482862196802946904858106609460308605294684615071929172622763639025615565167801898869482373908288775924604202312679877006146155223432358206449459065716738775044859881225419906518851861002928971522490581440975095578186337826051473685165416179197530307766214729266620129580830204383965711383881798276423464437527831177202055833118059065303780205018490307595688283045996232788384354333950518253781228717299771283405705051148565620360460756087098064475756050663476031911166898657097639896549369880535959160156649603439960993254290250522409713993532242615898479123560740259871126540942572072455487223801935308254974056631052648559751907300129551569514343944629277993060140905250116387489439270721307954468220122366468879498325396342054227281101430590050528762106113487931901137085649076357205176490602850506213674315397755465716468071794921154624645719511652700343476495479408938985709347906324409943970485294406285923303800512926389556241850204286185376031181898600121082914127966229921797836102300893098682773730365673732727441165275360095976223688870682635466789162523655375249969124403369464520969359799791590174565159571493384359326797997298471448955642003867208326857633775642802113917931197895050791844083877991927572955586530460738992147133907871084293213525180836960280190670992936029155595731739422946516287874395812533242049602050687608086515051377169319232102714638729146617974412318543359538581310687458438245160240986526184538579332162745804697485146472432822660569173558022913913698608080459172156947867123051612447523423267177580157743004300761852730113876723781445277542399266836454337416557551123893649551354069331828195408064253958320978108487047408341869405161541099754046326033014676222898194470890464054640254188585095439234481031150637854795313758753923813390956215145757219987885233173249051839361673270768175576867686646563088131396318793081491178761303518189300763086185124900555880455912384243820732427944075323634684180168501432875293356957128495690346946948156790399656324930593008854111540077085677607473676937735852196921510481980987363069534068241054208745138747674742256711398936767173511651100528016121223100675481622035790887063248516537382494250388465828482699546633675793624205849870019618611021825236900483262852951224627434298150922938327153985179789671804268138283039011886617648039241205737717920812521916693228422384264139010193334803897487151657164294507863959255965667465431919813251551206770161833387611423670358107495584353660208226386913774592025317902701637092973064859997894832099510053794578030794122727692605189383390213605667880882809569473499696668423382283225105154588697059411968350873637819579990087317872290330324757884800028673751425077063701374244334781217798314136996772045420337681508572399363584161574468930469475418931711084071888055622148119286915986843298151200697287016888096718980824786875262280617801463403077775398638429641841818708359348960859281137533008376883897689468841132985434171420520399131689138482392780600040519515410785573333582407504620752401728246026322478639179460138234165491468682162702178287934055709999957917579247600957509293600679526311172063475424582904213170771021681612152139077854007085744958346533908587663098459663908876212429743617444976159603708619322888182276572503368188459147963008793266532023499908512361054590976522911537933951346567011895579960180381993124779598425846690979196031758697822352207124588324274493084997722054734449445289649608877696500281462468501680182914313611146333093567323660647763096792646214321524101196944874995186506872764713455413700760794423383012018212876158475581449262313975987996325097234859364205132955772425753270881167106435482229200236654816423998257312430028754686204933565202898751396486360495799316581875187357654195964363435008258514581173965794167172286024628144016137738393811589807839206002269613122782065474802888678895597386515134459124844982574791103671853545480724977659657022300118175846974448664173329062189752034188606302785719523087637254130655595972275767887930442232580654640683793351322415158314474885184270990929382811184413769295866467071451956722035597813282454162194492208961535538366710054688672021665548567218372813545763721569280435228890247897232092989107589948507509248067822951372354104627041945407179328792199491139565482041732505362812931223913676646775085325126128614073601400675059156696020187863278878341582341875709793507751371613438414667486386747043738684706188937465756287385113775167994909402578569126943465472630331792378711955954762028641057527837873474866436342214948888150163159834740440618847136663696248405169173451048298969998371599562871331810239282197173531337531981864279094679118406071725544869344028136181993769694372253452310526933391067918028271723954677087781329802525498598497308432755879310477264021357016711720333341352386845656359615948558722526489033377824812062857923457845435437666591794364286263691333275848369789932038804188055635975801736137750776349934808445866667181776922724886093538511829052579496256437206650676663046869362405531626259671217304604944247083611501014567835764855216654811319334704059038668497753090702371677377895793582452806092051309475574860749286197235782796118401243985229729051294706600961136765836410353844231572211419214852414198769181306400194637230306743933251378381889849810253378368676709243895982124946438299599473119875764527356361464941816189696361922362383438367702989625216027717226295197457192280651770062972943753334837240001980480289775309240701446849116603679210774293320069526848363554883084327020365747902383064879374975570155325109219926170981867103136773775686996409477661911114746090608569934456708553329509350206990909098565436855324232567121160962304761679429517045977443382409789402656567994610872724500949712999778495488108759904383681422047806076295293158821794663232373138086671845619846930173403876222881209737931992083139827388654856593229001080595724674003237574991791081034920543241661374069510834311239094385452197828388745546969837699458889765934227249190958190293747537692680930876707338351222714495874213119626385003053586246127598536088435066252899101741442074304809793085845970871711389912878536698471847554338571889634728791979024473272854642505872059703934325387893849081836567787759382590025677706257658309569292007659332259660316400820021335622601550506601184240829267179482811020792545095254918240026111181174215790884041179031363923688880699526476833640587290379322896909341279914057950615462960941758942522455051773160234448138877710946486464131583627158298253427004090397560840105723058093104425224358295446319759209475066516781506568083496973649462235696582068740259408222036899085209231731481135516040977178264587309657262163951843712365530717662849692800840976434300546023581862985943659114040571848415279387933292373354291523208991210638096682635838981121058586029480841049425469899053659282876833068406778618940900178510048348359493425970243461389313656619045600530273334701743722067736320315815430465771247742129938589090804024244278121004983892330798406705257311951965799013139129325906855703976056998620348710471810918358126737715587118521645425669347480512764864654259273231290363168194302887939083164141372735015282356648806922482078595970195751123454951439903556519890900808026470153016340177524177770539698171367789131538878667136758690299105250241857279516406877213820896202074666955979193396924938561214898341614764993674566252213149375485158772723294800279743514917649507961300693682380636373326012319977155846228440156700617417587620073916087708960531096826121540423014401333395593479705236822376558684641414561125670230490536439004261986086783974407134422028177915672905504620603119189966544946582068117298302442172626179948652134430664559176326682842700352325922102091511132359044418966298018544303246488931183548114586058152788320852960901131831221081433317749671200847284722134108525955356192920188558324431437397894164564852063501563810956526133965993622664375917331351719251494549883278002228093586752953539220068250819835498247848272833005314474364749544518757644770182047614642746606167298150945639744313916874455771209610400370471718583974295107355855813404328412648922867856965273953664156561129188090615575313591393703477060479778485254907322267412698702172346641429378221414825229953721325406665344704648152786215525417966097991738039597496087737862088498385347040450729511494371743186198752568449559980504687265204310282840665833499218227899633660878982539509083942218478048672113214050718207545282791796887961265257411540675823982913787323300478469253788335734669350840937706196808532908215694442434024213911180285383044372088490640142042348220835507520913678568955571844486574766491633389696426510066393687896552325763497092651197071657800077328322915565973620536306329233594512275916621923060238714323851504755358159456782073091851656446909343725412486202670415744811606511426621649574321245276575045255900816409934558930478831571822557842638912872140127792372552383858115269392428912250426830038894592349164346395763943264969659516746369466827734203985030430601284235760140494050057042069476012166901658264332205506509367651939407979695460539448968450715716536104368426898999577630504693868868265596212710747599568055550046651884451874930573644024880328668576221736712469453298159431372164010287610107955769477187278885453362383313288456040354735934545805150951397611368014648576133027833981663654478087443612014355720248697346946731377159644819145155757662792427469383537486473401936973295499563558223545928977921424850941495176822756561517618985908281608240663317133491771047137013536020203139742794450472513454787998498157413707952221519422625502413569211305963048506468493615235078253147174231661541741564318684039609016887166953493228556204474763658567282522544245399184900963869215262116148422275078970665477111678324204271225681689072848411730640730938647301000289949139193870780728486090667380828948849984714872296323203225180690531471926180485463509690881867890356212807669246626970188509125875283211923209518913104898994254271606240300737189050119185966203733245946348697077143240361388451446337799592746965642152487752002142313894436209770063221191642782546113942122607415357898150069665530625202881038787810860408415223736286024815439221182271427083809029045732374861539241685812318385414465580789885477210288692538932215224109499169986651795234822939780623173481672383825393594898586122188112203105756448151352627848706451703564662833139400451394927983015290584507713807476617201048599672763412776775692386452254444025234508195539101751313795909763303344272089868868417395509039818357707615766821959805135259347338103384292314606373886143808812244182735696439058900509432340804959208918994923900916371206301590794090336684516092969923409359668682237749759770097959276730606221884712825252833907847698373689049933646157799900054389578515759679335508025592392140098997202388038788922919712880964344706427958464050847697174752914814148191811998519355142016445790972117204882632917315402332592311051616148217979996607079997741229810629678512670277034648612059929374793489789728939345133442877455598831241293743176473926780060339904343894866545441337346811637773161109289833752171877040580896234374269930933016728434220762865755807672279461541693775951052923588855501895436209679911643379964007112387758048022265689815937937917385493202582013928549044278996823675334663749496062601237789458507879705115508286373687704580402512259135310181904912485512820905165952442240027634570759946750182476209364181701606144569061499848124682168817402485560702275396561074332858943194725918170014437939835994630342401695163277496191329607046988904946710247827638417400909761069222860890167117685989761665723433123505864685373276263141760005362851989927539943061325314490167518472474729390424190954816451666381251989469952792239577516117171058784313126454296581917887307827983265331612813051841549896112848675719274449918100968201004228966222862470750703877747021798957982227617152946520954472024406048927880530592482904901656864715665165752923759040646707161374927879579504154614257147544471682015164654444908142470465382806908468944276727199595024341274056460532498516352883051777714978310311378952049667867136090502087901628926565432203174521213848513855474148225792259854576340868689471262240952988488916713420714313461684759776223957818067836382382566852523636751714043142053809121748500920381955177984070652742022899260807368525482256752626232416081470601077982679279138587694383668321292669272902003361862053383126829785002372909808417066495783682258222902898607149977592391107767145023590337069550457601153882093627528627274011818424637590491955500235006164418395811487091430063892760259586984310337688405423906062459012001053644619283624399164013293178034178163903297431347029593430148885725406273167733936017477386575098678653805138473753731149957143878475807816521277744976408622706211557213746065650537128176712892280937146083307739158618767180192869573182913886305661213164971299557857160749479984168812535042838839844257672859246473294234834685546087139409161426875462251429668562409752276276399457138780258325675962994684234092809370554684022438670054006438268601482894681869923066856223412542558400825576039131455737367737602788326701073593370096174738496169702717547033323850360237952258431705259202743033948114783770050414411010663564294127515270139422131679851563558748724713682912558855332543663577145820340923348802639821193503045989989945464134300106729716368950843990203513009807916387410983059657244669164715401610777472696635691081117426813919495092092445164827653239849553248101844151999646795904881483739501409887590950571426195754264352251192351045026110508931709425079961019464848200087692090852450639978691124678909738332220118642960191805071260797489199184263006910798669170259546715278535936558054738615917317195576178660767869239863260906610760075051140380334216537569648194761063547975077712209136986624393320164601277553638970746578941844117094638551368905836546661054130424790225698886395954989601183234917948815211431121513222627037625298032005866405132388169823981351408229484177462622346842777144389586236310094721160719145421877791852074614858765456827641006476372087876071713112009353997978531460992896074294626255840094876434813846635959583457643567265980862005641796489316851384216889636694340440784861405576840441824596228372594643296916778895571478348948977829213387925382863959698348392555710071147321443579584589865307301635826591909086533841238650482894684697549155093915947572931200821458986770292690972304537873409301582435994956146824019237893036436405851550355621994573877207826543416798845094865455240450008864788786782921777046777093398983691298814416035468593410520849999162892102977458036641980837632442835747703309335006326051273838534885128620062364495791041819451886291118835877728665771353697698863768404453929920032589474129084726108790505090601815282895136392619955142460656508529412208495949177288884095165532535533683099545372769619175126565836627937237276314224922481661161605179606573098635584565288392775970948864828847224983990956905676859010711402664274751619622015383265074064840112691748408114312764764542445535752655563450580855958149943746102028374760333543344648835582351252019096193190483025310181697278239052051348648018689476380766477372066944764958779672403141676796847205759902397529746888856856634454684620747669459290792455121097138138794604535889594461834440712946175107348022260927584903574468095897275427484779295604239523914233631010684227069114344940668184996722345607245328165664725192634101324517810322764312129396237038986334670557375413351926877470287499782295207878322292257823810411754742596658568962093871297083413820968758149637703548417815804793031667083386083448263395499503894110588372467597464657608247943476272174579884922720649505436671048818109716097003613739709460596776446390661690488034870543481986317088331111251803060133835311556987897624165888547357270608797531279403423892431542115331940759394869399734694879742440368684404603475026879024987071791674546346217583158912110209167701179008323833098653735205987496195446879390351368869430185395739862295759899800166812069470901768033109862084126968602422670467892544131674384180655249608757152227251983803502456497082229175251631701894626912925516581620188819444897296854992102797339557308619973662213645435425742153480151895877136932634959102639662843177512726518965797604608298639512615677808656318976812294628482504521112700369532738571023534733805180736904291983340154812171021206056344906701162744614590521411680177936341483052923250858862517800766175676296255224138921016194189397382664639281661204611664233144482749415633444997883712115546604377726549762037023437262191581362720985216315143375972713040802067637813046869694936395275092342163236668417715760281519439545193689425215414440652823861406351448364908854328774249093388570806717048232328102839534372496423908183994200624737405764980984299324604686870769173829907483018039584415233786805042585972471721064227705494713898041431974971505728410210407733692224378070189347169224553857054086957264456478862610957255750352820650607206295715771066083011349403829036253356085268834285995750962675207430379633200658068003259670580666664437931753883125850366341470814674085432157647661791169601788800753081132570395725011592084178353529524770398403225345832519684310292963271484715779230725648541016833181729869049100682977349598009301825927394410537924655851381514217723194682952011940313880007953466925660413432791382784011514781582401222566686309239752170200345496284430597583793978137428001383927732238705117271523696468832036047558799753263101171327473889773841235276489810656380420542734398671310217415073631905106312261845285048305900747239983234632732438884643415033657924370494844217114904484599463504006217604148925091120093492781977547876464975880720398450050543620973756657433495423512467246791857048599598863090835517806050281179859822769372917435353592100408489942126224106316420294171983976966356033904224531192513722131012832969260846560829266768555060225226879829109668227958949676096777732958555990162224878291067863583980980146861203491156277276718356653200841242510414360532063189001270303620025866340897129894263720546367960371900173521204934608279503470460275701797846876166634651555118739138934829582377478960000776564390503054472324131743781344312301697427572793848316111013786927039073284561626391568796129762597798441994858302993774184902543357885168628237565653327287179227412640326266375008058246110067342509731428785586283548855326119003108180141874412493093534677802658935632624548198112925058195466488569731682194016505979290175114803028973417358265879628438043115336606506318677134421831998746632095405412118851637919683624260974206031881088465224513397901503433258678407451230374290313268682298142504432810742032217386613003117539028158136666244371159442990924053334688154449726043059258888054578262288334489259916243170461777908418909898350652168617576877606640368607529760921780497830471445130394050598441680021419003978842744827699889453282180389649086703795545173123388672938477518856199034225112353730685249144849251727532828335623551740336548804988501876148126071761888236866450060451001800840061767990920647968306306794935445524384292039912726001391328493866912557900826933467644148552124820721005001950710319100366142925234437986561948656332133785448452055766520061609006197875766558614188668107965345121568273370997164105900958790343794099491566045684141281096661514886663711429234649692786924399307012155115327136381310047221534204982716433879307615742479674070078702595891229599473924065550667969792283090389929493904129329862479155809442887498114324330543065439223813838220852714929068892980154063023048182484036612241901222399651898403179048129308461847408455907242730348692238167479240042979771669864029130924863006102704909037732768800411267776151613263978066285435764814837972736723498240476026989124542464989023074306352810394195397649257301378569517552118925762839033541041477194449915792388614924694501688914787701624565893168261719700823528225042001812812481994123446498876893914295138873956151229390905429402103707336951826839727682360761221443631935330967596114517665184492496733952799682446568581791630305455783189943606007630778137939918867687876909410066550318977980300419884163424381970809339514309449355103993122285267677098303082829508949001062814436622515083442414700713313998246699514357205612690813917805811451632930937173580914293727409591139319947278823421250659123648400329724759407358184964754306865820756853265963915053696244599319547157607458748275230770805575401352834358638348307871992094499521279400620939412053404515942157101017831392994141741837252172995308020990340545223591813306499613070582699691403109298886290147133270830891014965817269389562390442143003402901450255739177735477468741250309443951059129677263220431002353975229292567612908603607432497767585262928437563103078652187284279359091254956333039719367183264398499199265788175792779234895870751263880017266876603913094568893226097949266042034945833412629582802232513148200154808401942681079350064107042698090037758923419119663295613787764232163242051644639947200150173407879089407761994727269906157751867419306031320808734145264241599638222935792058673564656637845134654744201825544716162461917378024801536037941136625061238535487906037951330854625428091244784416214756818530540396121270362358225524544098317041314713927160855625092548150579623380359063317045352815950384460112613237588939635264776510994591304252525668294683391739986870981854472496785023771783864370143243265493559346379300419246702066660701761255492510527631590321936009820123275387659203372148285856869755533617795036807061529192014101317685792141915004191353913861079309335319000011285883756319108153595021337616711619389390330387352042905293866700765969661561185579882271606333923683398036135380982013325253740144784187403880414541655085388570907860519834995568146810336057640050045293287921418263311635573580141229339663920691035719004940760086320946325657524570160864755615994389335023326147624150179131116754057089602468975148351505355200251978926608341490827796063006187863776557874142685088960008965502578808015401943293470944300631973833821147188164370099604616195004394756801501149355883828747260875567362840336754127212810827020855853343515458956676628467325661880003842802246308932101439957479321438069990017877855794956009457479194031354682244535767604638914586650576032820107167743063039330461702064557226538711776294769255579397852976962513110994143404931436586084881661120090978286297592875942607488985430480328187076343871336531684050522471919837317801870878640255058315674763838905952619821352540440729496350921450453636845820647395394671679677558162839274029913587401126230520550196107932987761245019147384999978649256666660695019894803068654365279349308503835545814628174798970285247812881746524969234627385628849100079493812709473924054864376195149075356522278492350324171683443330253900903539329257670532287786305994994852348420445024330990633354863107620082070310492937619782589997798912336749552299807017326470536677596156197851363796406797611552103026028498973420275720679547188037017853849533468525247344218434480328272038205068860334283237593847420232240553075804794799065664336950967383633801068276854194599076445049247607483210484846504280848646985748898866888885473373645664611624346854376740271477830663609831644082565046480665149740403173183816235063607143780174593748032728500369638141878482505843468025392743290104917729445897545427022531766603617529797741395680005625559593005457781975024318019284188494624891828399302001897813565145296413730229162481147927537047394596229680903427717537336652965562713017408801682950737145500390050973639440862145870539865539755703716298367671127867745055081454468461394751661727479537063788684356011929493911498102106930041591028630038222036486785150906156128885805431830890232617601579944308294091566900148981734499891559071300870459986155404123473310850995578957619708019708486575167302165905479519921534077737889700718456376907774506391788103980826306608810528497911735090261261336025780360121532181522641434746408803445441285246839975155229500518300914039601850253219082088838386105973970084327970150913657168556072465470077326807297338668247360701333507676635836310367605956667617817495798020463440995068159331265637278971744914897640686784073566723891012980536023167514005035131704494772375395476606484973372868333798843193114624490550563101161796826098429900395937540764930217068867017285206053811365172381140361006233460769457574075426861006818350959702270887718665710436606657937871409493706280374895273541741490768115756047915307232637235018915431371283636185485400667683680071224405452500217674960217592605196302388403691344349025439936754458357905598203427038678769000712055536797980675909140800752246019349075100827182099153172155563291093163812853781575260103831974675860167395361364808389969815987166535879876140921180682843686322491502848082122040515388891779332441271302505853536402713894673845554794041511578879404964575156652996476245818556040743165150917051565572131339435130120426923785141855645974133508397088110098454253618382667647042915469114116533336125816369022026786041485610319580974047872725818122991452536984641397748032885821979401503262627582606079004603860068981667622168586528352466830252528732699730241393759673955491593529367689091891143054137309751519823990262550359363633184697945252860171789850849623682362534338696073391448072245794243845484632705719289935773159745011277219418510305087372504343277770036945639921314704978570247772521641417887694304639427830986549418615386979198592682558897366217874973021049464827215308176159708838407537452122206538465592515501276844162305935776106853941103445519924400162580495235297558786524223145546139393593369960698474650684547349321215579775229836357553798751509869219207798627047421720841302319805134101997360354974794978324811205871137621033689963091929632189623646766290778080985100821069082508798563318137919783106760264655700775528650369564078706451893664688686116589588857306045109220345978291433354556100583305277984675358050334940607480590905313405016081247547949081398161766278212249994977546885185018429348663983030205185985391516562147851866309241057869098370337166894400732234449039052068791088941108237233511323524185005982654360204544549551439667203675584449495310781558440675127364309982589791026224438245954483028938502222470907670460722967520177787572202513195170491060848915127468703455136557629453508841995598430001424593935859342204954869801114924961787203006952952759227385689397363591016301514528803922719670050608524914823776344276438226611061603924475714148302460017020165731575338873897763374405862953066084571906363372002860612789198176088842502713901065805350089443739485838653342933824647209716997503241869175607780597512709561055076919178965294055518214951646037608613179257210399152395040823673393641026756663514514649463956509684148231725955278868922889419420364064222783183181302261496187267466539351200057279659445021690677827962809606887541053540601998448365938382814497944906521030692742160263654248153320893180590675463966855921150917888739056359208186474362028559384790328791378107487317445373675089565810674126350943621789217639300329140639859309410224493158010826660938474072251544641182524552637014953479561845318887396611712749167224529867899064320234282749442612760787096255159116318666417247275552412107156503004177640277948045706386797011309425661376524557914780464032673409133171246174035145324522886028667296621537462896271476998684718732725691696686623431879592520318410452989469434482006640509337223916458028857671311499685358196701632140439576862482674465975437635310625246401613072051428767851732216780292068343915772075468258173121325901433630777928010275763795365483611126130896632660029481189258619007101006734934510455758251482795064504778860653428732611556271446443669784359882400699335755598237631493723936212338253413249139385887626153437205793763058221821888526500241158948004462330671895293002382366202434703856957135514140697033707117040162096787076626587496236036259990217450834647762346290374910698748453820504029609398716214602611519033309560097610000627941046506122749392406270155457118309554982158376340068258219198308767836063661457147467187024017022336130305253440513129792218029167734913936846379185765276999903243895390334009426949299257178627561928589986794967948697038151890281543306847850024285397830629741977441381718780478878389525719747215215987465835082906142688733735386085644794919861043870926999555546497545088973941019757034657649990543541305316123336776733896476194691381796392425629395484141812274566171253020973081157956664752226193225117724771133371804411483048541516959400500112658841252298323690193308400410082485628113575525241412306425425395501360878042430187262113620599654208227292886319964796945675155684630890931970993346846737530992078764616660119051716559760887828550389344926425316533588720221296709219895592713973647214067550192591056458950011792154875518856063698870228262429981610294150153163239179970385417548717908926235607697590121647805199552401784601531569355145759396235599731731845535692078382546542286562999033633822269757370473200734473128288366399551096838498156843969770781456532971736308978932353928428247971059586018294121897486586168097416946361203962329478385279211683526695725672673627872832698774133653241877492160932132126806209743733651839703094044954691446781649121629335653983175044935458024627907287457091909279222038102687515279101861508464406113543736631535065609269509968805409261994144599186762096516337773043880501853927646255981741572617158079594252591915669308598353459401197059394497247557203175221787406359649977151078327957279415293839268413190351723212280640543560492107764043669265436984471992838050769003598431101337932529948225240345137814591238635504407341422692846343403824071545025180988038356278831451381522162159572465196012095170975539810777773430805915596357774464647384714483890075557922527291069495085995551222518923253661334380327409074522331812791216155086142680016414074767018525194930458820704942326889357603193265435641578201799210930066126771253086331981965217503219119913206827520584283236310347219471027779955699233270428232936452941338905424229297394258642298671957053210622264619226795646784185463185761250842073432114375373209664309381803468412204309572858805119004784656823686695284600022434172643292626688952120434169957185944265367633122878171081762202272179903512899089966888599801039364907142704370043168744252802442014352075421981033956152123863719721371503514916340293959609121865294790151642758882369015098242952659985589169018106697356459653146035444153744325299951994631383768367970260873294326028080296419088024001155853508697234080790969376693227327861361048473270706171375765179084538187485401898902736148435516938180965074473851769734976660051159910355169234823466448515095345068364115797915559736303832138263166283030034353381346173054793423986323959880703472299071264859037479250513624451992858202692507112625737924865744384361725595086581354502304780993952269488127724543665675159693681586549684355456140049525722029685636464204581633633047763642237118528119603460015217389772095922303068550010259786536736158055061970768265702056076980701654380008751273107057326048476144749890484663205171696432318978395692650465342255022563783056535744704175112662167859420399392003811820488591222548769151384639017711855301225930173066343780391212105952152955583710885554835965119201274301861073874321854693862539837563680953799625769269343948022978778529107922203873114480078478192594593235430845108514667873857043545658361374985533641950457480507342816093970317602658151843276987800066581758821829587681934386415764514291795194645395489492523255988173184008537271394991223179830012593830605728781080561304789758818784308766368803594549676478229008005301408757912238592854897298309515011213545050619483196523917655308225522696061673153571340743217171891461027001097360254505036975976373857009763077193179905957270218658831901880456583930260058028233212405118828841037366010616425052939172126371153464899970948139393369701877455318633842524417286759756252396808258262097530603273351427400051506409526203880486281423995934692674897354002855871431297565163644549471152982366004475616711907930754826959710012035907110277014514138440350502965571103551025551096247922309660426717584648693618206301258321229314534279375987180995806646577829145925246999427561014783644251136407898984795911469163829674136436151975638706696661662710491364869274563722413339587677283800796204620666491175650877892840072676059357742381313905007011483073297270581765493432279268186440010215146144477095224031909382227187340911653925247797425137282499398427068633442611885873675977230705137751218031053288355843433884632803107325457430391763030415578924038920225721600413544409322781203774184864609454929046330302726956401833485375870249708103754930931263167785306696077988338331894715797407327045130402423135257611466690352450682144149038451253295500184208249907365329280495443806751286974930372862643263624716276671057629905007408409499813811685335420513629927171473244357135092274061000773465706690026250741976147621746159534078072584850973259763090978275790887641925599007086048852219667762916300399174032935521229906283224921222269934994713973610831740128114213681091840144478466462170293249924097574692865206537047425099853429396139141662796904052780967212866321251122959465204161100769911125625644750628740081495504730851951855530477014921305605817414686865219330680642431929487095401488579697270160606938638186555710776212417003440015726613160499938598774679900840063452814217164754012501179373379227133303699890840635194809596144816549903687719877498620357060716731990490513417678710565335981300884967743715820845076983786140635011211014673566019718839539175131915178362750842309910253176651871644434143323956015988683385821374973317268239844513595145556262851770985147999709076271381756400695619823820580731823597213981280950893977197098692811694380439452643586148286199329527167283715675428033852641648639209934928076512029930962868093819662366475829196733619332761707626943369366557551424563872702266344151702119734944359637773115255914433229980151802146202453443267100791824510967624833063850121191228960207073485883471129347105462152857514501255107043548867808602907048238901336135556599480080280145545052310220431108576908306603719542031563693277023340326107531880630843120918428269489881827128915941755365014130132222147809937184918435279142228056188521495431659544273845679716120688955270731653715794742767872524026576028777074070751490495613121712005304362907828968117518169431699327785602755740338885472826006235966002172167028619523845097487077225059498269962381297693698021506897818805799425423087077023714170092020712781631933327649902673510019816706846502201188711860367501962825921583633208807236876264735592670214939105880970578602512532825079567390325382024930895369484053597397261887176113890339538924238466733019295951911333853189976260474816423667900584891928516387059076678505948050314650030084268970367746502212880398175387009780736121132912791190483002272267896806948158447197829772401513895155695506017639963987849724522869838708672767771404249511441297514166299450620013730142616082212278101357250808648810203264554744249380401164569749048505015650282782054236324940027665858902535473642957522496564425328610460272920912264484295914198534226118704006466043039644246904346740102004717226795780098437276247934589910151628056372735698361041265035372427272051420675928164281426608713196309524141887873656974666018056790012969074790671219431042111345794984414413336953561104482221175783924103138121457493640456924001903229860990436425753245728877530459330917095882266256170966325250845850390965237613355852184333079552637044092155587028423449255432697191993432664159594541318828515197325555437817150006372665976709968300440156860383574051025412223831553814290629760987594111142790496042700092707383108792349417559566261156004090886358967148735614836758424892810426527397784690748761673951520130741355779772742028543498238704188148666395334046178120414581274404610051633478882519370770509027155697806759521459873972547988625533836970562648637453929301996291336903142828004051153424247461693377352391330029039380743661787331126639322592164035889816433962074039101381723455239737987197441502917115486270631665455416134999272755807991522453266859412933509390850700178031865062592569737601576604303985561512453587542132963616198186435939197288442429475133716594096711422579802629690798145364384907360589077503786734918736316891234627918092674883407889726781876321494200541983341342053182996763192133449192867135033016600534846825585195003297742049297274622604058410629980817650812313117379358702828425912121504373826113572306806980732556063906258534311243100475390345152113443247304597581216504464669358527077752205690383293720487784842315831213977452770195048677758737561412226132355748479037802167267280305180324383616209241577843891379748773664977106574321380597570671760300066416401672663784854359973734561360878023447791490440491083851323807758075797463715299603198160409865666501313028537038738932420899142286027829584837851946932268712983991910452956846208764619752793118562012225498091417843989828812218574923833279144347189352693714993435317028818657747592930956702817373634563258999222632778074481285519895882484545597844054127574065204493407574059800946800518586464206607845292504099019050547318036322013049458738588834708837435207249205027994063298218077183691318646818487162167496087926079082620860797692094333400555435721070367265612588208766967223719706883262986608581092553846033245872637634104203277322781072512914238113374343202107383391666699101187597014869245329073481238310582384455482537588437659390666981978597301886341854639554959859120422084950415373102504726664697951513490457379746083035564804763305710418128575841070943595688877474683441599769918587132771974687402958892477434718418597360721572120324150912427372419031286079492455416095741911533455399684182448096480476871173590658661919943588325356981011333744332273669821146480760091941770875211055177883908659423665696489322241439593127648304608979564860476385284962402862679171042710168815226390708665600649678181303486304238729681209004245830228656646498520126179292764267988120797639670140067113939350563855118031165953500356855414949234801675451264899943532363234546752376481222230988079381982630742551401348749154425025806429954624282754690207683310248543409368511128369742918484373399831997369875627976234585818036195316260212813799354053111423230906598167569999448297607201767785819711869171139507498753719359673094402567370475907458308900857897428807408746360084394615360469067758351677766106146493077057678954459639761958833286936744516430821761278981966187546002051975987998583893846127684226064962563315255134806851859637199767643003503688517056064210340657116723329644855747347564171931956250096665637830394501521439965669300604036641084778810092696551232827501078649150043524712564034285387542338640455825963205146849153859075738355408677246306128408731350196642222588685247728670920996286804424244906546411817913356123629326126428419952782513321943778528339422891233818287184097649768761882804620654971861379716965803468439759497283843973980278073583245653541679895410765642686637007411540444267303584019523945416555059039160477554548618472315856244796641563123914375838931674216372631453481086804138040616236864274948840351038001805558954823798389132345951714166992423681147096799890567943196476497730902185501340381155999024547590191063392227682488077168502516317986616144854131345663776310944686856034870190618347807521806057519522844923142350538230954414277115703327799610723615102081135895672286241231590635719921707037650088988720639384959984691695102870406661153482937753008438852372344891576378811421612287905955174664548820615938132458727741657641557780343717561287443691806807895428681883821103423436729421961434370034996795837016415998405621854961611485630134273985159019510728628641379089119842903071866813719253889087081812202019913367817944707165584246714195442663155613808081586894027209585566037366807985542029166130522145671726932923383542205595287810650131145162521934886657413674543137876664469168246830717320287303426181638238743700035368616314115513260587611877768552373558124115399308576655377674016652235368538168737464171197025596279208854670099000867780193647742696559932258214211753241073548940387095745609528876413934463524477719978370584397191887697848509365888646462980691977918777996223307223657257278099237826313722835974065781086037598755388906218153332247431798719501958760149971781381914504235569171939981514090572570149933914540956265399501345537121077009282827473183612759125735618474472439193499926757844370154650555590157336618414020429221427654243635379482540346130749285293464228936784690812967990328247621410633918387077890347080251159626707082442488790453227742212725360105712937307403374898955480477664893419559431975196986478841147569091739421842250680130613567653042442200483064900711630134952779336155155964478762590543595003655992037811595276222879279256448923776731083395924655365548247393986424625134855540470973307276237293641664371660842605179179278724748944836426621480861708904393702735851970231910747685713103156090294157404530566542991333034632462050715086320543602727196613967079333110107015399150329163819709451666964903660891381175218348387563221009821456032061423176903527995873250359380636941529249104002306235339669691875010541948512055080994211280479371402168780884598681445829738680850095758714034681935936715247721205277310469764821569623646089454884650775227766725767577198319532717405480466074274093739505393499376075368913932634100985312997937223086626817324960802844221701378104095983168149926340616255151887035780094461716509628187100488378603354209387363389118376128678537357018312137693874510494266152858010330531599177268793974662389047915274060215888457551949096695396708994328716284243487704101963313210725353212397273152557129759049087093820979572232438810523432293045596111637904035224299645342934557029097124388832614158187384558076957475941472020517972401922086591873704475275015629476920774721260255594567002071358348886617549873343747320619863263942828525631806213689202702621430884813818448742811552746609424563072087818889002643124497090547631386601939286722891665613896815871457768949675540245008474569365437817796111609728865146079709529136893405396396169982428302847502155484775578256345102360933488896080081920599613261497281530407482639060507593437927551929566525727611413455560475391299090539880485658265273539226683398460011670311522257204397951193714380577658213870394708752354997544649543817196238918685615574170384558421361499600367375479917492408688720941848169329913633117901760656375245170804878428824825208467713904726959883269361535129729990347710489423449859216554404059792948379929076859031812039165020613192509333548058280511055418728833414590301539542186287825652636504231008374500626466246702373557845253302883016000961598694150999971839355394984441006299233688845138306451313250469624027539273797178896053575403811597468520317237907702013357734636293772614003596233989449175018700488573236114877156955056153912402720423840419845918493746693460262925239984242529506401694394302507142728800153494209304571042683905333872655656126111770437369069892896874386159786139917201932152680751066082301302414340252216754848512052569134971015342417452202434424368310272550795754310948889683038079583920596062995925643692308706745962104660912884568670072820793258546133887101759368150280776908199956874264193063028252679057227312236029073847376777374451600307285161453108012234998697888369318814761164014147530420361135290998889650885707384900980533190359946030028498279765693731525305375489980003490542481280623667635765242108279639085195071493560050804002647672827031349418683590198957784871983496506318573576905423645376601845169148836187822408591507011673722132399328805330721567954768714137620355234069556919516469245259660917389955119803249485241559200934531350325006532335955520961602789062041048548414821984656088134926152522859342241199359465428023749427059655129443388296921927913628720924698998362054775663760986481423360602913437636859301811414102565183858518269389339442893674695188536009110247578229342077245371999124312437573028315218696655532224983266625153863160743495628381729407995316067569209198509183172478713657665255245956796905767443586415961192858174781576888025032026121282194635446518370436303342313832939033984858913729187148773356785678777609934788641213479397606086348535208972394939791135210631455048124365494510179202506598907980883024966572170262558785616545598862766751350046871156037116371680770707838421995062949543039158883727543795815764033066320776413057186951487065091840638385919221620671091977250102831450678974189246016351410245833391307249958113531046202427995507754815133482307415827526487985164956218522553248366339960399337463262813619583197292404307568560885218319767202625760918663195716656924737648846117505422293518629376616056850352187468399956020957293793019880698170615620209575151418759885543317017030697120165164197005965195668600436952110940598961880739035097156017402776815317067241106831744789555464225864344889636056529153254482997970885664676481996073666569871787253720850151714077861684135808026217879546372318617438116472536589113846033626982720578714036494705077493462512781231222301732225724173723673635343140625967212939502013342866849817098354523069449832492265042764145388858726809911235737078659609930410818116613001658983024839389800650081822802166104546122493909569423988277413065196867001702604790966469912559118597996011285455280524212703358981571506117224342151027444040563097050281413772947499842919677555680153778628529958597281763139466091991162791209622876993932293892161687067933388390574933551775907819289961418053408458152643928814800064399409956409560377764285645663774410546517204957803260011452208739388555143803534511042418339207856531957136415324586812895190325426199274046606064060579268913167530765416195423695488561487434261628950716692602503034831998297058932831178011767383854323484701267979991230760279370412646653833520064883874039534040107379809241969567147500698626018220949362167578193333780750901843872813519056894584386177664845843684232001661597971963781461030397848570378748202604684589406128989450986182876339104404120810605393908050591733209025446000989822508617347344031378026168144087540322371842689790243169179348456425371161616313533516943450868523526734320258169831140897731717541370071096540077118617389110126887882514552184637391431076668724703040233394720169808563274668927488356215096518497482074580644748417745126228557481948789516430102798770006995354745514932465226277667590174210844264670675969758727200448708062770802591686528871068177515387561278181845046235712997994668087473975158605120830650885311958630120042249236912118377001600494036871213756943531157437972338555552626920461735702081250057968475949003427184451796768475441777994192557871492422453736764237141761626693999724502217032094811001219104555012180329934597961275826401606187958758200521304830148316561188406290601732035371637438452314526286381546114087309426613119828166286151696398593322843391498183197957494726913441109986377800416540754762527577019320640301880338243828108854337193309496046344875672687469001390886384944831030267687455234757005382122592289654295173873834235269921732077852230622668108950206821947189568430083589417143961751089994617101128291478486145800291791399390469308323910564981659027211964490225428117771977118702079032666861157590667121851251817922946325960627698398817161662049377192275200178781266292728211330839378634705511527670439105656429338629939615801277052336680161801807207254906119160004611684479773464673323364945887891936307612694407136793534635271389210590748051032622616392109547182644936881027845155165435303566020087913238315228350297759416096564931027145191439757293699867467362846922841984191222887924777501130225231216061992025378477900033724751962099808171702279457752123100623489254842943386218694987660300949514022968055775208464254222770281154449652546215148765267931509983191092269782157675453503394150981456176801622322631891690864506714688724288755299445736176045684198850234291644848979666807893093967172772988208833251934520503262594339501381154893534956589994978097732560186429561942523975911309620698537985686388852237749793551133903311331547642466822542007833454654501231995803671117726121024934350974097400122410842294950464777124162376853202664254513915831491920263524688593970532879625190128689809139714048188444982999872363161896839472431615446620639664503506822135782807141275198906273026824508188710862200770217020905973470322180334798828777505528514172315673509218382641376954212363086661857995784574144103143117896518371846411256292234242257810869612746622473422523594064607892058068231773231930161995215313688670124741597879962393051215056396784824166113200186814982767156673430221232611012842070731970139175780995350653435768343719956469506002463475664826263528127115159419866742427557217342284758198051774875889852805408201998251084485232628538061271214325500228741462690746038411580751727780600023259613023456353661786010866017951168406396021139587184059400401887398956385361684329124688536806608171520951723425878727038502083613398297852186389717131106720542971906625463540242215450850625570938841484201347971972427257240803055058393708436689989861840508277733466624392731515691087213126475433654443841142373679269803601282875484689901820566080187305520013126266237846562362354598023500843992877867904068533208798103263919905879019659577180426713332486414485145379459221800131973478815705569234158187317434907796118733725937372902355845728284925140152156008326822390004091213695414763968096873312214215852406926767233404796588604951840726627920259696018624886521010151795421087312695509811488651249494645254416017570729119374521378508661102788260156832683194113425700250070476480006350250841662991416521779996881364138767327441047100623674783231518460895252534899221260478270013632432176462532807120487269852591667498545217824224114073134944133234857220864669345499681235217262241638988655568135014903967196383815934994967576352562500321909970407679442062065303009954023220520808895883800592593092045910703655062276169103578066405031657134690315188412028268195577991866896682108162070918468506541644443004657693381541035515972240413389580171402866601205480871502451476759860545369882150433011009940881381904777046717214537366778568434941156586072270585913424890007736055334046902027199202962690212598639158301016533811882411285046907721865332882364056053146450468038682308121064416806433508356353483870656510612562537657503716331045864229973016363869024157108964123638291006152990896986059013150273514036999208515978495215906184774180055197948878325343819948785448901163203410467170486494790608403283995450015104363880785055199289463269399064040042815330998312894434288464286360219821255987687496612621372531873138669463183687317206147439875470833459252683810948488651946778178844940790526752273154939707637819423495599345441064817883544875938796752964024430678490162481923733590425542418159704984527185309209515410562248214342390973571721643790864525418873993012760264895001210971165117298176792498799723680858564834130874209360877109245945153803853561036481280056081944957926576965973035943890893584582918911377751339582604928577399280624991619702660223834382771610411000509137954867990943886437700174304659672411869532084547711377436020245346026688613383850867302334063443789506164119774493881241004852071334403694811155513369328092748732466348970264845071359638843678255430346154693729435638985894321891280127588940836558561374049206548462073926303815691147720587341925215233759384500758368728253538458174449841055652692864178696855188429833473998168157804416820451221151702020270067011254946750609072344363181205575542433851715173189549074296870842748702284472229125812693005215502357854202097087702695078304150940608940323453856839977884792641248777823028905964390680031054406156279603344143479148973587822349184958340239886278845423606032084903912885221513893263422506126772672291311420862871797920351647323148995741421360545168839780505489330512890167127446835835938378199223292504316762082876779481511001636228952406768419412462483844302186149887791622430616339913382570634015893592597852543411619995369159081190908941217308527185346309641641375870031050524990962847164337336681733850738194081925611139275678870391846438755433410487425446120478122086245660284510396816720297130090567320380176982580564348557461748386345248725660903774572139123496600250429491493452013533887198969775573729863161502956174078597461909165120683235464696004290128759606097755871932522906920159888861416860261007000697373898202701796803861571425729598908287194429208634166806147703285378387290560268312780712132151469866291401727301450141760928780452576270780113732609274282930241508459100043978359382827026504682971814107054250402920521669844660064994188191943926816174293382844870762065707802507828849342789909225048708799678167685819522740489651275575531046781147929709597595609013912510969026086767168646413091083564433973567324652677337064970440826145434275575534290753452575160831079552454258449352218243557527036426302340200197645869002413960942589858609155035323741387212141596007710091552281347808193873701465955215986913380362269614888683000424352330584807169526899949263780433895948632642468202393184348604651811847589003798099276566817419163462300161297994139424976027782517254613800798708568667724976560675438003001299045855252454687525495770107262948972159394146220762987026620272217827527789136340646947055334817974679897932280105714596013479703778099048921565389140625263935748404448383009759578396207684839573646112658010274272023067435155322565985444383754170014186437903910557895617423781340556089239985759257812799887596834527788214765492588670428145650525775830338603114492024472933159734665370972677241924420173727105885001765403822679555215197591607105848064426040237741001594946725682856656266272699830621429764942987276238853572324855061184115700784930174133327737729498618941421078449830196920318402140331914210359706846349242516007805685403968575012078235878600450402016083847864052239645352514359067509402378582474913736831910476517977265703428580284984050951114650226253175597976509564205331973806794715594342256120141984812010578374020351747863239590859279449848434065073486063312358680093378795569436502386826067354572162279023945577648903903717612055239129807288329514617232943355876830118002587010419804055460336925721352065186467419430728680657246551089140691547728140421991836776405234171910518081242741890697028367225456539780488056140263072661430852961318659066060272463273350023660624923207857474337257905171894574978332336533412759310170442634426001049930833116283802900885250580338006183762753876793803990098557733359444270601950071565059873633282607169517874002710389268678042084290774264571590177356001398925963916796236727550860843393426091211600265407001624858904805176434999519461536042380301254664976267316437108960455200957192552437033233009757396621544473099081194313181800055668678208813775057908411546080992358450835628910685424276387892445040689499710625738049486084330986727425110698922490826795535638877217348056891425000142463643982461802230964977181340455594105736672098675256891426209640113929210890937030131312098256357775781416819055257504016163458415251874749288250304817565341952482545748364633112233542693237126010334975453550170034388282769961990406629035940945966467311984500298746224174160128251014909306497935455565782047268085517823630629342493814910209945782365655388745101608244654734382681964584285264620843171373645109240877634091390986684018962456988975812420143797642020649968091534586466282910283084714729746746828679299412797464283170558596121395407507864895851911326923713140547171238650646001330991795993315690231458841519436467616333191790545149705640780435540280520964829247658239898719493673664636884079122684296377748833265210274821021226412182476390419802293272980421708114869104020387360205904061523016086140680956613131556756705011486828319592635089021746161633496501424710679257980295949015022764989519570701683436048206346813084065045245535651910789670718528419112782580292218866035336660296112383895494643074111237596776121835281531844025603222231292800988607932682330400825135094726536084761535713969263738831085325976704186509946665587869006660371316196437287558639401293992194809166158216287039003088823693986746653527841056646070418197055519608807654241622372240509428237432350972172511351339575104881884598593991181937329058598137665135204420073183932139650271071342551874862971606129034111990761310374510190572773443240199774255413171005291043874802421678188132072089506966970109592214557447176878849951926939210188117898916445844884516480434687627164149711497535713495591397858850815048275652380005753774989145439068425697070740209501951233330229080399820859503383877928471245237293142200511467773242738176040570826404794748743050274877875407601489815799836062781612851446853719091951409669795652195169945045633093444647019397904535356425586049144186345508596232118085781019583999275771375673884216295003470290760137132233173580336097898660258759428452230600148947738174984103692345067048315484565260210613441461711537258132806740701914601405324608074753146842891671248400228599523169727622926382747301799478259180587450254925094780088036900967341308443858840777600309428555298002887503545593867633881228826631143415911769316707525244136957882549259474126195992078516395848150878511102801123500507027795883873781283472737507890469452559567789218502462082226682273568292353679620089918736514434106239572165310441601954928450863670969238784251400374708787744173988037409514875453310738085964037236276414871741288451769815186776521207915383570010781486179309174641711839547211636717729515365653198174403484212838629780975349162624475206060782271404336502362689385962226010006917564687403337634623925956259985738756479002744259231593427850364380120125110397721550399458405007520358880502862350418234243952561815225516221860713083168359462993838809787547512015114832681064358097196222524915096277300525428270241421106439065424342484776447030102827862617388757677030760242397402715619839268940826295718669272532581975346070303300659072893821847661289434439615324217979866959506986452283811011009186422177198600668960492647734162709607688780174554804143876704724676098356167122206393307231962860711278844882870114869304822150621752476860906931242043090600842407820146517001304581723736532939637011866334494730460869886374919670775684279353880006279560305768115095634893881035598080585272885572607857657451079477503376715383991369346247390143799450887025665269270525570558700995474699154610087634509465564060152707535047096451284694052170862910135025582817183445140279139534071247944668257182673385416622938861445365436726771037360246481148308146708785372928853197838476683944553864550529529657982683971828214121687943206716235741776872483322740575556394180812393836607625005010099526404288329581424999584120351950418637931841883350645319254327772000925915548733216120306500355179027015435594615899124286987895831667276373870198714963851575523666186446659937875666264193217974663177596349150612954995913784954448476513929605719541820016887884564106296828827113124889694130124888815534397760270718237631144532629834964288423537150814641001667628160837342193634491463948035083298406096154897333895072562539444291454302277756887898795508208978023809607993171064120338472902086541852839292131331079611411003471119932617217518398892227536836648513689615607157490850457252366226446641996876821841180450031206476418065801965079802122735925180910335792096777670450205654773899417245550117669496622194120694668778301988259081391287812371712613299356838442546214227332839396423247424895155009565320464007104358856277516572577225917130992010736664087826234420669711497412891385923958039741493332590553800324929753209114783459589955378710091808779639539260757531103405083928504847332666145097530521409076996455426067607911929989301562593191020859783338864334308810560112996544200691331337017643947924960978490484426882962087091266688588995930081809901297967211835435275750788881041332098679110606394558985769927111374539511543387676101551728541307169907787617771976924354043058960822378068759616295162784553855501773395316995999927991931443634542941014001046636292174222925500643465978156385813786388809117255422262992577757062970638376055848836262951234803435522344414202806505377312014900583001846223739271933676357451344355480552287009203325567743769688239492758517775657381023719204050824322436290402383718494358261486575472895720696688522095802337432210758862868402168042483889255870826726654466304187388568076533620819063729382169887847674498896138900207688074327121582229992051218854889771671698321704836040695721618339989504607941744312019082987271560315568414711244059929177206924441113216561590014624061601541205826881898934721868292178596756394159302943803832066037842002249772897790735421961690379514962033266584786141435281800239235566383108284979939546116496274159004686902835479777951047024006365003172152718349271557178903311100236769883356853517878953349114312271792303843566702400706445254101269579052540672725116505849453850583997125600383692143975106847269977982692911195781689128261399843326517793134995069323822626387000585775961001112631122330597293140131145104339373471904783831938136473821540678764136445261206750145508789241038965382942388274323938753515603233988774222024392170718986848523576612269629018523360118135803888471263014740709035484880978160641363013992384736585009844790932023686308194805984539063337732804159368008513315059645031172927937270950312190312312156161056744301700087018327828099200321827326265673412457518064047930271233659152364703359360402554098525427545692268345420529264067616671763136365841770608084442628507259357963417129596968191112870789159775779917455723456652594995131747202146734109602220525983621765734048290440131605049919000026090719028470302842166082229586843753948249839563037105912188187210815606797336288260413889755872503906468220562463178537874100255074736952841651335418824028728467607416603718704215994097542343651430285005772505823410287255447274869866569496280445878585551597373150600946516978370670423823923480019204331026601511423158563597747989819297521701152610205492972796075476202307433074114215963369875908762124694392221989994667010113749010474281856149983415510893861465907554424467733544456058404661129294480054916824366344105825239235497301732671709172400116911264947509389750981357589511390962837697138771531466484918291337166471346078853509661331061890569184135570363225008976671155521957499530656329808096782020912787552719443663300425612943852376195605435191845428610396849640202235425782238957378292918421143057289861030809586749698826371472368070944376347243938810064855408487922125410942897369193740396809873980277178931449110737052198731010453054578369280880179274292693443048601896306272525847976909765552893866615538742602061675908370732746096852814291522285286397381382597205599405768246486256211220085435079988001361986149900659865585853843558228402644712849547629094242658428947767825109646174714383305611293004320375162348326497483764625799616445029719505037993118906332650762231398600054099244285686817333176628986675364238384194782453653659454366703630190966391350940497156549056439440732384643654332574086965589402534643564697608454813606852686333331903728990947385107307354855383334312167841664537264618856821751081565647977357545845876428700916583084485337047829079040431534880689862817420258288414068722644576939860859920722331276244730116237741817449379586243731743804640260376295900010504986193216211862462362885097375466284717398609096563104327564460267609154026765420286248032378420929172927285069741218054633776242026449084249564938617797767195377237332011366053911619026634529508065057129730497747341734068384031644849602783469226729339535473029900935123559186944033273922657296470228358512230165012273052489109676404660511616272096825189688560534878966247329434538998134849227500904077466621356660241529451183215335569644564311263583123430481535139030698259725746094733577267376787640734135423339876530819578792951812973878993297351451729235705702416534108017689338282645006341152965432420802428201088748340420000681254630392502007053660625338584912496014725340497534777840521059930247613940392008556876820578321925694587811099585114370151149354047006626962908318425299691595888926624939800522313525967716576417142860142168710958961326969033208000081603531443778654866947117184553875679076377569794471795242841987443582829782386958201657749185030814553220078121153368671522505962101879357398673385373707219052164833935677941711101031618337798726254687375713817453005698865358404257264207707221905047213081656824996622633791204170485398620895277910007154956231679603615670454344433454259636934650656099273158369171017041796188273395138803861048694466111546389858507977463029409796775646893924615430695745356289193261434472159109261159495706145392260627002850910554854471000083365397941339620044580799047859673003853186732049742560611477538139737147416915514868712565634742504296465206890316031876347434072633406094539816991168909461076948185654903993332861458982915096950924910301674497751306387415839476748474420314240335359113199208577819302465778999841300279632082643547849081918125467363948668617490291929374680246065669899939652693996123674836983273392451876300484882435904092710333416974394240678570364579805476442904626143232243687571680339359244207343198941843696618065311375598285374916545085772173603138177238469040941091457014696251799667973456565490365154979691613531828073388812536034320117495250211046616401241977994412458124099873213004853782169933611829499688454409064085747436538254228327989405579021430403282647835370604121856666021169414364905381350679643432025078681288348646264749923497917352923105451307629993945947041789962924995843541212108779966821480772648313418278203373943347241066858627084070928922816851042482438523516094043634089498819460193707695318096783064780923641303333097653788851816147650791374447720155105140405243946310146111160400178076869906942548255666348231934389437914318635336181454543056886406762954765540586159337994504242503540042662716818888486980533121375522681887961767537202437185938509080863796244489764814790517043146755909275857457276436169550211000200427728586101135460275349860327263921091503064362607744704732105565117355925664951444815864297610594374930857925489400321743002586605185221019382833638827807113151692546240927348667518879756102021698625866723181564722054254696281114658705877432637250841252868443586388464888981505479376289682692512106038940404818629222287597624221884340951207843642445543529366449865347219901861260355551268306218531204693882315560326511057817073529746025366362939074068061536917585212047069716155904035304253978295118281972667561824032614390595417346445351850687780935772381909049307248277083105193351443104781662920289816432811290962588084062401417135655194416711664057558353681795576376417081762980280705807086395706701598304311798858325311633728583052528071135771443358393797293320210738466454607406206650801832110455926632718503564517990997049220283194744745813818796485750400506549049385214722180051026330347323829336523907337037546485854968061444920106592518849859430356436622240294988450388886356513668071858491612154373004141288901785937049561590465522613297625879459623936804103789686194156691703230861205713173348886552865526833465611298803060950633622747295380581025483999806013094130305634981989220723089509066879415352021115779626446253246853936474190919814560897585251857647726041819044957323055173394846683289440355148392150737200302480517348363448329474506023590946877891005946805223667378402848730840891974102910533964439539991460156711282429606701974821766709664601543973040981235754619140164727597024249968542667380282839353160410161255985648655955465606260764821226304353949339798977045677112852876725698185559714667608173520816685876829997291043277601600380469625137197831723384045058333862423987978912006701190416513798203356961223757107868751123025155794487596923448707673316940908480197243181728258758572930685573699143082469590683067846751150267211957186695581423895732652675063303771061886618772407244941504009766577270276176671957685145279346613760394527053230046264093793814520493877422555768489483658460265391019751814966187894171622495016794116228439917746566419447682588536646905817713201018034743073609922538841263552844189426287999493176706733987361293323625732908434402948950796349276496061705895199777623747996846617350906260616963114524249922822237306953360742010800936432068329697990328106331436731973593511001418738113601693093335837359614919869950322591212988978866948527680751949528777906671830056453726809283725362356471023847768166521793607792557851787791805074200073415837181252165451152728331389310897956740032183662160871158514266457027944006883041154036501780259922679220829728819937059037388185811085977416980176118142710456949438579514915788997079626148539445754088523330773771062986340603883339520572917040976608006763172576715706149672063416530237399180091131148022430461791371964363231581752846225713285930171664809888669295843887449328652685485057784062242481445290269320295621401019698827000429644916160521944783547484754178124356847655327237422188818683600306976968874270381376597178922782321521222039053631610201681611953588566674845504480221326708941682316789925674350908000961750296016399892779295399333631993883421110969887550056330708535173336774916811647510953634132466013584848673629166969556357874813442516540883436416657011379925204792388839185249440104336978244654629964779980768615021326859758887989078096777214768511859954529405160018448542066404037649353008708503147169441752532082073325067593888727204481072275252288266901361729197705354314761178426349885684649223009452768446674875879159599298579127055032299445684451901980166322274985696741759302909686322355042901078542765918839045976719421191894383901495471245470871557693958018594002342303973705145594585812324365458358097425401924878137169726580568817679601573743334291278375608889682566568331178713352592251836589685806470039194473986249351034573211399005404512801681749480190745754046935072284387781707754711148867493557993384912802862097175768006898818407658235017776231259790754765770148640697089315857565156502838294258735384488389677450002522955316462381577994309801823921864067172986086860422061547286143606919386304110120290770615051693326683106438852847159081833222315819047990920196112085886397404621818922401447092387679762108663405477487028467922809916554848356508839855382645696959957219589995188279061420155303885319929414911681487304807948978405541053565932756234306602080549091419624676160322875386116060327563459683817143529059690010902025558436928939757235458546490431056516596610415219184434651370826181074951158352250667361959627431025669242072860976431030933210942465225139670444778805550855536852441253492699426535631479672469972189937308215371066569304698561576351454294066343654218121646059601047369637818178185845590745897525571712906506025644966760698819831807565492152618206989172803652740540421805033926756228768377699364184517650541366899037625167021035966825831818627653854011564002469346954783541611049938148667454386492304945534567010547238784474190951309837605616408045276115745977555069417231262491354420665828089574692325230825024266048999948191544342706576188112270516382670644905402267661381649515634659924254753391355602804113483405231623114031897535928948972763418557538439064396616440326274708260156008747585641953748923157460496179404940594321674358828177259297024015393200127617493355219892272810125868348400723552203734104769463143910081571254791464493432270395053615665445074356699160691535220860649498097701626919175219351451808811638569302800643421845382575593419869960765713461539005459323002233051000527278881753760636625128697030444084532582649189025286986785220506666177589716200374502414666672905791667130959362172869308239724614699991014509603852843417475195769015761816584291720157081533999752677483439498951356494802218092941031519992085902059097320530615200893208790809223172663772678214044441331322550519889038101004143614741424865883837956228338546867885755180873430702416201869974628029672901296141820208048546971190767632207172237227862292000905971845752567286901068337719306972399652771423943362127409039877258552196627031587932046009058328101991137049303691441066092672315531736770869212054772529806352918334122392296153274261577388047034798703958006534997930997587143207675449143069363879553285894758538028396356608497498341410503823386198341176598568902544402231633587155609641254254397362237976489350575369824318522919556836889072956291898321924582695006675647300780833129830249907558104573912971970360304007063613073563254491574585335160758363369192330616996866435893173777035973854419731346326359925615341033998614358461002127431060148436615585854492573215917267896097799970594141301549123556577951945954060890378269738406974284443435521032308510061783244518547676974513451926309327940379516055586747580437422414393014610040076263170133191557881861508810756816903549573419924000986955119865649507744179333514972560149310431209318835161506340041242308869199740651991246291006218797298963403167541922545208156657788468506501400327884996328225141074376697161205566702325197150001460279977703105565982902977896336909988319649432110934093793641721334395865416938547049088389867097988202028545482488381768905315814753835628520356168426318492698207953052230940161625667642451969619211878577749400459468943076729648231690233676570311453285195069189030575606743498762781383882595574549085298891420852438823002324995290742186158129739168075591219989216552039951613683637800755697562941855158183857110716372355589605127090931663709096434800112966884118345143110056931915582623481535485494599025947246662342812673384427451559146675554168179038585647881352880253659073980079372610375246372313671928574254974930915842731390539396366095023644801738597806575647950841986591375646489918470191897433132767888239144225713343156829686082718797985953806660921103405540054967064088732620737534887529008872697012743095710716152470813237110124408310673461143006899280305421201252876199451388223916133780166143289742130380450316295178117191716854610762965761774229798860009255238220148018584577303741779298748187874082235201551754389315225140191796575867654905325351217255597300976449067388363965005781352890490273835494679106649652616235289818359909895557259001851119748841694960653657656982929786186128274324524259466217578722275713551147199473274770384188998972573486461054440304858090546402878920255748108515771706373535121447101143877790002386858547777082129089803157299350773883510872175834054382230540753962315037989785114418307142375590358176186994293055480956455696150554740085861941695737430735006083163762594644728883526835608211312516530039240495404140346111994332338867775802537616486662188497694942504093576301565580591252618842625875428149567900138237601039024616136088227181770785240181332230653625128108430225043687725753948272389915246975826569185629475993556787457097124976572793318268984949809229631602851400485494709228884240760354290305465028676153952912014475847918279567910108941543076168449815122693891545315949553608003160219352997881517165612397180057139945731529403831620987821310680214463498101346984991301481786518354642935337744716397002104061327584908926569883693691026062205011754634240121701760310656412257939766797852177587786413137068922593293252441120027479295236006731163785082831870447403946674197877768914189729010573904059069036964548543986177918019794678740185145813363810583806072357956654045719897657596035972825153686767590576772941179102829958269004173413964148832163697855707469475242749969026878015200024929785582521261022409243857653876598818780509094999478788193659003116601460494779384336080025303194693935260391676826223642917970457113446256178894957377273965266538863532395748598958238440781816765861880658043846444901297261870088983004695811990524402597567061850386321392296526283877594783058900790522079717371983130117950495531362009548660160739069767280442026979992954729769936533472502830034424052829736789627740850976278567492135612553276625915788916854874792945840181892901340438634275665528603937010081258138003397163874706812628108705951784581186985023701049716490084208231312574393748275624359133999536997107196604608937644800956080320079832249488972573026493347062455442713537430153135688573630029306806849336370374095896592125354938442120359322996325879055349521919926396053621977625689677835510841285350425324254266493064369343774871546916148103846738163992117403232545943748057234721798007573778676389951750349125421373350851337478676744589239616724163571474953071375489094449260108319404971467129882046416170923357217852173182821672901960713843660735391967039278775584641727351874437760484396812969642476801321341292673385897820552024108877568596525571472198733499613879544112314743715039102611706906686896156187518534327271484689794728996418324204771563961147099146078070421889178598443668060657083313115908190305906435912379072270679617072209930790701031712681198288587137002924433198364127347445539128455805036081297072204882193923392826375979355322973582542526751510108867408502320419651141956857566714385832723499445573984524662104562124988022614625919412600303909586511093371061945188291539148741079060128533330678305801692576389133526583839703360944258328669977592577920199548584036946577205131732448414100145784364055259640139856144974163548494541797889508404989544640410428209254380433366960485621659015643033438803120495531976492996238463716363672838443022826439510696797934953642716761478151281804378095450186480984637993076468110232400232590908054962101512245883364958555839910978594946919905276874204057199623447192443784104423299608650735460611055405494524034860416166834048171737644604401043079039487509535967940301033949940606881666885160044734155277715239208728018343894640712687239010860494269247987215771410389575712768720172244544720905950712721933046861608000152336296264414599365457794013958552941119297615053596996613374813455914742547584603758174786136136719873580683449870449026539418516456053280552578198737117201238492725933310369531187265037410100991164840310281883082624742295054851279959541497265478305595476874292610112410198255126574626783737896319577398893636908816591327220121110902516687956476498981574466664255895406688353342737618035927252134622327827626591075939992992821499006137026144919325888607514131247483788083347454417650339818298435171751246541570882165743076339968347022888227520792393335323105006237245696371733320063742835522472678332193295940387207096678861701305630471278380076776089618037643834011990265732667518505032345863988740738107644611164949960017059197697103685049085360986869433179998682167462774632879043589323655064383948284930406460196565885217194649638821994284319068030278189447543683944228215351240665324663814274775445401876618640235479466045480861751026170759748872576483850493321164981026900219420773284200449862518005237360594140794272407714374339249259487279761983021040167601544997330648184011117288812019642220497887988417267264705763651563076274915988285073772176625643461897281616249108840509085347834769593243274462992129769026350002927753975371665989148882511559260869866501907637896550068487977489128325773403944153549027625297977420492046097457514880253794461524491252036575459830669893223742343076200228982515394550398689175409044559711799345855415585198029430157789968091292089946718754422809751781036895978805897300032575526259993996148475801293255322201115401683757087542381947986962688735531035694571013356350117371701077678906894433157812292154206671524627483307705183905285132436274122340022157958076409259146759026739170751900351445921516099889918400252131721540190625625972779371796810639882575520978792466471830439818316471604908715368662914935044384712326601489817229842927879078228348163568468548173489226800645671141758205954689698395082224120974513255217935084223969581246047224329362638260268421057511371209958959824077697025483944745688533299203834928608520662278823647716587822271383740522773498808298002735441223444018985362045458504674121235972503770747784758656616553072545517790369429395772559570153959674166346783654727706354537588844859489328987524486776856079537906671914206118834829089273051080104408832076010195534221554447859141302579313780147899154128105029345060014362771413744449779414364854696957807893665116480008993727720442105957657246061195114835571642596468667770368148456449579415404316341708916859818947975650530660463510118189786577461882946117773936639432506885415254637413404198166104415149748970934936220721053717177536767102678750334553454788758498453435624597914568634744549214254104000348880704300624157611339706690289019070499617276415351427926305182366799777825755979040424590938001175737309235185763363896502360092379241168484200895223157378189782708756548953444833643451048235737765621807264413106965097478301403944549809368560003456743071545047943869246120455165505691253102373911104123639089108199637785944779876629019236703592031153754908852368399622994682434501097867584535303359781518847481268577838789167894981079956809762548899983219555352627161481916724193588080559307673458898874867729553003656322593604140432976958031244588977558408437632960355883309615364822042063594477015058144724819602826379413968739826524977583367282065643403704769197433447966554002103931429719085335476129237609456605656692992009429178229430443131207524365970837050709048873241105086918395993480007828555988595141995762736655064994528760949007656695636275643792992923256480062284316543981351872470220846845163587482591510089006102856108928165832579969909333654589803266780130229082011031971090172322120426665340400622464645581444150894513128465411025160809127234038367783176358797182833658188203009188166143363612501546003889395787219347150609787012538862610739930160306793299106602906720219655495214211696228987446535217825656206938098385101941605814789828228253742625306297505434115701647752106153762243465162540806617475376011649572096864725710718428111594824202670610837622912495609003382431468612455622596037008959178834430840694187726143579297535455924017686784470281070246787021379676211496061235610504936408161490737828638419281355500302960075987138646825188688632791760150698463042997037688189113294171002354028286080570833699992287801252336117494463759656248057235554706643967995907966460784849317320346766789585023843194771938708444913239449869359932405776086451502664869778181223423863129456510853392261912713927035093089530636925228574397034882040068099821004512768847275768258032219830728502671015891487532176046831794589357248446007748442009417422211023055043980895303943816536737307050406179712341888226923992565474410034747375476592693266728176855555551460669407736940846431977018089537766649662136596705484250104482734323305233409658273163139243196510837330451858212151995113303060352162868914033921061464442062187302527902751465053681409699472997829433157759630620160051105828089168675892951941616369148666877247111717948950191349929619716863383601189039368539540646846034530497943423548621208302210034930766130460785751079854751344855049152642300702838427655239459974878406380215891927050167023441747602048681842432580237825992132041310077935448660210155914878507757382595544569802889287249755764057896528176172284759781449110408865245531492418557068628755052394230413822311807666841098687374479095200045459057792654629985503813591050794822788556067869372802176505578610818662350812768662556585341513210059485710400145534841999171830179356038115739842635106985869818473261311543527801274021405471843762723874559358972293163873920430112785305407636050846853738883273087545370941062113381833537710824648827072327378804239004203327129803825640689578712882354615289775539484716849349999125164800208774448880354614869344249946071865409902965923167859111271042599534826589049086066491763777855080335589592885052692713515031755032044140032389359582167026007542225243036049621585847200650410411421825727040706870442436807179070762011942543428193864285738762910481016700997651960513939033761830797590212374890197233231954025427948797807522334714649322747234787879543373296207817049814371051877297053428752084334819880771622401450361205786995424864703890667307589360025260110059471507115075891248366267503440000919808421337936940123291483404108804658366767753323063399577178254300440617585317245076177644021945614693541822484076698670876853218558136253527509446965420023012423434066770726746273838386074423017684893567509259828406195248644326098232041731095337154509209571735216470082035753076131881893884418193087898594655846613803429499436402808854365127139285712800185464942250621473046724784326034749477933025875468044790501184161623836227876145209849563096803501114008708340470385401317845909713059076333939553816495945211872316873152830831755986342500027662563799742964946757570833848919624484796965415383967183509337073199056114839728574182940870988974185686929321707298618458650382013295133023078574210634408653342714339216439227280361898165577480538691132942204869725197086898030337082700100142737936143567782853048904552357278255638906262808118432890087210132266079114631817485512006870599846168476033542743693182773900413349274659816755092641544636649695116434675612570106507967547686542878368953750987426286131590015668953129357987709587647758607172929054939805727343309557724677997182020988254124786767906304992828340057487509462827587175333911030859892786860678550575397711337807128684237390783774242567372611959567798001021242947469975187604613388104611409212056485167722821504412205924855059376555754643039685334551339714064049845144725903039766723716126035616041216353783454618774839579254382860777702457827913509896951079650051829725432807633154189753237584822016253373907628919152539894823004186205008994723710608802568167137480339393626261357403972865296662038970604160507565513908212681750554942211711229037325497470109713998911826026948477078188503325958874084896113413968811669525785100920772844745072183685115589877294496099145596498655659035825189118888676368279107542956228096152390838652061814400831135322339792440979301301843192789376693161374381377661414506268085560769654042585324561647647492338321681904544284290165055210329912836698113239180127953344372201194721693841991646168435647640794631047798450315128178556948126482709129509649665108342938703476157242393501323268767280940743335752741324576004654128744021145917981276490839519040804433216418950273498029474357186667819000640948092915729037022180505230219310216038195100521307256148856832142294377124400283298317171439040524704035591882290439451853206954271373745277753588863778335634054390193272004517953221639140421188886448594564678826795621082670321913698359092721781325186089987854694571489486571333884611554120532219889456298631799129503857631444368611496891791821151550052031079992678127064419301924287976992604721489415784028250173860853309769074685485723873152384999986793444607233518127273974226554938152358385425991688578656550606857299588901662693014436914547584940644958175745874189010587834007193227632241215531371877756890131096135178715598064859554581531456437576703940884717284161028216365054578665632846030144147992832797147130003410855201012178124430221943992971458627569159632539391131358208809669689218981198558880570649711902916028973446647892017730076613530199499476140684001691554370200341972113844591659078483239577077578077915115340661506238572927534048323324327131673805846918097031363208513098216158140913393872867038878556620045248566109741257171454322624440302299030240038385238661287062160719545344786019156912703188007089449100006426098696186797605478772951757910123009566925058042883258256852370606978031099155047511113716449055211103798836667247875770416797486519540086701662045367371283693545646363534770721094836936963249426970243596645758301204991904235274542329646319540781170824778165732750808782252448483419907649980553777691377251596662382650127898069551966548162137344362188775311245150641539317946570411618503221437111550622858315577030837444632843414220958925870244623932640232997653342510284478951851827122539870201262114026044480247698376826725632612926479238806573412581133353077073990754687117474859021355778916902139096291250275455477495492491940839794470220742235739139054369948369821062671263721446262817460429985161366047716183553715135161536191590850087951261361187988068758543019152604547231820241403662226569989282010374199625566199661588096214943229866733167654909021602396592625031577434531373968317558681482482624520745230667950476024974119769256748244188055917101660034573032300109488460260676790514687286454763966365650974598028668650197426105483009903707940720205857236880426384897953952362386299424658765373330608168357261222213889586856908458671760853323184974053392083010678151656912095001740056419687330415243046939303338099246169971262111270449147340979196164222148760587760355033269098937779982403453535227020184275736787924094292897104638825952374038016692845340853005614118705708102581229898564995756706868226664667305034955398187224715540211338827673949850900642311765174687769440792479152942492698259169475304825829653491342338833059566153624025461907471647558688151891039193030079009119817726768207679581361325893675030182507089330721355102810538473736605956843338383997166012907523794065218584455599788334609769542302592802618148379359039512712499909391973754488921850171530005397264958346076421364788248850022003033306588209174148313882339119268701816911611749911189762733989340772780462716448003269700640955454864851128027846074551338361353899973085329899096042530998391858288954049295569691144275453341472680228400311169365769393417504095116621470980184201645678121904480166527825441326713392534683725486445432774360570989406812847924753874475038662707924393113174514509917280080898615044828185428869502933996288902355538559397364148724582689984355765823802087586988595045988239663627640209019096682859099707601843155803229248451212845530064944388357187699941996814676593364187885826479330556822153650377438883251346746251485799911960228655475225364979676718997760063351308640069106487928377629687994264230492566394684523487108767407052568798945439043480786995102612396557543050546543823112872895342181411429265306994212658361924588054781476606262855285125336846277494044457556109623756729234351304573315414627307310795292989801287096172067278295254720416431635758291216236662250721833208247294666083292912272090442565880321297886157646498379431042320531975865928656877514398748684207759341999390455162733779697363106990614582278057771331954211214338737675030806968585504866690602834551650821081144244374842399672240542904027683495429320286333563476819939186068754944472032191212718519042000031285110833990012664646232519802167857516515190556434448867211296134825940020484964451796742128015656687127693715742693599343656319126102915667095009476313112401249629267221894976126430914735483421586868725586307121208557933524025204695591020277951812720117088252895835933225026910145042536087971229799148238654687012927541940929579910554969047621283354372516370264722597939473712772617559260642705581267822649006040780232307838618284876446399411394972875871506546944030628654019571164635794075559125835295916555396039370495305241081208152360096371171467702533942426211894871696348233287096677051866102515457631271341552637685333757088271496125193570067601336699950099181460560185962368448831306153732253872565152231193715258439390329218974265170468252055205748789367556094071357257353988889698741612198542396091439806661253130348220759447451324148850409694015646254391664979460188487885202826754169420195449744496841122194048920422275700113437535647863168161831624106213351604822015425806785459913533873789059266703382488096447937985686540313853190141775697257157634020751483399021166870093975566508511581752708692562601395824145093844075220264889511810748589161782092964601138319456919863726242188359108708624749033857821309344458141292482439651911850159471635549819634412097321556718534289460376449682248277783643331087135509420553805917683765327960105076913414939864899939916738390551609519758403869021745488242824884591301198742682257441027716367983336339159954594862796231281492717420595670692267134124105630466861183738898480235167909766177726186477560895259519672896444114930193234458579685845895315816277684072164297654556697630707643421967961119641131196851527506176904061740952461893942081660512196766059000010334873351965536681977605303126790432670863478213305941017629017770132435643428908586588082675372222709703916034718162460000152162716242443286014313563733409455943880251690693813616443675788586448762887014013939418570766892852472299626883717092955046912253060882733411652046606280298898055926159987303780419862897405091544411723190491267419921029779214104299322093461842751058399297519493180733593703096786167655341898434212076157853473077772497498864821671478553976419064713390216370047809983559319705770349090582979361272238431294745061013204092410603383766119121394381689728789502443879753192608070838129925640103837642151958886765452532655052438275650689237073336560905017980238510218993613415300645776735227703184458605045402898671501768910326645748066763513381620838839982477149452286703571718770064865131791111711922567009561402747064820447179688885552228370227267360106894246035880970088110377446385002452362102253542021723337490281985548532292837423395464867341207176659951381603308309495527628970607454663449764493171644090705236474544987102308357361952874039581438035592700975511568327317494711319341927747354315417311574967407204715434974244486887160860463436017922564437675528280623541394650469309275187929111676418357677796188885942025719096282481531427565253800835747854192597625422379946956016078956943973857560757203501457101854186806091568007109502849758978999921169621234291150138450683511018856215400549647002015224810069680491425843865735548549169197665044688101832727472334032756871493496159114531973094758303307052538842049680167457478266413708857303109934952882391065702034335837955654044687402270805276358428080316767275660039060123242034544269626157941762224903202774770847095174229544962322193166447827115337687528259675478536845133276138783630974942606362846281498430328435040259253187644177385117724464043496858804800606328986808620671918518880261274517823150900953914857064250178700250510569526636154773457864708159606640716720913787634399201605221065983371072341844331893692352391789944135238770418483895583923918036517181543472687167234676909368224462693610054221184546549783475802136886021683630290267340854537304268532230879002342900233242402732895873725591433239102913898960520663106355034748310219208703588925307483890327874740001151194258800588683842651368806343970951587237102106171534944140267168061900532562702408196618638695620179384484728303937329266100973481628802394842653278655588926635839413820172653488446186899876094987339351556400063408608801474454553323614170785095071416783894590253039239167024953789677088676192437879052864134999404600957706568438811806162683940278300667262741055916725428184913631729428529334039910162265257431869936364206587240660984790604744022551247307216489380683578290233208356456404559285270351644502151618410248269101111385535951646850025699523660604642205243000476144055698870862925353694961741626525625689057414031033372135003327081537003275986857741221904655995106668032908616792827883302410746076780651938347833403654104453625096939166551042130634722705542437464867478471419303049530073787503291960699368489907396259613836194087890708873832586421794400041462901753793835165442400249096236787960596678227511676771979897371309079829068128352356265333654900045771265800364935348375208601860715326733877375269145976499195891763239204532164493007708220399940659479053888399908613044759057682724306739944226168798108830669761833520998556177574253074964223606969653842253143844532781307800988609564768405302821614949518387102790358729435979896029162422051866688564486181184131797178874595347104322113702673871388756549609668765662212318496318739499074249358418628112898805808685929867776496470131399769437533220953869404492262355264477855198893009194977464526875682537327838806229681471594335802192948303088526659865566709593443843804055506037423429696142811824396594825978104354823630009812434565429239760575738781296487511982723769333707740750068034333581947971935755839667453104909340216550656155122318910977335555306042205216706105935739786904232808505140345606492372024358822051272072866621427414032986506547962894332001906232638307320273896643963012043982036148948870750923894789531381733389440894282229910256742854464906890347370792186578684757747007639831364463510712280453802281568367620130616023620170703676633679335133179867478005630771046907762260277038410278527956712405033953446897326072649242373568809942465424933494479710326147484358338362028288770412342923365161389447118041303658717481684404605134379484004145454699147874485005074278523160322188356451423276984699311179110719130185881812541676607107983741123675199398122720502395147557600618028252652991706923363491644216760091496353838941740309602705648983814413990723892206194604819098358175218586367406219780177072673996789952381131095199669251409016060789264764248751695691645990298163998355012362929622253873311358900326722828165100458934512827204592454721532336477322240042746550066872928959723400864962116035828152846347550574863463627958161385614357526799730634862963715821288489977831541323137382864776429371302655919531919668249753147726559971428618260929866788537135629779608532456571733592940171583798134573934232834948577106458701126838658407512664297568890490859812100426536579473184488492884072845145976501093297036672257721119637951119762311526437762231191376622760955181651434432589613503998240447910869243312488827434539883590616195068121978579112013704698999886412344883672747449063822533614284361175751317702057300845931531976166981691545207225248698115361006069194133936369952860281863020481948892435312008323812474078079856314214372012762218749373772478906673643124027451531887135787275323805373510007942065523676539179011878097705247309313847023772289116448844565570242642726807934188667136894536259245779287819139008626373839269064156714683792152678626759992677021566915782215084488803315300339858620924033747428472560742968459184007519305330927435871804396499967827400810551088622428761578546894067027099413312033925755116129308602939416568777961438382433932478681065587067932223674461833402646174669879368367304182606080628821646059661222576722947499507019127024253723329486571722394718242452450149409165538248468550296624572477825248473753872735891133081110908627646994780763823682435447868812272705317725633919183062177750707044542266850063021693400825195960764473803732848505689147488700419476668924877136323190105793353967068959728344204214406922643740766794538705241292970429444313401859178797437557888278551130410177731936509242115072967911805392236204739535364838755199147469342446742775637812734038385915540079509207296632649075493090066784334403766986705349938862195304144616750418232317883591691312581587195790313171297637226154370395548636955512118953907667929257947138480176347639144942302998673865412393717786183504445794811116975216077017384266496023622383986241868245719933228646088229134612805709010453425394557176941499243289514915963971875988919761677073500960221275273094593252082146233789462459343854955030564965444234806026554016630061573548119714468422686517036731262138103679464867737779789430616629405678944447410500367614062486239374832860078114303737158571635692094224085510554046012960401209823881671679455419789258639472334601621169056522992420576978100115428391152597674583236635055401040225211015748824751392897355226029469785709884646496944811834306892788379431890812157878502611249042310620876926021329250629940548304569824673439677996560716296135070699867327689169150938416558083662899983585931709265694393906155637325401683941359302206748488762910742016316188459358928381575059173706079783083881841253780195450854568205348961665600673313573569536860658865292308239462150093240451725019000190037891085459072200190776187478467621081379006411108062543657407771017216248563836440477821695317014862411394931253475799032669933275247393034533400709091966200676723717549999111237667451164323746280355930545957483947313080247295401357307925684993778963694340776620168970201970594264602145024773433720516377950669909237289729707852287103032048907239958610466034842460807795464483314826980704850246402128307546743642042411054743062740443636996022865525618754595092054816597425642455034714998469262795501684336018458965440680673210363837795727305221482619085423978822454183077567265362645850942235684893403281706299783471920077969602324486114013753951268338809737989900781609639363585304189493164591351881476159394380039702750121433825870877561735821947068824573028828916908083105163887907163508904306090956183672245020592443891052636319277488567299144046805103836928776883450041782945965830319700524730071135175953069387259345283788058302215666107528655820779446863614333284880704562143129487453969103335333284537244777170855753209830733486788118646600759374616423086360750513572787375710369794742532614739021475459801209340296876893453742200352236052399688032498264743013127985560049856828407967624606966963213171950588611205610263723804361985083377024129728606947840841879508522184461114175512098514793750519468627586948440624863096494376088833944805399665081953032273088328654936836379248045125284817686800430014989260154957011171158215220377290188805840972185933931773669119459968805189920157426582180659577351179066368604707874295593400778913282619245505822321098437444824077676323028786039276685711245302645712518391074639917113761981747966417513106775311437095447374798833651747683174583446254619566503422349208700104093051385390618390192843477290248906868151063279937692043322199167168976726277780293937262982734187729561751918092816024291888266206662700466519045940119526139942277932734863089112286821267418048694059885892992875514811522219421864224316305272313791264158493004857423590476908707345800683847781062931105099879999454810906359984402334989138505894978464465370845676349453954091835132263475902901733861924505488414373426694396233100217494425465363083627300743382688188567491132160196157781858758939217497735648393043252872556871606733437673273259617443141982648428331333575677780167977525445459675756142742369943171251491756371538360929812422187439558050231254176866000038972535566960343642709344785251240482137134285451859805514479835885688679070323983854718462076694421614066578736229585543690374117859370660389099472577909055962968724117671740742781956511159475746804104584036196458048989228445364055028656355256263317981990885209666889259549748863201788386714840994127497147539631724327551160623164224206330713575204987231936131797475020404873209587872805452405530591881210742701519545760763895110989764722073086673453912645980934135856070788448499385903562012184551041083191656964204458801743059491101677312042849589599595889488201000407902246010688707280875478952716801053471551062520110719614924533917489566970924084611571911364855030334862627565746851115452999213975342902554180945905920040635438621383722806951721693802295017142038369262305437908395277561995495257935016979284381445004061451854892338245049084062846708967521091459822717525108034989445838830019569014061883715276766350425463313265215846452235451709152260303382643277489900130698029021045277440582387153303406091274010161095910375597684722130567497191187356468317003836331848706146171460784171818507524636878448523241858323713158940440648761862331013613753412452186602375776196802129891913464429030759630207785765749587209260442209872194008297855728406847729695326318975336745043893128636300569385548059535440388245422054525276509501423575917554714713521234797176108433735804723880166795977646549705461172169421487864891274823189638405684495722116123856515032353494855047711151495735379706089532918627422085827294313517342038383631896690025027866990668396573711161912306088679341104787305606479968294117411789172640003312171387580119941872960469675277421683470243903235724651332815494921227539231778034056511620118876693255722143778541638928997962655422632921763569807442348762908578333270130997215971126487062054056970739704758355829554143046401118098690258134449905420268675687027556419718458340567117645229344660628389655791461301908179634047029178653874243516006363557755996139150704868269205797026071765661527027269352759310156172568935482880714813339453494848268068530688504907182422742537171413635745406552327968512452879288537945496683815550749786722343954126304687320055882037460202494544660619955003592332144646634449149969519849703297554439206671155797759654566431489767062733231230904360742265057379000869500792145505603666231262863033782311664339430431467909218882056254767083290664698109593769506292273711461767513357100330180700915078123133873748330331392263404410939166506142171851411799336796821123569306299333728057979801606720049443552188000732090687737056583505335994945592369589794355981115449300622437783067435650310995419634333766423948545369658794157956246577017458848047008830697388199640409379208451139265130999409099244662397892413748782633306628204010691584985819384863497436531887686230603768028504614195925597847195236897134351877022041422168141137145740920855969543861053813259257934381770872025175496946693229800257749262149158708123474116495702950586511115761732584637555246321638192197868357949493240298226010774311988374559590318174188237624641445381729848635779677059253011320176315718463002524186921651744387550764984498208894634252357204050545293023629659906707699452286511838919421130156329631206709598291542976181588898165368561058109767909063342419422708161696056259168190106676092660682555885708065732251428023517514670136337611754893784128122634772751316180050103786701287380326336630571508211655132932326925476808328901177174776327281108312770692676558473267499651539736177884556997964908036740985704609747142251767794294365997606196669402803485420223788239206832786330690746105163578629623796538843051744355969994048778014566680084959877996281374297979118582190639967814786631042076979220406089363709644326597708404034400544143656631565526529667372601580840112207223333520910191186011843978457458777220225139773895434176761032826166174636466299252887987660452280698842310036159683816321846225907150464887078571847303387627965439222734266549719424900078621860513546678587071183658156154222913612598194003161738056893165943530358928312770529057433877820451046169310334905101712670356264312420816334413208390241220442786356525238611075764511456938511764741122719162487223256503552410604343934813720843353665852293507017026128345790216160403032417269738314249958859005650203568173584991750487484830913304667575411659161937196920336027711821901939204286303844608735482073454141351323388404068050256577665409164554994181244919290871938401273428457758370735282428513552699254332652151319876247718682278664383175322007485128002482614119808394654102714707833994529697846802935472978246545606411512069577457972279497719981798244113333908677407754261714322601294748124460186215301763956702929925099852716963810208560440193733672516427145670536595830757437450643775469430998062187723918570149794455025628361333491309364770364539410149397747973516334876903979180326864420943272928487735599926333409787008312909363348890495953737070341208934117008106645024628118973835484422514764394757668533229873490450674190552387656780842076483640262582335537785383867562865496016317534568890611040272868692350274135212457215920175883898808491924294619443923975342206311179831038858761593511564396494097493911529151503845084764735787989049691778330690655497071871564527883980239356172825172166805656146854618378581449423684259853521704913174497100291536466614113790502075564903409453449940702534625815298433212938105139976210727960586355551813268197164213778112584041253935341760425518211541251425959069139495274708206506817847781148140105068314239966042111200930672779985693267169603258941804376439277185732758126755316495027497087723512052789972164058310361120154119693534371006921649355452590430488422850266488193603717418863106876614316153027023515173190523955623974316257583403131373015838034492112078390556817843963144648116203145335826081084951295017697008594075261289145064330381478196858439085129285202383009884943984695988493567286561612804109105544939296909176863692414624815630836236278323589454499813243708175656323729261720424978817527936150864641103129250883365800701891705585887453401082293619951068653425320470743733200895299169768279841213164622077644775037494425113314430005693131569183243446368241809608144453934356145872054299459152544722668773688804587845273004498695774674534516765085084397988462320962117088550632432001015700978798573982548510873694244307978962034774296547433048327013258646714912468702434891244458985840336142222802460716743371978292837602280179635660205030134105272244104065824371215646517633776636959308823190652216483255244516616053901877318529259299011675143573025945394648505946835116651742699959874093976711318752168240769663718471319949497332531192362009970226965388355517482225409004827726957129998200026962281635560683192615112061789024526889665824844425821615029859934836240882713321935490089777033138899720257304041759771356769244907312217006832548431504971257851328487017007181761161739249951734293477299947063153340628436090181792590578298054537792707740819741739558692383978873660607816882457510602344244488680482091101514429586091337778468084155095513195459863821553797971053073959866771699334539867505469150088543478412821496455018549561063104162235184361623846482845951599820145783938382196674068677581082050170557343239682068362501413372260297336680099300310730208458784514987379011596101185892507312437786242344980814349529630454022010378631504794002498882967776833857374759593461039614243909049946543499680754363264843895569183175491564556000594083537363741447897120609404735434024411794797943688303087285741612975731498331726509480171459956349280790024400368793864314918903889539607815410382518649259701624454498005775001258053330760237233632124484243686322045208572606086029090396340811455304536512074275688798990045732077834193487504116355290833179627926282687949695473337417976392512376887075915087774186649034924719665812077114611678105641229864011146968410583985571699660955995369121141728179421725607613607100104845706989526533613238410897773902175455153274559806978632469840201002381677633645012822979899578218566820512609421871979839671164906942531990996708005710726177315436208594101129676299527533178199267640492725635737036749829737317397965346900610156242717703523982758565877363437923381442420414438090487922629081847505448301942304138225988389220205125011625510288716811064358976226756717441836031106399328608915849397670704663631221335530281788470955392322552625872131234265292874449536583548733215103407525182770619875378990395180929291010122324382457790620866729373672729315768597288109903613448694803430011013860708765298321279356517179383685313648786087758917998963307214426551395864319663203239889815434928365892206091235026887689160612571147934963115016764935449818747172933449564909111198013604673766761219965329847704547354136947231194155279310464072646022912232497805816482322854451906391048478867455361083977987344266140522800859957158638700647328913227718785249760785600888492158027795498748855661659108569797535394754662285627046191257974175738119191461376532892883966115373588400400238698969126097874639728649783577538206211632517087495087079719558343039513082474112389389564992247894402880836635424310634221854315701992402770324812859813683073988503131737741348776104414010423757901476152430145605954838060412742281631897191688222382367799345205111521437640527427627901735806482538487862169442592248968369764332049411350746972705436627564284685305370251987278941588604233715588084509604860913693275581240787350213475845594636031400437246088450548014806642094263196169413145792435941531780682767075808914741710137844400797563714416579792324440481493680822114062697377168159745552198061735979606468248815284402136907779427544493632619678079679217052739186366586813911189803641142625925147007823944668613870684064089724807846213063314792886473577856755013502557674113315611355960752383789297098263002243432852264815549761611361443930875278016146897927855234851805834973563130278190771833839708257163273462339556585248082472598140548515857516646558151518420493022914033106768012139768599724916817459055813163917928263557975651422686502586856714030436575471768555068263672805144998095747998928548611431350015693479564395012166452703410218237160043953413771023142508734771937536547281497467012408095829185971042959985654965898125788961174800018559103396261302490877903801551722030434116031497885227603428209800210238330233770791614426801426623036065134675367891074058135094141620480865765054648785444503946074066819839464464833602717750550139204145471623871184740834387600241991832941685331717918404066139108241132732527473681465739397367263964321087194998587941599065885942739654203333733004673513816592200347525967937283704996044575408631824270179719355877298364775856731523266709544631844969322831867187582232100882221772267128789294232233527705864056074683178211773916807350648897998545469785810785428023070075811082712912098971681456944700394177714806686713534937273327110824751529089278257976681221921805314214952632836696729230479770968931223248753098451179468666332437351880483501513933979326657645593293624099744297502245632237803746395680376637051653466100222354131281387371392786633735827742826869882522868240562481038317992139454028588774752951767371876971464977234997039766160645279924119850202355345181391613825178890641632551335795219234015352361362179737491705154742721182404589056359711823854238805106386521073677163337648701250096448084552099275783955307844031957164855812173405308461747395090572383677278540583249690462224811054461192704184102726958248973664720005630080368085307922963919038085567265484453832459487319186222654001277522471094788502322538472341980647979851593731421942276710250449367014745698910385244329042575929580233743575305877798091965594868173262648204794664398276031160883264176931909087443098620257656470019510567969435547459424184410231545810819450047623513204796326393686712116400253233366053924908638271895449609402406023203911159755433731967222723681327047887559750470876845067605501496201109698904226840779431128327514476629614427530588404335708446957071114860154643022692873861360743233456115400676697990038327922110047256768630738995895066783699141290850342887729835065384871167925108943604847116580709607684560796786971553984364490157637773323617420110023203555334684786021454570929623751168912138707918975408804132359273294338971421767256764093281310898665295288080939693048648205577242575048882507374585036474324063019471617110533375541469485573309166831994705424939132398918082199058808514993579166663913750228722049540060795022619373125326210353224127975309003170110740703065924002203153915105539636377560882626604481433249987557641934656234674054412545653784063097284574667209438601632086407095688712584340416824698950008212627900447203851642944392663328275883176556003786735791128536205870177564581405348988311610295155259356278720220454302729846038741690312182526932911452628137589649312284912687844104165334487941863939479276467882694559554340520358965359783793480107636075067652880531162393685699400405551915746905325770377524158555798606409390672337777404715483980689710682031466828517859188057962906348785755643214712388636186114228021489018952693862628624042489990107674969234482824118063728105431175926126461804979036091236215857253437837173542157224448197998684144057323358246764472451432696923713686184593638191399646187382172473059138260627623071325588815724798158077059716775016708943550174594201137162490094308414446417416388559997706011888242494427465757704303522253419007325024551511489398174543537061525947389635592380991253077342922811902713703161111740580281925818604901188976342648537687394706421529778475996314454701300791121771099602499757573513708909278593599292173547609468188445769484203108380253078066533468646527105347091575881891016707686725164718391172969461834605068887459466176371183014284321579150968191463607583778666189306148212753173912344146257114462781612997693735879257107869637937129694364800469247395348213343961745243722376615010110974907182119184398222736617192936053274303629229514365351173366201283490611124086740545693603726250580148125016405183127687997533997604654467537199474860412911792717358831787752595924432017821754002545152082055362952812328524910601930180728659620385744782534989922926392364085996597898210926143440533103765050554421792386962726710017774924727478214856530206564853101109854428994951312350932673216912802495911599822605069100413152099256832201703963059526081425292166385986124289923376851254602825766782140513344693792761469559120321632041377819394560358591124254534248000861372407259734464890502637947588394012904593866585780125383582449748719687079447186921394533411369588762960147895006471912370671819760348925272084592382116398616414852531667874704668717207919583773436552022611946411114495226029567144349552188610427873015573025931824235821282641035202593109295450010583611728014722306137781244458524595156655363263745797517227464618679820969727905363717780614775123196365421498875870228658824185610642650634849507949831209626245866538951497701311682115733782896162602414139570199231019419024114528558828158837457093890832294606111574427524572743037628087191477485186279255405124066714223047448466016114684741413687296748496872248235358328750594575075369415769616221487848471505839146873314570328764793646016922103807139914461463572442059728601694307303298817783032509376566116199887325810434348106609029871179317049064319398858730980377914859176558480352032846993393950807471178084084530718310820858635380477556368962801550979506903596030659598909350451384269248536381003029382865808204691909205368977028946037661019123401923535347147144970735200221684199823757730228914108007488159791369942814006866582164029230179592973638967674269284378854387880122277167598590952144638777719728405817478408608435272576160457886079547311195084544029401319922179176515240500142688348827810203021622805673027706724873850971804344951456474694664522810237003607234924690693733204427709127445913705314173885239412972513999798428307574192437247410401610424923329237142303906395100430675628375774738827800462373803817347248409921052208766813127565777750767939338103590155143251090230505361583155743840921185403186772890438814971675108909147197273888541001630438277051069187784869061752637574682102171698750294364824488467319781352819211935692766879480327789103596102946246659665978516167446377091102911866176848318065194489724208341255371050605989976767797873191601931055282755479314882081679730410743461075837172716844916786088286539001245668424768006885351153992923842380010276030189339526285457173443442079105417183483377368891787246230391671388668976467360657161971519058149678180811837987579888992251932361729653974160743371179693718772429480472386086318671928067914685599393647287799960248228974694525253930134362215057286881274189742077716484320817688519146470467953800517626680078745812184407629572676825553283882874883897443917052188857807111645618178614270101669937563940684750203875379927221708540600865188663538722471316639406875665092097052091511918194814436136201050889210845329335636582154779418166089177291932775993534191700989122294527121764490961035691791848138394241782415528198175009966067072227470289110654557245888839771510361240822716749388324189648871252483678716199869769678584535457681919762749548506435909083862007326440281373102808983028737570927936480353457663627160273546200886817740111979799719470061150683462169686064810893804483777194482772141148962144556247108130183895851071264297937755478938438766547372028512205239245358186559536447461336815657369200663077337336661511207534518022034750097851987699787648706265765603929948732827229192042028440534329409875745460985413786225149348599705652346809038146016932444226361845327129428774357690011416598057265945010684738112488129525872093749147251521467945606882850439417103574306697759410962450398453393273478219220571221755578238039935917081397899199536290318669851035633820539549318773996979616109021499102971524277374538854989335508948787667999555348226451903653501031347847582763377145275271346804314732996253003405142725654304976531904686321634326654583151130274781638747986587365622712801793315760054582612047551277138768035792764633863801274016619037133568673909237285527449410718399520297279494681621161088346255586936970830116874661547376793433842144687384269406776724592588643812856498074724818990552615383019833788301449768655274780411205863830425427411039899214350349449323695013593179479590487498975702138514239905969719127350844922249399676550606910987273827380793700149552296388850356168592647558212391955402679799173546784736653761094536039549561371327725765857254578066317986002965262614008650242081717517978017739744833627095249678670858774565505717201684609522008360071007149805465304830354529049784487858316438804651309365364321697633805978681107321334332327113596816554988310462633343689534281089430656375999545849104504319953014314770659231535639155374762509086566361771231707954863182819357564565803401371351340363440093852869983922501159156786909764246694284676321110719950460854047965017104360131370232640997300550986540217659701638849163348996474930854183360597636773023508239167967780107523545936277651319976217372252726510401896903603249200537074590093820273820356603752845199290684410841403016829350900775270394567995936843564471928218475012010493215680284243741219688571720129564233225464049982342247170673602498734102281708247652987163342818694383829690319227309589641282168078857497111447801021041160432552293410097456781228631059190566715449213177078705345541967282226649479150758582087059637284868695286433335150091626180113776568500916327148574640257948825644304618148433138576939846830264395139924866389522288182129048844403880384190284719150050360003791352265005009507238341244146004515740517521141787352857472988284382103361657721731858616064610894276814996961631625583093798557947816228215445310456339798472998354993476040537053576911543482672117093720489875556673205977851295852996617124717977287397573690358681267108632638306464807047557317254437140195593014816719108508178510835766631566207556329280126551098155211963958166142877271235559509347838644921934762989648902821685084063589295880487407626767148328138733879488473217535115723302764261901060987918755412355768128104781999663621644426163840848806914409606942618592358103526286713809211744090186941954294564875824679725166990996452711912421212287698359537623047415959244489590294723696360596032804226785448947762752640650976329330672792999079333866805916134747636653234304437315846388418005346056695736516902110870333839548784148705239324971486346119081243987583324061818172299820427118833363541276268551652206991569926402317790389773264212055394761705881440651008202515713322499666260679544553022226971375118849573899965262527454960865870163204324293736489890433765551768861139062870034636852847688920629734219834292729811207399973564677587633870422747034051988285814380719405182717653830859122553184900328258439307499196003608795228045431327523060905596266263816751347935834197640093042014357852309878034234311820092444930067045899013688914823241110896658281688178864668344892675587777671802074441850632367604916131551139255138381997440821713706101556527628188957546234792009853086389100765680439325825157629877143931868189786637577108309292656360769627474943092025553411222016500581177168978666641966127465675531000389085120325784401077792350383649435229510075696078146003331142033227739829304804856984638852454927729497195770702226336043416383911917110965796152765251981679328901550717878603266213812707598464107701328486514186390811469184301702204854847114498198141711476375120694443564703320473150062600059900498145383559585198618578069771397243345001889185937420223668442145723850325221809975263433891125722911063893568709682060248976117826311291035182914550265442503922063543549615820724204989230679440257762123731885635013348746543520165259731423517363490153600809146219799155012279131626986062917541082851351175453013930691682831499011551926669594932459508309650692424775344628776427466727053171719915741598987760220455528653874566331297125730962673333175231817681481579032971577101343631028923627141516874223812453848227733624562898621122791176451333046250328708198713776387041750949539775109307961683445565626813168904765516009684954753720407147668044315720838721922732536638099147540143546494243583940173626993546894874646646505543391562665250805403430400542665657889947346830657325618771014889069598247291143031435146314899699929236450781738664559153470961394017236500653992099887206541835659414837018860036779006666418717231204908806837150281594210798080811291477408328224903868708982751550494659378914869082486829136401063460928324507880017176604669013600250728201934351932588896149688558053842631426403611067260978814288191366352366065471283564883153944516755208388384481971701912141417734298069439077837604258588384301366371794266597983214850147973609992230615102208100018759553716684345849736080243315689075857365278943353168463300283361970312819427843326363049856547894022291669366626687227823245405067147137614290586958380827391563199582624971227897441166767020184138226849124666334941509763875648788070144858254867040055423107392728388799826796365226740874001599063306141885513400209516485677694569352513727941216666858049936111730896136270838304598481016296748668970419474169840599535666949002512258033679977744510680105214023061902755998226122029852384213279509149532462004215708485572673673877293434553913723465767974887967636927735253569606328601935740649466909589843931151292983629303545332778916959450962747912396851579652130271160791808553211197126752695573922661842003412447474153785539501661801558729940455656524713397308923187568925617548006764605544124234372566283450904517445396982933087773088709134129630245614535336317811463771973971331640577224425327636540839986360828513822885947515536225021532950098178472599952802559773961825524940383549877609987992464524355498010121590925605127827937434351788501504119029955968566132315353433930543825922022064527883658837598500150757331945957037309465465883721989754454875382703695148016207115976950973988938293083763048103389368480318688252165992973337201015253936852384966275589473379418737822819679580932315677398441612811551666504431256290545488653782093499127916319701071510995749027502118494845880417682046748551632271457102340586332556588748457570312435366531131467397956391354563704176119534777803677873709917977592175724286409403448530921214150156260352643077688069033862135504751418346435360274056208057762852968153868744284931927358233642982458008887982096327955761229463499905169731321756541181759409078003690945366055046914014725260468030722713070938210136861529994921598662036454015625053555034654106641504065248881656837066070243961756037676398581040934448527640428830262594699892462544708499353023248036082289570942212543355689586582389536645931033328433426674063196311827360143179929793759555144604145400430070932801135211081206476690616187156037926051428408459878047004012793170401673370169480932236692311086584520984554014581568894050292397645945875713327824732368840514943233416949960193993980086520098476625637431647873527149744136356009240635666290134274726967357300670722757876892266974558313813388694477215178067929987902603672063302878795873624866445613154724853937367331334679953422936434309512849311712368946827965102683979806290305351055251035695286937425341631548482274840864237906431842584868519755606607035786035897216105734558247271547744569120229364125598590865558880476673313914388523080260602680879893490624558110990690918608663363930496407517080953070061633339949976345081555771111813328073743408088233998755878174721405779218391767878925966289062665797816644439645817217443263182164270598860052558283635726874119417301138221803543215870637441580961659718291956336592459587744551322638858156479979198540836807211304051270063292319982756725081794140483679706790053207268822857317762254900405608464309906224302818742369530287648680911815391919922274247093883159581547130602843404720465078473468125266586594673159825469431952001010785701571466617286305480988650084195030672577294110252371892843231844262155468464343157089606127909348286223281805184498434670568514116455973402191990974066768310630875591072272218387879211043065004125866455660017830513087928407082549854770330048181586601039400751064298114392629646512312888176271857032145417545189065360560040147935251645590306881393041882918715446239107752468350524220643372610632057991271266861682296193046049380585016025339268202281680649682303755880794909578856554750987546432461618536820501944956553468384476610123471515086310244989273469763889903298365171560967477003339091384158047772944435116169385970442984276375586080259427639957312807692394850354327554661841981277832341009824361873798758164978548916250316826326775510918460177272873873158759025468349652426536354377723032261737015907853251700026417322095087821334566064150269363447014409743778051789113522114935827113006278431140424110103696273114472565207394596373822311257227540166315588259693810959398612691668179856764093298992935786274789987332326188358320735674165265060198856500372562221494252871414906343581021607710406826924506264388212186655499275032269967946111100881870325861313048494373094519908263802424398636908007055257469245355530270443857078080155519448827346313506440531046541606297584824549880326803141960052374643168666296909884898498099852140076982324191679545549757496786253895198873759781620951998097928640358794936487538085193200245192837079946895249513019512095962040879364526887900555451423149692406349798328632250159120317443881292297177152566723387253016828957498580238567878144298425377510764980906507401073670368521991191979750134007954219627912943135407816429083659210870173821567272611224740541211397074309127774636762469103589511466980584014319019028687186916730629927595896557328379913453990028973999715414236502339485888931344015118961913918672918751253243361624485653126099298496907451720237717451493356131336437414273682370542721341279731148988146986227712418868488348603337540379822197595821864731304925000932684187817201419534142851305785253531619667514340514638538411050562658942040825968880623063360983648721431142913904667282800656262881801215706649042904381190887801650480654972505908499112771381775504428409298566487640646347425885069012350280722053077176205290083026542752251250265576746937436129756413929408227905645264741708320649866586928859863335614757580117267432673016303790347273951660223166353550482931377686128542102953876788496868102672635446265504059314118352039422460865959255527056284963413191077659633810310690549258413341555472591079444075860501938801303876039075920896210214714122041927002975544461530656096633065230652289239430693330198072177072157866940178733387875700824176087811224248752113477165774297531769334261626694126497454397581146205534113585808278990481537103034765353988568191622148427191768429054316239874333056980534905410818635061197512937097209240416043301354525379925010618479064280924033008799920523079768293514104830463407066112092871173695067480702105017198320235001975075881727945027008081497898670238373309784062032302213239710522463397510367538018686413516296444669299865817030966850941222385508578448250562723515120478984676139108016005951114625195152133084788873017114472276723282591916838689518234134352901539856410831954812301904218498330463169712151031077586636523637427460917698519345169965229206166806898778939310695793078551957780516858015591714487799401835212149460680510944310886054340650458918715096212050901406757305613089634594006762220439143532607592002452828617667698114250809043222684533130905962349148756780329779184729178084853942465206487285789502858008347642293352842078386642716861474923717623357608580506885694949188176291532906308205849547635534599066301315192342165171415980378297301310854718341570638037567597214668051612516835524825146512572781673414171394675868113063404805135657432053999263223595460453771477621213254738628120474236319550317031092588651053619418977000273551171227339752499761000638683592887825486478801965486681593406447550372289988062944508996857392536852760390943584600863488721311045824611692754744210591240217263107048107138194393877857682636939653256568135407233029724930054833330391675242429101949476453403300858282093185983708063747475790846754217472447095284739763836822839820476757765231373482364939254449756155915699657742783438507329957968715924669745073454858906046214588564488219990898886244218825849380775117630515412564641668928713943054592430159051001994795489926445886658529012856762116318908652239356089821415061528975802493461853084075487488056136011598121571085350744263282036251174742740156732367241081711262413391301054357079673224502316040801649763262824579130969814374439554762212009067825393793054094738198485620071867388534761742753914873352806257585057750855235565970578622473497282836012720733285660737264736965041934025933962567306467536235464377406911245964184899109915693805610504963266651857097210081001612580590840555059696730945988967703315250615132084264312132013693848605851055812020664441440791221675483140543296626026968595204630037848886459637816787685490889406547094112876336623250803326085570209046851280441474260980626836874370775960942497025538758826105975963525862506336315813687709658998622269763648660350083917331739727038117461251616783297957808233167790828785404719700291666898838997927268584618627929290141992400768610072965998957130250327736539026875525163341545915353208254030206405683784239754336404821681844030205946970989152403888734001020334841308812473867824076862960665626423186080823684072067926730815728680538297305168960706373930935612341862026300544423890311717706917556187825417516642553693040190329351506943985724310917802779760069881258907775106205767829842480980406866750590765548961756569444386965166607356922767607003883363580000061842182803386921636430063138717575653645172526581040850010052327830069244805822372643885085981886523784757463870745693791690664503394968658533340454387052154093373617656552186462191523110348672333439266170305753908534820508270819742691037956140172216724690649699566313105405521517610530177006560603152667692690894645802398209062047508329124647210450678990138492733236033915931711256966841929647060731723066198263577843284657434637257445972996068749994721001826793233204839182915397112200660990115674156237149828269319123846599168361813109986099496874483442340651602446996576372710718304082056373712261633736856226691965443630668777890369373493283983853189316348248492588439821374450394980246183372158502499353400294348047333940283377106306244943273941715881224608648013473775748948502942326283167655114507531720007930021852407836236377870843165213124919789213820256055102457957650888948416365752781290833679963274804619958078338035745364151601567912329722529883604482091653179702922650391790815576526131260547219856483995857258511614057908458526794205163733834457727796930658042931359120900818206689803442709088975163245093298185817214843810742261802244896942255136565784284654673310408829605471926364443657967712750147060397790370458070900969612350310504806436934809345510875297882203297518091440611378220002968359531842168152443943667048703078175501461448671340163295820054453274700802090784559105498372852789899189670381127145093604379746242005838910296824243254903310429785479033857771612992077689167601944898841905575685127966936699195383916377070452029313543263117515581523866642064474559524769955357264627491002265588581884687763617139206076309375035015116774535777458113455894178783037911465623584320960162986599909819670747144049919951139984448612468570347325288220959948915739680623560573479514612485842699916715106595413796862204726730177879785822546337563913741881012051981784946274877770799446167138274764800075522035017181189638092693277596790161913659492169543722937585865856031671216828855762729520741577943882676456975852388856147881936967357763245044154410220768421966127961156557452442019646178521445736656472494355166514063616679806882624599114623683034363139833160318106019344971927291320919007199075853682094918750662619782889188432295268767921788914554380079931814923487431527306100003059053636690207499098325722628329299391445721207198731928025635487227496271530437244026384792143686803984663171465893974318886132662616885318056300786842062230716217087400067757584793855338886218367251146297987269429098182148652682551459609514560925903385069509222699705593556493538006097385608436783266210018694324865786586114238754432855092726461935184536542795875732463439465204749069717929110342811224596621904969775086383760354033219783695756555815100184294969498436566674650945114817523732275392982989302719692088510599474015742727494071662060312243866066513731570849629812209671382596178012721697291706116449847024546928015272330852094544432697317792352767990905876914647214006799627906587902138315647708181020046729630197491729838034482626682715342122440253297746506143053011300475413815398795685649252663143248236851524794207215809902710629162366712122569151925295680771383902342944915058718772663438971725111304715743984630107823911237794829041294661774446003594123936747035852398506693894443330578360873233053165614108319059837076608524627054140543449112397629015484360493670465580276307712170111290194442887193130964118183981235288904723343490322191068942497061341213467224101591616709102138900369197578751531285788590858242087606931248246933615600358577487483712594526706878871314121929847277350397844429274175405558999684419345711694200234688453276305007710092298639419152361713714148191340802235293672732389129767565832846909196016623168387459421511891316757001590021507841798360343397105523113354273859091362501757038869342579948556240240237873510508798155520169421963965773672597363483110917725791112769863739557176209062714447607416784619533229086738139844627957110771709246263241972368657454195731664175235363302300949062569261484863169195806910748753216740327561506132492066699170822936896940115072762611786637921633539390671700432452805057334562795893558020576541039885308732737964825495335817044252809322487561572781368522091742567679644447203372445982671734818528347688110074972875025207663351940170344740039906104758137050346645048517479320091903719279944255564623188680876729835851264666067777211186844376230473642089999461479198474328477756965090090806800764497260393061087536374661317403856573570561762987846834158354887851786297214256406673295261865314602700205082441627615632058088920209052395329567151453597112148689079968570614421299036692074771956761406333062362645528201526214773583279691623140877363503619562091606149141379547183182157276024143770910732712317144300930178458138091387801083360760436682282880600041728791084989458927459725720415268101558313818940967851855897527484587902008030079743579529833040150476847115178992314643100990637946146520558552736483781033276289927693937999922451972750420807861053874138194246776476743976086642655051670141383145310235959223573762959808090575187493388962187256330825186162247531361827181766145444928617230501216835681510293876643673811565662322583921975691685110034092514988858215960203222390961329500531794299682180531096055052258869157483480581681705650728367897901857371242816805187375211396801429790371365578589994594467475514299699128963764394816792237848460818311225672741272582771709744844435314848947621592973481803896525213182951981870966215739981302880454804399847100175577845944724436851024021072170465323683147680077791201263842179609772907149298387226823747330034540327148257640271737293048734871963103899751599321626639237815308743559154681490415598236544479492974070699022419761566016716034498483944199074663383388284393063846467827960257754956663095867966970518765763774096834277268090835831768703359739723674804149151418899268059718670520700282911070630934582023964070346825292788021055245052618288690765031251413349038506922160647148740792355085927644925201104183249710040797149097245937003485678448908083365223767352767891127971935621802158547184865890576883302770093062427829745826556091436867310297298656504523226570471109865127464708907666093993833787886500640232801439922251794656990291710824605841704226253935891227981022397136435723369648269443773251368768858058149020259486126791962983068122821418517648295196115036061435271659122012571128236379033892234716982024385932656940255037284772009922646233252900344555998426954988131833182169332049564887364443303951962920650228702646584173727940949627259656341114278793660836482995358761635110935502253632175611685071389587620443263202798609828480939400933860299271722074404901678851805307521283427961659821006488511601498178074464132923377615173289311149919660994411935050965546185950176817113354493448034991223333542435043922390931200389230999133141545006782544984241946228389730895877026633484843721772119999868000959607277014762391475334410387921493574463359220455082378673341543677868701417195789359924678496447887501338340555312567688561845800085370468440214411785930979972198226051621772756599328605779668788026706412694159534081305390498034824797535242563319595367255667313807314037436530958140252094039595756657553083010687002080460130539717948317605441110117078514800685504919191755110665334047256464926281312238528069018801511624624721697865129797196886355436775050172676344423427802386208799055441517834357571359583837320305689217518898142587297804890298867497122052444554104448456561223148131278357724371468859103922192476227658292057318622516554926861745860363230213018259221751109872590710738832129323751288376590597017565698503014407943329184968036151388240124629558405129536132180548544639563008224108187723853414662302623801958144299873156749591062998652575180773288824730616841857975685246532369626813190779272205905904086268138412033674538078291336720593421020983509389811326219050691929642790769568061447115673367412100416326993407648359078324571848618409108817989060369113625199114522141889384771257648148313044650257258371930430519897339815902866902789294481595007578964110228831249843309655621741056394376442982019283417982415329483212405417745062114894052531537491837353812953022314956334499337074608437156420634875572434855396302524901188451450469133935856499660824816723906597873301981704622732083979572672588320792170655454529518783827552092132668742669942800328390230786122463520369232608749944669438972582354445357713908603417784368540131390584015304119400662222826787267769879442329672861039010451677628582043220632326167349500826751429335365672857911660583137118991533194172871335538553221303155958396487833785340098324325157145498534889568803522831550184817890488314702087291848024224150194360003425430702637451213754311464914907295568216891068974369363226300160376483624638050863162133098748413826653990795929032029942324412496511821790909504016659681184408542443457588745339541206436008766326790630441607831417275682228736016567406052774500389529320200146489719009319059297665526605669739708548923683435073664740431067988644848095132158297258155673094595013827212252116910591516744158443058003912334651851423610129537607481676621703109909305979632663108420978838190791890600855838740156226964970083065909808441048018507056671833368338731900483603722306386941158095305031282993848013830669483530647775378044772082411941698804460156553193077518232335758041216241592060562581609229619115762799589213507619974937577879936824560678697579818568392409993846347046681089635286444794070295293904315753249644410170206098214118712836431284556108852718279152424489005761330373676431943456316641038990274162153192394871269313529931382634828523539553083685341400057442036673120211317681723408838862665144021454156150343694109379669222202850697236718962547520483222804771903967415033801402100167256826153176822910417708882021728927980007996728146151447080163792954947721861404819612019302943832989033945188182733815608338933292470143575073307530641437276087001782556630116098269352618799573480887689053259683897309341831175179114400411289268158139830645150114184949350653315628565175351997546403814195416982174014450800103815603453004732877013239870637599849854344906754750705790707606997745852099442743376599376484765491019469497860123171890240477430721541501540074022154920628723227312981566560904684857508916238620544388953561471300425988547826672834771663589386011149197818816220227337985314778867314009958848290733582344514404944120670223732571405796983965395528029912644900827847899247109560087614346828888981458410006569845578529642959488211313596018916478354152926065585642475822114144838438348251566295634719793675206511582003318956162367770983873796336184382714105946140293070639985630870092060072537745402831001538564240166168440716620554341189662946206897455011133094681830271413914107057088314101110998286845636200297347736792870199910321291410941887284722352439058060829436784506829958932964768957634558874036363615354434814074818409189230808396592113037069051486122912499552258102089472288784502479343698215201977302818401164525881570170350494187152907699367344851201929472131848827372579229657947187063565462138981938024515760813425203371768916614491167572481722725711717243349659715873087954371350238852770256416251173276285190209933987602162726472779844657548558683116171066597170747947258922795134373736453874912679689028411567178228395600926383578055467621712034686003500857212729860322465346412929888380310764908787270651295345663556585584357708050911809164097488046353366094168099892748811401207287692023086428801708067315250234993425434835295865876514524243510933261895414564219600793548581193439293451219115604948887705324468108203233554517207429612554891150757638080864840703537175484243677542764792124539923332153830643698823751206229771511511512826674420746231651912408571784002357072095694681205797519515853747910350459889379202685410453406584134395769252276337331383010908822825238067478722932117865800070380712867602516384564061097284751093646204568689729261351610714675031410122486624096258894924433513583846300266052802282305935747464456835349349665335259385748693686184305849133832774241464934208941541060286457247469521658850387940512634794665858783268320521671087138049431635710177264382374854753103150015098039275291444647182925176084833349037830594494247863939041909700434597983072319674881709537589168097735935681679875839369246874405944630416122607670894856473761253991081223477078195248934456461247697144009983132204953692672874840476832077772634529782025969481888445984823572174369514947493205172216360669089441113817001981980122671885826272172754510416205569621579319493681154427646347111091534971214863031646228822357871306643522209595808247281516416608579205437657597362027058220497688192642775643417819296362548004519291771749994425373836100280727488290265595662816514638440437937129891147899412319443436899396956335693496858891386017094508008487766706137750905915995466292811403818656894664635788411137215637720521938447257544772200673326032968853298181616518712499090942105502449955622509921510713477288408526405688330943704173230260030489681173260543887135365570592945796992157192803791354290320575314751354147565346947432966524759304801060054145247698135868428747506671597158019001525570716352547369274371900478387452345596789001700657226941264738451932792982056876844556796047022351503923545065511127013669225757363323039023987723984944598778005252641405148642939282788401605220946807940007933910718110679721744572331998567078911042672235219867202992458804402270395563607334762228775859442967908349212985890706358933260030965473608785172031967407674776001041493873612510551089362946666655044527116949123142394177475073676879166839186017861603260596453731456848608927688811767971461168664048050875633145555449393794246328991999247326709299743478063744296052813383744915023580360235358575815972853566019242853068320237598332672938961008074726791034557869428384342927501312124004456916772030171292495316980213564588416844995543829549690534877565170249841412431340002613620183205567575996077903487987406529716853236988090272114280689011544857191152519488890458026730713058995530269542237354632176497347505744371495764123337510466955570807652029081589095411683936117177141590572946073644817000286264354286242887434645195357437385200909925858481991959864662017907055625217684341406769734842916367679458739514004603107859996601585872083912918085084832069700630300960221055143744768812138226715916963678973408167681643957572003265533400375614481280498731100828581668029442034198225662163289005458756753922970806389826797087890914608758481190825705138587004462086053689184390709171101108701851205999772288677982087950770304872358446601191438573160899643948096126843690104989045567862812348180731406546893297740546815326430293928232273289791624581142190045159686550755214620519887606940573829641351114897753112082343221795135315233623558963300751908208782152402396853432546683931197273992575520428098212285033676515689792580186648914684892104025191199126817706688162212627835875798313261668119993123690416767099955907390468832449609645185176240104403965049102689227533501825767879227311994216542704974964111091922971347542801352874956928221311920392843889412499141561594926781503391039269466173661204797430612987772724682067960321625246522036401170740786134527573511033172720858684998870522442783450005981927158676841400504885660541493884302774198312224519832592184729866546659852207058658754656548115873647383649724657839228795703724403864682618508574888788862700355973955201840007962081468364236242343031730972995207682124556075610529426223977698433820670917849401836365184577300669537201481392527952849666453031309623183303561984916766290178402555309735883447207926699264044361534244085977488575925311135587839613618063697839465062686054006343680346095364454630963663561269871062211500190754067555545020527760741199264276515281421770036964990359184593791375022298729219114488229296232290502212915778672207058915895983866453209274131915988630818948870012943016132796109823704647584461822131988472361887434173622875483545787697317272861044766107808086652577117964338467282530742057399584041701015250756294304377098507757578541010293022960535881512653322711008485516886212913645387546207881876776134058825417461926737140522065417462542370349240570678303201562058645801327744947121422989941019559628802543559435057401025599860093689484409839600430060378876223008267633580913073169441347089370603238647501676691041318126467690597957424336540974903725720154434625936228067260958666591200154778489457215977726702439104335109238909462756574821772533875135314042541416190582329016295466258958364547671545597257326738306496627089597996841448277837981887589281715976849417726930293730883332377337155087014728209298150977370028259067630557122945342065395280801105680899351713855765437230042918702778110957934695941979370844010336481061193621113316582944289021627728104395446676124527465319555685946221370922349358244141206763226867647667496586513457098477481110008507500832875689764171636880052107973881828037692753885102668893119744052881640291188209926605038884039305095266616887426841282089994592511189788282391437899755797707667444849266775540100489822843540156467484220180086147905164720336126986771970205636003356535636375229192048258148315846024243933867927863836186055664087938238926538746106773083473913683602900107843350223929907332527788045608409228864491851674994264598227625315058568830552256749764417231619222211042086862965769984876189654552048776621706035411079591009033545641754845076578769320824087539373979261242948025352237876462107159719023788977031386802164654448887900951362070408430801048636140509132679336203922674141860282787494189681471256991800161290379363368290658206687101824822002849961985455378179119024084715851822835373841588310893888659881676674475036827268642538603977464751532326596421009781056805770142470408829554271018250943551679096687904350732022861669764472245950179131950676479133131123439731691331328546484536231831777615675706529252946916979870885309750123300254571183261795669707862268602372451399977555146744980841911202831680880122839758365184566085528476328158744107298438465409092648582647754687059823117080605949287400492402103405925659683532459833355033565051235238603636722545660530748925329862767092522811673281146311976724803410902823005796166812804993555859441563086710163447366396130756423656755614198146617555983037024594367520948664702313936644862170583291452659491660129420239530602811740659922634231972117767488520740878328214188951988933538050996215875693750520183395949694962088922726755740949658634160918898670442329298646408769666157918817173976416109405439381780087280583667021680936409335227273993315643929391652731255263054674156810472581354210891251647587772281942720769909532399023774460930692704386355442175612115573554907954933520510804715154838595959678951973822266477970988801639785399047872762817461281409957715081287513430777304119158179806708058610774510259007023056847951611929092310683808614975107727346221803709103542116885007139207159812602572879964517590126013521171168947749677751613367495418052328544813328825892654497875259397417234896910444531608549472527185108332227790042409070532844554503809256498935516794807588304503276006801169089584804981760224820647475893040510175238290758843231867779157005441245462164202489905768911649644841056991707959157790340656129830760653068828883841999375475613085628880272259962284801010508286755165964628569252683796336821641299919266288580505291424579807071128131892384690153490828814498167592588514767988369663620145380687336286168551765451819554272600885014655563994371596418417022577120757481409439858338607467028808975212867332475756637293816978826569812783983092808936374706387217764546253020312576080825651918825542319811125098926184495252035276020981784232071330637151475044717200322676822588750581248934509451746206711933387452322485059443843436801296015429955077230429910586801509919256473787433392963309834665762766208438607029459030201423159784551300953865156482922207633840082727450884596686251606930143134848689698769242688514777209829049860246853762532074859657354923882110514756951626440551707154357832832916070404931308305809404841700259888075047336934747841108963315399941505076059917514227646959426677839331446181566451076447794421231130277354362061066656694514284352575219783251998518932253855560690470492027273827659241651536370417363057213521230387711862035773249015814743835572105618028157366643327520929911810342703760648344907674686341831204679891944854486275568861435058324291113239166779184104753207813337517162821459731437270613011551967831519439478181042857266065088159192601952908180254108852280681802113036986507655804228256711337827076280311606443267218923627696008132999791723408309944319700494027991580853695465510279823711755130974863838887130864748948019412699206026077484379237262567844235419733061488103011149717070774319761753782811839323037442203284710132961022246091798681944666878551292718526871623005006215855950713264733322090400362416552377612378375894282765031735778985095977283983002613687496916762229258574358336593718341977623856810955009519969386199661631536120274241427215649761116814835856887419885305163898788892050841005428562637845383201584929327141446764531918855046113950814066695078460494260524120841593476875924943150469677104974081009294228974142707550513573132617260729433500559591356054973682803740977562879450111939438721464643385922115495417689202382565620023629954631360578327817335201896910821629707573912137809622495084981107029860773122234078369300242886413767898273856688757878548484139603617994371279979637664155063461120605890132807336302588743659663558288609456048458084733126813774484811516789398349006040559221082992516544182588828302464836555884915842649291681226139386730820130031966062754037846411804469208239833673784230352758204043450812639309080510544222157936026101829198263676033835493331031379615401621035394908951318784596442163218186131471420638010228909173583170034473070802552323744207002758097433163181220980443284767451768151940317060534256835426646656535872623159530809824040305736713897676610585406985321880895072744975836251650151638533168258067618204906732560199406519070730660344154020188964543527324531576000302472459343994768327849982614002178413293289219016547733173947786668529242722262562039100758976842290700696996036583050070112794919887717194032835080710041872082249651928373381767625763104265705381921593632039696168507194176876048641705316665703064632251473109629993476571581276495571341854306158144154094655492561641371264338007663089644667487836751137637168366750691921665310483827382854118109227028315182679361826914870954098492372914619769228499515952502353142420236243773357023933567305010848668361706880793357851301779351048641261366713417433949431684438409859042106735293708130621311601255415294529726022480507064615992577342847676415232937866023900121998014309235548621883503132806460745800975846478598799125785814442098998968204313491166870312716024338356629964406973682730779500259318791990501070042922272254721616853397131316875557724515174741025227883468937343087286890735652663400966165990797474406187711212067165819934574377563514818757776886926553688484511153855052791847153212838885089378849267327190770954421765389031384831338498217249060540617254333121426543600895351652429006611178396476742303965643179554656729162144906538465723070533278364804986099070842846101275774519014049428220761907748547078661232622757846617957992719537294314153961240714704304771695304194920381236414114375253034599064389611735960451553243466094511618633107147953864237864184085385637754438801156741644974151185759082719992213607737560800057220641596804369707694508571297671465652508295482981202545729247964817750034283020554471917418817385262243178495993685356702071594384225552223122897698190655246820446046760952717016226911809370882225428972105504185114717780102945747441348152977287445069482562668979864778356253881141547341671263420302970786665352247529360048556114305651476346534012437638674153532734578121260292977982589383697689886593885434698242467242381625740117921013972483724483668883366507262988315296887116470800921143332727235377001672416054124751092102563380733358557604912652614479622595040284350055184213217058834706959990036722972585070575321678525457374347222523756682220174748087781409220443627487606584561121013181605560132440666189727381828160892316066242210214093529634518079416924452992365369744365304661067761827987433608938970846259943128256088662396166736485639011848131040458113620251897290606896031778729029597394170796549629436134015191406271161184118888173031150139081341681397723826638606901510001509126757624581511830335519575239051037020078915026260719537618142066711655233624454396493421853842267842963894827573557237660629920207727505580504571127516905278990789745074396495268685541277086886644938869830432052008555318114810597801826678567444187290796356046784181779847118502536138401162732572480123244397908777132641163911434800788310896294556093751629297504594114515731882703756816234714136813379526545437977812850768408868195780010993274379361243577139415760452729915919373740869175134606495282932189024343965050313041074085980804758710384324598084391998974821519436749390235443764025068898866799492519686691468166840602306369389576811411936281282732970515393820728050055177553313573211853745114997673890733648122788298741329018229080321715546220504404019651019185904354351586474500315931286684717702922903235370742560845046732410309546824127501113054746278920425615660562112296354720543745899577356023906817674874983150432894043062171885947564914090665934055731944410239651815928341384946777343846563462443138581157863562500431049486403746708937909378958756594042469903702034381679760486087443346218777011276440344711790756880627888394839075364451879313886295681688615361239891269659046531670956494905002105602637322684177639529952287041866887132711570199094765548106635404225768345731587511009368351656216662582318813330780910768601506310894596013789148526722099871089009927794001270710090542270207511828076715342074611054787088523539549863771986949349971347546574641850629042960486394195127402106980970895510438481594906076880838273512243616462729086797554621052966468613121781170797644115480257765093806356301116611036361483373865971920694755217061990831522831810434871250099749074775613312858476291069877071198319033228965159764718065102006533529478355030006033396180534925503369449903766355346264950190170628476880600763292316637261032550438345873736672770835586779945260248649105796784916111749881889957537824031197439836346586523301897346652667617381699025763194250908693026989607778231111442364769997299362316985986898242953331782562730482121295445414111879804119212760144284773022254695693944904459203271464377730750579504163273208833421244746603119319750352009285605850271585084572659365337997086892245563229103887568681440731120924217832102096605401154722568522311694345693720840956592769593139614642306282107818611366425028980506815367158724474240713218182659802810774637195405480515127621672577949317124532627907812767313538728373295319572674275254666757736502420681071377129479537558517318871907526309085016243087408189839686350653052189656118703690540046392520258435711553115948642099298017506853435608407947817209759635069051967338833467618306948738032750794811053203811478312481439490457523296511650030997809211051457395992383452629860820747931610729314321284133076984631892711190013855832704660486040515344443599225446934037574049493752390003573075550222745839762439551380975260804559741106703247744046038587462730580145943120474696049803435506255200039784774784885274826558688902943805723259777182116084142539202080989706796437623598649517557268833668116578798256663554981210273247411064935418671818528408156629490485953219402334081044712826439128011262089066430071710950305040221056604152176351691885829859300680125668301305682738040200513330462670346755563230080346610135345152280546288430535021036618333599959853605703479731036701947307159227491438775657293572086578460486749122666370910031420370416270191562542836640932841212588512413967629612442787411262941200001548896182572287517379484342844731654736562887382850748707524817761953680476588654204120451801251980736191771343887262045347543474167888956050042224829746290869246059929726905055378678637126853733096343107367345602176899883417021874154347198085207736095475870846651228465257844297312310864313715501212043793491751819412381269515792034652890400037280237979880815754086354342347852015073452367651535103417113576945433177577179383507534723288183684696250347041760287047194371012998957080787509788885751798650323361405923501740119569449100099830242864014012362765952653199133005792260589419481685430595791290308756151025067057648350213219631132848132592088279637097074814139067811210576057210146941285699208333332615131764180110754071095974146365586190375218937396882403418809983237173297090956112884936044363909301679541280080888861733397656381348445956359630989362725786718758688881780594587986777118261920936803556430800124148650428267879164287573327201781049998461482556479154084494862906305567399228723913368978057324875293117051711456131597705794068945876928010022921816132060146969720427537622014520406825450441208190272797248936328544367825495263855565911647118564508326927556651603241452819186204126653214009391364624304133532742570136594475400766680745767924241947623117613880090931118523826096447497071272935372592581733433957963469344477134848445741005285071976554865883735613061237710026449517129938481360254393224009276892046858045978112279719291972150346014513496333941128479340134660522746854044996720941464076298577419869462804993115602196604186210568652775481883780744107166104829942517640890076641208544200249551901723926726592338908658075494976482323624610251102637239143827316881976385864383701503430489633469968766491830618105882858305095262889350144222413449718953378601110046315713221075908083942444117727603131862593358196629365038614512901798178255475607377490124856112765756449255040448585372564855333623891375093349261313935762739524246652777016875958609147238480669077218463339118477472276134852301963232123503952611041334617663878094167401744026960522144578194864627884978508308148550750627580495274012414032851955525190974312959679780554137387869701305976637262401615675355023766830904506952560065998605838725294620267670382689682945986297260449957542444445077060486522324258143511808037543948874545375516456578306335796108049109112450496816878987025003867859142535299400970846911492750689510675899074741545758811848428294148578360340944546099771823010475882451311263343258310907686584550046395972647034833433218540999188154181492278981412254123215479293722567650354726404185980259986866545088751160687315830335984543342073064496850799283888808818906116333305185260712367568179219126844845440342509665085950479652087238606334279679622504999501015243190735555389902191109564420779792336412985331027041405943231331993578252807751151116691905415006917474373567383047196294354945261991606977372591921630090725095541642479153222073911063095269018533273183528430945684138652274888672432006755749053033046578959171204291664619986251813373240972698864639200456474150741976651520476152769262979650053300992677731277477457645459859498055898875271801452010896944433629320110684864024114906947952236471272655439521536597683203037864804063287018788982642554216375484398231970955158007495780915377664920595828149357047814744439389105706713530869370017997234001893544916263118474466796015809252749215892771972903153405456112156729210252675611692225778296603872966437028615606988666421817119765228402556181022638554436539843617477002952664755642214459142306168138771735761491789252768608273640419277118377679470226165456084548862276451381513962049902040533289646107003929017614271034628761757660382583921945715705310160794965820315953129394035876160626084827166974430756937624436803940512884737740202764498674662225721221096949966161949480522914518506381007811210647768029788086995024181083128861048990560924624790420156341347736664106112590572576652901483151014004937425465674636995710436724824807139918559266385117031665729581218815793027598703050907038625961521246414037301761274088416718930881738743316977959975306728651887591601216003926011810571680096511269116966534814673703490197525218895649636504883891055087020959903984338499911088802659750992183803886199664139085215486351443846986184422450073795971130189373471071624507313086615446480832535238831506221929551097812943847371281919255005419345455125652192509887487169663327489302969904277904752896529052566752561210208127247771837806752569957457102438619782680592092937796702651323286425580278972900748779400669037216354440579429112372957273530254381023313366165164258067281316363902307321585515695632311539385686117711562035741536551532377331141277108505090499619812722258617567452136927343420625126657604114592921044159737148959215586402705581054041613750462109285158738397891472796396402561177339449013878046742330144118822089424769191172985761138678457651903950121944097857539732885476470165651535920732943414160290352875434045400494364311821807810457371483299380950881677477231289062795256962383800110401928689260343530882182180450778710260978909672909052693538243515932542519369068781789485071369700242133092285135007581891267860371631608259926666805125741068667148508649027655059775536483009495422291944811103729880398030125644266932799176649668866802821782451848879356433463311154817942542525563610076175686932220028727949353126512956977589118798667140297289357571596590541341589468797732370165695689529111138747186124050289728877071190762689734050945769830581951748553449555963852233607175059961141390548027570909999105942708015521205120995360630274270936139966345385761221223887049134255184025200931196213704190057828527655373785649667559194443922406773817841431269743478653803503067047205885848210043174681473542796851658373659198519018902238061594352887316664330541988923753924484430811407114923955197840048885567028043721999696130245257909198741585679653228486181340132986108949773675531547044970376592595277735606895453979252743103990315451903887367199338353053208124539494864606708794268052265333661658307976588766315986411566758330257613961095428382557093738255820344844920043673691897543842384241684017765475169678552819515943364169028148981836770196704378757746448561609253235306855035130457585788345468234301066982431710931936796033668912225290934310222679027520234872818939415689325521628304539821369522835495929293936788127813476945708088293791244439496428130037745673789032198033346699420826838245417514240031837597702235509668287217867916388046781191600265400550207293062763631875878157837912589659233962159823227492017542130138435949133091814177564210225504514724611032130656867112061242009948004665868721100578183462544853812067098226833067794344991991235076990135434940402483055226432851088779688040393819109926340624764052292388092709295867153334030592793570531588363075292498995992292283086069607894555478221084381416444711366075003253815516847359913560310088057487295214234444620327301722843662447229077583441543728321957215967295654512137905989279544472607255156616581520314170584969371525901701887960075105600974610321279005741462225874780780404004637080862959713100842408928316133353613455066050543743031971855317628340442120940410235150120296208021957734917915344866816553253403427549083674830492281389810622378426302238808928251175600517539959933530371335068376168827227413282784077074332245007625254903875387276400772396051135854533894114654410454110839883088109112573691040980066692683556301646921841835743239570202476962741586075474962858226717915433028324736125388302315390864011117014300759837001996132915140482689828362451586294369504987560696273669214574073129420783048948340301485483342934372375028200414850775397690625759463581377750112221740846537256073313692878054738045610877432894628575247989361853697053529622848826753806730229336543553866620610212892645305998210555425180004933481681903617573721668462892203665519452269752803383625404375816988197396750316986544943552104529709985832324823695397134793003907811604981162696775176309230580479586507887369015447201681891160353359558061011277582754054996987564460035645693097880648903198168680629572815470967091911458349545023981681128606049425346307924361731054730922765576686527684603327574871886586027612172343462447769469605932298846044264420082860244355791071941704367825757716031473165433913442961236183512553395565154110745054551851144202869132767842724672116039219445841532160846906371298952298595299178684068276518297634338931516000397531064700954718903672057975159412657038761906963575873485567231318159806400336008982444122143527299851225612269948712073760100536464963027664134381989645490267775190106055245833607543563289530488584113123202510027314051952980199773660108036622403126599879482186793185607489958940784957356649291958418545102238891108243665333309674512372761690914613146639074833428362294672575058505056515869266714507601719234660045295117251036622145287138538441361520871696535033800255953233842123736668866584232311452987934551340788524069479640829501325977244929692121147538183370582724976659368272951588843103466529349777600074590521278851445374159929229517329015788910875422107769835686497263464317046216115709628495115723433895559325104551184299969602954014961322176649902442107205551780026958498928774774663177910736170694128254293128813765161002566495578825762990252366759286872842891265313847208621055451617378433100225264557547044923820663554115572443046113032181274214098326848285677010830953799915705463657700442886531909374229033357922470340540355565086707109970453409415259824433941739389083111659281704374776727619148486170056766121006328023768832228831533704390668726539402115776493388501074133346508615753581977803242306729808509709356182471397126942134069898000238569196808722927838927060174617169112720619269071897377459564185415978222723980610576053191271349431082260811963838128743908983798255887139818946215502346563216541020967719856892398536923796317832962672099480028094550857586647458622184349551712565844150317251413657257738918238618115403645211875633969993033663649639724795014756287079174760636721048381131233658913407347070899668260292622232787147440725772991520760557842461766748417922992810237158439943369153712042965034979809886600500664719155924934896547035292663664815303234669032998609813316803195508124454842659002283412006011646155691792902310674347324849604679303678033343210307872696276586706628840672711048220967669007810600599733629062820114826398173545354951657272677191356032084295046344732738663823933249639319232408150686055895770016024451716653327192167597454382916735556265193538399790222427843173829822199342555631446392721299574590480211631240486832470029311598497560152659992959068971512570883884413362849523298385089027992779683229293725119001329995477111473565912471153968771539754231504909593149121801072892218183352667394384252729296875955486965614845583591231771136324532101333879867477497883767026353504255837727112314153697833453083877751676812849579654808018389797447211050786688264280733916074802725086273692073414689729948293192013382198473285061587251228262105089350519222623120291306068885096358267257896549806507309264372102726242868747409459678470959949706714425494926545995906529550258016332417819225659221530269073148186242508369078766325942344636995058065940477886991804302308670372982918779881045578943356175902065647175775762034894666291203275983402512395478865165755715260137937022494826439365028051442369483874625734058571420046330921206518922369413101485549926654617548062515012312010138712291077255373348884499677303428951732824613558751769436395230631291972547484516488071899225066354217032871073691475831668874447610176466279235931578836522164961680163463795863692303673883907090397011401233899633132254628031621330097303018428176502443792287881803509185369722003298444944651698525519662689468408742954037313220034012109675130012566621424893361904181967240362699393118900906322555334256271330724543250075012247492954165016710879490277531179949647874255493442061714855560428438887027514606199500063119037428921549844612659758269408297184724728721433409876559989663351654038480089561268613465302781314974987772392678921336524626593344251461706957392248217900099901698322904643862197903621393647733822823491242158579846165593677850870125537978399170248027937752285943055516240497989834661908999448713208280647664712263767659363416840654656921996960973563188832933157277205470722621025738574734404384099631444617043477309194924691843370786085367246865091204833070799811393605562409345269710653307317192511200627890816830022979852994392948347097662285986188831105299106798621654758425126708737238191063496147219540898497480987059431540952554948016908713479005357636028298999511432340472904110485156539629081636580025949262986582194436210519694275413246688925337258949083432750640445335188584725372057056251911432248942193608066581162384678109344221199587159268014499067450622164241239051959272737952855052063075243607676877929674391282607116070388980595361123286316589044459547104586713329943078141420371424243908309022807064912588571383301550258246893556078923285674741683590682093593969242546419641344063845088074792321209055961002086456565376150968253218871326353798372987680976147920091301842026605439337786859166744360146666914508154281109445021425952969658156297101436675449289458885910633252859880881769663514081817556702510235594811957704400943966518415312603581793959984888568351436388906796674027549520675005367718943433203595208063123526171496180437508831548152249997835920269791272978810211543185545885875718605362138578196767663407391794062097217574142261318010646289719641123407165401607142309082489856038832529942638537641276278094546081635996868864163302930022441322756778290229509871615049256194530391306451236241924272569713125387301213855422935131848736172402306632081653149843558381139950169694976709018275465657809399675334104430564547855003302510772382110198242459043217984669682718556810789343452713413998231377509189171991792018539482768523202160104169353720706263745336114842591448400677467907105820539216184745546175711654976030981986509466844511889948063179791727721927795992604616263839092891223436987166984606586853882548300267679840578482964265316601829670475354389545981466025393503737658796962240655202111993859334199075834345619944935553756637765848167701852285347274800804624133477214719370672689987869335303376656065184867155329533029298616446213962720123081473055648437477251117419971597981054574845411297133783286009069496753802302532909263549874220355632173664208596429879156514281218188999867371913469264372324456927932631361218023488276926564331502462012967162408439228840285748778857958248697546534038417875815627808761770223906680586687000633983891215214847987832820269063809245808465285724261352735497652473403382330791367941917798353010651194661296143105749398800736754515968002158542089663901402712348461374821741300233005199916436645485801891969789011675586368090086371043663082945498936265363115851168906463128878917451505228901966227662694584613579464628340674544339673912707458571848816847549196046242175605025042811850241023172738439438768053798791377429595630700570942136753222842568396921874712509807650827658688204617456674046324441842579088914489691397701014234988909195337418447762701718480675411051873209670633610584490497828452254880151785755199281582091638614403892241512742202276673616233675723049553938996888909891300792685671530600268742929762968518188104832937495339915440420467900390188952309779826198319441315311307741391582127983871696461404625225810737930651507910584080824937843882066043181526824917644426003538071089288988867369679326541637565620218600966225085240109757266043006242837216086434128476138823875916644639452821535110846068963029459858258025040039340353346567460406449317913054832364945503933140155105531262239868325851804798779766120834382952348961437976645843894909632228242192622392493665926053353016704585369378225544745939039188828127108520644868906146366204967740554773647474257357897892017798474036406193233299492693746665267347905512222722798577972237984147583390949954088233831181739664853805897018283203702696551881808353391686497428617514743543522700532608903118611090266283990180239383687178121863977062284167225760901216623660942749369360618744548905576860384618856718974724009452577569951384412061538215001876117782041093058225716624685928199000532779440949159866545310852067653326797335358037484933098879980656441141422438389181040778265360939352206788359307647200120660648631725999875243802906485031060523677453476180745571425560856211775662032233028720961966088708507919256229629798427371396830235813015606388174210454306545159155296693940542751856896743630657747323388883138675419831381483721491573538166743042893187443834958584716362570175819009863977400990007230034362075627992303910351148130457010786604393994590736872613052610098220880694013182891498204790280404504603513480346470906952741614934575054371149898111850649442660399318263678338256513525371277518128194533916988191425557805173822577061219151965155748469933973307479444931311917605693264855207733101412623634219746234049275779621299146258843834698388903466085523342835602046194337109854476092116189287525285066311864034387448517778546185065554646473414546373764033553247686015668249856686908472141519651896533599434587668661715796060605231362798383985173926611358481018381239797132322744184602099318007806764865289565238096087104727176008346711780897134711294749937593677940327588299000714883743051509727435407646238794860202071748615649299910413630782496027260490617545810102269698985692734646450894468791859957672434942296235494645942343682178188836130837256542588318832233481218678037104417338075664864607808823105698609104831938209306957721172023035352762834679225896513612482845761388683880416058264423216589909046282104102834367422707382822167547824109353538302032383065716580794727007780051123094439848703350214189262502298644211538843669049362281931034547130003438689737268446614073383012060463999528500777661280421599460977139774422967053141661404685445681769433305763751023921286404190237577835375712884493376898714923893290431862248042446211630293342152829963640339423572236101609084999500315792377411048226112806673934450912719090321004719958673764089711061455088887061797689980387010526644199170467209301702540432295544445380748036790491727654477342075257860097607823039812527029194235768895269603163405478653185040971413376399471936848181940161287157531952614385118673887097345498397356072611801965247237620260222370538662448391032498750501714033539987863923602603766781981416557180317126419954349844583815467296676238184747332860659227362525029209291005759235655829710510196846789507031856804654052463939220598326125411744078364597435010577455496840921705102656173694401726525822729052027963210681014898454365558121352560444711508215199375181826779406749457557400273555842475341744764773561515760911657203183524811545369501693611895267380949902922656024564060263570860275000828718916953013059101591763086324099204648837103993076309221883755317565990244732229169536048466528647506150908890106335751070685362375178144991933047530551459949810373269414416915802341080511735682054941120208543489800198012007621323993319719413406534375400066118344363977817935247188490108100310222174633166933193019815027645536332620059320228768945106526458795303468914756148958658910572347199281610550435561063210127121268692066620551282058327138284473996976464411527204718710622624486073796744929401581623866772487190291556174248262405297181193643576923927906109702966297495464191647178060576476534205826151149891885306655081803988907688633361720201880461027445328082451111615243079967318587869644348976173544106530381630034168605858947597808997149024611516662311075428799190415998368441929384052210449093337390761264930134574947572400532662212380402272040791390426740297163057952305159426658147297714391569729261011138371406105771081636076391052457314258430964901138571000809029501961832580566702017256875423298140087609537302175779078145659428382354899172893995672488979517961369287813527456681609922479320142072206981898040983082525204750612403854225426432198751518951189418530950577631123981135521411717901711173350111449607074108811665671288104198485397023249534428588989461052029129108107794916827554106029982547616803926627799154237130037177521268816662787209593358554051215944884255078663642056070455156436850102109362312801224801029888115318791743888532090592034210357814099908821196547546182875635869981329510681731688886230768061903241253205876965341505178050748194989443210823839137888882684542722913801013935224298364171360763304225797066866845031576295070064082039427929095675305585573177864647168000621283094789121359829265833840736535672211412861332341774616678858992129429359076648155761329089639813702895457978101417736061846557452464872352667072911139887693681759138775510323990342056377044379343813151680827734126265394372900256294875431669342690833363283410294448777935346882166127659642084134838080444714164276916295823528100334205400577241472515962298986726292044724082364941364617567196830191906197111981828089564396877672983441412802815185130693447331059830402478698730263510041202056445461620086979456905390347906787399666081408639292879609451944496808889921957663645505642880362693337979044926590550113842816370536534846272434952491861530502997854079793575121368464165095361284900935432708342555666791681007637440197520866112604755942530968131252373094308315030658185313818371567479083084191257431521372738351207736464152967995649300191384095373215798889811878415810278848032742922325810741688909185253330395757810209300736293477117657131846377612032478269384640010054033250511223371291170382807609862448907734714140584765452067754322520780562242876233452296743477977717413158288815610037263494871163080091098453075487757068090781428428077396128439285772592841889312414944223281724793254840684820922892512950095999176016401324691694447047804032486239193979194573828156395233757483484518307709349515572860197980376077475114113440242129942670192678275143446219226987827303611790822204417015255259277306405960979435274933417515500012734200207398501326750046525101540169914912344375887205511986978313495893801036055821313554516224036333699471267280253625236734205026251854571229954020128167126653513996538620678665434072867245731268095819785094492380627055830855523864099940099286510263618479058724063212690134755385371839883060311947409680287432116364598041186328400608903561964997773527467347965982298431999413207173640966910095408449312212790280144843900871950246544544482155815561610308083269324821049817473721121517023947513599370724049769385435054083274976374334930238273271658506938777136880082559563493001948313172892504131724593043513461056908730450662017312376143023710101122028339068478594964692474002676158406316275397972576280592663889993699132602171091800026479688258807800506768376417891618290896073907780178824939259323880980223889106542482520987150426554334761195481584751448204434677988224626148821561117842976152785252955825080966225742766474272502690036174245490921340772445166695883627188377754973470129548404024361415767433586324047301747437634704580531350758777099543896035288397116367078394704347082572872057970076184591754009570318027140486424282809139796649070432543093467385210634457687794886401948831076898741824656216096512502041808599498952244181243243357880251785885385869206127895083355532982927947738388072603561498190505204203356303573492373319073798131623662759056409441387392356184340252633408342776872044356204159895917096656166666681384025659138378370163921809105999913704751718473634666391017725422578065039772964447683661783134237871028749625324678773165378357788101499449218926106349318843619156237190492437854689776523310096547641430873076487619489228924364584272289563537218087321894074179695430059190483141772389725764679613177237722115184073152723752474921723916488124554160265596390129219912050878862287906013665315903891915632101383573686802928539308009710981277974428524919637677569955084831788433034742524172347529175552859609192378389845095659638190724805865415913573453563016025253419344422380049423185384511077247372911033990115313563065530252159133241189429792318018382580400641183394515285682812307431035887819445251199580343460140961634401741734944445506431534344590212262958311677846933484453437437148725372658036229848713352098649718581913237016796677733558998145807805135194695979287270279970432420624612731901742425563921749897089415807194444612834190092546938264767734165093263130771115660792378244543604693498247573412512371115149034270154875537675296623489241210927187448491957411071870925271393674319751344667546537803440876248495264693944957300610468666009677402956459100011845778686364866340785577200355630914113101113942563900183028386958289996445802978628621109678407597695525051473447325434725387430038504423088460273198570421423667730180721539629683738491729975837991246659765019614792683182132167023557211499323226443916344731131897798742067546218846881911625254023322002455087068480037104937911179061149426300353422010452826475161472130698922515205611400353346816670751789121729676107457931198186745306208037077913195312485481377817148824569812323083273290035555742886799446434262016247926646770875733924762735802926817245515597511454172379079159016087447905317401583266857429862051524407564420970348812148699656481375863072925495352872496773175308424827541807162595342525339038096130903314757068478855177375745837985767516122746044598146049314496260558174354588599350969088329544683635049002184217766661107933066076525824269225889893811422838570718370560954374848164878206403670869639345230671487756363225222551982940014494693534738679066601904006034174438652704560402905600591774286570132563277986611297188161393345993868866020108996500167536160623578065895463688483341414092959249934151747386764799048204632906768237935994868081298714612125507412058234121593698799550696659341361862726820171906084006190538402933119851360050557110313904254658424120458396802462568397287503583266787547224801114678327751516309268629618964552866922227097953509263382411043480045838265596755678527035875275026049051804580603943606025344777011216605686120899402795426662825909511390085299917979044761314515449976854052593456012067552707293646739792322141409491005000995712753578709216062625168760045263331336125107826763259552120191813136222378334805891451718752131357583811665904366038296733460818872841752759207693179777785090925312170642473343987826883451000637041200174391704736411446250992214194569832879041600755948333710561042298499768791448438523101581484109495308482141078545432033084160645503102318042161323553841669860366933189936836448226188120468390388698340472400742030740066535913311253228008686497327697474765090129765892705728659982165974771979886092222799549166176843007616899739632080083040513049456212734716867755322970154667788121410439826161444570450830810051709789260956107122863062838013539634747046392853800420631289016695247216687663052418479551802744364758796374739433879445018119118562974587929812031663725845340790892296518409221932011648163641285304055141280528776676498880598447902298458239389122975943251810063450538737322343971930796328974682625278044225411693836028499331033662991356520351942609385551686612135638495686092312454235614069116883980545526473408169212925049408644037628692514513696418990913507663794307200563974882408214917417074537681669512261159095458201347475750795784939396134414362795237208908478000238408270165859486386830057342201686788140384001479289271077190953929762778291542324119868908821588301104735073660553501629204221266852841713563306016561987013445693150178902397489312716933679496248459721544419264891940848650549129817357410662158686020657505662175332948819448454989901443911316313169195849577867887911664676310789320812437659045213943298859790154921752286087256707033654305299801051524209245002390421650143383690916709537668233586374976058043142110299331371146274112531512215488524625354910510170987324622699004741636238545140338579306781719186125295089496012678090903134273011233918649270429406889851970069048213063525373176808467573865709342316161135527223434849908713633758790170826569539791472937352212545375393442886171136410895304878225315885635075282756380727916028969129720656926283495551284393118717947166985293291617756955705871597092178738725766311445081056602847492072787842168759750099070389617682893106575630691631145265288534929406922277273209559333873548017369185308750043485232141774855582860834240462546032594424939949587504682491729278940861463125527039542181398057677665363018185950232974040758247971401755546009012132960842160866446409104389986850124597656467713129630620520603899618063391388369460919080480364781646851990659581893563714042552370728935098226509559818762408432337140092364697605279511095066751635496394633177145100162009791489812053398981357412343583848750277603227890854898238133946575548931686872753948614994997176153404306570702134697803452574058596135029959213228377499100934100982898676268740923119994007483193217256029147030335003529028694843373494800280017660361800612584418881647237612767219840356754960648701670760273208571875759404011215200072931870731793238519991637425834704402098927311453535193966519139894923070177064565496477589633778614618631364523722824178184173345453263488909015605213334958484491262560857742409176196396375457289502070910356816871538924259924523797967816013906994730667152445295424846045876930048245056856488750405604590206945152027398504735955688799969609279685398441013003415629486284315305510882463589865035846738573784724476077039845406112213251894007894049252627816898820339552235627326198891896765703920208125728462805130473080695303662030456975687934114799058956216171556721042860971834605748625297608896841231464085516844888715238870030364330855731825972963695933795689482632808050460042798435509244755588772622305430989361320532223413070359157656320707041073089045757564829375445949472013029377775893499342341344745334680769032877906626862730025197578866912395029723586186664286339551123623188582350106325400955921027589304827782549531815799522714265028863775268422987789368372668724559483864539228361302338290041450002627809627867677396427070390892799916758268314071337082907726191500279381323077900867492875003778215319536852603683390064887042966589176023329437545269020327131808711297817555659617049520399274250546251396181553253102102605179197042875624394371970645475623973030977378446480003910024839559919669139346038978102735582289782476684925548604258234413865360456294048676766263431697738827815141124966097679516572134888934126374459042268507585047697642415947162723561177734999519595204024942164349198838151265842091156061423938523272578238123248218467029434724957771518858146605687728271536844902918884593077309658497062427798338864161452218631859608355363828711645405143288526273605181189440665785450181655178967973871031411402639742749572739090287685880843029835104151329466371238664515429380318561316994346214931849557149354207269296183949125870260785299422416087678962657239247564936445709377590968357361824649244787834117762665918189980635793330258424502571207760550456226602863218065854640970841940024111627678331802642637849062707223398180956595752755307726357903932599315376512222216399678210750996350067522557359644823714306170344551250406692586688541823624672328048086979863226823164148319440527521343400047144653179817869583378794200452035685890488012281518799781865594138272736250450507328530686723636242620086481082522640001970458498606338860059406194627095361511777875992268575296281241111962683958909407016552999076660675195679336734210722399277389124010549765841341003348119368279051275416638026817788266798377347258769353914043675031520810844310969549455687614392177095503179707701413684118723590311955261534181353362060222582000728301447296342818930705517657344631319582560026841361237783416914071362186011846511868170064915497738060472216801040520962644364074698991376951257032144046112936641949899129000070242338124889888554797316921544161798202516283314037305638093831883781563223246886618984335414715128336451079804791850872716636052630871458013040630130758394804665009647459249691099291693154887917062181058082270269864531350287608947558788662351324309825594239943388839240397334037630436457468447285422972187376642487828705918497979526953926203292151963797988522240328765020262309424535479769439402333660749186556627140751400461353166747607036992582524632826021059597734592853111501777914717858152465550813510952592625510203904800940321360760381188780795410313928468702623309995623533001945559372222868691532178420795707048683124208003648057704373537966409946094006271322653952392291734901056638934359408380846268533042479688275682819216994543326786331751312271952442528407945656131136825105103888582580594629284384660792862631187116921873550718564695480502567226080393602324037535469959174423146542108405890058173327272734125995423840864829605402001990526163183333785845588963881365223909862821088546521772901309477463270675256355927454761549442383474766893428597343659884274529082609708927196725967674651808200485556700263915810316826253579388195900446851883502689117381274993149777908798910809991386531761960006080009233861497575453381678680845252264280337566156168329597132938538564501255219514661518659698634904911465930125608721881463060929430677093460238138055783301455185052734868659024284733685590089347999187974151422514781601071956865584110161176712525404976280666883968218290276783171122767248001568690087069398830211416973546077992121738902878541844709709772387500087103315707816350016679280467253073933124687427635860631103177543153326298833102257659021801587601236150307152188205909876587909859227861300866970471299847417116531569439662582258521135895272262048896255553961355751609497113078992498592816212522491164223168399514444157836431676830704169909330739177186110296165958740699830168576065067891025864727010034880626957400037251111959249347128218158135063256287663380381810853612131246027909980044784538629402436467329082840389246286247941151731358088589912950822217033251495017620861915343376207877787477258073750004231377708219755594352933415822344799344824467645478292048197000517685502872342042429763445525004869419678576192515598365055660318841869924087255702081075424630642769995935557527646983901214305417265094769967208034404018797696613013005945445566392585427430402156596409252916036196464072976127802527745097215264904924829255577825774128388620120741535405138969753709205915068614551770688612861577018266391999822461956272291924118785346255939710517011334248542982794050173878107375567766064350388835357159612881364424337663488945493983908035486641829730741018273435796948334255819729365942245704433485291732946763172646754649105874511438979439028216670971376066221146877891282441244930353250033813078001257324773670010033966869301335298523717653141466157276429962104286210739401640712619073626544329514576786945258308612154523772690932938643349221756296863696844193263184620799566591798225947399643866927418561579443684891392196500133339687056424388160118785278287274393612435161049124222997827684446806002955035914984486379721576346235428019373722115584456731053275888933808437238643838149573379910322997427507727357642897262278384556895148706477411551747132132798799760721244354277828239562486071768123078371235001806636512892680406844385319767009091866510228711403177449937158700335382746076224244836237888121971050044188138484984795696828007639488442572482925036871448587345469577787117251815982575060907525948751884986819768353671811622951965074493033372160100744577338671345781667141772978597125244235715557840892907093328639150872949157249293103789339972579885407488659925624828878694783760517195000678145781407055020552550349607075465282643372136924503217765510905247473190214602886084087584699407005015032825421335948765179935835539303316910161802890054784863247038107213353734444528120403372271812965560752230706638217162961427631510619487052362262424112190971160975599576846309999467152255443619115393666364586453691046202674703308330465795352855481812588795726195758170864283183465790046905879479460611563074486268521834517384585751296735426952098921800723812513947815082002679859930480654952460412408234508542172880614097770880526792367334150440399577932747422004978052315946250486538991280735145576121705591167997393703189977592173038085484490809955547461260074848710526487368608721594711496929668089583538389795052089879641824567984560640419251795442260316856812257655721282203504083241353950635883973024087112363159178175339923789991247151649901770875444474738509240949091298896501380162064272796357560590612759258055180960801172399343295760468072037498740561656806656100120659012429043265775737572967019769690348977324321932405352223332495523444012772527927345817123738217292612818944399435501642967836380683056723821715078757653061021486519385971045312838632312762814234529052740646094248762267310944456933909579316027899863484287147909751463904269271358003995938655159053936949932686018897186655401468634434658851807884970570980952776259544620342284617882861287854133356448789256906046872106791607386921740027264484943434434202519413253025154178054266168110188267273689130305770187790405271239282974591401917422874330329573797058838562106725722963288817892286602112547636469306816186426873995554916001420084642842962687531319130630497259117282880743800962692891067108062993152827897952937682800202825540158834027896092269745239778097768637855242097465786325635685054459998128988202721328738167223389671264382648602493977562843526978788859080836482806080517364257061475787372489235964158408133830678531626083477115815062404459155932496785115579777826504923469454312650964532466277303734734657476823062018635049451113530226805820939263876709574764848376371824956547072721200507251765116138945634038841082983322307714844402004964551912545721362504089584681567028032411736810557716408094365834159900124359814155998941360233280474476388171499429618339283028978365784433418002537751946274184715830860958271581869702444559083144056837677075322383116496739763366378139486072991867896560308215809028782035520401830536529180919010528094027440072485004320172066876169151391326950151569949774872310323178606463560916456668033814983921421952730267712183545159548745837322515228989488705923868890381226737956172527485168272163788661314598860191665153630680038013928260524429051780436521053860470237391671585175530433824684901397786785031708184433500447193705004097902304963261792143435588902474603306390349954091700073440908404380757726361815681581367770188333796489622193903278080925535718060143393799214878035813887709577164495716486733156138135842178458940465970397054198380864099158833414106112253940247496741769310035988316811277750153502106946270688180402733174536661872130361736417004751903922748856487106984032257575554972065692161987251430921269793634639837726363576190398269711249775631632530669145748760031105344719749139562590498360020236308345390435606098484990123337145851165277747850261243998168092339843799741655674302716738266614288523010635544206610964657022990954287183352698276863776585435448667272690961813557128449202767142075980550596760420671360463914824853780985604814428478205640786474054526221961645621996132765922402676134115241174920849774622230866811652647643836805904552388841988220467565906812109696380029529655840752476243325111335337683824219177450189716825962339913356571756544025988898925123564388307539851326453530003547064132620897541396447113456258128097941921729971608327301734037354735770236958205040169254423332387222599762765681052059916420716428050949599180584038401468950262308288771445940525845711016970288577353425571097836369653168886888855450509025819781177172853786857305020421563701179505497559307342043849495719868924935943643484573294674597779708418972925304570783731039997870610304177817881864841076210569911469413499742910611532219545169513849232536377050251158145418660602515338103951128791816612575053873779930433967851950592705356515676244213518617314741627205944162229896063497020188948000405471224021789968342175334156806192522382559100936885936293997467480250813489438459259562019273356178389454258896456264712431110113911505351552156994118099237964425248088862992720665170530724437367764997419026214804730477763219875890286893533894911575507007805966258869815081133288202167926448082029835591855405096000496292635545037159920711595918413317905659828309432361196261899324388630491243955117416035519514769583353648446052944354550519980723262574547862032375567998679099062379531341884367278979276035569349076097359231682269083459299868361475417320832197703553885673390085313901554508303040094327751748277068718092697131579036397028562686330929770800123952292624820931297245752892587374284299496613781032258018808445506242218780448547033342095988771055979306108508371535886313864375881631925305812204372326531370398458943918455162529750177850966407574203494130494780003356829796722132336385987611764837709425343601328191996046133822365780038988993881945405365939948615278099271666806939703385219723543551291281705350501409707791131982310114509132688557157732404480933975638442218406659316313371913322767149448522810547281653548733713017932757941017759012321302931168052521658501404712845417893553978413295845779655623762992783896043120629082049816748721797316011500624648155259905660985975525877914574174925729502935977152121366409923581076069736363459311399565725059545677694290230071127228008938887468720634434270602391146275074813744812717400211412896770364812559847225916695139459979825006077963453761528635807724063237494336666389985916272550614086791238184613138033744612516749170776773766523986042277070692464242041823153662278663958341819708603990307520437510402220668671409710318971585377161122402434310281897831471385615130477792494647697081624401096765375376553484670914287121570152863182789652047479182632027204433360763001386487568568619631428548898345167460389569592714686906637382845774458340072725672466365254314929517776918868135047305674455611737725678910451918996812097856729422511054204741653591542968318449466980644173635330550708394108389513359072654197092231290597227153033213988995317291417393595062919112343880805472494042500444809959936830320245948823493094165827110512003638049999816491830404541822802049344042606847613475722166495124322902780744066018709807597856630633678150438137205649028120780634269721954966181752475122606923323172673313132539055416280910296065215068124072607379763015110682634997312170058525232209042759448709786051639495134901207227802084188239324654960348657754965889624987964861602898657410135949963707415256327510775250474020790966358441851000876209208475740807821558961432004376165142997591204390408613316202051234269214517517715644095685272040885770663896795362734695747673309855768223088007427098311752090709705195244740490720703757061205849874231527799084242089566028741630359772286388610461587444764958454482096023959673885437687950835423583427146739397543540294421719978870819202452779128629044120328735699274953212955869666282987512161028912457655117013241822104668977750706588085142962040911341303953576941349560286464669661112562938386421274036393215388274044875901886306269307450732200473555939409727110041327882594875753812662401576265953911021359070698418331908279420636184334161873652534735945385534627130114551593258426364197494604682629208738100122764890784363736628925924455529754549621278666881973175099716794515945657895592029356104267412053563922871849565624730316404511978049435419217064840760509693689162309866065504647560935432872138839889366767662957676874333341557585031766112073884462178662103963218488320064126014399966628042079050022357627674101410925805072322808725938229553573496644927575327815629270188061823613252941385708028231662446862057891000964598975938478767865889185745568468038294595111713932271694024502064419374383836101243068629849701256728494502805592153901007989104560313048313510659120177988868172591878521844759184237798697202668553331452942893225965706762930784198248325799918816316956291966247018362156269372680327426925364165966210759376123553290640889317895766695350686593584665592546704047577362118100235617022901516303398055716664976520246087038437404946150460053919879179151652522994864864450414281362528146249108430562897479863476324848302423174017331261334452368740009922163342577210980128073647928251811981023449519288661311323062413962892424795013948502837849594665857161934484783706387544857245717443229076483138178931298431795101699996173320749946417267217671956778122384453985475991970647537825184607483870061801128840580138277182759310419245826777381864527300011448596026915367130321090052184328242277340846657081829302305063624532080762436670406762639825434270134626830847317558297565425773464403956888355833337202016921969836031697728912698660384389038148442733150914950972733542201926665251483906133992959676163024784610341041064102752962533223946569094767976267671815973612887307156758570222814025783775216129010709614561416755910069748638318563598893254848436310423076894491127554482475830199060848745375103766075562981978338432631664822162639502240469921427237507633993689044863838970305695037103682439326483618193488503252653596084999525488790746438182854561452452991979319788768929544813488125997347800929769798517895729827813120929433862424111809980118858218715615734828124360793259245881904924971388721098933494866487913015690045535778485295224406175581073246500723527713503966714372208951163824402985945059557565060969676039126541372378559159317602222922566001638562459363469203925399775261168603430918643681534168762968019443954940899058085219902620979308591958236174354716530023818631882179627370291615407126467163434555286002359166678165013211334252330777324148038999367333295200259256778031250892644939393931213940852570440739863300909298954220147031598497626169354158146091459058859275535482247065131493884589281054710653214436843787683732300746966947548862627364709363077823806718757807390150264589387630461109628847150296436741183322274892259309437573900180488197458481480722610486530529183490048172339349566896797631804070890415723699733130599124851298893146664467812536869500139686676964322492351010635724180646513122611380744028949163333482091368530335099407899670725030287631589356408084310673151722362961361106859432209664818509269431021253053789578261034799348482454595428588293118328478150231581418851482657502864780372216775213946740364729340341151735857062090339732486088678712220628164845306155540326531001432912086966963089315686886839434448048596270999745313619326538360953767157307605155458288309092392965383875344222197027748341395980290614324457728324288167912078467720653123601225606608960373543220534846985543449031850731729942192795804956098195006017809107685816219660801028347684110549120333715889022447706565618326425638537582383944062090653500886990517791970129803667900202496480232335559000289194104728838632283888615325947482719040553535282872255785261664495634123173698473913045902246926988596887943683715271265709187426836758519904324303838795027647747439113738198670987574911536766116042983475502782641681302372558532160004221378660173830990165736325411241163457837086943056026993298653869928250216421645213426738259887192410027789876719449495617336131057360846178154748368609979194325219457025518232413452605442488488893550922782408767017796378384592580382638432808574560538001108290258942032181435461475078337149114022161132756483988982878339659717746148219589744684660044902861178350063683670286202858317525522286289014381209578773342815264510629139315517730501903437862711964342999962815955078986981575739207227537377407210225004772584226634008648059146563914456527808618662511558218824831639323096306879780002454440136626996861546573410869939864276029551254147776650211230869971303535859601630263802789637258841561347919706532137634515958140553733124092382200097857676990721368283845502026593123096342706657424934765147234372554608323031015497824957144640208043096887033498228582898264808142120430413405342994005169894610691758909585388089645014220884702208338749566048221128052323304355736492140265099989231394824379693677641272683812725845995748208811446450156974544218878843851956562214801798453086349133620990985872399590162435240886388239189748120039572892905957851893505956936622358898229337057355764745857200314419986053386970066784697895886390078242134914210290736980629038819506898905421695517605685393250297683114689793573595030156451348182440329280387399198376911951013745413959798862438102024515826879011188461899056926567924670678241371608493271616328561622921887071681052521417685165164462130785696946363297732580933583262824542327740393555318444836777508709274082355469559902522675171521296675319877378004642767987390569946252635733070634573350651619208652378919739567369246569358673368349443850559228099864300618196402368081062154362116833151867505253164412622751575006273910557336261291873928256566444726700369517947857675671297797552374938846457155578167152291032965045800540050452210028856373559704978413464718119643357439267030911221502366055994758580913484830218538365515276012986908981082950503750687584564129488086432727316705396537181925775201505954021823767375044129596336326409014087603647434018243102474476748174540897938850341902103698052839797527111159803925728397956078684321010038470122577903977974939068270516596342986543139688448523935192792058169749404415650643565966305219397253062063852512270471405221371713019416501031353797133118032314718034201484692192426397890949762808246495396312331084526013655374903729591210634069020018994384795592630406966851356122346974591805570204576441999613754775417801417636867896368446996649956043679109445490753180350972461498760564571341352935462194234004197262945493257343496814896158658010930893818168905592568709761688905318620577564613895363079558415057677814089051429400698002742160277435428799977618926843176493677482037599570330192731269464319934409284051176652799952126541898657879410806485533497183822047931324377483602796309922328404440951604654060003385753161591478250236492782017147971468907738676250260027262132191304937626627505073351660714769016649146825082564416232341269933981643069027543710091683221733184384568242735232455706673851396952904565097372740412455168964692204287186509503664497967707216034217922710382764479520779367989782387663551370445712200436651907918996779250335814695846946079773381424570266481590733703290762278201560854168622400658994442113502324462505760054196462830753419734206634286881009926068125296408692227127164863420841401518828301769144368182468997888647105374393622202457043838488772509121709896933965171550854277523569038625291942055028486940310836095471456080013276985188161173109186854188394930009393525734358551433091529357219409000718236173221304278236409597066583017937297660161550465598103743978544006265590663830838738246733976171914517323843976973625294675616014066089535546766729734651018909227888401667323139883202895118672226822455119805394501473368311152282967630071530927002120723161184089292707777573972324724256674508615216552417380290369029109030542266361561458632216777907692900498654153649241307594111986033463518942686856765300358567484316040821674390258160390130001422635140372302341698545908656521276384320869096053486366329583140911888693115442539858406682831863234561974303507280681659050093781752890666562746724037456249764626522396878021858549154557675438464998188234447074255452179679959727589349267496717564647097870755829723406882288338316368858392960163103469728323991354481434525621000211700206848947334511117248734458380009612287216884371171943508999274092393346717744397493039445795041408378404431066753886083148730831204969659225621246994620299522958943245646845236007990926192302641112762113242348833526079172034166547782572244794854740269675559128709302613703468405850271348568452100794417826093734205189032002689523974572082741648986651973709733650937495840996326413298181207001401397684684230575895098056800415134849354226086502543462422037137320829019398609037160736077062051109956224152779756063279370733268949963875624791468024160010519530472027179657881458964387107460217842659925630124148615788245715297069902438465059543760662298676015129190109450062831703804579683967603131619627720041201281192813949263997526117469911899374213088347359117139763461238731423477989000975772280646898931950498179931202053617984441795148722521208792640009120841001947269034613157579010954100142666951475787416798554077280613244558889118384553645728058152738005633114205699180966223489120639013817529065647560275765693937210633352190275915433836562643162400209258676839085274086962554438589618357585532832962499921688983484675492162299010600357766687703540641273472924270933143933675377860966788713139663051082196593083775577616650590538271102299250436740109163440603531518574641516439146579437442156087290882028956771624787319889134568073725304580607742663600753627249103718163207842621590032461033885851501745895605243306012408710578866721132686634673524831890372959443008826529607264345497667745103595130478590340792086565475840570904161801597894704314978565813393253990968939801448872867266111529145619040217556368006984197062631294604168209591585448365189503981188757762787921355757657707833776782673656215172408450308051304345073209621334987016687339966098848317782092519676626873997329615795151305858933430697102440900917267907526994753330383693980332945082275176826755853285657451257947613960080577370314415842210743651531203744826786600778721816696426234406397936753584255241010783513771101258238165568221091334684473269248261271058901112133077389331918136578080067745717977907531536258854602680081185848965619756274391425952048718611685191632460638434172058873248477434626667764497970911438923897291031033410010322128816531520231482604641206369533952629861149900872041453356556694424906566276077889471392843455717603518267032670091924222617038981040366023166350593272401218230521105011988397501628308716611741175831009217468072985680529998992395060795279169956246645041384471055337633924092158263238660250331981890951078240483172553201625847867798922481326889229014617308583958339339467718364463050316748592369236816975595528830389072515863128975469564605516916294862271852726016316390029047530147909856718868143409378440351524413457776641550787435882360740841172794490190117126892387775801858896633490573842517326104071673440651261533958908493201351072560565143533274941599251502831422758927262384405376586675613891518164915121239854029135880245597266684094790073338219700664917953762110191862705923564621355993685135819261834425800276927073148020913044251961983621542195900617454104562431732204384583666423853610658830575059884361189537865100461112755902013312320402998525561916871251038262298206174618696609014612585093632803480553156712275007022841099399414745614043169141995544744169050547113445994443144700660487727128830856487025510450146694529709247776013831689880215520608647776697532802378536668389827028640460717042511125377784088831901056578539764137643663261259722427884081355650218345656780178879210557016817476848249844128456303882517792874795613189834654961104054653247782848849808672520067302582163023572998634929067602656807617552435480156659993161133597677540037392925765101602312159231621550898988973318224299041875644544242945757333652415624534896174239681461441286216567502034452133002108304037792247442570798495895147592502288185660799025498245416932397589658149380217692103690278403967819555997662039122990967716477299446143550710612114595952023236820541779341041356985139265546689024332854396804957813239166289428684555856301607700556647191228532004568425654834192896629752818132154119166659397933809305652973969398097220821153606448015790035602727972887745251388017760074040938782077474186859944031317069847073422614846175581887195129817865928338076979552176727577938546085066957430834708951618899296986959597530621506613771253124463282511617551965788192535497965191517296679386115397818596301308217534917396853432509005597473143156430218673562598507215213080260668693920292363205911161269830167517254780173685386857285886961754509937259857923101513261729620794530630113889180816639900695302730729769877906013392467350257695966708206932857023402342831650615340306012181408965837109190085673956581852106619523427071588618730394666493387702307345255992081566174816706242144495054092769073563773331573830008779654599981343204849361529934849986150877350886888353199606391259385132924598656052217322103575968233713904184746101167329562958898767650005700982465340724697148551796793422895478038050560776922596154274834020087718298602822678432636316219872122159165921493515877186638183696625716561925633120387689466059789018146771948595814259747620253101709371720223155520139641226983673098952494637045495113284071101225515095637215108708625406117357034300671709968509314361084892736153300230602339762260204449967343219666061631581921912103075188692697793419571299350407632479575368584939732613233340970659411668349497173356679067807096902385741374585455387142637054310309239943312205083085167548305777066933546553762167974129670016666120101199271642565627266840564537201040613980427285668892287535266514775183705973984014187043490951666029481608593302288647218266007543521371214900505138124227074033098819942099205630008121030248599840324928211298600465656776134506444969144871463482943182081320049672162002536555320890743162484744389673841021268331488747483875697261401667113288770336169171059603273756476399040811884332013493717226704856140690906976594617120704973661961036088941562875383497561203125797535104445077372252146915646956006511964263334944946805647987782559264537248197021945653916008458105499230301267523707031383858238179365059378994207766163479720082969180227689150023621476789007780846702822861628626712090477710916126651021642667429210598357110272506356261088360769951103381311747281777336999524269799177747868758441512532065485045266136039221250563762301561080900457458237809579116371028407822689058594423613984620402599785247721114032396889329927320735355582967824394614207105422369478939019427095961088779816594038103750946428272229695250188513734480794795597162134479423651069069204118785533257459815109419759706310733081784674964649831757897132199414078505220811518288193888894773507779130911097690169811319451776715550564746429586345671432704231221006723111652311436377035444531195255384169873373940111297553946395789752880436112506129865834657875349365866498861680446680873637132444245769484227860261443077077602406615676191179132028488411316840668919274840522397733551678216483183224173208743274982215754107598611879477956359222506914331073219829112966235832815142478246203472569810551560940671476251128222578398012128077605610172630062058806366021472233163285474076183279254511831575537565344472812897834285542803609860598760169238216671213981905183521911971485436018462054412949394266891965242615040134608541703135458574186419021395670173339387799433578862587412332175303535155415256852378577679663662773768206538158247899857859424929478143631088671625513726299572064384718422951527053183624012545478469004478979302075590362290089210764527795015289052739768430181487727404694441865788873774771909933091099996835399911151308350378042974463088989472023287764229513632261903080899650389105265625552282195841760724020899634268650609921760675482170380998800894332507570701557961089312574695598649804271029317014995005025691765297400316686279584395076996794105553751511700383002573050905184546412542203424047666089938304542416709404052657176475372279361283043446926149749531520612243107337127240557028421606127151477867092437590571879742927689652656345669437093802850816940541893094995588666068832089530417806190044557808533638052365143021315979992385165165001389250539765709130404918935717618072753074217278057836039685552690917363499010468880306050754844690124383765380966091686415594713273803989350114464706948955832312149191074749959744468154853173151838312450006666991969580991285945079711680711427372532803213169377435982054627431861387947916652105929774315536907441371730664264500859125573654868827517976259298699535808611222757050833386263181294532588186573277828215484718854367377603610404121244834145632591153498188231116704551807183454593655637931098056509397626888366569822566806610207644146064186364678377762137341450045035770107370689094409221350605268882360450244696617555376580392374248000588088086897543181925615724026922317407677564968898849117500781517829032174946241111433786320043732765888004866686921615692195525499890917773050124851935299843819306547734908472719108534253034227511873032939942319015871417474946979982562174541006674450027247073050130246942250196011148791292219307745095889605253958604817598878110559039312400147087440831538589077630552528699371498646485080070911144510865619433810973303495561015526441030510546532876784522469316151864482633322441376552697073439906907840823396366810087314804491571117388943918333358471996994627264425361024621280584107669756283680060094056507391134578881768451315085241918358378523052855108149965144011475182273634197182917663675350016688045003122912244909718013047598454845514147264176963681844000549135723153108580848069402320202561393612727119705868257049658867534014754603619059984514959971968293767674812961954121041253502450492761840243608005994597666282743573461470158638859259220180587996322895851844000508145004805962458226926209922186022209493458409897854005327221239696074341348991622225575978122468822370255802204148267618213848637025829139619269482782214636381351112612774867194495371847230268185062625961227127383461067923560262930542716675616864334634391530433275057231263168336487953684669499615034878732202741271426927198670657705547412376951129021947342734169199795080272380464611809393519739673545567347846893137721322529086955676481978487951760379081828918116174409052017489837496449005918321201348865268595960832303772242021849186862457075929832459713387978125067121132950686849028671765733576034710957532589155778082634546252318819999568632051977705213121794206304532597854431500679300257161370451841450976378744940173612124960084287574770965702654501131568170609855160066182520651334518935470821679525990954127397997763722157776023655400342733151359036591540973572717662119352146563790739741307371677702902356376916204848694994387767803368103941376581663467004035965274993475396174800165864979246799912832318910248828972030879688972064931620181327063396612144425492508729990674001776738667747603219477626446130405610450699305096295784865715096479670236462553421311730414077775412240395458398822846393555750786038854976006554179104020189289556795534738613322025746745301157282171054765505269894785848376771620499103270395679976729522709459473754880318333019856750748197082904003649607292721442946814698486739335799963077880594316707035787448311710514055652091282464700711558070818822914037188523095760411075233988198835373620542398590398280168910795812995782052608950118695752471553498342776622129476003733334419085833541570645439708722041915274128017966436228672995752127764173650217428461529188105030361510686236341012922862221453965478037711120244859236219388333863737123609929571863124999294945044710534314674449220105616231413981174760637899327628243904483805751380557374893963760497435055670186426562999888318976101904554963112919518150042363547786576667417651148283993390509181041351203569154042653808405537052051805291400301785618880909503379026895262837693135359788540659029819980388009446541104441654836716680407491719896154614098317143406787582574633452944156992422082460685516719689520885824346379332054644307226216712475534087712031441344113434454874360918078058747438523337130585392323470352955110223469624574948066421935550185902726781779573676748372224702875342765166346259980323004083338383477714274382991054496629583044679251519490470806648061389166558330347543831214549902132498862382167115311527096213711910584604996413572638157518914986246435381698103277008574764739067350154179382049388135555202683647319596204442053725130112218456476683274917728733595637370221583862297385290746895326897706944033420263021335030662273499326687601959960294846525081043424761661273757131918891326915667123708822558740656231431393343438443914882957888487545468814064470732741840002647230601432444953088919090551945958700218124196806567305745333846279499969766428044018017619921048703680028088113883607669823171343003633908500558169327678533264721444180700146522339571173477013240029713937681085398868055270961857895850971833781394980704880158672828002566024714589274933338409001897288835390548696781555537253953937337117079019565466905549971587737018820310378172060121145588269189182559781932270896336910678178952652870221922361579439870021585776785922788257832419202815276851578940801478995538450002775220662885195550974077959304955247882599515957674923832089501005417492937622918164746244467876994752701998723043485474777115702749044669341440430177466060298829553252298493203783581202958780641181144077293669366415074994436244806631340478981194192252418437969324312645888485958979542123651528739147774003575829043543232794434878205119484960541126356533093534685976780442376392704463020640991870990358051666256492982065758136222204224776625495904043252428365909762351649702132861595779678620326170089135683809560830373296792177539853680424086737378279310577488688237029633415445100459633713912107106362979432618486306944382522913225940955773090416565698095456342957207065645329170432489908361551068844450078766529904682603105697746438640822062557776266546915834065366609432737564923439302209306398319167450459787256006697338354923415353115376065000346827766918080186652755046568404072980825415299407922209388688638305810485375121770987164248798746125075608175967486428669950483777279396565074517131718868741541941890816653766495136168694954657682714888639079593028936849286990784281867988830614918655575065825268397586398213371440297025330820281593068847937880230788431959010661660501202577350335922620139060983462928377823623336522031747851080432950144486293392878549000829866998922252641336256979843573189665402759571363962307390174179909343899927781264864943314975327135126235879627610730012916517813362748200937319788763420892714969561245331194548495145430198942561489359926145092314038208736408044334877853215306464393684273555581576323929402766886946822280339287027551324033881242041537560183861800613520239455627505670226260079233801468162635840022724844862940274107867454858022573788704811763683004778782131578759580558443917968825735270534797911553759613645043643927457587465587881267300786708840161793441312113429261486086836499158741783199666191226371275557023883460110087349931774328264628917832956696305705503471271775828399663892290962417899252744005361236503827283485270573521728873965404637653443334433422788986757236859756475365652476509459390741849918944100763154030350764434499407809817331720271391764857764150706696464306539029776265288560766653640511963350503858014301461673399762522804504316917426617082886532534887723492102137884511700993464639788506695126585557501736924444675058831349329095387979579142255525087722906227771151878687010584002054407282017398542199572379710055582187780618184482801622909296794494846719488239968189190283104373373116862570006929347735849122015542381356917933169095806495765479565886592623063262721180830347622944599350571709211707539093676211395112971057812925723697302745666452311298538564144662884917227271371522058837150148009179482866448686567859062724946680040503724359051251604325224254225935088620715018672656733879306147634954097838509426896447856781832983648365862877767674929662089092996757884484262613279079546468107748037250423751066007126681458600676222056403131316952715714905280147811656858955749849030818764369509864744395312746412831992642803958103603917176945120805964476384497259031245001337316554991174806871922779905373232251428491927223556385146441872926733821136155940579173862710074423051946885411035784002710867463969904610398140549277873303411817746640199557807402355198964317870393389486434837584228815874198892181912248443284716985432977629000532018794704612498959943191601651430147973305491446123254029896134596932615044680857874321056158448538515389935483131340833070178045079241712893789593943853821564125560557282385813398001730230063441587897913124409884430803078452009817699370083550787113108180056154182536174269833023566266188392432305666883854266228450917709617765425286115952559461744835325881708830264682875308899890412214751688237415358722322639597071597693299036372468313876309120507563065453935838271521941823222535214106050200977345174020777699069963189328899365306475923587064228379032784721741418233341382207461441692483326805272832180581479829879313272222939243945332067259905149739528146356522457867758499773467686379775366767948041031413430547173788030553495015377246788112374655505252719147788813755213356771959304134750805049974268947625088288716122554940041452352860393712046845337483860274862292044539617828285929365641269939166619656087224265761281742839116523140394827060342689887125232216518724310640526657111065814178879614506815836747135139196276021322382846306717361607140393527298794545011433057764889602318684538226788683640867327801734925931258709194338140847754728495205601076787119389815000369448186090053469819659096344398200372747110078321713360564869995940582450839994382657297043017470977036106978156130936370234692710266574806325661036958134563400256910019097991731541086703149116042844376386115875995735405550153118599977476815079930795765163447941419529990331184740370295561531432859531001326060155625052754356210864108418062919443960762453502109939460368962249327153315752250172761738666031760374641697103204405259022061746924201150710914093140447264352824598985968650938414083887023734739879892235640373621627349736697572370424237774919495579907801572618118019706531309237284226514362833171413665345003461046460385052063872534643496795766384273386030899687124963308282004911343015964794023380404916573505257530547833041242803200593581670586975034779159005074999819336330939789018830553090759679975520104319440246006079834866382257839242134753684595449851520138386466432845370599970463883498207658400269628641400694794543337533351131436261040955367490175512749361745354298974739530758827119811318184685354982921101302645246216624628800066995489013775545595906454101326516928865808374912475886418008536942181704870029673005023063012746168935848186036880652766095859773341036269068999131815854831439047249933683764051659403500325229650577506686440048971128678109222891962022969655945514292065765130311313953931012119889546730151937516535227417914624265159440333459729891944852984819193925351199482638524667306499412777561574500484101258444438444793519779827703729810018014871887485179035359349630340076920260501653588523064285823109837685583202389780820340483829073450471721474873766394084143566978537143603873654675889037696160598954808446094070808425748201453770922095818528342293882870109781902770489212983118746312312815761796852395104377045463965285692979912216419848708676788454311490804891902309215361408033711868736172604745838809762389155478518366076773307877136289853806180600889380239776824155513268903312842850379669686113424216758404596165453854525082320045280121281702272909302248156373792965361631249760534896680604095280375934710382753166778165185336976254895646896165945024640051659177884804686267004772709021276183493004503505575342064620522240850174817062674757182770291736768919991004214310669634354504393754650472839980022970274244591439556176877606962632183174358301082381150510667427116440575182891273216294249059731735588635312651332488344934432766821899454153441707758900040980036095728177510529874108700974631996283976156470178564741754784191673853279822623191142555139646497315999549291079667420371279262256758757620879671513206075783595252318224456667623659994214269404670070963382157608643519758440413238366505794368787793159631462624184816321990769084094703165411807028235315609971182614967961026944679484591159417129725499771937092420984098644944341711461602698776108262350823583029589265258118454799220984898848552000570456256112016166945204528516135764004370911111588698844267405131658375159456375720187761017592614139393718489981235646060073540713847565661130564592256144710226611503613374480728893034120959489985506038025532400034291235013457547289000046998822989279573521077760537899780382844479704639559250302604668896552530584789317688124801813501441428493604705097647848828200722848559888107232485761208072666562355461202809900978211607707408187541126864743644705935696162610134804998420809114792219591873478402688509432191719892789719333328964416746609685172502514566128012304256401000887012092303203859659198183251850073309651765136624591108874680203451054820663760633067614120716059549393098985913548574635697681804351964399276437652703123395790792156995481661761097082066151677289322682300802530668400897847640470235719238763236449890557770436415389188226546898692019727895110093258027532875713203485697287695992526864324175231010529642209728595381416826817115150538792885042217245464289854265609832589898509202243033776693657370195780149635191966169773504106085990216436161656529297656761208297278124449110170654071887965238461116023435857389104631039734045725383087970065321531740511201203075252648078337276972157848416570080817232747767695403547166535740108216883582541322222896562386846175659829069160184403912663631756734380843286771020183244591396113067637596787987676060762187508549409117165505904795445743582539916916942927839313669714178154514787678198280280642422427152209504393260558778824142856087690741266723615835294944380194964439483755009179738778473192721515193436549137844432617490994199105664165208426083546569007064808518533204362345742777919173698352706331774024058589318809286660295615350883350688098193164084669556451429872192190827148976120875601321677982343604275850197689273748133812161339045059905124950519096210281136280130155373018283589547859837868394912808526826221550782263466660741044469098860795110825820422533035488681560483504116902588678201750179305845422329888718839644032617536235146869455317681585740862638390709115221851181781697606991113554266425285170933242341103431942050581144804584129427330698967914231230723236101719606768871043714451881993941974644064938620784538423557380909034435210363714069754397677179592564606595562022050114920495673388680375353997533683223656958958102752148007794639269062806752964359315006929990897207150046781765753738369013703932425457254002201811776566522594358385891722788953282263911161886109981861422009734641884226541164089665620093328981012444351913526422776009862460747150239064710884476555640716349207717207237489070588456455695378138922222894766360091263558307337153337103646640237687821010615671721884172878130653440800209582712448222176831292262961893760374213373228210868661103432057184222518122243674318559626561017607908688854808618927408190962598082179339986579583030609634958687221113052405231482985415037083573193396531925948611370407695779953040231288854070685250089076768380729671145264831869029395338037835774646741885277218246650343367644451662874951046222106963883786627187440928173318859624807805449430623001234673589220131235036597667093560102742462494747337803729138688810478578557498519104606044700781390945624454776625948727236549445813925258307254104607970894146136912073882434376597355431629133571325044192613947135181017597188941790036676967345417961923960351987474612970596491964351675079261529441137035847167449446103486818160113906634431389083359895004722852890732473562140472199587350412369665158726587414116979537380159504232407896405346792548290328592971027603991980147747420385494776696505273867629754045882059234750991666511044476548662829939286955285910534247921595220158470061875143417539381001454248712429708653126797069357151994680973382767159816477065133361056338319109157970742510875140232621468015227688470134915287891605309761633800164387354354210541101801474370381368370233699367892321816258703531706102475472894699124102725820651351741749310436525065982039779355579229509283601109344509603302075058632699924125259803924490731887536559919994954147923283345948596487330867638163682030719926882780082852031112416738326310935325204825107498580722548383380017686053079360943609193075507508102022420917115690695729054490901646556361196891726112840389767961652381567493489592801945388355272047913841163127316398137289744891227092337308998159764300754989874128972485080339981661963332971932678904676519274852872879301480590669779249384378739139877495321884417491935485284969932632101965641306325069326507627429219009997432217560043572337400733502583834450268291635754839373052285306525331101630258507406215932805947053253077068670284948336072875806515923047612829996570440472411669706070333092999277821317884475234060639327055892408365201572374821019175597429902539343091649471615627195281566060658773567194596037252971855796619709763603046132801253511313841874581095323279236786749991823670866531972221256506497700687806849003523815898418147977843162583164858650722200383155295488513083186777244789336764444432349527880304583896823830548346002909010852641006747538263836304148094714829051489249153978366764098196710967082229787100998034118391936214011020339120147913324837463328603650420809104763901503713012908791956258776898211998665049262963344580955832319585969359238310175705700223513280707671224544832792928862285311826082810222037390471193648958898587368558343130258502915414316109195221252040886687193247747721719764694571448303581109021268142159658266358233355124664957034934387115050423384047654925645876174907066807995654626392906911721848333949168879113662444686084521158233717612914325985470041926276297648005170392536542808666576788448214382716754105063969278361167940910495877351784250422583103853352360273514462151739445971970865101235674542440702077917171371408960705817740215848583453847211760388835253916877119454790242652533409207623884152252525432589388333984343647566443713764972334473524629278334514626749553458411550518111978922202352169410443538434832063222579527002254456169013879548269564511497149686433239561392830977718018522928453337474105347346043736081306011784807512102224308883379947124174274311312948411391071617611636607464947023676888379916321501708420135009633486600677500949156335980315037149235052617863447927272172521897868734994521686059607626808993326742068666978475745542963406873991546636648255362869510102101868182108943032961468805254254494153853738247992391297544299147561380761363691331853421800127071309290040337174487742224191142674517300686065863223022578029477913264725325660975344729796174436131016882128760046154141959627963561789872207770774267686558060409868582452403627045478040009601298116003620287054855394557697497837255637847603587199364604633139561253475680269228503588900303538560436915291319495786739601314635708837892602037915678562107130882957748480518668109458827262794012184154424773875103044920834839832810919440176063356148068442036525651145568804806252947745985019806515773547682615019067082738851179924185043824169397241527108933241611507989545234685276984213060785325272878015486735996503947643909336643457671667492143219480657549272441841599451945964173191603436041205694637623512675759145572396765963066396327875056599423641453961917698565885254732018508234810679110665445037480947813050365501521019266291434680589859128214548041377307415875734468459539085843569069591939262899837585839522290235633745064992350591636920175796478584467670596560628858644448490218143550427178249362044437481894060486386572386659792409483879809842308605498982584422218076305337629438699474961643074335074053203060995110626282727274102775973648336359457356922819662435371482992835040033908501579322699989901249748635088866062004544468996007962381922953591209028057013530665351441905987147011462816584484401639377902830385054034175777601292024521643101634970769052100778130603130015105057035234742282348404810849963800143450081832444149084631390728305281308068779316623925460338611648763997034929648119230882453269370010629305585248597902482715799347302137613020009092151958655902906453628005927872616244776219088779386568165250936865084085401843655734133487704843203813716528735960589119714309691810658720835565814079017919535203823059158497490372090678832997499945489176917804433434072216397247859076345926718093820776151059222977898566447711947709210961123576175444082873229248051914213027315238156280155776601170723759410248565769281874842823938949651724198102378634127483206370731565969308601777292521377087573160866761582984678966549955867590857882221983188244430159411067073391503924083219094233027413143071079985359120265702926430755662905454310377139604136780046884320134337023676024067795906605219184718120846937174072882385522797989699772910053956741637498191357830199897391311619035351794484644422281220169061075334425240441852818279737647462434634705994662605818727750607415886659961385984251886256827910580213591682385887113170740721901447555892277813624857132728707412758977877620288246549445105879853859525093128508039967884666025073588120438973958120486057356751281260768077228791701905814040825462168460354052909848964284200012102387466772623317695736205701128158217293713801225348176146641818878026268088120791080537039062750918535881750408749442744256772084069454903171420902519136880080214360055405752956025471467029453949903993823125136768025440336722337223180292872500118844140299638453603503232283002026169305398021545355971066478052339623034046746727942124567927129310593407101098592290634698094807027205133310752374020403510987327986432070218675069259364822831394171749712010712583303687847549615597555235676400011759538453333958222741722897752935599587975983259963635776451034722344146327564424576909536793954280500970634089556787302888994002238548410636661805022309359603944571775588396271339593994888785364139320431250426585109644327490254377617081837030060739036013122559638648477304388147959459696246323315783365039462538218389785983632216153116311361936852609944516027229178539039839661719467336051587705038899941771911455261712863454833940419016847123938636576109003069443310072595981142388858778931584998486114061626419799990717616050957211691778765272383924284114704534697989164775957902805731640977527001374056183896202754838798881957425961397624644914350665796025496458072167411580478929312032276517084436149754265805553803756854327602127305801508658105324654204094066647640624787593436797824805390650768348137149679163621677427421236829462364274737152355850466866850316902460649605141474527221619486070254451110570936407398001355528615060924272229200612571761882929378554141576664089392369524413744774695483390681172320584402783288847766373269766484789852497220525471329135758738127071739436702736417335872230093459821875849668966358522241758740455586979703475342799097255294533695161561081528853270491884915344205696109885286692246773841103206772590089688143973792854810191596293906718561216629210290571759920786028264470491834994598493932867829687246945539147283479250970158241687872429784006219333337822479514782281275840444247229246407621426398076343035303112131096251011030648799803058701233569775052595694652015562921480577500535617620410094509378110429681381264240125879148217521123028309809287743876449119777989593804152421947665547980779589755201392017149696490917123354371318805060828095559580821730496875259519497951669339013643456058863373541414059230989781951586116818858102410014867900700750665723123800954456290228787424191340088257935045686369786145613074404248932716756470429415625076186639848937332053129842672281710671852347228064604651689301205153451448359806869103933103999975850308412351960172429280860038851423865160683845371633274234647507544836861268960286887019388930422480102314630001077073367975474961043125787054628564967684043084750430752668823201150284704107687801313261580819231829103138860920978373960535986546772993775292439641274264873458966104534785900544761501452218481118524627169359284996359957735377799845609033765808560316423015483676271854814287439415333467638246206900787528332054053075467351251852345265898237227365192497616549197338851923147927335716070001841295434734239775030052135045381043787209655376787048946847191117211209772762060335968197149675896983738670324015170129710388233123923702924588287617913715024949868621006090881831797900845389827589039489118443267403676558667981166616103230262234773477720954474260558746760414044194758848828734468262638978129279981245648995829610133642802510275899747345748951409832885588063768451762488760784045396935243107577694001201048773016744581254691181537718121583649501271415525015818788933117438278453778499952155302767501190518500933982401788484040482422164332672881403906005392300564226561541038954000114846182788999178680649522220380267365232564038852318992587317817407879748158507374504501890416333859927614445047788395336374780679548140529978486907296261589144806508468742816922916234935026271819699991981799111555092428543633572957063325619456545589033227152565495752083025276946336898758994023539188618558218319067627269942309741464290939944788693052843501483365328733131111548893172774203387278682692324066433231270547712419639884061219419862079660035448337544192664593994661943732835161274244801815082118935392791437155961760577851326738404717724863496452479138736622461268552747012756011187386618286340041401219429627179803598241255364086504381543440614093250848751039843543801794893516933375201331313336229644343645122938156941276716790433391280626671198256536294096795579653404658708690086902873519529629958768436714254189676948259740273865466208109608626721156480808734837896243710245233506338765143809455110808437389068195224734630560748994076015963707905791071083330525566809575157645756765858313394904530702459190748489469402354620581886332062623618094149624336526832198448836454325755041436520774341261338355047814587134634015061271874157630363482092299759442826780586471862496373874232169371039910724260822945167516786060060046673553858258994174278517151691781577965359680072776377476030171724495887062756930847408744316566873572611986737783362867180731518324655161839730840395621128423171423317824911984246942626916318233011076778637873208071991386584198968000433832856618513789730891702815381140286833992733452263605226840689229250700826267481748007017725408825467079216167559654488663859372593808500206797727331655413971575448340365445091162615095362681526866216708501064782554192280295691876165299538011203219102279535158437592637567171999375202956699123056264828555235952763067808863798847473975659210103734777823793293229500535670984624739085720126253686022577262171950105504007123522600697147319806957360168442386864150599005732631661849334112921093526232723266793266180106215683933522006122902067518399198560817807393166552236887437574707163722075290558731654109074017146824789398768701177551656779826447301739834283706273654668677249862395061744788030307071707061675480391510716103940319697429649024972505917194401709423089039736658979951153265864197414978851863622524099329976160060266187854884709359156428566133650315959390276161295959076185129393791396824129294332586638417003120094648654721905087392455040697150425711528546751700824302004072647268842572424499679068305677511860393052193617171094225536843271656406035211322044613558231164024409162931837699791386319812984330036715231568901443693905826357340975386319583945491585592443790400858504205493128775798500154658221042613660148845754560525791857496056796303072278767132417821205436524228649851711092705247252399238826318766396318441068309361471722454130237313784278130269863470895904203030196892322009611017379278478630859663818143860468124314149977601990407711248385046246756397454403948655492307590150710674944981977306712950465666021442165311202302495532725078522900017785295838983856568656293235914620326271436417915933942459697289690105276445093807586651243470318264603530805757561372704759362071546614459778303489587383865635328327291339875464544589654469703512981196258649923961181443600013814760615294854359713498585183960795424633726379026176069920374288688831347024749905236291625952331226585726324700044639578559561940943196275623991149264402838957267789035083802439459425409928943166628488913668182941006023233330973544836176191615654823579681668875515891552204480072444501588966507889395685210059934367804701414223838895425894617684715092210962912872847466917048012098763049869142616939884415168824210107923768771358895920339121696079312203670462146736470234558562435576231526913628717758699569982498804482743945599591963743562533879331700352109785073266674551949616691350535988299628889783388753268119285373267190414647281901809246086465436064146418006270397837809881840913449638557159392062291525344136514402858509433124576775868228931529585054262795145799947217159746259013829228637030670818401390876070111043625526685174383004150458151077769464574058192161551684615460501669310175816910284059765039801289470733759387989655520137685937444714191267971140088054317449635089689420993091368024946434966930739799960192757190867175687516231345850242310222884942337071946546162307062774804936021510664676564712667137759865070405547718250996825652109442194418452342119356442301407611289562746665007870261925950137589867739040044333033384731084454329581181397000083540339576256507750647333441786824649591619597337902944815584631670508206186090786620650615788778293578107412299527877396256660369008369278286961406048680919827164506463986214301151519572641448608573864262293891067590126927624553875958660775604403848119997145379807692956145633619519133422627345270778064545149774593015565522308041022012681014232357115249409912842254840100992528211430517919617698263800308481850565940603110344970606432846153785201420916636661473776044660401044243986522480744100650090032401052114323092369654972136943848512854253637835489283379029297035511058763239759447980919453689199128950141433087451954191851141655930059387059877340010097483575793428574354653051601953875299432546709738508064782901244829570228845170103648999213457390842733982566654384894972063307682278139565958020534577416988190102904202882709838600915698660046101441054640390873560793081050408596738453076517893582025800617773216106432449893497434274555697108284754202379380757497596859348698912160561008351066332695236236257017456183589261821666163341289653434626050154945329950230079700224669724302548973656574240400027545503328258301606786994557380675094514826407776126877441971633882519836263171604729178441638107750254728590611635590058964862340267704068231004512719308719181695064121436561082673208157950514805395185842094295895096151228961135230116470252301797701614625083294565992289603867114195482037685590699166645574576055978730071333660159430474319074648454118778554200806928475227371576167974856213269459808906830225296999699935352144127785473380976869511839094000269819400620949158119701773561263287942307387772449316222232118506487519793178198652917730533166125877917241927249869363372080292146461672677846741306097057422339021540744806248480701242471587128176825007254800824459811951271550243703312032972368970477012884494490137994098231035283406156991311417580304659343331009569979790254697177364559802286538584034981892429172536446977673344866559214575767319448861076457166550558258347380928682835468345550591315941648524696735974500862296639756366669709411363083898381120799052019658580762995968447978266858147253061852003378210506588733481814888757013006394854159531081828251949734793307189291466888118427461009723402438045831729592567205609853353588221410591455163817424542530706736975813886304438863448429856998261584420906402717146382949549673328431628952481789001546844676038381497663424781178199665141745486960957383163154532167605977914051867807354460500963935552599187113704849744419380346867935116576365033113637085155761774186261597755463122390821695234633639208780166730837442524611128904757818398884985575990879875755596608610012440901494977259341526122053919761182192032858913367361668559567604291071548746732279151120094624668990741783940518028573089886946727470916309475417302613911512638949984607706311782764185643928564316835682622310852926765006264867460089764963406021422687342480996872135110338922498108341875197408471318364019860406224708972353626350516332588616284950568413841659261094395274812354463463444559034273094571758570843008053212364122973366437069672088063166744080673451737885784393095168145485682666499152393454639591767423791916183586389234342943323076383620976709138962985108168524043415628774900512452984453293628849758468001340367791304023018290796976160815459289689328840727032431920190399740749430640195003800065063630059610613823868403999050000925874710551432590002775409449031488464903937773009802555797962690994831853002169317224382547708696241997836733614433733804864085229239939260874926536893731472099108226562280449757375879878660838913675182410166798824575420467082272236559280628427768469408594155844112526829116268857619741877652521156478753718014897519540369008696503604846542951723168251485622540435203318785150120440220955192722773556122021304776457273436392765878311606785718946970434501115441322171884071116353202984011104709643943943149940609262481356094067426802843334073378909854118802794848101368760580023412932947747148211127181913086265350996164554058983993939788617394615244677793626851938525689858238476670563858816360904305550032091126236176909971618287401113818090337963203988593436273886949916348735294493213354304281023522657898897358608195140974031892070133569970945002489157161803354177052000101868069677022177608040662536811962517012829453666367308389010449178816675514499043734886703379589777782118746922038647702285597175712238872588299915661555794329687856722516902515045434412807189287684205490574082733943487983456491696802096461461354141493202048769064238269273844718884891597342807264451522542053226414445109169400907581299031199943650070509065188595711219347893136284766948175242913144614771731165484377544968185017379580272520822461967146729454266239284886323855695299961113373775856835930633802537947994265262367811536818577593242391731263956512342393253654094945178029058696152692963772240763099464751603185546958142573012518143501317006940486241315192940875000345853197356725742082497392769685182846718173672660032117102730577654488579239554531128394733061878030827115432800379939006048166889232392247621715315922390464169225992953909648939339957002873818940959034292485171773361402672941031110321441496693078626374790671233309302851599606780445552994115478403996325882103025426955081780241887985621977503247239566472346379449475882573759298957615873953652191970127590900238230023857241373732129458998360628097083368196960790533736652288024668889173023433339114133401144503959434554873116086930045184717058956623697075257338656435992414344980868393391453177596631041054809401212474271251133654303009332531758040144508253772931143989714168943300185161138777502837234094495484758988270843351892778758321570721021834522617065270886582616258570584217993924340698888971399215387744886300253123798595287909647675765704730921685771844569131507243890444126822395923531757607248984962368001054450937240613679667866992132837431201523123164668702821809058034440936384025015798488175426134683021142226383360955387447848076343042303674446690372485794462028035182920197485672757376691255281781916064277285093034060574493396268825681240419665913781350367621157885205918617965016221619235448330615956530387655902687803141866222988700377839332068472585377858777359657283652094462493030547767536454559920270802999837248786413676021116307712689344300205260036265915781709067158678258725349049091823828694020534661426277153177214028321497018247368298175009771560270889377269943699531563764204299142252957059693865429645603918839797687120829212027183442268147689193790255978072710513166375735242345456905150663960324604476014181280111391226662259058993349001566202344599781706478041506079403962640709417376192386046125439307184096575189543935263271638845741171472584206660256707940307649956758178905262250602994419360502463502986158590654619537533801997638753781857767691200519913421379317191746214095867586069153228542003150585365457978130555277630954521185363221418441434130370017627575164691323450839532949189764824901724553303423253205141880146425395773591835906082503982087130535135558065978273002210577522254118890243409083044892584556366228575055074472464440711782546599845728184036134822127076843304361875771491799298700047751940160121996506007085605258021529521509901180312856867422581240877898070243564403873667744158509259672809638244810971553009361076677398026130701745266547820643318360480964660132478759959508845718938409649938696712350381023996440093663384076917483856328553265563518445566274043469217570273997114151636641772367700856761198739743960472514181865513513662104388287792576796210978960604850452774667628031734225622257271094133060065194156249950973965011502714798633258925688938224484505778919459894131505681433663777287362404720402022667713430792673992679302965118163040902103747496562841370029336816060218281188437703400476484209461681449203142265729095726191313849027786412457521528221953841030021308739725578728070539660110352333007940898959314271715635958548547218372427009543321315844573732092116236046868570221039291786820201756050321733804022681144884841721274148091052571261190650770578861278726718194435383576667308973353100888100913628020276392191141357777673866884050037943417505356520015379259767081067503049571433937884561855006044870725320174508307508286924022734001052680324634931197393440619633873294035652730241717015839470673996658364326943793894160953466365322405796112376023407255369680679851091753874024598001385029535643349096519596600686091169255042512059475835439674913416771733773490417804296511289754537854082935927666018572179819116618580499880517604638995903731063871044752297513907542083278786368679764632829973795425200901113999965112357677718263328867307139771001856500066573447414567435983815342933416327972650263047690325396318236306656999578305286244291458632699741344491523533455449099265460228377108328671783029048994629517728715814369104453526379556897019327535401925788395852604762690828574463098334006145065066291506231289067198629040827584073313078594460352560454225346596830933946507631567979268027430212377111489599230125248516401250100277855558929225460626150779008606756709893279182005606384675721316111775083615186076336836994672596125375826765474472691078128537024743695139486054598851530473380908076382812198876719269090442622944391952853910948932623915086228660854225119968232507166939188608175761211889357926256995892646658445003467314349611011776029074667635008794638182220415605508648030501440227674537514602949784186263372522473838944182548458207520798571104203964740073438544312008641683611659698384234166380312852548908229164921353540095805705080638839604055808158937240206506670085447057749741816581495030150145320758099425266742717603909615547535563637692179553982386197616847337746198888402967025864753861481967223731656268830166539011087203904888538468719839398198999231187442572779469530830444983267564236950822783340710888111715490638744992073233821148193018504452167278990274535912927424728545426088807256133427318921042143940554151768627155814370279868414888054939969648281740289629479639260482646806456873305434802894618961609758857690230845444297451851569096401922691402564269201051875232601097884302723028115268140258649131428580646326292602034072172815436109025198790073448098736319681465199498095898651833223382576086654918204018083600671462890712114020327047800353947172280436146037044258652441077227511818707721625125638524857054164151601854570281117942054349430186652055786938557306951318724236331902243943199378114190666581435687797829301405018175673907625402008027626032891988990183726887849151583588316955476403786143412054918414010649278001475636668655039529364329230800204763048753433465359840671677117339551192469377534984575747961200886079909878174847049738462223989351207527989689171697387840959043797171766185583021004253636146429796290058549467478477144345835532630934120369419830172459410123701801243488511959347593907155564283641321990175280247998512332430105853388559682594809774494348205115404427667906960452500921961460895235357929502647060124639000215948097308415086390908561576275031724603900640762047785960015979321210622078745227920076842687402596000941680174398316179725509178115130786765010152468319945616591087096775812970432503525409493503110064267147911303403144221418339566669885352238335228316345467990755183375782405499561779448319680091142721070354653232740037713876157309882797108444082533660694691337842399570015959049452516814683024642245439918746713961988160036940855052773462775572281416204645275488769714965650580427300889907194319507606671676184839952943254637504183869609195454620850598125803296813736880241925647854983517335382707361116157977508199681797472114768856508252321450149241734434308264799902282392167474292380235022183822527874581185196036082925978083519447090721520793794492768124566844079610287222652149751232690087742390905104122500152687369128223911406633458667098133882199165296858706502370811000273842720232333060796842803194647342234670256441743390906755474377855940619498322231140620960215901674502260005000192986449471093256009437189126226675093063553708241621072177456024342165745668460761424271019614114084564942478767472998831851936064057412410539925959518834461797594582503635540199971578623911412035872032921005399505201265265874755846504660062210538349646551623898791432256677029413108071262218311612569371718641328870347505811507029248242645217314693223393495945812155976029677328804282233830207697126536609279625351654014711514239807846686356518852079598832466137157874970807273101532498955170753150248119720763480049597265394311977435037632494123301436575371640511086313548122476267172455623193712971138572638971601457822206753143313237128133809274736351842378758527299853726434817094305182832039083988710259908672532140421582402683097901950008990871414551951835331933969762400555527005597829762400705745298862901194574224149361880061164060921210588724485869751862864769719081846055870001691087096808946697642724347112443014285953050842690948506745766235977853072617453358672949144052332429688788987619098945519549217436448022044990256131671923295471917447310416155624597694856002025728865210966273800163746630073176710528456866472547449702646425121357411328769636493624200056720695411454219517528650993155426707538471298342219253127834615611650713327231367588964050325742860384033464986307790493303372365623159521431487479855910081698086312124447082624510731787752527507134745562105387557824515816662776173998194384434780609586553802900104183048423909369363019490507991674564213124248522900219909409297722045283917592919119537881145641067951755155712769516848803352182261092934931287553856508042428006587787261455562093890563243812187515505563954994331363285728785083726687484829325938587419012026348094986612711326656062633628580907518340516707703196447096615664614471997573658784460100903431616642922526114161964214866591559507186574022813590634224451468630751067256166391876191071733729064650755754234177500321744045934429042348610461747181970138995537845473278987992278913562119797298167389390517865514026861248839835754397412730186153507321550950852483459009007028722669246352658670152268754493707288475683792060758788256837589217677933515042799341550115777032964449345599218515869113819326677867212078159093838793910586820457542437708493802874056232551705678425952098074041363580358423296274352673904861924776579375298984805572792266479180905902207292772745403528128079231431965728533798267396990350357593176180549986239589241691630370388334901023227940140522017015798310572860595281474084255810541538356129114344698149808263913900333540202918994673898187634829771616139212257158648226037746295871481544124025677806288324220681598618721882548671381213082961394129569450189746439442400039491993913337573958263360327395164691052101640326779150028647282065672517241706648638880455496599919204215193214085439712483991667220541879261939953016043501905086429276603930942842156167475691696990192230468911968462143044215246147920288087141224584437839079762340465542107599528289171521018264476548938438341242042185880909625510705994831071293560294774711093333953407674421536268389451345190655880417401682947441706537341526021472794174332102014453779196277367934367885374340830764996235319063223447590535362435785312481253631380252223166501537803878341037678074867133463845941310732348510396364536018380952135924653263776450640521362388117397640291427795702169581615518224975891117477817068642093626232649295491956754929772577225908972208583096572828905672902107067160007003005496705011283037482856261081849918535709143228339610891754388613725099897889258139926614937784026378022817501734840175542862548221597899441979970800442327548610011314352971399855822920234565949531139984438386624232021668917269675991998245225067906027594794439331916193019867087066174071782795230314908399164237697860968916186392775754451585573771230485771514622285386508245652279195591713591988204557511736150868861666759715653547313541993942554467204481968326443068437919976145375289411173770598190609356962427972251788330352079451423076337445239952103421491316626261275226634217114888557452707669541338699891291042442361035719500970496395413990416174382233053344002941081379101384118732999317745377322353530792936671199118077787516036369955511350522705446346392354331392725011194761939414855874570990473047502639755123481363714209857593807048728777888418609969017128919766476708447681717733398204243229417109059194428333977172118214978259780073690106514674627638228223317720068859277140763946915386458371450696837551190893771533558368825041187894684120782813804893251583640687880788800612965810159911881299361422143713943046585153733791810848199469596557805629098198222553899991602623716033645297688602494256630677662150999835187577516357513500164624494464099228340730953106847653699263317314277748090257582463064221244048134120634056251942991303966576339809394525886295848806166269569272720209962895498818040934178758611037100666390663756633644461359517547370782903506686851582571545701213882259656317071966285699055868446493162648343777902904905656154710839883858853162611201921594548681140591636935456012129268903894911060699734651425970289788914807593205519239021660447317942499520173526192899194290057135816578369609167453867354513295275706274667698909288849120205192759084136314908637816905715729254944158527906381516719255669560947820604900284847035765049899947436056886155284296239742476903008930561504020461701784468631424175201304623471905913448599544318307107244307040851099952295568821748328280890241601446969372861818367753033005789224692588455163179086033607280989634872329046355752192304672247722265732319622817642956528719055853939333861110700691715488134422298997581014851170243539453473537305590602063081689851555164508191690795221139918005796129831671253393211395272012859266123046112118417391035455933997806691744441752186481108286443579530381181504171200942101105918356446205808513496472442379166376283793468930441466383980349514865579353528234558797247608167080978650402906530456845138562029877252682387052259493609679348033846484603281580299003121085697159168529726564821486415013812688338090116728404324687637613347652515042307858637389584143182253211405166204951466098936812806613408097611843545371515427889785130119850623061468282690363161589202301951439757228704039410016435961918146176369572370318412647702164568034113660690236581089480337757515434902835518472528127798678159810188197990949380725752641154647231289075791723302505459695727077280761246323019809786296038221828229250312265087693828960721976101236580652452104094174944294931274412077720786002283320220176384404833589615085420780866490585922899087669114653950393360807890893791397888131540682817282199687868502337336792625029401704313810082895793744267264446578339061395261214568009419715370260641053856269448703207376012120497357709549655270657863998982586494648212149497373591590194855979119824444884372576156533874423014337662682963841306866096019684742224434601612594970748366373767990995882144527655421250264630886105450057443665382829719972984404690658067183289510175431444230912745147572314953472169658315914005568057542083921600230144414506959181712100588474138696887015005450820848852399556421462531459043428990514103842920366496831772639195328226344442208741374454980540359347108860939524193949837953259130114165974378020798707729637175472689341860850729855075476682194991336926048423855028994555567550624487487153451538474866816587388477875089589592799624363211717288554526751848140077300008592443475553172415159957592366249520050738413220833402868845069976892823495681329322737942802966237001845101206872108199528821942407460665692723017749594975726569150852815403557755400849566896169128971973207146024199328870644306483180768581409506986372435787373454755428058094702075497602468679556549666813053913454304690466653824709361355940969571079453447445690467598935557237698004991211725710799603904378339973352912534280402663891907476201397191101710982791712625387002550899349223063246335119428508337787480923547933478844241730853076804784825370611243962344657551880337828520433754909115564029599185729314469052557729224614367872063991798141372494635823642350841263671708792416971113953356639245755521098393527371566022941947802535642007234386904737557598876982056027120348628587849102898974877181044639892271955133339501086250273227234870199235797479920376181950480108312883301329276405694651799084189561869599394964086951007023306625228145668441323127959516505099105090410212087663184609711163561174322058316424557430480456819381009849633259740465770608898434225204846650736119364020345111370758159622396388273617970146314920734251872124181520504577182953873789035810445953401667871064635918725463887078691361745446672934666630924450790233440438339121298503988120741794529324940182484107633442038061873258581843592046762152621099076525871366933695201306171833041618493286596190171721217838936397277767422631444781296627632100551854302598998547243533726100256749939802644584645047781475639934796888525934844862246084871607298914697597652372214790997653124688799305579700946300769796635187187234494363758036792826702279937738969735431557792019206209979816501136993617723652289203312197653781840700734102258088863653851150587883393229125369696387889250216675768927871877462342830129668954781535030212340415991745980854370226773182497216305569319616729338813973939178940015729029158840017450791914080223721086377485737928214612814397025084382241455071192459003218423841991292224453038452244565742722301596106697691662701053254666054202033889958107392154183359074989307358722840503986098269972982149238080726719041472546731203351557523993517732235080687007678596220359932901855870951901699768031409776381489823634160584917461267347517689486365395587914245541989092241627985736124075715020387539186168161679895095397241641006238156927827091951763020650874157102540355929342371003504735470100642554373778080148581540543305995977078152417903747483433370422256399094253602455428292105338659751936171845662923680488934161743458309825721886917381237335910006424615528506984109792863351771457351379127400284888574219526863770275456612247314316070943477773216691091445555979301684936602037495738817463410932388477722417177243609197763388452517215351550349491553185375055246828985509649972006276523164616021958461266353055397223125519000653759285159299885166085867263336808675319545607566683844075824916271210609784214305699907858270442580091878054563472112310480915179375199231193281653424454369599827457745090143944305535536104271205735169191268442698696911646307159034916335903658899216718096152188456828108130636833419691596418868369016795129490523810015128446931740563926908416329340214502179645114657404018061685241579670459796105706075337979959696164803128836267921933360584312372989463346387328300021345505356179166001734727233477827301604015089697998041920840315861980400221050679547375782806790359613650059274713838164347449525097787708959347512336385088701542539842370951182577237048727008049868775829588559384866321877603387292558204251981183678840761788293464636190051024834002932263413100575151628721521046109874984441122879002866448450963963535473875257621156896573876661734736196247623513137358196319421017768573841322052597362066142646077460276398950330787963181753271349886065407221541767980946052692380544473476229221287109846283704060832178049250733928458892470428146199846866419474093517724179618274431166591468431325204462276330879449230986465453108990737997706469567625465227551259493858095343041180651443108594997772736260534918222018734234886030856860455142456225978251153281100646987971390135311866025696562341049755659462303167089613598674094520021940488084183069877565536847218112669881673914891757014931691905711721012407349667060257785115979601687719962959283287319621443776240862284646653438987628773365277532151733347129992169120157115883559227110096603079503270707527616610121183130239512567928396028908043246913414130873768488199407519270127374543839802625765378288595800425243631411005182740922083049019033689126563870265858353329420874554646516045010093737054129177639601406721391071521389056395832200273813460366196556849460430520300774394678324959229309997339959228189573094262908218481528009967676845635844957328277866193090384315760482338998590651901449429901632980247718548808698909248552728523187509023546351641447898173730340532972244250541622151712712202984525875338629751915966876350501654563558549801822786116651312929234271841576205171211648419438368447010518770008770648623465812334334138717254167439221421977041646120919634593857290010553780477332716073350165785321045537663445540749918244311369501102270789702112846988676810575449649876549912905134127658296154811151624795288696362650336836921176189497251112564630495709974107526595506885654517068702955235638067479688125971601448512267898873381460678868293788783527618048372314222471617346953673820423458960703820468379612113045677606467569201120411304232664338665620482533521822566652911201168927338928699470909438003965675379465916759657452386311178206732273199262802127934152331334916307093401178140594135813710454098438965490036477015829234121870507227703098945267275921461804906523558200538784721290877997006702243792671467463151351191744077524265754091578952297217641740420732796539779755097785144546312272258783465015262864985571650367443889887191799439320634382005619329095592218613754584302995042848592507213764201236255472340048432008099546513824000209046998478268300654596196460329454701651199529836923658004191641098909877544252642541700664677448849077240543688553711161257387327455218179172241851031581791519668242045893069240974585033155029555563483671925934783283327279451954628741975332971273157551774791097030682825448409563739234447768568452282821072791603601727727580944336807090672700754587146192573248649089637157308292946481556233617331454413687594777517847946961851750607328407101261598858187183726160187291230417699177154407197284940277304202123942391426943892958588430787622146917743876767459080604737513220599554579777909170411182557160508027976120030511184892884576035152238841202843541154310439197267910475022440978145211063306787638569507374416288898883589556158128289552495855077527504392037303943056762672046748840017175915145025137497460394537890308515864318483025149547877419160893973353538174443784569662405785776331212878255143341432312017111194212448672157276460095178559059446553368751227019998424036178834082101937420711008114014299958538937838556844435207785791421139894511718340545530413360792706573589996162282343924411833747564148549426972554654134661549916085267081315404433671414599575842291925408691818143527465965822911815282598277602289156552838062708415258880847069770726096345211021162050159664049636578266668375381572726051839295420184543910805417786212489154322707466173638447133274463906314879603173072599383665874342960774002627647573077655949878403638866474556695352606971424423164449418630682969797832083466227126640622166115061142719360675196620570213965397338648727188851238405425845034913707337547239232055572871109021117368606186189135938052272753977758020718532312257259852413918232175025838510616231773240139554387413023060673362123138835442617353282870697536655794099783030585572939756731565908095350970078043518704157259411631524570892684943949362989017104689847824622898110925866608834650960637374904827908323999176407342707717049556348643104942156241250566997035016015738439025022548200366662633677245076152252179932659804369960017310553829978405380984155656554934997311768538643947667684228074480860020146639829788845059117399366820453485367570669874861328516100105688050977164067328333353281741728954744218291805274922288831999955952447902701468641490342421871672852073530352944342086912960078704999962157948407862097660523230763939643606809102369553910853181140003588431855834645630163643664169213642883998015580558239303204343294595817995189333004748762731666463481510530219354166791404049203258258432044632650475760131861771752180889869056858595132688418858239827758837590696094717589681305139300145206676606802549328163420126302372940868487352589462649836873549050030732878117993317184751921012034165287780433956690696343881840484668509183987697131366590234377878141670258176508463262885540127657842290744057345330308980293471720286004985333734706868812693580992060493662995388494944029689811671229216489004568484769805871820125544760753983161007173488328694937447551084964837480516026570666923583818429986925752194474627224565342018617404461185557042508466297922321927403265819962733598837473214431232456277824073416904178493844085913266788677925707452063769336373622520653757837189761423494831326355715302701106999480681126982319037545621366101292713109094599268516978099135548489418436180304824762133888908314980954247307761781745113989344393258520903623023472777722522649815157692848418104450296029494474564425745335003939717103909292213050748191449120318877795326079698676495131542346252753349883308989011866208369756422544904658806518647324991496160270844671212464001603901066175973364577841282742657825164959598819575118921308023441152670944766346666459620650416223581378361986049203975456917782490438303140535865375192635187818726546572883458975462808707087499536185698029937684183718852615031679978503236572760847385052143038045747630569904690514432704891058198074273100497339724029696226676088728235457429425672684112304109191847185210726465678953927261328551098788754235536220976866669617957052002617168117819458954640630722249882258161477697145246874967451935684244968041258588742037760791173956832676862074568391391489484071785862453744577059591037015548219265040322748292245090661930850733264348540316084544227895099896346102491060458733312575751350311495337413770070249047306464367193829310537542909344328965029643290630795690581529142014140211383389344683047715855619697262247287495986436582033839167172573298516290316349078906455888817487407533781026318116767093218231614147823073309387708300312555053751414404838562884639213446473939842507898777627984290065421512410751015398568735880604058168106769217225837395954480122854022504031532421524900226071328691816487834917833067167063980510570286252674810441183792734979384498753525308875892064603962089800169004272363155709394884588317440564154126363563135493832112379266620085997554770981246248818733131011194499998107694939117838822909113621994452566450043218962932944283016309959433996533352996018309144673815724446661840730636513931547677733990086410313969775923975747096825672177170533323081649870862051772402281503121378532186563986472184399748005392193463801468345198688165428506622948599913992158024250115980825336756807412469479655632563101261395010719591579109884641528416136592590332146345548936568354120076352613650050091409520370372433918806407881968709015574009949126793097696875620012264258754888764552573250363295133352923705079203919706224306238119180027619487888686218997398648027952836981243837648809470415649227069938518050061680643396939665661230384371121026825090063759906778849024213497169406188853020993049970151501537144707867135133988299061684674225791975810176974080818338765831481291323567302179512600551894350054200920006918131509083773918786111296617384307153701988130770942123282330989696034364728087912758153969673100787074634111234973504698005844681158470124385101469838471078573304971858363320611023937324823281731366655557176471811715217980303293352160455975798877925538597421730575157661202361871646319048692327225169408579486459369769703394159766650682959503013489761325815891850095534890881038717039036400847035601241533955855727389863177551954330867212277179511067499761972168374859012321087670239625793312794686101647482349373365601235097214614632455703069404996640114850645582421545760361635500189115518463079134187499860714795435789421028075344157344150163559469776786655921880838488023910885752757906986983106070609920478717974471461188813864198212666996458471667615969658376967421945736054493519294666929800999803026476370362817528719655353815281241206437435237186254490857563373872856401864801056403329797943485281481007480045211759662064034555271075852853866781072946203672928979592249588297414515583202185351996544107438887825706375016618286438725755365133310626497394173885189570448746045795327064103781074488857704126736532063197883617062921103940859261139957325964846307697701947142725698103681782831708879305822698521841814853693667214715049142054433390519654712071627348894052820072867462285768040975060077919828330501092653730355801133872895726783152196698083431252878128235916659553406344885532551801686461564498412981463478764261020266250255615342394890823182999651127336786771033278468701928501099804067891567183887058081076322347291054439280768297880059123914337110269614159520258270372254647032048323798057005869280610769587649810763421808373454631616866497777940905794388400638484540275857498000297014487208607682952626536484223014663883947369872922900711669203153715201591668176954769929723863021495950051318746815424535085771638961450148047058811748440571325138708292001569812908565759175019113745088447074166056679106605912525772427393057353658980331185362081767463083402076500206434999634116523547458531159255415526687508163320809349556268692770817714108499216447386549301607183390606656035401025405335134282471707114475994197105620689592392940123325236581590341854584930708454462720927604622224957070125609342357891798503203818157122672913362121789330006697317257021831250047833683697914215843085369593100729187721748124717378724198347003475134358217539896134855890406577028720590418859806780077402962362807617585333707550874932234616471846603339862627830911388414262074564734417069383935471536001889669181082872187822783727912753830782659271352775866882333344226945015222311001408739986996950698406829666387321273510329724872115269385477620886810477288116545504199407001685100257934692974061993188755394380158277762367035112769125658693864373729734277288363248117956643624933505441617661587593097719043884323873305436245128452012271414417841346041922790481364734045914968459557256094518078171344958849567916374244584995446538884356905544692965219181181136065343750933104304897229638376492131625927878329784107248262280768703394607965440997741346206336981161529681894008240713088971876799186573483350566225704086442086508727544247752510771331476408818255011475227750103280404145901565522272609251725250067330671525463690769310988929240897944864852557717720168622974641608249814737177430345187382386744310087838063348660522644162328751831001850883637766383466288906652396361566657557891919221525118439341625293900887020996577203649712392626414432458507253436475738634522717253181508051732893036543415056187444214046788104876392426261830811345769646994967698542370747751514695327211340749188113243957780856522395396868503805998844085170127914256069032149094376576697983322309165493231633509649940931549663766616494695538281230161425879529389091228612046304684185896666283741710887853755668354227386098248179314558394279825925355393490515974058371207098554861929199464538241525750733801569530927294493259589766576349949436944162479237148926777403126207721855189604715237020398487015087881656077311800190724040367550203863547253673123721823657616976829101152379933529608651715688442323231530490200858327258714412852429838704698847810015167299730669927704382768813629499904751087925980539254787193009540410042820190559942343940583413896595485676376876747141923145910776197043698930510793091017772339306849460284488454708506335231905828885823248890191637339607492439169906989088723221227919002994753138457584731950631713270383981909003335408735780679805099089320920150226342538575830751174536086899718284310722136347717406881421896500384628148577465464071981148977968360604801166479039745611886465813061388294082993565729704857637449050062424023308234703740019947368507051744961748983189557620205866205244907120084565142069247904511948780031901676556242190466724876603499759028517920107550876360821445206299993418026552772522692128632500718082106106633903153873575759153725401888860542376076085335569918122872912266336754995179316067097248098993435799959037214833796067258767583826806139955693720711614399856406989789857340279025169896910419499910909916849258000642869657109242078645841461835601054947957635241279573196440344970431567878167868267783380765578160616650605839797276727311162865055228622128467914725658328566964353564602564335019590318296525717245441391017355615602944467328889462192704031798026795248781268051613736108338411478441969137161620102260608100457266380729870966828556873372682275773531631957468584305309989133204745323588773527077843949358970315263129236804728101054536469896173041094217509387281957711637552817625363669850489679936995180420819132951746667745650840087346325155966844766694298354800121375302604336079879539167703887344372131849747998400399245355487028641151019681338625695642662674073109189398114096974575274428741288305044784869619068027356411953131880172765548203899869055309525270423548896331807736630461978412558252868739289585540037329720518841941729867243060280174585793491275092230971269644942727859559180231402052568673681163909479090221603201055182833277615135772684864586663473375994961618790219232107171107876254234308194739606349097607525856035945145974090708941258444654074027122626141649404351515833897538267565011643835839398175616324862309223002335180917862789285524272697242159239337043572340976995540459070154001808748493212290572714373665569133783015107640193319159659492152702330493938078973869731298808719621819156472384880505520305478680011860726476954297063975037982362061657298388073265740344817114055998470795735796015832589640598294421776326831617262061977472365421103228326736491490326290194218587195308740743184721335118462465800713085327489244370113453173037312110618573780534164410617213845886611699788156780897293021901479366578392783713638051025098036734213560019199815300678265200493030021195190828142438191705354039680006205013204554498053229111293432897963818941907492583084191842828596453568923515094256178704332605648762149872215774359621278478518363656175789050420980784053403803137018341355099809924736835195473173408170530758465871914290526023650253222864444130258922566201627683981793905815335860913480649568741366642821382705526536664523713411165793976713747795075861295562449331670006325998674294806865791175251578549956835511478314866637180993216374255648313143462150618035961382410918464415469218356931037149936085753213900588523101432051695316517189920236260183980943201170447493453129971242161086875417592433589099422542178861601981509829211189020676561177867315948420879230123364700601554407578734736610787495473426997366361369129252887328281737078061632755079922637075591132201183095959427927878493918353072045834362938484107254029268556317076683622617833389485614440061935705446516456652945776652265939596037383028967891328968784400839684002027222219598470052783027036747709501301006093475463716526375013942898040008080521575353477235629402751704311791597595837899371169211979865957855351091491918036539949069041480692704198723781479963322611125369136449778369457042307445618271539111997850257205505140565673643024782098840644032084833219332653008996719593495467970897424494699830182938403048386547447217575904388200296602900718678295558741366629162881155246314384803689115654948180923429801049656660136355681656867714327893619935837741205642096855958540193394074885133891712774036452008332129011308792303018287280072553438897357110092759974207075594887075897401446833038891435705481256890424550404440977188654253383558018813023810547857337505417221098306295889720395324097478021161228286373026108408326578595706640211031719448303724724052919578817744381807556878707551186489893372321976087477532076640803053198563984498203314124063654194484276218623455940256053067662611542463791298426847538204609956696448183397246275518486475445405420916318584274852386398994132436371570821443177924099319137115898565562401836639221077859843349936736226802953518980069191601174690023233815783395149790716369625738555997269150659895296107855153219164758801484355608131535489206099096297191257406295295241125802123417945917386538787204485603556654598079304113950479600517503281559827116335712627810400993302629452310874027767206979081115604026008824051794925165682020624052447833482990075606342312659228013819656947132107410215500988118117373675402734227822273296344702365682082255051446949211629225813602723310926320572976826421885312316545929061841596961063718422813876610572464253621408765296025237139660894168703632117468994295469576905560058220631466184235840400140624548969421341856271059726733222000706781164446928722695978841876805125506120783098437720475579090154514432189462147132230709363697366184534561649153103234200355527324941419214543572422585627481911455108353528836322794262541280902639546388271730229339876358670497473789718593176555491343768342883762489001374404936169517825027393870110878019376155970842963659967096346850238967576395461621030472721811989143844344835720471877122195521533914483917729662164870656313169195828007823649303622739628606297351110850503661609649732332323032251757857773347709787611866513460155507443045206249545453642814917183718346748137542433183375873053953465921327299030006532844851709938410025286287786287657426112190821323064363904702191640395213951682836240174736621768909204541712712239811649842124873755007617078711361349128351030284976944196044838486731233685087879850875427504017447375538670960810932323849319085316500435777089733607428921035696358142332333561005565669115477560050685486698951936757028432406722270549336126105958789454411641286795084832920508659398893281122553663990637809301314632146591862840380233436851402164270658849617836434457681520101037623686192862111973423073301586628514396837365174464357289941439005547447631194893529953172342759731142684457596345917728513480151684358060713215332914124017518547046726651427075208020483972248838236651161440979185476063994544145080557793287295662359753187717912686729355152313359613322225510994753370377797925096820574784743692996319637578952298648378984242330165764093526023399623873736376692208969431218655985954067311073408897940778025362958299916528384708023697064752271112784515847329919101544985394656335307647240410776794538459756698418628608235499406499234867109486594138984411362872254578126776083519027725506401887866830912159196664341766761085226084895243194562511719027025925009780296942485400605999439536016360376947297284620034229334088935656634440098007365154329019542720626538935999114284320176531841016937087146778310176311938479818160523498030498899660636503449031984533248840011824746770406166311469895781624028728927917796449901508015567909975631479871820942945352093120911552285217041599963840903024990057552416669535738253812871323550671076091058752475630407546895799708811072152510168966974804227267263031045519024270157716761054792718109677067324544756065466660148982502853403481748068406809015705333461219976222264270171925591265383806184737710786970633873054656223795800469722262737060202722910299667971820141257021322636454807500252795278307894268232952121157444939551664985065455494036802446981697506127280257594175420534926221033535904701900878831621976295230039556485514991284050521542314944562988745068198454234219248101723299686295945180257090308048321545219466785873389707998084094915131508270695752560877634865759754355627725253052821620439338018084628049562011540039899276600644841957348978713602812588798629961266898844440517183401974971836692221910823986371129572895859290619407368311011430665254196906583357984209012600762472307680372123013607081321822478227267799288725717808398965936236067776505010823408586966187279652225404343885909806000992618246997134093673972496986965195851050448695678948884618281958895926502439176638215359725132370127804635453952073227364190018510841277769522323797641424615525337766870936491302100386610476741548095524091332973326978681755308718789273339672791283191285343754976836226185611509454624355108066099244033804117524020342364485860799902033600717938215423155522185813898636315697586119917555615434647174502876758944798030539369500203424998512563026777578557310878952656781503389461472307137376983245992365855801820160493799860049795665843041710109984723060305177320055093040163612316497973386833725449849396985883748075539331699526596695466122422561278761953389542810059035406799081111414453582809944971599160974346542035067463496771243740219728868343337067258259564302005226188434905207371008712364437218665280084898528618427566311768046120433240352615246968660833203657130640342676010359294624037542656925022788443529050961797707373082908469403242514374502584435698400729138509929540404886532267102137416264564032488485055992247451869929823115495158426008105257300371473368738287629237812425698068757563881740861428343928540745011110312938207041283058093440177975121867927978767618929241369995245777283731843466647788248767462824591282585424884505252460540370024854644698370665991393685071610000564055500247811389100945263234286744507841525020924691494346499273861498000517383331006926946246335179643687506253135002918890707491301766905389215337964825359064186287921979005039219433436749071272122994429417039612581775773824193005584587015746126915112239752348167398678479703489917131526923709425360113912100724400888344125081868493461082728923294466945374902444216309104132811334956832511148304136859607567510549146629729397245426364741959041723336001439458815581916033288563021090026271433489726270939149604549060393836137521286477089127272602016125050523423144004479557033329151330325673070464784023105119556775762013148470073664172845870483926863518521900536227272288078843334869972320974786350057605570264781693347188375136675934744401035088783839350513254836764798266787599945426402217973753104276643545362106667648261080275636568482278748851059474597412955538015136297583591627295826994327129804271583946097041725553472894660984592615119640154295723002517961293934693773118105885872721978205464571721134682602665793444871891098019194310547877659743328541104904952616108797803050403999889009524069770532648054725955006385977164981329702272086067591807639649706889755639842382493944873936099723544974705689360122702157421795217076412560205800482267346674894598324079981010023878072409734061652112934046062815634583051500627755019810850152687028202690442405299034396809587023506201699188532029890970118630036392407313441119079168763623737337996144117908318135302440153655808633738393044303369359632822835920634015550162641511945758512590479908175076950955574731096386459723762124742147341436670233672755685492639346188047491876537531619415816564060017541030348573940226349201784495215668924498167297867661086959948717838947971138896039015539098695439422384172139219982301161097530604677630483013436393445646705672676742922786712075738142605812294745044120363194448548837608031284768971082009688372872048545451682919519884962870845305452371063327556919925588313989220869402999885366410320164136081160194885603302495938530360129885890126253268374451980109263309404411283875187729563728276233144853518865232429464660592215999445322388896719377717807544285985831815437289273721927638639256610129607251923313807847121816017370065193162254531084704088872504490056855825252387412440280290446879233591499022236547760124348988422044903876550125437131732545518496253350211452693998939742372502105316847137403450680725512136567793765997251314675998789073895582522988785379597006615792734331624483091699469635149267620688190997646301669496656365529043850477308178441109381457277087973220499309327816010245051513999198169458063101890734442620321852910794315906311766348586047421191215925552300879451706429528720356694123905283016164618450129267795285615971649781796803325557281921864514197691834299626440467410816137519803861114756823228059317140131609561093820376637759345848601693711542383523925921145229233401752469228724194762823332606217879084074407941166955637054575091422427957886060399338997878820244860916266566974948699528440890398833499424178962355740794955704379566995090454407905754183559249596220669635629531011477536332917692785373319764944057942477325030903199491054684780311610421765076146834334972409704192141932669375703424631774999126854085247615350783077793143779715954890167183951097213657828081345257464057066356397891480010125655613999973058653761460358683835097107675369578247876170507398382507253107526734052359748806439430504505924204777125395029403771656200573361646468066189756314554468842139365567692677565483422666588371111256008162048512277308253759321533015995157265244794399458333723662852537255379014827197119677926755503639621609026737034684559287559262859248468692029670769331927067497782274163093256957420012760290729036758354541027206487212417401207748970184839364247107098360499106763752791260837815983198607441356715174031282220569427926742487975422286862706527155552711660984146694656742059931117327588437964156481175855085144182896098043984207779269238888814051238688566279175505711515723499625402720800734916605281375758897746961257516401076957359869416114698737310401520588658484107564010144364416120734869530843764705046490857609607841824724537471872672379348956384425886465046680516559448783889157384770524372856987001813179719812983975219195473346146125223476092399105359711812848460878494679140123230787694868902367993472475295463878001402570850107466031262297950162716964429494129700029872704054898656089992698107788159703700491990244285472458028451629443232614996005098875394807983805841150018057333516717887432005269501915565400410156436429118841783183795945463705677637567832319428634060381987169656091682198847238227803842873098050790066318546578178584475587814853094352986710985697763947386384763684690307681917422106047521722424666991298499967726304434919117637872952001463614958173624055370920068757399368753446545710042901285833724022684610303797576388648229688682964418790096258948517622010028106125647804190811348329168025316246642770705861226078958898733751823179208793871310370748637858519801891925458277348738560404221383454042939505966558302444132567130354371868658852777066777895872125074691996661889514360961673660517636691579623188607017998737696935672984423949290392881621464536430121570990609623942973393831865483627645178217958508547258577629995786206356394278960162140336823320069037232401093393276845001947644292017316617749614528854016223516180843038200750657895247655069690756480945004834059176486598730055010553566700716043520470679550162859113728837424647064809547817138274060497760321362529931897879308061962166166939613963749628785512095765606994835813756459139397451442748858201130296594327351472310563347740558343033403437865174246206252409164630112787028110815142546698092453473576913893806665557260925144055613011452761690346506946613289581074517812417840657986051391786354841725112610686694098762457105498921148419510347734955815734983820461446076481107620395616203540820150949368353999526283986543823151851413950270647040644432730285026354461716174791580411721780828564583851768371353840327290770340452742352243456390834475296584695969850836333516688772697801786136170543906162427903621744446462754145443881086846241690759225023646508174385803776467100202303355825092758633370488731305251863311792873435016960515283090856788314604778853219211043070391852882327354454021181810362561390292481230250282429386553992694054853539543781074030587254553572942322358996082715799021333410354210030239766808137436514403425192622319914254632985986009598836196676663860539455918700364107614675648945589940047210606061900925076678571533287679483283625934837356973763475670589595083239538905684396242422782230743212263957196546075063420059742815909875846437312467908387171205766622938026307986180575718090827317099886541398139553304426542382477274999468009887883626628807058265074219466234390975594299104453601094048487780858920533763889478161939143135823004020336889717266469947907931868499986049720769155960452562986340453704353573324309160860920036356505101103872547311451047556123305811045741750656498211909124568011798511407372755885155386814728672303212217780008774642251453190641365260981388942381533517844240217505065147539651684081109867457296040458116882076944229934582661108998699210130330920377201249922776587521316303821975929864459631888058460577554664814030701628055242131957018879291506399079720948304911321678671597407782871554427651907934885273375599346929653213324193496994344254014500072888485680847271328539454296385588640232875004325117304182764270738311606396133311237422882437000099115850120603474706698137311491028915442538421664750395449366369837425462861919699302461150946027731910631877771411617537174454560168412998727776414387538435602957013588224750167227372658044632702417365863009496398844982299500375401225657643302781121990822687024100294740908046332374447625786640210041535021177693507219185173063254267689860019778061637124007973375365182243132762565028373352169576158585759266148251796764919079673508186539327778006719586439319918329598899524925828941171752100866264044753097182738322123007262316901410272630274399145512560665171948318644992407065451092960834231349619629314391725267375006890636220601215001104127708500552407311632357433829644583772553668236947228396885460028561477862491811479543008552872014855505477398073617626982707510731358468576095894919690879401623540445671480813216007671213067205419402604266038226674608289812248692815669987255260085401884535392450355747631675085499455855696905846837576806725032322968525680027160181773376080677197259268784478618275742948604044331240137469049889540425970587405927778930023431712383523077778399464830963568520896118781844013261402209729285102981863976552337447439028638655691284964237069972137642569860349922623212533726842953136224459353375526442744887398443398431558137219755714803828388257299488124545805007453015066266954837434211084060172385532686708331054733702631241320692459220177176329545075108846813460850595633474896468742569098555409210743120034762017358538814173268501268635143952475685900391857761693547296316193476582100120316342818268038182322282809529860867716629842583104668703609110181910243787371953744734164039390283229577293132668711769591148725464806808049490203624782728175560029696406292249427030323576002807307991884828532696464798931749462802451230080812855264927293987524378271464799884953420932347845700433157308999515253516959625363210374745811410641813142006061621458127919849034558578731922641299866732732226495864370612452729904077066673367806440267319711385956183719360808520835268186037316286685296752449318489770185719294780856782646549351593017979028824369429459165858355254542821798061767349202079654046716293261738964181173650659932445919132633103830160486043486338520618063894882512958012327764804006133291106706736021669734656018773735778520262387365766244284347356978638091235764655791380697914425746717347730072451847078567502380619818453496368796708773417822462325713934339104800221109281226859692597477057738654460628491979759021138856963057443779587845988992422961456477625498827245064084486474952671833469733363238147671241294853147463725565395250434233407363421313554753236067859928467782815030461758124320314524285634515611279502770838556690889224399986807568693573109010688051721781372676888775733035004478745113042036562735150080407953378907184281664993309909877795197354546921724902538655987069222751183370884487475616686995020922569412487124372642357124950906651169849171311758040799766203853491836828568014864540860313155151316536686510047144652317045560514239677583552838769833910284657747797658702135188796153060559842347089561940239076251259629984573574622879078065509569036882569907208580492178712750574577607182632030398308345292704385922069134513886291053877417285022286549448913551578804852096658943731287319397086763454027546441784809557109831918818652827999159639143267181159545419463007748501228740852282444535483656414190564541958205235848042576052933490448511578227475964442593188815107483071155766199260403784342523602658639349711057370241087024489130582755807157616929752924503938518019128326147846465287655147993086720633264311606817543778256254019935194600959884268160205001685700954242796778777188191898831316135818201690385460319608908565609944354472269961155514428670892576933728411533570883106924468325147131908187790104789431102406990411394267694971911726405059213103517579043612387534048023220881166750713227826024427879060409289737618127511920781129811018110780565158195225969415869205123956981809417163976671339595563359135911991087411512626901104925269890970423656856664857045490032910130519318172458117163176816701671432724628197583896813781634023997645084837955604042571138076332008152224932958894959778595566104195737417482944466081155816902209553277001960770972770214579081842836380091175070648237891505471274369978351000726860954842934011031587618148780603742099429511807549237810261287523365612295011694939087004710047414540677299494593540924904897936165488298998929025100848524625245343522535040309802915800649595764695570980080329533120309075497915615889368687287692021924635707908561237343067261472893678233574154555961842269146730196421380640566633110305077213735064331239570487574748325368323093800757457281498177347226838776134564880801547499471050811553886618947736149385852842837504403940211558895196217545399002870340969602165694035921318507644982405418541698690692828122410987705588911369723843348776028851838519731263245426812247038888513466167580078197896916771247592245627349777355061179698445131781694733128456816060292995808878835996694808500060421423820218730636887427691734926785246382171792374542540029117610135816622827054580006367433226834298202315353507852485455658576249838635354723807123834118493975083779612686257645370441111201458025935209217450982173291991488145637706905528099426728223209759537590862128360565728552772089429761784734152192475613887039188410980739775532402552094121426453966986130874949360912555652615597734575012283131080070587390779948575334546262701651914295935814210824015150133937231180144288704744539252809260040770277117073141535972088664806019142960978570898813567052685727020699216851366119142727466624948727307353390624838313031164665928926716902983498845000921845338800938135394183037065373448918528988411066079382873376417822084975917565595546803116786981080868363637361717520986141312857045610617746541762166057723971879244931562061032969611359217775892762622130602858396604578920230441850615302395232050283032625164040355364276207745170353396195604337826851284466083215479794745105860277432303007877232156967673169016514601862165649908537060011827453400669731583802095108535140295115330204643248080073540866065153945175281341493562252720355678894815847933921896068229064186321437474502968933761282864337459579573914939245028202579568672812174592973555039579391331207356069369545256309308546977901872187265070380087413467436309088702855079985978944244350325481127209860676476076401024335134081364903861204522743186842757802425837984331456104733074024232207749959537485343376514654079693758063680420113395327060858215033300109159380298852039394230014689144733108143147944223440976814064005910804123306321789945077547717563053661449215821801172723224249625106886558059625334516590575856889974412070477954403693502476480573886440809103850762393809681760344496728138661949792455800930361542880296368108408053628564997429942594338304160420150067280025045765997036263177596539446281425066821251002492213558668606705907403505109754209411364428290446450865887477074846195330834686999034632175656053300064598784673759788346830211446810471629218152527185744308861436430235959537930854218508137484122223159143727974838644423606082917144479975789973320981560507017522328961899001999808796132154482320446567965126771357723266995757825045332671890916139171940503426329252617130620797113746823227216453138049256016625349036317658780849424679490216370255225070941474134146962083335703648806338497811231610333989824826297267749126245840530362052538125453955134327427540645048670575393340568747861826606177020567420121966802436158168238318077267559762183693405208073278255348811391938475530452289037528865509575362529290010467463891882955971352412183685113813820224791901129514081962824790086276680238011785039649674768797011046959813611357046026906716824299218146183096160406543506039034574307684846877224161444356868165290810528669613788260460202799615368361315142432785263948295307693934020511197124794669277503202212395005585821279792471950061309871325762429525092744197614567547765314820613807803395746762103636346013878849414573203340603559733875402332359509717402170693591737839416440593900063173349759260068651802966672971533911683096517428410489000482050327065094741525581347191034279710129333535128347357527294018705663721498379820822908365067887462118406295857791479952406701531665518634621331675513015217863587996427078117680515432639211748370221249347332283302809693641128822215523978006035468313112633086330937938022517813811946883277486120889599775353590893038710221217544615565547384936731002883690492796010280721219839155822380367418183115790751387962708371467353546061718812161544438516570044201654368573753176598806645417580553547968957325365730362812104294704473650581068138484570743737716585991109408077598376134884101958698214969004912868583370726163421973259132658791841818839644433039376965734206489290884646833153896067639288113646687693146323424562782511151339168126778205492056295116106168815477948895722874575561511251806504430407446410245561417340337451870075230490038630693062161160724804782521859402863288843955353131701812191895287981953090070085391229765629586308396452662351965488752560036031707899608874628835544936716177420616836091512448783472748218966287098393242493844574525545911495423773246917941734731298983964597565139347162080473315347439661570037969884690979495856204761622593675211435577502354455236068351885405371341626713362300704346951622556974228192790158907169165005761284186269047837250937944919556587259905083810671912759073491745557332638413211192385287865381811919248449455937429806896750007593369145192966887398647584541931046972642637628131581743039800514820676722902454087849712601151663835713738389526220693576997827746528346120271898713324179772633034473719192836023482804587823508399114958826640217852960420987265233827326791390011908298818290643104020588123107616684603549503604251964933387073613006049204690645325179845082570082443832799068112522307432632606915536928528539462199528947234360616345386465688989895019564817834781373397798986298577279571066630584910002751895911169834358713526123564310616714228343628401139327891655642398960983965617963619629294500149148570816941058372389362736603754776949653191375448960026093442171142480436519095668870209899390335125081996319880569395150483668537943847457205042123143939791044818619129239285598005707989948591644240684546962570903831488433940963751895958607105074287152051866646012224529419275738980049720186852283154773069983459452349378281767218173159489139007764180980780091738299933220292257724794000762550476348870103937087607857278642651700019937670625340551366350957353636398801985151316219907780942430744961346284661069806064670759002067990841523394188500993047418186289971093447523190235986548831767633784014435008615908573203913005701893131567364647489935211723885399263846390352547722845026679895580620537647543115625188974834991938235962361322088857998597897203908184186988754190241285883495523485822471027006960946777903601874778597519309297063177103068381003565516471502325979392387185320308916526356588023989739143669933938631696974066339101077806636681623925675505510846070310054764716437219688419970621599267808986385956086852855033721203000230624488966039288298911612694930828708580012364840019458040385897904721950018556583145016510665834909144529254271248193340614847442684525698423618792989077573284699255396698673895354794988423443039810969446173711392248396572584211304131032850152734242243230651178294849846914922595871233559906336138278973203258432247441829830982361473161383854644174271856175644468829394455324939311215073905743366040840838773076429127435086831326811366625040363872559909722941703086332078420319550509962193571945987123367641659697736961276302046008749718187633056069479812531128626879969925643240767417727361628300471372333345191499720315438247196807434115287180061168622854939841643338298942411249132848988457580143121356353698746185537682187879275239174092051356165105899758649999074437630017851754659350480602290298842092407066704770118638607699745562023704725182265627808569022766276379294523459687655631702317481823348579520624476673644694473769882156132811515500321762430646712251170164942446878963830672749092274467621752668190085784115252703357725474471240586761365146389860774552843651349433847780898477041930615564937566461396881836530205688710388134019674619950196649577474238441143174246112981904544561696127811078492580550605621792513348305689136272542936511681667820794997413074329127206584831616071313008985489214979154339217852331232939412640669909329832523564136198617039561348253700269157317785410629532621341480579308769086810497509951207119169877859264028276325007026369985919963752899256746389695261612496190027297592523202785302428454817378045638442561763299845524076536792556254319223557853450910582811033400371868608850767998978383223416593310138124853599742809393573585683770651514618445128592280385481149371057676896879977064854529946463001550652576876201826115614763577669095653697800503093997739179158089888828959432301427539523796721828620522852222309237300629503609190563227622931539994244343152673006829947602710124468055515846391601902123648546972100436577495407750503662698894239972825820059577924613193152045721520752395980874150035652159439721632050300816781670637076845953170982436076610434434462007486997735597214911995510566428874210762489591753603659437061081603408100911794087317104072401102828038654666466926636170243199312759798143410874807474524660041997599938832609524427547680148437572119642707421722142858213303517073074167135290717975881916626683053987359561171558530809790353198998739534902667855940163846227798826533202005377581983172415804256026170241977937106863309686780662733687723419664992903340024245096185785817939351373168663915142342187558112521897893542802235912624161241538953445595507330270472135362883036959694230639535502551397453172691074492882854739608060882137827843081944299247180340752574286420227077660830607433035044345271947036629842699627721786639621211213300428907845834440140233552718071429391282953851775106397502342852408805965973243617909867519980288677754238894669186185339473353373804071211104007581218653415740901125635513149563681897093854314624084519126928286562298340167175697689981324866862923295586476010979218441444973761260656010910693710012957857030493514414182782718617071711294860339018384495371691772412992988112344829671521652469452189125792936699950450139544732689423767968793779958998046816199998637541863640600601974990387876783949656885024193910435107891465123025255097019164938574280969561137874279427004756194818453885305479006267015293604459280160527535373345528214293251712070068255118129234754643980374195869859462834998565406249549838567893768419347816062599710674027529792708583269854882727337099335996801542666402315836720370602050930194637921987574496785399212964146996036156989389751047391211070367180187294513827831662990759258246634653438649564413703616580290062207363016997842534416912586637107136790029776064281245191840855296740479527182879807265955410321930480984604869044653997343185141786703089594477164019670229980527115632738600941954450196174274261516391872555850965055488128554757194683715458002674952362502173478114442917977120616516181238846120723315291402976064603494630000714039412661865735260989605070533493991264193199981564447457688074678953249554545392093095898606371878766532805612875379554481363351684853626493300166111316759252507405403417558381027604734422790276392787160119711303113243995903893938149444798156812735302216344172499965784009422421023602945545292825509787420449207553140811775318477868699073837096498320990528651584325228614870167655613052188285273455904323259604904002039692772102530778624178890400580291606945408999033152211995235783289825107635377705906413249988087443982716624904249282439585035384622163392212202509857986256885175088058492555656869546350471650096623435596249764593115076208342454621550000571871349490016931718131787195636742391364480845122127177978024152990646376216460669006824507419941393759751626461868841304544804525250280515809944446163685708721103846085680800264348800571509772180702568254634848033158614518927901912886371362536502256559016218176317369438305898197768056253675989158319451921363197435062597468417099229550314067159126837373903932505046853818542813022020269465472771575306229966860864583571895219702478535522346362785661850398484766777980163869799767471994831446997955889360461757858212312513121287568614887708810195383764379732841264845994471491287712868424971780807751605438121776898326231174897774144725621404649106364988030779584268018719019661149486734586872043774752303101500151395535262553949863957365585999676392948456129256953441761605880070955023356133575551759455907818404068132464335692983422383987054216116068731564227503397781317358838420624699980130590892592452471428113142023366396730003333850413426745079129374579730295335791050289432456318518159238868530803540051734829790276617562846419388726175174952672232268385795887947235341207459256620710881470225432219375137391097783547647956238144806359507345499052438973974533122606074157504944264355343988253613829362535713777141515505626313167784321025885059226898119640448699607803748673082001526999198513529234903009350032248688252995134240629036065250344406741206838652601053666234054626011223815676000877267372406629404606170486701593152993556044025741329355712762256769317948004624187007760486086006775921357096761838426995355576664805460659751564565489088194324148967092804722977906188408966449291925003599822227328142629728249116999682761941170196503603295176542517722268838580419439427746172017789144841960741092819927768452101014573474640690439238158489532137004925248515708625977832256814792210017997383990431205892171517368126970089364177592841650510328995695669984652784023304025756196564214190408565072227466498698090281274939351610358858591959508315217523087586279621878009106643433475885064001027467899552888386766230131594743172012204780853150689586881529115376535944738212175182194458785777902069053370667152218240408541207316414581162303435760391943359855722816031830447623108694768760865800192927404636558516251322300322974789724237296361450037334673681863095836911906103908234685013690761531326811902887442480563024728757424139546608064631059526190862788248865491574453968308955019131527344660694175026284877817018632198192073636441229459418644220526423320375734850315059462609985222682114974189577537272442523494621909980306163241385858835358159443919842779105112750559625434034902693732107782323378142158436997877562606189054458427015346321077834534601339715932678523468991756342406681544564986655615054013133160415784485122673301869235675491567677154192340482830214584408094215688711302749394789725583142738688170176720826454945770395845941845091831902039540657117775384855379459784183851659479007444846824913640427073869297637608961658966660348578919837062784841605492751975435642672094039462227277990961366557522298649511832779460954513485339202886098963710959806528677028699487511121478071503403094753828480063592785656947256170562574185459553602964922570029273892091397897086972373853304106876130673113724237963674036100032361217255228562454291545496026618531800865771898594306941726620979465276553096577811208935116830812805549205531737269155271339543385011976254224914979227302840976961391628201410606653681065406853569248139982019285547403809394117067338707543564923531368899880766637181228759308502565456837064742511424360116307551502423148333539757959639930474560409181744684737239559576623199943840277955314701373164052750708189319704278781823096303040475573114791344693587438596158119098479981658724070066426993816953801461283195156263016758690334904133813787547993863459628350873940833496483680434214080897749820643259672799817948338061175605872845132510900234575149886660740007762446220073805642953121269436859423657904865239515421710998234735037614468904745056649180203038620188832853550735495941140168720039731031659716202961716623374231830534525246233346373230620894393037935672102677102222878266184021720597060389518454169309678648406657814337622041785521722903237882933013798247727420182557304363944904450687857253290161946855657879009129374831111857983779232194187629558313988526781886745794165883740416899229695016609867221085303566315836350585293249235621125843129303847145371503650194542321491852563733413443141947228869959748161534778360682364585149308503711908449646897843182142434283328394618813759969053771522656001823089188045275318761404762206310145990547493743342113506443905016581744720777873229866073372320187045400730666654416164001040859044202486334455092983322838915833401078494853841921785280645889179118931983740143631903291922970844307479534112572086736560360764521593957023719240215468831010102993128767493931944324099571525575425931237928648142004267282841713872282096343628745855034694935124670786163291386078287729124787661368823632836752949440990028834216803541504525921863437580737939838986700363961418463373065936191646352936522646378635543007371619772497625760689501399064529673441185725467182294749324547995280053266204142446301458592327491065188993732252443782317814098841094951122815738603535039316334011563761797133757839643372274072454690711099064948017558003936425417867029415773870586399989213291122222504626137758257577830425592614125757971854386977922690153722282290238931752719863080654987639500712312624736366229996558373033203710441431883771315720874409040967494508688526449001757825178381195926372065152831992724897806552072596637701632404988735218145840867003054742871550360545125949601915296687901080652258444176941428161918578704735869714989939503859742261806332556398828068565385930264799046357090323759228685537202331523200743287913419234243133942790908990086481469934424800170854654411122997357137306526803137609799457624810948514001412787002935044664488679177027801809317392804899165806607575451671016878221111367829189482694018495563635590130450729150103250862761455659820547709092778560415020481199881944619601279214322768155069791784208602570009774046093915648173523832455214775430645319804497331229020785547580871709785167285080718646894707881770942828695851163484313602813765559133955347373008052383196000039556946548439193135388933741502386096791104861138458893314825874126367676852656392625090004575859208116057666127766112007112014051516596491419016849804156984205993210122626819725554016027196762207245583532480688623776428047825414631302213301419852573865652134512012613501663881501149177052331236909524345614250825819025425253987887256857251696984374739127510044365927493899332436963059343286270508115536585498911518918749265885831315929294689694318597346441610126813556058201554806989533986553957861735105002176543719682773794366828178745252548454735822485140292382810309464834377429940194757393613923401933499550577819590246210447374468681904059704854108865107609684951150127173785515689161024616152063286803574128684076427856690474503977588405558923859644226570457293920127767196571446896380779050117620018740418212637255804406163964005877300129855268854923342392413103766193468871128112462184324852683771853880233117333669437092883320952017007686225885071016173453810284146324501539938735558717950865938567750988823745036811309618619640488227745391213459101292954414680409680424504411632469571716429772722093642206354486535819999478395392368767141259818183020663451899794924696106690540345364327938092464234588228337968746931541831122601868654615777575791580899058122853660442769359353807697676602773411641118631466500550573827373545014318992505596714967716403993599643450698986819434421257359293376271233142863866128013131281127154615205811811208696671607282827230916618171247736134500391606604129901027452306707425101108639003569696936349302866834106255218925801737349297990166870908771155947025294489706355033142676386919612310303948686083856535353799707807876278506884731374942981898898571764706032639226303064373509941648641473319002980866669643323996752408558593572911835282111954960817117280665626843817599348627857156738032592746692388496151883174576711521983522790520737438362913865573477405551388793921373493172744407009442660935358148899535971601670569089126427091365530535916736794767692198729245003937722089992638141666770905759965588534498731934401228224857273693958427795530024810627301112668952955380059838904472209535079727278229459923006219400757408910885143807228781458578548548161833471057673890828523376369418768545671251868885683196934589008814851984150735016702517930956234981462193272148013663189928287846559398033587232764850824491052763125115416608042669303572331758399883080703909316213700538765469365661529491507275595661072628577612956977424131600482960366382924994379787566042680276816190483041840144663437228230974626839234466659805899347133236175294159902221910634463600014648100049896502757341784476982779998785865465028659516862514228511014169410069950309314671636110419077901631454639015244245597094368143507774549186390329716562941666748104592541378897413899713458252179753717767562909753509339338480882856369439611837179941222199612888677082987294694589863820106654432291233970313104467732589274703033230507666212158109859044593935972172089886103346988512594019157335372553150292450225040035005031653022500153806103103551144859588764757356435390059984439750759890533542387554706761926482010471886510943070606588406810616745890408809172165583570163952249658054879348810590628920475632041417811435084523110375006259431433790777979071029745727205519947527647942046124030946047174995101801670752801583824375653139747532520439850575011934876891502564911175339765132810608262843812746134481658179544454175268700901401306304664340154083621267631188460628117245969184057090451569932501047778155208486304483390890925125120928587420510936548194021505777077144463183485207324095017924324017852871309291464092934684110278621542532666139840289273203590263289182044000864591626418160991741574969382208243086221876082990055253010482772456873218006973345469359356590786469011732776511805571756177391813353367696630813416684292532855962628113757246000620233812052271872241543597568825071572094931543739555721710923938423305405687626740220104147035248796656219059811757448588363767446319881245417487758786977037404156037468058100375297981518943767156669276185838347694510180301961551948465733349328603104321958600041391601598974502084339404750211935808482078670296291384538666656428858809341025231461134677590229989219644331911595106356041227075408641836206284247624989556231368642576876854353844380410157005355379461191474504100839825123388614877276261035265730940048034883362814853235336243114378362606541162083780289786762559983331840361126383713943145114077881219492468560497584760640372241441839697231647907094655038830855461544380705589183679143882084742293025661097710691071296776520136271897109469218048627543768546037067320934419535532610691085210780902873448911417191987355782037570005529929010862034894513773883947497781666919445874675594809034408249741996466690856892018809245786656475408817933804377143624866344887616356842183870371357720944760003929240498246299961389424830626236143091324124742041483330521428442857574888583324905092934758296859841209412899257662740621409203250834771163204054047710850582438169050437218466676727568897763719308416654923714597759149619126370991932921955343015516114084643419098997038594955125601586290192009668945554645181526613430774546389148122506974655638829824630952190887576978832430951219696886511911655951231985688065949637425571603326719852124901428675135721042270761214794645200542816545561493388909386477929883484810538053747559111949402341277567225290400193522559756441282006754663239704849950869922432157622235569045259981566491976280919496749451399523746017720947272073579731893499863507752629904990992644170197294462411820512550164818141206824892037644167936610445549046073050294049366038118503108267391208680142349744108354312950121151584571386064604369952427355581226450471411550269594052793004443833052694948115170070480407595857989746789427881545038961327831320524145001931279956984649277052403562156706803408657653079880972074698882195116616269464905716017722616708813035916427781870813963617170568189631382496281095555954321242619853619682757938637243731382428638148577624119704567956782455999376066310990788540958773748890644516255582300627159149860708358007606519376824845914396095740391881290204735520262491085950333900273652038153594638604613811959867652980944282912758194631432444769852499771714207856542673886069248763587702017862988497708259501144407295221563378126603592728796557159065367995098289200508115030455517082600475027965316659030804457356441876632572307287191161261137957232901891943231900795965823820203023667252897028897356127893643410040122544248767329742272773609982652249822519752736348261819995282271824234456294239053393628549447831656062053076767455494032102838662462401282147638890370754458708578238079523154035512393634731106014561596147536988554507900087677422658672612993659044168300277361046386552340081317218858181400006962972335193048390043998910760090596914689733741456118598999083731756546059181984042335454985083194918842775098657274918913511246907476293272921485129835888064453189253657750481548663634591277479289793279002375095399238144003761751565322130311354971804529686052042294998246061517565227416829978894431554093364646638351795437660917361238854706504318071400278437695241399036981244534074891590829392193969487012894585844038924265410188761049257233734110734592920061864820056653271864092361087641734135312182678801659200159873108178803752755810513886573055628659732430237411955889364026630735937640598205857295021942045634685779240101602366727080418636035021744551410259389511592248083451755691912348837193274774107844379346754252329530562125075752622948311280514888048607156851659013692780500686763136950684267220314638086117975951378385116113195527531181825003496357486951758814427056034482026111785264228115717421859941008377811847569435159571719287026615702902337807306152013070431656385967684152470756679766370529005425762539624869507248038258697948766538577517821857686018893287487080580292492419894340618440073536275452127892637312648031117003321524065003675660216768204291685181156013456762434917870460980433095273466105537373016622679797792342750814557392501064189805825228029310739002880618406665506558925630027615473746637568262512983833293853089762893575692372174764127475599105799471145741359885379410653727574062210152816794736730393383542894864399912889120822895852058988293840709360185291588796822158689176454552002183562138091878601095616910997311810265101527781585707379040003180960686370836658476937901754783084907183072381555539568683764224363960025883527295380251322802816436234855510188858946815306226653953216401937225197413024610049971214149282091587709487103475196003935436598966017400875640701189516001226995586656268221300574060700587085562396662355670082833690114446037235435792709481452434761551522730631708633129913312032055724922896779153591362424935534110086967024447344493262217843137236708465448705607081208952130989847797723104770722663578453941902523902733521544593580783306641647457818023612633945405804477229478966003666845709342464867589928545946608345420340537124150655305605845403181143117243303805691537246511799897927560263306502241510170567395810689716445341293019546033707232461191931834444282427597950670359572420942307237178532255181021677041174204882345923446670376813932242557806806864721100123909361335447303745425615172199966202046748517131905524666104696997482096348889551864798809842548030179165888386492059160455540876099357730938696799496414735311114161119171035724137488783947899016594618195843366906168256424570395650263708359858404700531623188535373662849269181095519089423091535306578876546459334681922891257418663377180259695022013589112445240844699233595342048372754186536508505494733958254350002508753352201908726164247118234023779800726071424785785033838854660271951884556071466445774809355790542670923612771499893206964525868699931564866471667544121558311877873831886500120306304343882818046455578699149561396282074836006969783266020906035918136862287736379324975958700057285448728038924987100544712401184096710267661317934282915532996985897898936106523721743935797399944363419821418237796650685039973169892649760828400630339968703677812874446552718361390361098487057088906673029556256174204411194321006123343798783297703503809300323151204972815052438156981582020652567370082570921845042322480857167534388948263129365306243112448964076386176158304557474704760861519332817444921294847661591827956629739377145445225843008183558832939499433981043907567020649395927183831868788680358441549051540490698788117963825890210473036756427206589002055351735169480789355523296171134501977088285782483574289418129872130863095258030327206779418831681032928283252271002564871667482711759109720622963518367178563729635093846091919978854963465426108158733905023327320730269870928219183436726778449610035918833557702592563709164521829708745900693633474498608724682785672324094983279852457648811243146841718404279027299380736050613071259995748450827875464831196839460114307032220778443678277680958212446677197665693362581214721896015264201823343720476694300228677313408600299486006523521673242805917487538653986477426296782161332800088899040875386855463484713835260662568503290746481814815651146839110275313840696626818088312885359452996572900973846782412845923047411658260154334320418943393083897653529331348046766429981540059080021360731456373377620098620674434932997869683438202806456519755063747843952474169821532950719608332909864928574523617725108783213547081587934790329445832168278761662899633929184455997307666943452122093815934808550277175120029343770862335695310225331778994562489726014073334895864237514105733241046799232689804554780702915594776846247350290543782779525041904779966737683330845319268386654848581827873883663757086868529060160215984505747500043994059348571345387787814526769106606273858747705405018117015910107587901801223549412869232533626975871134260924439466745900765495735808642011352392184006892705194475321853829222657788968431229402964691315273212589945394132859389675996293052012872935141600579455006525113530461906755571538460041243094445390811963150691747953470971839427108207410795156517165278307408576009929068262986557769192759718184413186598201935687075496531379247745437477728994552505871622795078023640894107124584565921597373351578463186439507870833936938042921595305410035832870888439983910073293119789597653344819355349589373086615392180044321586079216809461058141264701838876325207325893263149445060404260659757015374816898138869222129848280997491778452755815182260863481502498608482721736534820749062234348559099148846645470945752439267823336779655922786229330788332356928256445381250295833443605335295201774103104503208534339497103378799696829572962919233460076277381244113725226681227375357858655766981730559873840928119753351697529825783050051176183863003692778093879462485586324050017393564183862253956978287268152778788633995630770344980354756676708048989918851522665833616655862372817833289099133942497509757019414364835557191095821235425963071010743491721201346238001600873881295914001648761116221052518914246146732715899570016932947511540106254840444699282049964538377060768952951924074375198618230758451722191876052706943842450777924258900749509077457717976827618116578142766344920486549787082437804993882830138993434691802635898710381710273070880726701041251406295948658977571095057696927239109184500894865574374405813413709895160105428309994373947861352748103549663298589802895284032038744922890894812690773276189609582931706973403907280553815837597768950999550903430949380538381605647689305103885775096416695892824145283015273337612117080559253976376160648557830820250740641745304765145912258618134181078768459715126277471651497518259388267475767189741128733727601337216996447310142161294743258825190415379460756604310956337491995341822437720744088151373115903167418019596723295783846542823552125801837085461235355537692797748756400892355573922306342032077557221372927590381602209899712081971384239061087289684441771295297968678731125792316587960033538519845303315876658778671463956801260561939549437770396638396988973924722266307914907897000835385980389711247782503247124346325524693312120318427942049236580981592077662026168606901446811819684857608957756975138068953014073016395339970990824124703475922784425833497179835211091685998668723646083606648364254643289797608575873481914165498772298210760483514731043061601895890901919420365821422819036097916494548591585570432256076254329444080819198517085085915799028429292095004665935032459528660268514129893587632461198153845608041880531322295840469608920125680054552166461384816211497103490774408327610754662822999689643399714249934219130891524282295510018667694882252831321250154585945001362327412423386500097819418842146798404239660204968305624618305021497199347862361927067976475826267577189372022240421091778367046120727158056771002688471325305064827560242111277004941091910380082351944537014170509684340012521851256316294206061328275211676392182327885505703288533486410135049065384705256392225640183262509366265026948818569265830557542945114784567675073962181699816416173094754959023121616243303729671304042038871177978100546665767064554367500066920418970602729312979909435598402838646145389889760738199042737710223433011878139058707402672008587950286815525999257672000508604827449200876816117563874103323618207382369884286256654391096825854644230561755609198925618328447356174128236112422519804522124853696476921137347870976745873215644130841550647683825285771523358371279403164138349246357571894420952433284337678834214458668081488162500385010196874143618729178407363482347512490394933970794808498754896781707383837938902505038392903633770551476525761595993214774248537610826236201038692909796430803833269128880090700311603256941415552502262992932863600319054143346362226949987978988267075912189718897775547877447171509110657906259592959562465642061837087353673355723546091789662422199385289927373378504582947185709252452123322086090897977946092999817735661007346019821726310679640030809383965434502951456663823362613440263753458222602523573091345764244711949196389415624062150931956353965963848408165847584758297473363418081435410760271703084535002623067773390915380931309688340861805741983696489653366554566461973758188631301356737334272616086649476638476866042472626564129070298301148763442449829522914506396452896042325749869968470016604025574359095326523562537741841236383587655464318869335369050998349028745897182690914427920875120517533502716716132848506287964316652285336357107324295913077813742663089131302544621632167805106907286098978543429308837249586850838462134486235304357648097570509441739099393469595428086671948678396709363779964056575578394629503934828044839741093271186231739094203904384291783144421798009012029091450821780761529230991664344112756151846412668165177507625307148668655499373470347060347915167917553089127706404179886929209251231575809032016667594546270880051777066999749194435354941916911624341148550466917921966134265049570651751962649194753712230670007468327590768684478682940337319525756974140423247499398563913595053278098695648370696252858788531043501490710844600907760947602595216510754907920634178968759404409640972235969607855486597129402066797031290528011419657523469616709916682289514323479912308150848131340532603728473325382794512203614803902996567720813349934658437962525699832716338659878722758038437047465230046348252744353127664459577922961775101014740274804812618531243364485170019009935087433355512179816535228425977047933375384946197147492461657996055536024029632205148248549939423358864623322804785807315192688568778201421467262800297412375823674476393248376164187618847159904158306441833705005642835699651835810258543391913610403928288951151091507098654688076990093911786288538259571380863203698963233032406643359389529773820717348749526490677104092406214265705431745699820510303822702893784870865060653011621417191583489355305999040463159337263921699048890679356152817660862788024126668460459493269137749330930695564469699108322491422223653627924281425032381646685851257174079641921094465982668689855277150993783407851947087203480237639155255218484087833474626881681174228815467246321863500711046269033634384776714275629805116448771689311752110079929768361785419225895666716225042545739505037552453493801166849098342065412575775030846147750152789269290795458572780063634687917639079124894719784785751259018920712380291348337413331576041393179397485608168955136116962460655113583296035340759994707975250630616999078341540165201034133591212766426625244026945278852080722594540236970204263842508998845968180827483478347598153349070170058804713333358648841470175776232652697499927486064215560661808890934333143530704713544618619992017504806493192341241086223894558839960179990843151490812428203315185833921690505195245749277314275368653650061966325635110276041301642998453552326312528037819201821285421755362944117825598974170411477465125558768879972588222546039195072028386917921688085197876643350659281720069054946730155876477006911240700723698066574287661465727603277489657718594360855450428728117936434635569474494672664489800052103986743939933194132643145257626231480716477332016063945821317951728175107544645163922203207910753479957561436683273962285251272495846931179837029237375880201369060416644588570914105868774035158788328051449718461112519512085334962643083386065529980528031118517724871020839018281871156200096793019138014207953177822605882517432619923025490763329526372981639795057571010561961863766820459314169487914663487457949049773262364038284944274755455472196162970143855198897955473499216626330543249224180209605968265192269271463258345787218380854755479175496850125728518585188879098046939758346733185505416074041785627690255737522811941166569078158078238101970982233679477098406539598004644386165884928679019679436961899679700163764858890008204810112013265895042404838170854079453844099849275340886145902900150002369360382351216391309799885154853221809362353967746337433141547801810996579713402185041274405787873714082489490706913933847161380845790978816891478535313121082992901754689773158977279908560060015221961277319257899059410660343631905290613201595902348775148785341941980390623244548088110274722290262563781708620698184724894252852601829594201291976910379765017437406427593309990681173457326372564914724781050061090572095178685483140182495637166525711907586039644217825920586004244526549012027214020145753982657152024626322016108473191390335286781886563599225140911347265095017254278681037759746231327709955569123316227658478149524245649200833585233585398712040208139593202526399996282789263930084033658967755329892665666735922718116011321683285299146557717455844605836522284926830025524316947682336512797895681620675809065094805464159044807270912077799339859788568088165760148738414687653402371970544890310683277985322219949836259238053624856730825963386362224577345028785406120115072714251060994258114460029041136484588454746249753143533618873708153181243280769631908182171982976058815515206982446022065587824455274966569735972164301420186250946277807700162349212864137395897828041497848982449933783775626203447302102180853419764198645268850017590978325119112682831060754991473211947373401949599801493931157134154378366575638900002766393475609876316513955645534995396058800240189916802883469779259868996200724071347066094698575754791271555911456507584171747340254884699565927245016213361459666421365470197404901879658940475949122727042064334427488525859001135871794428564646222844133874052827185137847035489112294365132124567093312024361907545585653953795818012836992324802455386195985911020013149707465049629973578128665788112465536010841997219048076468652674553066456781340663800530664184961079401526659576764388705990258733585553965793881051059794594432904621567689394060739650901866078536678378229001655336132145188329137567598930690145400753675501924741239892957560000167819280676275080654587192331876594522477575451937096536302029143699932654332950670809137497037607546411321178052366770267381747876029484790681449458135930306674717687944217137296873796326620502369571874303841489886447911575938950138200485178857043596190221799006947615565312025431889715178809201890193328157975918624498396480552097985279848657874990444409364354236066054470695567419624656442048951583225018744811889678391900495567157486419853393585572046542416725858746125424835434707297182186996971930022767523067892077041196343408354087052810610665106710075278630567864603143468507276460941731429145667753141844602413272603763880506306523699371386846646420749187647659925744641734883333087347578388936716142283890884321021837972664967227804310075354142813302100074503748947373424994646248732739656753946779029422549049375071371865553581721160131516456087936294478326091176884850074730391481147226388981236720029648783582942778219471721069945692866402877533134153080245244412590118964513189288905522440112606852389334568364816488307944113255428480592224093448785451780552278604362255037158653648488436941846652394808854461191852472278885697670757273193780153053052469032545989034568022935846826443238688809151840239035140390141339570195609184626049232579640477705466315824871097403673611648410038493051704515555329792099221420235567988772645483441123635431312554359806596071287132299960259388536398688417071686643330263714965933031727177809897618688320592639060163487180507358892656175809622032432897596435138175816270261946955703267570463036098481309144453668380853289147251686121250777439978591374586699494172012356947784754516748542603389527532332980464499205168371343345343874387439115003994274202151592804696882776706513668624064496866014131818209108128541802023043430811727705091709851318587094994285666338189887462609983458583622919373352368167191595626718560263085841568833946940757127768112632496365538379539924217518633595407351131075523664118343301065497042883468475958655379945159541504073454918988418956487927725135143479250674791421604148328555364394028559049436227936474135106889723568382698352216603775300887856428719668465126894270461550402724410098199316748490191499770365070759161228497580996990105600967719336321975110584885658124226078645099667803018800811622580266789059668386825097848508245052560369253239294951877183724396461500115931912487259094476842318934073885682749598520687299318589741000193298228346346620818714181069263350929117929362211420518398351945817123421882548026238089796509388932472442361614570325707845407917095727306915744533377082685427286155413700070867154170910292183306683454122418571464390320561676012682595279774927274375146030746050976651100479129456807227781858864620413614406358796642718774387519531170704126248786404745428282765264186334073711473555295694274827017742396113590318900680551697319828937420754721948829460029179207024212197861495097694330568328421728273687352224243236935468211420394410487087204638471200394197171326445810688817057828641397018787545807653712072077708680923213071087732517733645258486840061495106881233467214165455378427253479659957991671974111149503449869540617895694471296770677419921927598963693011788025279429069629005113020898459808756646484356716872081443423989794234475895608487325088871664491553135917756475251350578221326954380274798018991355487248184612711607156746542324639650760413262121896723177155758522938777407798476810744615947633796327708202401073033328070120320981489014276895471197206049432544804023027027495878083218744073246582191133196882638298037640182701917922692852901375573974071023826065828634734805747974395561725053946321332338013929126619783592600454834487612152053016361189785422484703538082640957327520768170662643007985227370743339570161202254937624070463121956533249073341229646516053260189623992223853169474562789672967938661445702058215353085799706300084207467648951815353963228693879078113611070708061783348606650031042795286055558083310417621199770054376698056158203509371735123080403081274617569551620018688627383832542285748045511952886867124125412776735777999081327621214770118517811601051822700830794581503984703588351847715935604218151131484276529060431105864130621466995062596089468172646031048045378101661649650047438653532272879858685487872821120082590012740842659757863575456805756458803693429819693221797115673038696091419977256007276755916701482665719011928380523501278701943092400645045442945862354659452200868055685385394944066368463565190918483290774680826086880930423291821336320881739551202291798759805910677641912685777850559883283835635846113862711801724075412744926556920681909186193206335926111174462040886226490879565243803210971060952439706150965033641413954244207816683348312033017179235584476839209341768659065220097964228760365158988536021047003575803478579927964576975439251802015900393280057272083529126434345688040337706033203951318758732876500923676474339867693751864202145728039810304288882911183516074379024595955697416505934698451357363275531056924273933833359974875445110021463042135810869456466080983445562291225147708531527482464389670715538483624297022258520482187456220994736768286330752244520404149439920272169317259141333509485551907221490774077813937053982761459696624984646383624666611063473719616337346327298311766369021347984707003325928063388381019313654700598799590264924741148769238988432564082772374646553734756898575328948588780660599766248934726326710480897609818694287695125396758528881758590235059121094072256153357169316944101682882491494416908064191662909382183706205118432801891254591491791844334658698961978530589758178522380153582849183993319162600610572581606738636111184046728290747685450983498051352919762506458105716325526601448061245855071225055081276026801370584874674419933979872728374289392465594123540783836297959518051191685311713951322348895943641788522955771731994116003740372557848611947400666929976304753643944228593734734583403185314667256508385587986015785198613303503213019725423186559073388733456127062387610729750225140089086655748651600655591864268454070479905579422474560367003626355610974576586099633484878405501619356217095349732105079293332238944590409345375104389421892945047838521228173619885704847041640319166892525825149641658462882198519967798047554290681309568597307816635973175454951106042293291018433208976734203439229512370663998005257506220094760930876018311902661591731451667452543683095038069879105999120540606850210739453389114287635205525718012058324945080206563439386007581777144079750031888927510338012387201246288926273561332951280782086323323490375434047059124925095139616348674578053774734641399311278805597881403711840635951760431203787943234750607271687538552896226059706106073190706869189693940353223972377643850459973793335423644546721567106419733762917764114905743558750288792783415965569826463227990389926286303089740665686913208618725016674710569979866634363731216007496096986711653311088599638697782852909604853276673598625683037932592381788649943670973892304693177711349652704653826736814106641669327147499909469573055672391491258241293526316060587883943830393317666316461043114972572933964700843941942271497388429163906007419416068866837648765397944780898984175402980965892357622477220470210098922118126565945208793274001826059660452339518114714908990039023365298753860278609877108510286105948220542452182647182809623846930379596953137572895003835914797172112218326596896876012123039066645010927534985817489682788250320479509655869802057328198270002797045810240885296746602492369928952531496001319621046011627220624059004883656515508531598342874811591292488264369173971625808375421224632176467599951761145788126919691934434386412126723282331661516120319563980959052563573972510371872233211933665439081473184046353720240292115737172184811001067518371068836676990588954081738405560969222930074000597534251288259263096972164315674031851021091587108820361070592573969592070238981992789200559271045078376979926977272379390992379609237535101415914788232482943424836593838047604811122429473748127489297768761404953045968484025893889697975757755580817704465026688704715765613836811413181079482617609837826098914904372738628993969499756918522130976812927590863427483286430614987967969691538185678372029535738839763661541998244491336468081970377370598442960524221094222864190828468604110934598630579324217351336577993010525428936557362710519222207459916656328940534380464963351751745066928222856146954853461616661017558379389486048896521393059728541918511001079451874737208536964156114672491138440502846896328680134150138631656268173286568857935467521331133313450086868888172048002857854400971889381026037714821880479640538625314768825203241877763366229573392911298297032323666244098842198858606200271649576838492036017724936032414359796052522773471760771585042592852269048168849413483496426153151084414388019283816073626767260699290414935805250803268766247328225031663064223757710990846611454648156204001701838726871695454336351886870727346288999334898292629083060009359858317768411349619606673418943187897108087355838999357816562363245155277732637372719289096579811257310130901880228567617034937401798557547866700250957804407494222405533486686241063781989178920255567020773549347935716406791984165764922041286973468360182986203202602135996924105408433538071171422794837581731397526432855020200403366418091279292269654305784948949822605378053167568255623866247637944999209141779267766013941829080933924043082270661848042204006364028096647944535718321775718867092100291944016221265274724684598153460903215399010532866270000664166076949052422770687592220601764988596969647324553725253599410670949916647119689981941098836519416207409319320230143622720266633450396384243226674390022386782375623513057978037826543473554827401045328139427481028649418970429322149236799819497262441568563425061402995790617427119307471567702349090123637063625638387873720806594864753254591286969498444940338403853878043380594409378950556968957630243890138970126447136351153674135950410047399490041639376760782934671613750152212898690838360506874560677084717654946705166130038206428541399123242706642583077968397081981922617734312635392836241757951347972371657295915037799924596483371937492322796265398664956079741866196372606522567178946067581840115058530478726929163969561845533724181424603717318831268419547168409236450266061840986985674375677031254281761645347621149367030417211025878254337213396511334780177864845949817447835079986634455012879795753060032065674634256323107377987463180806857731575541964958981936953359330140641765089856260262554150564630842203763881827379132561564952663945671677770377931699795817078401362577715354087084304718937278887976524679161852620933522026763944247708816155924718283253939854825771166945813700976865341261095017170203401407590545515026220935591841879025225593189555384933255732436914552258739474596443105490915258719022506571289416081569472857045351530488431955139398258304535091955462927337808372765358530013025850455181347053541698599216035115693619083922613920289775449346119344286219423188897020441566464470199737520125400410308235871673745632261305503277518174188524702661860964315343580733378331959192916400137731468271579382369356770890665065878728230406393088531763696966100565058513768508673508730403045505142140099663841205445908379020814158396285397113470952652641463430733379883332311356736233835315720376385372563028001607427352982470645980672165937069636039265151472803238252787786895640875493572603633469435197340762551103335851554227222946927466526470807531167981335457762936131874067193050963130879613529377549839724023267950376754998467583500755620826435267859699339340557894226583092409259276060211706627680886558725700422154521942878438088770929974257964540535742983927184244379735099246514044516083873998941703427969891231671176519033509223343433046311996086582139372139979537577932031808273542373870383388995279128275695531194626012113798462468326692636995538912858656440891838334934525484085989558426237760103036676268158585069698773372149875635242586893614836054633638991765514766303432131368623655391275003973743906179727213021511615953997291819974700267617772332190606747572451697625029674331258681031584016621890525129520276900775971725108440851551153016712616691219105881832869770940085571048599208812217783582213182466727915762808018810715690788963066046028682168492189650829423705241678362547554615809333761818373845022682557613376676167224281185332616658113946448616316197643422879535330997081807977835420946391508812980531402763810846900273411232792865805873252580175035436644363328258835190704401625611067564614811704082425746027843183055801102178429318549886485053000081523900053251569009982116850502589908609631922994015016270190148738443272470689785574212172464440010782397208523863768155627390083121707755332511999923833235818878669155505747654162128132929815069576171801539800129829573513375559988290605498018033430871971904880926439589123887418220925861735806372105235884397874459033732171507396796276680476524579169689040444394844917616230816323689091082001597769841966702015990882079094336299499777404964200668876507450352288949465432691366930872744796552208885292819813405840984129144599168227068673002425483618849024662787447207316283434977094880807580460278469827342316910341332854845558135437520043027129333395857827082896600917979816304676634206854718752091660491299863111297857263125564586220187891465599626022751988862203027952618958596701238622155865434812638733291571552884055316844532522120550818999138749169595081833455456294491053667095752981095422920680373793672211508537012315104242280791684680720607931991954296571797185534081505716106439488587354505536524930867621939333448880515861667988048869749003460379568373701590994478978160121790298665503216633415891130373361011646944331500919262440006263872108838969160696687139179009283787002753401473258006419694532984771918760486533067999487300923717901774885069912232808874612536094188738540509082488356707667127276887658566473078659320314698895583736985635578051289984558590748597880489573611036707995456379268325447614920761867157193666333100550068933171392510508585195442533972165286433031200062235384372686303663072423010351714650453654403625328524741505885675640256261372058643944970287066854170752243950181605598863774952057929817341663692042153745019043313352453634709184623430775408147460981859645659421422855690849773911566843927596108308118130395703077927192718861159515277262716845303468503986590933818371395452879960654160040407465632305580746782557481371456246119354136953002383377332596794965448778587849290215615118324774829508301236832304748246880847337289550054181787253527205723562368982190720419541317528626014043788740398967696923181436497317712173272338324677274870257076788896733144490443077468299312639518059835770235138582105417834952893065719892586805804392615302377116639175301777787284596468661887566753275361502938726288703129220407779223223414023608020195674724094813305098832851888600246403581722196599759030282755180251915107053086319737138984752277965740557799998736568432308326711456648516967582135450370853582065549982356288909332755390100587292181191385842913041887819525846663464211095372725329647823722859338167496742981953298465772806723309805112061883273053674303909021438854190383093364511259826503990865173371108307424550311761113348067000939595411919419654748656387768619184859998082800070246572908578475359024652775071783733870039468709816338517058088332918831717607752482471037410958515004863618013890595686910306301290793956413247936441953043257203590951616716928535180305308296142114989765005108752186812530986283517931490590208292081884488369576706525578056884876723140107586412606175180966983968765719641812266073573912393861551351403283933559455548978579963561002731733146120855469042036660653260822758098689853514090891045530769334460035082238482507461568552877144726244748557042964405452484773959213502734167043608086438212279011882137668203587249015970850005906908132024445721657648202373527895038617388646772789911262712098718882465347591933555697161646693023463535575068350596587299150257728956685377167577450723053460939994367753953304973618278617153625814618205482531381639307343477769446964323928799976393874885644894131200724551346060158490235378279028857688572010331779905368468006717984233344965066005722991567464055079666179690990926397021350635303164622658028310915216237830646703955435824373355903586910103887501692563965425758683075280372858022274288383889198391787987693056670144151481675134510015317668905669592056147740227428796528281800400090733147359295810899198217181179175548062850986417734815402620842249482111385696081813361941437096364253974813558654136477923115315325488405450989619559951484628090256467734603228913440852458476387988805160955714156240079125356152916650110379484905676944113586471319017430762866336911163436664503601929956249125942563437509142287764384209586790146743179759973329169468187327141465677787143487180907045757007188304125121194659016688503452587598668564297835599136241067828192449364362419915709729958142945699496187553430695328703463904677773396046437809655778787139125050731908086268332844418921072802032410173250846302564246881685198498398207874019307659049984866972098601592917473291157773112574271500631476722561367322038499581866144557387149401138389232385019146943983770650838862050975591650950704249150450090130508961273602884185415430275709243640758042289501218655380426032613696430707513540429657360526131293583248739127433005315632844660367207639084554482720893642562372902494026534794098280499135646339119258659962436950227881906664538038558864317041811542578685781679048161444078032306003157421993410322474211014301461623505452943310036722018442125157864635392312615927142960899080020023225656577966967615877060005204969102075470107581944967066968490458306910571640433088563425342069145113163581677868590167903780937743961266573420556214796260496110126358679843575014123924530596877975203423403756774331357238165215542664341790546260352103637846029737361581890038144512805589550148884048617817342695872599381702070426771971176330492810811331569338442653814167662699946957330503941421049417014024799195602229660745926285117437131909205231357745204414620624019775762313007363896511810650271950014825772726328243773674764406213225640960023933317806125570836772911952001510317208432882778739041340518210418818191343088527143695612965693466670668017726211912730949193344335339576614728639047624353704698585839840001945708686170837507470007035831299833913349817786601498438985125643562953931044226103936757963769047399649037101243437800963882937520760469006118997168835291002313120636382460187293200129359024721148360988746477602739978447725451238071133552199831072657546750234421331279369339319856020010512246998383481624197117185694458484760207745093008420216882696483755599193056922060328801181713975488941825181565392802853513180790066937220173856107579118214376256333005441021003079010283080138496230294527395996389810524105215397496969440910872828900513581660135265511567175568499134874121721950213976435292382693648871772648232161532012800906407679100609424071639262616349733649291108757713994428921183659254490751371930826941531863383367735247962994712739625594018904737958183582169678247015527278588226264467116463701703326484429765259717636670562169265760026309762126535012038885400573860193895881189138389576705278754906320525376625043636022052941961734964935897774882116602122223379924529182271538406687593060395139857541946018621556544049562351413055457043044171439271906725358483560988227570901042633047317089896155847235268087215060615216448885178791343027804338815556239765708641800726457348824059880933140365100628419233613990302107950450946932766892163020764595306799203458796173320875094559667002444255403650870759600874865074912362208007939515710185730708427092289259903042797416888837489895995869448772852513627026843182630768955249811635312917932927837920916807698379238747169394435507881501545843434691925727948585801091439695702500488218615440377516553263552749040988134245940541030037240714475204058741759820059168321304664238844617353077169721091778377118423901397457222018180449728132339270207289218937691853246813043214171202714197260712136146427626998820528047511713160675779595344123148164469571854394661516533325472145255724587986109495941517145119875915625486225679633161097874587059003787118590142287573597414589438574149463711158246376096346837887157775869666578375021938703858650055889418208733241981923524744763378087861278459216639025257989958138733013465763787820558778965402644943065366949935162736359589329716687063120341512301893969297046550933101754346557531440955466333914043136829323147938140486895521067226203344064676084987875906354129282669214729141100066974055329773405871718104447608846818188827157715569039865526661712192574000560370491094157167631330077135759250158321171387748161095174045618858257595845686930587258012947844910811337356810092126708954832214042479080484687435678311280235665750141162418619875672197384749415232613216311626039465389001538202844397823159361852202318115327611406121898716853886982403953458260485998510185287824185652975261267096661548654586266797248635869899050161240886609133861223613249065233368899541870920109356741157670467676637944977800002698725972404120151733457158062448132114254302120538821543966330791687121545026996842819734947988658171160093135867558407960219651079553731387544853010908057450495809351932734436393185127255034651726908178350804704057572531738001530262493082595857981914440001511010490023147261611948978209937387089126051832042712415385327289255765581271612403598253963579935944630211341158554715163752929140601740551185385904088132332437793751459486153236627727752948185739691571157242973839923460922254346124775765253117836479861001307322586687202868790568146633223791308041307237203116853639718468716001182261320674053271042780477582416135394491411114359300568211006834036543322697396099121980166763347330566371995538679835019692708042215826509026633888233484231938615382855952851363781398148181906588326118100848761095681733251499564899690820376169395096802009438327387823358571474296899015825809411785171612648960112758890742622340574376682387980358496645208930221441395538528492290775604059369399384963472991410088804059778182852819980080791279605369079913227214298574159773018425992725136550567735290887476032269395071108118098339360641359095890216245765195423294551748717643208591177799618813139422334329192288051942404725689823909620040111451493856540792150428257185930270923552503937830673548746255871504747760740539953374473844803869833590003960689256643078659251834147324408937913241215601311920824901251802236696330049507722356380588943437082765961056001233345249376169978332734849647215856430513607651822611683939349323107056527482706281863209582966106706740397014574631852506405988536291657962182236439714667737745911327214701808755336845569186070861010512037360598659865639641756118440987234544780384860843386884819859349600315141191820902336213051087203536373085628770096657945175802564476437305909602708867143389854817196511883598439479657033032416143620205892221705868519897646356804704154168572769881837051448772440621688790596451884639318928403133612671025363679185172829137170391829517278083030943420106507421217218736418555594153649590465499479229346217199744190615904038803634628572606489932867677433049976952517012605931285714798123534696749042928215522426765595939449691476198650577232700149556636966059785690406037554535213546322575487334473407681614183392095175233316478246140320331643350796709793000700563649770495112139704512143758848686857243054354303855034875874803234746548856859476096654282918835028250299120886646233039466753046255860581358484160517249460384507116421310736856214993800197927129222101982086495344017692490164558580250870049537651789563200110798281991205955186345564365390210532828492730493874406326871438930432512468261187947522302052110731251128966362146984256057525216964418986231236207116325863204631937394431660873642090987971896998755933019389297753578905483959153767813903429013494435292451689899844459419933729097769754365018601829935181905003982399005609819402020319489076103842382507935487388964952279236973703353116594691379891709824690566496023935678517798499247380957201609049447598872735140999706619410852587072507875543134633786911765179459218093416047355775719939033939842130092708316856533297439921643634673031448505198429659203889272640714848035421608107142494590092861702217907166106604200186313819927760621847193650984097482918291479954030238040080066093333535271176987342561588044130974594326132689026135575330073663913538157037328518771477199239444362224313706475617742189356188378014776248984749425867497605853620527035384191827633183369197532723558284751104105960902497919090445821595261169964023034185550742050315046301926757358751501618097405484616700910930568905616969593496267077685565207827145925529817931672387107806515533827814082405296159588935243390276388184803683525862837533961899946602152389646034496575926217550829069122406299706637561489915477511151942125958446063518014622563750011136539571354660578563068047002218399854743082476331723108124622205870372855031903634675397753839680494526737892872399540592764550648331546034621946637637553883105102234151463782277983685387162021042860989190783699000205812117382152396245980469271921928377810290492178485011620886712865552611099562299307561392379935501916408372587271768513349397445055794038365691254313269580676885064335708424227741051507492017987535183970540587176714855422192809713873692149680670931611660162823043617629101371614569025202398049806692733668088999096455779451872461669016446858055789040721499160390041110074726877192684120822789822962798667988945968477463046857522268645676286860349241624899719593840768695446871497280764340379551725910585783613914949524747831472734708170083189137085331287686207544287184897431852903603310260941046348809720234422236088286143130131310270337107513856661735347919701647183924612769500347391358867217199541202463521480712718420368007298811525363376272398259438270301401198145314061536654841093571121932589317657767547716768172393087666713269445740697447745751553865199590927649162515449361654506841360750393556431146856161261724191579422905492447214998231885589353290982215076486802043236075534750179508982859559353888245612734982500336005919567071052206445003533714297258003385633478607657862505768856050332706403082198930619219449271861245601076967440382339076386193691461195989313065391830710092982242744424801885361295947957939180684243367425816745648918019784329436878775760173908535161448847203059350169957336155049893281917430974547741087373460876732137077797755122143667791162584933942983951575174186754349366401256105632431653769475839660035492093460523667596878806681577349593403150629307845575270966469842880493316400127372640575981957883637538170752499702128683476471120430577295529488968243158338685775107240783023794582345134898345899047630747837894944538098911482492480510243478727848887140738725462651465550754537677633253153526263960461305109958971734568838145880184384029640426927673865291858320103289369865998749238534455591559434087786163217163830579047481470042270349219760927256742180391417913191913615443616380266230152563546822147025225766032220428301070808104273488885553212545891256061100177339638521672312858546428100206206282561518512597196427072502275271276662324178228496857065756263745149359383671617461428503951056410342334645287023425914682342653329972512862350320229036635537460083940475364419948892276534709533332505701735141543441277140476702449412659314063801665204039258799320281087254218072153152643736721410810998549642317033976509929342239565575238736512692428370638369114097018062437178640624810249886817823034476284850380374456694521716593023235089087657257496648079921539371690494688099227972312920109320007451245137609123696783623588381293828356546867846461838996936901233155244629957108956239739619635978896716496868587059332845020740273318521812195793033863061668498098296735453662991561641672739723663660529456839623138149500570552599742150344959539753335615419620768225023254625812234040611680708050473732846847213386088438160465841708723827934472514221532258612192036372942917115704445997329845862093586791479135171248152550716818661756130156585920648249630655064392217276757530934347052069690872804105083799765269019394131492596915504222559992886372461430677386566686290031445585676469819973735838361995031980027066683065296207368757499857824649353683949307026611736350544138841170932248312384719742789010751365115828113287089421912212974561821664753113996287744308166499405038277844639736817258431735581781360990641082585006681860307910940362871401269711008696758879245712258277813806842334515068660178129793918843780122575041475280130468307693015101263740886283231356794970455728408111924412477462377263535684501440464268720422839547504212083956607825203863946305203742500995737619374170381881888604462613746853022717736278081787466270176315756443755172880553950646124907311587432032649914435923906704587164784190774195782211388411189536232961908607528566720861728955134395273159000370737343839528237803574839747940335428988870282255237370054237606409204922183799690976648985945819430996689419005526129770670735826977153717936258552633871460445488772325970816805243997992707776836282173496197201801330505021065908359254088300742099495267500275914659055362877502512651322530599603706932611170294458984128084256106035286810908130639891125383639587984148363628338615773264667132633013254271328799453142683503168883142738951934799898730123829212180306507543947505247629422256904981265283876769944236495504531623029288622155347640094899893103104295003609063023679881325411470052008506631247973723430782458945804124184509640881709261094830203517187826895542660431164744323641355621285124587336697702282086174091581436818355989924555141869339592000531305027445251821896757339477185135262993567113127747245518849042682769662886428980297894189890558569427964260060752211111152662089425415588115450357840467186241562085078659181197100105756881084222786021552653644828012152531816907205330731575516130240747989396108126952161239314735146197428772692432321673891359011595620711382480550297313264529087727440327755806627912882471838063492857861029155962888651186979768091101204352583427596911434835051989564172029149007033170158844105221936340569203470703471532246508770313590432291148987717813791174826615858296715617812042575754097421362436512216957953064481479417938360679894116563476606447804105356783531333452232088643007098815717481279401100157453742196027776933921595644974725785404562515788804793860877212093853803316017226247972856768474835605786362962480682024819234496555459768420367498593760813567661088438439170009513014194167881261495396198157676587079434325330354030706224598326456702011427665478690815988662953574764728016412415752849641371387831178602412666410675686800425570315147600227411120418771254178069915707796571598911880095007756438127307797142579968613702404974995078617306390190290805628545175113128091077088773883018814456418055572872114206780819640868157538416572947994197745932454333348073292675117249914969386761529787749402824306121942543993160508528221690679265070952518738166530610914597956315445774039701945949873524927658996936266659634450163500610570099567020062455997504929493604702912649538409442587068781215572043476567154560014425027033638079818950383242117205763431939083977774096476553612254455380427101125355239328404750486057421249939970465506990236633757466816325826175793984355797669691932713784925519587322839954526734994280927837415157772075822324753668306508482033399927580104062175960545777098004213475244092941205152865838149915372580630520424323918008272725205838409545919377878152179223390070388525164607465777628142461640986781118128325758067119842482994316203744109618379213036675366431932421626607555664179246826238023225181643886548808587066121932369122624113321780011019753437134615308597530448928172941105019472967220239673076479679698888217873327443845680016229093999647663050489194715238421066349243507035887963586713745117483508282005846949635401878287206712421782471253883664719769929646715801207123490124565781940382283756719561255981584630466298263645709761284455972751077510545465257147493450810273189423418922969741625975517602177149359273454254791107275343392029356870589753623636276570806529735523788718188023292146249282045024658646735183662549678393857592626987232608294225103342910959447661231856403573784817166110633689786091643389202447711927264994200391956067402185773786159398852263316237224171301344321650567014128774170264755248078023993465219714069404286639155829886433466613792221690638796669412908039207724668368346725617684597366992624227570362320135789626266642940252671733742311901409821183057104368769636615419707977685694299874510070711136281279956843442512625749429886275138838640840756819259889519242535556708657420031862560835449539255442332557487291081974837080708639999452823341288620642956191269111518655290160361607960920936793442531918894268847410305400771453163803430099601895978014200919073777424089368030339307975217992169994166277352484130682284854045364700285294688270802954015561930726263169731297872485626483343183989773078248206811331783205548831659288268046767898801938146013041998866941520795657867125569038394653617804348126358974574184715936088468620376814676915903306193018972513533272237152643420549530384821726107694066077407454160740115264740923373200803435224349389562475447507889578909903464813934132522044967398865064077322660831531917945798753555493947529645733035683896678161637903481904556664613311463668994752913359851745077339022806460175795723858319228427895785621404142161694984713514194180575340241049836331131089663810991920400868380520999634110950763937607294490421659798925842676835064748926650208843691347545336297728563279545334283276559276278118830376144355262774898744673319536231367896692718457537530673378587289342153805807937972077220815913152934949214297656431421435824828802003471011023974495058899694238436202896092291593685029809866352970335143642349784650751278981384713775700560266957174127887591249984588218667397126835646694164695316867165765471386509639625713621579830120384109284840290417244970707127795779582156680871634678008353399743897218181121839581626346486814129623605208793587400776693431717365444471537106983941193971896013536074125859097433860565070346977355599168362368467945901015426679723385478681397192407076563529300506284526866240184957376747436453429133975077770836818960687068175407778691182762470288914300901987805349522293672949557564846619844735110093112233201333114650871735234387474987642635297918309579002708385729988657643611432126317965758699345262757490105135388404795590585863766827299442690891662465417074273651414342152011591024610784023185043174328607689295879540198879012163279788375170970603729787968871479248111801882758054955579863513921998792510224771467277414243235900822364268792933441073807419084977057972128336143599374579911096693737097813346560506780765667459898128586426045751825319707292877292724559590642745234604476589353896127078603548946430903154489126500066680015074480412989714290983629299633099747762174276136967699721011776195187103467894143590433811425517330297690908334733236233945023165310182605076987847637482273970735631190384596042175128186407321305100609788950372796621097694415643691234933866607356582637773015744997347291983787867597691242740080033844543664696569437627541536435252959910751001915680372496319046671691558072525224895588000566862884096106537318150218303793208342794371009505836835449222287958163887638982908012483949805737829899700410779538054764458857393483691260659993380734367968099840608443154936373778715516189437057327012225858005671756623551839466983515071218652416828015249241371697387412441574633664291779812705881197603417675477588351743618326859248123631804982625572923710973356416360241058978734549924364849886163571427348488851233316379561275304836327503876145090087225711101208363100306640276204845784560674321294954175017943279290398398667569063706698173406281922190129989873590055555378938167418287868265567860825498406277162235442799758827713589898814268698543600753543382919105533570107145688597876281265250406933746166295688695896905266131231216431063875946574592686736240065904132399916615752749137206176911506793287825567661028983144254994063873543726011220064403517016226296670145329336018371518208615072084882188412023433196735280147540910170471317594257822069799878548963253669192750973072452731566999763672613160346193042655035117256692615241851686202127045214441406024465597166871337734287870025639725237884777156020664247524958307924125899380602959990431089945671997216918847997767076539456112587414989339921294965303940296041655493311304211137126659397597912568463735411348259301703426941307515325110362361568509641657590020377281985205858998874523067721519725768932629209840288448856449853733622392113488307674256803121943658106171506304016679464275212063295649081057271716488960778293098773152359605520608359508480000321786328843837616634186626943643855912656963775527139943026520798482799827704607946571028733349647976091719152970412452324482750263147717042213777969741088678804001106288765492200131863375501567449905661293812233398182416936620751479838673984128076167343758966956129628216991203403707345703470076256817314377144641446704313866116568070201006709429296475317491389524612503003636284040627507371291800848432470521596501719275016059537356559053020420284313841255092447375662512921818234358902710810720216750754083879654905858171086465734320337341908791537815895842886895721426242577147432658741737038397273724201942544965705110827271149300699955705314265711910996200565397739498461303030373830784714268950952733410642634705876108135335373985171490216488255584383452921363605509363606885950540805457866651714983688699831502549405285324455417916232293828747472268433889249751490715862512828913838191170516913790879465000833384900544615798092691776875744294699237226392474876062217452750598722723053291748248603752336717100966465155657508066157622209753603791285311515321937904229863010874014062107549351711790233740641064456583121447902112161769209039506822156716952426533101067406066890845047784066801584091837819071238632900326280586334491913832742008683035151323196578226535438637307590096952259217825144312408361644908177569084597350356277192516506837125118055464101459778527579599978227176086764406671249650579883356658957039043394625051083171129856061049069004436581108209524022700142807590050742537888009351056725931724473386914030578739082680951547296635021818733009065755913600239482692913043051543309104691908988635212015152833374048789674937879750475284088918504665038299685119693761768421816897289011159081927110361486434015982176754441588337578657968256803725268135535043869468887441779974534170400380748242622833516415250293544584157653620070409091742161953791464274902203032184209556982695144876939737869629565632531961004480147037775857442297465795080411015406194910978912090630551448734983481966297468738620413487791657296386652504426629000419259954736595508208237323588549413474760798052905830302971495480005267921488915848248833164085387098495053790206937091744812500455160293643364236932022439814623026139380659744149900286467723496778813915089058217458488747344059070106819835089641061582143121058356995870017302321046477236172840968228777879790297801803524334498836241120825579016684604846722193497414007827997968825504752884373629045171200735632339574513060820249835426882720618940432827947219398516744829133357084128444855109473219187313164514965570389379624742384480790840296033709183868410366837141349417827035970702521240975724014548611912988601870157981845652989034416056306811028187005324290141250957845533783830536965177062073677354600945731440978608051203718420177766693983794090158104316367277058798450215858040192665126025550470984528288053347144760310791650853554571364802102745428573642632918804285494195092546848966258717989931919952524601920610302591542903424249838411704636999681290986005592455213077349593121098735769475881701300859206766701864870681479225343311325015169134688916272853475772506707663630887789527370940006880975817779126115199558086357385278293874327325241912144449832751846177745404147375687154986111405663703565238593943008164592247052410742338742675650891088091964394312961184681358415655932453444831537875623990673829673384494886881271231100258638357523980494077088266572778695847940163487677700250639450334696899771128812695091927658294773212084197953271438027927073423407026868877633657921460463316170815856450452850856291469998675292384640070264913708815958581639819603915533829190268374988370251406491697059926468281059878572921532458984910458229638672392355189661588441771065355284883692455273634523197381353671372556508364429789578448438643833000062804624762486065721618261913596266950515693972740154743250264103288834848222840234971675616576984568508485359575180847175570520410485563595234438336868493983039639078279319906360623692894104321129720748737500701564223138173126584795868155753146248857452338092089819108527053091823432361227581240702716124802530636695614093446206629979755114954500858370012579440411647927911551508737523428762636710793474383310716012508628047151446660992340930662200196587010472755068075853017102864349576287525926505193463967144514515987648192166112429271958781113291675120743367923991074872541462778477540403992103846877094183742968175922693953765309788626700578560459793582497667594231347823239255738598265365357233894792926375681925183888445865958834686958604466820830102568974979519031826632522488547991919440529468271320617388625917244993507476798298301608736747052969124261513006278780202355709420976891851814854699186348935177727218222335931232864556336662421782859262109173820099416760059929755334135490575772273364262958283076803593769620272024529589825074330271848606817036292821933739480914388379813287981341135615873348221927855408154442780226942265518836022838901925754425720461816116801054999024768306123297224234449189400460310069628481072991188209689435111600796902792130480970143585239348507740986948585052357979424864350003548952954015811382616115402436509070241160798866897195472086225856169391651610327165177981807444704177175404994552151675862018162216466067730073470471516208867764538207432538003554968751492870256510849699578075899424095243427191768458754653837346012535970286801069619921653787390461626458529468005167367255815042295362424663764858180360828786551270931216315392377290255990512797439650446593136028105113091509187942343127626460450446588304944727459531272454647555619850244348140601835963245018068113503473341707353393088422491326028911390144852693851439517285626315422786921390063907298126899729478582505304078406940739280192388498256976923833372675962351282378575077961759496926435964073843306304986317430126802054958284841370672711975304519075800361111646082839186300872133607975919745777154055256741640788071994938241625203380243103291715786898230673749929992343433048930291154630509178497672420062486458476828292669924643357055323487591735697269823091127120785639983366162759311356988210310345838401580061038594632455848848608228800470311586228817118880900871359927817464422668042607941611059367563350341813182392698080981157877350190191957979894116343852167602779676871866606661544140327232081986714097415028500190214591114839802549063739299539761735619189604834296419457905360402256560501465572821734749256182378528185963815409372726013850938370943147784595344103053083053962565249971883168214793391044776813504766125480691905856345734024808549811609780768003297887478371881998824993252894973473102585543827920507404567880638653192144958617351759128770741019858486368404758525347546451051282731487302929447504212983429861910876126345097863685113559836597415959606284499959909567110217951010152640988950443868222260780871861559248081915304221121627714515178142294947511442647227951728993297868815697331347948126985611143172395370723013562218463978239598953271967393853924611400221502289096591851536913783712093302629987336971209438064556329987464776294708792104555775983369439829062341072073200376255263900228008677966673539179685811555153662535913379383324938923063693542873283573391664172632364172841199555841576828336268522988760348348684398934599431465419946766510551298673399707260061471614322135408129967702918262070297044238703180562031549889157562493389064142060171762313724871980928886162503430638031706510470382027017553577463038531680370987291112101733693166853514377738520612414304850456898432207237598928798120470011947404577637797283285157385012147502261498059345275654043685725271177494418840069103371137728794944764681295249514270271847396707626695344407352160089850762235359170971983809750751314973073226905911487445851263653841830811075053770182491961227098620876177034937797353359902510414181461104006993741847946141729261509181879897720768874935378669748801212340830722631824814688359506752329731335105845653824154273151617924052479809459145935400845158221223331381557481583686906497644488874669808296483498010607193481361461532680848882604753544670522105169872878995035042509451608937342892967002062776136990945261577144379339371342281190830453826710884510921266360871909086627685960721577012334653438364988955107118113514078200198989426263718429229491816700085811828063856902415295250529166176569875997485631100216696873533666373116183824015733986209440308439057392607874053163719264551072573555304361137014419708480634651082258117215290939505050739979233166276652815856722388975694558232297230099557636600356013320021080151475805700454125177870076268229573129002475426769674293973261650965259039049679392286638491964929630344031729604043039584081380150448903950247301732178162933230426906831284057949861434404348308912207043976151719006813882494067455777034767325399650388758098309492723832987546859468101664123087342939811412318889326280784469834613665121392668709404272388912759183374123716215308678107065726854580874632329637846316357724769863531847397445726909623879571735882467716302544839005906289244302614282521641646083944743837390128401879397450388763096020765318412898223671930106821140593487590026876745458501161716770406965794991682379490383193321191698343446783347387115353277584746095061440748522899034984607668940733755961942402091780685288050457931939843032158596869455193969487997813457878507151940043406990948022991503110464830882432983007505292910296498310020318939216039171610644396567338844271451662726355999677505911036436594446279511814171227925509942672891745217019572273414435812034071614790180663075436620770535823727586339658672145529113665880884278609759112732730376344415270597283532873443589756162967057942658481642877598604108766353711325190149595231973259306756458293578153359644133295272325141368270564002267903305995814021783320656833127880891731640612342708625416686358611105012442947023365318234578955764202028729875582033168001506841897602977597576339439728858441062853929343519687342400082248694185344812646333326795770458963881308378095066759837537334392593083850554597942388649607832942620012873575685582128210123697563275626725892552353748180891497143983678345343993896851232746667326453929151866576202068715510920799877676180194828788617555729683665632866143513710715413302547295044197462603459778880290306505211677308406452840427658880159107765707573306394910199155105651985515707163026482801055700275426557803674505419273766062744635952490976983697897713594367057869760000741943143494941156091441065683634436130495259534935494163030713887575518739417966106253360084132586629767499752035155305094487948047560193241860595035374900354015712858134493688314337303054710711046382021921777190094581649368514276644679067644336625915765636071360490647375783818406704330737791279275973369185634625560771372825202030810666554789425270506627965175347963812042135286030776192013162166542489328356542603850575697345812631544983856050062960001110729443998075039269055577383623829283420658513394616679566745817167770798924738803487433730191820050583431259005860032041967295377918909113542228132476442286127888975768614907150259423591170948096859783589855796068833775999892614664255566487402313152168031730570592610866031894677145434122601793336173053260837336494838222167634417498536698381889200096547687816063228742510541747732654260277455616189271103249419456924323361342860750466221610208006159701986931780882380466597417710943584064281395578427362407862029366565486147167862300730789829637026415065835154360320227163421194707319435711969955033524997028396907893631446456212038033147227124778880664716326880032654120520969933730219364250127186649504467698214756810152177013176361644504536250146736470184661022486790067164106357543472195731592894056028345821089888890237194883283619893408996597855367061259784620283060384407083183204508347300634209382396695523128069672183037926865968991131039563926020574108722446057525939681142734119914352413046532831097010895863297366807195093415155513089867889104793009579163075824813523115690083105354295699537477848202926905969041191207465362534664533739638499661070143296155214384386368886943010767507696720095457843040541100206120975893697217459255868607170987506502911375620923836471861819363235108396161633451890742171540257820174847142953996264074810111603050961809230858061875925087558325689459863801927140988236342203121208901415777160942249596803185779132459051036137150540319925141924702376960670531345124231699569709385765137338649350939815256086476302809535159247018862871950690605434508319143868493638317452690892382554747413476298300186579227341403562792640277144797668633454963356641538611591070617355653848848929246839307204752043675813771603259373251610865237179063161664119168106268172395631750296132544344834993342803318462201571002047823101390929503542000177046514165121445209372742524751383102035371348650971702033447663573870957569085880156508899254672343658922582392913127222499551418851727527390613626405384295660908421979147343065524671000089672925039481389598662421950179156288290996560685490603272857665296066265877310637010500529926071397416798328715936419823838027215404096109466866495932919446686003128866341220349407578627753451514911910898092234089178333766344764130562298196967118083557791165505224932464431842382751935695571921336960678560896168255340108768725609728757969169030008920044923374631605008888998928873593358106506995999458570975222356021163623576246575736742497639544762273977571824271215060862243536961910612262843798640119730539102957766547677945808488825584294528821522599695699701906309703535088378471322913369160297261511746323560669249283982033940248064562692108374107495179144611841924603039932036533853017152133167078230264433208627153380039821428733090915845422537039954155449295413953411580321441524165163587121668963173140796842231560928855940855894632342313549481124926920626727607278958965518781953603496752705427319700274642833964709610082577139212725861565077154942898662244207484984019422103674738497191688944232913736275829913949203036694941060139304820680162531428602253662472596198831033688051576183890798406439058696495312774953463269337333455617821165879187020006466466516893893869339425309201403294110301538473688823309004246653919818350804613892012819915632022833378909924153280882965094694334841273879164363339706491289990330486135021292664476694900207041866808947426801938201035692549016517121743933549645879993853569344598639235789009698058429491582448709291366193678469614212920211278784569293981566259281099513510479121535778370842103762225501661271568849271460570949234650861894113276094548853413751507956794442659658992787183034867429224870275284405223017469530718755548760002067456320244960707731233496393680064040156997881466998711114314910583207514490210595334728206833479370474671369591913188640557609285829843935245770026635458867267593362019256762012045204110576113039629574864240203820417476103608532854823314007611824984895507095033194002199801565551624710688250014593047670589947971519166127867328888865099394799932821081021863244023167275881723553987635690130402040858870316126355313805620633173775857556156583943271421193630632409499584874136746263583919123731646810533093074610650439993960152820672643596267354040934099144937706651209966448140940521764966875062632080101704663407989057705400286684288718025746031047650527722872900218072763078572994258085466733193660470949520415061472420938854941489863524284096031150927295544504921758443560913409678547257115706375912319901517539125745223799762708093435655771233117862969054858112988491790567819248097388148050412648690003515140825985945307605260877237458608971079786845669301638157484244878642952329128459555619052915495862434688682260865466101946340436478301488941180475106667285783093292890738389753493012132921180530312462068877534708264415082352139196137480079981902190329518583840827050912693534612010519672178895103217124757135748630130117098797923118284341405199097930155806746158789104922001542423502264736212426380093987076628412772153754106515073600799921347698136590681253970513969269735207861604486660576921917609252813299384007690781226175309442911866974984244270282695231574253240666333706161912283807538622932277251688098953157234096867773321591565964368793927222617989343113321407849606500541451743466957567169356268530138552130076347538450786257907676331198750982072993275350625375794459786281132720364092811233775957467067660926377457408241937332936331670775527655845819197476976392334678902867008572159681444197871857579586009104729620347375878624730245578146682840379965915154941564150150340914599132930017497089259524447598404111195995801079338315840593056265449498325661240940193091914740434367068446343204228077867330214348622242698256053746804443431656115083118985453592102252673290943249810125595977449872213213093388121668379647803193144836855022758460813477432660780920134024668170386030079820393558827374178042748442594810563694286413350936952259851804984655318755537648178130639861125623467809185790238762819212821264769362088099468538174002140774071774112497793963297941579610842539552663557611266909684620443910922240444874384562373442464892070218320900570705547955165614158718376576791662704203299645275384148736396318394577851118986441731377177717800220783233345306087299474995338743917172547217770806848782638772420587049662597749766832831835216535697099249020869822281359656346721124259507560705244430932950172884443805969937754430849621345155692025224742489053130565216932381851506270261262991210892271647017861809769832201819772048861846572841863521676073535241749694138038862675176847016215155029404286384949392532137826955872599176612953661600847761851008296999672381130098325674566157177890484799537900231192923355315522588640644636502128578889376884712005046994530931369285720001069203568060829607620805429965068289442714941461534561900905713924318734132958411741765905564930636964178119059859187545646150229067525310605424378942657211644697408973419657640837954626738380579438174854701092856107115584444828471934095608089834387232118050426687942334269150730286605790682530913597211906850734097508615242606236075018016733870699831829753757047329885053053702459975619185542475024178039347874821497241413090004013481508579989249158449919670997811396847469434955458091393077904555160584386654905813825881170517198645303116337988424249844795305447384972009020060960789439046409369043100246731368995213676059128833957600999873759778831277843765264861398273344003385258734448430386999620514934525680980837805771165434140634846127476016161530386057991880230915645658103107085598865152566476252091341225413844291510336501932517904390823701320378441225255103678733935905401052189679762372086398594909081542254318463889227700670958227970052229380958999683562861305602368482442959787401456729161375216574197352889866024022176352592254667589862124574415624175222651722080384177809501532095883647207691185218831773091234323941951267249421183475779639511936812019726823791139852769139639646843832821097994069666762757077032959334435537479649985702916851004932834777939377312730075698035121018788673672428445474763776494572332226514747684306040355171702638605122828855254021527531024677620191977469890062569374859706274726014494336378552886118915713401153308906376336284780892663734408628708219571698170340114712853139969314264287010662670511294453221512564434809806303223120052606733790362149480223460557310648052274222553488821742098301305329609438725889665360730841592478802663908832152878105690926634291854910307564006210252153739661957694345425615864053482212006954122344072180018181645516161527835643107502520719513147851432107461208075456569373594479508748380375304206806797243323863500898102202825907413248382241549827624711020254380571231283038699903049669374152716055725283531902464356449850976304861491902902120715211279722890868149252975189130896409261112802398498474169799812400671487101282515510834549223625060156575053536998487964039596816890173964968354250123874772574607238845375006062848675797314734144930858493098334905136886093954994341901069027397054582488989866959218829333310535471819064531402678879364120176710964709920390730098805577461600348772135976449093891448367201759761997548687587098507771045351201797341516774498437015423350957210305709293210589489660511491169426098774900990711985240665220629592413457061602465827114354458485415998034516515300623144055547920817323257686130985133746666009297191489735150342913055947716443665275796941381240846169672069442708031590424079824289910924443426106393591712572338457162947617067501322156370024053112244860427974068304519268487571219506228439152339063611078721169938941133830268509133316330706999359448871895112505226512183769796243622146551091229489790881990343501063455861071453188506429954231722295239194657428101609697631950877119023507532182549541325863823253158267674587236977377470070832876248618266609363585619435614963226470895491507765563650004354703202862485775538489280823125375641879769592260029490359589929799417038376419677282804513169347548456453037887428942437557808944899633405415978219306481697595687576974171401114287263070252180777990821657055660842053554233214557205363255481946566119858389852387290235585069780059530707117563448450402117624719485591893216724417468741485230965557813063444027705487057364894317867186974245878056060895043394416612594977373549608012793625815666730496624629832930017839364652201178157802639475469116809198329608655984798505748122394723737428242978861103739527638591896110438814925441565295709265888155765893322569426485861286216058555286617260680323887569508875776951561330299943641212468339243216488795221591046942729892978440353984884889267867583026501728181275313192520758375055867198214255718909209401187071434443425840333060793389978084815924064345050461778858664804885739794258132019699718627746007540060332716646200895040220571525261446295175529287641650692248592765555624987679123108464851226637242891423593253121418289538439813562603372474568869672665668741305993411589231529163915651178813361037465434679445081835194896662120114318909648683376205613354873355435103918989536172944448254700893080538336903732329025493875107051119937216693193717168738384117329332131595551685764688723483258556318825474789116211870664790068372067846853161337964335197064255752039676255898825962554989555164915315670566773592036483770414554349417310598665620289816581902229033169345923195322162768192422645138389666465920482027350845597788612671025343845544407076086913368205878996772045011567407349044307209047771305418482138685542278811391968588127898590717118532634377440641237977883101171392225048696095332563834828290095714694286967223739076786634301573013490217788279987092549695465725669042604491950783625714046303271455103586223709941155098289180789669638645458584713192472910430931087379605824366201732507223022798509676256791168167878284350370651497947820497610762106951193423719841081603124664058099100894377694570344743076493919386346101203678375821861190781460678613214197396454908517754501967599483180883271502350312118883340064223962049917846924583233768387922379997030535578645866707447859198867633394634558466097289083128255004172265359574295743043772929424941547305247587719539025419855543237119555533655291338539880005236114982198831344357683224687217521283102320579570240056013458414987317331505850137546903803481388003875746451354688323725456746579097315251154962646025504243324609372945296229822549048494053516446843130628012571286483590555241749800566983235783566341514903721022096820244923301358757658823234834406063577570236678453688616108700829206944866929623005156211273852597731245546546205662464819350767785642381575843046228676888597113125887639698563300804087852438864605279336463486196518403984520714108842380444301763239802315074333592580483352078359262573278412468859042670904619401090295238065094057409925054101404233720367989529062155376911955480443090293011732901643179553224412077883724672709116609785174154670307241269585485077871651693201496850377185669339667713041520602133207061923808386756971499321163382793602711370784016479502184152783994025062560056856515915835304762813572215362717724979044223153085005329274760130737352987177960667358057202326789720792550779477714667434347976458364106983719903809682802969247031048057850290202538327703131299923675819733614887485449191470634848095980735144794118501893470293709841202516571084888422703219028829936896804984284135265833946460677850880967629284418249789103808273916420957189366994815848889569064008239036152947594375773953534671878740993907170784841145884242636136247495878705633985524848598835393987091082751891456840851799082951238229384919915824523774020299670737532597420226621606646889101784233248191565606971407873101630537149057661236900968671423224188636438509308575354124870696973001390502637700030097922846741140870559491655852411833483103633699743795989792036800892349753375529123313716116650282173396059008209712356365555590336344999889264239218763310344825923026528526981694376175254721752195036629380262026859305720526238826991344214726350311743107970111318946154394367686935568671374790732029759508969103634707162401304844483109067148075388700350946957383707337395050956648683866214002884502647219203581365173617076458708335979020331315177738052722571662217728972640488456132476455425365874460348983828127035046487995636544832657857781788128491661673042739428745857601004501838984431220364972078279163036363829204038972824703978169906392387477430755722224656611673529240316781711171453609906896608430320891621495045156908624313384942672145150649973994160726631473657111038353820193231349609108581382446664676944336953071459501076505523731889103022896358614915738492237077849698608410340262928081111274111875128677913881550349436813686733998095845272196338220671076249423344050242483602727266466477475560978476474950214304986439728735370041259849238260003641079251730683421669792155865465355070734451413168998084722810365786080379718284344165920981185764155245766880339150744793483131289937904311256692204712698341484395175867895669730599449934977796636602203991956180150311542604880831357502749345437914194138551066760875092293614605457285011385094609465006607319011635289906104669082251859485672790368884021006889858493818818461380164604246886983877074637801197347991468989713550949911416615653499532032585442616350485076062445603979349277321206859999737868371400182712002965468099989061495482639458250029728108554966638106497698299510710623692746830200595190499659726584593160402183701686325551587922469597394048112493855091329466150907596305030388402139916889634693710201745406562140889070074004169838139761442925506154645547206124083548200012267906639122329376069117540740241830563392435077473804161823838069588220918132577098954400304117140057306755265681976240719180877303045080985413134335327907301857355886853832707732943681959205734477001698990783251738914613656822727042837127063283251433906752377895180615973339116490326333153494571314722296091605132627061510344657262819580564502161307055051495024406549893541290203894166449130425095619193476142378490352361602815380163211251039312359585638041475909228031698367481068730734320835960144795656696563271028099430720546889969680031581500087026855641129843952089590229651100878131463631896346372149862279924946384970990750362124793018210207145417103575909746199152902601780536976268820120131966300786827481312372297152781220230227823993086489054099336964284767651959012416711207300591478196098598136763829290845346162874872854641936797484464017780918826413288710301927473758862851428938565076761163645400345113642227104559049021282044739273352887262170302586024670787289545077025701478043404075409853630507360372627202521639661153614572233153019324979777787036834936506931815175862287722986892611429815628155476216426966491279440296571581093640124616651823418382635915953606222112282644094288370367333241412338161609278483430327375461774076820273454782039974537162025328845762156537166045570523890096009336924004767239108745839555900665589701505593085564347255282972428477063132686213449882510409969294414406645903986003386346345317697352203051860619978240205916974624081919072530378151095795428752137285340670532306766793394980252141039910535192908812171010194032421514367832178267032137041592449929626924195190002212528948506674917794942928267218122948076204898979603448252510137398303304422987241353624213217270122674722654005395900802838644748700147427222623406585800676825244261477738325864240617403588987666593698446069918174015729974451928313484230050060786231899691262506832058713618109321175883958213578905263305922630076419649047294749916391915417191574455100546089095812611289480453945056874542817475618988688352157985623627516410345961455335820030009103140538940238369739344537350160474815310834793219074450496750691774346422160586417207924385538501166661279027463100343933884407092078836421576099404682558340006650583481112952223414981194566845274467146194460540352290982092259964786788007637208479115417414918320996691412253185106364237544890183752226563568709637322663628126005691177591247860555580030222513714658397152577724585708005458395729348253465818382464149122940426375839134510200438126308431878994575973427829083982651268433761475690650070922509856245479016195072352745646006713518416534421243836364556522765161566473935798579607829724601170326613635781459769767237743371295776900024412767524954638244380697430196993787884261788391395680814262307555369903160223252867309880132717842988532434614280532093588513387949878860317639705430322517122865645662550415617981659270823288221264767705905177041696306965698057191632883704058490100665945722972368411646199923068197552831701573640876801001387552220252762713817479528123849721252057118765679821034939158823784992107396019504944670209731374957799577693949449614530764681045784795545731149075704039455358872032201162559711953180717654055838382220871801390654088108431314843289023162256520420130974357831603961030532305941636219621334473539839674299337402117443098694503248668888135105801690857931211996549213997187830543038879859532611296523409726267239623540354269079895895061552513771846655458546232083095694399201849540848001890017029789695269026197630914697490233365763937819324677887840453382748297800553367777963443843531904285167489732995447923885789850881368912341695812707776136763517797766479582737776440848223478653174263792080037206976559454880428360417337399445695583181950267957962190574500341811873219341440679278011840333578450879750563306047470611087518732473522021656157569646576711562227605252165974900509155390173415782036598432156695283608820066318135590042325255109426666415547307018733095413837361296594868057690148724361882036082135235180468191129843271774492049727714166823779025149503135214250154778413077536149045680221148376695999821921276834911199439947499964960741519904976762166008617512638416763818913527896756886715547351258434679835526160022437259229062415502527548126796867642048244346718371519814876238379391991260016023875641420052492163447921738456612990984482971725465048665657771119973208558463969613216899212445157215746081327220684883492872223866981345538674899375341538726610789753760951919804560427311891473914834189776665336114059914822682687024128927809087497701816897105233005632567732976674717673585978104387425396628342962770903053179098481460657236601704435895023468032993774399911912296745649919160262843305859903847795636618806321004271155438633777330794212263983285645350519161211069787309532473714565361742266431256076944553869713836434469144451110607414641099198786336949054560246724848568619946764728546755878271196117548396140192844269676173566125063686870684671218995176792012008153157404763427227702595221486790713162575735745872526880707208176556874739273392987087272259309966127645649313798753480555706133798462547975771047188043763927044140986137829977272012932738838298463384888755634967764683410297894272958944586929595519854615590832477838100112300695644726193641610295559723786901339741243809169526836615394036306195824689789574770950638459903185282773901353686966944073695107873218617810055495944847963766956794461965443687222398931043235268211846528091550922051995573303529372561137840684693933920401982350750023351409129514453328910462378723973130463378175553410911550295354744828485494528384008559044604191771234026581405585098821361840565986533014381512711037950374706912328202649672947621129163456668614303400717281257419189813710251928670191864459236324736718225024839024128571471127095602586670960239001203288825805055679340919051522530205304399023162551180182766421431337675308030462708413154879213347953481640373207972337728513383402948135485394806408502470324979587564898491698733254528526236755652350643222860199022762240886126213028789726213482937348396689821072179041820113673705689510844878537571281626287199745379643089794031166982671565435657231101113602591057474575114484662264801765930135214801841559945201295090396722974159237543813505575246218525751622335626182387716954371852706825836485342906640202275200292924366165567733486559516827579789757733743437614015797278535916775969726016031034888536278223628677185148942932914154277609708520266762515860605858062788947465217395759693656324423283467779491267133348867794098032568147061014840179361459915895598836195102703439449134308358530048409558876969138547047094567971676807100025670519969641672762444508430505777475154466765035955535823713971200156660305621759677948701745135766936693836924619640068125583602142376598900158726709606254053470217899702351681191626257808181396869211129088201680512128112969367975254730580563935370965675171373871574164908690488557277552019996843805377864878469956206096877738022041554779507975756347989344168603845985636325107058303662674717896572395721053911260026062044063016520756871865389844748362116266069833073745726879683187152880834540092561093554981569298183981543236690123809613516932942980570744057140173801189311248718650887524128402985167981591565075762887800076283425866006824494686090981718474449065098460990050243273142277647396893170480647988008164983047760883467906740876482801620454146055549437011953746157948469082043311717280038068530917523065658496686567269677490503900912139130697790563734799797550505707781388181065773785870652407503417490686965550061822585272989274105197782031553429486358617152208168741594346355378120966216138952763558035429443418084911919065735487531689977368793795256029606196876302694339014065612702716913583324497554711789047490906648675250642235140516564682651877546267474787170274385102242473646736535202030886339152102742616229710256105215374919614872831309549883782639774476757888704750539728556210417011846624160145486480342997622660362007258681063476727421232805802233355629090297631224065920704647182834482570818848990445508039085050601487084404641245886649873377441370850935161905307223212296114396953923711788120665451492841947061734417437826994890296225250137434310217937629708463823137104964882277589039480448461154071681107090891265767694465665166238349540467842496548181599428719518362527046720780865910038187954004040301857443001159606608645423178892605545873971415797603567689387569795254906462125108996296509673819204774232839989851102187429558533501170348131025874037608727602745736648981343749289450703825709922694770572026895207970003563056938789622438884933035734705347981118821071647673888894723121709157554412525059052710716556940256657283456899472431647887319294488476096345091023066860792303926159341937532614024421171933774653282553410149280649507326114072881894964756444512157049242081272406857006588293085387205027580510620530042228967073089182801904560474311687684046656502014376313582251618544718792020797557921089400869456343007276034795712051244850409942185720981489491914704797534453172067738199417583228248868518096999844711498799125335660481650064492843167945558184711345685737916350344386939488493367295582051249828275019267543450015759272541017219826510238024355806197478900722856989364418643121741902073069373595776031321767709532414539284946216896621966650769388266615343492617610231520833343715149439574725891031949458884552883166545166873970430343042665860080748705292582922219923175638263155451408495573627209500981586706117577748766562904009604042511584269568576869150263036885430323982511500207858374662175354523947215378919291511100574745138552865483584325047144850849504251043354724903671824343303643663329942553716024839766213239368323429645210691898525997957435113905227565301660885791923018420092792051938533512172313386412958228009700892561605001595536158006485207484690598096384929363243051011548018219721018554880301955079345418937609018747421047495023603836934676475694172077090406023971255233484404565956727367597712073685252806174646442336671177841470789201058057757384299232792223600239497246964390326686766834049135393403225647046683945586246314845896537083257418508421519852801837845085168696522473171717037118036038309201491762623851289202157857070504518380298348479631303533659705047713478329345230096103917132250541176246677041053882233599933137939811671329616378254767457218307340661204661603931837584421049948648767395306801484947946805242844101157228270679454799775580304125117137533407175701467239835147461381940337452213340209317522132895790175928831306357543074486482953548375228684680190882723757420060788680086132030696936813893274354607375315988700001078178132750143917210113132475763587545970248117157259470388597289472726027588282469426097166793388002937378141715869634006325623211127340345894474098822186827009809582547281650844980011446705997136441978194462383140140920990842697165461085462445941385845863624192411499353133535102233277991909794870599919419312853842017419586849455191595862140691551740760365540109513841593669618149541102757871248000643346976082578634246632805375283342107749147018080013245873373101632336489227113481508910649884769381389312328257003549927073240424935910825253455012260613221051089815150616679489663315161025234780659999475299443331371360029118401105193490838703195811538769730612679422432388494591162055149581100172839627235484279743872739234275113826778588263338209565483970486547097644681466464690605609482347242981260724392588980031741701824156482569423513537608894958951197386885519606233398532683039631111272482728318790670408787258834413253011426329730100485583846624146392291170893506968728557390296964317697724238970142624640401600461558589101773462101535002868302348346644470312337051680218793864670163221933452604602262733597324844830069161300829157078872949615010822204405628365558043103273679649536642488544838398247170653328508974910984956120678586460098251274669966270952002674587776260027701673572289263059288180426365107599815474683718723527459565083091506648770704172730459144125049749258459667973421574342913206183377630814508583436887389215616996441538275480629373954094371216910604602021345392588974967972564771248370085290761632742441113536076092251952996807149104882780752528957863034157526128428650596590249256567571369066489772008433430856344352025411989715165758342444350087961328415123738107975105837326229318824829497809653833582728503784752354662188551519430175997840400722827054642366912872356873376035880410241010044517816029335654611182506050482969557537068434317206167327370169543059003021083599479709225786467572860510642253050030972059572295560268333023662359827405984439914458092811368403196633973415347400914644301685577700028208745112693386251714079449315695242154530638167224125658726213206295227253298748229166389802856621020442411126641134888370080266387698102953906576047417310921377705328691303149332596942269786411505717879913565391068986485532344441953613987934061025347130625648790022945720101380203888846194860995241254959214519865456949050664187242966273594255487925336897917283664273849275218647453454562725857265609684547194288052980410422245589182445361401928453577028205809986102845835646623673557312806796290920640171176820730491380504479715303180232865934241687598189471412388180837643175085803346127690464750347582946528772939975396039971427415599027333657503899090143717687900594478938557221493787487352144900905830594874515836546531894574229328492625204250562558920416902330252133139728543101236672646310481268754952553721458721773296036612174835467682664716477594042891757735608818406020576582687459741777500510744183834072719800066578498197888202321329277851858956374610233067243915110053169380513153238317283281308034249567796510731353841179786261413733605410733198636455465847046269418989577497886324848222841398838825573322169848410001034187680810521325545349936931890129835551165197283050342307152162626217047174531661041112110670118136992036959129169523288827740901233234018997196893377195531291535694051054635244449284837084115458907438236054855915977713219016987042889907883686089386849868683647361193999600347300526407914403696221690615466997270023009846727696032086200323446198133743829186520566638445245538668726947113636719694830761738813981010948047650124849798835687657758842802735563898793812877755561088785228698597306101404738676840186360518612177160556007248280019434449444721572783638392542901178084302454954803730343043830144062646653968258988554101393885588356460949233182140795608770427810373909356362159701801133120147640293367430933961237992188194322832495767163017448588825071110025375560743157487710501516908329708999251388671548498989497984691670340058175384068926949325870980987495159499514631457220274649725699742368185926855076104711508801479394927103178449549856443750671845946406591262645913833927795553094654323460450147931697594871332696188689821666195856774913574513036676834959718797962951246080591908922710409856631003224460063433051196474712531492456822627351030433349515439803971499161216035938578569219746088355233266234722246647876420029814365547688817741030174856512946678863076909253136011701376434707971512477600944704790595897065638443791497549468222684782895280390737884613737204597046237004624285779237426466080639556964690925523526153336711404900216957546349351096850862788345098503850046525555312425356019301237956888373235032347207182448362817169509453501120228104223734245014713790321781029158848308455130941700148821830178857671117671909561850571109435752298816346748670253179146332169018598233089986162915214279237258904509214019574566734262474313931701388840648657583244469904895160681600695083099557228630737611984043972332103341784546884578704526029935645258540598430275198011963961059412828975164865712092255874206651882570393780058503282674269925808508365417265972806657615733879404712947169341424164427554703017618556565635766479815413959061197695722638508102598583831382695645637336905354025393499586162159510335473980527347736079548479296150763660217953234463434302018399770279646215964844205166109812944113067581868078637820576570637384685221647291301022133169003849808729204261425893628394215485319755591665041234032101528598081176190263581176277365351237931480390650394959018632669021438372377985576937598728317082218608196213989792614432545185160233968826988734930543533602381808612126471754540865400231417331957505986348664553410787353342531087389764318700157266612729514048406643607969213089103853179352477958070575248318526864902591641540116300643221643750741677868814809913787403379742963089836255166268720200287640982632324359144729696962814241098714006004561496670582271694926721425292810223993633744269759512711113265325540014163235960314805850585330603691627931447526320250522000852751174908619473521894177627039687747353699082710561581209158306825019536867463853460153844061770225653716782340790895643299795252609659736954116229995602839681777931712020234829217533693256126918673368097551979582197115337886025780299513452016674804138046287411240765443351739452059540589225667451438931916519472971796209342581884210801763197013765109281835379532413332734881183701679748015794139415560599879055048479569545315333764953482461582160077270623302898015212265528589628134737114824942106723555682622978992018396412913519433298502513742219021404767049983459319016890206050786713341445938710873831859730180134848684678258324242785422553588222199259586478616090524171195447619991139894244643012532826870851810895679069988458495686543427545633111629859526325722277390627501236519433067143073847781958473883676201938476322458104045343517812573637667613922745299480593027074666262254423531855290983998971691509595499591344292825187546925263711857678539989343909277189377885070621635013685685477158849297870238930154307846104206768125707863810334417492358057855392234619225466445400598906864646498926699769014798276371545031023446635350870603429852201981532472831340308792350830580295555999348178098211366587694710707373826253960550366905762662165621243563359312172191403160862942923765889539005524337743365649626908380055280724667128425648283614853062020161857046395886575671090512443096846129181578417435833134857179727533391800746362466264226240697865733341507658122888071021915559926119932370261572445261050002595354157100594185557156606992920134956425582522016244965083840336097906280608771568878237403371798081288078444820148200850044898128560620610236844760950743611511052934916482333239075078878586702246984970573383116949503553341342349506858676716012382117462392797080998834287675397185335796781810292068732246120674489305630987692032765442020949122375837743105305016395510005031887185868179694555627733550521014705163056961429499950788139835266796347332005495170840260599329244233308150978451367487502085672011077488900019290515490636196698406406581007657197691945008017961361804138682232269663767082177084456502657229297918534707544511920358168345423165538839727092825210593786046653476836371745850139919082436584433712488026858633947258598518718883416664598145697684479954461991220056697879585953699806604987561641543348851558259888920847327938780720423072494097222471595744240653893700247275193923426683568978275901670893291464588061922340174425055481966321321832105892700267596474169898598691433640832154096656659186014181195314121689968581244811711999628353856778121091754931594839052846623356613234268451542372112166699502264362863643740372672596928830844917849696578408382171422039574504589849349286633753418762039641335626027274672613369255076642978800169532682198626806191773478109612265941131065795802229017855693237521765997831069683230950295079020543899244312677496839940134335775521930188098273440563224873715699425954859274709240494187765328408009512276437715280900303248300476431551517937652545092234415023047136783496530419004564873620263959981846865523424930126147214949530344655046540563718454303716520157487901147481888397518865609749400333702303893890185705507795990174173002770904366154826496301365859142534685617640733838191723682597274594232393311777991321307516259031131550532141823243083161881910104978758244562784739820104557386288211421452748502528928997387187185691886593219905035539707763029669383853509422447055063886201730868275592218820832472597763586707204254507765160817526030362435519888626068773361870549290333803024442918699500801339838628982912467955193797354363801954218115589031356363142828325185221821004166826485523526795416903277886543232224047111576785162947374134668293323729660031800666556314428380561454499387332708196351656435490753260295826312544429691929041942072260050399115937181790987896629569759241311514324158330091318430568575891582153607724803053719985718707773148525829124082082407141822719649096847070274357844671705027146236756209980943301950963128742260557958509512573712514902738153631850174656094739934820771286935663484670031174732737880297951432900176400167029688784914569672878802315117055358696329890961966297355736055886471517307087457465581235817688223622278988250501722763112311432712738221293684682601709597404162684865270226300318920387811102676768305644605631097567532848135172191148068096678971941376828549597555100196379850459993152172185207329429023380250913603424409760293329005701656858713248773614092037023959883954739915383483684108743145382727871288885920967910822555835917967032825243735811678158829631440116123871074931398361231067762245383049077373997243991005841715581569518166390100108636860375062041091292339308145970137387438089379408344239762492176440317280284921910163459557651716734613267034263508177740075176393173648464295208253290644034436514753096788328952819020048130215210280991625024919775464838670810127191048760301359138974597925096157125069804383175983176903939934698201338822627972384241331694628249937894482883645582482419383251423436680114644552179931116780520252613319065291871205945779154122186458869743676108062590970320755030901345285623447002525497218115290776749290347241140261418034447975285241236771262077689207181053362782238731412940755255244948882275618310671154384300805507689239655517790579387376393783744640338378834150636949771028646678744724519238961239763763371853877854541941585756299027071872552195867090508583636917503113207554801541397173446968851559188821798555623332883304852163861008417672785846820127928532598108066630928660574960593174095518419042336453199701665079762959461687337588408865269768184071228378580681423626484911901320132720232531667923969995351654978053184766778266898379839249426316400337532536254671369589580244648259964544235377535122223684512557579107658397033117407019364743445973730944358556849570137742469871571611572322805963501299526225431853966668072670274763250308153313127888380353425891914017357951682487400311031057470473653943004773378320693269904997974265746957339123706991398454921500490622168560542221379673394669010623537568232118826319624620469239158555549518897111367584892802008673411903288785244552688105755391986506484842172341615978393216861190656881917887119504459386816295514553712248553008077042354982601727075229453618539859498206916688617508292844789113558228703092299179821330200609881522547163569118215756157117611120281002201174166235270689490555584786592857227180835695585537950364655124527997253538620937342125650421594096882510529342877288731556551087274687080837628506461610846997756830985171217189791723555676417320741698011989174873389972420215349386235424828191602357416312839206430116366488901939782832247513718154212093133892228872124588114786731566203003946478224277769081460821798804575752093361928953396460177947547213554718079222196193186845244785872285381513302842637672529730490584440029959482577137927522717780551257054561166094481370955384786022824113499824360530762504902793851111290045441752348815268915562316619989558369810272375311823133929691887138681349968259710791532201178530554487778085664284951552148704481855002698373136946120947289926829625657496382628297627987352251804237171100578284903930769303755671383796097162836086102907365677637789489185471269578178306804847097947857893849907693140786462872462764582299308607541167832652032717333745670837051042784359779878062777813047153081277121264690504066358848770629220149190384345669174532096123404031554499308001959499567276969143416839247234307554866693425367289376689059240847181263066462754773472365052309441360363285318791130039450545236099033833254627205704687550325573765580545821102377614617745919261656799416827583672095200168435590725888740250117580416091921911026517819086562532770126116623319088296286480609589685723537887599711405517191911836014619643763299823659355539829028333267113696745080210687797418412506657534606430986378891352254825214401704349731880461580444407227655891021179134557168121057403715484860987673392304660706448626963208330151913315065697677906647637612810557941908286431042365333463228812867084836241587096078582896075127918548610548431177887589871194254022203831036752669481391476599861430882728509308771719682115399317540096150169225879912790052306392065498408794413705336400037688280214103544261055461165603994942374297648888471478796440675873924625750429754565085812047178380081509510945611205539378230808216648951211055062338625520167632763755319106503492473561223511554342776911441331353413768842953583664612152208771540947354809173834376588626149029790317126856596907247121319809907448467297242476828561009937450326941095636944711837659691559031212571366053070418309872291067257830015046452061762834215426106874617833157921345371367720102507322644123700275902057233992097631747780444042610681646663632382159792606278348270388422089616685354102142272999463789096005338035062645615576247560271974718902371731864120302232683089870310435916867281302007805208017461672860887765375672165013199230900629928384450745076173179836464244983335197983102944875083900207793333730059130930866070031297819153596163843594256280426336508426071846058564988723982094169008460588873296428355319518927307837402695775019752996476094866795056474808840374331258530224067903522099792678709686207647635339336998769592375450863125253323808243440674908505183434011665703565620507007780842848217526351740664926392162192714791855650010924892873659683538979753765136755899371328496911554960556294224095469868877911046001927306019924935103691199486733330417965761805697129305908341653723119080300551790216228454882153292833827639457752829661072320042201720118438909889313081237868726731688952648525394680011441114006094609292171492280275904462496446577464861853811296580393653560094991357838470636475768498458261123633013436351459866212091043322756316989315827915609656614467908966779928058464010962101269737238793603678591563082148181859316570503419599653786906268537388618810817142279075341712856791707072557116469481751444765777099329729776407013145696250562828390475747975210672344411852493512081247823506371638152423834354058888829218046500851672883839888736533772004844420678875320290905704879755430218023809851610746110075291709873353875275918731904523621387458529367468134577754861700738102090653736567821580247033191778601811322498584785030008555818315696719871767889068588756014052443433340823906137354640761822231436019700047520513671088064233546556207042041093699185378220619369881937365626040628641724904546419893391680670115890637729407494924513301715533531480265479236410040907792586686891456402383001154121881052685126026965501065265194174752350756544378328770916331807260836272588116865087477964954483640530028007594497999413420930692087592357254348199373798827805831266266831411542011915992055800638718823239663096225896607037750931133546419092969919822743599016724205756821078250635401528622098494384687456004549022559447257419528341600685790378354249217029467672650939734448359063385150797357083086024183114743214587312902996412607239071734401148711692171447300394325601689485511764123792072223277881692797941042580635605880370841556798684541708178587310491034866401151381656418156657715495337380661013429311377300188860141028015905407317015780106028418150660274983584165889223970916470025951049546963785994905972396962597460090235707546557605509170152545596771115101638531614071370532150104100336008371377828089582395646189525748436268755715339741077318387962779074961172079705103370328728637065594361726374015426586806970244316572664061308633010944981678770326356608624587509930897222747116766279628086500316529192256012120846142457432978979481073588987280096976596437700051692355860021014615991296379557340030960060768048154779687878525416023092483243825346199766766783514357196097115423877926078387104527193932313400253554419556257347540487215234035626638369014580859555734055873097170067600174675314318406187480061778165376606782224140822316979523186928375074336010094307039216523727874521125875200612217475826706753137584580386610439647677406888233989211898248813372458856228056184643554533456300385082612169391214949231526574675252989676860683801239098350105208141615263587941988669540989711250795827194943371945228612850504177967026180598409211432949166882305423808566773169215169412277102798176959341688507056456433131367299540896424960524560402996819983873731902138862193044182058567650312882989998205565900971777008806223109419499667813864919118849056170822275445705422768314454252597631288808219915507442428881027875012206978287388530929148517324155070989557359972589995337827765702064988989668183409406393810105457117795242024320426800879306124583865132960206524580525364775051597588115013882880828558655179779064401081378098714582132954956031600332478003375551126879754547776390145740088416557666524596318275901846712029712044765378390276567813770949492290305708587405509014913510404614390801924355840136471761545374327958720371638971487444599468954257500880726979759974727389676084564088119327976894200139856617716465935078639166708682961626812334243582238651851714329445502894061538555110565570495176530249972486492306485307390720303317765164809067840235233497184616255172606732902109872533150294413035876380809906709505088659049563988103069062100287757576514765919954260069860334633726631465356743456744823847937585112777040791572370095465867799741651419135431890999757669263033303758633527700036994983052780977352049169523804277532235017273333201358393655825625592669791782306246791097616161480274197205764700317685284780416916197565104625250059103102281798269433494116513612006139067565191213164201462020743424676446542075168761362212447495171093979815762209408093357815274075426016407446274971572059840482400277707583979353257924129562716234022882394825806656633692267518255384678928197707335706394340882325834559918792186950540819237371605141318629074164549464365636952044311515230506891221413123198235846490196312274114347783414433499610944372415026631258357813220757900289822740606631276764612337976719632823367267829983114734451142028521143638732080589328256841246452818137201776260068863681710711459628793026297779858320648060343240763419551514669206309826163658990631213641502454675847043962122479403514815112661111895340844732898307664022068624322255692744078305658089732727293332112201446576754930279360812245830655697454830819079324625667131637556549049874664438496320678963315767252510318191727718444489325743664843121698872080844603969728536731651017974809746663003948847787334141769929807575379100310853160957883122868141308882108585051938160165340308614758161909025456963287301680236309003354443587479392505916383720710152181128017882442562502805550732021554559979565360464139512056377696434850197027155012998987573884749303555256483580145905156222680293505226243822657683865294853492173273551886892381361042394154288280747356237195319897040027350419792039472776842198156853478790871083656371617293487572201360011349317269190217049155866526037679935915479744640328100325033637476921372711651911274064410105869513886874830150863383649146697348256146121428118472747030717277047064066111936253788386691407502834696768397557656454510946995518526410971314873590084170928386128061971837234443255442766862619593311488078188705892276425058192540484050141543025422420934900737357457450482049047264364347924535470703715605117500446789009152163576976725788286963984546475994467149164339578224935130921482774771812970117610788787765490597777862163471282911281788551973609677890889484180264200915526821042958008605506959292079586459948110721124292169457356516851561227198034347694139344167141204594048120057831568311584647995881650363577032341249517711057903795426376164678274485133099190964762244352814053750536781142254783790382335783052174047156097412106537724746269617970188915330158516185972823733143830599499791416856400857745664236115525354351747686760140618960116457162864570613683811470740906394741450918899051639894607948454653284509336133516895425285560161852844464467179916550490045686612594452975076213899544721583361993888701911561379685498838571241230765821746707021512692220370499391228054399037424195128567883044442741121876626172911065466959573685013715830787467871510536593242918538599967260744339109471492022052493581386737773051045411834696781827358199160165466113338357740777706305385590600512848506514084078499477581706191800463208514303703781631493635385063978969430900855477678182321221891923377655641667945777594515241986393312545797718595034046148221181113722268502993234804274248256419193148062183630306515333543265874568435607812577100477424041872310214568185893250151283829666991125721638564527521036988406869873404296985079267418934052938364633460803560971818263062887496240888685822222367061456595294873124155351730762154685053411246340024409493264037742233307186421265954970462531241874351687704154177231370942420494141917547788014913034567337638864098127177141897960438880219154139409469522227098283149726545627310430184087619437423332353122789210372984654815625909707852555421457210831476413895849307261232611636090538775253287688676687413764155872648301861128949704192227063311745085430860880284375672902460588922280678232631042603313580241924111758828350337137542737804035153400465231023596568385301549624917611076617065280207177525137149490618239703153714549532279853789310442460578125246650787462698196093659196912058136354265487139370877761258885186084558404010601072713038249664871832693761761706617885493818117073751095443455912667169573012778433316031079570775106906376166861347877247119147075909137971026888761862211090810959294436320857309642736600301636021375501088519845415182759365210330500428373555986521466791192862883627904400116556199065495871876405711436969633007230921413370761245193189266061921215619914999482076887785075876052435149097154494962760734812787216731194095756783421664634841718530038020947619524514494932906888534801432605445384040403601550002026165689889234277912905963946499313306766726421295757062988949816627698524825678021772723068362497118762961324583822417944786783611318215224594175907284018710630545877889147343734026869181935739195666939007744664241868236895599662927266621586635616446294923511676458670861322303180071958071679931743623133418789021215615278379876827599859501581936368352089209994272927690583311047016963395813090582933013148197556823653292788529145192581385445322681005136050559684219728187023158559335174378131237663030522766352302743231922588043513558115668878637176778584976832141169390216504120083034236882037881390314241953013710241540970664270703479930653781816093364535399684889837685181027804792194237654180885581001215671382069017870445147999832214293367956271570242568667599267932563465120125519743303622216007458115551285118333419519466072785998847637448804387237068217730279479101074164209112282673236999400921190587722774052397969455426489073842557698553548474942644304443449236641400764757637894404080349106800293548567512474077669638243803636935718297520965167997906027805147163194241280656875790221510094292615729521642363700393374355318577049517191178065531345042329397759979479364523674708800848383453758512049006397963922933248633326219055069199937170924618684971659109764811317289813685567859210909887101102856970052835952950488038923811631524191618789992602665512236404834352245798565927688878822090708715179242178212727713967428517225139826729059301662636813789502390226520351058161673154282621874585075742408650967395526469137524561151086105277304592221428485858811359660816668037973618168072995764833042229822775534456229119392542434256522924515986566643484703036752936051987823192977068921065203690846396223774287783251682855973638047631254826299866009174883740939950020060261235604815470584431721447648341172645224447039409949961300632245923994200670808159620653292385226595692002934356090566842027676334677977102290640739568071795257903287529682423855210909272647087113762262009685374282122743563753775263537610744380430875892132549794110112285210285996622065153856924991694074268928114070603915434213261944090133440308933396048269054856432031149326353687887426697936669910694763093253625608910490622009650594223587354751078206784707504470450465481245143143231980797289687722964207817562824685489211446096758080326058679581215893068803474390779047003672914400858714916097329556967239554364959177197040289997593926048026262293752977484569393590284518850757410034445159104271937215849414622338461894765204249638700849102606496906500763945944499839602319851167761404696237160228253631424898199900671706172632040075305758580954455385766246430462966532288437595370343419338101895992536482996601881512773233706311942092833425426366447799419081757884426693996157907949850916965252667781527934538085153331302418873160940417918669568191317236626381743278013572037962204840245207463733459412662350284724076162492431261182442068328572478496365537706071055900440274450646257549607331217338675948211249771902013750168802782944351169812163324801303757865311557690625258343654796416282135174185657465658745357241585775557740956621416414363977395434554958931603059263010030260751100159546091943437411020334321204049455503511246154434092395938521621861695194575669525475642048688276022945243880525264140763052264014002730754027310583370894982096342301803079122032798679576319907079313665106096600415250786549218928699758120956469950796468520016720248877013171258879472151278070127974546063008441330435883187261932104862870362131229260268199142084056738657808404472649092701829751372767369794976614765338283043620393399326209670244618950903794733938311448658737907284177208259345059197507421293214739893709882730430821433027370050963150537052013831528142602106051520440687129768019186843370540050649460717899797856092446293318644974817911635946787022365291525956400519532074080740472677349061865537910930644602784728498523689507782968399543863819362914128936028232757461928991107637667049297381721114761395451915910964261826684926137771513413721949773519495086622558752461609211996613557068152092729007478182560187744927456812772490614109793952740959303163884463776467450978826503777805979693704118291375323398042921206406005617057337969322578702578809678846523498076702369675631319373985673586467314144885370692829536113439873603986945821273599903841373374212102554623755722647846748432389878384207408839643596981195542543296104590341274433809321029438004164283485301109988312570431090111958499214842587865823939488103479193106233954789460443965092290814446727726319085759557986368704297675067413967305197661430563348738255835298233323203743137455552941188207423961245423406268741561327558484750426541165400547591500002926082158354036410670226613952450109737656534655932653830721629585558494370351796556528628384203630188061798152366097590714206845160510796000873468440679167829270771809833596767810821207135513745036002685806099636150422833290925168056869468770157625223123876808750909514021151960142486677802060115316222033258154724420508382381504430705128811658356117778025369346429298866965278567604132396407251655109835265940948784318529479679025549258171042592103146277157337959645455597791526157959207414492728158227628254184588813187461051481978624297383381887720446220794285761809326553880281493200656796605136517268702488349943987046467903694843024799957790196176632088746470281943829669037901072306432232077900537335816417302959606991115617664359064924732442680205418571930611311043978197777489209517901945364271834515577296191755056676078982158981059585487076578765142495549310260738073032857338864641879093483649936811166484710504908804199414344139733388539179794604935668972026598022644549454358247766462173734804826443812291151734024908105224990225040774412390451462165656146611863271778860220209495524425612609625679630368516676547785998525161731618365410783516740837080012860100081847980542378569021883396836048309692258047218418204048904949186153167566192861032627628616844565801645897299981462773028821059267031691722501938101852130936542341529466989339630931938711418138171602326412176331448324707751236087809035810714942980471129604105482415108704106867361552213811556949104012376528669307319176057976853261699735062117823884856903649673539327642731230143271753571498392734922153316092694614520277145027919507081074557804606973632189471197305965272185373586223237942672032743569272920764924009129611273829404788814387316242083795302650262320914323228394084118346950638027227789694954842282352164294882308508838346177540915986928987574093032570894354166938891446551474478780119194630792207221805057648096117369627054445480353502982781699325300906443771798884789114345760058320299243081294380560998154341552194052648038159810750991203172002945938797730597846883954600623783053525872164642465315954653079725930728376197751190428362551956218361940800956886112090507179003169327694882441257359325547404093585603587765348611760799651982591589166654210423852728810174647171438355211793550225394798519469180972585654505926898011953400179375871629508506281077806624064056588248626276486550828440954969629535113162965961870556611182039000423190275798565711791708778271970156524963948687831550263372263319100237373569023872533348392159416000352810277707149565228157116326437914731023540425726003570583349322171338761620707231817003108371154718835296213018920580903091868068375111661511934946535337543725281308172339716485489093950371500519415245098427058007624789410786889301153134715802877653708519101610799044079076250734948874824697643825756703578526053013145604337839758135253837222145654097944893671666379047929702380989684875115882346758870629994137158589525835568305802167809298398678098766648640124054923807648157774978745661473592923746095128112306161747179764720128130459876597496012728718227855999692518919308317332996759943059385355212398603153595048617846980530779977892139420927713011833340718425486040308436439027145706298155198842501832653795757053396621964849055206553533401362882217292803279326674707279398265606698659778063388530687893106010647869716332542399297265104741781509815746937006552170424434369512291929713258429589038158094791555326909536476414552322468618353471094368505705914468646665669960631501536096933086807736855872902573009765597906512673727008643915829760759011509875404648021667867595433871815707658151649003314863375972042110607478228227889545277629862562914878435791648067074266677281981494590133767948850905464667768342870172778218076226918784092608877607599768641921451538545135971093488351248939628220998330617673499905845582371671881504943573936531150232349524140460984596354845623121675673535941265597060799983196468666563786039265868786014246178958729421628577986098771560268590739562863786091091263814412176464648160349680582874076768942520719045534850075522464902810324888812784392003815978442205918052653021912824694744948870663624506414234252765535159831961954586245973593197140525052081555613310475612427569964341132721698870783692609017815146034865566476074307243257145035041638547321849961115785346843379721318553991129600450349840427847431824459334409490947791109024160394450855970192664544522937433201652805412268783093361403745060382407127346342661206048565909162679595427725605802415650442753068428806011779962244722035208189653998009894652828354729559223185364825628942666208020022347760216027550382243888912877136135821774265809455506043960298233241356393712066582449510553778316615544241735378993823092998047273628094698429488744658079036844612901696665128677760876184923315956285467500741607882455451882017463476126443578155029931899897871317731673726111963355181272594886531199771764094644211497404823505486922123152536293207369601904519536025803122538519406713723193902897572103011773989659724272175879402688453162201761450554751226241413857767974874742770459766062492924167848088124176930019344863457862702772399341562070000450425303457919839609166698320543437445289385675437957278846463406914296330251369206022216746009974219201220079154803917712537915749792477344834160397789871465040358475546815785215604847534065674796380006574455904588368902517844135676635421379293079588115910205599083386827039020168141881516346227358086146834748878821674637882958833435419664664084692020932655883956946245708105230383999851348175523621688293507553237949127332205193961284533379606184713686920830551718062631320449665571062017418989329767010849475932079009200647753458282715220014435416707674328789258420101058385441176110982589470389778914587222097863072713241527166715145491082848982069505506427066026659137307869888818174708073635146131208559542571135536732665759523618498072249744883672175306002452800334211500024199450871090368613990461018225216712944860849317214479796781875970315529436319017609331848406535454048338575429177567948630317393923064960286702761270738867027508229787865954931584962115901918395024987492396690149431759282202587055363190988351815878305513750029797806093502447116908126709313812302909651514325931050694902049078708637808116162580117796501708293633563200769048341488534711374577307596629773025382166531187844734438576523139402446607437020367830386222922382386923192297954004731270852492171157123280737584531975322408054146553048377640659845382579354195250253203795577458408787286643438871330250767461172957509891248857918047806282058803076702672153841837445230218590790914042808895054854420140244459185073070204778454498310409305182633266210597029748799043806357819287903477819562574436910578405509935563980664154464881124516060163087996697609704391543508189284744723581349112096183128651107554389527571093308598518266265133473249627990575834552838095790534055806524991110396386900186857509260108738589201255453989054963542257714332408683227128472227661901936613235039219215674123406830343055228151045607354193374898398092490382315084400994018761714163956688908569504675539686559825717532667685112376759306265155023064839811655935117982188482416002047631598821019633752752258122697657749706768055829799355026995898510646918015418791355301482402672318012853498444592782629878332833972044140582114309877600520563767703253249004876601542147851512933419641153532678539368343337042425538372866399156989569931915808840420672731923368998329585281222937278372020409022980660757648276843060217825442118722898540439279460951886358330584276821452509443664628364124064989164488142263964703451123292033148216133836828541733245742808274590272905649506410391115057812257127615730281393013077578684570226875887394650300219322785625407930489412855506634195720901219682655198211529864034268802472532288739176119059198467469745001085713142112649660848720336659729536601913483155666813857196835686341823518429398303894772070821197469273999222222579514964716582846031912042579163979789473585917932028372234490496987288477649475059762465065960998044094728363920742431994004237967645007389711888696924897669154021774287994885735082917888074493391205297283052637836810524046381684314485354915027887641577631036662481169657423161417298788960870505726288844558235362782433692292686365754717769612409687644620592996519848851705714569206843507448475731829533651524546007396739524420681353847633262409104878539781894201526206736349745818204128251207266330991501710023625938832814805628873840118631671704485720663499412665099437250331093708635537333241943318192362196293944631133584328159203983684462901347665257789409645894514647796873887464537383445245182846416578364568189471256338109174710062388315463191154063555222543971547339550930027571232979529966570619482701004797295032375307478760790668855994615447326142598962695203493239802294177790596970224192376934417782408090011801577232510194920972583745153671385437102427541468779076932278861937056768998544184705569471891255395286953441187210194659413403968308679225698522153546858777982210412965079638528747475659499737704253657196916251958210218548073650498431640605645907526819673584919257569813024286780775001503945295694317181925550184734434505067487696383990441658820703369599185369563876361288955709001687874808834183030965869934075261813088349376896412851379067692600798791864826940641476553432548292818862602694472505052383485231083022704592624044352107654124892449056640523820940340033502736541066071876003879996496950122588744293459354910674592615898088627846494662577847336173190660448275237076242694262975138080242695225998252162661593996675823478241224734934327870355939381166704601325801016367609822437690321648736266446815333725939672856358024873974027511959541174507313945948608838974168611178003913287249780443976628758206275254571269264134017883425075758486245963045437653643468160773956726919264113626336878335869500984018848686221847007392293082904574269123004518674877315988625769409182106996895445501127215489580134078784347936875559763371073851168745592853140853525494958443118895035860098152445399529031466596812875217356083408916272929294486714925965871077516941474639211764298722850766640563785935856880972186947433990517260403950035153008828708295199623612633515793083746714847376708287596008142102304084185442813768457018056490681529524647536715654567683318951102277346540577684132371395270995215819171287691906479087545299626444924473846730702515650477193908081182390711342088769424244439412875031674272739073529852555724411268068032776739568993698752677700864519973373738366381735749120437616281101063410999466153781118474599448545535802746818374684730952059344033163705160424837711613536008973002662915265799954077347422268595038287295004740128494019661977340714836615256101189823964241068703936316715858192978038313341239061190699384308335161975280781425227321448051527714383423860683802272892415981285309685480283169415902320906227865029481966108257101397220833676590736323068556598308375911493288585460587301994391775942314122427456463792399088934024438737370271153755581999762199579320538531105843192013596543629792232551295385888965357007443833106062647439974559806609585265313885126803596845855090154888914016900612893684906864110353963119791941215886005330809182473580720007198784010989919811483805094345140292273574220893942406353825141910709129800350232732336983927656237632551159118778170490675844557539862664583818186383323322894061643191373058631647396647981670526055987124698988889628603118016088576411172402923323439211050558178688672685942797039999122027890538736230665346822108157759178479150492451998630061425187220928235177386649135501378374191972079426026333350392553288033869217908631339974352543509768519673706170621533296225535012009046225091080244945053736666036162188102334880503898553918143650185153122136085666205046796525377616122110116817760613307912943625666306090960253216255205598939262763659411885064858513948417111672754310298441274532248947447441379949738824113113078908615364850692477807795727466453523470881688907129770666178354690931116150239836153232803820495963094476374800020814024080731529647996133752313895588009817833068478043387775885508918967261323214503083972758117489385195857427383568626808315994115985435781327492802243831639251462731340540267242932031722721626280962175375116160138516977005080821595133055283391295061151238511073261876071146887894718686501817135661411319306985529069175756771609975264608689312773413102188358204082951340304587173524430056053288500585425076093853918306722869070354042974252835298576508463266502750913213400443413593897314151314654265176153539624223084062637122714451226410561600078469420587942132730414735303209851533680650262699735340972403799593872615004494807126053698742114079309219079908172932128935363314095534864018894149447279893951698905274428170476432288156808643519742398318910599565487309644308572988616144406766517299079252145838526674608857319670268616035857614997352646324470526538225416931261678632386421935720915856862542837721337178484060709320857246856594347935608693815551526496324972864653546267340294447300097162346174481981454122228181292512485354737047117386658267194188291583133043932582323968514545241603272332755918324470219115132203286387940491710357602912266105742754634934377753620944663786020962463424507624893146966196225186901539703403370921260515961402937731189089402224022796132522659738544583336088279011256656905834801521902199404270927462559115596217025815918126042909766403308707842802362611196329540914529941682155710729896331947234063559992655430952091656453358300041331360141096951818723017818629254140176656054704005197844608869683609194848247680387669348692685722920921786987617184735297894286287072748802773540813024771068271183542347103193598150694969184628873797475830907114306394057286461571896158377532163243915339463215169590388879739482680765921393003312105156521007575645370431746185448995783426254795956264743032119406876250046343976012817165770758057233113610508024654204355730802416307595629492795556524527981003602011931717698140246698501390402136168930202956833285893119612763765953564642469301976072714796335402425545055755090685644159189143002189381462475197197942524065216566488526267766577530372763180561737928267043667511915004518847562457539957502170062425595703140721445053618400316366351691090816635177961740449501772151472743737991325720108950257103096010561788864229504742269517829922742024100837474849621271294274392720458474469469531969516477820530991191228793660723033588113965882726052010774941810475596202740591142344479462806967840050989082339552813832626922217997148882758902682273906373889753873557870344812661172824512657239930781813696967860494926844046430450166997047899719778828025628119340017169796493801020932327563968796494768147576296389207501450958203911441252149390756748784583722967535596834943115201872283878096840524197100214336846623689863178159673010480448393460391613644166606783549875939001368952848051170255745163039097670153573368756654152631498114856696717422649405830729713399128269971722887494374776240642763344728705687001230044714346550037998374446259158041972980398207646951173365846497728193331644368785765446186632759197935644473239244826088478497607014268033235126684894700912400621456692796112693309802773415528444727751098614220676467841155331987239387175624663583685576677662261610490705967711262276768589067076030153295762005494907236541167975442186507119964782813851042215666772794357137627486986480980722355670328960470124109359998308523914099694639551038501857972699091741254298526512220316588118541125376580768845958092377275028846621102217922976333758999447097481065301913104252191357486704756376144369179132447211683665133765549793123513644980727978383326562178239928913509476490664605565057877516814571099957187906644222959342295374998622462961912760905571042260270242396748587555766424616165515639582594366615530138160433467657627474631535096776450057290276006024343186095498749452347384421650045707614914360534378628376837383458685607946394923922841505441347656197515053674248760257732946405576688694291334743132629430269004772350685605060565639174775441999546728197492938919904638774202998529241541066618373501164572599532451695488129712932523731917802269957067978829843458718316534227855922209894939793734229251881160477283816368926196770668963163419012389583034572543576386904114253170183991561121627077822848848479151217883112123963373331086983514776679516688866950701127702187437787790381515864895262136194333694746574144582650670620956707909637247777689011858774288022188255251617672746836039632372546022335811968608883338208629902762395552877250285800285547604522954535572571769996324795193337350097945359759144469152750485315182003439144950040265534369976107067420235606505061346272323702966532576182133531354315773677930714250130351348667650410293386363627324792887734089628799570254353720145415283510316503841787033536619712452226266508874563056394511781653020932496742336599708445750606205543321852074509222090389603612825219431921537718616878271786320956118487900001172275573016905412436816972408496982610289255152300910023560841148920852643493771259825913175313805651681459221172056626623145029902151751458384739114523797890403964249147720521564692129690927266816239676754320788543447017948115543653343651820142478476604204188131354848582558058915806688594924959012843133576122138664480865219430004127198236289737894746935281937007715600535010098647551764196262841881647488028482489841613413456911389458880505163834355243089994978064299575490021286289216194490844620903767153235886754633262987060989853021097624722830450305537313522650294835977778572682521007857490300504268880617364031242109272789379489159227286770495076895373390324343078023080781517697424318092596377219493090662928205767754333803339566813066679045148007330156395066212177710393656938963328128779361682711816011291115092103732774195594169751764303802055047156466136064828669326954911411199094299489349480342481768349069433501959174581804406059982071577670185347350045056569924464628032597279252178224989121942954463038802920098250409602985002358301410839351891793935185403175210358459531441646440429952704864814325827213599103786785901848111806967991315175048337695516273718661126057399328721692196993328367258240124221206189564203770556283547758496545387280333064084026372825429333052678605911373454048819810628093834400140188051861050579301051403479670565137895311033456087719186963760442087850281827662224063976315322398153450181684689397311323015502086479081348192051477454656051335645128731797538312761666856346231607301314088610223890665128860287190529184697836972999333559557140527809396007217381889335189474976032459807122681525101466194958584741764979988035852530587385874785706816297333081970608433879340812646084958549752483126090523216696089031053949212866769296779997588627577405567034014735653735025926932926790929620277849695836156595523071124483406554480574712691276195777091170186437026179835312502620005073341900083068179322664312865399695537395535131542476432804466515522986901875580279154847121212800808525560145164387656477673195860101407592260391600536433774597105818932299302746458941361432251728112365910772033751121436299326506507547764601042555854274975708834503158850968035698439895828329247400704329399795387798331539459703336234769174370112498250294706055142795189015511730434849148954765267689585284269910416115271979066892666847546711022349077518381167693793094968438749674849571317916850510096859830175583874282906552872015738487275672337097747528168807846571936874931768985186755546370048360962354802089576982325983036597295794621075856279895629433771285967981031833421163837200841592636521836794961390563916891265026727136088520051934032382276339173212261528386262459271901712227913156323565278678633329091158779594544292249215344715255170817921019465899695379078689088623328125274535815378531916872053588892768271636932901655758258898805066159139056675292386676717189664875022238795339398320851429165817548013291909726879247821727619773721641376033156776300137006338020708715292163812457034086908168195520931270860029574074871029672902080070888029587979924860720869149392138774020579385132922428932047062374543180372368363637933788071669709471441513501703353993057114927131910846640293751627909358329559938653478385036230465089979051043101411446410374277479235704865972135431751646664524637161696788552898916484617421451577651539962485179704642515120956329134036896481451225181837874750582209056132631123063403466692124778549048591299795166375653389390663922846711472291008106908393771769723364349499688745102671846792131404577388891555652888668554385104009471539354240932386702115282919977323350437048298665958259108749331146927494416860263525274196539501684534651140453289331177707325800355581704622598852923923179452479081016571364502502459674695863045030970756117126175389874744045173904047192753413657245966807267104892870318646072549974717057499645758551032311446925097880416200520305237908683846477019307566212055190823191158579195311553246013265762179467012057687833048594077942373934107971994842588718871868416153714639545441220488293210223538879407166983137744919111281690466416346741373485786532106622896893049557462090056177232870193644883573499910497621805729758323491662054083766122995255361442002930454036390085368152053552227448899879641118319826805846639682100024901085165884470937525951404464565630543198086701395007129907136499977255089905110094222848542031201267067699799335990460994761595648998569123195864376150903649388629842926961997335221102958953701809225195179411902891066333318553373575980175114893064064347782170649278714427134610188967180198698497304359709334251141583065869070231685475228397199307874832238823742847488870629442846103131532313054641132028669336743982119058859613155239019163642614018767168534000877884530290928944705559990791520918738082635421106685533770727372240485287105198435740162639248256876600593959515361484779350011389885445795118659895422858490309650219797084438356297176815947703501978322095954967552110489826062460945371917457106110414307894265459301877572028135646588651038447005810539626572711349694536645343755936199861077455735575536571998290028621181513243889475636741657963226691937534099872498282559387600338815022252311695971845572703228726239887528860953827510028800375882191742479369853222101634621404833958519473134839895880642239826254412030257502729931295728762138732923836135348946381191560104784062083314423466935177366384755200194268237538196370636785415974046029957658956929918984644463747337734262215100401016284784881999883766815522404381553333656064898336110725158230873913928239100945993283076947047591475087330861629155014998501264596320675977136990850515808138384540678470861592845107106671206013776226704180531863538226376819968626455455277086923349824198212937161706602894792685733160225355309447643995591864010213039971905051512237783505586880788410466665521576411461952212137106633720270689143700967509276074775211266145697137231514485650008706308729906004522105596704114687471421532313772290764599574128374183718278052822872785580750005403050444951021810369032910490328331982212178558899881162783393993948403655386708505850553033104663333623832187293330810943902420685636775342758129966664306219752781434769135923095567947780526770768839818399783753234518253137283608826613757347871111795417858810823397598498476381479009927431622997790690444165805275972258300044449679779727389464421285554356940935615870217059025873590024844358662355653266166853107838617333573834853738867097328244970026883021370169096508292528419065414000896453987746412896065800876789234286440016186497851893001462858403075031130663964035771654203360507598341698580041701795821801879410992544251102937417042017467748523186105784693001758677209061424041651939057586346558562610555863901483960868266855491375752020185796848705597231948659077416848118136545293549249755225514419414403262489004258811677434173096846094244074379367171614861005581947522353846826538121856068503328347255735717667314913105066450069978953277592704185910986730088288279631748440290130045018060254777740554439638660796333363261715532705193052967992476809291971030872103514008437161156078483791453585949433858693588076464400712945926115219886264882641528965178755765659171922394023865377393229435910168836946446704030178015333227139906214623080808180077338876765123526042913597242100050311437252466694113810837240108601839651462980651565630528269800574978522670322679752862718562322445627925449505720866450478809631094699632547351855694174943026371234012568748535884494009455638654337119996010497770116510705613560593151058160556060955110384035397595816455134729798049087134135227939460578432258219523721428704210009428536184471727733815972826891055193835534925451984018066695241525829879314707495282266715313377682911736472950598201876037647750159123471730228636179803837662940410327718482523814897996114239550420464270977434927691429270517541434762100008998699860210383006251230543159696042990585937601444139382651254941880657357897593267598699281547267738035915224602867043820320655613494158824716497644809275051803432089309962752104397700083706701772005447642512907798037022104230353076058347790402655144903774350095703672631533024589262961882620550235886314239566625981599828243875992909688763963886834544785456743763577940390620134821686934621764763588461572812700457034253661715939849806608903593576189111289098658403046060591322699721331000975057186635192740621418301639480877588646848337440899332908030807866923108868567780370306979918007059792424480095055709200851930144204882726166315547122622062476000945724165367570820842321286297197958910908801182234144719741488201558918652419029700815938460168569912209670793842676683519581554043096772306682344608418009776123215178466263405618719485194036003056836106139255150511393153447649639840826348683954077306424972219491529218038284491121755159152136886067517927468780674623955129119203379952571425267573614768000958785366529162256243499065769518116173188787265707942842288197549126582430981498013940922646675257234715093399004582548974603467688705604044984070570132647006965043412532841919545168880734720040350397111729917397814697325087840835178380934972805508478537558867401387177092196377833853700018427877984204081814345453832444193676396787704431586221692088566597281294087443225276018218818124406674708506866888902115116979107453848841156382634045180974140417490784944776854732138298145673805907016213754917013015703118493975794536833295502078176996810547675585139491794605312182149725879313139272824934100636110237003649844802404335231391187295470096339758959550309635548614061441158335809292739243883929282507692722354622073133103033897077410648069084236361026670986640001402521310026704059356790096793441910024069463415036461523948711630324292387278627660931390221614170448268967489376487557174079012825220130855325824388214031503233189323804643937876827342232636095973475414766981879429260982240067128895703908701882725843345986276477626742093461893716207336386682954308781503248728408215702127089087283199166311047523820585183739922090236173147434554544491623318235317432267761513877764726166292955121114316791039511632205730642871105469713323683062042213503171296949411795053241725298147421248125865879422470298668322184637351136104306658626997803454949256824535921281356146698914162639863299995554336786420070595306697899441286468610563357140517634680516532773181922413551700988260843187006613093705735987052350594989881446722852881867865054696656497014299089041815768447817996241935790025574679708929065535866484365508543737061754664234566670746082933122889430101335035872863064200665673369921283316244475231197621562285506948558760006518510319631449186741631109845959220168149401251866084610162049765741874883517812718954463023974773783214951306871408802817766187081178837645659273792547930469091826370217217379192708384074001023337754671714033966586909484925271408148690359465977726977713944860932181143400647800200224323871042575661110133497831717262086444480411654674494695517531206383128755411571978734020385824394390052294480237257346705148948073288044762745185698555931692492945989201074524321271727379181473675144269618754659222335032046689528442136618494202196581245574718825626186909759450489298817315948643417492156742690406257940621524406702579958449690147456944780936965831468923657755389056307658286031083738397112599373268454155355097087799813473242106296789495989245232154464320870144575405178172624952231323074525749110679214675429251882309942648134897823845063274265733199796414571501871601786997904300735630854290634879449627221487983943284822466960991275068680637145637791818608261435920182824544037114232204105023362368345541210060934325027370650117916556242614169788873629081108535743873207863954972751470860310930142291081651796461508415255852642030237617257885284210155119936031502810721139974076436855189318483152996948290481318436647638050421702910394964479247257179123425833199814356913827152039598849285956753264488360154083569387640664922860612019246410213801981786136388019494629096806065827780669533020666181133116009990790213739781711707961091425557584015015526300409994797655980852280346856111702309025841841463988815780391486771104819184480460502642427344353081937679542049534100151566773748117164633722003798774594023163941435341857238163813101726813224260550466719827002323482239776983315678988319135634281869681646402119976124136836415810466683722333030737358705894728363701783911349481817493410362587725530857872738022608649977626572396955826892551397013307486672138727543044856029751217115313824413538725356277793435677254077284368353673462561946592394253861780538693946019314179893594373460027697590068597572116463549804618608391451451171028734995218217035822178555013871893247543148448957440090105433104413300490485347228989483006744435165624751162519647183780600766265855594604109691057520328348323453152110608542487051011625109249144530072342310948672480849750010978734730440889616955090241200936426830977607861101732280507132159361976493278931767100572728302522302517345734591445362077341972527444288888367197526117752325374844815497647306829628107020890626668361980199465210243354630317809739887483603138472423091852187888567036155419712234632726052496109522565557856611511346844881015087996183172920590521488650647718200463160399887370365820513446259332699522585268113617371051552486947977401800196376870302429297150532190372526882508573732518322534693930849289470866856186173923753151213330230804963400313758392219542826862745019624757938692326589854216674342802897847957190134425080896798836883416710573189796989094984566966002291601606231651683118520120335772775909034767805634035265451706937868408207099103562619338590112522331542044918442394932778943209267540795385478816481739494657565955564497787800212837107706147675922086196418504047657119103427744579595490040529401392893630216385715590168529653103643232063922631220437650698930291759593603607095401036564707974582579903540737421883055476123907640532110168372737311626623558512117500017535165140052545161784112354129585821140068836671710500325006417368226796347234883433250487103115660626128265564268313653604606152772543740799349416938250444582826957678373234587748206630043285844598736199821529429920058341348017222645555176987556885686121516198530779561618300598979355941308583374866338857839327916068097196121329701070453549490818199887991033024841445778752548605573660070916304196793210656745220117332188875715012384951705018036762957872786778647540985983480317004534421884550590323079199297817053848019580424559098613690157596840039386753302329515645879874506007230548722856022488291823470820790169252305461053687854842749002204254482712351793970463660082870445383720049603507976006972155330955271147504688371882878895173303523691628461400626261022694187954039963943240273372123945373253998409700132704312560775535599666540286321015046703420380538533425415317048247387423848862490019021338467781900121514312468929591733292995588813169693339819227635402886007623482360506436360784925379303156640785402853469690481202631117874769067014424337325909566555327180646645353117222771046287464582897205049702155298834785853078462601821337089130174105626173442630467518076517707894119709180671632561827681090395806925067677363458437036382553901816147501859225860571482441027819951361406217525893384480812151963989080479874316393899368410899672470996113525537365680168720130009344390191805481772995527915172865104700652127605341736454000939984142312133932069513739697480769871203441232983211211831297722189573705802132101155211999253965380212434665733792523028640723593932193324943138092494035291480829148524492955795092982708044695094553714885930964080194292718154388451487807313652121008329312505468431388084795943235922932527844488206847797796678850840587395095176620741508721734915284369696512502854484001156293255706184831777705613821378339013712867524726916777800880940825855376784018386358318523541972701969579425847467928035464447972467674164792320235043871484647120179616812279362518293313561782796975751046464078312969445851497005499636580671024702794845464450623743418309299896773521277705460611815244435674025413647668451128073763182159998827145702980256409226804110804662968008409145239376514384498563265739874139358862262705689201879316763742637311872210741791899052813394064662838222432893730703476220475388257285107451548248581022534722469693970355920101426976247719442212974839165843323400371873870449905264940615563968551594093731045689685027143459674871497176427161107145367586688595487514244363945750781357653571704208722318761939142331753481739999230979029468904293672023594673027254675511434068289511885709847772501925383274225438016112698820599404812667254573001698020510261586803441345312034039716953855717432790321924375952800500603523317626397071141206738715589538807583806243623338325815967545374028928214754450227232270951548799332001823082372773531448584206845170943469613711595054975140176603683844865828095610042842288505350214177408608073009449892677661729712998373266320247560706378451743067965959531728262364453135262008085166162182628151133298176054309968049257794781778209274871082638948834756274799983073164731132295438036864109096225041007540968318223300296352530128329414418761474675322017966417358808602380653731184843177034010755710587481960390226818357650570838378204834304493869382864878322231589652580203585335564443702417513197116804594594470801051256535682625244946030703305612350770567386485886223894710005202383290592014231675863695985890595340292048427140046893363985372847804038018690287340924680798725744065220296861771688482219539331623738860933773230518781775633772180953761687476961554984874982756012339854906830423776012792469225278913169697751522924174161411449186128332999673965824772809291924597640509979703727768407062319970690561557821552067137049409085403702854195407978585538336419187013428300655268147251279929763900602853966134450139283257069123923763899138692128394536376883983242085487258032405787845083362350908209558247135006891821735526442777661157500306589909302152549764438305599108090286367614582930880095239842101484937547815088497345871215782150729788084159017253414090086091794041783618973066648436670244525215733777491375080885414764210900967311502080768559730513015344054110232640033131522353075308930457124960368347895265894768569368086230503442594694765671840154919059279661022201188296776025890986236619924222976673863339342383212161922137855632873465021967860517576343447733999849064111467633603932632716104145976575373770827215407308790872121038808331752380817120649967014983208205250391126900493574365711598551499242682397426894149091040965926668880523066131724455820854603174325273967225280019271554159615184554872754657622261244578124700456160958300654520178989381098587495390529695637832213038645047266332707372972230692872228110117804655521532422995785557058487868965135140702309871354998974333730057296735138795687908564657192786223993089874466893675443670069599399398839614377519615616293603587644736778211955979490048624671999473837462273683216377359650975830989250214320139795000685024974345843112640865178589809735989872769187309378303223903601808786629861385914245850369545720759860048763961767807622451942131086465383671668795086717298452662042049972020524490775987318938057650256112209740127508046862437570004356569269331688431234717684479363161118915699222653321539036807289886341395279588226837775009033609776755777714967754557366310090599511532397415014909611980827697045876982015791972590727730560625326415495616551407917631210639105208627311708027119600715021322869662708581642568327742252966454236433022664424228760387868405574913483784314523052901829959909693001991012387731104054438580914753903926980826174434876474998900137202634030453156569139624408066655340036839341419816059139326369059833546441137462411058500041077621779962208211884858943917696965463368210881856894470330872781982882229914035498064675610716731692712441597681146839277900507290408097546626049336918477723427722922955725090889388691415927399828485158947110182248929925062497704643359751936080214213261037389155820257994213132133439835849922857164149356762072121427674284453127486087850098830472384009724025375850605305095726306325570991448633521933834320676341560901510817951014961475128232330680438701956716527895158441326831863804458742367330877644955727396530109289426114876753768777796365142494296026627133806823677190085860369058538173134622035173993102039181213530721506372567031801481962489773728695519699303415705326679396434355994914069221094292701100449147046297974789788435590785563591650949541219214786334210492347864999601831999434835364367842001409560691722165410155250747926041491574206556108607554313215056903811026063108781269749509649127541217741895500827041368188005806172534365049360125682007242447466986309675201257528767687653550849236942323659671529153747087942093332095653326714494723954012899825424143614282832670847387617904904490737076165318979226713499914899143687188280451381130907015822323186622390242351618546822560092511179416852176291655859129597749432252647405266481680634559824669675572618804516820173868075296318185772811031616341665309486635326295144007286981681139389841044148425632979563133670093879417020169014652625452455134528969382305991188808056587437451009920017016423786208708854422859194048490374455058938782131270615498038990579535824268796852600691347410199111134245654693933422241794563774537294333529029167538356129075656734130282144188409035757853151054694045215006573171034867573849776347885308570768947115349175145852880522861794950464015933448496256340519020550817704262772171971330953781437669190339629513622599536276964943315817061732509131571499276995769016964657840308696830997346220586835608732486676964382946882229907853701170831768343474900069574899724101133560163697416066734068087223051908821978890240939704663495322138012319126433079914792807581800626240713683389613257567091585429471134691943792491542431540088249137494806936736013762121812875623956560839165867439492050197255335915460036553443249650732618283926363848547047564570559417636829532583567384447089164724702511766970070163365420224346539773813320154755686513566607471029277788968125599224193719191961251544330920375022655916838048852957810801241368802031992038856461096829770681291477557951822228246085863839118169969009212657346382038622901918456244599965507979552967120304022327641480287073377475825402150881048504091289856689213588274031679624265984150988388109734653131378186164995433199826102781586324943323057919326291231756097470074654833762483804050584650937651025195895121146460771788149052709280100137084569584579618407604864781380264809399881582743682538592717051857228733805015025557211725576172479661423760128270270507038447491342491492140482745661042775823410988676544457894019513869371009846807443852184814371926519653748567342759228832907361285293605540030533254745825231351852202424086215918831502766249607695689408580260583548271772690453291305415202994368752057769229062839678358284326854229126654700756602944799941673429980946610320472312365649417780243694971337937133789535509674257276626855590859593133738634150636991626828193241547693449049002020926744441181409000632020682967141948543398612781703560425995292539249097835628594909090232397154568796171195858715127213680510807205455465736796551247120460584591144409222567983372718536598457962509209868851952744037915178007720161930634854742604769870117693336165597231509106870294286035286282191519127794521379895987423933456935105881031201847821081081263897152549054470850521395098683865984151942894283041984244191162753045505973017059051253452033001338720336904991365629653274782496745548999564577845413473515959632675223746018001973344063278117341270611486342931702673527394121711938723023217486556180583559420370163174226007605162753919298043289863006639345348883425800237610721534015323338010760226817539296024714372658533161964895321803251408901994573473850032650142348307939153766785756015612501987991544629145251909399776420460354067300408279847508893591094659155259052899779962976695053542354063672448466902130701299479972440813065065806564192243323385575066511752953903511264119131507369500940181234949090927711550095348033773664938926189394849946294124656758113748643075761757416927182055219876290331213673734540193875458885673689601035483935010119442318362524291517655645860498094959830178391945193168718649939407178760385796197949165404137123004657223584228082976113243369197911643820269461979551301128883168945535613422261636901748623410326375627963623716489517483982616100643671868414766587688679205881741919904131202221477126086798856421459791263400897014464900422559922512317961976828869223243628661325321652477176097404565150231248419045219122059292474281104670235451332643594474114551942527164561349149604441623216637179700285460213676600402507116351414693596368691580283371857566046874219948375775604529758710781401050568900090350231099820912954114261182592799186538015991405966143455908749715357850110935487571131039110754097612401274769634749842572380826767611138228122213651146304323127561861655697485099447987400953414362299467804407902487452669951085909731742195745078065482714777545604052438754077468014320706447742257878343472140891556760075936210762715503656598095219666397867818954573439109511171850486871313481104676621923945533925583263617835721548938677342100304894343179876429096018366140681158930341764161940355312649990367544343246042111412712732139752253916051173910294715522247984544654361593156648442891965231368391924650047192346681542784033334759969384475305028495878941571048842200907820353869322821161314766837952928880620328873336204586357081766184943495831359840749249577808226337206474109858998804496970001567129559723994698623447353713700267043420182418859995461668968701453068553398706127966521507854315229154059518792107413137005514289223681518181042907565062751645352977766263477004676527382757414462002771805388421248796199613891575560495976195915824267430528693110153452232451514138310950073425905743721551728413490621548913942021911148625783520797062784495102327895576793224832448841700947233809873221039153804213372797974180887418859271100498446317655683925101112309430790995679407988019982889977469459117205470682436433832498174584947662454290675574259868915515735925503714891767384411624814089947463893745099695920088734544361910484954136509282070540759783836173300153532753250889544738196976410973043237836268701613064350335379383635991000972241611476965863762256284318367687892959435897135684472640525881416475926371627786334282111326297602933340300509362945942358125767151801708796810579729032846863499318908597476674830901720879702168783192159901183901865906567612856548848232416757220430143351001533670205377949811976856908216273291417597157070208298469030866383988046243614411880204697672727243175407251118164442911622331561751297499231967400746135162721496753233071643831230293877956620231271830138979031954646228094964337978924932404527354851733415999380398037892695574524050106162438575078219346969777063588398316630260651383926922310882268244040535693839976199412446454636743196047759493505930027174631215646169631367086174786528947352384117043339130998809028008632499402664468018009210985942372013922106650699344539789664818082648094131939208908904043803934547010497937260157944712278536789179009306312667355213215358867197904806794534359583493960748407410616380439165305087860563750589984220327601633848576201522812533320783989311000868818552815021600654697984342984379124977912942437420303139446818540154248207030139771653598433142619321412691640343540420416436168560803199715472304189105348760317023622647379693784260019176794426699497617461606563606577457933670753308305315174113599949945421233316569978213474362289837682859998145725577580357834902721344882967348188951582984147775563901438955069674434553123502727172314982237937853111900609011871264921935608133469218341614064481378512602735265491384372843503218363089926592879980667037199597377263852721086841665248139960948434382973337424190431937817491106303168776813996691748570296386231786324276561127083908792888636494265581965246782941897671014609632156109438346589745669453759668233612508147795391602635631878341919243905625809113264574842287268461157113371905979479169138137864811124728724941448986754410893856936571956139200811115927250257393917224971895963329187330987050798344117590754043726750081489530641844748060690492979863251485071128210796974457067408924081118105627981172016855400140649526789300280236543432239651986420419886285974836601444545416619583317164402913163989625491580751411227225915133682174934942828446093338522082343067534576907956273044428736754711054224097679860001652471075821523258634620805580494535345646050139676223473875644573549411258216705123041078681140808252603823380970376530228527925062457764407590953350453871589160342856376797286219425906552732162705506911631095220628245712158598354756024732361474820890079383463365946091873760716884934493021304257520060036760870819132432907261035410165889886907633918587533103025568002680867426678690365253607564456945771193977644904482999897865382446701187173428753558846769155810526939282045361944609406010594174622100327509787445539244752446717741748494627142832652706456904819996857393282972301820159216425653099031141069874429842799677403307604851947350267110861471213233863878589034707911835130458634415366790386213813525718897829224078831858959029911067331047185903591374542525892329732483997390316124081392395912049647175606116992577161509070129778974468209331221751937785422289520008771457167603544902762751054109177108511517920845102590363602369933970169475854586305208855189118294607139449546818175521184065641642463860126144984539718271439517444966568685029868926896135028165764238956803907928693535541522682337814517195345428436269189373141538345399071844410867041095399540776528830307970424176007882821433210521728657134640123793166892650351846600163671100599470836311857291730799424682106821116574947029192567984261442702649068188968114512594653220701130557214248860349021878762362593185696122758512032011366767139568419157904383586420357248495779625851647235890389066404557933646404940105678989359324208479120814222064934719655410074643845285320784898634262831955335916959294033053687389031466957454858538744427740355354992808772769229473270115802946147431104999942498745616244889897789296460126346196199384854210640921179546595356909323435522765097723970862451662819869780013627260915003181094493666116357000525189982942615168138739317556512295482670126195126244284934622797710614300700984490773931492958215589701785391038314841845901675196617910154074453742278448105535256272016290853373495691685799471706484398317802071199133969518070042965256677082456370333716550327612312988715994818505254293275694388554362083655753095345842176218923047918801160171041560986826368366556928254567098434384594657581555109164096837400791339530461018593859601322872150026193444537851834785429052445513846907504628202498963184952786542124232012309935656949975813677525890601068636414765599554404783689386287536393837517762808294487438079575354397003146612883331090478905364421879273095141124964963969469784416407621210238238391793925432012733260865501213795030765608707751508905825499990818202969910774540792958876055126265108586206083785331297208077773152835362682020867958311968877411251216851688400495556170492107006695537874869152824745816278783406443083421697492744944875347405905737105397173849416964012873402257398491354708583822700052689559939234225923683201237813452748256260406058794641894247038747594783762916547681703568578524928153838472449277697898658845307061512135551927338939598905279857066575512344269138584519135815199917417807289068587286881231182940170278651265643387244763254010686241458239457501353096016719855264027332615937673180284701214137197141211862343628961624976684544235872468955512295612887646722697498663154104922651434918867458103271698836164687943680128233408632015596259824209753552397266869546360489149974513151521103542742882043995054784949755299781148226347850006380560865698182170317854553996061650610111844195565152278957319205944779999160989985130493843121791804950145711762581120892512581780723555273534773443415959655441080846234324612675461113235282625665601286321133576955415606203562758042813211325945197239722493992903176174258056087232818739798672870384567919629208266001689030875149314739247468184669109402985977840773078798769532890655028197515804677097752993248877021671417881942870570697724070332644486313136786734444779425986026145387822893197277552395819774698330234821124211136628596476044812948720947523190888718449702485972612115550244410001160191694619666580872925660372234626250109670589589579234418397873865441620458809053067095534018352567974696905751364733083277873931013801780374479230863047208571207782525002059216537251147305748301321693864144725500998406884525845753487902209171186229042023545816927749050636920325296213894226744236121084806899061505949623317976689471328514180981505900819462841920354769279238848492078245560147377868747613312679494883224066753367963814742679710097909192205889274255931541606606245053135524586395637753450804427289556756798832231410055105680640320873968133642122318163996327247497295621191408469238396256299251591637866848265113462382773318244209586258397672272559111564774515248071559814826717744448912295595259117913601708700724070979931084139815800396261044694998149453607511790736999874627296383803712021219264238220501839861035638859763524866791589064597137558382841040679880965802444131762854714964585475989804876574358693632717566912782768035006108174006691338353844410976773453484359805609206417944901017601182978234141556277766438164168313430333714770400504484795015461895751045949708498696374148475457717863888565518253178303344796814741320026737007491584720881861356458164423045513308939966455391551542453707007417407667025663112867299168249296637397271244618705587518430094579950596293585525942763740520598272352283789440262280823815666409706685028549404896085758002264542202262106958055520864985312022149007708181729258234158420903688031591155328516362928359471669776220170981662336157081428078444611653015715010618593714247187670066251059672872654301180148386128861567088506355125783656356979401551634463828442483207951279500261984606131228866704444179076893416885252778879750180007332371435694875374513901757853941443869609952702998799626096216991118704845285411714020409488061203682586988581228640290440428300189360927863381729920879957575639000573665558414191233721333523142632463513395858296595914743857449572969551810468744135996850622500125983247052202488028386400538290608253625889655180033464648200463975825808431916972743215569971599054578596537660046537239897817415081186558098865354975209559037026144300258952090609942821384658756226759758801908556706928071876331409263922891672870636247847399988613830220691680501586457076322718890277107731003832869596407168326067392110035792678612067569691180688308218400932434814802461700168560132233827016370594644467564998600380151401658746120168569558984909430793524838736529912879830033595482185001422123895100849099804796196766402585190292785674918086827163001257939650546782685584521815638876892497106178548779432053316741633506520865961825813635093282628712107943575979441975486848342875159134454334048414326906188152440459165431286013011370506105352755506173623837631957780917529379348868293161973956313302287412272310859847953043267082220165296200835516777366662870591099272855262057178781919806488277893838234659321596170649659423622371032936436733927585632685874252458738226074110498402888726444547209163720047272985380789849251332130457434198813821450944551451117391405672034679476689892238641080839302828748769387357185006316360468188545265775799594858372429018720159623063804991417837720073895569537216420665546713501493102747416873288669109407811368711235708092040640200055672973080545784602628159248941900353058391469351271223529683331360126918116065234276298196586081865373017762364172671569421721167581974288563480811881129739491564119304797043109554673387957656029691797099739686454067695636665517352872299020641425739897586980896329726209747897077422952809219687558305846970283283741415769791044945184673818621034369462839957925456074477771334124328969981023489156282042100121085381075847399338338767373309635586086230788419144900596041248684516454982904220154298374226595131427090842943524280628901629482789393574456459372907060018095890315051497004457224155713682302067907713902855062603547690175501350493639362180429016220476579281814014782337579373826124842081166084916736639922432806983640194993881013779393066988651220327553924596526916975930689084314784454281708772909524348658828578663061943785551669175943100284936095453993352449825303972635429527381937023707821711237607314289411902671127726937796676374107114743335098773021852938428699373756345670917976195299848611306730215343872430636863280660126664175235674286567588108820688861755248754386745614304087450514525514140349464231822747503759570033953696549144392681914785446698410993177544980411696140869541720152763184067281353171839493491254778208560737676504070038383935972275423403497581087713497351839641209726957648929537116221577111821235019496122649679149814928330403636147019049207226824712092496948046140964344073657790419815136485361347321353831338726752348812892959800564635603005856872233449745558331248014853183229928368813835128297771203880515885036037490360757262967474162450068530335530777941584465603647549854646394140330362765115512082351644349043448606738494484855594437179409873453441924673224209897014717058491088541029898407149128262417771090321717206704843500899404574245261144993906246305134780443565518836603708867880232861700644725170678680723549533665383633936865742358464076647177453584345095463819253851092023896479185070510630363331897354773746415887986848156700524058829691863961431258213612858198712592956634336005902118396116356677882956923153408034292679594218382958082022338537259547404304249838217149724912612139798706736218041087872830710201595778119376763248621090690317065354668456863529436770167206885906352664753165948806096572255457854471079865029956306037569434159734492334938476913617094950136061158047146139659012823036501145533443103412241167960853302016833098609774303890128642415178881612284874652870498314753741261953413360273476668700822479349150741892120748526310281645203756189506589511781777396792937157663874421950936256793040121399500100942533682358414406564447804310204512297834619691257262333212777678995045313384460050521731821663143732614667690674178300039570717468278800178139879366712992187037959686715116205144241179308778804832476351276005331661755756026549699718047980030686118564351292855502773799160764141995856797202673977787098809065269300027027497670808424325420546617467344314561893456571795897408069908858767554920545914602267636643732382141828143928427642179977795654580676451897578259680914027894660257859461254369845541944941116688528048412539718812397943841911891181975449874177699925623769398705335441158636964081471070125431576448630762549220856051653346987473762710684791778973529762763622922237000030156266748464069638889274614176529069754061941719662923074606719294530768721272271097747783841129605483205182685202299833240286740903360254825664019490334911436305012513321413598739179278571150887131682708768636419674200234199058692660236303449399938247616130615191956075297984291410134446397279585386985123026173243737159400947669375174257306986894203355047448056041383918230895092021339349725970272391395973917383250989522154738671943970991379453005631876435859986084004557889005207641466573371938800354497069044393765348863399238140969741854205473117846067842744945022945225223047114815848477391403811585562559478279904158106394652061185562347036349767108687498155065876447835977657343041294375880181050485008476190711834534534018308300868975945801376504417677023689120301924414167900445264593091441800104658656618136516124124353475528373270818742299040578199077207032123505114041999150366908139966196961252012892247726487157291926909937208936476291270458378058099975926197100091934005612870954325581721415886579980179122796780268420294773318545193939797088673453320819102728428893176147872183447005512110748479759212981199502024788007299880455283888950929447538360482919247487654731944126265321189801278926192979287921092974399237713394054636979813943760714427140199899924071629974581008250981657536705983941766131097721263032389112316441960603800364067200767613071766961381159122150897109159355800745607596307456369123588518512063707598621977524857316739616539979431998742818654273277553667125253774864386031206148572466479220075529975032904464244396995491780527410837514392770393634240434992115957488607071336870188493321742773441867562565131390883708118109203697095748660908736152866700975548026192750749231078052065580121582355516063768520307805749693143746353367472612675965010296570059710461986031297507248074640692449421368071559877991330557002853088301182076533110091307238984137591949103226249629395913694794458706005850844564540175029609647607735853157341424598361487597114117904170128181144791032271957370910448244183621686774982716218968660893906270473086384699262861794519311369681314347665508020133437476473291014770930886519309577300033298560624274909057552957364940884736862631600858478955014529133214673240217902767090401220761854058412479755098748718091433836929910427325272959236178897701141905830301779338383077198344683877868906774486860778773849743024746678672073193379476528092519457740486304559414523491530045601468636175420634934808275681479656453974030008826029026951337060232967723659778415443284274494448539424576788843646906652815161002592289255710895497496639805249771513971510530883746755136152109639874519112075495289337224057041509009876035738783140071108374106913090572715485476056768495980008210701570607143159536112405026249909357687877882270868669230759918793574086261910903528097123108759752566781804500107712500772501545331820849453695514058667669801189266580461940229046022981346674449849709128985523170106276625181578777754173853153255946044736336636972264751859918249262889441500297955706830563292395958188643694912685531451061196893588699488613393986102158531652743893603827180200779463494595224152289879561113092819384322932416156911426199136646588497849916167448374429704599401753066082429610216780829570445809243433430469417786073015456447954116341996525362164873064516922494003413096523843094999710551404856493038479908689867402561896765549387905775176048314911728043156427757929692750635930028431739919169214028746378176641692655144839110488040459781290670785488785005866535345320154629305190698341668398828929239957193377812297677135232064732713871978310702101822224478513495761821179727807849298772159575779625133759707190288976589991662221341857497067936107008712342395566859505749396994735754759180070974553441751659526859192749457675449705932362384033767843204366923478332387473529015619483094973057684280053149226940625821581689943602015518254978795875851600984171271059748379396709954426815078253027260790467938239395478709825611568350596777548009958264247168348959696160924405109016880602018342956464196455685820229269135420110000961314281455226876984352757166406404519365632421784450784057680815625898837717533905464956053389124054441276915264249420709128804092731210509986450489840520771786177087292207608835833489802767572003769578602275274435421534638761640651691205822901982585726224049672139848615357801202384244191937143925783223674251100324884478592154707050164396933621720236225964990391378250009210174881966003192135490599917892770975181129638010352134764067112125506062370736726345123000930648625306973378180346237754905774868561042664560438770352446347288024774874954467522865731545125352075973853122409814508275286855814921588399266644126953926782533323519592767499970593483116970481170053727639106666214915823479856639168964771705790361573545001889075341221196079299917391102975985372166348449552200434088469700301746785844856231724449938371506501201501073385749913031052296246557642929286332240941358689735277700324247844291336591240273364141300928506664653340574999980182495567677714146771592105643540708821984105954901537627192999443771872696929252551781364539803805897007805316120700182446503184778604143922692118597851162291032787237615206802830154679550863649987582389667141341818192055785548760418953986951545104971077513004765349851210358629391632238933567515916316921849869126944502428516266591998080672607232315615892474504234463749064730105128047379789153852535089389335828230195351670077225460287075673842447026425010613432846979774466585433474192910209410946141662809151574762720023195963530986850657820127889656186461207780613715780348825120280312593505482079081656545249387496585412104797968058055849107573940271227129711532856894070278132939676733483822630791302957197301022161879879845158790089482632952435794468700073675924018954412574464742439090428586940700260331824281479226046681158267745159681649847536721854146866819354336699770367149819514900985380481124148447946097401652022801846457464530532727810269197144051214711228019555124584305169671154686101369200501700973063666462668615794858509627860574751437876831446997867535738068250848898902379170243982581900334749619776571983078890218334822085592585535229377220809923777555933201757574659131298463560796024203327550480419515213727531531838055693605456886582718566132451103932513483579910637648256934063187821668520390943133159352991437808392153905554907322403318198820827660885501686044669456729757804380699673007960484770575860578509568326044160656697521084718362957685239250522722103961161356249898405443252170250758822156363138603113786981541461353907672986652306078829087977877982938620614859537360385346254155693481392438270611884082010411631310862766104411838214034762771560354121143746824786906251579405662935366296821854807055468315789669193103176925027406340356861721621686650095329075203737529449196531917448956820421419370367469083609652729872590636636324039359886598972184257016496861876670461184301776098812035596417910466388902869310186048558241756608025341199210145127828947672368390634199170701305431438153012048887958070268182912344262297784045329720037058794255802682155422621150505292546324374370845632848181358656010065647889951589849398042587267223964995052976112667726211990425286228386100715832161324322974118755928483741821385560545954819221274381924443876134881480768286875359943422583582735682403156307301458632018470420207748031215491848766833348220039127965120909604231287927651179909858088837802912499747224743828797581123504992611622571150281878093673401875735465969783180430340658991041006297983171568154278231377705683654892910966954374035761835409404222922637447422891448349558325527789123632187809592626069246790968731889835787616870520144413046512661860646386860211393606917441623652709153030040065931142735694846919083648610971445943019804148401242807716758151460018868558529091631878573759988581693778831031170385052576320172179391222120366913027832959169103372692941481378575010481937432816910971506309951619749688684338427969882484954500109349330747179023562262017775338514132009502454936487378693787454727750798287132249015711951534604918871308062876367282178549319026241014197753184752709026545344044228453054517270465162192955069555024745892385074613167703960944696084790467000616101004417588822363930560201083308440997753080789201018717740156470470943273416213757692724169111158004601842478211145640152516902952579024415905939029697394697444082820777779361614964852491626516202022980214749484165981826611000615624590975097294538243180754374443435865979826718280572523680698275454694823092716898426054100249007619838292221858514724093327568106825024531373693943237342776665735500303895499965261370533659796862695351494289237696627858665917831925355085763555147249264578226500981746412641135479528803487184797738068601324341427221305630068979026428411010984589700625071776332115441102299898591257633427704758468235306358262645332401304683918255516571614038229754208239792425314173399541012336771188528305143080741934308204249834442548848088695444465875330212846697702022352604674397609918135742332349912419877807138928850800630184881880274416430190825673626896787211141603891272248493864758864175636484577919207699468173548822282768375632720052726010380763182362789713923381209220241439679125527693694756791416259615049455057025469441457238382866424821721429325513683137996598904809316235998564433281289466471596367785928313485413525144561142384407994104123876659919646832051954121874827730613861898644302381208345135230637210556693859465098480750393954789371464327508500799854097867771552341066345477884098110733356141872425320838607974741209710170498284085363041614535952944607316958489020983425514021685420709438796515736047276825166161846488347627584388343495580716880627978430465039359777213048880036532339443977791745869466509065058203802304895945937258469153160474812954174646668555542857299037324119078800393172298420793852081979503309709770821458533254436298020179232819987154085067866951488348420170724203072360479550914038846078421383731567530300701210004814774945165467365493743244626753269152519684037045329110233797327092107431356798382412926794622239933680839162556089878693108058730351663591594549090361770292899774368762498008924643160698601179687290087387982737187671948445318422141182721348005616620302233762203142121687786276655000235236947936249982934034957070277008513367459180958131476136081483321666856999383467910041575623279588120503552349799695256867660421237500978641090737143591183237558822828279763388439977205900719911566851403318699171866244261355192589341353868509642865092519585735343668041601722314787377603777183133398247151847168972801242744579335501205916972683970435957888299252445527858116398042893684746407287332241416049758350835649599767153672400256023471117199795744774985578995196660165818321070959232255472085375532020872221543322807718065449030437332928859355117597092501974998220542711497862213892706698088945646603140263523613990318247534087340762523326006264843924506688156862720461764089808620491713627629835995675210369799231963622969795322769401377649258868359742893601900622007981935644748583513381808459117051179544918808158010548049112123436393296094608676489445227697182671037717641473408727045637411832402033048282336779559069268813488245245824861140442527607333950993057799789243545555145034215026807939804565502384219899221053120179447269481401080183746714290943431299249494440904618206923359162902814832216348302744773696267919362457903167731099293982358863565638556871119051643939642395798500803400983152075249572201071063210957430129245914112471789935887667403092025780982313786027320133509734583231216838137105216741886184049845005130597381816747371931945164742698601158446964888786669338810314964413798210697131568853992034617445376695778207019661945150238837060071779528213262417873488386994349043238553005901458347313750469756395253055110182091730496488303969731080466400921634096352887738416033424076312233032242017357068444400989028774576785737069161881577546309324568883454802682518252832787183735049993381204500170757491345203955022454224520980376581750399006310861276412343206798499880305320823455335291645883664822863604792110562501145887182395843110551577950868565669493659948511466954174904149164043210115178513117775556315089065237889592917600266861658923052049972216424134472691130405383338354693552497935857732662340588041965811570472004223867206310716199974215729680180512652300776151447486732655156105531676658318198509543736246085302086681523784936109887183554774616744619995268451795929825577148189823742019619495529369444929094094599903813525319787762817984157631984908478685276863857529391702410788938738888358628650053766980445372707329799812749066394050521789563722083203856178165158523554493074667457990270108693149674616339429297016630038458388007477028233065918647479602382571085655966661835452437468442428009785537079694870044135549722496262446875473767300899163659520422086523899168666883679427439375535882132089030578620737512969663809074982219568093896213578863102708485029167851261775558916351824509867883935255781072730473054452908854668758247174926040891934856191941044774728759792915701695431814824132576144531228637763642493672264887087372318482783172964980088627618625854216381753662055955061101095001531596995317670748328547015617918744370502599060039351107579763770016245094115753162386253277638378456521082508583742334029571484006217124107265519525830926486731527394215865645416130599575895799925749230590669227047068832233402169594744132013460654624563838824493188658251172699278782612707759009776024974740876778145198717248796061238620831006289561084562698345395759079647971364245852298125518208767725048658524824530984880857165681591906324024452814522284756050600097937365999961380479160353929551759138782135227796902648972654221144372206822334490116084269663724327028830865870140665571548029096307963123171227868007880508572086327641458133049511873917333442601481287142302484602052551527779758856793813927685894374591513920064175721844090366699702111885206873326704743337765139178750186985896492731271970581993736816067872636184206341589376990807462747128375834571411052482127356336652027464355820498996832827311652899997040334888446983053824845847486138223837059036704518750936499022561713415212565899227010968302375961880461277298532818081704725339069449000232558318570629063729744534717887339365450980428468753247469227009310272877492349835322216300555307071856973951642342012237297272541151072252017042127132814672049673593394561520216948062818444582775484410923702217757383881230956414549714846514372675056111781357007107056381576353469409290092191863856799564736745676427179657476244765260288864927083299732440458544127256361296333462483854394213210174546308544768754753848774068771354923902392810523134892211957621912589669926987385403389035506718548303815767972615177771852744282219169752163571123016266526910070959898465769838290675590220967183602841102676102722527678323153704119999742809447236694115318583529947640085800430327635546767037698729731390835190945320789858753843385133533883165077714527085372052860663112057924897155660989482263294552526925885030079673186205009693924826669290957142847614989683376309527961982272803904698495747499388460814197554705033234197199749262129380530351998632821574326491293557019518265653786157055591828670766453660221459284432217691226237093435937242207239603409226579268053329892979410281906236781515387764055229999884327562459571614280758688437476965125586718499886994602119997000651631717935018367166550098935585241992961210833498216748064579669139895118779998179655943095495326193087435288644515090016415415673375045153847029739161010433767255856614814266784493914576110028886165020932007659508200860820783581507044358710112696842135510755944138397781411879966794739065416207666248418777029190090510548738100315926059025919540301496277686260394376920786122228325252951600523471793952790112039904078553147303403546350132607618024039635922527648085982426413337577977769751655849044375792293216900337216166383360417770418158515366718377461936884169963822458334949410935660566445809598029392378587905639372024464198163431496050347600009374158140949684744206420612767187585157689414254528504831039332474050521129792224487370292077317818630963487865972834823844086992199354907855939058158349563148417021562368165056333906943889557171545232954717116743405483323766207077387351790673319222987678618198234359212225663591147750936866046406163283403265223613378298166830494451956974341073640105516519151240114102161446716826138531737724821064193445462038713273853420864348622137728055101111713170238228513484679298800268359473655965113371356402163523488191835111071248414028362894966052416012703996606888900810088957114855394846420788067340717804535368111471361995054922832011196801354885701969086009816560396949929362048091359065273132340102582237463408160342670947361011725099588928091770563589386237662429654122405308641762422837561777729492989549175254669958177668379123546974040136409479829653326989207647311298796800543275642424135169406788791986408727374661884013450835225595313893030676606909667700455283774274516212010100540579250743828023468568597938437708495710762776487672362466363460629369042661696635934743666745294986071585638845137073945095933196410817303079582047631571093219169509830874619835186436134472785311010514365761729286179410968095725158228469996378297424154866577002677704528285414519141003877212519109267031741597594124899675413148651115422191409451573398709473942983048326491582266554447611117345876284735692759296787480342028769431572856538622388366367158659834111486450400712072875409662939631137540191498868141916339261132552526283025561283308659467838761738808327327519396904530406726580413741937273422769572071340954596436114088208713478072275299592956126459711423806481409871532182928673324013334606781628268576151280767228156140431023491550620629774967389544908011207200647767172269691921079102904049106560667037783313740913151226220174000472765338918495390716658207327121076188288017994619573596629660748698752563212485353086056202426121747467989262154609271400171608727596272174643906642731458871729355104598800699661953205985378837674227156449194237664223532363065965214512595114960204986812255204089145826799246244009194966790046284276790108879069699481199216191168694062688942989726258990515444498504052854808243249587804425561439362511402170721323894182172398846026949382192695517775380051491174882216859550447614359740776949100567420292454825345122645116803184349374672026551749599641462780126029113616063400036514961482829671051371033068914510064154525778912647611579286452462558491689135577530811662558881981188908167455624101149358018657085200423970143464219828087506012880051308804475138043061716118832157497711272245403644312990295402957074386614848653723061673920007045624641857427090800838677738100246214718276006130444140577125295599998408541002403543169522795869342683469431145338581190391989871387822874894591321421900542512701906167995797889488046947051057659561457872342824646635689785821447291330042493660259576373360659732720853148991372609531784019999448696066285284027187146348301387963098394942303944312184854312315952503563350494929900083061659226913721254280589673399489492591519380302854847049563475006580205991514027320561305906168444049166663686729098047924956003332430598985614570869099260776664329297836536512354640722774551847565795420761644338012847752701889525035623012809322294320135279923070431397076177468654137117212886849173475311671858086521770162807830894515677944496520697260281400183867904286055528609005811477219551560286549996389877225375288080405535413316363491827298273951256806390968293873211282790166015584202644679836611816279563866550414706556987464152287553077251548225395266674869234572821185816438721088642999313534090367239019694644380597427107596031834879365708987225654994183049374475403504399405394443686952165112974038135780080502176863393545341131205398197482330311215553549991533129844145153682159065729883016096023215579299003344529516660610460539969174096994726856979576600571930359661199938234101371286740260770067844147575750598791780513391691602047245579150463943728331371412538239660373240886675600371997243638052050766981832173269601575299694171924477476472624849852103335723662862889628782561090377234630551923436303510936132425488615587594237041689168913503567349145850911871619978964411610254812620999448660139471306263839172176289275426322717999189558939655954145377815096992045666005978403671535721475895233868209142109613653143134706151795178425141505749480293041670139619841935690836448624553497602948281964087265256142824871856752642219994543635170370134650534981939094583881859355647937853612403238980805614436909952987172054992832912058320212199822604393989777988003536359858771466482920105942665612972278254633686505646212685569132370406291745693467232555966528277770880101630931456990477645864739615375271095227177469241387531352580840803290976377302771242878495885182803091736916809575566025600776015855682486729317128992540911964882224835464060394722776416621547900973456455827809582490010116771228831004119596130022217134220586569609002830618757045832352422103822318946859062076821870706767404353865495628059131332200614364960854370161009117098414595988724185643963151878073339072140612287371590975231608193909467423754161768353261560954551471578089019144216788148538593228748822213535940948425510982593273903160465724507395379828158692661960010062419167257377064262738304943814994009893434527094336559627888338486021151899166932361436079530748892544810985680724555729034157853936499729980275922189262990846826010301341036725987328190696822527113988525013453459840741875653880608421450373084214834556411531804676510145271377279950033956995441227752304783067396286420100746967583491594827691680044983378181609203688343374686094709231097136226869081411538854117751589904361174087927277894409366299509898471941405709305348713393122563368581718946255957711153984046253390459226326916527311731233899385144199913290057220763560933830425192753014194306298392634204457773009330886583629005330284202430504044214230444295289305594000450831670903290964803027986400276986026308746780965203228356963461167281294463323687488666382302918362009295006176559136499133798506269236226692845457106682826746974405247981591409344654143509602586850957190949746718891592017421440930799108145802678899316887066593164435411755451405921776961057248840740571771340058324143974537283852795911568274379461434524760004328203280408201480620671808625319933873322299033257613991672167255826467548362101758304376104023411677157010115636778657608593134877919107136048549243133609117784725991608335961704755699971402081792643375918088767452804214836293662849519917316625949750449909649454591990975003876332688639864009401209567311568306495226385436640320262327047396040687999997244475432200885990224746309791662337567897026605593772339826910333463758352954819049804675792009264210217294726483646276739957544340348782837016750411331964152614449771672608537635130262305410362475482699740274053403544652553976063711649743174200312340987522862371002126828047795422683536160494898300564921267504224673155455267043722168097380373019047575403089052187645406097136712860941119164341315673390088759694011780552100650656444003333336896056555320724477923175530247535576251777158638648377872655968443307392371377352130933210543780786245904465996168346345477508990786911445290537367065585795407217783899154112639825301448584004273727369567492141697865816816768584606774144136804062729099103395220480334909324540540310623222614459472153110597683516210212710773394752279585012578420497070675272572909898561820824044642803136144493509078357881262355542823520097903766187453737198581722962493717535842050984964602718457095246745230199576612804338549988794139611261362722296462500766622965168039051061773838301415324366876535867851156935261536490673657000723463564493760460319341777380613095942720025109942484102168733283526351078582278951082472221107655431171660727175639887969423426320316751463208972754219265755320183114143564445768421402826229162060670873154631372509535402444236350748507551211469067955568963390949766169840472351598294268511228742784897030436322454511931757355825442307493524700668376128413882917307629007448389083542887351475631958166660229908522875214712837813930948715699223828718663820577214411112726378244166205629191724343067857521281500657472318426311086391692094847799551755446945218026094913488097637363771903369148741476131120942466567991669807100214695636209779114541904145157834019240387330567124264262795268163250151016678730502183457577920968573160968059359816283112116619562552616652244091271852204080014588464319922893193256734899954939968715190611518252728127558522587011063053617347309344037330332522737471123957860719962579696790724593464171456599974087697885913349867030401068222259838884150526251243941411704378260333227189481064581472065206376665092599935353715178253109833445051191217385365665609570759957192772096156199767437859545918530620690381428984839168615162881552304809364114390296602014240731837078520087010851748600118053505306577931422164565789532834711470215251889098081531059838885575181370443266156296480636687804507970027136913302432796277894970968517081458789917999576783803448881767356400558012768651021584050004259194744811813373229478532801694264788168067892841042501439090534132757917080289603100400815816448874123190113398418000121368235174942326443288999061599345068243908306506432361535256965691764651485664436706303432204558590730601829868558619637080831515566720634707106341140210152292866731727490135021481931369992713999476845398421350711746954913542584866233053002027837229503335516395894305478952225565316212473962219610720160857869726515868675378529728367892990059748586904455361760202368829958615359563846823405423484299031652741650134974004423779238745089903277201300785528281617821690891565115080274847192268161145414680944085693048138343575245042953067136298602332835842468504527190342110590259383337400004602555433155141005222458214158663315893841705092548048746849934044529024976922929815217217770254850614748455382183357602067837626280543310176273015479471877581389160111276039501201637643769478541688426104675055393647398602323535603152663864478060758342944061701253186524289451738121098123484824494274870673125174050130382177940600335694392897306440109633559621227600283420616532578805944054276857063132879231561895585691247488274120198062669325449855959772279281969033520257534955350048433320293606922627063707593490175874570051885617256691923011510936269057693963664172974585835454810700338670054126511237639240934897307113802486165495057844588715441001398145645065254865255474374987191084948747969413342353367275149862467179183158107221764286847244739290251777798469228430758469644162572045444749148193637520636420878889060258114847004208410786501690891985507598504437771715012701337890506321963302958364905770985680670238694135600423606821792494372816423830759434307307355168500634395182534238389556041408323396910861050995233003479994850692857793026156546048606372421754103383428379440116626876917344057260658257636976310787144996579898014149615704318699746552301770932617869710344459340932414600560063583193295008802175976486590153539567407205511793294935354423148059995438663727016431893498777975962799268770778344581187039532441084124396278471820671226747233297292260934457363038214466871521778185363235820552675020926626735674527587470481197921189427958788225977814198083149722508303254560110817206872141171115589196598575445566191993455839326319542072795557611664930832599940001039920831367458207138799140483829529560446378503946513133682892185795779400839005374663786411305984376806990009792053473020327253481408609530808179976894683698642889014018266815287590029136700813104867392609161912300455680971436735348957958314072753655091032195222097356548651095177677833765248286827647683460287842787834425872884502811312958398584535481740859268439652952476425360909593543145382894331059604749980978315776253786315439903274514903431960059156427173153505468862543448121795121874781132020283955085543820105015862945863929165914889430940295918530715219858482793563014393692082835538941667074947898300382723476882249221861494778778133761374842889591114373914267572281898529177630657684337488641601938978204108244202432495417107312661389387769676716619709223846274953454218686651051337683517320956285980211815113049795529577395283188331059106204007760355577662540684033910196200378717275805755086864192867132828987469517672571516189168785241334977427825115197263723600242202441867310438246486330187192298811259675968606909739205849953123001711428291822084213012918037617750068986350340558235174991745586048511009817836649858414080664808532125646055096656832029692714066326140203349742251628976027034601986396340435297390532866325663595214274114581140972553427590409506452913261994426620255098070205686017303706475865056080137434712379146863063525700401506485645073310659623674973093696104764567166529209099991942088732279045323769839083433623938149455405413073229505756490182465632294817019180521680472515315728735461319793085413071084489169101454506227145882730008068691189500992539075402474542104761836095501488917847577468357432055880240903600745236854579804851234520070847049508806833091659941746480212494439267170566672789701315081746915559527228880957598780353012016023884833543453229520994925979686635139220267760386275647204728698860491818843621657368394281291038557914602189247181153583154688080115976700027330968616737587402566448924267211155261054730115112438766786087395512982435616425413700899593563873756674412306395607123494598772046611135027449324817419734855462646670734353614778857288407418624607926653870949230606686677531020686319542438424799699726249863343651922128077469540204562516178295565658826810801779157603293138269562610841089454966108647283704321839412170231255533059452724943701233023254590676426242165238011041130413506280995800903101698981841909568253519004371210925413407242942714290780335203292437983075633474229237183900973728711482809619071753826612985995283213893259631833883697057522222510029933745881068144185083180173679567655956173549854084278645116628097119713548381269707266046025623046551068908496916423993735737869155840595286387946728410149354014694205250398250479211716369989075180574329481449895324630633681735263376885526923892176650202198261131358197002105384707103001030403816655781457539479695664014169327560338815247038471393261411654043617166894781509978361719697924504879509196477820213459829070771807081718968763708449770188900358327971860051458884844631545531050741570154153971026567037486119579141382780322033073591193807706647953877963725619279930313030713617659019065932182901133910605904867649628485449863743358495246840440989042670700136530406796893976200665220971498503563986947028228445999504039440742043473571809464592787332417675441170693440432065541637514732820968855099751838771121487266853375069551961398393282927061699479941690140749365025390636412044458174948333667457836199995963621416181388748356545543063812087917133341839838283928919305484663196695354065000306019450564820486992949697014333172079195519394322345281334768568444333759053715450734721958077128006696579990832863344968179228964478553064651712242879910399708550774129859848112509892637389175353346794219639875999900307662401801590598807360343578340691072280431994349145685055973299287360487575428063466541844404462371098381973905526548488986549684800306303219700930545843751489278490190573304932990724119019074672946769589215687377561924493013362191377266077215923205151201006771619885232316627597421386676895535850591243567510581463732959683310494701615965340199690716319774117519839727485301720264533627917966345856727764090479286318335232476150917838415542472652187441873502863175104089164023726409134425066215812258734086170097965463343852566242378327319565633726028923248991808690686194819343685787571614560577169391607147934049604213127916198178075133719158182496592530117295232106188298534229461254809082979810579314191991062348687640921670815243385691247194099920569421851726434177054609052765645740570811201130933135702773917671255126200476528626104961807052582141050392325202399835754027665158312934840301772194586954502707040585334633998117163880850290790179175256148877636581906506430991806098531455280925823430777817215586074261708828178778119052963222564334729872870506850920185437087626036739453101799982196270889735633506431798619680346460255609781617820289388210386067036763745561998437996904772036969506233855890975051264810776151697555158961200839303249503234646743467380174193562269178313111819117978856935938980669134248892845178169338697316949260901272356034923204973868777967747925643926074400243471249882276071566490787116737638300120509189293403153316686139033962233074030555318760688799297340084761278130007308968185926421454414535853958696125017622427466904928336363493380331341874379391890293937182284754685595713705509733789378151050201872865790287496652913696952391258897590509824308556153768462131920383488954162243677348345637994699012748994524465735016501309369773018466978167872982716883213482976209887037417635917534676334049353017109814769504864227644571609430597423010430157821281082917312940543234680467174589837846347750463114374502944977724136682429218848264351551161845367708831471643752151122400221934978077878331347597629423723609429216776927687937866622297704279412699809132219489254458052388281720789082926436993456169177849627155573304810786636840582736336888354394154707873416724402590719188531237088803114103442853215473745653289237641931455099017208269378476379467091670404453447232229094654708447138067347202765872887547198018732899699754319328470519301296593897571482701447796218396249325299082720259272682854533007114792246878582592303857450169482183362907417993995113051308164513013041545304037394118052961652253426166979275787144491758730117732365980256598156187345993307235736095015855521230936101943031983224459414433976458239843684554647311172807112044658188590196035361412387260444524144159735479873687532362975232777023583630392789899873180891018612024668944879450708660163241704367654585215939576590217756785407526511559437710464832372568830665450322616761978143396007078562545534642817018984146063956759712298485499284226015581074577054338644712106208350133831145361649656643211579184227493678926498369604322600072858949327500732020789346896120302157226707484474354200476910296334918806743329800745792409433352328504238703531991028886837289153180609172624666720566543678596419377363602094103429462246464598906277092632821070390339077024953712869417312142638350427050127997048881791053154371959995939508649656537276727914085727102527825641991228303799165575526860318615579293798830417481267050843571980661367465679777657729581804330249989482657094137291274333507254466660642125190148512530440918565827938508426857530236523830780945560215104448607080694800271406259563398808809929890377860491751613984411388231487084229921295335856654875602077315003876206518135734378336448094867222696402066562619029486748077170403019901073619972048868848442346421572160762487373147455286988212284958137026085680919555378780875389486177008676477926433763192227765979428663204776138332058662112470689389557085774596709220763529038723204410817465204777928811522341716764191148988790151016852307387224721023490709131418594278893228833352788187143616250640385283285651426699196752568993149401793903122022078633897160070812925513933756072464098841919450268164612704722507590185072971507590243295832968787299169029523523603245188638895942340399204468597378058702212104546478534393104327814895054948988807677603495331774147708672292396363784840742355846073455987807407707077251613393807849005608859169275213633937181238691812846678641232484373408254129276184056758302354764397044917753279130636654597230125281297122667902873371631403769635869645135818804826189998842646645742023471021906393118409958884048544368140365897650027797240532717507248690590020322032154673624792362695509693429172491665311063829187485929966209368622895764855415033900934717822352992723180500891682934812146702115274255457475729338439624526261704262098153326884197003213416883683382350726798420447879564645547795345655328910784164104021911794442898155339165845091158130537618161688278851528336610339047489673510974423786702904586001903283444269917267805164557934274575011757909837157587085855942379206872048505127371584835333368357316129656038784148999505105456461408547403214844046750423790260006592961610383946684591015788323572267038604145876712786412675713947662666816111985730708386734259810205615618422642916230659087557597531184215235633067250219404451470941140741207798316572824609641555817306064896812842228833410407856003149347535819400082452891895170156029709140273619752676088500626747426397715278224098610307665378340976671888743714235073607285011284845417310539624272044271812314099507682912718102630339405293837996484153525097471332459491886417574171213626793987460628113327591594981427382599704899979530977232184871038744981948132763711303572669739929698875459032233895503732634315055036160324034107590350820820002539910093089543107650727655644951706269122579652301507084119703214418248603778453723541061327029203886439643942514311745098787538596304569793628968625397736598585063424667638940616800586461243335778765958165383186601675914799779710883625514864053974360998452843209297736979749021610187480374293638202972200737874239823252691022370417599491937428296005544438382989725784085507336776430457748831999430632738979659587737552169377599705018148893715357724173439824519016867659398282547233812257742156611241160709943548715320764174482805857154099278081261112528958999965991605116233357438746168517725080842396175062066696778736584153955738238621945439143070131172638949466141323013001981034340935398805273507628399341491597286981865524088720852047995417357410876318035418352015751174897751570761839712546118007427762325030142160627421379732018421743370074383624460144771677032516045274065511204253866952041425242675736624255926917338056815504217330710739453992501427703856777012628875178633341402235423649139628553866985061404218216000902952731866089158921639644327794334672110764140694789833681937502296066047855243679333797989200474425790511757205228955042214843223121737462883035623709113949231228056649292058811743569221563528650216640927871433201085986901486406453521689009420467661303508635457410564143981201375133637601021588029224597859064616248205277607116833215146062676536539402928910434520368857536788529702499123596001197386671023397029783842230889474646522331825312836746522511774252250368309916803851208038921564917759403152200129537241266128820372088714670416967247738811580733630860064238361270770825738906446336175782747831654382125611894858340433163492396749286841672710054269268927300244886907983328210298737140814041206193056465995136880240802839526280689527962069174245181268403979867978517403464918167533629422430541064315317373489930044468007588713962840901526038651312557721944931129351708673992586786257072492326748171244317185297730903040215702712075113902692977940777966331420794473379564002327107138896154333285923162328145389563025407536148758298201817598542112040575053979934685907112502225475438210741139762181760948340179178377915614326449559579516342881686657971827654300434054169383030098897583142908263766594540215155127764833596588044506718166794799064775529577402816560524709934788211575476864956739095062284949511315210866398522721820502131254522431089466776023184414484117387540280020525202552841131322242432526269990602994601780847437473777330074831852729764364182167792076549795056820898893121869533249577949243367983175957089970564882841338119869286847697208579297020519695175430391002973721455052375832366398297547738853547489320837433158577262724877373680005187917854187176993871864785848064788097347102651533046463657891894186480801539845592066727873382580597828205663527403146357007147876905739646987607882437069643106343516346947410924025948845337797411667556922097363121238957278018819688539957580172254352514032013914524352545847793650825111387042808429100544285134627261900877579086636757551396635518336075292190017168158276204187998461593615816907697980415002245555351137152412070735054237862968854498769362046814021506040905435589832749047620473335863587570152077335363827564527607255326229891026018854743356380956611553833531546459215292496816322966045765527527762851919229078555294159396340364798264723704533361123231349159933037710028223803178143758879810993174742413165183168378801668244370838655318371796212723012152300436841723276575819716441486274653390410502264480680805939906476787918185094550894031704816515336064342955190870092907431314389869544651839052104712784827528130246009962888430780718370837077019988013202040604987849332528944902376836050495949166507195191431777045889727972414309892792603789955045289276374843579520567855712130147662143579027596687705119661210554348556561586605489338270581243663314460972244135871831457246767717264026238087271541328827795831504301113797530021352736391927989957688756819437155265748431070035642635854256670938545649237288959672488373779570840054614024036464070409280369242676652515106908597348710206856085735273731559173521226367712970788064535455385229122131788657967100623244118891734614405127020235533700918530386564836183283558152296946975750992187501340013018641142129578754273395350305560566195588800115556668293129508339629331142606967541135839869879837072631600197838900594441396772350580618894824423189319119076871542833777396480284123873984252859877579253442379134202760163048484620371091701488273977756636719899057924491047764176616779371721732102072287104808045908008152268502407207683857998617707404785620477146976591013512440476916335357710913615009053228333299337110336064666419360966492195740354447892552475444719206032326281249184069173146951570037247158724743791532542713289019728044074573455366759789046090618638378775254825445702550575204161253343906647740536080282700903924277909807409751030976547837175221133836934152819907376797830732057436797061519042699363233182693795273537747128223490699242905867420432978735666962954247106557110813002031918889809171914540734856984292164229029862156400881112445264477829486093240417763425977144958512178812492853386530129867022441484696386525714598139119948592468410815733779482825683875333146715392755103776889377286388177810260223647463846872227590158438877749713719968704868761358670465516846044248931951946720526273674818242304273230975064484655454380010369308016360292991393214751556538466565800162689065365978854111591648293445446684595022818354180183227915982601769795068909028206707174016839216962843553015474372991661681818183347642436880150663267908883670206154485223328896394301558946082573314348290705203889395644791893069488654980704803232832424352937357802618424585430883798926658486982600760201671446141728252844314294203676688200423143118352412927650848193617223800024678449350540506393416447123596577562370691174453173884641313533346266798610423840932000718597965897876307167882163022809557528086117144864067658223025032629239750297810146309210375164946471266617418943673713371429871261462630924355223124417517353590474403118026777340087752507979080128326482085497781785395253434770397973778057635569331525207577732658474383087415980240592804574721937221503823465374254447812456330089846729649395256944684005198075286946511244392048866478982130735070912795655048195212126413484403425107757311153159792284712984651402462978206766218832212127036885635383081652031524938505694830746399268355445756132806220951194410249110625694618409104157135773175628340898665078987968994174783429120571581374983749120910443529561460066212348282398550039715264819077759874432387507282389640964527159437313740826681236840161274610703294733717473784179751857268766899508308856151976992533184921723964131517435779984325477776586239509773918614311226242723226281661998409096229534724664871273817329390270971802766211677192702891592550248047927451520000391405450048458994374134294143837967472816647588726977268681278607697977463265631057185218963784116208826836155844017874428953229542451901719276299535849252381865759969678583172810843393955683829838622973200975562215907237262414064093539926701256151083552144524414743917147393097005973019894764224531489887208633558442597968293841452643749214060532772651417741536847755273298239200715640297463787645777092223890850148297752152061612973653850192428285513390182007195558160205601477905439064679106525819733185213638110573614055501546340842759090310162935034274062924172687727980451147961362701596776586772284776026231191012124494808973262919749797523627055182135813750242558865398731665444455148712345455944102221354570990443787314708154099910684945565536258815680823313113730525517660500954879577553757843790482509185288487243332504200049271291474931715958521346170675541940102229355147924241964991428545070694087390597457080653488339157265015135971646777231697264338437029640742928524661214962426657391341970072575907296990562617366885730533202628542719859882946606794434213867904667274313589204512396699333708443472619197530399085593113189910618377294771123708663090169482623984513973950519371504563614105508338367778881241738619102359353042792544548937718390785317118132514717497387065510883644504776504664751572308021143193836433075930521559047552771467831877653021020797142847297552596077659303644301343609927790483586834115432486703808718457275866711080866597397224656355150940986926654880365886650797705109093167309076330864354461769292276990038977890745910412456372532068075438490757561258230465575636717022307327203130244334985909514510710473173696043071058326287215795187372802422271761232651896168465849562686130514016641918029955015867329490700373874482953414343202477192398453238282880520826525799438250840942210524198836437740537908528910033711852602615383278218500976607364636238068781323008302815405268633803857848015100083277153987017698073841062591539144602010773079794896854532947912596882202622554292231437132796298611077051630717642893261166564338457356571113268957243259907863695959130411009272647795660356167042103210790756850078450408690871512965559013551836853154333592115561841986487804033560084725001315532876201205882961890916956714367591091807853062405050760750537991819231620933541953672713252451409197588036265481140620849675172458999078777124652903378345565428275871951645293204600123064608150066194739416674882231449335608911008951090776654758629017690360221494726053488738867563761283155037263244443636984833684850249646192807290455467686711194392398900553879400290572009864083951212010081809665611674883207641794132594399047408588606564231900368653100094830975159114377082755653604163937003005981788177412049427433760466338897565334065578656186199424719457794316637194617415411767567716186719246156117266572139446173126435032056109044506583068789370893896754645774347901278901413367718093272832224885723980778802397597828592827790268080037515731327285057595033137338611721868859204634147338381064445569539386727033591585225413267280785899083316216396580405476235231393101949659745579538592898341061966113959704616524220489045550807630206192633630569886865522178648903491985068168798101875996145282253969557153698294206108360960288162665191107798641878133615424953694451259435264926342112494520356454221344677120494286265519830156185455833147448037612386433586867173778921901721752421755417482424495805638661170537810356655051519942285100468632256310952276719562943227893790788701614467536545940858147078852134917846572494712792545187801052711953759860980442965699012156238591366888140532018228060956729895535302225600591845118224323492542962380078414895229755960600685218298423830775396649703572213631120421062170903164244004885990399962710640872128558416029182669374612436975234269068701222144739198106377031367031163175300800516809378354141816121398688743063877558901299181000818832480141555501301303169108877433712042994719166046307122047663630951733751531740362672756060825367457949967285685341862536838556452074501063137368985516964137577849268922848595463250443713852081238039138391073782901967549330600625114383337660701063229964508724310016295929159769884577362315925314275025334347051987772510545137583054728117463073829075749905066871133618360846320174660713404186343764057337683369076151211702450304127823990718589956032204880098625614652779017272490308675249116624957010769326037240492700194639277316211726134347234523528487819309736102887755649715153304246534250126928946168208103892184065816232365457683177104473005701948112862740484616372480808525884551792838687571925247122638349604718274541379368565856428619304331514826850814830874147825673265137988067519247754527243441588912243744543067231493035785226291556804027591045924207542014024671340703183521212487537973727200438271686808022787492734687738938865904150479645573533227027739466643039458186074570292636826338893909720673686774417648057217173445224017827375790964248619371859341174393893717380112803220449586900506807304330545231229282978437501873530627895272725253865424032784539239664590624271361389603109028467929450237504241260047019283305059665475203613075047677640955032979370287926130852971084378505559324195241554746959923604538598576107585912639059108379354438505884266059899453709251553021552244967363639701203314601369070827088795363374679830710233934474080465957371654514395573117397282215827136092029608237906595953543952727821943540084965728575025113947799420019067970748804671626303823191880057380012479185102983319730746552944517486287027513889084303142472880005995824790402420421946664478290954759850527149969523766158943167829698458626875116510884797058328203638877260890771182039187444964898732273403005101530063364334535178779499186635713089501345282376703115778428241452430192272716296733320891872782978155257972517513139606025109619412466079382189364350978463060091812829633453677349090974151105759882594420536189321401208746985363040975468984397157831964531195148877096645243034143015336074239924435196893938994756695613600029178213846641864787305664092786188167021682679750525537839607010272107279222585515080175841794249361641240524743858393262342961057904602656157883091748460848576937715876704904676968047350573103345477094476981238041878089642790721744523712441338753422372802380634163427700030780757862229388708034933514613372701982067418332206551821707183526378890984951969457235291476057592015521396925462657299730598308204651453057710952607722815316859809365946740250743022974570518179405608930454189090663031905548950101904126409072205058141504782407990814451838919140786799635857800865370953425224411057802849726196973887933277373059375069756924356373192396557339051065713442838730113179976551817838163497041189407640843619342041998935897357423177122526060753395429698041802076832465519274440070276149179840042275139127876482877056000770133042816751988980850150259630350032954675280450413767212269050202382013411251304520371945926365798560567626659280706716169890659517440197124344887304050064176167733040379527586025306652490047623694003603256800405695724278863676086415041460879710471462790331722056241827391639930708707724230169240820027709405486201017622913668471852743034122192490559721950317655915815867370225055693260933575299027089628052520330999498887397337295357831075748139708810831805143491671045435018521181114493310707963912999532131509531982391607400527485777670391965173665152109211273403341394849924447420640636264297912280528945143445824047851968076669410903118095380485327521913478044170431520484336735366622969827533731560982981778832486102613996830717137367351036597685875414662499230759007998020724611940388511996307184519134156748524462277867957865752836091282527592215214426968696399776271914876830185009232539542936972764949700764014648807552350732677569899459238069979015281460432471174499424418353956585267843267624633466316798430010139289688641097005889040189290820441015398871370374390754827432483940378327805582333355383712329276055345119122629526470802595812338630296665190427051177270041237541556286279989535769013923388958198742976101538720501826582899201005994909801860112374659118146421898628134701284766150668217319148636264656758131602159097395819388588485323444755409070110431899266051623982354333537221399474386424134024241005541690218163433154433027543587385793851823253844525431118208144432841122566071381460069334109999933576127942676882055389166201100844212579173391782581136142619456772949179005558823494821354240223655446175426002169462864174351433965389411887173823031817947111522809848950250100459140313171863016383023496561451997768139044134285983365426855777408098237124729867857857444991789034041796540656851188334090146119838424451558149722118005280591903110400650869189700579773983279670650871899607399345174527694509413396484898841519780034026853493536231889560680512598476531838540079453987971697238452192931075287903519196281398133693706647720126488110150475136722902681754479786000953187890060561804780155785031156250678241409702209315512541450774502958946532655210347560547327412935623397315740489801448822264710786278866135948186710708431376305511683328412496095144966798749942382514814044917942052321945161139954160126560094658603103310871348559917294501082961180504911837290072078008472647474240688418849414907425011557418320920760401892120213225993199832527250495917967699989332843449003884432247198239648178626571299320212532353196450721315240772604373067374736417594567745216391907645054316023835423268031425177673319918305490537006039751445680051878818807209189874274050405190222109642870528260647080940823079174060656117966800089825007638283778214776346324414984020474172877440758721730181079347699948351694113218731334411300538859736479736236054316213624461495227490781509281746127202595056666559890105158354750641457579900013782301361934317595874929087746477086226622814619482518103442556431685228829051324088053891478889861541527699515407714765088392113173445921066062038455556834951169170292193255461050991815922527827154926020593383467762531465635948689506270531573798696157984244140856948276222646503200190240129844168016827408811183692596970241896548373434723445410154613649963560130179143872161808165037442870329830541954641739075948233023726014611349388597347676131384860655636441599590154544916141810260070555747860683492007341049525407005122507195045464859038031802401147139942837401208520664444663772223288966787411536318303186277912587001155899610133873888155728151437041394900816102593158047691687038142884204707794810579627998817835340637112029818222833209078955018974617042190403263568069867358494803108012068912060933258316006465882832750830324278635285594098363876670033793296732851195884259075227049258847291337067199905067837939578648817002857566743850297121239602269985831108574472925721130767936874749891664934629195754522424518593267373063716697805258161436921024092111557493893553315317494504744015140687031280785387120974931186666527764479468107303709895586382609847334109168839359785623507021255130500065254493236928039883136100402308651091832366861857517840006011276966422640009155580667997699968704682090598512106562087319271924274356760085140156751414228166552265569850045346007639238135526451602158475923815537048480861860758810433643205511860311011231547800840361599188860814800718894450997486712399205675130736037111664932286511596771853380978664750134573210985446701680650091562360222976603434011460367755103350184040135525021271244400882973172201967740117879001360954523262796268578351291186734579828602070744707676384015535623729858589118693418225646389447698347657477557999830784608005856315147235259516993397526357268351000505046027563204153419556363251905498267493484261600933957085579059825346579244846387872934925710465454680889864826917749517343620304248155719565752218784114641052918284617925741208303245946628060452587357255660716194445682928048859558149903196983248239119629508878993135968399334128193545990246178134316286210466257412128716210355208933903160867912704746920004737723096044881046953025882028959217311009838138812504737932859591191355207549888748715504203119356385141943563916848062265223834907177426879801354224274577863833600917599368093605262702056454796899369865696023062425994541151595951299944287848817517125674304348007863055326897958663536597771310112315009955736568687683388266746206275524877105790597375557680996094709361393367602532628027193728223737407674538583815129082072943639773348692204529810706669977255986068400380090837431226173134208425237309825961664508120586107408322549087170230439840091199836866618590778372098524575050646160607565433565141775105432288673662807056850825038792081506908433817142598917964819564306527853636124856210839550623004783890151393317065954304771069916082083748418225653178549430014078629796686834991940682532687526034466690323518192860348826829719945508958905513261131140200998886488941543341670473756482153632979488776634975446118897581089413563381909897415751658376094364609906884877121998517237587608308358959181635419781120417919336111662812436702610867512246487287024675863844378164082805286795899351570395795453027325326534465684708921374669302732782776840049963680728036048492738327198389277804254626922334979954547960831858517759287334578121409191978293123224016739700975450780008738512108972968292697642098184894096436169472005639162117388842941108283035623699274023788782231796910229045312005300373847235588322021843574225965782306484293487916093118189029255209878286876363224476184065031186158349156561882732445030654234363348249002066112194212785497308732250681367162872636236895445237708682283233521268592298887535020283429529465714863519318867567202237748131538930434535959600745830875360032563279228851612768476155242950032279493751970277789571224174644830507222493809158962113685972566736738163614985139396551133537185768217055873002948012017166254043567731933659727800777954752188673986792804929354662352156218345779977867651819909551857247269675631050870568589598780275473903505739110658887336118362332161747294688607444284947491629856063088122144133033276074213119062797936928980171930954921164908435930305646531319559375759989127506156255942071165758315588239212534092136493056536088681025902369492238429829566556760439917207814462822265540179800660723514925920106228913558119267584092739438575465377209179690715226463117636312039001547781122669959957180529293472794670009206354766096206785020439736985448881795616142512226375094519733917391423338942065203914532595372326116197303443908651927527696514591240800162958060955848723702562553813260921130102212766400115994906183296163110161449599997009534192327612733379514203141669077973304048893007112247198780556474333123786030849103384100284741855014682622085027180095395067942304287397949565639343297101553594016937009298021443178031319668909928341515893112793408981957907101028525625905069119538177141130176344959299175004374147586800061943539177733106671725867604061317925362218129805800348335730564937157040981825193733001193439504612156965572979383968625547185282935766091294808059730776654820891307734019802167647088130133235815923722727736708528274338921298581794417713411804048989364450745688346192519153728476184502518071357226434233669823228037962773771289752828406861337684474297085823414382091538902351869869480375771453906954236928506953736691457309310828609762598350994579064132429810059988014712135149794540577658853937431564164116468157963155788815989192654825285655698302391180734478463057251027189376604698889921730567139273865278304418168649478133006176391708385813876445159876454128144342757453522571180501681648347872180217421917976567156948658863728444950299180710900449155898875427365393525817682164949153470623540089382673558276104250243600717421465735429157649607832902535650231177977284110517870556537745501102091108483544220460516588231844228645595607324311344543798527964125025332923213213619356210527728981334699684921728176031323041707935957823438065447444547233205408812143996967181443495256890125758039516632147206003791946050710640840159115168197527626695011632024547510512061515560482202441645963550200628968288224858385145250082211133723087823539893970073252807708541898065196054867336653078199034380647917987131384771725214794073830781930378663129490554468189735962146214942225513097296617012875952720064533670387300341186576765127755217935269538053903873379276457872883486795391538774633511866061133369087864967283305355180438815561571361582753426061615468877204326448639359034387785495264949147736735525344274179471213968687134257579747924918344087340984498673314011147260807045149166778195245361136531087287740890151987909081369903032498750015013811011197414680579044534220313622476787404347279604644682515567236062932164381277243089208754394894299455129212624727084442317790914604288217724539137835653282399494239999597203680715209136255282828258958177776287242546100784696387368057512157994712832990143268874253475476746819685986782020900282356094641238715362742941943322192640894096208699556177008113468105728306955414336864818157395641179184587639462161409138397500456521733808978253614174279840645800435028335011516302839870355178957215596974749768946676001673181767537297806728596652348595666159434814595099447697397598715052641261152577575884404221662653514892532035890991555636198879427586558217087649523600064286303701424335348413439426024335564434400403442065768073599844377467088591018093909395593103022272924877474454052161099047358333688064627314440397637941631303497441535508108275586914409919121461055030617678688597681256732725874281401003083748195959767369931066031567250184187811789549109343511578078552676844820591101019694120598087465830916368135197263489958556820886022009627063506435064159283229079370491993832539643620023134736679901420441785160923536128438745036347549629023984398362808280425114297326691950066126981118617607949551661157406731470258615617658069969835884685830575594199395538718603982696889846599069712860310446978880084788834678885984194978242273780749794681473875090980154710453450822159919166731982587032889364195985030685413481941379546193282222004414066173057766449572364380281269590366881362297711807433023885867785595869072456173843382683759451323056510432080884944461406759982348215486232031045380430476199037121220421427071684584812480032733646155963616968594075743141224719603645228960009742828783860927928133385347151967024082945390283014807034618325110309857456525627298269645070641667190813146710934568836889728140681042309809000317259583940189058038220821892590872616827996761782722520231501759454567341422124002506294471248936545082093401758256803109394366570362360677191649503079674115476283904680053149919038665313807704559571253950910569311126400870984431558645714979772690243404400997920435382880232436477112341355998119896659381638206835804885614068444806053461964612740431645849575438716359146979692977095010843255789023330517680919400838944365690606576971045129028286757032677874560283552239034388716131764725731826282115734255491350048016252466349533108125148882382423041352135356862518207160290010216138933758172497390774624135376842696595937365744961811512608077471135676016270719681846919705086299183396232660407090315350823850141523341425946569422611306522207770124502846107192789619059887902333511281046174516963765454109821906837618539897775415509912594784623294739308387602224829902531818461771204809756544177369656503794132535738409836332351660770142244153370689636742623642837824827549703418571165153082512354349641921314112408628202272754585320269959357541671793772003856968360628137089611658475347009183639254274455927854890904785399506933569364769348410167400921177212546053697100184780921082099725265586053995793316284302652633082229692202041372844060168077895095538216165557045584124224566313876399005308840137716464132205634802546276461103169379544251050018819340764076229520406830671904963159772637902582386955874054921548484682760470564022456632085694578139499302159834976847106704616661155989227395887471030919634584286377113315051651850698069768956808537389694603729530828039195563832333064660004652030987883378022710143098710855622527193998184985340905578755473261927907982021305805527984070402308027658767446606080537808926353416944062615364970059418407462598503164422122156694566964101295090258314101348670640883917818377048396947313334660251377426858942918846918391926199118533039092556791581081626842387289682299898005849099274886202252476871871579663723644665764980194622080885650117445899652362790873511277233262626358933528972975037220318459407413422395429310383908072607269555817997196507901888725707749453575729506700712212736486844431034028301734864365716734608469719294574442647700370875394137079316214813902915877595887914063459379118223089599479081681407406523766462280401954507741114664964638361631172716183858719871955291534997521991165651772953313814089101020727621155746000459193523342205012334196372584755928384545576456131118555472492163674848529750975822697092318510862767294068648265285151637115145232040941955624237854770520815075485134532084066387364134162649455707405779603088961401826013155176863832174246110876951056370434838719097511712083896514171474323125841455758392017891815248981999492035434152755046287881694847349863787806265897634059709834621509218926188703973152390671014223037386555954150328673374280359443822654838871651331122709517960872071105834390377500003930102766587908389389251357341020594602116831751450491059776415730532506897867461904004239614620159753079837720685171076704948621455718037484143907152409944948602199401865431587635819544588523435136944346725713038455281198071722241969607429754153869602298341671141394792348529432256675108102306166427315878086758379604091509260182428498720804846223466441678204615419860737609233460509562414856450995066030107447045281877388303548000072330912798834118135624679552722410394348386469250988192010782732778884597069430104009240131617367769789947388859005757727009400377076375066804289839367869922786901629753375227690230267158228120281171745478105559693480576187963549865710334049359036755471397668707785677562631454725908638233418177657467488908509464816980492779270757037002388982972970515355104758209756804479109554984275780440267158624942984101729978767937802283807208439113171180401964168004724787815844077813657761625681527477720455540778081203049917443519722299272832129351739066774367531460457390548653361883639826659787634349262896774188017482670763778183431286992404437420301391540691880055144397648261637524263360039864541501833884357021136409025061679902885981562064008653163269578806246182754662040431239369438165579777899675010544700455564749105864125487747749050924612083190249235071296289957083971542958799831245931169376766461661273311902848320234096008011791588433767274823625219269733747418223667592704939684469602272622609153893857490263565078765344607324110255524566672245720494593208545800355855973940267655286143082321828092933645137858604347915321208436075910675697359782013878658164610345681867062976671008259025570870629129794351997205079949281372256709213725748711135536947365267679306004050655332620519437931634189077080013888716448533185881468054251559656430114164234370612685125295988337728238202359672264037889831537638847287303427337401522391572114762863584118346634990999688105891528779035231575362493058598585675558814577206606387158914964124130027617400470884095949710377035841815394224090222162114316105072197244699506335055372912789780234629588803048393454938374891392709393984212190159874275595435805781798665317733808322370418742062751139430482184934360206135786246599612166503366810412216931680269933691659474200519598458806144942875533102406701120619641770604934872085449552660780168167320436895578742412119677016662905589707013840856196151017106068830634985791959802885832910208932083003263081012047408430505108037855006128556187656705049899908448933538125456209738129668579121746219139536078168772495704163087058519649111567157574784056347668629626059651814230093905389715809987595367014197046675677925245329666686020194109275171982901652760117223209872883789957064249336483383119944328859198889176308223051347199177405136364460136184875527962467157929195663239563829445616727904379556688000717410487672452639593423810859782448972846869486036160711783243166864326308004991588958600499273353253957760179882912594689972968916388308748070054170284747481054028660526484892228753767313237967251613132294236304422423964869912514113369035246824636135139319445441248255472458430121551780985722571728939047164753447860421967300068256637472759152953845287381417915834386230615803248776199428861069932045646155757309109859202816588413092006528565088198985870369356563335102195328208686513599869538075871649240853399003683229544518786107367084875458022754284578895078582917240076114054892441032539935001481838767973767977906055453129244753005418376249498067946661165071597985893180764750049686021308475778117505279562692795083803908950629178244525847943835447574202981024432975350125730880507111886125300024154737323093197095338644326759647505190192923169587653747684211179837367161572081161716357914231226994262356575766879760958793337600245530891336325487672225730740720260803997643236524347631389825643401028496237602375355656026109991197874937505105985183843044326580626460083564630421876137260823504213257506103805311774225758545143602601519266939687494231725636877832415568402797651465071460969112203677277772240604328735710083957871652180897181568320265168701080917389196911244605081452719069121975154378918748851335268020788698993382094980798776468506538199656461983320810555011583269692020352461478712686905779556968360297128204978112993331981216069403172386465991652972009858741762502469248304707230427454382550263356345661268110753966680015620922624733677391502916255609664286207804419086739853910711445133503620041221791499506599303050720446078427590974618990366173608619794290409607203053074038319384588943573254853343592533259108853571743784660594325605915701705965338645704588393617949860659881997761085306002376222209581695410605638201800723178757195907817955251596500248195925930200875092807872798737800486803999957240240912141400767236451902103350475534595440673842026337964958044171582479847102927602084379007988955347978777075439128128756674667167073861682196571886729793417505092927920135991883404569582749843174214172463706919717006861218143240940764834841232709967098557450658700575752067398359934317692891021870795562898442812811899515903643227111627274697125190360536945706305415826335131591568347265286622380545270756245291344348527639183191469608520837022793141190702273465790784643653377662985797932196803348711894738832964919535112236516105705514829284205436168270176021332465065081279450925907423030659233325592212464986949646646510109624683953755471381938241483102238814952168215394792368108920510719727031900922907462161714443289655356780896070278582743515674483681530477962865191035149533456666281443101313816468131762600192693906000949070551391546015681614368680519991994625166159286875760759699927541031600705893486328344487845542629984446570761629558103162826714119691319574819396026832715587103749626733382813643056561567507731925264244708466149025927946975399712871969803538778929801791487896325135779273661378101427141649779783591872130053767487950955949924298191994551522514765524474089379366557970151795877665303383715806239082568749429339331093803741296416997697905407963057273874061908208409675147123815763762315882381041078090980112219032580666401014487051637526005520463815482011740485004606716444732365533824142440176239638485191921972822528062459602029872477405271420406886083862963183247675573776076740341032108132617252834860546276498668592388062162036357221132694202481045095883624894362969330812444668075201329195844388700332026238382794344816310215318121580631122296898321582420073603346642326411603579073329009791174284399008544349274082822351198411254730626019280102226395573969640559377708796364598586675160564904667081129213499256684633641456355774864007875467154344852735081199988958043857428268372060378804771470768106943325702796688506087296160013349116550951397763088056908852153123301774658995199367437259409808599199231479093379538722983317970761265531610668901079500938823277894552133456380128384108663700628240593268481706536386227321334520385617987118890949285639464887640478634234607338417409457679741875361816785506659170613337430122234165624178105266637505310799755340241567395831449868704753230967930729676836801737155649011011829911737067612803525221252183900696557113945482795325398048171599639150665890566679011308732838768450577780748558102282983137802930641189374425735032798396559142783285805329929433109920640965634972060936133222703809527073331728981014463945284851039541755947792205696109627151995166758233730950366254153673170821354835792460809960025954643203772745943191363623370592530192993539532823038794302662519904951296282358605702057003993399758662949549621152411255167922712068372707717571516256458129493509524929950542334673373506082681006482708494881595963793051849003235072262918011329018709497198246367899822200666527220722930782031291412293867425867286843351404423089720303706643019363833970277181891912462635895419532747017593201106775460550284655457191884916643142682576454679465614144809791715562893624790222485665169282342692544443250646950423706748700010413485902131363329965221554225962840961455262952073116186330369311489208142174641063747834624713162909883896446746471785105215989038503215564605841516611506709150671266318552948179448327464264186087115283572746021376493865027317051873292397901332966836817887686365008338719422209691673904312609211571877881011358458829333665670348337643356008789305731036755303805637921937253758759858712454747706268829519895200593831774876328046427903872551556246799418987527888877040207107709390740816304022768342789922077747400976350932348613022351622525767196913768849829717226377314261299416450426182601215730165550358049640819101703010997295388135274811743700879247831157541550064809568678829910266768677592698785446442085142925529123312449772637513174328112916166559103002245903253432707813079269564553980690550352234013753602482399537091113892266616050513177538349933891933651735815879866034447694876967506609177104552160891351818952837173644970946054758612123050884225366050313508145932186174808916302011855138098526650761594620770175943452644397843742170677584397613683681620507497186266742133701460289601812712806411560534793536301847707327211734091605480217912649014936269769071045788175299534383449565380595303482659659674598020855794592360260657893752737552536401248362229578431987474139731945818219574578159529686019976225699126219769617152153337324575268263574006925232734145099620775591594089711980536574850328538379190366969870143006703667825337434134971453857231887333141701998830470428347733015278865479000023832640745398461044480522645501768828962148494107209661382816662657072884114723912325404029806632734183038710703457198476296499762280292998531146186001532903869219255672247580818092077296771108281653522766727627673989277668414079967070701143549006546313011129761674618853050993019994500379499367469089552215684238097481190993371523798654767100615602489199905651316518917965536191139469303437234715958225265175225260973208076650294849969444536150069449135222132978923598630572552404358190773893034697774042789630891047144740804586129822065790858122800364517656864676659509921844622425592195557011222823734442330730171842301237627958364336994489262648409464204547361340868361231647701367516845664296121099108245163663097991020443770932706553793973056593218824172795272004222135496049611477301159038564009646596009805442227524131758182355079685231234641147293540817811346589316260960419463062768806999712004498249073076646705332622677776075876403727469066086123996659966172733245118592363544662976164493870153272053947509049095574155658833094043449009435196079759247223928141618216609453668289511731315584299485617780862948846905877975805778396850086728600059064961827927978077200235225721184407666968866531145722909193958967530905897793341302901280756935564876005168225172155827143751614044126803554836617451623018100025253441393080506704152409705528398679085384256591845984659321867808106388738272224749122815256034990434625834373044409114426564049097271033659839098448637899774782769191347308948869729816075904254473072925544172063832401874558571502935613490557988833477729104205114656498643769268292251097808192748787218053999120214760742082227097853363148920314478221638017467245663615754482932898111419032736891442908723976807995860319016074102563565203561207305538439010282654134169599268682388370586390215392210555294366318445002666061883458829144753810104901356526199579744499727242005512816699454789547390431321203701774974378722975626587686483928019515810710328591667844680337210412473388168034271569232638922280048432728835759340407642172468224455297300236461947298103224481874703585072874773156129562892292212265754639970610810359627159648523350502945566770931593708334958135723646715238833493742569658765553808694481429600705412690303768912407892167634666995516376418165754085385234728604229923236006918407338604479588394846656854237655158337106855779396396402900723323053767560893082117419537059010296967874489611402268872813319276598230152395832525193004881340794929486267686656542725559185473841966352564636339504073589261433634883433072681512113511909299152962324856859205381864398262657060912595034132460504122332242872989781734031006091266708872556673078017833051068553190114993020215033472380800245288784284635256573349893743858755073724201644245749638732172783040097221778944050682529878031287364998382662440646011168613698657260494542104162737125548672064039306113460782312251228227429480622160917192223158004421259706359748562712839785832518849338839417751764241966995487084531716819612727470217386409858709807423851733510367148543736323318657812269795932044216516640584616326408927403898797335557614176042206235965098065702887632301872297895948640199088902501921770912035233465322886217601812025252204619524540130804452498643266561308170326770588552557513762946455832993497325616199425109450610043199004590849893188975202491036662848317857921017932281453962596487547457908518588997002106269774045548024529226904232955300807026494862514624682525792377212663013244006449023896576882826676195317354032352812304889892146207820990473767715369777618142078569498513668680220275602908014733437532449006253908881686595804750641235500298864710938100397537284532951212159690533314469713933268671970797514661963255199722887448465001504154528684258236756268905431703629031172558373623209799344934432290396748842910414786537582844320148643003848437030457728445570417413439645696480779426613863377878816200242103065006340556937090277676171364926666778983783460073925908961103551130030625119770718754560149272345921487644935710973351484318143116340633688663451089268007674484612999819407724384990992916367542265108674123834751891786237327228964769077070382236750960358432200635447054074556811709797381576028962784492049235737654164216860876317869908656775954223499543500615730516347814478807894583751867604370705668778353338552521121245353772534791103540447949525476548822907648687861520346690423530823383045182544747666479526594632656392382791309476365706056765786116797315903104003934003349853941550515295080396290717034460226788967863299900171919436280880181871491102424485347401137151932361768590403809082147275122816123037135291868968728142746110887879208914170239344717484340759745717498268047211189148828459936004178756093982237670138096486614222502409555860307164356935060218826619491640821176083367106271406112318067828956548364853360664479195383408054602442456308215949749906620799261268133855228423289300960680679331793970912026638332212893247616616764024523272074417773852508353781588753800302459070965073369427242367384436830303023043940109772505878388141849776644954457219911409180830392534265401856794965600777610593474830585782034155913900163635068127535550772502666283837014811941169632730129429481570606668323365199802707790025367202022668162638625572362905404982322724840957656782979631868461320712465350552767847732709067171842748264236981140568515540703016254964714140938534799977197513599785818169748235119708754422901978057765256853675929866181695809890611560329525854960346625364748100763126288331996097089394548893575845209249057146789320953984303373683537596715497356348602130225677680769511521332971946630745261617296180853004146177256933451116834537077835857837914269668000229578174368669096095908011156013147492502937355947493108959265510758083283355954754844540752833787882157133318233444889154301915528946636344436211981392190930988339692007112811867287323922972991238044409758482025905334270112730205595336058418488589265139326542933756957427636457205750284122962871237866345941294900960640855368208447682486472888616384686418474653210008824802055227572800342302251759301966977282927248304011207070404162452993628932642199282129828280454786553018866383503345488792435569306355593253033151604208737414387184477201818152569498040316646701989902682947821832560194353523146801579630819728481506937745309107742594960000647738603907786930696968471300113391436635519479866919770098675459112524949800112000366851681801424422888036425764383393614448732233776044643207487390270357677239350650656843590953677787856300953763417629448538802356535434267703477346686797998080293598174338245608103685953821474609730854744690883722195949433865008726047591053858082494647233459282723761009306980539148221852017964732976330225331668179875791244377855618515847278642214485014617048408018457200615972224730386426226606129078198591672045282859730615281380708484263110146727773501117762777852667288081240822766423569945506889783765275589977761565295023747487030845840788389571543719922763059973935314739700510529726713471826086863480369560599861284926780691138683966826344618046318682407971520366582159292765912260091890408569096932570501568243359929020267334891997354587868157851908150459394386864806419210179641457514708486837227975280751136537167773717358643518566334380245235887002909029434358623031530325034719682778506082541092519215535582901326934319515923557428328580976760279657141041034947989440526514074394991652099467829415274035470649544009020267571260191412815452457038155215221099610414460100112094337447264079385860269015479996854515389690942747053779988908160678162818518213422357219205402781783414657556616233016107365111590068728732572974467196164592129735580345649301070171360432736482699502795830889368792046080694142657191762226097500549257093189100623360293464559954140986320747001274570682612128151850552562324265534182593935261676513427838485458869829177228382915035132154912064019388343815679673629323729468906996499330596597302836089494117099690794843943410968562232752195572981386310412916079783694647739034693965584174487639163763497902308672235675666535287870661668493393730562395181459071685133800872223004303617145378553213878018464868335871218861119919603562369863685184424543088339517895315428627021269799647655688297105717883177248794614092999021576991647964017188085324290755420208140391509600241287713624042023550881380126789233346740855982940980455960646556375211394279629974516853863305906146711382823948359658882232369440966018956441378611746947887355766346021921261977681786334196138721204061369829463453811599049367414795240062135440792230832519989231622240312892943385294717815288767379920586147242563881484086875405805520872366791343798584136468370509667935480346628192576985047614107747859012337091918987267897403847320844077012920554543829503475054787176473927689215902397250002153940278442388707557022300098501505202294300453674474416819356233394275842293428237368683881960534594598471486613445328756552681347832197450508689184378460518078506663202631122616213575559112850566958270543041949092091879035693062398482902921927240420267721490826846720275990874243137593458874803110421253592796146744631124036536058862701367267930184236281979631447058290594117947158900574109036777216483144897842078570452124066814484483617239323446575152668608995255406042303782285232462656877494041777725821485071217558371230481725419285733590991197775154582785846227872709468851761852917857345604873640628161310900640234607307085964813074380488559563596344973839231276072484614520525703092990239651567289211193743035234821985503307448435887638325759558903092373392887378642745230666564924598916535142472905068117613123867760866434724356228023798418799334739138319624335867953880171891849436903224442989916168234203861613608736755114677944208243065844778160620868592804121291292540077458225433444411800914199359823337353343094569418239785650629274997614611793762429008101575231705688098486728072927966781075089170327657610321396051990180140637926585216757611033362808599972965005087275415126571382194420943115993410121235238539268397216870401676852958713282984682898623403379734723407160798517629241499643668687197970217844197562563237308548647017008391989332356409684134730025944502783598365767039174841507812307767252670227280255407155937772234394776792386946681899172962213851185785093350135024542474870978887395761034110561677442763721481116553916991073999016278335763166839782377576083204321809653079534288194937324779054519563242160715660234142607549035520622166124719936367604915058046516103502155172628570149982242492063784707304645693773763822602950022269858537554826443775697694873723274036442684841810795774545832315531789133559080069654265199411195311535105332278262468462653042158528178436301320673054733801358255271640700461973008862817835392447704170526152624564362242770539582375159705979071027735456496966629754611015798020238126016443003037497541112157004681923035328845037388188292667542476273262865403738718308843700165752844968373485815715139061747888793227924197951906574245654018711263082588936975237193824723464048770564658781192915450196916887537556565013185119946940825723162013787639893969477671157241678567366885629881219683548897806329537784339689969875243032446015536546867146158469647638821791946592457729257021035160104109716997133398041219230046732890982213060035638862591656058621456103939700272609314357893038175358314526256273118537858061169322985762816655886387039724445534293690617041835826424201615163733420895603960850066204200374994524257752819746940219533041658644142154563459240495918474444158896399871734694534672874997836026637984282599557686818035438643581680608778368802522124495074657974309495482521096993132366593137849542309113012147401458486148665108589971082649650362299568086293444249255332030386761841541932774359431952669340364965621315934016899316779823933424807262303312423125752231887971286972112609802571920848960471860071164182936514763751629644754270722571580514945844398973196901519957776575147828111591247674367742433480997725916310057048778170226573556151222563171014129030145770545410354942530248992871350832191734862857231620964154910117218296308452902219325381890385283007473535033431337675305843122975794294110692122933856059688001992158771246818699532222494227523292563241925024374052034187624574832942242275223609187205932576278362361940534123833006301447391700044447308009931280200491532368035550768894239631009332623018857335250794233848661390500955047729297095669447614427013481112988585617941920034400026193649843649667223906364910431651213935367201873122518905076246109710059497512397750321482138774294712851512583608863050945329503055753369056529208863958124340712209672040003170659904875885513835769771207466375613604078836606873959748203700663318427910850494919232890314063345061499134912970175678405307628569232866627760950963068552601370954460313274127733982202674749711361156164783984216422719817568270413021968107871026390078593918131122761391203154078873869189646195508710266685785744258342975268150219102474623608747436468915944639930458743796875610544111312933735982252002684084995472007260442697368640889848274600998330324499480149433743639268659146669784275545477391212180822925950960873099920511989781112694365784498304538448300661310226617857796315698103310868128567090162525153422651494569411614685874951365905282073810959976980157427573440783077871967862857188654815173275700588407074662921238508511603039245528974037514836858851556618349759606186114702589155720781924786646574259924981659080725557119332900242585587673044234587704750161636845964080880579918596385674346860075197180306318561775175845431686500452774964351151532605505939059448748309833268348741540921779805205198197799826585891437825957045671842434348510178344038327126990162814849155798452801286339426269742151986059760066988556609203710116666636503137365762849112040792533445088157448834259769786134187554428811252274642544148145050696129788835674362487644610701631838526511833966074187854042133999686584858969462818708186583827632304462431575463851625963660733417758319752977412905283667129483252930263537397170720018709019926999814836242737235138896814408331855466679588148150297261012440078057662827112615900671240823140064380807834607148227788033907465481368619024347386684207547833074464947859647326776608415688568094284932306961635283812541376192884995072749272584831850266470553921788113638865989025742065884141446409666964476813524075919240944123150294302531681471303220693031664747599483354471849754218599902034606040206426332271323179084956065938534259946593946115244832056500515447727367583772390963954463972536725632488718324388990600065868320029383424859133540752136308004944012898706830462435225734131031905304391392297358401369386796130647478597083346913853932080251204643584740801177684448337694480658556397282139651670218802110279820565219248464960827995432317085465201890945186268056740584277276663468674621743653687288985100946732918093797400292798417914755700050207150964506709532115629712776563064509963701258057068086553168850050743234780240664355239344936971434677005784935883856183933206574589613688324456563849998395116533960725052635067669381194221314850979739371356082877406451719936866438069105417152824254695995821271986119024236829706445171820004737979900798078452219990394807324477890744105719030389152604719361908200923623126124659328255360697863574296426926110499348665873796795410701757792683607358780967397279356102278621164480048806342846560536115880544551408282186641943240060044479873188347781606092573172377836467864082021026319651190814561082979034199244971071753913883097344611616614460638089712446837222515489723577380010227992103137719530442717155739509009256979094736340409899248407790402911091537435616616576777246549491589733335942146949573908308931848718708368589844984447523614817030814753655292934092190187881948202876633352670201696044737039511541788023849670369156697006825088512436819687510249703965350973041046561125078157925619132122488849960098617390103523500388835739577651418438330808452882587195872551678057434187276699502538609550197857251891615378636216782376944704941062517847873089127836895773300222513559952612565870215318911194811893054201589455946778817017568805441256642983069346404846027256903371288545755044906011377407925911357383109320942301068373545328630597437889111404484660584696041906915697250968363537396152616098601443614384975245971577681761130321336386871195950252676417537839569916783057927712531591649197373016201950556617068754831952064509425074665311470232689348541885772407318682510049053521183770655785777126646085308497160256945525934481563925854823359331889649119058379274616918313459894173153508336280888415312860299236782866922786206450168309830456726533449970957139705343171470566457220970496297128274759626107570440675297145853569613517854308620469258107152879927451700648300612724353049738963198802664961648448380017569822288750755505725694156806815438012883235593480275821018360926665269323802246479880421666137618016197926810773425413414138843306448695130306947409711832073871408204349340473299835143231643548568829518702285879806316228905133117143858834091184083639801550537400127292503415607378323615629490192127000948599731137940808561264501444101215741931387861955918607889328105207079146177835689511402729497427065510691380103118051139981957533028866810651904181610303564337192430030439002188093859957279655365529833927706993831086688671436595347931234086430220755674991034834546846662945569057163651028335309573014197962733456342194691042390161150876445383342272894566173650582161251617171204851499095845070619357990526465201613969124358903825460827146758140580287621474988900040845961311177914282403385302891090726315601164794441397600322352330235531256754704201163170766316104781108874321882518887631600005910810751318290799919889624970927760439845412479007203946463297982819553295613378099705564300605092595377767308845480001738887424063291662833100572869703061744643683579287799708589101101121047311612761022028160600643565665258851475569161134521123796877428132567927723920603706568709782167493584412010601039637163384828571590310292574579744499005437707839574642876405353030327249666500363460837878040463925462435711737004069541964305165164282461729879764716655611020342723742964910145374659241182875927897413405460216758210224853219270690482818825089203978091267506412133196412628077452689891478681074015695970676745038237535214291349858625496003574002481195378457980708143247126904558038435546771853855278623465770487497221998783830769178495704015711673997186895382345376861095537756487878662278896600151369975074421301159230315596450792612605911399483829055197090165870821587949512449135190331609325283772287649584628798652317131196624252696237470466230970109012340667266971069036549838834028947182264008695082536486206228545460051375107094887054298725109363152974928665279870622177934028887254893300659099305719285306131973475106059841380038298438482249207914793494675135765242983767049692569898379074646003879583157958639941598100257060851054426058711603313330506007086497828950246980095229071005256528611565734078675419078960814828573262166253274698622552729889357315570118117190621821673498591239164881985790833360963562554297639897821843054265775066465399586599451413861774206543174383525907794294556950362134327179425534173889192441416862821842724743567695578700250369981149321477616374140231868728483476650387531951301546158262033538244497216122676904080848613179193525557056890042656048784017946071617426954680523555260696107455704998851736145659062033227273858386761029842769339293749906115974560353235701132482470653147770116519242359898572766625823586654073667465440608617409131582941190998697563842541120307738030553644769177042263227025958956487062447161190600656050304332307972964027481437430798368687787096878385951155760885508756747732113103831548611436075489387442804576813862019508502096858605128468638423948311364171212399395003879321983723795867043224510231737567170009094100861675514191271875914465605742513223030786609156463640504198272916198341569062962011684048695605227406329458526268401587885972773304645045040267255917573512717540967055800072814322711645858199973456353683395304065708751119842177956753386289530015842798912272959782627953633547926278125941167610480648517884500342275391085307226334315211198947072603546856160432014498790104433216629954788960