LegionMammal978

Output length, part 3

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