mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-14 17:18:47 +00:00
2 lines
977 KiB (Stored with Git LFS)
Plaintext
2 lines
977 KiB (Stored with Git LFS)
Plaintext
8566878629442282132623258467831782973896787647484210222351150776318621011843145842551968068168158748525785606169494303857019419910906015101790809703852380374513944205895689999853250846105359733297399700573188062301992674377124213770438166494471906298514394848561017627454220835300080968587290494901478942448376770278922662324142998316692677685217961168630463531967202790391405988968247596475083047771361662627514695453169287037431856655188894449755439490725732361840622197814658123725948102152982216260368883633720565692512023530883889517077410157307033100990000832470835636946645466273777792851218690427800938103069064714050139519418321794137343042254497044635892262829981752888773983337458577287068101852857867410038881216650660854821606623708518388105163342494047696042094710785857791583458794712769264035587163711852001472117131301566058871591103415543822197679354275782443929190279175816006533906319509211999966948654321133567229284099237411250998293526071391646720768116359538942203438401186512732151519642151556073710943107257967278625686635168868588521590784182040696020747111980055237579659854299953558908282933571762629436228110079277480034724573562799644275463441604197334477988059038386386693431249487805452929105040446200660736394263521082721870281751621884777323755921922080035400438546295794667033046007999496171207317084438193423108992700840498643519491392735262676994317424011067748943290818003562470029611539540737245670628917924174937119166589390319644624838776570587629946904910517436711353607678998836268725730065273692154151688673347954627374618131447711497283799071938504857519455620665274219651868416910020883596834332269474136215224271460277178921917164670211312554014746818498275190348774032050927984108891960922291367015549108827267154875225935976195932882121221807148991042987940891548178641923438701959579457896795193832558691960767986650761665282030372042224432796840725431937817793107711230651604042354702136651074171450687477160454245423201991119684025382017603082492909009323309734256450987164850964020809156913025886739463156557152146908105620808478276185342749466537652019615404373061060945631540833243176873515496773219984305205200572723491850409023425502386765695547612783436984050592022791772851554029382779766763985436880323595839616040540452814774962154224367000455736217965239259049613850960312895871000449941147079326415012449922279882312107109243759018946038646983303222938954590726452840318799392317322884906890348603128948683267558575408939934460589511947572876942149433408208238173050505267918485001584958610281146403296921942013650797599609812530408901240043316094517407368317172585465135158690783194332832624400255527621542254113062195487652209048916271604980026955344341292863719684810725599966745756603579664500042196144972445874548571622245521117645406567834044030956582954639270689085900319025673206194073853006549154782634876633991352585981346878920903550868470725469589789359226806066382658460746610683445472777320444017444768757292976466763389421509665528206047469970311600048492421499405120506609272214166102095923722268868261649138951120834076555814763872896615700558256046062797739616285708259944775030544012986723315974255051775340407584291823320567094262361752834881334726925951310443241535247702940015797719890345952669220608173499850972628495712629499166681256744003358639352256802435977842050647983181785474093150354703407673974862266056700458213160380104848618950344809384330929599664624999708512616384955548958037781838738084758436600567182404985787308272850678517355762472764059535682138230718417446490021122777241624479390827811660609302771783448353653452210175456657014717683828475664290797783828243457142005368664679159204757907094457726622836490172669838934646303139359560974851094561368870410258539819683115925846237332380517024467241120784708283945747617635926494893209365924448605494937408533408746216699281615330488174140757205672546236042022539158475797138606848398355811134937188744030591130707066648202195835855444698123477044006113748281482806553669130666865375097546824870693704109867822323330403208211098760905238948613267385535855131776508604836089525502607485856762792703357506843749622892746516974622964863066542404758995009144991715910900131145024318956069896963392074207939233514877029586406886109221395427941020014073430482849397335216966519976028809309281401164247171260864900207001950704014441603831561687217550109102956206431698413908378286874086137123666688035678118171028832056083009280761079886013069047589104759304052766687222830585956062591897661396788727392054199716547910677778097188793538153500227067922871632739355115386470291517235369875352030339772852102410915177153350146876159558646755540316084672415111900575906699298222141126457136506270071090982714294342898361862536490601357635875166309052976235885539458592541332482759948008082577580540780130556657962427095802735604728452295607119649903515370062301089443197271184307644657322937602225379735894862372682931718656032434922004077125232152745676737843427745476641751614572440508910976225684027696480860929085639956692433076941145838138709556745072412961818968740254229964416519632663098057952893131917503972933248111883168492918422276744150764060390824571220517064329332166568089082285277920588926498596060136613979505815921466233103740478530267022689570178745922195214125293085498009472439066716923893539755000695152616813586943295118499848222568403540175329944551176039853884656119202953713804706893191660523811590397896828647415443931523408262412751483690920953204591755465801775748316672382026668292575179259822249241237243611361162377208842923057069277058627760238002208684513011208137486670127888870618597376301662955975257884214023356467679132780317142719363404261832446805176339280324527247470589940820472147801368048131299867213541309764513874251312498716883452722064534044671243758673693761437277979783592297594046752938115117365609520723965500382979562120907112752266653139550313462414153296873006668990084029628733589391948749479739219032967466482078786712134729598763685544607430617396974372846343517604773130164130297308473342998178663366373023930112208066960482934414782698220727553849389630569915859736804773830537959810559611796778936629841503330062867695112305684251569519799332811902239200590302461463638311263522534798230745605278403557508251203901596910587778311724587866622879208643832770856227694354556141329629786206794609714209200773803914907353000892329606530594773208368544914993435968433289611306076168710785977991856041070879830131976791681130870753584442059339306227319437338366189766966590778605633463192695622881406553676952276411356250822820516048598146550110967361530616320476507019804638568470545516875996405933698006402886314369398769347379140300686302589394979136424989612936615149421641047413851439296397121238287253316480195822892954667209650100405214848212409412637436916219135175275759631745985952464257200020943562011907085537557729733812666226837437580565233935701190932441045950133347010350657795406638123983566692774134072258198323317644564807900982571750868581274859021989747886601355430809091722410444573028348056139302851597855729714150582323207965691240353224531307074703548425598094825942047416901134087886944032480349812976399058478776479552815898665481198562255510193739316305804206968661959963430731808446532906371229058570640841015336389462044196869164275667065843631076764126125792904863301842515638661295308690420764086564499463325428851769031462097996411319510374596138235560859890512501932015539952674336062810954322281328831508326283551008747243023127494966777362970403550798385482088268702426710074582677608616610374655467049502598480302271965114010344522631600058308397684185506310352908625732227275181810238035089558943662288370383834732973310092804641635506818255496173473492881955535004709043175243924195022282345759026183427603338873578897206368214308944075448362661125488924771748647152981359563373723883777711284883563546468780593728378804740991729227406276138499058444520430022687897404782159506481933635975159871633577389732632908785789877994128030646145868148343357160263727959186742453759298756379096903328691979282909210022854508689189439407071577298473054156390026281194780297990320751194616300484318477509302680215862865442336677112882397145986091086434028018258110065958332479755566086543679066237315632320895236002429098821980251526643480322077909271204807469041577382081350656402574270184627951179763109250594321252926615946781394270283180961989842532203582731761101447669690704704974026067199859401018128857557546626325574742511926227031295136434518101848996437259640483369644606763178557792577880316592903554889785501228840566308163147583872976830682603752023085163823350612918123699419886854134885962530828968334869766782769806977637366998628908722962673471814771399655704566351114006333193440589868154166902574183981132737663402096396723381457190548261965464848886747097487441530876077974554592487356464031719540238395026954815170033825571008513340701382692016265491661347380886727044434458034369035451295724376464012466744338774951386335560468830847089661209816725502910634816898467475307840773789279979775239099552566825978194017381801078096660222530605677647161579444739525978863853204705569113445154836545070822751064914276104623142642820395488505782362776016752694854636736383861677601836823268552602818773175340779143415581920518330184401639048030826584791567585360513362337998591898604453184569023444612139784750342314101991179391975642418272963832617056176657748652384334577320012006383442651163489513964027848426217784018134471893525740820316000590668174035884217007225222183019062805646823776951143828595656842728844878203490036498110395133600041805884296799526286339082403972565878269280973846252215400121797391520383555945869205317720066249819637997076627461408169080329894194221210508995923861488301407611203798958804271849635565136677610720820823844608119138038619052723747431506196663763892419804853444580555130104991955128012136398469451955340923066274428578941499872080162413484306824079915751972285482244652644767266409727580278040768759927333028464535457341519148722322278254444326819287775536509094659657411943196010073508697542083350309245899108455570472161135709414440290355038714386453300996560591755272260162915913634487608246747324376058670708273102867820643381820715700585255716922979851402662807269706203766008323254485344755469931393719123425143619128498764786810710356906190498701010177060692632116938611187636647688384486922463980814025006743269971992049716563072535563496375235684502535685968668110558597895806114679570388409690736290262781396564926985873574620819574968439746633253020294740438522354727814313635518286317503252814726008997124747932853374550372062835008104844866922455939884586573280645111945128093728953275563512359114576524580003267800346358620812088646266802304965539305436804667613593158775638887444370484853113610290374060795642905795074698382281710078828982796106805412779130956378073223482988990638044966212953737138359768193808754035960219776917288955494915661284255222158491462677548851085475887667529024663216341861349382504484987307132984060824586617498414845967249804930668416352527281793881787293781534036179064584086453481250315817980996936136881313043680443447994525192119271796527429347060184136424329092090945081748590533907757206432912043028773056453425556024400510776002222320190991941481382543637678688247684972621052627107818284875597427305461718405552878559613103833990498447306391616033730496199540822061628552021348417513456001496187590345927123924504186720099013073378796807857544430786802019176443965257115043624014458237315234119787226771001728490981615364356612149544638662014537716475554990211490418270840428081235779144604849362110117720089139894272908739530388208382930249955224204063441378048459256608390762776672906175624639850768111955470357484325634900679807029889509333027346205187746961530357119781510631190239323589514253245450196558814712743505944311489714594317828873015936541832389585427438025715206820241590807301316689879575210627763554029310894584413985528630188559523278948864852514266247588143177419039279367618879716123723998649638044329412014297902209810440703685512562713566911898995254889240198004670585651840663444250616504507044612830238878433101396782206293858124596733162803236919385144294959951776457138953345405684033066061868051598511482520607174082935463252038193384430352562677788276675080784597543666084984000490640245743222410359624700692350652033539032580472475185307365307261011552262827508801429578649170890623254494728515183058951396170010012513132214948133611592845816086332325897726036520688707847955892713100467554917098053360009329007629638289832659331583158199511757976878531547975110354702665940722076844141830449153720140270591128126562354477211836153857076247611538190345309500260435333350472843756134906064559380779988061660698745637721757894936654479186046477361267813320945512905169741025901274708294945523473836374179679255103402379770578887769810690605962224692411355849244650484110427686916302849875277757041310753171329506607174103522241238180638694549656153243383864923155314004669404395116874483057820700274755607451973693975092155853328449839254010228982525071499499256026060507156688090539405957736458706166901791381111501150932501530165405948749887881737535494028364658858902442870313151648730643735131025966216021642826165093379822661381616733256718923650238775782914623593343977747242841952069087056238590240722177125329163296652817850099588590676535694189151109572438970731391651467031783181149138794859603378918171225224558349205449883591109251179196619596311934520850708841380757977281683493359142295370041012495014905773626069114480562350889084593106772838076688395377995991199597807096234608750936120454451876092611704137520806516134992596827467159202562697375864438878212781589089607387870550489122070778441965083711943318819030318568826782184634172594388098772403925597762022680351971478818836744119968866169262226999183617416506456755652720386127517432557607947375541049392286650893614732724541154819055060041208674099202523669167838524851088170734180564049091420793421744204394748739925668040935770563892247449061298365142946628384808169624276714981607897513052440410928445232699960187371617544292221302348855895705244044084336442770875092993987146775618820209279052537246936662461575798857365559013498185785616921886402816670553684547806910448441535165910677799476949951756063281472701376525385321921831440081797623902892147884897276773393140911904716584968779795429222237698540773309846852277208417165319426461713768522213613158387834423518739251208690851223540795785450163525685509231228715168860051494950952349287460683294274607925817105473043619657077447710790678600620176561407799062710302894193164360793491843294247438952508969815772050946201034898615946018764888256624687149341199303017032851812373590311913281989288156975491700126316080053253893848449696278526322013044798450154836425765678079760132322531665224415473786507866515364928931203123618247221817617306925853309006362720779456120238987725542876975792775009608741510093735936223533300397480650279965260083123803693917412383144024636828698632064293488846058152541273409888590623618208355678528022371579413993295890423287237199603645179814495261813817163988094987592127440093372454669027339105803073934769726281162250375585521501641981061728243464578240267446725746965621970429073333777773066542578126378439826527834390950741261163471782232572467799597701791554249773752332175025328104874106159811659522673434130966895104396145810702480969953188145544287365285902380418126721256762150789965880416154959031587583898394245477177928972606169899873068624652594605416314525555022980649412831035787420208739280741744058509067977425893841500306246784393318791128714345068017983058580358464287075398875941146135218043811025183050864274577747327473701887646883559059911414980661590028812210845631257462837681094568973561577237612730819122338500686185426914258360629366028116541216735250065306080737240713650265825215202983945375634693822019542339199202417610722952927438742215049182693900228005634440355059215642841694325263736428322667901654555398511638362968820625447871177410849070255788472613050133573692957256581810989170157717331512008087630338877543010207375815127804350476146981219105079578767166831294163510869647978768683970012682526287784596902472785681715792135654249847475082730332903433377751707514800202436816376380064294018904998717659843343984477260884851057153788720639218262765512499465771515545782409158991116432195164292943501573529809798480115564704737513836549785014211618937897508757587447761711851331030150610357987806399035957560111167921534189530389719511188831680615316936744355070895909215882116762963446195809140818862479663173576985824270844453180581578989748585197455999900833475466467800623929421862686016928412443076813490145262226719840006761312744972517141726198585860619656289214775212109620376402701279816396109873726747921144968809867532624222499500988162427851884810427202100278188427425191022545858855227931138000618725093909461693126576171828560234957838700920312401454196980395654780376586387520141573301440575835802681387277863759158788011248108756677918226442543894369867357557475990528366597546807892102691374349866231899734483388869048641747750780748171174741621323113832746519440760477702382748016025773948776904450309415426181570017775113588603613434648899668722376856178853613570438428598829300315224440654091581794925590226137867555181404690748951162548191160820667741970222034777535148359488877403920080644632033016799196578165456987085319910928618687411958312666940982748183013053031149207471253141356723325957495519364466704152201379811205942940631380550132349176309956047539300932937967946575883969298101786997082739428480153198153499087932970709879899880080255642568641841037743693819278135916877573089473118798395695490608647126711866238987734538618040595412281462722951818907117607781590827189203780595323701231667909941617802922605611281189292375086699830209414385815218667431547548451506397141551833395039926982608536655450498276829583890448975756210693779136897301927837057624268169956540075173201873239677409903740596116437879503410023296025404186441372490442498232929394317754911482681257911063635753118951970430672828171119239210796916234191696289475388280491233853939303560319268039075509986878374910746470183733661174167864082129601539462134377163443807016443807683375315044098857046143714726104946663097360400667913061388742116838613441594037551285432735184631600608763375744752082716462556118717023991146363098923867727193207153942173087999330872189635088831773107346933662081240446713662185897383949082532701374394817086805939671205343327699018767973649550529788191392242306412306170742309479913973357404191780084666057185639007268116371583338739225531250290709357287083713919382259068774404937394198070063210549381607995382819603894505764091392938915799238317639600549210630652829697632212389799670616788467043114416581486496510300761441470892705184625141191736104259277976418614008453870319717639630108802927198388885041181436217741412757565081475111027189713984198282865893196879294169647546469495162277343260593681706998844856421129153846681562990123938759104110102678980028498547187674020317327031109114482814407242611801819649530208515542664212516846108077809462492164349184729443139833897021468576539395368349873069409908534551981123854574749219867439581157158466683656627323450864461777719915386095879209573292461317227643771559159633588607331287576443715324885084475548235463513628884118989947213125367862188760451302048773077422325274951804943565014921187861651880382001521435096179642020308780810312906072513918060219924676160227852977377003150950913450787076715050070769718804940935371475129286784297202436474271166117403270686805521573090418635493118354748895762664259339087483181088741687928548216900402210857262405439315232286831728334739042127092162348313520237543953037837772767365484060231696693054534159004656862206972926310279168200503437003927520407049780522086561846296173677437860827688600843325627036812670203635955717799051222298109206062789435312682832732676890874509824772294666962070069716705796064468796499982397100245869895298953151776746031833771064355701130519347973356087496643396024225298663434910327028798110211525710297604403175575199362475366782174173414602038108211930647324235088450746996522334492869909269028996986764618971664617276429499127094940849924791728519957528177728612143190535792135073257603849901147121656037109151187937199410695431788335651299919220091031516790600161417460537636768049898001291977302104929374471910448487578195590728013365833406857335684617977052011636462068581515522278007268185686157389384202636300122135446452195885132920798921634537471784990227340364109937632222003974692606693360531265104462232345343019951348022280856828932585698431118089605287455805206317691253594746432167604686766304646897085425986483700066762836924199589993192189880397121687208940087896852907021588682339188946887219028241012499647514500599764300521607846235301044182204107118713036298860526890138384556751713190467081227608100939128002435968868527755383941627179896207437229042361171111921187106882471050408165968839835631412891170913207432989071938093428893209989158824291484129687908242680836614333324115412840862046027479360029503244382607499706886490440108268601434918479624199573041842080537442947182216069872999236631349534803713207711196104069857186434970149448624031009351096137740646831032428419323631289971994205814736268547391096898445699921027511542340741853033731841862076064436767066659288798119738050941431987506216858468354543827648075518116540999851406558220831515124120250990525599467286296613706137681857224179461455905217262935263617029304089930227612008815448204522932133376741058755264551751368039814334837970142406959028714016053791512451492887754628417842483605232972140977880419244792998066383234103846384053283381222317501352854623447401629211623841085190071525736473607141419953580070146020276612160861400441145619366555632200593156945669013884880887264439838418332728605342536450196453568213622493701823493578625639735087264244834691495116482227057693189918695665641533016696950530051824659416943627787940906300908179632944168139356668121058209890327707962299574438998101937839981474204869637854428393466266910731091174933826067595322414281197663925622312966414069372360066424839345388728227588309045125158686811310651123746330392855369667980245186416975808126750398750145025457328078678459330760848757423809933312265364071282484519757521832524274204922228278033130083897508693644828662982427109012956327222789261963635541966142716689288948413529001229436070713473929773794174973092779158929345035595931466290796915902588534283749343688800245291186968872691119647954250441693852358285850879015349262827980213525096313458430608832246180966832136577473936924481792162392426783397682552832971178411448684933374569627981533898328233871436950104402341047481077173339474133707609381828196764548370098467728798757305459929268362456774705669090993270044035689282491583768511152711614108740872400917480473768941668159217347940833447771100743160718261669849797365358625163405641993525705720979788802355528538285680321413481202267750811748993696335176396587336271392425842245839195769080978816073545994674282356384609862381593802170717047748152321178502240763992985540259497135294668908902911090004296332434120491786057402326515352373345990483830862941110156189968292121875082665671790445274527016243326305514896819778636542890986178096710205250528230785318494126562857356361289897039751476396753222786327215885571653191419285805052705485535959244699574656485148282673745279876224812437992330344392400106832942218929689533805480371475832210084872910463741071701425620501350791799252067250547164483346321153855249627458001811263678027153753171974715762561522484059490484798619007049125131660767623226323058239603457369173043551408428761270102485159360863491496535450336805082025345642376730333223480751150394548376494153844569733508485289438395246952465266972304844904609530858375554552390452718487763460247457556954635601611110016913945916441733592500820463711979371126022591037674406309227283360945723146636895974118597879139517040708602267677883287363776323339831114441456489635279092814162136323212492843260889526037744814429544627109340480410691360246137238860506417771391669933695140004384893984748947900690342868147981759104416363408024482201311999442574876689742886208325113943615290995178633510658554897789119362976315188283264064389744955914345321570617151771486237470294995942365689741071141027506559505366569632048183668047928632711242829665547392398769262925298872093750975447853701965208424440024556484349317226729645662143074519710827327797319303860959810906493755340926485753485324246297190261279659702331141983772810877421714536210015985440346639022784227770437281837982301962172622200136537593182602264013777114162509180219758180165514479109189961738885418844856229190758551209682382294934349753889018483691945580043012096817625291517541331817499867755219774552393832509646860203356434045179083145672356962247376757322661884408939750227728500493291433880826964338043843942255503804854437609461874844984605728944673283597172350802399059008888183339267639269535509717010530152496274481217493922581467650970657399190541603628527637098842658119456950432930607336251106736120750048831973833301662991143978604483705873317144189737191924268719586327926292709246698070008907688993755512504705409503318736539918639827300075036705864360882391527314420379359172281426683948169546268041171538309157653120875176160758753341412809319364478580005137074949952619972409484484065501418932311495372625079182800601175141403484263716627406150937160603289960405804335313776802145882504817784782630640047045761910932578011061058071312791662230345256820163449246004377535572747030866631179678663686771923115153352935465727504531469218115504166923245857173049019263347307845830518095035071852046139263074136352689335838265771571944722110357759328013519091665728452132873272892608789563104425177474746062775773534030288851715676529640131187008530380827472159192290846968083790525553706274183522591036507930915555908673997309328977592939540685927667643448688611123995631516777284894022753636342467067662941293918957917966529129333672690309490485631405360454696361852399289228236453159414431747440697235938523781204394138355966733155269011319203123251573466856958042371146975909838778809221906994825695544922839039277716656220406962723872384640862641685824858799926359497718776151803370686558650163955393463994088395287978636774261545946667167195208802278664147545285046285461689611067915885143566024069472948869448566544209969794489043356063525496540692994677569361719770566325444289340629889459601353140944215400941917278066337515032658843971095845942871676282811590233984874759170312371369625654754633584263617086635777614563987267181106403005951739596515638202830483470724248411040953756292252122334036092965082117102516756670035471765516118948750498032878316791378764343355353732904843629595163457750135253340360947480661049950694749135958904422725044450791778607211429253054743711977459385472329358752934886789958191671865518979221484211495344310217447635605025846499937546429164164546324536983916955494717434239533935483039507461399141370268927935946822866381898008771089584251789838409604133400758444146703762841533067396725712949667677772207516825089545261451735824814844666664797069220943036958333327868824845952679832109767865692508954790436058945814378328061976564604143939546306077133829461268133506670143991085735772405880739413806042540448525267973899055426475243819717168479950963302443172042278755118096559547287098082251583566141373795050347324464035894079679468114892282298948351265715834597817700884688705205182079326175652175458160446875503038295851801023586650600562210231639569032692797541894549205731003928167604514845021628512501298568382320078702141992626574283398325195881209884434967420370795617372401630019886006965127892225795553346197707280575368721084916577657370784050335360031504506504733735056578639927038027740488550111095310907786229260293678155814150174740221962359669962279527037509236034834999694597190852043282062149891967574316910203232548620596484785614918801845536486317291957207392659951600597522190492897583298731499184215891428209419177959349320561234903771398711242892453915427686100981513631049478176184034963418762562691274768676864602621892578572265230815127421031362203122178712991195976891677115590064263328190499016918972298976246695429700531122056429492326792107429858875349882570262235506633029784469821019739257622262649410538889697098145240816460043518932721025709109854993213600703783326642832891154589080623220390453502744241902487433313714243830507214680978659543266016480106620369583906812328643932702581418110271560176677002415902882810419243245204326853078744078642252847098722428069653030323951290617827604359806775379008029046385385829195823449587262370274433470758750312695779161188767137981893513557118327951781589499236882266675286706890662229378124451086903115009322695329337296129838530438005949181478855530388445628155329640860849874270959853363558484407028323526362962204507433506890294181568286796194370716702776625178727425921626263893356737694339866606472834264326460996618509828212879628675585979879814695170372785145722668086483679933639649749921857470862379738353833603981714211520196520862752885831802434579694603324127916199146440065037077516973550213381269544634452262621666145188218899384764283651907651518485261823251583123973716865316336072499959337491320799860342278698620731062102275922455616165595389527480381943058640652541951560966424527124374622735813905470222332435861120008070197925953777815336618922954283703918173943821014349699879377587113443785709358472269518913144058058993646930994808445844164333413139440825169608673283113623331161052822259872527900767931767863740511500685356791140695118177760355954928839966865922229284493799359310672090253288166051374543597486438231426530725231435627367238596502234359487406358682972002759227715029831326261691583960135631855713901076131850894392500807239942204388858397091398746968975620993772341583079201628804511203466404834732280596613706953807994812608572231910233763365642244648184171857623333218709892134986145231763402207029973930202494878010828243575232671726650960724213793873031567309229505593706523648401755755695564243340368505653949288546200284816584137095937488743711955697083504417139084996076395058828806037970364552809357500918802582565642762030422744869233136010393581396711221926978847700839529804942887536167334176952752493323450409701239357215857094951591332821931971313269598857447670298146287749846478433639879158507449868982436639141308525989447078435059378024198789386800163302122429102919548444832461622043902306519597235012282950768433752690857384620735541357790329699765387481929139993683070379562724953847338271685652458163669214904161511954616148966962046687915655789925084776169843373702484317862484549068255069045788870554847004797908851989881586210085120572105092627617270581689330866403520503738402696477802163392107927747328705011796754405678865574873588330384291786975196970677356943729057536382884193184798642381288072712851031350742514175136348242967971094492186209271711130943151963226651540667154033955584806944821502573588676190976603195888043865942335984140175135090442513393487898875184348473310047585507559318951805882514942089426048721160021952927033082718776332225268795409809522341213670235850718500149984198378297181383404032394707296322005991877670924412174798001536830827223197491355559199222103099383795905752844101296746907567376641397080889393616151809271152178816198575439204247806774778601783169287579698736999888879719606759667533136347670887004262419760693244178985509009973238702462629583186432717758617414283241822718410450178862232221894663499878793685446207611106803736161627097033112530308995684329944160228195791974936294597652558676082817452073233179956589743970495666216017772502667516347980701973653115729009963936854364932376425650218180802203643997849646323960083060114546399876833317620753443655848858089216489692762869627793684061948860638961047835261152220418270258684910880955216199932939386357138409149270988842140239625260939692826033860978127796680757223470563760702823072299289242860946511319140570295789862756133686788050318169379287420933712262881780393633841133900894073665289134083263767021401481033807990756345619896551026071629154720732830025790606828259689971058785880012971210524944014590374695976100264311633062175482847388866695549897991535938838500559542322897455941238163318785169794252975548984843102251685098493185378543426358286551355196758848153890705974247615290588136134568132187367970024079989877985084768010594258769602386714597009292932312374946374728132643206272324712556390765347154608162616605225003252155552148984051701483928028139199241188027740743732122839226238659270235898843268928589331185689860501422449737094916826854610068430782654163495700015549892951691472914290855691810272560420901246413321274484283137259642956518446995846375794235078285074312540364554212896843215952805537720887624771430021321196456458911351087065997876673317818470496159258079484263155047617278203212420910112156841338122028765101612131951838563224228812360373902098738942619486801504219932683335478054443727571613721075066200458107404019060875742163021272918837823150202278378391826807680778942336576740008859324163564350651835315757086376561037038746538765515801925866025807192896492450416873990291517246195663999871915488165888861790601388402460893734745573886104326361623737098150401913207920797353862865886180874152557381479685818127095969832572812372005981951909525345023433167407609975724341738142055503993539136331357503812729789545217453778081448066261955235248618472764260481974294877714680878349871592937914113152073206357840560157362721506921280159007733118960184658783605394498284627668896945286748069751303593152735790421784691259795653401897726878935795745079686653583548441532407488815890740263423983137919528036516740550438221226289053166336844101246297468098712833618439596296719049691889315850058645674341431358707439623779736960507924642497516715262907950458576749483361360340130794050551759428187029347482122666229282254109638228893841019346232888866074282168474036222835415867677619485593183071924384972064649767889847122739780199265179667229954598107953858956711343072159575435324508795873329191966129016842697635281933067735380992368189845556517624357916488633313940741360377968831029356424978540537898988283710255874578344739095695764931453489755146683509878014029474840490206568058312444508450249526854653533996344522906527491393512345224821238916464392861995417658311642979455180961625580662476937920597906742551649598139517405758915529791159669220033244537270394317656020632289089554804305970904031956764954598658771407251782898384545906083610230692221475285744894691708673502215226252075552677374988758170230623648797215818607172390314553737340492724592748574596544335892463287031436512358255083805430322292458307688364328711518646881114792838444417445870702558147213393613800494147256015090677402556899048670316848777136129996532964431732772374376478392410704155567904349552580202208309346894731183341268911417664647225663869636560626983265417501102608239756275272211462965752377919117155314322003462139464966501440403153334825178352166355460648686970851683317238809629428647164793885832323873621040111772916980009103987375954753510436140229569791077555053215800883974720948295401204892861802379405728648924636935680718507846365456508447803330090022663326647458561314244338161244419000045060432023221424444552921589422090377380930796984510840493829587355553109850129737811493267918256514819379180710714052471629725346744800318682633696554642060728118693763231192620885237801769778593847991983959232136256492778043724035909609812059026424419492446110901647404627979521875693381998235161438472479395891863760859268298142636323595707205535679837202216192904119075812099768485542879052931709832044895722721978581790017255577194857853923124439316125237110862292178989861074044492842362665232900191373999911512012372561761306851499818416150719775440222330406679520887582962021861836902280243570215945950076737684511667445059552945036932789931867618486508947595072658206337059365708842100171523239903035041529070767090758748328660331148864219028320277709379666232159674711959879989820154148923286618052551195235955761612761990153200437590949398344716391408966900145347188695606618118855423450927038319848911372294222844826607562947357435395343597201029987862864416074322679901140136166100271211521098905800062174629367894831097816782496362815862730498718652676276553932566910377164941798320762527290744592858582541925409843837497076457201969570047530574909310263318029452966166513201047139223273450405656503240750287574363813205209754898600837587331422369871138968873935488918026291254844570269976102839511376930042213586133004492070324686602395937806082143858661011755415459159136425246575779177625921142417367348433101356313540225179091709516864101869641906426183335176676579459287898362504031083371725407386392774996906725400053238657252059162694182832012148749634535890978121025785975306154998501908636716423619095630227136417784205797306420013057958549744611804540126654565937996526084052892553223461853525279952129164743750972629789428804601947362505018198978942156632285384864033630181885684473541597648267902528081852486770590145238682701245983666991048815715745978896199774760844064243674023978005893642206033939843775738737678683072088656158948538482920561581580752785319591473557016206165647408151002132514417267547419844846206649408678805873841235936780659847097278739659357427299331672357623751482174861803592066846031906161181193338869653557914235318199780089341873892708835890470980117330746566699784042936093956052732846199007441497006528563685248863561405446147088031659715591274862582511497338172693482567907885257506559366560449475798026292183135403741682692825175733663551787568470012170097154048851985713357088697718335010759747422835397193123369236087709361358304602862329579992901034790750590800346047908348092269986308889644749298260748645214077065680555239944714585899668148596420885629965263029224426675667955107814254916764552654400072085513019107206385464291293486210676397433438098002432817254152923572037738926123642943369351071106796815306160706219049584364015671061595968927206000292997095034648527888205597279437315013330197770649028107632321742436256153899575543608380284622269718557362577029892189299385351989154204491965445490074910254868940079468921004799935327122958284561443559224607756586350189513597674827361749193130612713387633156805802806723189883099803611888880940081731183998579399606078145329393102671690738825941516007035990601210898424221633529746855314912229555672357283151850286038782514671378433984901852843904896560486132623132784910495179844468745896037408633474072006425047284218965939133531791554388630806806517306650201719217189341173120648188096121494828995006829964903065361423677187387062393636807861900942698430902581054943000343481913549680747139251365385624884644548018070659704880113820504834655729656113092896089317324551091363793736425882620693765637879205165899492878269526067862260062673867559285976359219186361072530937864783923610842860494525651698268920168195331299266485455866562406401716310528853826723177605702089361925934909529487060675120496846551571929087975901682528738920900186389555588921111618584073568159579064214472632669836451400198073301258645211922547300597073331513432769270734020853692146854699691198348353207975222154036190585064640533245062908069049081965503702584383226035958928529446869203718516217580530865354958899940508174290355110112696859145630654805062802997084171375003181453489063299643883255350447358106688583763653862389497467794705720383431152216980858571866245261545900775739838393414523047204328365979827867745069357846389307064410540666817143441961349254826238350996759971394316660954195357760522031643103612359387235730698121692482945756225293963272127718818362628709623861283799926197643121042870610079057217215417567501700696454101030776220127013021681364467826697479952386532482929238487650154551674880190890691435280824105631846251951921998436386824033789462960971396694130062127157907697789136409484461205273520177871780186160526999172642296701678114160952304530211499153273075125742703391308120927798382783329421309913456296262336611279771279828579898283961756897744335693254579020445781423355756033911711565652879378322171205643091277325973018289404470168609562263185845273692827836393812794783867855558153396559713716788731274673875174912773869570388929659975845379539561040463004191457058596530911089094119990253320338452482881408002612062641148583442191268909831752179560766727468170931416010210453926960792343694500056505983368108261264846397639376899846480961355320418840663153814950065475250841102033626153942569062446342395246330759543937610433554441888698952253944361684151687080087309782023675280366890554664857805016498235434261273541472302875625819265810310458068170382062819710668116976940189070656915669114188022624945429940915484601882710985774355568548625643231963461748935193702806962095331849194888739958263154331313099339797582462899564995633982152849113676639047194979876176530037037702238496580602648996906869993634646837121215982154029239407692595279937650447768548628793187249853301753441547071507995188126153652984983425631601281139431886201745147537073362990860508917823136682293299006059836110844327779145272868198993431120966597771492850012699118975646167477294295888566381689274721783050089977847475279281151721951434976815269478550493456366832368888579368302887414244012265861293540956236068123832801593437205579214900541033421846025400030699632784546520458040265721208075900823455578543657140468349522936574150520721921282476853720194036811985196093035605448246657988953296390218773478423627698089191964205546005898987837416830828649149627626357867683770118711074982921760281197829167393010839629019276798993377655927164764074103271215186855518304025060833175714051842374914329207412060986699465971542673934066044287273018116071602877166878438436968217562477003812352980121858532793236345964737882738950753885838664823981737004844690780700336988398086377870769893185511782430690489725592545815706687643958142937819069832237384738120183407224722885791795353332333443727073546550466073074284029690887474190123825387130300736090623604557569504501295362752917056459999507968825876068830404535446083315231512450307357802819647945301041327666830202853524071066862065930670175230322680441369208351588629615808148267289742359145800045938050238120848992830499092409634300463319087685574151501047394307835614145311970674150420081088005082585347240293705007611449910899200749945256998728175632190715420956331874971041425638065284310065918363460883654911513042952336775311613242815127436076860371678057423566067712340698420517683744384048774019701445965713633712514579540715802453011572025783651462429126461811792913505254372952938998842322964207608485419855106932439489033833710961641896166285770358150248750089066431518207948643365814377243579786671209140634371044967529487138462995802414385876324354558032625466919850118815803359522235954297134420230422995775873632486140673485852927277446166072195295705820277347694691499023445360591832148842278850848744289868389636076463814671192682934452644424085117508835891189759299703225870807350371881407005188113805514164840513474431059851310553730842225194710851123177824482996550257012064939809672654873173242514400256776084541467800210098789707841493325945946261208346482554185464457868572680093530097853663967506872280262523134161617668177154767862587331782922311128175774072735381412134299410542262676216084661033338779660102983013987762124292841248593300444342060561154887413894236168572214145195200258013767823250442325619494994479679313052921426087759303417733374415663136198386953523251816650695165237495087743285039052332018834900798682575122161129680632230213105842209978852574455254572202349933426456896336856238566260602490290788845946191017716628651835588626260539367151561066717566920545171264888426646055906577084486753223895985506550643148703663904728677975079954036474794506661550896510482142719515150662605831745129644757661775866575661139975366990530710882299093434446584532797994585984214582988541512757685087720250537609173316542276194557576769945248687943058071766254134190091476810548376460981589156868529641545283929054433759367825088638214246373790931856228952157383990569615833609768984178598941984372299433673811486383608806394878317929711541337267129408124036191338460250491635535764726215157851810403954122849229337282428247267601723253457848252560787616997680288702153016364507422769493008885881086010467648304879120201024025635732372492289599504986322467501836489001438933752704451997183225299156654040111442677506534594023951939438977390101418737547506433636922095776005729234465197170173430634239787771181918937606778332850538988258321119967817645973699323685798413254503265719726352622778353943338008219585854722543146612065794299247109962435775472248590170135628113245798661925735495901626696508260670910289217512027709962076648121662158444551966276830696796127997501674593501788844516685957803716195987712532278073766755038592006808868362869078229532692440567238479161505292669212707469612919257393890617198091189351403490913444148049049690968843367207282467942078328408964884787702261846187067462490616235777445749779026713321451180346474956934113207784374896835781745381541069425045365280173363849424058033325529451175061359150590314359630342840467282474160483817150113052866953207069182477714976570486390251592787217843382097589478743447993513030989442083745361867067926241526749171511452620879976458963543048125152014507058374048588659877954380191470096777625482788375678828333668337346518471825644456607677936452701254604096539517315554473439430536030966607397981957669960439544307514020650244874991131635770592794479417507785087691685850046754338973528594172224449596858118215858998650322295858065191625196731022837958586424330525573717163738798662345380274647770028210072240539877540031717234138751941744732891417625913474401362485027969077761423966338623545907997198730110901666108281391905496438540038130227801451253600926307319793442387064045128687082700333533517211964067745381230602281215246110558405085658118138780052097035518702685802611822987371952264439094428572391639657698501430643520346541888415793630407165698931769018882223061656533991156826792549875772077352255905014696151294672405752746594581391538858706546499386939723227087058479494406394941429690698731471250879967274148972360425738520114398066674140160338466389686706968632694236612533254766132335034441717706064037184647213763576576662585560496047940754056346804724560875619271349505947199123467757131961467244799818692870492394433819226148628728096457663294948727067558165982655220335506337942354161934263556940294165707941778270054063398032034139177334378290270745925904763775566238676876454867635661774342613852364695717050499758042236307136050871961621608007707799334805393426315111297448743172115976626808261039884597810003650618503450000383270455433606266417961596968100357636777511415715971077406354943823107055146514800922125014115213965000827466665631244549895430268701943900340601115581695118553030445084270680791877454480876055458714247470670630051295201162323606142998890564710004459555857286816576425517109607309056013163305496375713184097728443451069916060750224395857344804194939820030239640465195450248549413324528879220503539067188580397256726752493296902909041030647550468555163130622749922837649091815150253384001136780086004045196810246022196019383709115596134636170949333335816666942059624574168887514247819818416519988051210359686682868998414973754694879887873832906191356411945130194540906207855822006430724657528400026995873039574112837303394378526603628793588284659903467804129546166218777527899482395206115978407770452822173943783233186084933168750659383255695660698626600786922034453077437869633077666125590515988677869596999831851364537814286013910638555919948810402983074465643676269608436645911048692113763581625557032891398098510284021448965850911638708212804648033538411317620843933290611556741941073936517874779005573984627605196769276931994268302157928658980987206241254156329937344692177676075681651458395519282354066240913021420388744446617519111088783854857456811041731560620267007025112815312138202718949879560123333133114765178884163922407114009562392307985787410779217676161461916766300976418906547531170215577201692886412418796711433120575181353940148802789957258226186908054937724154877311853775361556651376678952234700475029781925597489022573703402656919956077378077346660538934465372739730436632817569165846632768894081771132535020478067277789837485669437842401857334409744061117043626930606792413763875215085822756898284064004317818876193626551702148830452730921979370639695316078692840207511968648200934317020945783442233273758223793029910723614485409825562261384565729264896743116587752067038502830900790555809662738135024828798105613082868206547607707132040277844788154489630321287760747082375741226184853381344902657058035634345894560271860659514929413209027303459072934455213456783005348478463971163467855675768256175278105786974448403618713553097376223628727601468999366446143610255593362402135484794272907107707541964262397835597678031607521870546952858195410078526348322006989830574236305397132886789155328324523598685927765375178615972351268480002735279073179378003752054876246281870189737259700432712953956085631699218705767029116100134164519673297822976457590784695744477180111199292431339508600812736004362007938254593932397146798678851733155123112237005406473618017760319670468696743415999942708391564388841550380369213585880404046295878111386401777505902646085105226719412679080606448269406640435624707343053266310696373174900873971531319079298679281164693557950909783019623045141469830346219400366600518085209935453557829255270070182011251615397292339499155652578760966337878566864953505451259821254831341813603871774552072207085615270909507090811504960891205299506383805738180035522058136348701785480304240167301175444915436477384912777903731497254373097781472784705226304919583670198782823298019928889206637336477590709242995054489995445891385795188548474560060587153133579351592061254585770252713385425571207680375083826638739431562493450114369378423337186242591645548902851451224612149454237188975010418042670555429608385469135707333235097018247033852453909319258432566478339373853842123483999519158827458822143623266779541583645122731577079838531103024218252567681934698121172532370322715464384904546370196525191778068782243525976902804385163658463784127654215740194550871407859504701945307439798497238333365789589853977341960854445495876825383154863015241124340470485859184172327795570781220106751139476776674485609239760996114771687215708693346963255593619455356664884093064550504939050496967666799962010955662978562269896057163516014931073334920461526928871206914295178732195566087390906051821247122523023767932132562519105512216784804728378190318410056412530000126622649170920938828852071340792390415839717284186593115208915674200912930184704125728119651301081340744887087382109211251670155439901120288220587323141656678301260192905221808957839188175217199421056907406617355328263897223843880014861302170907925276330201257574980921596921307968528722114506573285968246705083161792905185950117408625237527663741096996082250355045770556744915263539543117294652807591324416798659694361872625147759450674237079726811941361648505611491557973436691883982418004525450594289896454173398108690106875134881566523906821463070178363562146069007031996189452207890031100785075077608324601864776859428007667124284042792329126552912068359964339727463024370275705369962276758294005556228558515935453163889862775477213021252127399899963158988332132370890572515821177345506563238639020601437663154648288332819492621881981384796878716959260107757400065940306879111402613212513041526145120667898896075778050983555502296188386108288230558586132470038029995181117255392410915816972397641878506634112684176039941405335697022546447035283668422069486362238086672543124375142017965922146444071313620499103784252921760509537810531131792803472654627352136038668423661227989974269092578705223279574883202181316259055322438023990867096939014684900240684345499602506411849237858568790511543979658096191828956714133421750677129239965729278209193907170084846525205230950270779376329268202519438729886850589990552752948473175079394599180900272203220146806811388472839035124360913058539199867477571870334785246743507586457755276390384785622403175927631491425884740123830045376877052337262155916472652055498740536357329126218599009984496395112219707266003236165585418785231464369847624140141811465851733446939695413062907496316953255524898806285373884828040155098368514678870273539848954627905415036889052873278833467670334455637859895052860011219390861160086668779154674918182469615973902303639123514655914193287590682960508747049521247827481196599436103369934303850884100594970521611174721213672280061185324663161110900209108244999623792501037804775896749549828431828507247977207489336817389533075331255837670758552136359098220708166871497993395314370849708469301258052013374900921264916430527702539559773367148911324002151104625563527289118810596433059684445962763819553238674605599481292860595584375426464813715312848020158880738743017189435370998116605666726140648148855766746937411161988743954554423939820037547018327708243128281587986622360547643707505335250006441127869484852039378029141888033690597593996847032480314784048780440150211231959724513651645358751398505597035117662332015540646013681370265188761217266619465298080041525288347071190846367724594270540866062808224596908274433611199265768758778581357820941836051437005252081741312071595212504137272492410629154957471175297004640867063238046068965695341689141268377357084496171701012540567268591652865172617539794636017314554631802268392351922678046179478325710746202381783914581654918159128420881449013051165686994885955325176957958139635144630602056199096856088423507478387034380042053294649034445586816833513985001140767233591225038797103316130913195102449729996401779481881863009769061334237563909438703933580387558767822273311907097834764029973307283735106079076219038731215335352706199050173650563308627407104734151445885794943733653873461194775250306903180169705084641307808512319418624829398751310939366585174504940669077888930046885431894906483550508984064817379066602258496060983867114225105919242737652470324055338654264713837166459769537140375890429907098541742904130868740514481298545105325230047633476012433139779664856077722554867026533508826422650157246023855706125442235081186684329055022469354325534654618160832620061203588438265409988534362514202289688563107779799637265626311462321325752152541439443645807239502079021890074117756573467205326828394822841803390299506297565904898068489301255068868837350776907727613160429245817296935766626965600011092707535169693615029857158461356231693216342050509451261325786921323587616910238739183680361595972232589483897045058624785145953507949158333851276799364697962570670668703528198420727163611532442403139232331527709107289735297984001252227431796158705678458263719659845019043465099343142669759264441277590167479771085595258668640780389066614423483753003587269935205472913167592213700844618550248580606286841633069702448795840556918087344489193067311955997640433754408265581791352952666065906861120420294107328288180834749633398133665429701050890888279615182464222992177088946369368719131051221824581421194369802790124168541543561017890325050572486117619054267388442823623284676376230836805968311858549344284367865093181013638989161809820785518775367981195339009698833334766172752207190412302651107566917232274648286224469900538037797218940448611127975343958075120080792545356183483237506405747055748725709887543662458911638503487187528969868303873502722312814367151213512877007679107105728830785093138427550818187725947519242820168545525330406565020703284920152152424092497269574800801013757171266008407369260778179828215941203356504951133678165923514079619221312289236809189150519317932694905039317449509887216293533296283187050754968639666916911789028044017657473093899781105944071798062545341342703058466309917447699776383371027465044574607845531828628789367268908911222199053210091766542071596877116138893431068225142905132467020584960844437564720926109343920261105426400701179954010054291052599592556297376267961390328629674956011839221932859904432526171962542694232745635845206826904535410227449263923369605973468784910222082756750055843404629606472642855128920824330841343122461070477623385473770595464216511392578478900193476649712631169855825240280813001755275940456415227317078260815453183182859597556415360450719257360668010422116353187370724403485005555911149975540226331455954366287040383688747993876442045772388795968796462684182279823961124522972117674309493357339133244438246920701057656869581141974362392250870385715233862088213380788050711385519180036301412595762676563761358388898315740437371207339713293975989702762699990343028983794905054719186569006326665164493788578546073660142564952063009855471905332380820217095119163742476092091568104909823309070933059724686122816173069630386175400682789809670217116171601876167999413878847046897599671504589685111456579268636670271748585872736447619550115332249369068604945889101095154218096196028652508502380137143025804741359190079529740220521002114992410271088353212755548264201803542991202006505874899122393235556514471227112846758634764175140822558775666215327457181679267143033497172597495634118144047463744078798750368379813269003894638877888345217652279671841186532840652913642868487190866596859828922489304568396998961783448191536396986235187542697654771197820839256647654653551222739561062820686513731212972641314761842111651499988913609015271134828418911772974262934849180149685127722034895492113432210461694661086467586143849530176633851779191145119894937826483522417439221320507847175725427376407116294211607736405227920973078780784442730178118887152477261562424155391863903613859634753570845416769388063116391255121544494472848490691366636874971512925452387567539041580338598345611090260362994069544509739508248683334829662665060804283475213898731223052942034612177267713678451306247454432943669962053085907413954587301672419239547413350661238166425411355307447435214149436614740345790970433473397857332971325880718746927934013664961055857932808402864040781097915427855765343478520982037798476169246833669855685020289478250358205808627678751945338434408918517076776079387522311826063652910560415562688277450550531209658786827361364067951426733356689545472986165931648861694929529837607329134121387007209971125161053797165974108567016155472363361038228652537160605687722653987864870138507585418166404833944985039856189474847691102451735964371260773882475830188948601437323153490893041188419902561266831298365844825593240924008076068936557688979873515805375637671603146189025200604153876347386179768099531273876463728939054874119508092183066602344230382419109459158246030126125015008449020637896797875071909464707576672308075013842205353837226113096515571216260248387695756894897255749749537224156509399551868242845417086936488768178478602359897286662446406874571590809322884780781153436594770850527519066880787817709037995950693850578637943910812091354341764657399455368037447960922892845162752161469598731690441441422298976328349400108380235163181463684277717013761105184957632223347861449384450555094024297960517941556119070794864214725167014513903993163145833959772753380750562829060532877746665522591119855977577739080917123914936279681851236181101435323048113657615179669861322090388330111499699219455196791938371336711561553942250017919898507082060473148884503228149492321828301199072323241831469517189069526878322551755558398624824555586751218872774645975598517034074163041571619104873491627932201798584435256343251509452131094511671629532658300942160466751078175207839823871222180082492161556710531853296206226822682402804224677460914678463676679952973922805692379115060107280862479998887626159471265493030616888724776470276765075550464516989169648995678852075863199028046490964176080610858739340329592404203674531202828940558665422176371829119603668554722847038998450334482368729111781078453025786000867338281934565515257121977636537632429327637136528786192114199156107097824922368158475911975887626350166883316796018623453627780000287372577855985047083816814250044927816277897941039492210098365682996578203597357567640180710152994247241850193307554935671137698831326668902684288415216452652853654268147382861306184580718065597797660523451818310241938947411188343304174186813054041918023533000394530760869374387325605538566109287475911296529249070594797957108693660897771479792144056083375613662527188132359982114271590911336789799559859757396803179138710549289054568393863927496139018732479935619361113329106383587969691925396289352442447794988432089326300806549119739662227409992237704780153756597750516861277500138784630071791529518871127187305542096316809266595649374705030132337031764162742433967925024962148762865873906205536575647029092836372170105055455296242038579256016817866274680718858699010163234041566072317157916878484940543212061281433259895515078117944166359472323992112544156621598980017403927454897554517819122109239772902900100286293432106479498960795574327990767766598542645827132291844780766213271875387528703516099089280588768866114719363080898285220563538362452364026827348315059187096800344798811129604922725736414511189328091292849674431110863264561651015449633574923622307465200359729527903917279290872300049680127581432601193912270049991206857619810779561354538906507287763968058874970496291200856709119541907195067342843693666011330722233986254145217653920892658371330670786483839781283077463617919905224024425752552545154674099672746631787558318882032510403532838090004027296513095604031570863503725380049375789876552528216548451601008590501168724284595436309732580876827317442746168508213521585082132388565731969149682828193380429081540957877696305516492049654070968825353138563137532587631148642363379421354649883797861085939042285310610174442780145017203219601277683576510388249934921670057134273770081675197017792451489244511135507693294704407390934105122333219011783074007188374167289210095334378036184611913748493151933354008803705637582233761589489201991959508901391326134093431731143796474267874627135445955106901603191582273733145622195097537244974058663464646900250689688568780831987591395084334148188849069880909577263141601951385039778990409819684548923952816563862568197690517964249281937840434759876181700393705772605309487153249005647443659795953566224267283036469680301843773688950300039945784423753916959399127830169636220179619922180213330512822149589483974607797884747315492353668286038832229460675341703337580392722126870140004971540636374524760930528771187150778951669060310685178413119825991617596671331096124447498857139513937668052322918468229770512825862366647453987864988494120754881728641209829636011591366810847438397838656565620866336597320934196593435909108764697337063354560885844756283570636955850130664879669691658875009066553715447313668334216588127115409171493166677281842471579317599236338242974214271440112808523146264044068377155876520356656629750543602208387833411106615983341260839611897484022480944123755269035763507946360551122750264486578071526749524953816377654175528782716018806820887016946502622087651621828011899029770141134377706583509484262974289155054978098565973342627117371362003126657746627347249428230852209260413597564016374139448783494238057515767438517255602266761871689899335954778533316131134372715070959356717473615980012732938431925752149117236725343262600941716814354362593559234684192231940659549312467187892921824386907067093161073593018339671152276925952179024678812744051804442517401925765061865910212850802858906141943155768039684300786584402425060793570131039924536599675843804946170702069950002921273352159861515676687044937574546507616148372751312116677119484297532528634377425813037495110091190125076004374981127450087022513551390686807039568064562846523693882670717638940148639701750143621290234168729622619768929787386926637537548292406380962354099638487432350505558607264992053771804594005659461850279660062245321647720029771105450093540794601527397630684353759225015088110879415970120460177846859710032831678363894688609942644719342850103804422077158966747607006792077317630533304892830422296308858485531196960784079509529434940133039941064518601689403387293038741618730240167472750492264315053619703096404881507439957623376674267562783452866428495317776733113424875985442008836208555696934617176439438327006448702388005566600356694957168238835958643033310983558827552649562767421503980037633901901459834434750361996457862596696935686483372641663053702310788125738406187325671397827664127397220149197707213852005771768445086218999641465440888239324387258201965235259824908192798711134963686816400807661112604225218779013514903686975498503774071933205841969927633669205719672760902163731347189170028539869021823929772367240772391525638508336895326572079225649670448876293886911321027209178383015125526802484633112164527113082212593091442866931660314961532447759590491031598564728537697293815600748828092865523184702898365840514587239972672035747721141036651530115176766973292020437370365805278560760091846569057654308129744104496131832005634917050066144401300222043475176954759915683547037230043821527292469402926194277776126781583991754841612063608093730159598745901778004819968691290904855602426808311405211638643766873698406895909813254272528861575248025116812592217222393259679432619616744440912266511742366272079806856323497056748186514867989881837795464108777242684400979353477277328410917399274972094172246829713521611070599792692519885882596702177316621102073514008942442604148918657351199735970401332520222956827666974116809686704549117331664316698241243987864889498668001699667376624948199205567779281240026366987558123827773212633203064081689534081268257692689701564091690178566616762471406751523062975662210231222149610663502839834122631578383256643934922850987286718046895268160856514835953721942043158402271544047393131689916960802510309630772195604462814798184776177188060490659721642713109571054365931047496503689490696852245293133898507128094822880576040582818594664332954280114186097675891549241378783287668029746265401934006159930000887211659532004541104296712842188481567773852614543971529804726261892414607673125290255901411807070744871108560868671264947964865417924604157492419816666147612233596646419806481589008614489111657730573311859133746437858291420322868760430348045994962048175270968122107528035610907418985176359553921173421254831204134729316677561210608548327183817268112708469847468431219708932857477566864358922436495336430488499565553497729232505012691128381854406196575341246857088923800211618903736483917148281659630296444363279811035405191111907880248119004005603725607117135091334565528590034113882251096423090513734238166423450393077347375834683941412718066486850912650211848210168341992760179666932823430219617979355016508288006227817687375971262690566414314310209390628656949511384843306253509519401068084704551487748061214836561708705085537122903244483367982754158633329670591020638861571742776681792692239754148250935709808179739024361681769372307486868736534573916527867870296414104952774237762789486253038315440428073603528711256254539873069174127044525139867269454976513369809509943387020596001385482308804695344810058643886351347328749089502797225040421252346616123527826108616628556707658259712239332836040737901337359587298535231432312231099786126023900046381118293839634253831944188224372529979534206033614323530769565657771244915721854213914039491979126293638179632727434354682577316896354016434301163553527204387609525297628009114180818153323799993229537015380127398277843490899791670662493428146061383902667815075078632727696266688286063973653610560103116188272847770182657728350919342801670664707342913563174660786751880440260628305700962898634768487962919377600712211004458430638858120058160105920350011795189227120535963053849672817163492109905972999806218045612534346422140259430115749120604792411113232257619211137088945111547170011564235931500305416831643071170302447458462643138763742822879026362678949808288557171155122120527164650519145258818343420843826594796825585630838932095083050832815048303395522193766810047485381920750470550577153070111123135055596719026765837299239662659642777542353289174143210635306833341392745589458392480573051067504040408581135616841579910981584739775233939458304823430783807069250449201994191828174057618851453623617747878491010659185925681415204767221815336575999047091364620472678063819433849953776538753072796976420585534353703121100136589899803759594199300715936419614481461621643549807320301597614158698912480681168480043580464082992137054295631952008039219762965717159212881991237044871175231246470561502287963272472090647410625226741285464624847880451264331159489768495088471891051430910396897517876912654095646835885258655366423819606548767843309421148560203832544522687787008836104995188761025379846830398267144964202232219453690883819358274831336826335694475081816094953908579526803672960240945704935725122815834477987779751560053916558091408126478823841383713639351457784377399996912223684611767710970772193116331418520007274830288596361854028097195125410075948370642164296403727406666765227623015699693915206801218637958080330040948951043939822855042003966546176302038982983876696267176016497730516300941186580237355582586353694615325610261252992627546191297452243026228278036706603039590987140043080935603218145785368245603376864282653311388996360895514482137447477125009753101489469364585955933759739952632067479479976878807639024574354054862576321648503692338358571286288497251127588513392746269204071715944734769435481303896012036367658572709431458027541330050344596792550587412671320692539395195169765056547607604591074793261893295095564513494162297885581477877559634362244052789890852381736201919411625111943916128576292255185506814732467165376711902650923929628084785864829697441286423683902845966119701881160494212636929878355507127246481452409750519183894777203486079628722862504375177055509944763520219793725963148507108257515398222481622795016965716850934929618779521902300851863575700160334671690308484774719687949088135937705596879102950775953751274974519792288162305783757195218735810670801672541405786870415162820393624956648182088076687472568723588696019849778803245822818166764234217832534631417864461538515602169473363812596091236785771312378335036474899036212842396296126134168432303781181055060754023430047324742644142987093440002562290759422274337969428725834641182787400003996466760922272775701498245172022773240073782418169444679111872277371146494134097828714755980281307468884072466357668393336494508666532098197285260452052836799868377789397043588398574294835771811206739761456959616016213578349243920369548979713861570595584050794717271099447756745498696661158104125565972061462768749608824799325308870380089841883341785244408857884061569248975686343855300360083494077116278915361793973407601003305153135527661551589906225269930478226154970357411516552122840666110180309841496615127965902993905539758320436059433078522096951703273442750849655543118241963806413680505685567483082214032898622139567787766704969662651563726810544514614700957009507970421077110720915424100862493582927049391982213361901458932714758327668758311666020353899785157614504328095283632215432416248942176695111674998244160928661999524355149606079790557316262570839302510055644667655935468167592654262284763479273000311524772834669109245257274007223895117319241405288232429944169935343084751048084945901246747345664987401322881918423907551976982712842336100370749589642295145447365243344916931830609821965651707256721260255242679231392171191644192834796116924986507581396334763439699039992452834425403710455044312977237731721242918215556689263626115847679737105084142611444742198377250031729507746030741727261616921410411290156571617982523239122864436966863435947492669625715395308810106889787564052124614250538108029228554221222597924243700503603600335360183203395422778993176182093871340998071396787538345016049758504417827169226478271200815630284741677423915575497605324171800896954306430181259840116257533359800306991057295052886625543732113321089933088911883619657091423464872260330989777531141021184182287828961035233792312676763473454251510238081396387607368797327166513541626491575570826218443050044376923429485615477642515034591088978907636241174488929753419581241219553990669352525386785876763539115771974928137064569431412297952593120790169075662301512589299961990278214282254013646680696278933528388048697810546090500513225084032598969746726188295393526466266604167417322398956596545286236796443210870611659254032876420406839396592561450328833430734088309499883644907842220329415136253948318482288364801486355693515139639214389088169367504500860731960428581068363727034961095715991383745803840629364423980056198465473494039171894865884735649708915919680305748658169106784842087750409324493401763279482860727634720957835794594851031059336448819658212743864875514844533906369705573270911400273165534638239146040392399198434166163386462740759133102281008420464928708193107007930382040505621716355553330585067449185233405317366281108543322904729919655338042866093616498977442365301478671432538780922666867998109145425000895197349984615574586756763064706653624567635972692725962173942325486146066103040616291142313709759448826930958948952147001622259169225827386040274424924980960292241526022565178084108493779555851753200557774360784235965016802341369252170528594324972589090763740147248823685855511326826667632176720422603173912982079001458345247128486569887521272079508696285474072635447710827069581401830088753722323261602932737516644665184770995867310281965900686466825226183557548631360413849939239044622392210369076055502227866201747155593667823072944765147074847565658849971268633522304344838210699125891052471285940102818102510212538963728117465337941640179527019769473590663717515844553551387336921740163251694113686323383267523218088633978214472287113558251576627451555326518426793012917962490066530462303814380987059780864525590345823735506876296882329790819847529694067777959758922163445981705089927506347779943434486488713674313268474307091736178082974913294711257263539018572116581019722297425882884067024279121905861219691553949402209866818072269265197738535756749594446316008366179901284951325378659514128600959637887093167304846159207793170774393782252287284176689451734915830502501915369492564520295263093812304650735535183282604835706284918624707541193142315424087747202124993545454894435524828915047595921873001427647443582334560855861767676379452345577717234482666300741348059727193240243031158769845403004821154538251836449217276712602335574697809055507637968998432649972718083399494048014773431686518296144113196556606474552613937715890161597296191856728310416733248627212276390028545118737246296951585264683940934366605284602508189172266304038550737716006549488083096729901822403125432137629724347591680284988795031366970392795185596263949119406182091738109752211845450358079442267532483137759783673022155123930196427248772701096904193790904208527292442457993851349760463444782297056211599065486504811385053507415849149487796951229471007177991601797005453247997823345037660549231408228288104448329884630188877905823473662918386411798423660051958410769196628925120131150289858449488725350651099795875136623689018908092126631081379138781423813230571851307227034353262464899420205717238669563545303610694427984472681048743231407817764787673792744378387382902008092783428330357518318686760712570905710282449966967621009695993290426476142025735973245846201085568289916466577635374668062285009808074914607016932357862356591570609807424485760846754382228969389444140820410564417296639470515602097396095087723844494503510091532612278957778305113919576116359223889978682258002363816058877251673767330132755120938484570192186655578680845679836794265272171842109184449222516195104293509156193926265376699234190477914129027572412865084891127561587968033877831277501273825628827877366699749954108210522755765716952194544547890905756152169882442730245846178149842955137307493556408803849642829818612231077143233092237304121926259278580462378647405982506876836756636155035308505415969915777447017326229271745023295217997169681468749614783925545924588158492306168056922588323899151182067774142858119427650745280984210154056253630325966604092851200209543892796930956985313583173842617187710264454648686353619297609861865576189049599731854441567417019615177597128051552352749316804538991308552068084556464836697270746474601649416189245474129811683193260374955428487307876101214140508243350840850861687908207119794494287016404289006483242164877425050892670592036428023926487990713955284189374491453975137059663253673156380792402972886165331606233858489254632178968974603583852321517377453162743330415059904699147556014559181597360269891199019096481238517272597693347121611735057547735586571147046163916468492849866717499905539663349395393957420604307482274434901299525524266763514891967343436009539700592986640244333014180117702951847914710224031258100522548142401844010441935226553182235571439248069968696336390090447950701537788042186021434230517694149343621831459811412648353038421766212144733667228324213469464312917128707590240985626176999554974989608988916982843256650776556863977831999639526760633717104048830951269181395121065245989696313816747074496680040108634700835839059519096632474188365339490111709168021350371398460922653289919361492718749924401689025135047637970630106450726649828885668757997477130843496565628200035292803480851540994793990498549759592815560864048976027732380572438864167298686527534587187854535001603595891021319987794710085165117234039125229588631523938114420657313898665054635953240237831056384289720227486398585926160000858026342974167059895871620581058485206433749279168517924355852980879834352324503519677931646483519378883750617784833362228600095181717439494651554705458638492768484349001059561649513269998598801566577143146848809424187525081850716860358253422140813873422435536836545992018649629253058614445873100317476145455367899957200666829952846930283127139172514036745501279754644205120820059087228484701671874494034673421676355088537948496526140556134271287141776201682636395041108852130933671860445578131488441386472133577215372942264639573820685087909821265003070223628814568687143923714938442708106398464547323474789095711277904400601439410416639783954520131300376648989898216305974607600264905365895110458797315114765383012868309232721295314314610982373123164137593836233867507869601382274905223776886996588439928847795474491621304057826187663435402186991262983067658098272528912640980198646592133390302418538127969864982973909729162205245756261844995989209204986697727508250767396279783323271974539265725385557366003418267687262605168971630336129736267290746688879007240370090661544919291198224145314797926568943700800619353397165821236551167888989238614577728850901762051250036361415042453813224646973489074745219872900630484799825992872944702663086871191030081114116161856007827881909795256769095158924055594805859677099889612930367288527533583919518629375290753008408621683697309541836526103610847172323230791156625066592595804748274322148741763695949801259452265297745161818396097010549982641567865160779900882756285120530518834669112868352372595065214583344685993909586137690983668002840973285744376711336863821916792995843251460217762844563582863403058199443514865493777838239550218775322511782260956727207010935752219602778164333473362333927644478540931433599928199733869978360708444381266761472746632875063487712181341335941189098251039510936148342864480824171217892588356992821981031310171280033462648202609781397909502696193745605352513295496598683173560785190825202520333201316880297605255311384128791702561558641948918174308253630740637349475785377985039611443319063489991134528854580567968108358460460062709725119852745099622122066604825155916688752611881294768099479917039420978711120435292951495864841904068053924034468849322806447470329390785567874812244892182566208338340590132796074628569888201557460676294683213817140078615517587340061434085392828841769357018017568470332165659139259230789122878317591743469813245566778655607227250649837437970924655024162546890953999372252869559502071645315262945793651876331198300108564053934853563275664919712144000755937766436872611508618543048360661648102076879230030018691099760425483077078927591578064173496726716715241684764049039037580120250139390260599363734846623724593632162945632785294234422712887586150962483843163842090558183136676274631384123834850071286654801389132916046896688702032902290362311490758277931666070333001278646147182793776580877999239339658046391503635216264940765933285186549554315787843216058783646602251175001469047743665475845469451178205622659864323992063176034036636116233638383486191606193958548943693400639590338368938325907982173278745660122611430543793333939187761099102074997281478161709675100900372814356590592154199165630713075207851769841192319983902242840362019016520695135123416763631858002469772295732058611297089968641610724159607769592916573819358655573781945117343639517920308503286393577487693457149231253272513556446009796571958447250127085611032921218037245146957317591831487352075364662679118842346748460607526874732096268334366660827973115020359781157366475496811111911312041478938499621731531038344743101694685126073204739320414669787353466252852629784270546974103452027429422062458505814128017827959078366750127591399373696274549998518316740396454579926417849862200387564037391479865216552292256163856546555177222928088982273250738638195916140987287428262086405928256827353671087669623766178584362677166473525418290629233772867639461982955052525399654768875885606336331637223321925958253292081997997132541956925767410321588072397937065571676136418531510640168512758025575172463839673819027692839544699483489674569364109907601956587156712469836209813692163374613141901656755131394732153170808134598606273832784297165644455419218191277968052733577214420067964601838881101480644277890470365077555113333506728916956918847092879442001565242225981992167992694708836941709938443303816022070121396679040242428877085868233899436452380570349750941387504031382000859705315638205800819434780749062020245095927887094455662867346303427009063643913087671521708321650266020706191191595755468005005766926124244154265164965843940916061568997193642945338564736339034814749911143080677840699409884222065587509719571139786638471418742271102965210044854806956803252062083898049795877048969576970106191459549403300826510721738544584168665604776353024211987702277876959805345236846019349690138696321560593162415889717342122446474879455795111822494734236857532214699545885124749759008485661859938789410052300606215827400170467496933501108972358525944516914384869282879223583217509213625406596220563432677295699845813073266718885824657921377708864872334650893121101918474000826892016025592928562330372994075719376567916168646302170569343425439021060781426716331587214869804981663229628605756403044263734935308550502748929716099058842220161659290432666151108546593806924225113442492786956511315344917288959127061567091468476563219838211213691978868956029714839706590742454125162182565527721428871969827781320845599468402897876082577447531632437862948389756087410235457986535034608225214170029151950947462780127222607689890782136984338511720742738168846073850037927196563524541100061365908039833985316980661508367606700088924458772559824284027454512504772959292318769915181324081339236988409773747528313595079642045802344114947612725639889697855995113271621287613587509842439593848212657615409131106511876047853294736263529521821019051921769584886466491777118528378703884655283456331444151038476721014354186867450473918308781876526024623354516077651817643394816468722721147546244975103937526848682637079558654929350075863872107362119616567453769657646364868777505691458724500699140362546012847338838347607565191988874624449980247489417404994537102852331903759582801829535566282502454230549428671483355398940330288101013818524047824357248819787346478099391967323294748569139791881339680798735087394169943455301460385366702856215077693495600196151989570449260062276526492599448866450934709556166396462649370228222145561755664431463032184537997422900444159589119491254478920465142357191194506060626498218306409631422940241716274372490344981466031537572763996205582209964139587577947016960593996371000371118175068625900011070422981911319231599153884026791675467679434047181391767297502798354183041329949983194963430446280542466327333625292601327645616166063125122350278574330358395058159751673532898269990385996576795277404271564651988510653086282628559822288768765644006405376151054068851594272307360568733117484833151803056383341954100241932101123687330774541594680263077620412988500797375002573969518559960157030869542717941836462359449387554691922077059190592424117443466214612217755939511395630790331303446160645283348908042751903403412954486724431221346874081890825898768837065131045371569089941312558097458806485360157045770694395756719650931528567014071054926432974003958029402336634800163869100444386066585351898394147382692579837423315254124555599173089334675324201046766446547738106972192743846940660882633651818744788731387154283802287121953476383200546535717832581263986359291161989259825319695427752322950752775879958864707514367050056238781281454291233806005197609458666443918305093708427530159957262164540732110030885800033637980311333899988384404700796438339676729870887930216161496417010893578060313945036487562218622632566353648581056378565956714432481537342227099158374936515975050239666763740369387664910852734241032882967450297313252828235632699693697738448856674918701985835352550489015976964462045599247544413677674688840477949547607410391760523321915193327284199040105514289817720534649740715881384159577415209568665526618803814243159690093920100425664520489774270696504715757357467723091748412102195739194399236754894423453906212681439833087075251683055073968881805898416744244617212061492700655829254314873700675414883309490323508399992305506992174945156893725647071027874146811613562867487730978583127775581123649271538360904523412611646024888496047554946790137538497200997889889733870810649919763915914176293724643624706777499413551305954052290241758630192465753994880020508815249115737025923702780628188598263436924980035087270386444688483416784509849144739320408886868507059858223924112408378703221906285315059201788372685288745409396382751747190748299579121675551312379642371514491585478278703769491385305683315105568994559069061778464869521475317261022443794390831568166049384877374668924434825778024158823108484546534253475735898162125859480669659612857929051976959166900006184795964464127597380282313258644473933149514614943825988809045862269878130252871036609218087433548410648100506105584435398451846605358149917017601174039275842500627969653708016260892484320809724241121826763790386281731965402854232677896016747648987277957401347139408531950682546807556394503929208407483801991419623327886146807475025275783632881266933902309894121279681190423472191646728217736788417679452079394648892074235626318777421048981437165634555275578146820541251984107180343497785387961059469755969414575403722118875588586721265632219023222728718005359194230771555849482778668343131873941453250739530152925503563902798107562220469359686993281657360263799977192687538309324983357650365690471068027397415997436524760071058149342813110994969193323564258229603502482281633748540307824033836319846432217873797575527785270378436557776632863535255506612570761012952170580103926106571960686537977184210628988578177684226505813354745943917841878894748908626674495897534598478509138673430500879728454913689491728842871447181417145973835001053860171183821327338147694901240292120408804072380818487224553985188965507276997712179969108092795249737344715370112136587289737202589983768229039960467523426903602720236297116271623852172991289190379608329542666591680893275277074007527536916966725938835459242515882429989547970972231279885507043454429777527810650988270225161589943908615154841854275521451649578801586490993156358245701491306669039326572046932330034281875675113604571974824803814375319800757528998786078393080557549992644857960268181313257110109306861944699790486708425887792426937448417137990532764163704146422994602697852190709884742788694660047052747975776409159811041299165282745059610617552988237679025759747091753331933693567184185805796585199917664582851821036134143423161679311208168891732642509539533098363017760809663077115756447340276107244907796261789470931505818655451604519859348216481702334086354113863733452830628959909088278304571444516837357113976440047428185927545171334651764015276357653776875221879578488359711297644653631870118799008532717211539452892296850485882510187689678532852394705689475106506483243144670158079707339370716500257010217139777030800087410850302938848799443385267692596922147836724857894998182693268223446651583543543016756847480536442481906362379289507595334367686490556163367038679029411494947486858250602976980985437656802988315642214550904718288843124785745455959760353788470917644104960138041212456842852145566243404891046361941669829999633434570665565649147512502139277779359777246778716100452401672646357376795609942846363697835116418260375634573356096502481645413736699140867882823058055026592127075280389151542959914992138460640718763947993402816235276989523539505183290587975255728941660485999076532742390626129999618911664742077401192126798880993150943913239633584841439989320950297190541233208343787932245830884698644151812231336657177523685219502794757254794366223965921633634234579567603470243369078714384052298214407317337706321351214757467850903365932336356169636140980906593103952693938187224340484739744949956652791255778890986896922950447073494628948367644704321910258632538632232146931995430727601300690448619896564873920500942434928384157544010073192617917780005150388041957045073389902203670604929777075584784807372784749475766902109180998429981142681989763262542585921424388013798931234035845321887805506978872812253555262070707403332030065301896683657289601090295489843245831792330110532272037460138623126973674619373587844980813522288590159398273753118679202365179431523120688961802283140312923763048638899796744258616613269125597539302513079334822201604387020011326848261758471472642976527750368173947879300154753305022780722889914598952627113193082661127140530651911914861973361177826454101571864751087660724009854491940306991801586362592331091130033777076340556248850166431315086049852274575261439083843905414598430237509094130461901785651747442847379490423632209700319715371367555746074826416652578115155395468411618966605830384366090380381142269064295070578765238214518395201524807867642364509627661381368115483989327094444658746498922006777713747981941619029780488567838069404741169869378446027886473136169284284854449908394105963602884786700403478628922934827887761497870948907481978712222954230097965584921026967966024066077764291611198736491481422224280621291567519815436660742359104918392471869751614808852256118210536361748291219501613390360330169577630691832054881534109626492655686114219210235014431655556185364160337554144375849380614673602147001977014964762008671454553800141138944938257741608554976656313486473642852522682710656555189817100576964665362286745663404298459919255520495716981591056433543267776913621711431764180193376289471660811302042504834776707122303977919785227555111012474290251326368079201067860984426809939377407818273215888524011236496681611011903650971672556228072256526508959562446606910252398750279444181855823880837765212905953295485579082869742003189236007576155606912822048643659096843904722133009706342055461775036681275402985029480920238064912569008131888363842951518270166224396128800317988779770598625806088229460471350067142052877393961654098704176408806923622139329542809943471718460289622356162945601957623608273718884318547266183592795573956386206080498576183824383532359674008614275339102654830133741531270071249078873715590799722375790858706932950070295666186883457586184476834368844150226441152679549387233683974182737728574450723143618395885956292386424382027657012317070862560175319480245979702639673644427610835722677832069000361341752423229326695558232548658909984104508146058638038632085274240911906084552753774046087892479788602246774224353802501400412755656475119334308759582721616867721771637658454789236775849383763772036523662558100113579622106166509984902349842939614467091246126858170385693931047407812549685108497797513370592526937829634086546783845199837733042187417087146964296780154342776173925920410834113183885549839080447944346628977635152552620902620764806281356615479942414721022164618155143838997015841699913244647266981127468207508142500731524958897027208270504512840486601252167407726485941721052296096074707188042678812181798186164101331511203220140224955738435098754972991966117295498476898000877688332214485991901617630597713186324410044189043085603721364111249804222997850886069830298084088526613286158768182517638133711232711539611473905635140066965650318831182788453175523824423608978286400655205617224486233922796451242799831151484550080299796580673335151935829769847081821520877559238383923165715936014165827768539213879412673565455686377662103264315217683989619257520807420392359277434780659617313800852370081182284777062445570713549641919265190655738826005493415147770917658345203593592964397902242260727449619855459875000502574421151188549071404273103427551093001866396948469045825387284975234826733796936255645715926227393060293636688975065444371347920404302216963135079538321055032017413384720481696866631666701847102318247745891225803912539215521200145196597086536106753939275677930766923446534055373052925004051910091277202189924185380263560551069200224298441930948133860417801387399654855170446587119715921283695097513929919628574871664890404897013477528318039208813525877804746347488533048819745152703126700677134761057737986173471230662248227078208070265727483427766634381224360053337198077159783802557321323512367678381734545403859786836784029460947062666317747833494778909568645710463698419285383957434039771910383481157576734949435959879896091519359574847490445403544474713961264316776236839415066462877003514737955766316016937213862044829421771852274464114677216812810751828394327762207240737368931839432220341084126638532700205526072979808630017394639587057472861795458852924389865842775468272963139770753583366604259715628502048646521648769412312072950373732238466622167103654690854062517087305206893300052679531446567514680718816162989360931771085720213630961637813760498141002508599834448654105522626234818858312900789915791908068998945279021977134341517035226502986935590403771981212271839627191189830233262781298589082483421157990148645707881242648885249403402409249905250489007049531218699728777753327991317862399279400469106260500458365161030310957017585817127830120552466304236815858887663576771051672040870180797634405220050520616591409750635749645553508137422810648289083966576322790224062247684629972969863448403512581567021238013279516633159477464831693451545412260105336616864870949978077526752622249972056215257398155393070226956777006126047578284497070841152099160721982958991007013704621274330710659505210338759809294422921496334983798948792928755973856386273175235013244594419533255566068968339356540833202901953049190996812280101293125955209895640982258847523249616424284728661404433940441170707567563643848551327087366212931962411418066536817133607356081494364920570364522780808757637777824228057538194379942586350127593503994415833238125486501839885907920854745481416509216092780251032979394129862353199060570079498107040211758523672065704002002658269428367290187064107317853184575876473106626540516704480126725440557355559987344986960510425298681788711134105076453880936866235113290893990892393065452654026180481203578931234474839852486741715638056158590990495436005506206196175174567958164285570477119784854343161717270891325412244925285106396994538839248492784683630080391573392616504615082405649642686011578718476413495676820305021798652399676640749816927556869697492306699865998367695401831615733057772430932974265455759966973147743945505132499703858338896633853980090893576232913750867369189049371529612712124519352302744504352526031499029669255189306770123988225023736214370263198830277690758914891119814341155545341201810349407495684995495901911308361555092471264463171393242873679419995529454089048334195824306302575726413250592377509598035733787830606583873741184556752119565690728946361129877166654181475201406726252741901121320762725442927390364715073395641684981666516783587747868929039779795203549716808292863815486304688196984206283815744368676431157262779281042916020163414997856609397562291356492873119299756194140568071541510773756929478820789402342215221781094916604368178961319077094639041457344958922104694817206665856018230659255009659220002591965651375856383600448671813227431159300349281610017197503745541630788330192782428273554147241965766810933272662058049936510082736861101660039575136828978905935464847131150894205982119600408091739507174878981987888806578149410351148690091095506721503557481866020644043073648315180797283499403253490354003387835160185233393301862848510728818680503832081648930958050493549682819904726125460623398254440012558439289341613958517611952675728521661394908129624555114732117707962468478265611589963914109193058247662664043128647061757745847000058863254298086988314326864256648865845256753540248988408545434390607521688012562982215418896532737693810780555633615803750630654764562634732197893805821046116084268717754696909138289901722580621324661709060760082949785825913800949425272758014802171189462845758515215666771793331439380144428790732233731567947477473894812707441937606972417596512995374395222683632470460746453564822386037540031084353255416261936246278595429906870974288580611422799288961461368858301896228876366981363504224574438545812195482436875763652007789609724370046878853826659230411954651978688423013034972193331289863862528462356000752017150937192343394621396820502283379320489802874359530627493860314026853987851149295887066552039239203973896040001955109864972767840003114802548436145647318514660403652446630958705567603983711543516539009596970186977087496807585150360192911838121501592929818068377132566504175999653677420588350115121766162913111162553160683253556693182359523453117430109539594657316875978216692965135853604396247814375601064726021610512005729839995747244220730037850560233822975677061945640269331554366366409703430915260688627100942777390300112509322004898704255563955242923078667371938416286005623273079914515336018306382746981243959775699683294854390255664362920191244824698883735642633149361254870911203140762194319156743576873173468742634475568852580954803567539810614361497710215960561139386076299188145715406621683996281501159777954358592257191664187661812509445206062529171465734221256355369213115757946171378783307331239923045020763723681152935733058174137136782535961690613272080274757825740521591223901264942002921466921768275815751508845955120227189338395062837109206161179464582505879396239098221136870184639092872705137804315920198680050622559892543357164450731029463287328564263706293910549562175661914714613975431365451787476277393599208982570644319916485125828794468403127689213618212344656247147712596291672928488966969542658961531597622194707048601487515520457389716955588344431933844626992100303119155430666934429005381773512687530922325772009255357510645196978965129943722319481072878478299362581124979386929136982090287308640685791511539631261933914835351561469518885915947942789497553519528778434584470594027435940611977490331798443273131825484939563062270829257610872778277633066348381024942568285169629526374444784306643958070873446998893057981553540470488738867184996120450947859292514039607824467568047220743892194091401283184589478203654935675006386470091177298684621801167062519380020707525480254490650861928616535963699512555267557990971423728375298416824512216529342278521261051832089475000870135000388456146848775922370391266824171344580457268188982536414269033891671221860065475735553091501961507754892369749637995693966677643412278821911693015436316173033637306098242154205712018441695672102454320462287329283759725374622824004631993626035269716565875258519069670757510817344483314664450487945753473118870291575774039339705222684969637243184852771093109110296285476511886090659811145984506765113883033709424114440563183505899072592339131031227962502854103869157490677013640297648212720988262469161404785788115369089143813800970646064564371697579335791050682021149334056420618801305101945625129305773568116090697744140181246235231222838805122329966618135858786638148955299125218446616470069701467537729243822720070474570551396611767714742907075809128791570653610278720888524091318453686358380655911247767793369067797996783071116699281619003379096463724544910681951049530081650789907672332255491424390599817722273045964046166543982929720424656803599120449101446333260336376682636093953307085338820752686231767670796234422797870423295841682177430272940980407148282519638828055524027685776146909906619573253849349781924157487131589503851178216812383514227243369749941007656132691069809469466248456042099507371505219187198010347169902987546243999527330509075145720763448746288690370036654190368348514133438693043540733461273388706598799514471702761392479915380887529501990824233901690017084861904897303643206505132387984911883271613225016793870229769917860872306935961331999042377501868137746253182536998301191543622805149236424600255928216775533337943783736774845532203843144255400014243377934466248013808178074111688878404647900468644651712745459637860665094516711844935905133053329744104658368067968243877682914582443526305634546574275463238010604327852457175868030800393479003358136102597644147029323682080494252802978124467006057491913234984857019261031725247428871286119707697067166251917908706525727085815549120902624103865327947778809439847331048945088996424787231424909384510618722286630847095717271725272769907585031937700110350406972568237130653392101496876062367838484008478163314908402254449416386458772063039557273589476236607524005117270758910701175421799534319772051049499025959405912805377480344186872159686048450879788003517674163208197131823305075470851947996600133738179294529175768286908703306175398557888169476922618612375706264532404926416719562604494572787476420890875074933050928413778992136256377998038875821850949083025567203582192444978687786236251494391643166076592087129089369786283360013870483959532781791773636695768609224969860429576200874198906532097653523072277607397814709434083342031875652350320735671657006446259753576703335887590275557895213170970153228272826514072523065031983154776198435210526857805987927824394398621981423977623588478815818412351424730041532979808669629263308514350998281497216954265174117879492413555258045904176809948553313894828630224030996897154438171821621524888921578175172778735435950376905403620208292786060476602215827576214042248611667620505218970537697744066041795198146889150739687293077829251299601383673215807232915948155896234560985598570746573639067249117109098485376725841281357114629508782323652844897403850216551068558826497643265363033803645139327349745288067818823522137003468965119462440098683896798170308407154577622863585108077051965292407712775665352549669324224809535521871668883527379486764187436940206489070878845340441901199096172724952469826863256089854207700278358932790501409577205169007531429212646272214479562207568160727820438269594740936740184177261188972170408478302767436681376789355622189511124891604387263191053764977864861749899748951514197375712528414945212326293428124084092906797124159262434316169104774273181150592823467445174284473064960775064254514967261252754315542221059830546320564140593896500486029516004928070550988341877136935005405249277912651537853233660221797557256092597535509364865070747101480394879733798491801275508858194496362364278455192698541889079951953830883487014637717250193460388138633707113556361354603666695981530338132990606691223498464349569508474675090361301424443939317496263260039550251010811431703596130079148211846950331386292852500873499028277455029039491564273897614566536286679711424567099619346720389217999003856867028682555866409346619944909975034939945409351432556890374842015024535987252468599899061381866668271857961456116457606588179694274121054336790710372175458667539538249101227287956300292081449108055596820333370758215208485210423266838732592981344106459103911449376649471528722642920248327617927285138275041355352159111663332488908971600932052612963290831909243620010078848300137583950110277632940225774928573098971205113405811398260095645360272770737042647124950244657140158296835820034940026233037935715461357693758676728050967378395917348014806408773243402079139606355290861283051642286023755639005383119184192222293468931388996211067716421112237367841782803705270156786262967286269826752141938181124092765806433287772519152109810932578094319456795760928487408579105932214207723447125819811572596429390845118225648724679277245282732762504102866615698968024979443986189132986666253879378599322752296122915026100613349772736030345981863304863429936058939333062745999532030145723628110467147162739902490695234560155025134910358308662374820370171762301109093769390509566115123064639902269199789582800217448511143164877576532444689183180673675470755707148535121182380648697513244221384090257667135531433995055681986956355076582398065462950703395676559745218059881569589624325438303264747132756507707479870202862242660385685428915888669985950155151381025377520695111370035051682036930080159541238762807037134846908493514394472150921877306056100309520794684338033152267173480463570036029280651304380791859195812610695713510106064380516620775997226101314455091698921045015996113776410353144256080788676397352037790394659668053380495229566439499334266815155638028906956313567084993954189668478881857043071951351971809326973755038103676467422452602384541179727414804329752062159660805252551043329014874665426092444538500881602459253641737599163039108765445486355406562618340287918516361890034286275278621332071626960244776119018789493064489626380629592581690335994938706252257717036063258605735847988155632514965157689775941522544285403010266214382946580509421331003029170577133863751742786368939773940036755236473498173299816619538033132533351986244958709385315035300638678058250787061643391927678862208135961783146906291882660057701000113023116423415981301661813067412139423948356334495975878575346770685887873278146698347559092502912939978789228115487230335609902994963366737849270799028540062193551996423587903691907046449417894268155202018035392628258569584003079240804165366138079708853893622618752691618748821051090411786503622193668568558058778042435165591842806043632142855401226936622872042223602623310393137569211493553387442763814612245294979393203941048453022240799491224185363883281843887718151450620924450994838119778580977516279804204571399065737888506041217428258767144787639728532309994904486282355692911750336061121425610149733293116462448548320254875147573566591912780028487594826187404425295453867561244894400240742975637215786558647419094593667097912648183511351367532930108615709340291241840457180952234759599687244948281210824275985265397685387774088570630276606304945598718116162754892705396788112307045043233368328396410217347982280018781438387385493093373804419659694181848458584063187867504329268152672618937249335362370566728314897052394621511369293635077252119465904999792140633895890190836015664197804780944209826979458182500896988884247032838932291316302041696265120619503114527949256542538298376121476326533770273615260481000881652452571749965059406293920593409032684652635204887461144989142704977357925781629246851849682250285277419934346147887727813656107595355369038361427585698002307511867029691501922598823779413379228580365256067574083740943539236021705591401695611816608703713377174505522933127808961685639497801265640559496477346688230846751509336503873786258762426112292457591553432476074255280063478394093797509163089504057005375518721431809372667054969461479253770622178992006640378068081747872057667845388893954113153572046949330224159656274497299125824488971996994787459450789406469963907511813292162165296570279748168358975853476552375232023031361544495057486553344229666465800970133726616133754152792522075730799389767698960057829543226089831098597353057068462561033710373879276193558662903648338458780421075192908978087431130547448898499284387988130823104235676153651889241481555910713325865622454881110484516234572551365367980079676066108607743442697788440989280437524786976348607164680339711830801681394343061915885705655432736421514149224947172400091193084237555379964426799691068509296631892512501374795863936030819810363714547269051387857918355762196075438988575105909670877105809702134152487104077200725026820003099497654269817582449979736070143491794703062052461330755305128809378146705783128257628154731271553032953624833498275170334025988687775025945138508558303012506390036575187186961866828356361155360818217309819969012978673420326607951387039046762462306033524539932503367294940604094457844410485499598489282559299155964303468863853654620136108896941305291323997421705580197863348814080211143301333675166580936391933122808512710424131300938278242284823183966965352820299439879135226923983887687714045698412240269124519072925992386235594552899889728312804216957085136933921915231523616046798722960448626194719857858864907328668543624631644297197080691226109406989594806104994205665232955418318257400986185537508395519810285610940989493471681714620151035221369582381040466690504227732232192008387561868191156033060358142009734334639049267723353829382139134329589861643445560938349232639055608229606615222851684563779498015234542718858395433888868554904996692186731254085861496503439258891060611070804603142997310120371339159277360810458835072460908377279524376462821794450054399343444669402894059479115589527514679527399894843019458347607082967533933713410965879525185990046551507380922958595699380666810727584538406183052242333628210368397734202576467223438289757506355833150391877165213686398523817164302137767823974416257338177027529531534708088228796349894806038754485876712510912314413971438518810659222620603856703649821088066190765039671552083468368599892014641418217645407330847900506962157253990456760970885718577943524309033472655720715176848955476315263059818294770653126633006119815506262384849432875632565053403494480986419694838044002419897428935027729793033676535251578833113681490735837134970325127504917586332796974009466626398560851556709885804935158375652743390880434021180416796249628267453867778972515952767147740971652264569784235268054034666447769449111180134373320463452068082738131811607842419011611947500503564544187828868762897535510896796571104676778845961092522579689469443354194733893356480849762880776109862199822053896986394235479826001485651747964511417649099633017204164751287025982205468151812239817065400597593164587148973046854387272626886237348335509886720766310642218715086402763239756454586208152831658534424754678189866895231587749175228268420511785918056265869372193085006349476512504159299962121611488113756181346578965460919240627031565380181889919986602550946115959978319514317688298731543256487960164734372987688465494825430268364583227391889028518884707206083791893570723244675366196591489036569617799040426699726331393758642211680894380284952448283211259063031018836677970778074434175663731473466662158257931826057506709326047147752635698233615038056489194247097429561173367607571185546405009295140674144113053596662443907189285384649742310492559401375067121080749038621912487125168465185316206250399405222557514840877279052160163725016082827873967644012850894200584419807609434944281301939250888025610894147247743295416562567097634248147523970871309915229415997529243006459595019408352950257574537690107909613196200451097586994983598426979598750968241494084995875314073472654315415775522114547932279264901470170167925452825475360066184707202801209435510994410139811860361883677602400015786249363769371681612695491353710018405354330481172784218623280026143458915465190689803618391224083075916398324922170789535748086484645700499467013109055972787789576868362094045498971403337860338391134194920078870584696297967366733230434859127875883992432531695024870336729001472058530929374869352410970961186445894001829304457009729282198164992606436711712019375476977168676018638033499049030629354739789717919501458785338006421027476443350802813158459420578256265112739080913274512548161703543989090194371462657996152079380711881205510053415128679764628160083302389503166011374210187526647706876186477451883593066134463377381621822607432133796913996738427933922762436712367479993540269162241289893635156541676315655328972623757492172966787467199548765717784405626112879702971017258322847057123831487694928563676400001579979681438095029761680333566768800354511669913708142583282863235717083858340718175736667895151735355496959497115438316811805812820979392042517684172314243770978658752921345502497001993868280544154112901656379430872939164207436981764918538504742435861721532726771618855139390667606129011748192820610325074324059130714026638068966282647863132674988558360278624049334870621774266068019360863216119574760498418978806444807447715598824969140127090612243131485874585866468997145089280892336614302234992498391941268068119304890280427752385453150215389156538149295452926924205527297589365524917535221046963074722422158383885841157385308214597388759796865499728344103002598767157491543178936945047743717743306055673981220608220953679794380715496164602745140249701630677800716426212804219035127620100207771361637698270963713543257955670953558880195065083688995606008057605712359771181511645913355497951241692116253677665540789232432967927136601893276600200946134731232906851645817678863663564566318586757438853702269928162068261906009134910021760146618203101787359674013435486560072348627065273461063958962881246467381025460099964806658578849722682348976644834838917802668140818490305372071334110860571122486253632250478980238673827315723440407349131103831413577409717530877989213968416688526727605576694973895120488680774988916748043186723354521334818509557206790678972270636553720908414805886120344742802698044583648719244105338450351459916340207754813859309447797445968559193178162283829323945098357288722315790316995182902163253440668310862420009590494951620435822498872371990724961855701970600166280640466544666894518270927841979274663250586926671021438485271805047677637273513929481573147580935762577583408833638998517915182071214054517146675083691986078935723714830503575035594972223850156729593000744706774099166302141356596891687473211597710971944440803987722379381156759617296707398332332251433132541865444259112292011438090420341218028814102222971871749406103509609908786229875709719223289881930560835931867009651695217145601461348843780490293489264589281164554265750124063599932400724741733663733625248964511360365059353456375048217693288390407882556016276274974987465762388738015519475109041450325262715480494229418754295351762246984349892148192748526154046898524179681148038225421069124935698769556736838946232380748935612591983986786427067059933827695775565246706344564604572838844092119932003203844374173443538039918207843162003819893708954078434801925369269688614964622895536153604609841263511859390714597186586556651947806036613301809877947981906033296083614924525724571560222862781530143634330003641494649622911727366512711550168517621046525993881947774617171493061827009570798654131970533559401591033854935563437740152771223697141263415374035684499078799680739927491728951565195450702128878380718316225994221206017348461428776318653951271122405874072863893582104355830999741192689266826671810007271908033490948545884859973916855843226839645332508556288071093048721965249984747958082374011645133117761033638832011192326229703163922489431065041097189053405403415832367957130859109417324793785230236019531144060651113813596246366728321435959214871552930482564657994556316757335219084098005812011842652508826839301372163377614003399687025208485332795778061460682037703468830749227872118990140325106714995387897814316626109730908307692976388327382400304582111817753425719557102403371692139443835770901775702681108490243227087656091031570694101441536184141501510657517318912692071491167980220637171943182637868738757336326752762804386416415752816850721997711469987495861655594062729643701567415484399236140485911047103978414805447004907034074731147572368668199937774684056528202615473677744568362214483074681800974162692386406323367443750419682479485961056701902068286883320838916211404519899563833557396684861967772082263185604227919477692079349218006649857047551423969173443443565865357590818843176596102267347180612293220166360331920897583792436084460948219794003321608030911783080449975851304630487186361445566693959686013260499019741707175812174078499461551934665589878317794505648651948881001927635320601093746889280442822646840599507453459081554823006663134024100996706601111156422392697382037432515645301825999366886263872177774802894670605491862864320135276698206972398678340515227769836067427839312285592261399650297235510849770200974785921370111025937437258446796729848181333600875849470102848850132834151099038232776300768047179640648114389471557273796420793937794934446067369411791604565436656416286553749809178153777298342273283522766189869123663612008676504138558624135910339354971773984924350335587140617797031463859987452684696247481351393774827948764126897253983496686974172338110427913287920817095089958533826042136590402055763342733525384942248773891705163043074590793161448171914480229639965546861845755548645950412970765081925639133280636054187480548613672560688439520618372881879455697813821617953650010573953877053773350404895286358503186977402813026668339504143465127706598871439169410545449386172951147811551757365481138219638496670185498640577202066290684286293726803296075656206403827604361364394929865216593782549261551332795021919882793000332876963475687348400139612254993788032431008849123812267881390414105102428046288304803462315468666718826547391695666385074324214053748207734919893236885184196599440148018450603624706406981866349072209258555805750147102367437616801451281757014151090206918539500412946771099037316691845632339966330508968779953495404209227114415252276720174103889744839455599044631139354987039663510535771333335001261469687376650943599909660426427424454635649995186464291670038863164709161902694748245262991019381513437031711202457964605548206878715152656351839821019804901696149694707945539583844790924297969093073869799798973893689162774011704582982150569918915321642177573865632471683847539495339597647675655635100419983728697949446477338782509202743770918462168326245116382477803926276985492255709853476929350546172166430205619869532354670649436571277682941223000420147678368898769817013115232076819686264628174163755370325299712310046754463867484427388185661589127467263571050949422698041617240947173680927445370812837451161365548926835398388017406328432989747224414526018850463543088190350156456555897509127418013898153672679035856785376585010049217902942870650687958485431195812985603801271563702899098315719161275920554362257640804260516582417411626766360264422488776373497055570412343702360296759102078760261550539455153861629027053744860332677856054729002546357891780661368584547207981796260901403398708692654299558268161678254412369247183381799034076635479629175415228336741106777162248389082783837537194833899509040277099786251492958930930212821488183850335250754136902323950916238410728594445013777300860803546797730601366971709746119297477787578538185953863377464771338197931473034946616233303111846038019252700360169495039836925257640241815261630664215426020161313429464913125231560416878038891786225442138295275948232883130148377931719666138574712349119065640022943561507047970914344057680750236421077558226822023106008286025247033218514781091218486611997296962284957528107392203616297481006450412340631884698005488781320809455816754065089543070799859372486178299032869294128616903602541227107407523827921330151292849812611445061898207079739421475643779304382098562069207655043887293923500738243015927026575283211686512626848586360218371668545753377403621852503328729845328960319022588807315804012817771763258016856831417428525997483858101697742784154766980523421738929049832042724775948403341177003340879201738389766094541457215903139598300631850465305244304687952148987890570474494212250915616505164524407827935653459254709869452143036952961260870353773672037534949595667322045912147958923998581975594507389302581619241159345159518950086107196091664255996471953419142896886237196052176258281982816603271082188835814128116073838862034349520938805306084172083281911640965834680545800527157087636963189984609897167281099455548380250644894882432971015677693854010959309223221434330922813296115555105245902098576760224110684332928145918441175990747226924047008225442667666313067083705729335777235462895713151058534259495066640825072326376056045499852718376666594645798663853251154545577115687054735308372825207952175011451876087360517903182622475500343266132290631099437019659505846843722085213147967750937924262592468501983025694362127945280323087741981575381201756899380162447624858443222627885756449911415192913073280882646591516680918967331917532327640037772233450586240697524464580438732586741713915765056766780651183148135015030645064314230371615880391833477988165595635628510132248217382393072344307957112676122761727541763257578480831563295458657862338751943122100147825993715757278052220785138507139428924379511155353359066161226916170585682685256847076565466029822303456361141439979420995311294416981619444061452527504413751235386168137582116999880999559360645592260803697843483695685640284277271955923353526498483897256344705970408987587162919914968349043096602231577865372330278118891229091760817015602532844817674942398468229976536583791687208115869158583893929750888663961880119260778003338473263941270208111552690841600694127844674284225762857287110680081186232152948082791711339089561470566820892459391251531054610953442812678939693055840056971290429164564515706304938803839566583997854605441792448651118648792150625072023214067145059155219132573151126016684916398906106824780379477912458605591072569852718235561576879946478680634399658077676886546395632389037335799823333809164434534271521152551362793737756717938290064151442569029708776239591744922628738844014868336983949026726855592026014618823062253237846102405780023972640592739417413854368559912260629354583280649499223598135116728631332607193755445800244964690905944386999203460068712478368187406651479457304649741193759086238762888905930126553153341800358747290123165323100836680890832886962478693014607227805317651962421008001110645324598465467583774992313023285107654013672516726447834798931355951636146246613862293089512256109758843798394716403519036931863876799813334687857796619456605536402994583481481831939028989309400752214622317338984890797541933267403761744444262589638681130202903744588841080202330928724596365624531357488369043322459779171253769435919022949986378162948222073688934291548997854429979541991678347305568482861989556570725928672971568797584662987179668748490867115885443157812006395660549262074400380230082026934429979110249021525643579890973469733744929112554505946680729828406746427729683356803957917224209823842017401995907503544429000414371563429730402148999784982928518856211189942224786375156066640982513158795936279090514132004481023964151283603013599733421131481199908317380517716461670472030625390181002875725640227346685103468205090894074414437973894692438969944183187696743386979543159103249875575417335952495210097121676148964656667209982287793738117679726135157628752487593156783252491600166458277122750811141237273659305204821538453502698110254674360743715622551476709052849973835274435588765624711853395820078116606677938487791880555951444889221424696064251975216023060979451584919068457396218777702625822127400497220299622731928137566148568118922612006107479806413385630063959477497449876774471076012351868064664247074519196802554695162160019499564064518515532622279607300013449061272970295119026106753391789161004223135027446653825504357070722392059008427478532932043923089243225176616288047428289031469272550676401847630261458164354908194482182208503626131778485108783839253632830374648532540686428174696301236515966914490084641955240473460655960310678995990669728533280870530041004927595711895076244198386114936865936532080192646146563020250890550633972147570526909192129085631509647103654268268428557554038416528245833473278768612910310498945029709851562859357433349321948220765827161933202452886580237655592709647819438230709624088671505651651076602974402628365151070480527333619403102738672304765060874343251201540810826796962136926785939959784808618138998343080568525604818651087589604312249180375960881192431308936925996127544774408361030525142997814917143532308001510652321111760256763363630128329220149345138626115064998292879783129054709240694644307251897681480160036717255510377151620575028596520745162570353046313668298922643267330753804160050198473969701030037292682030369421678596063009420969549233733900022285647217866131159097058554763403052333710080451678094724950057356002041485282294027675356592895740153231034741165262909234904579096181945953608767642473014103168893208871308304679410707693029361351770905551064675533368388260093414215563054976782502855904252751208180073356422440321198506931014387965956319220528914638718080865767480055080533539042783512317573306814572753619406425380322031904326342783087448121185811481776137148377344092846816382899174429060300020055436597943522612871043332678180582079800091602480140171332569120787500256951632790166730656597498394124139731786077924021822217739149494092071653005354093072674863241391048973300692256402366504512049411294519888289824878808700947060185979887360881676320676568220769368327014441587923520626337935573653501779511908309604702577112290776434745652718081976962761960407019941633097722198792349448168647345298081171121304592232551062320110800680839914141238595866234530610249174522731767022062952798047333513040869141885433066234635626985919502002567310828264602260875874226936575202598576222964574056097621689055451589335545760761937399106050308237738726576920007914163245076357357642827922912748065723415793428915549346387512173908486279441098225711458182797637184649467853030482711162419695118632206825435388787320418606075021805758397986768086350886992297086907090516765682304618229371046560030901183682059904873548926496214100134435898504734306891007852638304006580772515965393244928818049577640521241670251842822246420801213357417195032739264989574774043872853005916476694781891505365874954109356221087370168724124852141626538698045089173230957031939862944406185201269163891033178156256507890774308627491838510539898795008224455013100555187067018897689929990251760370312279904913336276937546501607098590654240649804331168728625575521028178466732151466875900624666092477143221793557922395106388568225624624278164244604793718410268685880149924014159415358893187755446927460701575749866478986669087672622709868680497495302203338869533529208973615688702476963760738394285870449463079372175160115406801558390523015238687064328775393400555832724528385321604202178592158911384159036403368825528890437412665793038627863500923045803418547687676471871787224663948366528101575112305883452393440221812819654542184556942144159190065406169788587073629868705074971291944620736786623082693958100103069278989295528093991675495865996861355013395776283279670545550566094595624396628664023124193594324437408726808671307403180829967528183615195398563582349714699108059866124897166870242216402177379750256343341612110023611573768950932883739666246212989383811280446088367509160987203290743724845866893551914057501935395042168272901285675218330965492274986206111146113841422820457624836624373066237261555192618204099760907575910699264154107034571880049320478712422272941823957429145883764116701589310231815682878397478250928818912169108250998566610423622940081547482986071676433401273356259631275953791332193041411717810538624386072659135137085636321522305518790064449378501399359439733469409371306985021446908129617579197136858326223957159335069585979868135784234921415068035498242976315433540297223971354996265022515632298103110380266014453712936553544603162309960471837700812370046654320100278490698465595744184755645916814410748421725314818799823586791528635226989170197524146910548520725035851194233213937012790516715237712230879864993796750250350638286384624020542224586962345729179431373233521640808744851995905733772385762462326675864944428125888600856566641252588686290341445039620715053562622470769512073432373538352373957063248853083819562289697651618513134994733685804407444586581389723584267808792985192812128813657821421882651073858988406927884052465147169074632627446038893911695870380894762471048175611822538825359384374042425786399485894698330293584963574103414274417700817671912685537517692270252468220028481632280874864997514268307616400980156406314628954037434612225317618690870497329164036143073145948621431078466242165810443525501701380720362335975137240671522942303202156240686031040544832949769211853535844929268933287832288873837048534244619561677572579281329049323719897730483842409081312054970389233495066662188020240035926874650616538951595710639434963114988313119409147287729115116834091012402339402238451258257541432877614398630353732614586983672433257869118267687945227039136239139445855484126838738327988985880299724436723674783516304891705446079311443677524354980926183530662655869775658317723566339403397354959175227416459108223719417277121677564709872674340656884277516574299428236433032531311566960217566171496798271016262798997927195087795176201037373176205970475731282063142175549929657803532646282579721360703576294592661329172359185921337725051996193035337520501523718664845075363271633022076004834897157019080255198801140012189308849329553637590156796211055404827591094243716981453409523859631018418178715272660926301044311993442382671371593148620800407275003763368600319561326654155880361702374694074334426594256823095706462009625696548477400790697121904347084991979892116208392816164181351593191886327382828492930946288001802152531978345063196879978246075684122464199403595337888004411418474982375766547789450122823832229383494645543349280440069641785371894632135444999706847386694439301039917868407721017320824629776386124870313142337076854780479919647132008083583865777984746956798564773217328027584383555789172494763714597042817172291100437641835850523980178325637591690193428662053082089023162767862115191384587555326264602551384856198120870843854072033713852099960513337483469102495684016468943225482158010258059652165796390374688037445394125093966435754225693059726273924642797472728774958148349066455068917483220393777105334603479721109396679826797852635729893614613645765707750019019659843917273246012776704942075835253367757846088178591027906154250026208715503005832160636371435964978262987471339551529164220099584494315249991476013076609949411652215730322348505187877947939578193449153207416387006906209759686931274375852702536840291366063153554284461531682986104877225914287904467010541764014626703328270578821529298198201332297252228857281009644929180220971934316290036096793170318322753884610131345359979011089301364099494665809065550303486507613529915546628782778092433438192650647676013194047657694647001420801265725298066566577575163876962495281675474223947296605983229476601660752560726889490509428623017925185904439112256247067237747478354881962034367746621715155420443262433973874072202084995517151844712090882933610022456258298806584260982042362679931309160093066487917885098261129126290806958424019802660919697375308650440286323887164276353071981548031945750540580158617703481059010948461434775762434859176524460940604118415389045021156547251472637366167780987521307600438196310688457742506396638686704054133131180623203328110664516051269727090340648614010387357879345365992734701374582375737981636568909283770452054357575272169559870095467658259933939410843827435070639786612349416948847224847080781142176514410813629177971450811983448649138977083791253415468515156586008838147648355882885025775142960745350913081861629561023796795589259296621805202812649576190880483524788248097857322711839615080646870341765635180980345865129919300589379297066525780291562904331230498413411994751682986329725386944100436381707202713265587313594480133181355688227451231298801623839321699664025866003110549971292109205840233249649488927386406355417260565439682627325021173312939393230522842833357943821221178598571890143128536006503394749820507849951020321829094200037399620650248364590844399150640221187428258598454992661861253712189720841950314047568044857556458771419581267397001924692245637460185470506230978395925704822484819475559746282408136099470869169001448175426758802353324200949605161588461257915473907573025638035778989603480709585723278866216052600787018183333239948164373956599221292088119797658068740186069828571171028978235860503121419818538270738965746286389133295373969483329125692195408237469364111151837760984021486488659301498511127171606942023549868322590017254534773868786463431797829171665480002595663402690880960028693273682667330041567507963402329224592729469194494413655530568263972810509335783931318556655467587627058789411805927682079111848813384434082904761448053115850375781069279546427597702725366396577854983152117875699237270240701803363755919311752250425267320849737136335709446803350664428172868764614457600190059194537760514601889054440909621225163257775154187818388260393158227974601857548298280659297307187189401472539557714504655782102718429344331902824315901547900640034098227012200904731593020753192346284159604779710372223322247041591838285666455002680984945775830146502926332617166969741285597046488767581200086232802896021222411852213108984716418528790369268548264499865556877846037805755418878649620482356747477512568452672597336528794317279066198093083493534014940569530521386482464290552486776392248755091489831763002078842493149757638915818156143070262376556790532868002728924142219788674120621992234171904549278221634198333483031732212965742218301312878053345270208894672749776081685354104109900483401929668096266593798264957817619244827862909285305663899337934200929108409779262954796120306760477976144557867394072933776205902672014302055185559794083636585559654048586508353154794030462546140304667755172985122174473116465678996616238254838318007910659517671430846060910062492272503296906777233407968370736433158735476858563723985870530164089530823146224016902365563315617986914103722861655434622285182028754411456169950013897044603752260752629732978523975972612735515524424345848954226831753994534882983924651579557968619831257871271961383561911310646743262813331946006939563186012209782689369917845201844278266119003614751700318084881568101069299093439987310091065620786685267996870970435619166112251193141171079017071020724827568555056958038488484607470006597648210864240523699210455789647886707743907987088257200476741649506839000702039887418772299110338034369114870315745378572315263245521680570239197082360992050158816725346488689372756680660287437894602510844446889743076668611141885071240352811608727674588391300494290708956115189251031185491580618233446274530865830562821159945374687908230500482016887786163527139794728417098851368846363540227948665725938408753314581514050625836589882468794895683011178528499607949189481646938359902359066817518272037903367979942674081407277619934262943236299741460307935750748885546775792191674535347132570868474859203573050120095895156302610851374430553598192557521508073788622753034281628236066123623351169816815984706132315783882411159457024464488534259671811661773151703779593705664951499152753242676133104955809302813584436093697039287281356564363430572216900177942978025079369621987513658839505712201670795216535444603073987569409363942074714376946433500052048468917893531725826707396356462660043529259897190871327235166696788066869046226317284666801021077977922687529073425101944737551115430803158444460091164488169456917196719424966678831389273352115172567790831642739407226392088943498083377025812762015468050157667807897242029400111158834964742748912544802923095052232151801974059768882083714115402142177114491336565591579741191654698229992078392892198703813376120524785458227425551242040320898277992670946437419535631282787935574737855694500073748718196106894210706752741097155440039092404884799699682781873624342141443278699361808620397403317353985459282822683107389884265604800391271370356871711633420219727903491223552562939782264332998040851470990195356338929984642437584763452150959151012313982139741507876290556680070947250678932115278963633741538165788794361326921256365995701029365003803949333013827128480178743468014901821132625507574884916822217187551428446881109871885628633618436782086553339381232389746594396339258945557476883010224931490703744258877023883078048472512881006201135167487800709455614558861397633418693085674025505851829850542282978274434255286010132815566477709077957287420480607830068905089218238830796167163729476506749691799672508457845513334470982750034016224864163696699380893192986020116463951535628520816216796137327714004854090064021815992057520389132811571416677274070680908231142245802247865260979464500939957490306756555170826049281123862279450614828845450361621218981968615438183317795502153608147611197767035943136934778520516369537459685928569214295843016579484581147566799641715182772600046978149929231399760389467613699774459415576746376447988055642150790146462005990921389378067830088531957372818081215457692644207144026822907275205553510466323221294560260482016320840998968292092760474204229545618103820930651612861025392916478535685932649944736515917213139851977011370413414600680779791147493478263716919447160955208747847858439112940356269286802818020273669431701757685309567618793076258374721643245628735540702766160151322495702465335247334227781349354160368016724272161731063921798783490529424205781559919877922673642640475539303233594086400791447767659721611287057623264155948598412191838233807688682328644138390020051186138358072418623901079385476185672926187293177792931473165890081704300433952277414816082540160056243748261561472066909531016629918958808482048240302144884659846135211423123622157892462088569705039026562093100933003602528870913323539643615054540716539411601197687451137497562831844884910646099317514785280147724365240950601926069436091674613300919963753211419624985801172699952373278881820134542405876355682506557037662666834891378411054640089511569320714401993604914856557039868524185423676280351407027967809233818778738657343954381075708925167579119239122373489417496366265601745732166205092996804858352043287614991508047974458543544300021458102365959227828014999229805568500685646055809172586596706547503164499984119474154696756142601079648780795075687417237823166104308524027321203610505709292578026823244998976421608365583772388124890625996115025154266213405493965454589900084852730256093515738976514831002153746209476198375535009647884642350078200168846457832437565400748275314121473292020882707834101262110435570846299106636548157805611973135329892864787470832498842109750478060665853214065654831603929728596402242799416428722494151168548798555590729487309139878334320291051270884304692382058420145651365033052618757928777721255219706573406986821040870638717915850671907713767351129861178846537183117552633413466639493037630551060287218780590605541830955732795393139276624892208140727645070788398581903340422101089638857816398709276170651869804489254685401838242661813690371915839158461842417412765283735742673685058127125795220377408454035551187986836339167367198709303136000228896025624113378798784139945263462222918823740540021591484381616138690574101286615598314982756592135922519894884840098782061450899210492150565800071731768660234803914072422713433355181885438001865911417085126398150247576304851623476975657453907824344095686398779161853673750076877247483065396460197163559938952727831621393906045736714550143997213168214835972772491229173383722109910238475234177054538608122147739967075694307968447731737699972526093202923118543391023501075388762647914693880660481332580725245810527871470072889840281142808077779761269622452654655626052688134502911817861910227355977014565155580017650933350762280093548349614266058806221663182055394170133153181979654932701728927076766141181064293164625998353909781303965283040034732202901582066874703193087925145402982749668345202233067404720157424427970748180486493493065357787613947182132649166717327749488142987091974930236342702948624360084966844608032439589692491110980791042140946978863031943822089695063647687553507309651274117757582352302419254937916494671576337397523252691391929871987258969094487769396782135546323666423315337289852917037604309465752452312704238630930820205628471860779495043424529959222107915791657434049507911398113840515858966512731100987903538612843298615816546532603578411831053905329534673154527104779123867668431769091458078988223694126054820849445006146225919968931661881182632753513145847830116833587873360311566679249857391833258387052520708162399142280834267322943600891163622896125025324572581372600132226162958426648501337822061354725314517099538578361566805525434605924590850426719339828943542122073618018036434945198418957593250184582007127552244775751294836633898844406017249114945708663414146179021096750856231224408498861908452753681818713004063319211310619201022596814765793834880367993850403581379974066539919338723682978812696620207473249666366139619386813934930233822606542785412811557849416082018223008017497328343877060226745012894027443537192216874920362291868291763341036047016827097005007604399208438499381997453620058524532875836789576981491210990028543089910110820714930245340405167593864948637796327859695655014204457516030560853787162151451971131984600543225170709934428837605470483217440857425109979734039631219269570573543516050911036072343472541831647013269075585678204493224644097876181878253162005864459795117446236349678316479249862335745467983277453038162316598550396755085373000646070388545359539147009774610885662005820775440034645557904326922617502317239536124649462250312549126622155852284881445179903859220612167632283387230375379775797694030415689370391869160278012098364518223990135810263884686076676711010900445462078874164207140253153401044401436393088889379422407215656295835190228260996108510894250596464043863234439619829963605064960684657009225516067743107688970593221322590486528427931085625677546478327114912136452164943392347228049091755175169463990166967096014209455328598442487678692327373510384404212376697306937671346902940928360328889587510141565519706057205306121520776259125259298438279660386434953352999096412294686316941431954217025585368760105731710355043236403855099216422130028689253544901477423739245314498783973931107953620553188862503260032924516343899705782087126106569372718862194883988870167838334849414675031630204906555854268365447701755852433706614178386637865668162524623054338718813324272829108964034717211738510456245875353440240069736397132697936767955159198841969467476840832640478804451758258658753933838455314387384857761501200023209495766205969209184036064419994287012496150196223307758169992095184686514963772843610858183246362141450943078545922186370001189373319061862598703296782623606960288953602379608945794118542286358531927077635526421944722724413853887661378072204271921011359424466646475168137009791723244604131527233009694245525075884339198035628179618799202196651065396867597846137896125637047353669291955580884643191327532818417607249423062706260213760875591571575949720486500182745359197657065119804976025348403957571456571091497970437934400757035538687589362202609135849722204630063040343771682253133117496441288526906043387276535728957108865457061703924898711591856579500390761190711890507706832409212115910611048690130551797993173441375402606326649725146494791451696455590500569937012116608717469869815245998432513454159792869073074754356537797207882480069550053992999389118314204003917594062465676505877312509313074441399287644467315167246303997459673304107315349103721951769828340384365416253505162803309220690841428750967809612621754890903065088613190703768492766651894487849174389657561086159642435822267045414205162838207730029640503374809650963619530849857988118637279766324462403810752861960685318008884730583952313124361664509760332453926586684890132264418708765599465134725861078011800942726716566138736246941408316003311385827689364599859139660870644106235063745705847177151474615615976844925434285953581130919053372115962289965986192057153584603761699424284941901882101628673349639955559780151619892860919060711653647425389625173628428019439535572640697523191127640125168438507496413072503433197392361797851854155958962488933041906396826959299345742556289249910352223653478151387808338819422891942731042697150495939924660498263611878095810843971791107747474807617962343115589729766314932855979373048254416855919522396573186624102872137734667439292450412745017840712100191845032409803878319354861935943955119392762995838097661366484693894427360130419429147633327223957502979468946874430936283303300089142841413853751312811646009056644064993761584547356357306282795194694174697688345188556111263069655776934328440269707850144725255552361383534116405614106239109706938648659281239291169574051135831867305672751505462771551761093752419571738366307911285988135327269119835492171190335840907129158177369832275073790338185963885389548449427288133414504226019453037876034728358202556440339679616952482922081448450019116541225777855960332163902766161469081291445035408236146567920764726334438600479699842634678233948910196879393472298532195894257848044413234047594430335189781515954493682643055209539900277277500414213144183968061155311117710492659352849359798638296541126726998379485553180199506595454708841934920653052761095651073031172782233605520712435298632410958941075053868487977230593570928933837816648745277370624068544956851254908777629240557235123123001775324574827789960510603358173998912189573622672621493121847994797747334042995389758987483817901179135927132264577318908652835623828729727310061149533531827456851141875681754351670681822224699449005595490292481375090926545756950394713651821496665974104388374736973891013217494786193625177644216994167233937539173161924111441884925683757245975742704986406954651114637455201383618777511024347847359142694100589429028166977779703547715264231351544448247274109069184481683816257774068571204238618280214756156806122990831063034264298488908495338696156240353720287553174819078108429708683171247502778271346025816730462925616361774572586247457914552049975084080771626470348465844309311122129386835309644166003658015779429505810711801600540722519925304011906672410766448528565992327679490175999891662855118373726803266018450979650512888168277674958445777343027968074778622377948690804690584602888017312338944924265865223825342801926486186792905033001438411271739673017037543824620473702320985966471752959438473769344221986338079586676305146208428144370987407018152058946454246185857750471911420338279911952581257363557074660945612691877819387762879920510604777656260094949177105417966824540853728600768371300122675839005519189364184520308085170467410475200717207392034835430128994052387126761175789486816114016224676275732470578018944190241778085471286649843030205885383806323455343134116008813343637921425867442517523794698829952452902122171336789574290129384165623226835787328337596637593140542244421353593917721350340206468703722444901653693226780442866855221336250236475827074539801854404547734141374699914467462511001100166566333150428334481649572069434919660573980850900012649856987299441023316689383148095206081755423936147029061305338329550110768426246492661276658070307465454438195954251797073801623333346795127076091172485393007227031617266982801114649521988836858417545615411733115632367356085041819514225884043132879853232228853775195464000009434616653047232805421116354760824088025411739406396491372804063553326073550963891190264636235929444105229465698392449584314693360255241329284970154356750620201877122247439545542976177217826569187937199040352817859793834626991638385977685565399448517998537539124207954273802416839262469364537813003000307523383732836938708568092815928552471354627392983266577881733469391218923415949819291088153930685974968610943317783328043407139617592584306883255885640757417084081964372692007853999311983465776748664269594006300376511986164765127784170689803154272415970897805453611753325355354783469964015698939981053038158568082211921516814711026637518172652933806715708739811159904614360124751309308508437905837978472039990255697090388348375884113859149702451613455773059752336007579167355204697591358510918574478925895225957950613518673410188891612349353472110164225846550817383722954750854795999829719730375576449485320229288656259913253356289812661660572457530811954061550544093450578791343348810913648721477176283763817229995226207884547309009630792433824925900695829398947279098037957493726118187897348246263648493734170700836160481158815050242047300228914389664744636900590871025462059401487239045682809167472903394858516123975607315203434144358720657729002316147842480402459273647927818232958833337896472191369644127857482630634721022274169033299370272790926924368509790743937993426163471326401977993376574150108548719663981867237628299622465498759048402681122646558301382567197313832017394357256291857738623087683486583538121796574221304403894932523188677222741911203483814788097570672159390783352470153312855469755915769975490470526202794764169315351467111127356605114725325853987736207405127735901074364291418971451076039602765434414307946619662951270435021729547728832581572962044729825648070624238558527329353915679446168258619259621704516843549937171855152257781157960767857211768736264631089560758751044865461883034133682194423226786149146769998619468675270045074324083488603648805657103515660631885295251619766605378892596097648709609759569233600861987601510347660485073572991355433813619523632972077177125858006150248596564205267590226668757210975567142693556712404302172818812992837640598533499768004077143857936235665612791305394378532054011591021390536207433220183250426270015678629546468036628682014167212214493401262353385914112710188992532094583965251364217167376267271913970220616209595015768458699575668824416590999277461982821213979346503035793631265092599978987949646253061544267770949526363209042475758642517879223460886932134173793285755952399622735039324315997767259700004096240729306557630753517904712000592250582109815559505080925091444965550909230034306157933811611347455949678819136470323291668927828212632839128576610956420079782110848428680667688458037427526002704184553698147309679960565130207501506788466484096745353496969767350779355530067933408512928748360976468014349788872141937181316959028526096917837457497569518388057879728125428614113426909001124547706836813346721059120479892735292228094922563922331597564836112935904059043605535514131775638312562402240885853298988107672483306978322636624958990797036845340104689740506221486688591624242867400623082089647237947463992112197914316748675551594509761756832646609150485894706400510273569196280572953269367565807006939964938685081791274823574480559607783124462702920589270031254473008925166028876445965630124528504577462403455336922071965840458091767721070860045638661958662361093051587618222990231462552526452811396614144302796697328831118671687799396378773978610195805180863108431870791820040690181248627206207267270657631004027693879721845893328976757061663368155059252892388924864534805736968933357685313032301663822884265306547564435214717696238166991192509069057429348026738709686048078362870456439047476688498193781043931563262324509486207192804090262552531776089070775196683230900583159458044345277294754909745738698235744147123617492396406050915412869143131745210824614633049291769414576453505248543870035839181999993837591689515419913953612096167519211797030319745607730019014522573635286272927803389303614138364410536243553086811715589263073015078384408904632918628012130302286342847201909212835488664693020525318915757282018510497946817511079756984202123964799130586259258537955523039222016033035887520224784978001430437156821903488472692106061627191681774402941522483990820049275476840522445332353732714422822128692017489662236112990140131047637200486440367820667807829657231925245069240952054001251324963273373304315336530162259843200853557199708699598895536822132189148532753278392685546042930112283566232352317019603211419585320891345879467114893474977215391789925460447960098265660769288979534700516763617754763157202712482149215269717380076850220539559951490509862465746057749749709789758107846267462696590781399052481861627614082452152168079300020115634649978096940970845018829119606827652248909961291267754479429066040174858583795104769972407683506769772317839090379947008935366990184724771873568962647346568528987880014319668878454097367228805933069617537534452457811782797209057847326447089386343677008520644774393542027793972306102679628554194511999519848713100036910932966618036085486829521067081378782553294824231241517320750705031815979723069530975506054844445520884149673382055261270460808521305473848364105063314568319800948855682012578928071785593238488653585947362356813782855286940694050191528615816433693027713954952238189804106152664027506829524417269783523316086409401933252386939406584282215669349774243727964695064583615022660066140107761078871281341225515112076827165533046780930100065420344486721829146318896668252099093930092967943767520812791716319412795532457569700688776982840735130447025778143138552054187763162882517735753948117668588499207882526206438149126302904458783144187215391280395526247408989688309338381839896032116273223581425494740100218169757622701684080886986237774311464054246809372395869296014600195583885150773422393643373734927916611057948589402554825959309986340387518731886315488221293372996482285883572399760519993379495736385211368634909575707778608249729532624978447275859673885434233321232024280303818932221542907205383011900693531929347875425347427016855752788902802872400236217687871323784113599664556582708262423021618478561524067603697937181286928956318300928946909797559860687366548215214405500575894159560201644174728189377866276175226838487835712110370198476475283438904952475556583664548448152994401858521711592352160940989176354761443538327615720895495500240477481328693712715950883104972290264310390895552406123107258670990117782122165832696176131732077975425227565902367875087124128701010108837553215113769862554605436221606571438765421920310695786477832342973825392934552216518665186146968549412599629279436408272723784080588230738263025021584552780774904513231020268453582709185142529400375413015930095558108347881258464594521265533278160566151190650532171543733105667660560583059979638233452759471436602020396414457290781012926425164783247831983364927167764062795448993209991598302146639121825939468417569717166311528024496535434531067044811730063176636689534688959242055974771656164082878999479219796654107105653650720397358640965955656311450672072291389998920419626516840140675400387193392302079081982003550881641785187218369036950978948850413051599639589720912016440233791018578345980507459602906116469779504669537951775981150253891662061301844611315917436043158868887808644221598591720983064452789800393004029898963268469547643358676024098906017706092234195078259609976443148774081671293646949991076791179660427949394904429968066171774997545928835836016182741993646781246881920231983839000417577122303970623987668787274872747262028972757169959183050622366912769045991491432321402985542133170714754253682909129037946934138184037473815006303490263766924855755395497228018575822383415489809867356031069973372873402226978186923102298056324028024589051279134365345416929780840406270562755610014336983013461011773953312420036009448492897945643437731926929211755560213993749746023500531170127123724509326387595423209005926586241730518231105489844206344191646903641031242796766550061952493193343208259630439027237410603884895980509987881398517939770777536971178771850755724985798092122649709249320859503128038769026685008880355545678017621261429916175704699206874032447969030243051900335767926567638142894574568506421916866145547977981017330731055712167926889141290219948908516928246959027306630239583369807745636787772124560216174273380935392562124263864268170085898883675043929597122379452071118496003944943013889382843260161326856874412875440291055860398669911474132045104493911780810111339498394914651445331303043012747573174099325484424786365675906864633746476995182169170894290708235032175946979749672365678930368775760002487460756424761867198847983454871610886578292112497228498688013897998445297498490463087089452255390120651766531566587968782297703843509368420452238828935787324928543835298796542816934392994792243488346560989265729507799861150210084210857693660013203978874489869839268051111332988536240474706647803973125470138121346909996510748945993486116778149009103070971734084147734588607054982943717899608575657252077889199514719918346463995757079299004976499859362569221426536977841372964140425951225899865506530508047882117275264441115900767528834107017947136156093209579567309749511251051741674734022379616816714158802074942628495395752274288037562211164720437360609872426364837712438073296299297702284837740440835430702439427741864495008724318821411832640331253751407696551833810416064828871334002558194733321717377374238760534439653167782148370047928578095358556652546238088170828783097227859750986088481578292451241602446759686298768187946094789181795376549166542016397006456833368725251310735754278856080772642378566765137359778294007623525483278174228445288763898301313465844129851348773005790776605933063900821370587546761691045266566951818537983078247300434349878464353108510535338694309604230319765947076111914843695141875579414702731673382787034733212471849330292156034132676691323253656924439219750955093519839780494376427508040554420654730851573668337489030006998477841953495662503442103631507793708544128382636868054495973973489245836017399780566031092554565265015285608983625678193665762489357985156669482115253528639537728026844024460621355187785698639730472278858568132226633029836529685585791559622515339592427695262377457123995205662955843089237884374339653300353014480938298663975794487151470791161601895234458819983536284941711042143618240560462771285881805736492563991061422341827294611358156033337226962949236082741504109633355228851257532425882100535931992523433603334073406173659106633741792643360779554731153903641908292688663204474047271003032164263323756191205352638573097367342401198347497653854464231972667615494513281948359123902132646195538172632660113735592733446583049776566204262623141576231483010772870852061287367641309209921556493092693179626174636964587965447647138492139626032960580501884706258803962971124047784431506720159991232632720281401397369868222138757517073736767157668941952641895324161068598048117143909680471684235788965223507500793726010681305598675185447042586720511926476479812103016118020501658498578790083833858562404927838934399853485648110919666909824697586958301539735659688142326249308434627283722781677174344343809426203800051761284172153740031798325443133926841976786655088535355879782770532826526217165502656080618304064058765941478883639934295370968265668622195105716171949020479179935283111479741141720630571291682610751921568487098743687987723598973939666259539266368111963712667679061990268820674640468624410414953724234654271247483662935004017678202276704637128606259309162206714579814667413730591964680923029339268706027631610681683649535779884900118784756396452264558407026737622495080531345038276194930925847727796694086505790295113734102344224664491133846750217665086143780063563705772171835782332381939214180776683052099667209071575137747413896273607712458350083497673029281748971403338480932588429384087519981143819953886086904743550440857584230076822144269404305657503768746633175947382796156208566095399208352912700347042473182175145400684680849244647561790149280929923343685365303458096596124736425339352039103353778593509077841044535394762140433363160411783072200539500480771847117899281685333309659244890419587192211506120136613664621851145287726443764893691131739276163046652069140431305434949044482567967479729358312064515831383271027095863169700226705107912584837847205068200245884694207096401434979581949920678135437042591712746752910054506089709711408904525405150025510485072056597405928230020813404236241207231436739345139330158094982488267644386609994899814604478976043957925353610520211002998987369615378070147160638097864619829137350088224636343675718602932929235740775168534306589530574110440243251789948806684419659864266385644569316736428458483979328258908463879757782247351618993005207495661682941535526976089573327911586447000637113239309024074695918853178929718355006905817354772015196537696309519512604990557362382524924630313751453317274891618061320167510940194702425438872414862885310825891312756596623237346084831001980228214421061840008194773430432319154807294206168373230801476521325162199841567191901565689417777064209308756631346525652493097749734019492627119185861072647917064186109448894752701799379318373146300786879085157241700601982725081210492360202350214247272533105144976191014482189613042948994425807385085721285594969245282359830839749250602985356012234422407236731840480795686773324696984492049891043534971020956473835665130073073063757105658185802689319138529800670061915811050053571735644788000413743881905284715414769109478643550509127583021116872903907345446909650929215046417782786924063280603795259778125322004434863092821247726393899289757476252654148122373392167681899250289214692316035144184655440165354404443648244418202574698986064557418722069935128055000860510121709410169828653706831106435576187894102401084563707072302574206368230386521398116518742738433417098303264363774694945957248007046077482048495626964452723490254113693638829595611040664490565666516962784431071196997034311971487038144569660806754724544958743908868786428833238649949982457155552773887602416337676851864304393276838511995767861803173174336001958608678328888818747540952207170192573699570636104860922941490060627032206299738545177916751575336272606268045984302130321253844214205814638167433040639458355922781720409235051142845377242304742052608291447205603541878569178753496408570037678832348685596494654347583983459830642562847451932241290293674020230463055715714662576324720007353410896379868899810497507693598043764683466316291520922155560340083038602226849925774251457905223240520027970763523401516235509803844691969566894450567870749843052634731808243582440459714107955749500628559417803387226448884731511551236990988002585571539261799531157104748161201061646472504497385397905879118988230776431301539174540447380575723361430366270312827452140161499016100428335599462085239972298727127651724483454614180347307900912992255623450973523208518624677037865172021857425056740715109870254504789367109913656506343791546970899720891911790905165269084369973162219607982975269445624770177092304729558685814101100471948787239561047598396149701044222083807548750838739944198212407794270315925780766483035365758727602312551082486776722893512154549871463868821612185918892196806231015370145246117918672082612442497028608811555887471812655516533728420014200829223331531140299888912407641788452175393122326586573586855805985033556416674307576837297612960214665679260953113911800415099170500628666432396225560753086657214762929889689587090748121725170310245577372545274095228631914443674390116431034271372183209214090159179361403418613755449882486152332637943224576608621474874909149190579977184726981735619710700026842933299736921983513995876048751825485468785854342471778310363880596891939794147415669934137991047036571243537659480821782738908876947841011764255761389297623963613843799304653905941390811298024530753662514343589984416811684594479315386401076978251046594236180430519243755063571208437421296641152296202917832201339223703353355061744294897978439132355901894215568435792689139188836361336206867980281812802963683420722997562864382756493240570214763789959585058021101349567352318106437149290754393960765652118269290515341080943395855528648634832918815610191753461357094699375178423087200833480154713431777838453189295799379202976213533929019373391298219227286544270949587295250816870345645678693233069406896122645963385889702694532402807724662042381844070116187470453516224299218414325940702547842126791352363558111958473923081241436517961431771597909046580018131404968418891951969856509619106706051108647887984775945718171357095291105703879014190338172163838038828027553427968895461685765894836467490625074003409664753994313491933954470091001622693591789206777753054279520778917242340188090791093039924121330964238395844717548280460955390374139152391038686060602369814185103155641249629697613939533576477968785468573573878911664235380090271604582016794350007867613885161802490078010345275721427605157646391623659255924615088019694808007088186747560840344514753243092781553109548686771772371879336670653903385898559268853914557062363258327932734837073430935553969727629499985997203813301007985504100824460289483106565632106202896308085601419252574018049431158337755981272264880506953198078213541098226227334631484934107616305491650587851702201045615720080382696007772550139172544239211363968079006172315245619239098128026590518078564304306124542657381247275874468235451144233375961159739277337256899878847680445354059065487306531706526006185152392704737000455593044760198183585867414578309452227998297539407531317919096230041271618292343821207549718869254684252668971125324715163270318697053355268944040316055558346628374163033352859856844169576897527347804164898225137263159729521067753760747313753366207398605832851910842619682641685832119882790268568011275074738029540830004183646470954138928612432232507459761380485129397674699518493519546703618172014721954094343415868924626201790746358135148561506837701042966717118486537273901366260307160894633568082127800037207455584531280280492899324608450706662716960383521386352848080361181114017093528894368985190232709649527594511891501025165286718132011278128155421645814590372652595916310419582120860661233764042444454705806666006161009449381629786870636511299666018323596037128151481476344659498112377963711281215897212001040913505986025634423901534233606563188580150284037776497621636955341340328501218828721194376271174603297976784961873896323990615400033495929042127764119658496828370776134340976805033303872384068001229342143385921122415195982543211122851429157693818036507290239147464063440910195966122986187821612761395562849649654074134055162741472264150262791700535963583567253312510964551887550319065083523762646771005632651364441560576722116995132244195498926080955719433567688168566642937924705792504940929895399508713035755360247710507799392851616245888428524339136626917623375793635839255414369195396649520590326684011025895093360686715068798090619818605096044525053185491830176415742683961471411347803517292148467912805633652969528307148779453836680022868728616426798526502298924230161890009101491636058028676656077191514527554842869342937691306300764621300112443361581751249205676836426255790249364716580789590768023972469877893235308669620880579566808285898155356206141170711070464810370027764844631046158887018199285317481759540118783694542846277003729104409392814867206058194911206251872530929489759512078017129562610434267060464466385906057823051887704363168283963259320794089209692221195892450722980179567804774074872678792498683038812238302921638019527648414814929436062998154978457928764175095007958196423797166277547382434263487091584578315490885364031622999456743491869457609142558695784637352161222308334160995083187523796045669126758934265012683483559170059749704868942791148335583515493540892500301122912376482822085532315015038868026329409844442558251703566006111807836264905113029196755776712928762452464564404648872990859927423431306756924439375613060662154658020549893730740543831421689002287831804220599950031695627952635438081355204124443376677614916954459043791832818897801166371807998704471966098502798229305364145299833506338150343708040403471029221608890412137528486415664556208196776160323725676199795120887208470491104064006827002289160312072613962237010656254000336802134744202873231205251789415397246917672701121762977218484205500682102276950373516684197199605546658403420732360597099356650887010038014795013964069479408143266703409422880917885969237840634061350672060789964811446018861776304349866441974708453599771358290249679036898958790233093024705572586864735828297744601859802714885893557900849101267980778178301977135921204030598153994864084710518641318784986047448880521230340593219826825233198786591972228591105910059967941196723161461131161631029107976708603323168692348679525354360918568837999283491086920200376606864818004674241526836900592570347671429758759171130831404025529300089702327335433618129525486769339464401126332644687074320437111887642028372416573838968915884276202767057666687649384157987263221686996581490406091650394461271352279225514550143343654781127547647203609920422729566468824270893410970609756455101232309141116700966262184163951067780962416990479317106710265437128168008810472007137995664768382213849763164726015541095911633366217895070754308333178409398090306329109553522948682857448355374025863514588490720856852037602180666239295706825944956432239911334743673439339466927305073042265013655516717177008634083307045844314839916241527242204500012177728603824747876751280057145331712298619589714502080269681019742200972153133599751910457101097100134783805927839408649117961370140564891439301202570099713226876393410098050664289124769261387725854663212047359894457920514788806446924586712912884231124415227220771843184641148000249799963939520672161048169430022793907355649363580618972911407143705656652250192329710279653953918274034302270093418495591574156923015305585756420848948774470189387472598928396972136911867565287270723270003962095238023185776113481791090170466720888438833929321932793825681069968971408879335137652289913877050716601947158680103561796857112641720521006967911075842578427533883792459258069422453390247736326427672130586861558323955899389562708038500850640945772850362948639622221414397467806451928796298609680336875211007560732324370194689872223173358102444147904685050632081595418996179256997217605799218000617035609411342109826226512991013226720520225728766668732188235634250693444535547037836612572364443942850255185163552173430558224449750701877246560097815047950983960583922317798471738789507709064314886797994818321475439827928286497649199573639238143407524230700943334834553307293338788171650555456879267342550741201097340052790256379578767470311351657859082877458022296028555793974978248733850836705265307637586481367561876077004288048669825045886040767360247908085813104335251968263462578195883682309306608741526289050728264787454664356005604932237524830546685509669351120592254539677161904563921800748185478258577038831628634205344830146771931519060847506298967910255048740992196529749363246739743370837959386724428103343100596926786864494288860406568994257250901491009482064055119759875219847359738625755990376356496731075190271041443942952249735775189643039002586804689911975747710747930871832507018311091570753522567971616351114261666045357085874128223195619797032127727611418017764011451190431989227709486316073339341951346340191718002596950808187092264661253927169613494856803562378020129578068357675320775760282805560855723863749777713675762640424480660381877376415231282657306314865697731600356586930598923089068157569196175341491458756801023176189000491106603814593486678164429908046543207270195691380107726430233069551831719714826671872368410654938902064774871818855349685522954117275371233801556566096460412108803196596764459007495818588839969150233085241400502109030924664895147491995166204914671296525999398703942407830527320032193817548372107239922054186278299465304339753897600573434446232636673114917024489069627241558422793821426817893825914548833283064632787748396497864233172247495808323003612389984741195276292387343889845055840238276704808933919011518667973083276061120895726051912840899694056100883295899081103473521332040011086627312155476204830775098326765843720496067359782995082799545321172507344348737001586154132806566107861598527967377702939960823647097165816629840669651851542399214100510299667057421383121709306881572226569981939982559478006062715065342739856638292303936689629132493979954590649138672640545022958228067554696522889048557312884874168343792334054748470487312183507300254280695637369244276400527994904942040715247024860701778861329426480065996576572642771333011754754445812113647604366135903502254179729982621606392771100706871208281333900363898331438660991279836867351117425890363744657584156246128251680837964347427021506510851599035542158992863051479986662798656529259542156063351895199479182694417826336657905526433235586360449171589616767762308490364600468503994484068232428610446841301474011810283662941177501512125286341095540957896061967020261342295406708853365362501075933745565555928406979501930406868873176589320673293268127021166791588856083052456366284490452134023984413896179638440280937954941658547109270603663488528776599142904873818188390221251815545314050098329262709267361047600189516877647588279468167363684583453423212908432624890504874738520469154970749214361998550934386605990064856559067301157371505216686032810385631402974544053140734248459480507032911816753160010659929796242300264531817702779430704704694230436946608345644415760288936572328845703249643973989974577672688011463979338720021570468487962974673909716470493494252635996195012434703324171154836822182619293394184411644536333607851218121642154099080331826104566848103225758157048146355120135062350492850230798007886964716230067412460698910099081991324769241246380523356911538766802566486412525847236959771375057244318061504008233371381396819390672910854277457912487301276794017207283106832454217853993731103565708622392630968250992427392335207596321090997221424893922180736149911949387110390385681415444600491363981968663892759478551630942725109271518320664544478377732647923956970299199893528051125028551721024763530097251908746709703051894427615789352176819972618702703518221690438630562000358911371158036610558813836362379247893902960348981973822677737476198446421984350483999784615831867910163858868920696793800530111090170271906731439198764843971637414811576118900533169997917798029470979413030707217405665700166949096552866108347747947353506852187579817987227976013677986603055776333345541119831678226718642231896039680937803499991133906481858565214023352194574455926859382967726972258243551981858219290818903985664283875485500748267182426181383170682837966053104787457783076140605994764600692231113001099071826452469400420687975182788732394204014433211388790286195065066252112765966305782569741486655441177145733694840124002832219026081575229039860813363309057075312555703353430017437532661219723868041209731558158422082165783496052938085884829564037473917226682997001350593500297011680998948295554993416041101316977579369335845231550152998821966301964554455882542488210964931854461957551161832963784628593777975326160689964006099759862250991454121178162643484147770298452284668576602711003514150366872825787870706207778559776611732649916127742959690029804930323811439421712083311750288327904519639623155386304601143684634889559521998627217250999092212797040395784959083801677026718896188333374375730035467987707976475634096046134838100890168646463179483348142928828710082348328623711292280104820404997551874606798031343268686350810036430518659250984242251531712548116411052396972287277647972811160274510240553319981931459819320616803166721409714748938805249327270333443853441899080368645474971410694835940387768405874955145495136358039807031323673485973996169959446091793596007128243125022574019738905312314236488149601598738060734547066368184795537507978959683250900234667664268752578859751913289734458419387497516731951126436000035515237214688582730326304644343641297623664184810283267498064378664971988102695163244906795888036612335338423198843616747274496709404578998639214566546773604316817705606269856912002340310136373098117454774944966549794989783914128417872697277881165321182250581198638697820584074701602494903036428179996980457190804098002515483825781641873249755151081675360917342089036706329092570745941301418113813689008055725214898757485080552931674059547093810980059898840314569238859365701750942171501905064833355147722200124528856860400433987443775903090972809762422339102419088777464827154874436036083647939682076262239518843846192755250416763003920213816062342879082038030095922928905187740141103191881120838658233327110525911658649574791904968909892333803747482222158019374847919669526072341099811418158810276762847835289404471687887390876163635244563222525134676267575481300755935241400480623838217662892387063221853039436951382158627664419146250164936331567747560283780433363187463982944176012254471486122842800852071504760582626409419333075740202395134499981000096843420770612274865888140858617883296258674951341879976126014016498804783392670693872636762758075476760655117546203488963619852885024383512802486581983287011231583995015199456856451229509323585739582689682160210574680514849544253192398806488118046547125617142120221997656673453919388038800959071789075871681512077978791042213157727948359247011168036450061695016655705456191659888256146405518656251842067172246325874449370304361591956512553502618551425247589868045482948954067860190594344285147288431225425038107497753454435139682822008396271790702425529492618595811090443390423995887712388151448543717467036186758963970647481807430787388991160510183632311423857302101996531243200579863628570039790845225999551080961871675301081988096985276699326377580209705812833007501513902761126176203198696174189441019016545803465365699738701320533045807778626857752619656500853979382003329112360186715700646910930302910955163082131075595398410293064857309954703521557350036935642603660655743221325696082529581450954075388472531269653583369785798065075557168161912028376183970684698166045672590755119761858986258430966600474331271173947923087567248423428098330738896914066258226029484367699572020995320133105303584940447618887675155885210080109785004301333718927983078707832504813976793439839210534412925370704133229165056817386093750199294010563037566449349587862028582116459842938548525409341402703131609389154136660959224720778577237766126070345592292592863511091990910200617350577900383263122636651388464599362977250094601664919844952136787287472497249398496409992107634300696035740138370238993220942714735321796795242592348820503261333327814099360913066179894954118730788211077820017176535324806717103271935581548815723630708384755915191419774199668089369084293407630494465003724962169366332022679415267545962662345372008447291059222026829002005466986933874356948917951244821911945286835379118099608736772782204250046852344780313577828503159324967333166672683476243359934309702242548311503289935784178330324346368169626484348613200177806301166140749755017174494920679471165395690902554503980680913042754526333569878883038796929594607968596103154852045030182034201872374910838954301867250770698043849677368774723991482564644357949473509963205607066465225499609723867277215774996175254105331802852715879239550775328097339777560237592591227437761810575364600181903930235358766404077642168922396398823522453625241747117548019881458351671847574890311680353486260533801639365983113495002649079523258419997344251250727650192416726041399510377946413353426079756103247111914487149397703769995156721511869621285171720390745435419478949045445657173934908123847789846887078062411703478316078240973563757963643594616083011533766355918810256592776374037377976572150293807864105944405165108178170172204035699136609176802874437154665636420573124801451761199974106494855694237250759465255815418137579608306445397793391399062639055078920982102332174193341453434956390188180310152556619682896451782167006721570551651751308685691506946575570662017617944680310071773530276187108437908840755670932906944850538252397812397912709863622670847268922976287903606156616052974166694362608720904258603437329851661329452713181523868751521595183247952900857524447424677165895411116941973379894336869854539174006001002108187750563035147841804071832007567620358367137598542327992026839321234476779201065526345904985452063454188681889211211616331780609241124668425119395396946485082168607614994432002242219141046499470358704560821755436213378986774756200133765045295886179937764729841798103989178275340591911735904817921448341991587848862222184820488618497258099791788680266148446507516120597720852728155823895915233232246924912936274175924090622293776703371789045732605249692636103247468111345758051786342050765493567266166215490862879416074150910679801851568257575231887934176142835232839480362838737225337494732535020418301712138568970037229524562843902490409526049080210804025317997469316969164211648624663548313141951791490003305300189321457601573838402287555046728395174959425135726932669440945265070407301480040150271969450201442862753483259248641387945803530540477928805987990117856685633466290509140129412209603526540206857186014034636290414225208761025665691381812093434191716403342674374338900415825773109301811645561645013011105505841259884035188683105417000714868243637964322733400416385279083375995555767956036861987431341030161349279146677092133702570044102624777227728983535708116455419428124092792439622071087080790145243491440943649616509587254350106011135235454701148209244216009270937519737419989837986772952603882456420846957823399962771324536963258682345925919959642778003997746116401808699832446384709655747948602300629744418113076790252020151530983526431031814950473957509965810217415309926896786586484443435588475282237328199145226959062388051240146343498048633018690416448875641856311540879647377210960413928783410133960798734130596732977313435762532075369338098963673711494821823812282342714682582489618665849711541403515964712654767184007794767321424159229570765279450396562128467358383003501544765297881070152815632448475649802268399741330483616907544012502741858624066022218071609280173877542826405317107274251232423051538686235687263407142717941727737353285966167486882099348380911017893354408798570205650368997015120200625250748082459660451041954891383447735784718798304670474031827953567028828394270552809936566257941182673204204086782971590788893022887677393534162154771171268082012625883683582664770781968735068360156053530840018498056141431664160763473053370955919969086995785817691572925324999946926257823496302301588688977941765241590847898794698885449197211699960976723897976535788227235601536225035252068708634566587414446860404650296812103888875826530362299938472539673065481674621843841175458976378778144578158639529033681598661892929434945878972899704910005797844638360410997971723569084028363566503878111165761249845153787625783904264768438909708887122461084230395772634923867168829354557758477852736567626117880897142481427067840472048659308943634783779291958880109079579030716344637083576895630186470433907667054133401948978154986998375887542096732431768746088810492545252757117889865056770243281084338250780291812875575373613334450569335684718199661974698743870300852420446921882084610713499271028745573472849821843881429152627258329935662291890789340973194482461501414463717123644845974063249268153133093363371617535912663664342100522904314330871702938162234400315505714145101806771489881039845590838658291648913959859739447132278642477020130590544765438418718925645710167417248837761150091643075526326297331201823611803318059045003697119247362927747418922919306110120642218913511755746287957803284149718848709709753720487770785386983777889271723303780254544985128211908020503481529632450593124181738982462268238508627786151211021422611481492759519536990972972625109113862005439646366409804715326371738493895735551109578676844343983011490547008528268143023582297291897899683062436926625396668933451041099602721467457817406514612587792499101979034436560658169315685904091534546654895060633545433198760441714070358198209444611575188477095114000154279032025473170525845455807980986402537295147565668238675083354539299904344666999680211890744453091501203000312705681638725218146149887000354788716510987376656695309586894020251807687787979842068027981783160995889840838985587500247902786604725217898379853822547359919581859341307579080020429323092197732720353194686038333666618050313213410506568647507278178869830977735341298841188649429695226364888754842417906557695697624925608079755708613068960586973363160280536558313963031792135453099755004399106764304952791094426495683590497625377299768420848871897585443469673634005305045142366803853941854441531700133813771148376313422753174667481803587277583642492098939445647791799612802820745721212209790153257420717746180255816107472355759053126775441922493048030657590341466273621652744981052431956502084767894976000897168307724625508012942967377223927260979593060176107573027741735216777269771378551965726710400286869165133129665159862434331775276927098124277663122848730187138223689939184779683568663222799962737595187246615939884855857992814815859257847769739390512273273307512348138551134634195313787837836880707360839161597700954738048832876051724688114368329807363322764470273746906585378622144269617489935177836860587396206424464002005567260176595288840929742087101395628636410587588698344453831749568137216168217011017041949056467854329065254320754861507778678312056191118543460474535255295695079122568732327068256918813366658392612902481126706606467815553774235113362175370185082643939795164320758455588569121282159948552154768270082422805301565404565353100136608429095429692741182175380686744320202983093378563101014550586697050613226049909665942616281251154898323370640808778616884177394151688273699525390716660267887829766425667008040897728872453880178274099205439905119835953062313173544737634320811152693900742448392909059917389313946947713500507299188704840316495129847147109990447748060986853262675467965815194760327686060385095128920881384299088024366336464186702889448435572945320445376164347675688006486820062726671765211168613999797739596030267167689340044976760543555666877699901039013273462638436522816232833147008268814379245543078971367235260668121123184936696450672055747259818768916069942626784554752107510245666483173452352280688393778144988852234151904869525211604664822936911122728915496754134281918103020755019373539909225422879052773572421057013058928422729456731169124928785074574903686977130893234206832337845612781114900272366769774844712155794372149576812185444984607597705761437458743339204435772120649318894014940881856740653628965460642400271964558465784316526000099717771217250769182054118461649897624621976114926975012115997782056915570740715328896861196818071204122212900155656418346881231864799437972649735810098391194295425795462304474036652662618189767060198069800321675259601533099062527929294444955643408018433366050252898949766028285150770035777787572122037797964018830746734010827295778214269874156299614185425808763414612843057588336504859803578446424150748760692474878377029406543538660918994933787239139887548592510271468249170905118984072943996391735275524007646397024426514677459851521498901959141189242489145026812325764604449988531929360241670088965549825548082949584107340043035563686361662931047343002702069457251588066450170292748514768015131291748780663399483032911248491805037621415955890704317283976422500440939231191778788634617315260598331320580011511254544764315932766528305386872280306418568665737943133666559564204643818515756021838023625818924144537226902089126571590054373072850690456524091713572749201488645137316055108280702986556153374481587360162318213909767151560427897344476728998440485795519806367426928089169211484528859977990606125387367355529247929320589862627503656147521798069329799118096465033988293009832621758346922262533830438863406945060848515186522443968974532288261579457164629615796075753900691637483531202511980290672434172477688024271008177860157410500297153027539005098495286252911820653166313148754734925633484626805828415729993096415515820418423375732574230523090659106310099392834615335453038203467106716111412326828362883056373427999258209172780900193649053290784642955277411541820957824486670656864462958126005247553723244754616382575057605084081021787929237227810391175832553535903112005213489746586077225726968188966525318085123086261268476532394857660605969965100715688570990171507906980103790486338001794192994373376032020315228528806696259299996189559221133579737724383709091839758738157771395245828021229816593598788110621477415427641433103960683484720551919053927389841552284987319922472190067142413411841182785826490330176844090654490016630454487467681090157496767518596368483361288261912120007134406393410587521443942154184471886897636521160107894954532260397803495475338248594065655269871764829016212907410300068218112097568175360887633599830247939197731728654734590825597938843050763222794067557210461019690465377952587578773247274425617023239636788979453285386842640285271657035117762364471041466758617051370077096608509810765030284021037928584051649968592924346133229232985509063839358662832007628929844944309504036103313684170754705782781618160364320206087885454121650488065897549228963464443274630447172989930761366680983519610901233882972150150633822319223506284896700762540723000775613927557796243306911738825446371576107534837611305128967579313504224692924627048002674790880288806404726970107142089361534117366063342359971596756293560248465122492911017614222853133714789088304636911250856894439408340765789322072217440764576578095304470987642362068621463327830015095423798770392656477663692329763258968710397454407824285917498237573384573145947552873771228530632076677118650090174398015153599449516084338552722553146133919560087353351346962878263335975182000063611543360555941844634613848922432831530834293881429206657355584095770626665314579439672871731051555745115930650381684507335455636778751102364104258136950192695946965872287201670868623441261315562040108302664482380364042513036713959371004889897764219824209921557779980743059565422283559095377403824142108216150495570530743539708633845388126526350723598997194850976148765047822844739104979371062712236778887686538737959597152788765010592498994057042594670422221672436571538803094736996625304118669129226729210400715188126073027897659822353149850797197381522343543837554910687305175191218240913827568906497633007136640812196047136405303192528477191055802369426297306449706186067264089060987534633267067298574350115742349754821376052660273921369708046391347522922795582755043021240725761503952156726799746849176004857446250885242698579245396566505797674568347613165030291241347837155652476886610580980298816566036506499336209998745026061591470743950038102800245950446560190665337614804443105178549377285360408622666369945128860423191612747548391122598411247698845803878498324292929573077715611092304912892782785140943538890180602533180307531230254122091504141704926685712604999743754167611387842960499232447585632425819182825161708670199444250104443311805510495621241022616263071028327608276804994228265998423112039914370715521705262165001888766677387109009558784922267355514056532627180340290826855710456761476429720531408215035087267999756690792626768874900117962948939592968742372751658537073927188982396900712615177297862191058083555693237019359645277910653849595650993872507080490364619076149124535357408151270428619302805726248090112006611314550619142823717269189293665953035728237412878007271420902833643204105574960754915458200538425699179326466572188438882804733476833857009569121873362909537766589888776610912775677371498480189647427006201960938004052566534742035466993201936753383415710736181662648392488426077436944593471768416906162073799416783754456636688109732156351376043176832108980707638951305992523131429873712322209153654024488715885741032277921691862106359625022261775784950471253027062539470271976356823041793654114136251820530394420137315016447572675268643022612493602194690311013270959966996674647482250411887733615280773539625829949599586278676016915859720635500761979846120385371584487422879374383644460779157285700768462755578556855534585656588503773492853192688556426106460906143213706169403937856557408762963172384696247207919550502718781337732965328221898934968901482556242925115473598358384425402761062107030869368852489261925392869707083759701103320940876405361628214221128543599724949276189335658615011789858162129006685969508565525135577486448240489026672395305395726016224137357322080881919835213958462865691392316069962623755834234996593901350916527767467566173935225997222087702753222510342300862197843665972372600055496831061381358953020720814768417331567010261683470742617629430796436923664433010055335516684673503044861501212538421168335598912968916943804373803227102952778005678232696601432075925772990349247378395224900702920377286134328835850591043072153792981223731105444142759610989052689694530271712292250077325273943123634792421146737606566860784252431368267331348949979989367316224097888864887897925237124318563957875077039732184987902808484110335994023006035680341501159870811646959047769105402154026292110188473803557709175361189385371596197712968782010091964898495137410795988012916879166810246243883001627575449473568677614224718350857380417116432818787285043711844901878517633501003397845470625087433421154690650563876886264902189881236162016655186753249920091460568443891084303114393629994474762000550989968050168269249400682202440789814854987489061321957675570112434544463964232116113429932339955745895972968685432520458173385467312078875219653807484545369674545981592978287085374621324041386327576717990419665242068582932388519832027035320801321904857099546684119489033197249773516698115676445289791537447013454837624560291650702934576169347207112498843192903396466110766082804234892937903954851367496868456965864352302526751705899823748499155244901435402706531490318112458596308668262536779187586909246806947628874159911107006783563333273075859661934378815795452961802281819235668354269177117866719027087567541422309586038561474841451557019712331134939924883735773170980730833294334261451377669617178901047231442996301759091908625762800480536431123575125706558814803287346005801574033362562543740365986050047237454566296852016685710041492889090258872685765998729031263984243117105965201796839728662563341171419884144454496510446220520136697668186742947366876051999594293751716526630667321927946673478380198348510364136821081034209517106031528508110780767395910551161251041302158358184706917529526269724934855697360527158969509819740460276164233193812747436610539567603999564694639152578477544687622064146487449030061393112078081125430573788187703441453082517235552738987487952505145442333869462959541638887568290063906313546465552954415263886152266172243240375309892625572939985119416256950872080019505859889762101780581875358731542689785029371427236653346246463955746265064948806523435303344746683376373557052017975537122630382954412906778177025357179745312560075896423490753148635019199132703499526883717907730670033169355964907609619818722270286740644242091407479121528069476747446237327977050849455514449429779296400456924526198038315973503442168703573062556559896377626833719096242119316510551808820950853215806855816454989265928904043756445247424792842667942073102811198732460425338781981235803097877656900469537773141151824465743473563869468708902419067779765028490199896575405636243448010159941569791894222543092173701527080266665438781147708292825283744359740019188174386627824449075299820750254396895323051069912621885533226435636660397488543062798883106994950141656966149907444425756229213873806636941149631390104832290111187562414748631659578503329272444504933878601383963993825814787148385965309749580050931055146751972444402479460569471561139796627049394259045075432507207577115317232882173255973333986390616068835396563907619624028930321215056439208017524188193041654345626013117045257135149950536676774398819854696200549120579089638906034730053367685439750222518483542750896345713705598836301290289920115511225448464703865002765232345671262945704593966341315732999462588412659161237539385682254171267933793657678563824158562378800604043130964522704147241995563088602781188448581791313150657850399898615457707973929467865925160756510065911510992370186550537377452341574265844774790815806238660524786391899033652927055163064220498544732822550701406188227176786573395512585880062665815699149163210234795606247513867602892313487619701266890760898545098117585885451412659665452191061745918865364376400370373922506528536758715633712472701926612909741621412921652194419561345712615684003126756053282098249093695046830498873691196149961785978510784653839158356443442031853454199029982801094685658207553695031289098461862529044563936648856058956764883057326373457230343590654409581435147669154524506736305960387962519031978238852235455811943932757981709015995785364904510087064857288354438292020133739022742187982767965950707267985341953104512276401042445668273034399712111491975502906822141430467249461232914038002660830727586547998658581452072740252011451553196281559363210059644776196508363344913053648032267561060053428418743828845326829224347333326806373582454626480448354987947353775654339129742975753355199759557759798783996426031377439149496886355995668297914787987901664471929043312724408286016325292985557673293312201125620593177840072440730318557953401434479774195164050278752846217467195454641158084759626688699951178151264172076703563419851646242909969689036765157546554638065014051697763886150961650326771678770376904240334762990039437257794918102430119748874093463239468168153444471695895025558473601332808138495482118575806349946093608302686610406466969373662072425012768381014875201078550321007617087621665346536908373156997802594311150733253177894616712965526576377930815742611950664026696485570520432757957097643443650961114528819383186624434839578937161307183032634349215100325672937899397000450214691649344231363546578051732062619263208018387328426886443099897304186558586139876785409080951630464835164279439975901444897415557478482989998394314422343032330081527637054439520035446929672506379046270468429091128815861311980948660883841012534132572060166576978044337902988242157337510395955591132234448976310177762580626769996389894107940294149305288149610770657697014002612425175386178670775439414592210340348490596728937134907082931888975445046251275165375285357130356014264890255018652271419712758414341737053474826370804542383849410193835851127113558786638282340444405324647284950116499174656008965356661748110438533494911709907569693407942140885618935241734084764918957838621295665798967201888602221295662017193462846688105072135235476671767529886480607961961959124759656806271596660709206329967401494550680456601736982239326582576851032040735361523006362586995076373573718784930723783593827676525113235880979948882017491216375488398327287072438554139273028611918410891929180348803026770359296929153069760801653286464936653054487336597837168433649423463274728042410926646423901930053419426149983804777229312508694026116708794450601593244635619724407779798285111987413699489340093723520460509872785660590422039641492980454484015747227620523478741502565893193760853292242945335737649342803127398086828831409130958840121297197757744849712946978169118979127254206989716652870449074154428978390027718502348679764938858511342933619749807804992508662459484038972370370680970005714070233385247015703906161828102435899184624171679947652358996010580896446505804222342982731326976826020349127400166521970102221281133840925082671323078898616084086973407743330541322131591920905000348691046755778643574618785692323631747343072947381277618405815942234059508401816943180592903463340382878379501284781852288910068919800358917956464472566723946779425993474811461049273030172738883363355917370498384533114649026071322060559072101810445139622843415651118589196929484804801526939053518841792527517222135980147474207776546144366080475378393928287785955810713108980958963640188702619645457591496901880588053324603021113062902213648440984776392826372377776509567288089911139279402507608903981404082303333471193887219377454503656647738746413832091062912866384153168666300044654707931957627519202828152748407667579468590405552923660621216490867076536865374232773450902971576934851890058492587034338303584171165567525263015059147245716459356317878350252928384185139738967550664446318493584646905723852607707135759120636323268170848730379115786920995329460040305367232787146661349293100416416087654121098666961619469941549175631627789418200099181446163582410671947847808967235755245760417328755248285613977587698459906858347414019491222051576388315479083232240827385302619333447152361419087080360570028193312953075953456488096584741920087484532219825985765701505923117951033897314171595072095315579323667205513025315092589850059399197884234474875204664905196186875088649770772850486926186282708184524059581502214898501232662072905382557278620456598916004549011196748171224744564370327295589495626140825932568840449525375441586116150107333817689108944763543266239077400992684796466443293366255404576124117981416516049557135799293212811594348119344688514967942455643087737253343320089004513150202401818313262569429878768940060511986359541073491130439736881700752933779722606842514232581366074970087333007933139173790878679153957945255848029431465539628801549104755694980288986694259146675732398281677268624824166604277152225890738972817204725637551342056087684999344978023635583086425074832023935126221246817235716971096736132182193612941308139518837164256833577698403040774742123367606944070682341781827547947701104999963941817783188564526439770495325421610427834589781200143962441026165408743750433042829585673773996730328626683939200759066936393659199231176708447480943090944528929652774872176374621287453919358428135345404868470208040076460557323462011834187039354035623134712194151599739502016667674514900316920831095282978562717106158769398505186020620200631510428734327336542107859419850945744274648221029376356913253090452538460310197062728787276668860991230689909841763173813156919681107722828913930635263788574747360908477025053823277642093769088728449812089169726081327329165885392263216784599298222198638943597909852594752010795509184384233748406189937268560974383166191950867964584671334073908766440213679640654988862317976191817371349718360593828175337940160947130704454284901662118134991190716708406806869318099272241715607004004836139860198727970902373699543304494970914669582276088549010190938510616320082475886303703387082796998129871111584981979333589543346384630103786957916768379010221874050905909966353174505411828386974116437476193249976730838338767886822948113477036756849806406169550559139565012819565073805345019914782160768065663666831308636549254404113280886257712885222438526162992737604773803381358355152347629362919335891480864512553103961644618109319366170577488719264277015550177624126736882015225810788085164142072200442773957060189968607478980907636626087133895459946543238533228488254175561300785736005339187501433897698071560361194326787858436126274447130643746518424026324897855703218335009130418995815036006202588208303381762631494729350731311548440449459472867644252180254669777949327403069648024976516096805747829536748799982487469527252741916830295000796265223644538813961083974646115995828951228017291125470447753840250629168426804578760162078551033916074851201801899917276915667624489027460126772217805322303232202101902128315619194775407019489954363460345079862919335349035399709294775487234149878388637094869291346544403502858301817188442822063915943307605518723959080399597353056194675825914480068068141285680987874878459152184129947989979929647138164784056248685319618341856815316899180849283526594833439285015201424207006533393380079439496071599696805797630901348066438041465412084090879899283386843751878655273615256229311000324419525773626196091277968372928395910350502854407491560949632260530765648306114402202485721430477051703598596353926857670800021811565055493627665349152570016576846764302174829562630081525111262494564974681661220992726938986832652049536216705023592327102136011635419941534451463527922493462014258956194361432261386661928208207452688122221708614570149651140605878397649427746483143112264607378530676613444225466231680598906971511429091289392758684125369645944243977958113381269818905545612935905639995959194976718087382215463527204323987349414962300383695627421373931704603465009178489068450437550210858627600266442856933154998223586219006365869875032415487022597440429343269379167753073322464940662940542607088363528885283291247316726070234181634239982907297323744448753829854693846608529640868332442259865841502667581096495982579023447606766286030409216521465627971684468363378501424088461633864620670648777457424769412773092876315062655266209609548117199830561296486426444306300709088740356641973505478069385463334274548784008125710421341797979770640112287703164669776346633111893696240123438244394295965280139680697236699634601252136848265715792071473911256299050805761516723522191672354918246998398305005057679836253227162982307536718626324194587115146953316251412043760264877844202561384892875765677053785687472034743037845560348371757340920358266070788433518336709481908553054925847156156392761754898291182418637745466156435240110875229069737575808451522643441850746886454101789613357248344274265929410135261580456156372676209804534685584730327485182331786073570220834969554302262002504212971790536466041284242883026634442654944502444458374459897890449869829863249090304343781789243853561334163340885669321926773390190225869879463127048526294586095701256475343979260640417536515889589192854926854236346216621197730557502796760260341605719691860152412769209416001601509776202692966707231959615593763654218225234977756667156165566367261369451343190487255316583502563790743916463706505974828825137607670371043624766796360887506456142035953287271869147947454163406449331905808690028384788038015334574603880081672352490643436455944687359349735057432748357163168264238379971614280014699632481825293363636881572561620704246524186652971449587357788327677557387466163467234753477494157334353207637332820003192286829161341622307733820362395925022461940126359050828488824556558730264812773138984238936607613864686032716052205409686189264158630741994709757202967303941901754556006083792029372332645309956882703761397678072509586322958407322140445842561362695539626015288290525473973597974143917407715368883456065261526938529709925464874204907403460608731812841177797700928715056946931491015529738810811670162571081848947421504457754455962259925478300908875622047258292300103078657254083436725172147704620730454781097435817887181959907954285102350774479910615323505089475816316023319723803894725129287830919420706946637945384586807107858874245886303425680562193714800566379842238101471446014404490300681742923941785927599112112225721748153411260284453314591738562249186221128851624083859440965372205682501574069580796322109337108646837308083687148651776995135641742096948734125923465165755759954286017895406744465535008425452433860744868117176669831141956689689562215790517724877704882364341978945241330312447213738561875454097884068073941401322883312206540196407592531544947445680223071708196947584183037275910059130996146076056966507684110003804978531883237251677744714386293201503598939993657294665684293382748138564664707376747717046693089580897067898442739376524618971756885872234577420867267851904285002787994647116962333201428706248809544833212017309603534645004387407197043162459392708505093661045406824922980955527913877368933852366236524965779888774711603185373332369740896154134625677046020821540709659883583838821699476320062998581020547793772459270709140238620240064635473999002171084032649427414467245285673986760950574806966736136829788120775136201877403406422489396321328464328551025096679133751409781096245586733518709053361381825187687261055291830604573970910557843835399295914308533765529768045285514961829197320179076172981794863487516460235082056247104004613011307702809035538784821683938869876860971254606491094364885444299403045006856512191451202513458610883539895466968360416172296903402329308073735677177925964919996977556454882546715871017485452249057927138144642953365931859004748047612695471322587226409252180442674726611322922669484071758910457825728481650773272724300514591169252386143182343066933585869830231982482622093416715116963404181346197328364838592015399090916548877537174311980845227335946062334096163982402547619418094757604864387163245433396464957864604714295236455518035776816048620438970310356305966994007394627722295646505955704048198158746492791009912401218742973166959738114545707567233655513934514489045988153592025142517972031843262249771110630462249381768395342438730406561603315643772019769784767525904213657955306930249990459221971988067599548597029310025311387463287874705052055363843467155527934338357940509238581540307638807560238241747342613206541911286463556632444966518746767947287123126342735660146431097218712067230244202262063530073465425037845725233408895826732667486921332889783631982529155511912077141752757928883959464824989338720244129988808824021085106227251452059881165807214594909456435830766060613225615927017982669647418736050689148064100990252632066850401460026970563890813044744254726584057932980210718310387825860168814173518249324456640905969363702268909505890603504723047678362414146641143846844770941136090071828678244300835949386320359564858703208094737874433821044401565292345244444614545205180852333753874593990520875394341337448770517568650502788611138902968335572666836629268896477429852759032516773456417531980525386659877542356840913065314418079285138888506946736861452840550030765712862318752570979303110169782351759828727620139377588368814071343412498847489529070421903458990583692013829848976349031648357773303944517719571276090402520261958753449928036634766182701516045934510083235892718921110830547816967961889639520839665151384103314355665329837310073010851432036261689894786507310686775671505141597785867565890567753338938343613158096126679136818505905951352018462128481109106438142854040176200217069996006903597876968744052800790369352457557711551023093907482570456214982362573551698970421469030480301500473350171206177106290638610063331163600727865837590538805017742725250584799805063930669853677453652091101202932255473747420221679090662446047719347643219142680546318095408787030697370448851192541961856901518360141164928068410429015005593008045967578518296807247500244580722260751236470556700612501145009919359651474465610764105051009189525358028956866633563967046207280352847802811210584740625969549866529777701858231809619561166747954482689430874556417408633041875263303478787922360458720191250173204318269424075743339781392243021857711157536196303358162654676833243245053413065104039935555794959180705577355775248860404264454209475820662961563204860358145150188823450787792449536736074744535144110362153905394167541749857096692332015019567342269652923599916409019525409594810728349308490816922281030930577838058488092594101033390071981763354259690743333878601964520171467626487602907459962410705067166732910754450477207725042585351177018494212780428041473189580753769463582610136159270827668889136046328436061688921890888336769447882529005107722572806417058754485743928940048021255983867314299180757135679504565427535991004629261585624331506697870826238017109527584017376215717250959193120450052292563411194082978618469067957661967490298180252934075748373789699537592264984950985329164034979309461120185739198098075875542798857230634860862009032084572257078590718473367863598536234026621604156883326280729002035935677639441080124620675664911069439157231551344560183196235247664174651074039785195676268057495653608902592320554310429413359046622390604076366023499440023885254071936191476522844928453061822338158218463962849844515863650149153593935185128439796338591642107022490542095377110245362560576536473792060875995327125472538666685614985589801722891621988169056690621050541520852533094442049402346298947066564519864230828440606043603937798307260824552266130219404271145765209295319167792106413343570009616169816907602774312533806895007213997319040254438335516581504926889921636960271091959862617607186799803209383269246363010470485784484017317751590114988414112470854256096545473749332983579187274012901077236052405152526330530710976402363757968927984165828011965563505862349659402591883525122137045641475750956740696720238323146837920837954978174459663188300137909710097808885853093978187005696505850234020860357373201506219465622342337815279512933106681469891604548235228000661119981952029434221134216055069492117785510284065741974836463125159000917615906207136519630338788069303761368086365818239837991894553127933117653412295980105261460673478421945066338806033743787554470754259711747549752117221416888154734428387915383345348540055122750821126072769034635209588549985507361785821309230861185746726929086268130049154658858696314559948495485103758875756708733675468190969058738984772474005100454563458082814411210257272518696937393414399983143439509063150473146065244116633710553862900886153254586518638195672283657632247561120569477913584451339054966773386422277788492967116329436904534766479049175884915956650955495375868290037727081466377708241215316045815923729806785177405629041827220257561778494491625731625066206606625898941605565975607533588743210633115993304356030393456787245032449698594633007952880577736461586037861407812833291686803333343490874562575771829134521677316610913661781185448347890528901914717158328092699185456973908463654876499798851105942679320856186244205190016010233762259732273872527002961420353644969267224234222066042235382583758227696445779805802364926569789416205801311257556968454453719272259215632579887094296954450987895088194045478372853155034396313148324834269838622398418871160058790454492820003358037429537989837285101226732647244400757853614598016868120298795741721099943415301497270216604359982121814949535464864933764651023308458881938869117048728110775812050689391659060489607625877313917474442895855273067934828053391469788494730528265233698889065618878833010973471221830179058913904140902799043416322535321138839777170071597618754145899393698867480827942103458263112481154056911841404489066408709336381839469043401351554443384645355102466202648977398252461523547180877445904955721091093181175120676571655174841108527945018846624052418980072512187443558723966170314377381827568204716878234985969855660395839332916452331584822802781147013630333946741504563380532970038705573342012821359932849212337247066499773811882533865568719306064185510227987527801176815030643237810057371752336829376996618929661013948770804188667797091537985551077684791812519080268564095041552183481005605524798216411711185621060959273331483944572248027548154246596963455106203450083156119760945413291378080150703015177658521182307578533037319996346293082014748615771432106456898950784953149599533020950695698452591933612642914208805740815438265945899648479117854527991477109144508794902108061107395874518387798864503132496663418044170715045065828210796635977768152108635895292894952790542827451647471349227029826275241906703128848608235668937824728932066482504810034966258090411330473386415066917839765675411171746083258386202483842736144783787659520042012111361185702580210866944070471896792870638521923917137652182729417798166266376105968621297357449721253581178695564564986109302633958153590953415619042220250303454183692390599523741727560860844171637290702497584956024845823590228586535322321155888302888718077232595792627534354207872773508581293614230804992246845699231374380230498375368340023595522951354170406882542540868341881796542227310353363724120418893268003753814679800925907166853534671860853255038442096654911838156136066558072533336353978962615206757799842093203804956429669253456630295273610925410750562946633943035845291488254427170684908611067575711668149388627095715307758863476849950703523897155164044681089779164599830330945797955052194567910299504693409962023356008386629064704961873437043945218500284921511142677578572368992457233833346918187257353621720198445296006690421529541621043555647184187047990305439885547820373640584671882509345393956496776971663998192662000421376518182839918515976248543793252815385746334338696096592523618415628648532241320754967406861431376977350072778839091615709996473564778170588452204522724105764183210878309395249361663651738176581349752859832958164232641742901089905972559272255965216834423837081065488071933172825868884538953294031794823995611378320540726260932363804137579195609202529746484111986647482338978459221685762182899745407615560289693664706887723237384064783619465120237805683904720541459526805489470373864411463068062924390730035504231400366827815512648066171402577675774278425472157039774499626577601715752955309374085456930322621265960959995184472259390051088758974387455761070068543601508944844833939684135618301714626480003966529929227059190797965863183451227869090784143682499468148298416211720250133117889128464097480672735058744254716445032225028055327550308966623331109162973855674917886124870482267828047307555492618145654240756277088560302984806147781121584270969551668834119749079317035044538228106830707211377260987842239527519626919483939660660300374232217135455310253345929367076240442003688062867568251891976849472324998753407851000519809549549750469933202332121720253764187432014331136281127815645964836111559979629914512122919534393576978705711149356003943758207514539509283513386342859791002878172158672270251475221098421853067692199408706610336206865714551877108120258136922653185345270160134259794845718064760738012426665979244275301643951454152944678077923529153922445410171049612434676191877957233289269063218456096175621074676172864208399667296767578389150406776386594267997117434368989651707302493872906242656713229405155793494169760733966646883866442550306675995270331506533858197782803063753294115884563555692258808966608559358223595381700252356582389742842597154521856312828934314524463014370091566463990631858112010479107057640913901774356700549580169988793196321321658931130683382806527043228434707423911210306150005299256657679010821144657156671929491776700172934954250853524493865517983317084252185504971365377334386918539376227999143489910180292598376135056572168865651096884147141183533470177937929119620904859375280821748955292116765791670716005122066658146098979526231555127194826750273958317837956995046259877940053401121749796369116188757652491916347937788955451573046949426154126640200685787556767975460432800588622069185148038310991559595380383939408897902750512772714863839231939900859135347076837443738774341771079006087796156785849180344901867139848721681841279480876642783687967722331274384383298397845951734439199541638356246654120968631699695515832688955058542194511217074032215664512266820275770735710202693061651557285383181932809968920943047950469625570258338259633760830735522937687751348480363637529155235440621368598545449458659474535752217493278272604152582749804365777499415924913468744110534549144862038959858618861749411083359671475145797358892188818927208554111376902921682118142452397143098399256640017327270043223247409202589639768968931196111041192187687748710110810884231347499462436526474484620345099449470569442262360426826328122241880067640984988446654795214415172459595780293007521464468525504496962191464499955367770640052301504107233085086646876718757617794830970669620725186548006723126551716933007246835621737758479521573100932664903346914924785551905989416357920581585412804822903190315639421169089386259529217483032694579035193092994011043433250345528419406257254355980687415860955403335450110661214223500932463249150698874451219456205713179017591716224972039403845992503992019924427965938210576997615050165152826106620888636558097911541211044878260644983514380509976036351044955347510012356943485967385346377672944739173824793659215380169459721414761691111151565622490236601875617155378048406503345040262181900976694570842257067822170465928732689877110651837792707270802045232406089071970402777925373404000710047824054556113137645758916972752986931500462230153984760237315588517673870744957630729387390868811182605813949408057337252792867825275882045867216165026026171692744847747788628183356392197675497400500350364171683954039756667689857026692314793958746820956989854515521515440167121231466358147131163004258018827151527110947823577951800574494817393655633508607089319816158834470152837730226987937406378958940543085181850214167520561365704508166542300890601893077669681801570428847824948435756257662819791313210070897122926503635648854392743216005871417649610237925449404686207334126318637595264661007556307152788198728469903656714909874628357145775786543481077057763275912884699015677609693259976458995177630776748612051118804947118867481515181213756072286981778644505463890033328940561456450656810196536434085302098987284777226876114567798291352955698774044930103120980960169169465364257049428205231711351034988937626518776128941316484884835062068133463200605115580105355523467367377266787131420962474603252326859050434889603623653782032652948850250881392298507628248277653986873257954909677180972759551852779251704245568990470200498588526888322657733223977397610862072024575394738910677978135505087678079258458943358372429148287377885823671716562813387508578087926252236781492683317162525471701152261734907538601464467146838198573642546265280853204855932966609515987776344482725976590425063243680146837303602290457294830191260925815135607505389794118330256587709813862296371185003606154228705270385419601044712463944928971730000124537714108473231061604968865747942713931907085731791568102149945765754827126831541753595148564594654370748732680808961634535721884892215891831128942213072567678236638737567862220034973318261445510223009489690810240396493634870578950201122027769316415581362660853155205457507118766248769053606726490576789427470285985278976400647234348181215955445826454816644751702481184532730176557032262479321597945730481910380136436339901667704837468234431294159865361601099694726474197971946632847259979108285709098034525466424158293195810660671181622051358365768667326257812362205867254426690768985965140654617908305436820047484359951707167135168840601656341336314614033493754968427793776608474043916350771650604770718273909249642553864931938166368357295756937451404891576967161789811444786645282852028031874561217464784175108567591669124824860111935772990885440286452253206944129511164744443223412720014778677028096340860251878196903285842203738676430258104720947091617037809389157670126392834291581611455037614352158503169650159430581497601741457451298444632541202174723337356324892704819101024306223133754499581704049319634839580961797948711998659825541869775145720171024760063840592350873204586607157792013823700915195181400378459406606663457692275602658849832145749976604969533314910103926343788299027206709576754360255226383427532562827366126897520002444560608600375356555150643788510610698797524271935560094426303861120545043062380602543501950047543860787915626640442455638252556342093474055328005962635131841787177404074801385347734183078294177142958769603859835773028939262975233196481539669921007373265305463239563407633488231859021279753054445637421150402282706369099174910957679254524753558031721268149261711782023862731834781097997124572126002590945295825274070370669859434859052244673284375801621707868781163764077302174188235133766108037423445849843180014870828797261012919961928180616469976021178383606416563064887146348388800843096365737978977388666583248735089527499199994903798095520002101427223169977345132108682539875556765689558113294475253272633187048957106142038139469642260309003831933031794833815837448247747289172665285160114618746305309605953096116994693111510351314130114013862227109846231539187647426167944749322440247593748930099898928557775613588574321409654039993760953703951661699661488029932449754137561316181980829231630683032972733293219434777031009028778891777113684742010280468566844134252128677868461815265432728633016688757659374545693619627001111068996851816031746605091233737416417015829057726527407404509729297882088586584965137253665358778317753170185352602140651884265407020582659325995395871547892561168060002695931477883106275089075272013453480866564454503342858394341104296376793264472423634102672824579317264565553745318342276130560625156008818875461536594952701752430773597295677427950744874048954136963219250976844183709327643976250373962972401505401037591103577437594336030311397840959085269766414179229904617613560196760601752666137662699749424532730830859049788209392709955001921951911093248392263193707706651530805033481558657063365207214595022323898839457529597840949615080360472568466743290362595870170719636848051699061236328601773788407763676146583955933270044105223407870362031365856922037843405387102559000723388391022538912196531247454316746829087134891922423908537718021236556735904073155911706271181505237276433755880686711321467940830390058935993727190083894093464546697529795450822427257159747862053499226871869468019910552055693044873341669262047426281156729864574555839684289045934310316577678349165976082196855129175618164138349762341731574349685400978760312294526004053718948539766734322139780271917992252104458823307541271418364797455631443454081398440411212937887963029862597885619651570553915860245598128999002856150346501299216054070552936756653608415545676556708855319205569536365555772293728663805633581628211116021239776915845243423429343899456008276831082584936663480417325059428653490885675384187965463657558258319729390381872949768156839502765305459694267260828373183526506268197093802517745860786826805758019917638236560268432041257917172762406866101850592880302030886653108019459359276606930532028670809994863273962790103924725593586943622412648846279362936323507912304982834530803192935440263952069368730965830951072508578155353443231537896196446796571827474929699207539938227689128575269530667576173611190957063980714582933711936022835278063621930085744708567762779767493222889293602116921995776274459299734432406032376359053691962770395638144424085070250660266704592018327248518002769620604006933791443365392939321782545578718691961591202708150394208302473663174547830594701391047654039846727699994633522136543773086101137320948998891056099164100260301637087703731848537486039550082464377793003129633599789225323464914697334293801598976976495587535012626696248650995641272759936896052418791513071234039358815233438562772142840125012106181281453096147414560817412366537588897203852370071332228613026114585752751052559122890962934327258564794822954638592478535348481797914433562635130025577214182659164697875505802867194337806082972007085342380386219184146247097031227265030032447252675315324874985730991308652185282463532877829541984512555618046373438359589337664513544396345712242455566089984331448747721848530865930330234357210141477904083387049838745743127332567635937112382751074252655383970624833191550488086422709128672797698717708406197119406280511335886543396454522635155218314550997858350446648505787554627003400741799230172650455952067921686532840784435099022411053214307735928285066097446450400123366230750405779905040342357595557979958532356692199614975054085304053424187872285148786477781366486396056245532717802608130355953835636614246852686065133313387678982264482815665431189524599815862021096071420089099211020351608963041762683720273234536523240296079508475428017464753852268470371847600032496161200730379206516814947965715904733805055447660231610288744163700424468160508288460810801406424939674819844105388673406056105008662377039456052935378237502685698883488736175278226505598379899114484759074124745736665829259909047730259756519534045980950923736899372748076712540425763169351255085548365070177001737547144546280925270947552966562263097802612924567223735705354655875978445004122782515827166082229205130771130156501013954950208010573073777657884369588310201548855785432064083417027761576427667512610148799832069689295737375344075685953969488234260633090347433668103456056606989981526399082158526833045514461227555855300488217392242108885304157123506087002201503175345811616508306584535147791687917428335910785213961525713204404491371926277188775337521931196550552784695184083844460745090941120300933480782275939222198362178764509277648953328432749428833315804654219782413202543733668063690520025606842081718755803281524394016858816129292334824413103540633929271022204198281610570947294147122552678197110927200826974467532868499230621247742275401062873750771201861971491114056484604242318363943702985532297490503948210979775847136755936496089965322644016512321057002568711910640983287539111508030680526930404975026629973392955915333238726601245086828804995226468420962993471532311193368532964108906399994874139281211475209626301922242963665618176971950968534980812852669156218621354856552591331576560452903163334206397158034219093649511581376235395011082676860409291773071954337270369493195548966027724453779743776249524717033219291874984186567987519095039317639951197289554611081322655024842113556724166721319433202634608237796026959824095997415271891830452359359783663204831023943628621281724497062205356282207972870765424389897729293367081716526988824222732529647380768383873135783527335152553525475919996576080738437811521483834298409331542837898105279646853244198880946467868146182551037222271738033656333380690066661359234907457687418886006419641897872644670050377919751314279562624329509877763789888008681241787375552774770929135540259814823226547327386328600882197409684526641851445333365300326909858520816821032410237849882701633356431611993446510251371797089637954467290324163473142402523655231172795409545076304008803697286613702853602499148608895801333854984499569163370567699926071210329304032266037672401753826666641542607967064060141909120365560471507509740315093518649206222033963854509435126394096397948355167714824052973890822393380295316839742913589110772167882143632910316919292471894736636579111226112955597549292120441658891813374344778277619986013133151896211295605577382815958615371816785858511765019091298753861238496535138384360821998013745457204951231741496870934471168787874161529634351804201007463415918043340819093289459098458293021825396850187224987504514869250895474466800536035927682982209195178137484385821458039421349528812155131240257872003050226384900686996494828466470470089561135872027076143857560565392383399480613253105498645010327588396176257697454128560641310230666662151316522830287393987362049967093787617334542100029175898708622526737606117052616370441613928153194241667743746033172480393783731305675603495167882423883964785668139927366214776652761012766792447628423111628382426737629012248232110751849502448745985547096042979064258988613469314028443061177061091375918626417365487030250805246386908531916036630710507814109982304159064679378981285147960410370239853439219311726218714596106302130610620321091719293655291408884600770454829125355862458487644822942963907913974860536059723859623749247901845898891732013847257428798207701092868937074953395371095497855633741685328735919386035670957625046028247663012669389314132803744947844633635123522658976388399591524908707499819768287560807699515458390048803411802779948127434970144175355993274381294545389609279989589210039642149139433210620616481978941569091112029659088737786995958511494330058123078972671065881034382727713422440441464763873282654168324376865078002267244286326612887515927736964968457885196464238228367868764929820511033288501861972417310199842290897285811806947800898737668161115861054965124919387734239897933636704249769756510999967693125063416118561282845744455896315493372526853171413835863747078324799495741439004314670887785609078543100078034626467867790674882737420560983716270562752714183534583953604877787425044699742031880964254158394025543321370241528414193751118496404781367798108230017381177955606799188111605510351294241200333120051603005456246520066071482794230825092159101154449064093495818768959110643804043641763344761401795800803110650321774721286656122719257224422284742168155485520528885739205289343687567273591183292658120773818570579261788310233755386690713878608225767434807195979479256442945909129350089390389839065354959649390565366139842385634971475361286262493665917757528281855928985875987158529020754983425500774305631697689012040040367278903833752870638573411090100632914959719067494414225232869867764952816466994168922992059968814065487365252923347066135592513248044152508474036726093121956025558463221110717322965843224020029776304742264890650722635515148325253727714083707429800450682536292320535153998104923757747109598639065042190192306948438480096046609382143428887295788764133974425246773963195741047320341045616697451634999148251071659387323118867388127042336842257080542113188711807873376096398585384426807411784426548433482797994167489922082104545324608892845558204026376646074129733158814592889257172781788369313508121222055938227339253076823703489498582441399718664596801839543099247770232038642804183391638050180633944668112875092925562496358110138501441682023868550153431234061891215550447694558092450426928699653596585992418472408939140367681962839929802654517778077849112138235175250201809098457321274019020056205686602728404918337618244641147284306357842972955016747746123161358102111666244465501286661250188880312960113112358636633321610028807585786511746602595434311366024508386310846164709561116753049230751654508511683635943452652567300933348803960991944840626881068386617280256680295941220906740657430596818378862598040711043249315350590558063878520332106647409708659706696644701461917357408744671940541064891595671474947110031903875168842955819322414663573886534278809228347889764783267562827845354516754270790715836495923859581366746780053007612082925534592723327735787536739151270929917102839218835293844840158767497030276063108375029341171463158334461642319162025064835989919114260765500537139918027924862411969372495237572545386026391932763741620508088206078361199556823851396879453043383082090583589219946744019240064417277755102798463334110489190130477743003845519386792594906838019196712846735187259489910885618342348342550732896376578855082297595454840642908006903194615742192902080049113011685377099230107749574207665385778482290637801308147811007623111022992207675083518859830485794561199228042496946978853666231530104199510436846468459505956178415913457777636451008288029153412967597605256739492347858000762619193801681184914995255305417726049796567033336919179353337063729715657751068438971381210344161995095300502761931328527310058136038252548736959567354109516762721823767588657965387871672225271745516190966605142768085459997813325235545967200394677143997417268729875230672767393035253316704667594657679135244974552023931339929940250156452676153750379653544261000785248488008560047115684294941394911654143753254537053365389788565875135577412601739585275180561760600107335127679366866362313571702928901422982095141154664855147278502966391609774749820986090148737049567827379340001424740008372761424115927591368172065712390503084105191804020470444685284641099883354219346799590102163900590932094023891234814473597463273939484319023618017330262630971381810533014816954551700397920675073967550425563524506401601107121004213025881269662848186551373624772738291455441101309204325178172912849366184850840044045387825671878219309745303863777127080694872606293268554061681552371954882377026992015501498979420233527700770744880546063378305343092392288101011493975520930799707107728554337610980227323112064583607842967919515393786518377522189086847695333632677831264516851549339614167368082140218595184017386867495351138905530333418852140811534715719977717280439485542923100559915401345600046874934231767855739827267773562211338110246524856194557601794213569577999834116898293394312937346245396137961957241364665295072142185060813183508102315412101204296076036955166104892904260508545316663099689231215152998475378537192774445331565251944817786145326849693208038824483233349560671731866644340492756256003007110147739858967962808525632368837585009907777463550579304832009489857832158452843743138331402026285662859163011086863053924368683665720430994595513126298060278473738332993213506271118877148898511482108005417754904991283669067235079359690616099354227541908121942588924838691333301684848600554741325979203305079024080770660459839838909529372177635876516881085627378988158307243986284397282371253142708057946332551646392480049788731704404461345982303312578187393103239715900842230865895991175310046640610731598237036836944187010596552707774212798337871229771722600944930363232270836473221904547112938150924700799330313016207916501805322398632740364852024222425919637732010962772413268426987818139005498301666152878286556480579882403205634709871602002282008051128476885709347200310762856366029645000179486270527185939907874496124288870865850719939118515020875329717055354772282631678491599184315597262182552285566227498370701224530835234898077772160031739108047484009601139675984573358742523693860749509235104684982262709520807196553734008370900263974454584181437413131903663106390131435122106963397876322687699138913848294374154817735046150547159990928146075863903007107773453126565003623690116506182899489654471978579380335409776352678843830121871850116287364760749410588935553381534065344438940603860330998368846400804183707023810600455986322773564771835573825147917175622039540650256076540353178311863817277519765107107776175095269819927278328771548839340596483385998155145615703826092271354323667230820540621169193203776630127871228036092922440068471645586126810621483066687496399415842608171255424653486388724843882900466375077780002198860785141176368147639415652254852709250530387326472621479643224411128753220727604381529468027026669380365696722527031637562935962813704313208418135938468518485600536806939477620922510840903740762520687533343695674993375995993375535991561489585050162848466905507526502641883199975043396647880238587802639479793070704729566079771460753678550669582081840339420259831772648230485693635829555983523607905737319602808235479420580931133182013775311640901619570713388536158499651334766136180134476851970766502573930950372924521654589616269406452294189576692273119336087440782547366475698797881876929613473503512027002810780784264498455072528206002490714386597713910966276636603224746285670819790416789956742089632820914925077864889849901907963473545963957049869290880443463446626149422746488754810930024031025834505024433094008360809852994709955140116117155426496847221134865742268872880299977739837384470962739777777941968192781289496421706302106701305522556058406580302186950145251345896330322906124451620878292946740727430155154398570620309466512754347288288986117072641586688340723419125109712827708774363414020408872924564626015838612090279192473171997153684960544579449563488075433969190857032291842148205113714011633994223540915503394469451679894141036444540526817083939510535312322884774286867504723508519882172497891748455332479834179204484747227895448416634965811257929254108088879586735876096242967761148148669897591202803984953511933368280184623670272455483279978417834062780080350705199285626949283285504187137060093812861781644515103182436978031809575461813543697502500480870909327751532057187304510263881686550539899762937736055887386302036077376031941648110541192706343086946596219370027048203943716307759109680333264926306460185829240098282807362058283779000046853027693672139470353481496504633565442017676635140927266005808655779163928275356083312049537753038812354040404456223380371492456573609703407303419407778031429677279797139136652395201288697171069903418598923572322193021457336487231568928627255254112688900584598902851066948441266978189318976453630787561729512884677807857395176497380165978115483319396367004679187816404513961762044573037943705309640296402871192301625017688592142303866121634276069548989505071614694287729846284383148346788905129838852090292304566106675981731017921535020410919292043969410952883100959058843965269751726261816181130691587020718863668025007186058106664543978699152913621664147284403784660985116991103266099816590934930383761368748656768185418003434249923367039149683868966821995281893830198560348999892520478022041186517538160473672061440120086846689409440198879148816843254167960228104827764677496435503576763301911643961702384935874772365444656160084316652129144094498682792755344321169294294306374410222178817877672208577751802740779118658973135935149079918332690398559839591423152895376412192953835142142544295154519153548629665218395165435354189564257081033836932336763046339190362177355715411123338689370266326902362944665392093591712261291443964699279481380015746094166423449804206134617276683876832469530510118520459156508995034747240206225874987852000301686103770447840171282577908772381148583102462278267544455912595048942016543890738389498122652548817395180670141175914670014140738875259027326847863191815457663592916647018507719626989573697791473012150941825656785551827798598736515919510865316698743366484744239958063918545850226350153943890357739596818624563565000999111668972325608290076518375881274812905554022111683391575696892935179711474625100280187454584756067528506015003245704430519432747699480123740593968508316787954187334024639721456231502193849578889601909581901759005976569914974303054807795971161258648430364219156130622154105426328467457636395597238723450350026908493402483448383182372716109875015318050173441390443222930510382482839496632919081913926726471166213749565016627941799289178369462657465167860437497365990832393016939405327495715859775417940144861488028236258589293301310853106421489017514567223897527317543694676928635673724582700230564987218685237156030300319934783819247724329318851154227276195560987972909529063144609463919174397146355423235104816664341695205505879606209600987287634140842143312066549188666534526646575488402299503485812797398044567113127328165008038762343684755000936241310787787218850381920751495473684704355291988700800054571289233273600106152176023601198875662714642852735968229985805402038742326695488899984202891353806468182321286810544288947983733920502513671204153013595262346910195472524463555387410980586645365118294778486062057284899381756395149925953488161749891983418933765652364252538830121761437568169778113865830972246066808934017189862909062364895087749030719099695204971655765232109247076058697572918579977610108071817625133914390867249170390297510883500725967403891697471212663638661594134615905842987381205549363750905197456134530827586493517200335688265971529667732584796030809232779717204065827517098478919218912071333382055328174919553130038922295062655916659172423165170437227144132080111862281516103530528240148870753652972960090424907759523463268838214155760165652202230512319732933263802907606575195355067260856753736631237436046959794085072547717050766229835117463096393757272158632204166513622992250388897691524219094571552830944504016007439363935900589878782973506321558769747853932090186767637289248229299528582143554414607348468213270853179804713888468981238303385649171307093087602250143865613445055123409202813777777440361080387305741122846365728670816027642558863419747267644599825120317226281537323743616061205557672058808443516776276718131816531545769424217402271429580159371387941562374847553971521847580337016108288289608888058517107110555023051377621351039002881757474285563108708958001899015622721730406657047519341204698788037243536792624959753612934344778850389232253115831547492884339440687382666223687802358997970882355629592330363222610294516805120231142973512491357279935891765091582878346750775423824690477823920417557281934398020407045115747001824535711590373722416412641374836583333504374453449225138797016833491777285996159427167397311016084473496593685911354935953236027556886809009485774270095918178337593911687928242578785198314174643423697189815311129307476584049411455082814171734790476645361120282040221644509794006114206620792468757144815665973815630685921820348047150848587059498236462208370047537261103555109176915212582164051449313682377348413928653169293427052181054333261976657567325582352065724883921360076091373061248147817140914749725104290554245559770429332575447461890892417410464548989052554066466537161407143805196083018886273826893822366804721523979863057116265014190558443075126518753068127493076995763421188014227479663316592116099520077597110466830923440838657045729485736138961861013302107401304394528651063064146386916746703149835395082957991225500117918232853971881031589076932078113794631972587074475157624025612808718602473113519369971917875198141361175312653563558563942663966145289523040455763678717280867356078934062873533796604726864189714863297141173027361828542747607441587525195556239147836223184362355723903134213116721402680085825963755018915532521178338395650800942424900397223086729338698729602991592929567022139587608252436992390999767060880598024072091286761974702064779963236726642763379411721697671842238709774773737792008964673543661921678064005815640013833328608673840025242980918308007475490489412882813267373620982895473785902458638964353973408060721975238212088742163650948392169091200574697849189878215823346592143081248145836190930536433062499562171651591446334321424513815511140861187643886526484390335508402315603941863779153954804523267343006585342164726225632831358201641250150114424393515655782206269283496275471065566941617787741626782271399998225252025556302748037685606853448376580038727290451969001594143431438617754429576201272476282124081514620685888716217152797398442741709123220123026473752262685327031132966217387262184850121716457760466562794798715658929279605216626705842973499039338045219796078540785521256349575475742790114171286620738738820981654657438869863210023273376647229804134260265786090562931283581327776131638718693144891273908316331410591470442782532016917434318101695506292959510808242815583541384749046624658100847478839853111731406507063403523338164294944823387199921971719552864749306583629167278097173342956781433298343750819647073858626996264395050269292795915498701449989196774079041373954361977678764171993905184536536464266173425765473002030975520356921598084396074683073139719389274255375047063173689083639660759205611580023274486452159545480148783437333182354910866328497599809483830053219801614360539178090666068102960676925651567347041624882743478357481310557263057435449405048055390937205201341823737634850039428463903482443529174427473630724443197974411587200578315986052176891203710072374094601828693432167646516894831983306579152859736339259573238108361824832478247776482777721388329011828247736928473983654323735844223641058996268552700614049252976663540523946098944002557077404434922399925878335332065473211241337678768343410192598359302963342057568153245590149941253640843355690157666270166082449835210413127402876913332421733549649523860061089059064010320954688565590337976037841915712277632528100625210474808115250058713548776972672158911832550905423582517822305163995050963414748458222654075578285764074502906139934032900110291364570739702430652460806298329130005537647440217486888684467625201585687092986877166001453672947420631225087238003504215605686789116720063013850473311906974123380850195378582447100643590378403399839649525771664076650548026794283994325205043784995849075839255065213962630468208192624101779926134078183903032906508986112905940408728355677477450076017836635725544736771815293449474806694539873154379621794809893823537332815359901499915921536877582852361594973688713531917789827282827669584412479184249320173790708600696884983219441606206726683033307563200554538632351058748455431626705490414445810874337688731688477108133576931362514346246207093956967875520547633186693687388426013738662107813764620315294055971782060997261725739932626096078539056785819134749081052188237626118874497375427521967328497502532852820475319826269043376135201137837830128360940972143587408080321179987787533067741075935715244881497564243541433161202503482291650608279011687059019497312438956701073775589999095957415771633415461007844276187513704473765393717978415661563718895664649442777570152691049600708951392271816669489219576703764915986978766997082269211246027506165726438956358487491503537812474596848500628188068060388162887007084749002602674158000295709681023328790730767749955322851853846677276644196619261689687334468824218066324940874893954630699539020792500098932797934561691573628935024926550988169123473289651256400481111123031374850707339082735401666438301745462214820046611480392859343771661811404306513136075578393980807203463481278429962918808789358769355139838882624249226042405274245034759810678378818801007795651372927508265528674150121027828218029348006551924806920321637869055004402383088115093419119778003227849498118294867045001420756365563631343111376870224471265442289150069453856828332896006722091435212001193090006225826693271138420800347993115542700147427692678959562331243095539365421741609823487425206131092341384675407797965853342214508388900089960849267762250212833617216443937240297082154088531779900363969261414575320998755972103928541965611902618116644319659662819489935193420869250273464067915279052437471088952534443406002635419939557509903609017406422502896563256422531070856753055581605923355851294750634201623291589314968925986718578403550707156773116771146164580187880137623627376294941036185011605788267850900088621820860166031337721525487766240619129922446035736204809934179025085702178360592260731782693370799565884314210256442717347277747961306026928616073361345801678345621368042625827588550894819887140191001757798419656167302275314032266967794230473661456645667497487423165030912738314409874921414680264113192008391783997285187408263866706019325246547172629815133184592488127509640435098010830500630544928592910259013183549421717480136071319780087578150475833255765548741557807384469818262093234585324924107790852392413303977766749795109971296402993553092057185396941760244785866541897690432052938550454467466967798968375808528189226814337214169609035993888914244990125857656873727178824198214986521523970233746449411482367130296685147763238096267931608167601429248576735514266695843980388244661373039891772445805443364091017556469291860391434613159123309842947920228913311423594857001896115652642162144606747323757825411130419390957170971166686231818544517050696846051816364712594774175316561326150004423403915410340861157184949211316894730273089526604340316170413114111707656918105396885783001861094494103662434561308762223130488363914443025403151668399717635407989701446257676430631777130720529084791765175231361095806780807731717510230995038281138777213716198711115223486177369802935170296358100785099798828434582081056937515499004263278149544320482681488996669463229946474374420394332732817868481577576791731819872291467910430193893679711696794641176041765432871731121903633434854206840761048221634468314814810870702890825366449365942917700065426167393221489297955607484460520164546451236677549179270175845724034263668760035980698724156882888376292885967043653523638399003019143532054476370588119432137547030398222555688513626144425434256189539053582156375808843649425396988842488489251873371621611311770308983701795021468320451714986384344346009668229147214968396013318594231886331761418274073129816595933606208704363987250281934005590447478021497167424392825646142917034094604471314474681515763361304470583286977881571495768151840415049797801179034113520716405850373414526578833812195925803940387531684492668369108229022502565676518459489987937024484006993758191588107007607443694821556245073656121889607437045423863802913447369338552111812140458433776509119168615724206143871680191705984295557817161771270997344857493603935432531579094322545534128772819589576140621732575016071500395249191773159709732359893086560787021628714612081431375037514386689764509620956369284376289189383214611111534734851709776017715063403318078963394672628498411660471446221940849680241819681642239567076026500351543655269759918985870017811564242302805805343642036111601976528398495098953840865653058661327806232027143881518583350300100215381284590668426918441085588136994452898090142879634673796215650394883496091274127022480901315520466623655702312332745886556085354978263434772967216073625378739413005173015028481596765923295055127137652438150698651952967026889330615397815388094552514150642283924725224619894865087957762880702231163814610023943237319943820990565340963002816891114739491513944369911718003456773190123880230969978494961337482114075897357063729381509753485784249401985071657113424779292709317246045917014650620464166034452029275838917774640566812183345052446757783761422489043792159899379273395811492163492277231313111299363716910752214373605577879004013238605792696300087827121767261271635294339908636913107059104527516291576292386724351661593474917593491759947311591512750051990855602349336750082577789365622647206871150811168909163988068541435733459466530121889784026011872234392156205287909018535294026058589946104585433867998557552490633741605935611277862755882698630341209395277318445213287682724004810891706159563961911997170221461983908299486878226510634962355903809130935839045060779100229084030606141040125375464573922318280625754160450375531120703068252231906571124346175574585039454942074348688570856035840205740836914676991175073411095304374388698677737319658440188309065572568648833645935133901337468819535861498480291534603971910798516880667719400193027612845351161077697438249367231367094160134962370726001351763277332053906726070776583684526866022397635768495725287316874023737974304997312310439954192394741239835416542938506245185797054239119949179501421686321607179213857196325790896002450000550640819542580071161589833888927197262743671261923315708043091403015102104129711635361351200441990375145060450405213484668725400447807530281562449920660423057097001133663055491431794508383798897880998979957819602974422460045732640578609321053716723367832134341929892366427924053653195155370600378872022726712927460875177498026751547566981172303421488545056220514160830748560299411030618963303928836950544653947455512229246402794109356312937299630803223035054881467725452345089641566880665926242331174198608692265592346641229006503774681323122528611615787787306662366722202864305886920662316053194582701677378538272667186003433719189956401833517505547618175087153689144710424848523482126234078802239561107273407837826071562274260633141455139654677765428096644079583533334430145880737420051868625959843844568852924441525538338892683949035598480962932226054691967573799217081626720099133662410011584848905632668561140714413189187456096599541759360380257917710231302669761069123282332729900347607227103012703217199125470685419547341230723569663635668281919976398490244211479651523652431207555747464402184973994974139553927983084180854223377259901039305416150841540639514060492083982988523951885315246335302111338090929549828714124249718095520626734359494688190079443835499836746567983633502634430345827404481109709485692518769120397775285375591073780554214152666593905476728532860508569916649523792501552808605444682900242901535099123609759087472887750348713974527436926351591244157386693193460874014114681828104639616564183761880022535519299988438255447588805969107663433708366990825176395006916760350953927622377498570920085015517974265482542963087827076833188550758713459222113563080127240189974244392757181168881480209639639511294943825910862115587433328867969337028823433223024896502576049317142672791880544391459848430033452722878528057691323764939630552667085858123865577349898183690796864425489694183139482866276812172639019995897985364683313250009521256681551415211779899642991605787352460059254775459239211875078671501624142808712037149425449262845114761186777664672875322728858949177204589072890059023432775683040870713123169897718151964909260894733718180193382751152504629943044343291504682896236819943921641390070895297898041718847491577712037994113893597461055885530808701037490050836580377335102669254248734169571204196028087669058959552323863517831976325944332741553494794697974195132779914271226611540940276535788049529484066163461617017666488120775191869867535245253939311224508461610249142666752011081217681544673662359552572617823565988923038270127211984661313406058634447117968246071582260235247802493302591708211807856533280226725698446053737840475829068119363894520196029289735249854325367293299650961804784019895561595244293068807373981776754839305848316642702189773945092938860094938992505573270787241712808924358248410718955194030338016498607996939700509455125008564090907084991152539535846660880956191981576203409265246097437148129327467119816819972638919093177930343995769593591373231778239718984810527552114133977605852645739246261734584226855078277983122746621021339306053367406816405548109739469930288745319431119811399030404229534402204661161121354013843747816872054202346619124506887515239342076130419234229689196577619408381628919619288835245942419492125415516693054656083005267706662926255594522978271713070083668352851755076736425678641680229904260654555628196208846964803689081117232792468105191634089933079116910830187247601716416019019962574079339351320587220179196349934882542337436250539713773223997352474922440815336910477027447970203200019984646201630033372017036441132783830206624078789845756383124357958440780041225724268242833550173846144646979250743376060682397992663788626232979459516509808392157991381086681294428848468774819455795621100424343772722167236603003736918593283858970967508234995181378747294423783159082627933291972791457329834809142164801575151132767617804343426759448524105504832963156957826456704669871752028906231554654489547704071176851540248406182868949959778617933322242266293684588487050376970622436459865147537559116287235665305124539497795740735623038148649003961681292613135387886549890578388468358039018979464600464986455372580572008783668835099480704982144666195100552223016510498677005225487005023013103375412934664495645456497452394996524664834806442992407734734673020282775616771294949628810530211649865181822758096579247903654111077566151647003330830002508079950722569079765572625158741670209143478423172191144975624983764624748158210630427039930822702267675057572212839254722165716780086530117915164383451057370974798565292267778700641599228050953876530737865214741919142224411236090912006091018954092642038322555202167009101800228375577343879097627626627545568515952204092372985964949416958418413944316590412903262657274779737846802559930344242681575555264271587502978406265311174273945781431847319641117994476426121463258666527084870221724222979192309426348042679992737420845873911293322013545277228273977530134078759864702157504295931370878155173925397733126032666199642653096041819757261422331870196376478197226069977947199297700230064083211203345341322711799560385958538449872947185721941964561446193713157709842083645094977887119238414031289807167702931614568221207853855066819299683263102639607154099907384892766890123278210647576634890939177310227213619916908095413870147259400127512835715255115806189632901300731030728887060448359176692842271573125683206149468671794328436319885659735586832530225599459362014772099477976701905367154347477411086276164684049853306469327622389517035140452127117432694792884925413386568711698180049624879344300805178893225790283486156149838876378660527720623617985226842051706140704684855381395953894772989380168213556144303189964156149772327468259644889632828062930225262275799908734056426589357344415555141357953980753519379261494527837931583733520946120233292920207625275203213746003222099761981438379612753221395559541247420780295703901200309531716099018557925243748888805563215847484807879373212098759253104880659587300863975328095795806606773437693428921865541276210222354313620993397364573833473899772659647016323050657058643224748628288669244034705540052063498165469370205730979816530056020325752761878027353830636197691417477372936333361074822272565339697434295840455310989831520215806231065465362339322298444637779597755357346457765394901881543398857977309745688506889516348218726303675690409696941337712623202108239186905408927597128468609275287632657133351333943942657069205993256514789127630723496671787713956437172245125426413655574550577051335088163495133702897938663402899126820786022817964555718127405000370110561538718369035797898308384727514687770408833784905307011242515724613976143890988162907273740732922563444312986731585935015399091411997018045935063379832653110906438846247122857164734374602477917081799975862574681021167277999192953696702183981642309682102628563939880296306002558026889125343213688009534792673454113824394931956734846922365461888647717142527274726185334130098967977777719076188002995626990294479662527100466547105514501106987636382780179528887496148843236016047830096583991094455024811476348024061481151931459104040934755375359155751883680553766682088246457349276808576022229338086921041937954600068317145620621092654563833365437143779061758597130195266874587833962710978571828208923558759088808553250800405061709572061871009228689969826387932627583719825112811620485490451816872626838327768356137127476937769648486823106953747590391696701716614365147821033017598676386985009621618725476672779688896480300699793535858300413697974483134756934221249808137100025123083195316291411948683743411119384865280660364903180640010774142436547594166025256876527673213181240900690714709280814532485085880070895755012793054730634562746283974092837630350675096014989392073469322400868571375179259519871611062761721613259223187738729465521026279766251189176357814667292002807411415253847510518052068753059626057198986217618274893761234069214154859189737824647384303942011506756795991582898087157013547540965540261302557364214351214415891203116784783230030242451031902125634202927947760516345550434852453550716600423560165930647207244016308338913609442511536865609631292872738397511701769597474190478612230434557727792774484483639847190734372323449539577191241053426287541222090389318185206072435413057048479729686016440494798828233088942981160192667496614559481281369670184451780088305984541196472212197806044871970845973378284210780147355073667689329864540524087986690772661361248211478870508123728059112328465775210936166523927958449480697352351065443296586903758492616287864334884017973913510167139137131722084630175975989264329552485384058377098959453127699478123657809736720985275685521600675596773842154770239870178143225267080384355166543810539804775872912758613755362321278161146411586704195548801786286250751582806352132247745273575808724101838651303317553958127770144144912281458349834627966202798475667538108241758368305904423905424130440930069870360180760484119585787887276866871834516579658208118853211199351661917252421686787481277912634442182745601560840832621539707980660568292082004777828898844813370238535414364656277613536705606956368064059417649273330290894775707005283930104259516984384946865155429292192690492649778534156826277764257238661250810138340841122473626036611328765091375111244840476232420754853127293273874697101786216434508142813085316796389915089620238267255583989613621610745759839045127833201729647262544496244317904325079500974984111108983795805798908261673087780695786537994537322630625215101069838214085033653082297994144077770696423361325374847713253342968398839352105131003612078754311460057579034245407803077533675375801184327541584643361601006153894125269183735157659933763811690629042266252638919687428218305046510417959889119143678788107588315928149605460462922403470166998190443817925732319013765879340987215382981872383148270197712836806359408361192528087639548865664687512915416877395068754377095167702212902730839532790848585400915713866134524329040505329604165044441501501605934118090411391459491188069136318271835926699843802538642678027881401327310533149279000780397272954936760907638463733528983618870400292440047696025380148629864265105238437440903380029628890006822836660671714142396267593880017214448896136781019540652189234019481706721981905870374621152544789523904170943834256397553241135787314111778311129424365922436393361713417970591604773326179449696134348656978338835849466506431818826325183867328614032996867984969210455474880316531603533027974738614661440546043410095287965416751597747397698196610483970411411691854075123257326461355396430904333166734281719406513790519123863330801382009783843969945687032416717842334165876887991280228661062127117998083398742753850197416677106988010484031305880148319374604331899027987165903881559794600008281150794820308885951443402340987295270653685451599668018888273427507805162613821582810749106534885263349282516039235192578418628745277562398003637506861747116545329251348387773965656916144018686336669126454516641064489475723991531878393413874535297775339313761249787471021605057630527860437333274761135070453471758205543669135899197897684796562142573744291097140441617564725017499726411553278076978636379369827258844534259566871716042601942940998190996617052029748292742922371753723242770580334737400632299334238045094164166094466836332060557081670268587500741946230896315043380443241408313733324273809356120563981031937714836077798288152435100924344942394929851447457605964801441143622263933489388305017672765996148694155262338345385541282440234500538958761117081012188617436859539736132752736283615484537816906930598338662999227600942325508185343774742934984347597628125719240158540456148856443199215769673253233256971083253864766697497470003729629475607660604766874532651588810530935072864364872640698538415365315443932594700671185144974527424184783282310276822442182407355179759863647372514622214440044948925045544545329151827898591927821730131860527636541461545592373186903826461568385393183441133519475355522344414201250044717302207746631898915308788996090603243151981582097513363459909166506277747698067192006059167505622728932604557873743032282427191599193747317497782257756282316249045672117673350305403809028798676116342147772891792574778824252765234500165258484980043269001427618817624420761784168784315025087118281796540855257386419794898421585897961344563649972783281932838040069353930392513734134088043454020072681014871797570487905171191368366511707418975857613548338360289122496170309022916111597432892079175227300501493427166255473646522966394959534206800723639986249726422440453211383653105015029128095741923675797924174795529544259303115975699445322359513720600066284521794529918760607942105892487061150888677690528554411882026457058432292046939369749136419469046845089149916989701801059303477292107251062309483884511747399741983674482470991239571782074033158969015367904083583840799133489345854314731568028624637813912069951487142752893396233611444840275592676831066588613933653036873118219850989332402501664795653602728221490037615296400720833632572047133357359583143023177158188332005504279688446685705729130012194062021517836452991135242195501058628929523976662157121670401370816924579568053815139484862973721324201915158449916615916562277352922689049937919112287925185196688363435756772346081694852811100714791840976690434577732213753452541319181097452965835127895858371222811529929463564928947423274513198696675255695433711594539031719689714494888913240802712726522142168040109468055334738306890319170704731572691689092071235658545230849163609726556034213520510192938973506481786443344918815086846355422407981310674719450726452766381221264707349110287881325273641565432177940266048646445686851955315362183402662960772847829832783043555998190654525677169922644226880886256716970243621148634770549603364161852321563740098599312456383670634848174732489208054526230770541525030971073587607871369592697015886170791984409563436202927990584391743604798977587528433136213689891912156788021891149934945748453853166886369383711654339259709840102827622611696274697059367396975471740783050929596304582353178619555067121586456530974873923718136872447560691689252999010448015729847594045580546849509804563614243197155932975935041732728268268803409768653336741073120222093180759961988420749644149384278505218087266980010877632756447954887930090412268798964296740951097654455918955861409025891750150952975767615023042501880431565402732014733433149389786199465033709469212114363389677409327426780334703226597984565548188080956260285018197616347837456351659732973801873570231044813638155012448308219688995088568534120893522671242849485393603939952495117118333368793034896726298705799260389889027204162869050305019126781561670398817921995851236865274844510846454111979802263987494504378448836818664578813238966733594532585041818495832690639114153006515754693628500997158570479210417567799997550965952801412295183941788102124979644908470861690290561975505976892030265518570170511650240303394878532560016789148478467040797941998313453093142630815684075789494862849609618524299085648386882694953289065638561965795176339339710751803284086289707875064263079987464818626678652097963619189286258412973211593202907106738141876443710822522305659361724107723103064988254837472763745395585373695637047998310841494339517098016850018979234316889275970930704111619066509637030769682260581598465497994809420850924709740241914857853140511193315408197884916701821830579907899263327430137575312634705430950535733034212175424124128682436868408928412458770161847396508638444766210227124804120258205093152009865181228854174690151119311912829022176442018816096167209469884160242574276898040750189636107351118584355147352651675621642666661607221277538977993155773238031059505059003586245927585819249104510498566122056975785183654263047567478501520006313617068213898566162043265590162453776301030027086927619759196304030197058540866062759640032775530588580709725061133079017396774766717709980582731100354605833991433897267203720368238072388571380078177112986515764537696373221631709383188891961553298706144136920654385792174067287449274146106038233831265448276854854232812771609309109032637664811156802442519739232189866311421025369355252821138884191540083437437535949219428274574961954220018546476182656763764396057135785914171532092620056504419121958096196182324893552525591809578192193696641931229170080454967674343553271467990268226603391064887738018794473226655234276152425046093084278004414090515616708524777140144263735334386480015021750136732367063067538292777635657196226326143368245704747541776410629389131013650682131171761293306203403042776766721742517118271276316929673046036958790145036060131817860906547625039649169950365489952578221629937462672973410577907683901699345945080715337675926159570527220575792094662035831018943822748216155878794424750167261117511031012362731236391920516097428590817620625801079509455546225409339686715993152301425107759295951021429655552064574899330163460927334310734456666346703259751801151019718334302771688155725467362269608131820453058055598343376580587323408901381736364741302780960725702158036490698326963926370765392955399792388745681719149668733040962912727111910207194616718010423989941395862722626113224330988573961592801568458376871890137495396993756958172442537538406354778022114109974268944843667973938452794933972334428598134844103333925123997682041103881685895596342235284277827436360512375652536198846047649472722055885581027017188692221564670002565363191887693036354137875886523154758743815599714365032102150673519774317878073228123961781809056717339650486572873817567827405599069461774940206733769356372051237260797704274377584258691845597562364588928422694310545364117748856986763042307703947712729183894645586379517688001736223394764235964745314692724917138352227748985869249820599919989090650274840421931761717918336876831781739773990917164583979440101297879237916223265678549398703162109213332818651827813342264497620668104668251865421962690504307734133705660036951463772309565297235851597758674573613160448111675300725922651080479236695408788193415314286428843224767946682303641128095822354964325548992815754875133973597196389792287262299441928627494768324955400688659372678233534713637234978665684816253841229091324303184140282830836715595361478882763842137033292476817020518367130250979002732892793744286832294060689465618826830201026962733986146279569446396880814955052175584159905981935064192269405355249278336795338102071285567859239715255603029383844826988278293896059487587580950913381767606101834016034065697255202467427646617435426826199082785192132230882572570921831074623782840980470949965472891580524478375542929800146359096282157939138129938948638912178921557142240802269375007294014353115414628258944644698035965148835737554143047549764306288336188688428401107024499016897687949179682391191731777605913674858440250141298476201872802193447821959457286605801135622297588971709332928663491159451811629948886636002282145095491865989843824333291792107610140895191836711428019099035949082552936361846492696395576315026572311867016971966616954951485838679743751800711135927899684704633922854546427656297292741654763987288323552051295936401369199094754878125929870921599262149148206722267221395528101975042245688288005489188659782298505537755941372799356965491609759738581902860605249957504822412399913258061470670653560859447382335746910021766027683715055132760152342824095550755845156850441258476558225215325118123104535028839360982188469685331320133593454993536372508295396868464784761866126177243597881630267057890265295435461857263979261314198626267009019866611819351384255721875038753684407537821698413729382018082557813882632958030795074817893413853608901443411737911953015233950878035599510611091061641353587444749379084032079689524450944397233128551362598716571920181844568461043414682444800031535736683623562889444471065799585890543274752633310333423882192651579842986268795289920781897576692715816338102854882198460954653277086880628856538658066678987422117271920172316879874155441976779845894082426906209628872533825682184196301480093408959843246855354249373409141554038764680667585303998568665604800263981049625696824429246926012804318555143336540985694079566221617231262213198271437956355198912909527081547323419152375770890291284574604585411807238100080544417714142078274299878068644217758032833038965016547714428261608090026704667541325974608975031091469648110841702924839336643191730029499613662172147864928437599767862078023347346308900339420828420816223737728354830820531220977124908105573621961948894361185776850415597848561795478997124591107105655733611553611823414213811308536902968921713625432824254021863730960200566864941280462496904397625517560249427982820765133370752506861494828903097373803118643974589715691617286350248217698722357276050298965763852717243416760947757636736683063459305123507338957242247228216187482485154385829252422067692511623472723311756167332528607357537692104144831897109817620894928156924510029214012814400631425685669464805710758653688326605724659429877909872482250993850572770953765775076918934937966798483519952954545662139010736041028920835726596984858039773462191613836314563191493530207491885520980075111074469257919268159997142413445914052965229150084971138335834062615797369456131147824327281056343840070812959964287212407106409842037953748434842463917733759725018069138859841552572191517060339860185633772666553540283929503512956280658242278583149146681603147601456599640159468094379190460840404235481568214191048420164117975197280602064732428526037920079028214217804607551059461830778926950036904195429177838488376346888183151986351307301084743314587632530918478187763404345524309383112833813654239184105461490409030140635811499683443775730172108693329926445543790167018871441905645273194813540049237283708105597669262583619896842880057998976084366401077596518351877699210930203559724856615225643288006482765978002385972095187443070454252323770982833982466503698812397459025309742670794582932369385714645679952162230384216955511892138447224850195418548188704721497462607199289701917943759053687100839133253681478253617319939014243183408870957056753534231376701238247073856908481919675991152007831514386239352315137332521520353722927175744994430515948262505790578646353972494871001104765867368092578671043974190653387780055718511983209103462366941245219694883692768154319962219860755480590246886886342669057229476967312545728345678840335923498143524603494404223476347557457909060920809182427876801824766884159523854051914052244348914256985561370972032076905229006241827958448646205032521561792573803547240342199864090363537720384669681787312650451434075781695660769540600333535208727352149427113331906147853851035961843583907401101296549800537275457298730237364225911872950290112475949223964295326527004166770658707817871849468431563042913041670682298100493319105589394243708500425180844023969262652240208960036971996680892282791295938762623908717700274956509314960143457406192010539512759726402548187451459566433789406487505071993635415206000076534850051240405000498556463715314822577099037165264157139752968809420983972948613440030078367706059718608494687410478380201907182669224472777842090341215884593869330819157023738037762326156049317202793780249844239196824006646394694787341871465185437190878908998630191997629593749283171839077803443927534503194003549360145451076061516624457347101114129097274371745276438994277219491711029285046779434440725852134934416195214125616926506683171045697591650777532611595540578785834036456333946330906376873754579818376927936365142553548188688494025766533688598150024180746509166087549267688269886700050345683585090272889015416218238850977607429002397005382548490970539827620844100937356686314769937244268235083980966811756375222441936780503403583820626297661969316039473059876785650610604013563598016636629954999326495611757656402389263901593385974060718040980176877105325738838265512558325874088297568282223164493406191730209300719729201955335836983622120981165345721680486733655478867370757952515992455263713118051358384641124880888793170416653648159186849628331115349436362984364011178893167427275114400448362813648941874159161584564712951182340270293206255753921316107706432210290590281274667335244781655299901936464778276555537906916457857821487071843879832876871491793860984737352780959698193197139761923969917552787926308159499759684499959963603754988111875429700541914630080946835899880040327484189350110380572420177568573059669193280173853631117976338224869401708205659573545772143019096933648912676441089042164200738972466005995227142345073826179763764523729196922184992621128018855987773391568952573157225650464551289119963646085915499545994577530526501195584896814015172503640122851454137301105088683829937013047740449206494047623915634901345743274311286410120577376912541537847790559327595325878059816382078386481910704690501529877577927720147538936443137461239419012291901520227666798137136557975184342429176665936609995359316476701326645192301617699948461451612396079975970983234989255810853130404703871169393401215669073885530202106651169316411089022775542095246982252095504064829729208514841636694602124216971476087935733607313750306324959992125879123174851171818111272152940784910757952094128082544140359280943325803214103594348935678083025382323855149358485895944867740772370044399045279339440325966303285563361245552607913460911390508962171464989090355983235847663827340442548174452874005972894392331284735570276243998656476497563981674293572945132749396951447141014619631283544308940595667531746745554586780146932826360800512790582218013735047712631380112249689144262508262248651728563833320356684115411332522960074563342392232626523574512115605576885142493395832986099464631715172433847382650500250859935080143802455690431367521387625134477683041410417799119952056795299337200394049213905941934950031843155185910328649148640441200059460226173844206556045759162249204124953151033421609351426894337410121696137150211751224249764336331530301511435059793374852246587002063518628619089186391223014826833084817004484856025788817235288920513751133877773248281952014726629068569846479254665211149743001633901124519853755639637259031364507346463552129879200847820847152461156090359768644774793125294996511952114339972484573575870488504942547841476923782937752238148417107658931909170096496358735443079254279938143556853982867346035749348973373485094750322936784734667282124436459714365076352989980482538723298907286560546910659104079244363370998955026083176771313520588951208761485301577772503938699897824971192993035044828534971348990388403371777030320043931884314909305071946864493513707524422146801599340676310797414791736067742522856041678518869945525372487998689015336622534326676025936510643606519769051324345628065560915274652443608544064880157699105705908422193909599032635084491926714210808817388113691494708659476180092896409201903940761944825242673521797649473706786687217585842260037846104219679223073963272058327129161121323537511287721555987141295877157374442755816803439342607077405072563499369446496169029603698165832186985860413649214644038438700664427041803044428449695748601871804680427156751232081785230958254393112687716260040683216554077400303037096635262039661067725783279071529712691114936439981076402322274073542641458405616901889275152055404473026083938134570252277092330303875619443329736165450773706555591565333510058759404773232078314044919974481433528075162719639653778209968487232101328558825460511277221916304923864355965868673976274820040201976295963632121699849353565223075123034663133011551729779149042213199385230456938849118978499301474582085746187876078584556596369233474045921348048113238867626355630490764494189947312908271004079884995785586339134933603187002082701593521176887436103148239865636182080972762003467557390887247852276102590808042413178289045626626790423194862682445599706708818110674842428731556560195192941051256809973325111896065117652055373099987048185243321359889220905801502044743017714742387348260199107235185984406720320716230087532146945158912075423381340636445963502607562296980484751429271110302238984026200097754905912414306784171248360342285902100604320383097260077980459554900635753199987723372179284330098067094226469595706006351476268534561260241813989651711806931390535870985123470141517191916412108321040291060974987234627915744962681947020634083517786221340373542461651433985757626363064467685292113044763130377054708332792601287377845514767454952466830925250935165467845514168342426920048911986339910999796575815084617365785133704600467175124026046688956323866273154889679012196084289086783478334051526143001201218120700999780620196342730216460227825965548021351035886433591384986456191674956507417767331412895105767325854052286695420141288763844427292939174351445895747669981848776128928368166149799173498845053409243696801321716602477599800999230236847583863274623627397197565029336773605543936110161975017135523417048139019580452058215159293900479543865132707377522221829531369920467373224500436116889562050658832174231241244731809156452073663346030122729938346153817430916861038848732006362442675509394347429111648812401131633725518715624819665545062969115891299720266150957305748251058866833826610892965198067361328783863061079722611714739921953674138093221201418416732219514660213933138225596479045481461083056456348871231601893601812212428721296505023980814526412338034884222381899354567729552699314607950015530802569135326894025725782209451789262198100790105735709907431721573320846790454048916659232407639879921528830008382442473249426026828401043923297865038760365035676482058503169941675118686284914574655508782770018465720698750563181894961837503287513120528067648263367817598455257906149283714714974147200709511541991227001306090529694227440084502852369053011239974972068529755371980192199373689545539370293823525611783151229568853329407038411042001444299157838052833022479173323079411258987789083381767449766133531263990383614078638816415307901425263219391259471185491673229531498272535016267390212285008162124701113342175454723041901750572765364805712309815485703452554786878424248665126303897351516211330732465973099460002913350548202822424124009551145030897807050099238700088756196788525484409318684354988781530273173736165133582717118431636575711681191466529046111632688972663802815825216051697130590642764626898931860819706287785225953323704753333696257340141993960146976583888167266493152851650512010439224132125994891506770428491756258537960292813197491344403021552979159010726207592862181073768045461264157188886869676656214525460302173511514949447814343195603728860557515302715734188531346697956504101366816516815442134592801991497174722086892381301791732438009847630711107671554842423871901117272880899327551500033947964157274882611191865201042866030472792430876365150167595992369357826894670124851679046419483315071614218866832554147999617554407464886794326508683168412737106464039699753844201540382762063802720112818100850041998387715253107846420531290050719725753441852826975934884413689653076685790310282960823977745941390230950091778785481224350677977477180642792261712785174527714752173640909681836370370607142362823130962386997714338820030788130958939651094526331370807915909470727910378671512591391227934291457757100070048875164225827588070831339916060565702230813093019928788214159064967819775264392505764309197796899656776079771502256451816329236326796046660968281124107263126095144400598945121272601121382737005673964759448691184813763859109739430243635500008037339870989864812672767557349566686996467942727976389338999585449333475365663030377258364857230425917602342195185165918256814843379412638754778950752878488853984459668330843136228400641757477799738925150266438998309851402345826503999983617374959162818500449511997932212015162795686312309446850227918425595883872581117214414458299995193770904202720534681347812071613388613315301692890081009688402329255590333202051201049758274313663274225303041768612432837220024938840177416602141950025461369172547902799000466032703296613068885236861384486243000323815675831717071529115124873618428355585900303457713855362874605846839801287017461273061415943131636099196890863991076527576249973796780530815593710575961238246448292257046750245586909107140996885699860469467281818154613125968679745933318034554074221052416317472062411688615956615801763460462338531333462594605814012606351601779892412414855519193136395685218976593541161263789192688690264387259298584168959876292823049957271391009887473561232091325524369774931823913284882033224608562158765622586514873341978679295537893133123613047151358808163290283717777224297134839412133947790859037744833216328962968789082778566597892069300463647360440751285593168439938442783321032959552863367613853208752957544316670583937472166273520808815557107522573188355687739219670082677123665942291618536510119620368012218448234176150017149642065317054529909555107157339302622721396389546475383375895023113304749782164071469478332316719250511599424283422743810842776893236525262973547484252041739402379958659221068690281338518215259993804964541273481663029447669719417337320190702581028736093867981043432883245138016697336619131624279822399241512221047876289888287596106229928982620077494755169666799137923998384510990925505091655108364028304992580510998305888554645856038441901510786360293619242983429992532654274348787466280971684429762719455460529393298510525676260445188634462449608357860419713206770006441317684633246683664764614534450878151413212805827560839415493589615579374380942000020194602347160081519300671433471836390124411097266235412784183612952628553199118795036637832614269781953586698739585789723396543490268011101347001483286836130402691287630527669102693813090222324524569574913542287724243819800680629718189392582398705218574069157261165476298264054216305729006532631580500635937291154463048427672352221956387710353766598739080742039345946783334660779969038354342179007563820594818424056338510338525983437800597614013246084931045086769184617381613079088422367882291163243045463829894766932346594733923169963289536755677444501983176898959128761670202598868913872625135025399451800623202927410375654256353940117167364862297506273486827200017555632049470693603265291466752963973588320376662380027080562548812387841154059683549996476856623672718999726544857239112334143354493704469902005913276271796384091702391209203623386779742358485399663850439467316168606932132853331511290155311825405048916802518375978732474112677784282329285189962854355387704964140900399394565824788992401868993351833553870182033279723534419030287303615824174642075636865538611252615327180551879874733224259074397588921008597469875490003689091313243084569236139417983848562451170083058044275178203724572509518844711808906069076741063327371271385132309571311818141050675819183664028009852246169443554244501105734700864849001481019351942376676984404450204116909628963768749891521060725820927279286915549395421288544486006782723020316046557922156009212941479916764527753502282506358791914915378895214280922342907522418001562287220206981289318445656359937644174381274712473837747632953498842897977795278698241713167430868817669383082653740765744297053322279645472536429361367481921105481835361743454687208244946760304264221510410207615169875425459717137953278202088555347118409563645463877099369753075130648537832913246037326210247880926857299437368686251581258939244110998646062478102505413713701608751819952968685701774338020815559027156113999417684467263249390298885329464032501466364750530577517789853207601331896006559968858544007685961260347991153407136436518458993220432409979318916918460858569568999625824003736062947491066969556068405767126344158864964523779120088931768600592881142813083527138370255624820378050401479387156518573060376052207229911127699462545190560920391782104793823474408729071493440918969675749442158534814682687290747708082672501726515355871760630053679491771501717742870655678663177524838915700051381205965017632779262304463449295840810550837226567558104666238213311353844331581517387568201847915243944448766596010701205789636243262756724591568170966086789956181122556064748856129464502221474589166970534177153892931981130931136566637706604878751421726063299091698965720408498972650264980492399652551014438594894435783662645993726131812572621468178695963724648460918927400568497003242084198437871385927360917950826566978084088871651751094889175942078277958184276028143897391291317645977748627802357225243321579991849191426997549307370471216731034747120065291132033892739442421532369129638597638368975315438574171130753869629699258132746943666566557893739547786292554393413242315236954431965200943383574983049900148300563211890117029074322295914115256391445879882265592555574707568424352034269274447344252289424264362978100142630750027535166363266755788533387766175857681372323758145142882921894090414865833704758663985110322936109066738765968840750474102692153392697664752454678587544492372588338637752034931241371354791545923730760163315303019519072136553173357450875973289597209302547701905410921056842702368834772090634989419481424979686839619274794340970029613643813972310963712367168166521373013069888396139010701161471833059069822975312189195210363155710764057325735679575473536005919246046805368409161256999293546611391978205181525509242503888215084072630598539144670986530372276545032108299047645992939763426521258111479990388599647066218945694411070396970552161403414839646181279197867817278522613602134879517846802573184569633129658535086034279474593700559353257695933004488984503458324872437698765094228003923724974060845941576001078304729799301991856467961147382280571884933652587416632243400235622119861585589951171233240318554991801227214163788679994168235036253707095978893368173705326510343401200223095512137622373239281685202903217617490178904992685592580226017020950646202084507917425011507786032316008844071398063018541747219348439003455136041473454496629483535341014553799252751117561772052147844820732276056209608623682565248048636948750033406180957839061666242609216525115230679130876775958514473825349095255517259192174059368532293194331351754566740296963758047144818054887636648213388900517230132544446869542540197356450418847919564440059706092471045090960921011435661073504496867365156479635537646592092296307404471829836766319193382214119646276590621705037214925738097178120917415576065529517833857530061944226212376490880891851562525481422087600092045458877406919335665775346618104048950044412817498997310945651890947115266969315913031095002599162810371238202610777169957216988318749978428105459923368068207585425675356890086788170978455836068485726173932731453385047863261608327963671850903436578324707235948838098910465898585103001633766864093874672517068867019942820299787230701758123801078978638053488235150238077900276109669987765121678595108633789210946868167495690870105921118767244315685953117987231093287744326343881424089719401197558744931345629137522754541216305907023247509796543317111207279446923686630534660315631173312029406201677173565229987828241496780472692715130471374111849048679727114513741007538579147809540650047965808108917147493818358907847247141367601940909374232704866462215567316934525331347835531063045053881067929257383227185431659001923241900628855685071425813270618204807469852222991841915447210132903039702252539936444061155187454551888542836581731824274555969842992127961111610217719492323061526271197216636527090764262444528409499181799530860895234759763318674014229883704756602325797092397621756296610439271524068827866756935600845976476453851683347199753663325328113652924509243042100256501165595089915757557818236593432150387617169859776087166337877858399646811610976336985646370939619214078616779160143584732570398127699895922643097669283246352816815846586171467821902532526478496977529561452610603273389097414751216048173757703141009192797696275734857257059288600325846167540701484778198127719786632707455917094290387904294855004867620589487057150615570251278826565567579898239095370373796082211158482670913417872231653905804267969204947873922675376436871574688946475315114790891815764467484404676357802981123123835208692990109977196905314630965234391670243314730863821401546864358580172450928215877718540983448169253071905924636163610476781466382606185290600835990777133739977234154995442391202165109812916544367365360064069000402041261438968428994936005182905243154934883337154935242951176908449187401906754828254795100674873233752010437515563247301678208865060491644602925931760844519186733122738807235823267673307356052733018094838717134557208665591373829850716911814715513080131315329928345132147737560989469227132300373956110972458397754289714585407842911295117164848340737108235491138112801445301814552711826507427761180077063086937214226662633215109481932985299997464339424958113492606741411973302499952400103602962722616128250298109155002139651485867137817603049636403617993653136085930373294807076690267400435421087571144549973483787104404472650518045116297182932552991710897126508083180668526922861908049427312389004309506451139236318155308992627388333742481285451455147894906144238674828170927760675198258605234561613396580586108378165080871098664681606882024644426897838255838024220508592268817432509029483345904120940621203736717277069667398702202258162498604060475512225762168795896938811566354062240922561112718466056103945862329007050908585408026498227157431607128515932287651660261356006683549183213930133117623814601119420569929990588043145830183887652674321678220941332868811637537799026521982454102876345598885304572129662630378222977522231498843501573560394345885711329342420661291544416525147563947087485622183988718711046115132412418557824920699565475624050992112725942043861725759009459477349641816591498384920398283566619059687547043521003575814924466590022811139511211342109363340558965648943259073012191977389632321840880955444124943146597975912511067329802054594103391246516472752872438786223388618586681719826660795322385020864079470643363851886407362339617797526581780692263775370103484448730250859623505008947669740296822529376394667375478371045496287587054924674165972151026123197100821227998413085547513384626960400529768667676914310999052625929410353969886172219148721525641121549690875526197403474165738992377341580244920103565615485687089511337798452227540957049771018007758342743374355451314509076655145197024099673164250779368256126113036970238664531097870912454730356463813207060989021681560817091560013329665070358320386417840585932836403909909573738913969582890947582835517378320696962559168211674832923802364980957763524090944154875924280899720059636647122880093954863814836153688258407206224373303552356998071048734688096368267140494044682484780567679731731513953332734247276671753031406465793294472665553708990681747417734932441998593016741031901274268268898469525756922529120649136503467151525894346800695015224546456249162248145086351282935503009136904694127715617917247013005221757606639149640891416810362708462277450602102788053940999127688583562534584934016114604667308131919438042764813264293912748351129290009443403571920625934040901939020528154130023085368530391598993902114365170340902751296810079451762018125611302238436736996402055287421835547326093907045021607336115582082562837573337943605827877637897816173814298121313184356340192961192509038860599296242846502932563157909632885199436494423224194812632876672152465651210879897647678971158206198486706849142814031127256033145500016775195787046315889873027235325912574529021155080155042261884026956152522757900119663213280822076650774835677452678089108399901003611219577598279822987663548510713952155112374844203330785155744789326142792880539686369928013907989114756465118676491311905757262933797314235183901520365749223232585677737664967361894829605390824418240170419457627423970359689419751269413078533597512061869207571619525391817218034400031816962361390794716913586586422227565626995734011304085865498113230621973273814590408147724234550513517156739083245370073791800162571040230099451631849030675754635646643849174063830443080391658656683817061732549264812886218115615848715016387567075218982164591226066385216932655269507597297581334202569729207828005910445007757429812552671656105186764251238028640780391297382400561446748141672027872435512857388470595948980727999254910108813754998228800583898660900701228310814391663355226480408676007656824437580399700322106436898167734641913385688643971204986088097003869800329398910852762918850068755576373529442795635152607834404587053865107970185909573219746570447213062268444084506066667537090666314016376841959868120059590306352371416578348391580047945086722448684466863342389013069403056806114347591971325247295915881203063661735094801206245331307867871043579120977987968900255308793197422231486522932468726097018740792880997450181772603123778724097292668038798214709909267488922310524358563460390257633419699859669693254362897945889758162422842126163001012418019425058648493412909938573671716333632303771196650935205524523947864161778696328815010904546287414108118837768356925605826408108992653233382067465353106359488779263514809440581039481357821721210328009595318289420931314813370755299939138271830213882598153706477466278766548133753127971569389000526585942595224759463550884981018083437196087043995618114415054764576535507873891480162444214505451409348875499138991997115684534896978574763381881110422552164034955167426227537767987292171848842230062650436202546178769564298666182055299265712582665216123675470363260551258558579675146124371212593094980488847108802645442198643822470173804981622143212251538133465708698508547667789464212375586721584211049775382595372172570185363697147266221970366762430007795118913751505771311093931206764570539037087348620607677578861770338412512442731812928935439077331249648410212774935926370722343167572104152377628423984499241231843823042586813301689407865183629759406970258004703054234121961413215577141960480175830109061872735529685247245322853453870065132972127151305470815539369150413829463862626998859067457220911928081988421017640360675063927587888034574253370926686543531157642923361746428245236187558067566753858553272318497848091493818445553070358475551221325868438983783415329573456337845194219561178867295430943368706594028995319281120166162962248977052762281627142671206313495953441624628438080085021228612116988349483288153102280052556011321661299572785479985346194180706201290740911088360534097578441941506637032321806984446264364430044163253439542160375437260375815777757703539950853657724977469107132143399097318194224182198404071482651058944952248618500834527868320434988143820379457413855110043197595151568275555117008484517686268290907124729894125958431813493679791655325719641978286038686445625040320164610064844641774830144098486535273579974089679708858971441022484533870430062594169169951997192293447431489639592954005470820778268881136120185784908361441999939703227259559835173187732398137413103270875079673527610098975424517758579631678951947132561078027763636746212542684526039924607549459875732535095218004879131330946306575102807683691867395026303768590762908631462637122589398447962144950656835234275939473618792607271112276075078476721732527489648431720306325363993611594254286611366129094272781581903909531248254053806362468660321989642839152285181257382063874424878920171056311499773902696284488956981318660768925810489148547130086302050856272964164195045374430797307812097001055638659991326355301108525669694127388592021852639393875428901883951534139296707472504949719028966650946125517827857862043352089143519960290179688080824995980211816295827861044918424517715172628611686143482963900030363676723619060075562392069381870764816441116011724043850429627371061023947410644486838739532183720505751560672129110061711412836357185550999247139414775650975506457273403292153242841723627264099496086118873345064596829366554260659382355137462809597566399508582153699425759033853010422557091041158167270317224659050440321528296363274591585913102098429190651784350722070195952761620826327330654298770472682620172321683022798239291740907914335484948951154889259950993250140151611848415161622647989457624504479401182304359706455341235217257760164592413468990266936204894039069287291282615321455121820970963507296470098719136883006129200230152055115829620789121609777201314692013966218904264359259916490736539692779529983425562996807789567086713847120554084963331791176693230925897627805501012906120299758881947901224541686731659737407875735215946658548743480932677356114918564484541122266100938193611666442076298362969694227988708573204164570357846243642565217219202440254248126116109641739440286441109207534850338413776152990601982335507002109023215550472853955332070560842031008691647533761422268570807146249407018995497036632285154198030465831513282123179398559755360343610456718495923337769008001618126752967521697548478179988989360053629516785269800432550025496197107888568274913786634845448775344562068850552895991863048604431542533193185651902120667503428715125308868393024517164610406675922119187260080129203377889830566061960219063341423708405685633194137030206332682107748191933210057937574714286870947756851208304771855576118418858532492344905911184215907574819841626931205828570769172997358341609954941640033579500730836806659852676351362685998758035125857434290680988854791001273983177297905746858162131099613930344213125951259831957236088348206791594868380744634014983300240104950394602062215489529194892955224712301490942687361145648626759342537180877609570450581239565145406702193029545626813588035384743652739352042455065332790059282101740455964386762243125618685172436873145882173263599745680809770752766124916063862447447697031827667815066994047740369203190763449848813024038499317556965268880105701383298063295970892451273970675059453273131256092663022845524691194969219760865020834096102071653899381151736706983818230187195574863841052710192705489247304243877021672606992921681886564370590689719454694053373011956608215938362001372168845008901367847606721986091967244066051027166709741263888910520025412015857110478681833965703648080252404473647952082594844928394221864075212284365869508818714994515829509367830411587410802030331369445481511322889437480362970533883650925721063442024572266890448003047886892510890047725239807927963995607273218847094507671092762092037612297788799877711117322399655437133390058129138048707399131400623219975606803221933210252400615463062480643016159438072118647417705393539981634264768047965571828988567724609754726889610612600553195817395276291685932545689619921679314874635424422717899475920805127342006096220842771052271894782463465956066505729201369058954978591164980631346985913213151937993482153758113125419509273122719843740499902777216817357322620122263544807834482932099194172564605985687363217582884015118145684421628892116804106274339247073562725260383130111483791996607403844596036624020926642599101045264994394799079561391686332082270191060492739970244287955791990141028038441796221007445270740038526792042822922938341341752830884037178597739393001411201793381432775369386337267117642974345241820916185050864640218077946958766200838497131689661050430455818217448239783841323576549956379491642893311531463182376431654010221019095050770886518577318637756555060183287328913799876721225345741580283094564034510321103833026785008393487386331178174589485330165015144080975444904029819641167916299035109506379084772650700895489521953469236089140518440252049359967323586428394662569647683623684557319415391332064591695340508394949786877752622479464687869646418920177307241444765796222375512576175045273828819859480434493345151241213557928598871499750208481492621785672258363441515290334410892595066414329468175735453060535985095326578702447447436014269284788036636206689855337731914864287706066529139470560845991465475250106610510511149611584432928339921399839224194658691286099589803730427330239499005155371987501513274372392896628856724389069927109991011519142643647669962680599770142852812000816414245360177725551459473532860117208687517565524580039216705715901016589251677668806840685133526309762570286244683824801321431302110651229422050190308773712529862569472619217166570912220607042836940384012354717817896550348301413058687517864207664636321475326983934306095822790255957277946753143670086023310200352253682231912097356213065071718722803948807103328584031999958874693896032865861071404644722133932604011223011721657230011946769815944237451298467544397070582868270941778400405564992487110367296152353927124222203956908807210526082304278578123990436257608591549593310914433922626771251793585473712914977171229040050355156656127718273708305578603491243192227423987753095386320171672147652911889316231044217366791379277054905346982618260124723367351730387481788764319383603304881627701743861379678263798030277088988555797701356744235222059491237139941412176208282856723445349095332391529151388429061673438485123167446297007955439412332389706454920295118152887488909771120951499780291864663039777374829554958759913694657987216615625140142753722934427841734316438042959619956453366178754892610654835439236078303044474292202563299697771293243130633615050088202986168112893181194187254647844554439781244664451874195944013938074075885866833313521970862306434562921397330918623129944895682225082362191608994168937344179182236948295978891533315121470451565564098567903979253938398183307914786274876964368583653730153535790897709988480813679007558925477037811408632224625705681720107072039414191943203767438297863506805526903621974826863679126690627579480336497381985395999965351993444489388192708192837643891637114318613732888700647278266805345982376827711493058426994146569329697021399737723268077993479947266801486955563625378268355264675415222763678730850255102003472646234229428237508192659148228929710233116274056464113041977511866106588243629997617040900957861461569762754568492042666930659592337183444468824706377087464611900328212313609457949895735977615329926357942346073637770862632394202299689706013840452132372218673591858256741680660000907848875581932390375401369847449654831633729941828915098729665434439317765618491888260195259186532365315222824918290708179303247871389206876319332870319861183958015362406170931016161412732569617672614114751188936727882725056807805392314337260097956307278152796034420689180832834124072125611613309252301627267917178179870227357244815096611580758960483429913237291370369701037579232983834933060730722336794458691266031040694872713482021287816341491617587689622827806135312191331254423660703525086465689734223301612161869827302555183178738555520587714868169495358255754253599906022361285591326153093075111059848689430684281948350558131712832134137366478038182135597655360428786996792183079252466244299304246500538857913548984262474153673917861579087411034904547126453196291197277514096583162160659425697945871772685928506796785358608809222785072958953143608564269763778773781504279172566677422034869629094131267074464090720614400373497729505007284356010475456901983594563709610728502677091163426073634435975749887478774559989403218713117154430296357437546966119350779946227660794762421693348339405225579031499729790074080804080866818524722242876297150284003909880290983952050762783497942907262420855401105713612093370662213402906165557571635372171591272254956955378117872054968328660337607982132618756428634932015387610073918400242358356156667124730701853038417735282332635869858221146355095484419062051717824289473070989585178253679524738959259527985938374585081382040321605018341575966394603238880522226997623685562775011469082590753847331411132427882599774184752735036939272651979950740536394614925540182307422215335131361725365593031512547156292227225516249063081635105720926612280025807560141983892301692215134084473262809830454086978545388012548591796441152905924814158017328875174716633224644315995412126499345727788935333579784245544568195420151478239776842897497277285912698139683379369207236086820649204344226047282020542964974097698445573532630250735803400731139990244293993731401414532692550850926407532946748740312393599289339636280265108970274666367237268304327681865383667919043954670347400933625311887991760724412122826876836012573058309192801398711605232257679825539837179349038202318946014420064284240933682400707985361325045050705767437867565751589323942581752917478487298358330617665923349043120059952195708411724944060643940709062708718283833761749697913199831375837235175365526124939104452712723160680744338180131978775254171692104803609844896340732753580309698211072522678125622597202487578979758139262869366691328880399981133459290758477306529968382226250086940653643930338590075371445340576597750955043095315052995283113330420107357067383054350194321515278478906525863661697650273557796703068798967072462209932392787710316884636639485385155908405434323058813404860993895859936555592591137240669828740153116304104200816747685312887572863587488723828007286305149187036136141780134736257394708690014755741196825194898440254189611652289052540801126762425283719322605076722442989853681665788453500144383069791121277492579999345116380422767735831631050071861327533676740151086191062820439537382250721145376574941282347360978381290424049112653368783232566397290305417544293396171748651142861226642293765066215759524960542813492477565835508181830124429711440239694464637171685566482445349169317310335174170826151330821352882294533340254272629490889025377428864446938942636819046508442727462374582815034131221676655479559452227251376383237998221089067175792896629796221458318371900386342366858332369325528374690627767773449281468023920190892539003278720147351544607387712020357184934039926738897311142803588156341120989799161000765475761094384271489206952960584887431624200230758090110411305326872130666564981804532550933151436250669150060539832174467361245307444544212952538001847299905432567420805697782989555684690521465070722329049593550363360497029837632826179471817023110203370976367521870818925288712019081258162343650617073630826096031144314842066040477614852224573777064730214801049028196394028058634036934314409514102581144364155952785222262257736833936621387638568730201742025705219254193939505819654820330908028613591398955535559981390966086681743014188688425684898922544721518409336896915934381895972439541522078176506357267399915398780967930938234409638935146644625196254384481605525032079248951454378380555232344122167076298567365052057636414352021860640729843431329064858651041359091752928149151256855757259341366035589472928852373851424459675092501590259559025710084771950145678894352730504970935852382493042579781312229378776900263407959641926676510685649124280949907591351943571456030972415487584536672731979277503917238965444827509135591939894500038935618688840741570013443308895945633039921550331664455394664070841451377637736598054679721176589749203212162179236716675770824078449023471015604229092329296433039808220960146418376102957055904607800588457083947085598865281707270327978586886599508076754939310669468564888376189869437005985017316196729510543391311066494186304935054792078041709305392778055242230997956665932018904114928480911721326338296511333554978732746898319979054163843400265130278073768323472055114804172906593963509172707717526901329128549992004763243651127011093452746603432903529863215147845401540029774469308896651146834820987306859671930768735451656135843678686914520411721109776248587865694924512541900444645899900265185765250167124516688925734989489852989722697528943643820082720556839287554272375754812384179040698889618119001285515285087374013071860502196658407233516757483757871799216070267187778113080590297734718062570240700752241112834066171275675803136613132093851608941136770749265402602254111423580537194739834398093359453904194920459813108045343812704495790274357587449313821218592189631667301283618030293425089994263797318042469419575177990085524372562293394310380187952221335077485392489049533791801959379926654343037758564058858411315128620604755883238913220441180840783534321653456366876547991373293827200814606560563285204499890571764495202782239590240092730042870905062311932012264891493299785532723156542824705435541720363993994028119561971887692410096509888392793954428414029829037884458838900834629467319753671827371871813168708177413503458075521280234892373309636657147636985294919895353374216515649298250570008345060370495564485337781482980233347970278756414622038858530847599208184763984604115304148610232223310421528937049817282284164959390286426608237130332636888947492907503227545678903954756294795495640587562557788424897680774741188843098222546729895539041156509097544852710335913002908621569787955226719295116081300168237972359493005660389619756652768776853882996490321138634667750652829196144285859349139118002808114385814037677507908235324222035611932855598664257181542466888505702000792620360740986121280231139874985416575587501420501926683973529558796813636218502934703857143697935673191600484119547984609746992663370971795873910340192157650964820999373220950766260192166820576342099852229314688683806418278020675230480503499555268432368329241478084433517101379835393029176440959236322618777980492414683616881702695051898395065977598074136434409088638452765886612070511344277457347294816844362691083349665323535955319021599102221670965978916471318257185049791462004496314553978141992989901827019902083703455677616987850007579616542708110641507878800589579129258508389663630948630209618670552638332268326622036790007094659384418741354419306864139792810260029230170982991951881527345484991440061890016279662762893611188113163984630172111906300477322608144605771168991612539304571772870833976384362025584492145843833948448960103400202846909616493548520474978064771807865216803519703121801257100919097767932704613704481477100471470104344782768839053267242794143974018505652231380401067999298157810352260543934345713129208319766514273812386277765468672439452314087464625250679440506727125765026532860589246515126191818765679562801896872881247909348175010604763594816535868332265542393040207679175441326429193797105513026579610610760241896710676189423311530724079495282958866849445810002961750325229141265287699218065248232537676635959316013240744771834214201262601225440342542096069546871156707944360744050822176609527312427188318846954176080975323656724755157848065972047978514332610523553323738761146911847178201354962741428823224059962386143758879660112386341671938994176837842742305558718563390817271439411221091420863468784735587174221376476599053661340991743538703043011143607118980009924549428159334369188658174432046421340741480557901946770891583288955450730032726069544036748285160580007606103300185538989458026411453825175951051724956871315425347299732664214905221942236994379912311309565654491448638116637675153589356158885826202747471628858972965591000091046591213956884361786598566610428960027667096928097923507039365785613191127966724373617126629584802244343503405706122318257297203978516849436357511520544632905698377846623646740829480175448520990793324767414117130437933036247092891582079253140611044314619679960511646663298509793843241476513944320373108448303811180451088821370561426764845443948224562170043129558229304391679225023979821286134002515731282992578033466244848544325256928385374496341037378139304340052608861255170170276993739492163724242625913333762009161640902778227147581928652811842349051126649433808149465701473598192660080817779603544820299224072760566607884969443226704686582300913902542430351560124309726341008829096641859271989923145856149595118366536076373112545258816656710036695922313282403686526859960482439905760217223719220027840380435764204012577935680009160567409945041651945571475989433148484119439618588780862645149288811650688487412444056460249939224387464703616472342094120771942220691721234947428399242783009065018563609373931922642959855028957650442329421378154945665840991756879913629981585265603424925587361569402887169953713073318559009474340286945140305102133373499323099680944620215152159900681749768533737780627940143334493817002701255012127550437235977580576535661218710888404112562268170884861603557274119034986972885040091884687870278358294834005435499424654154456393616117554423496319957909788388083890875111592670628047867502409112956230889152646410346919499124889672227149844749589019350429661296574510610999009597619671543368705565092446471606058819325287961403313925206688634260029426098765589450181369014061625782249728096604730425886553714927921323773525875965416309017317508670205003892391189451348670488976067167209419549045955505962184780409195918067495448827607696060591735900835554601366289479392677202887074059820688858756281219273239976392984891035477221053952247096069765697144571772937855124579000871091471624415233324144410005835964136048932798178873181062805718192889788927228901591108752258057528448741578784867906663509714807071332762742108460936745707991507204964051100190195659309977993396978718091113824813317280214189856563414457045936553191333393812318165969168942273193305397093326824334803982573791468642796414378899421099691050089076130823897805122967222657843685499827749339970412084919230138383215753566067167608535029988216062437176912037235816102630708214913466367463550132995455646900590855449408653581995689331006255498491239219588359392080451942690023917745823092480975505075616589488758391101005530532499490700817764054697986476179307606743842833640001428011081585398940801334303294487385959496308091291987315835754740684150404653567449557431563587954845760715005721134701317202593697406134611608953159902192072372556815007220349057948610137930074007698561416752984801712989687553379821681637285181836256218192543605069023183998211071283983126283938649269714860321790505736989799630736836357163455224815532822985220532254243503089035172384226466872400068937424223146429508757182268028637427067332670810681237486208091613036320972625863646290313045974944215861797138346952139104886519271532737264924719489707634127657173255371540001841925832172756962759531203185478136522717005212904319309044222232630706032477247402727722749023649930668847396065886751198291746179172242778222597133947881476581784210260745808726631358013583034353568951489403037329996234723632694024798010994622035900389672752618969133614018527886541529462981742738080731961760188078878993787104270743540694432560873273394037670968470368828217631561584479747410738251276654685943187562939163254568828725296239241767150996173280345017344790185594381527275920948663069687150085152153020161418374103034122318051995721717954482611456548178774246376145220084998823261958320271266452367992638976435765516228942135049187673856329720159701100331587303724585601334000875864857371083637604756332960847323089535580980392507774025961301496886699264624158539993863031087601838990596909638802463691139054066521359936721372480712519784576674440971055112694669405974935571178986681966041342747463779664562127318942276845440945376558985389583706767159537150829621466366208116955777424744925937666179133941873268775093442668345866764161975555080529764434309930751712615921271683927445483281240328523058900881272953079562584485726828416632524624745576930312796649561147710532544309423276617793917071145520486947680722023628999538231609219988199580812625885206813628401123117656283728700698497093477962391218274958868986522752866263666432313851713767895781770522873522028809392216307106881252648349929890353186202880103282021993585093727760462956745611367587913152670406916655970577370222275290323736260586983230824171768511425134240051994037839085817442110521180124586026693921126194254653193705754936491153531328596345324803054153080328458288489400099602660914090675499156011262358954523606594226141792946205230962413050653717568447359599677052125975403598882643283484132176185056035373814842202706009246211918821946545709079154487629990918603212581243466137241987193737041765873356502317304225186926804044626800532956232774591286146891193182715715753281305713889905548811089036583494938700326960412370349233528788822174840847709786406485028061555419508056663823684500527041633140719439129695659634856948535653971745771721596081656404232733313513951778659988871960253885372966125585496920098251201183284856916935051178630417939210485624539970099239644677717893945928792001369493208225082317519831957213600571364964460072234460495672004895987935400588237973968121091150584552781803880381268067067829912097383079405559938109158540045523251530596879110928711394505216496631279413144182949123038607339749474055944464416850722101342826376995009167021084798869934166870921495588784477461339434764604917110559225233900684690500362368833234283321267652135868833091219615906273324340557881464621335548782504678095560530789172481104042812480016517889301503159312132048005064960780502811225192807660724654387970808272671901194907917608496278108159671065959744645669685037375214383391591404950393525115646995079616252913885563055199600990199505841209933749900296566556543125382462485178825470532117932286929361006525041710911682374626206279236199073570401180917965894282044861268481492712599845216260853391614509269116153693016012830867252874597459476329091099888386093682788525776467968750807336630434615991119681177622263553660496605265030504993189087221728773887197912624400520820570573251641457827969279934579621917798005709163539447489370826651425817555426262998186971021976624927608226733694450347749143318554958416204531215224066954764886212427470234542591398508433699455649035880715435116363340424971354408844968626682447782845745663440756166285570808441151206159436438411167311333768997284053083103764617680206205903713932855941017659781269057804584072515490513559195912906163322075985820368730671502640389526193848943044769690042574082685979053432862191510106956218304147346861109219576075265233564555187001870744097460083206515564704154660219080486930091677060397711286720834035453750030650751980907020862454604666360079222128874838636141826684402198655365310119822314999023892553984450103771540368437685324658450728486919141369127284462216138516926372078133058977675219036073393068337788164798748667104199351294646414617648768111502159080582950341814269348076338808487599801899726052036024664507019999777694467682218772049089266770955658107350403337119535305808428001599893856668541317308566772582675265241341437185928999460792701005614289551355366221083574343005178827354162880075462868211825597991403036361891208332959205433964907463106947608342087120146505045344782607398882602898024489286096148277313752585553679508116913228376003711807722946627636531806931095688281005183703619038998160913171246051811499049457019314508196639661087494985568664433337689746703581454154728881889335734666435685108799413536085260081449402942322422720933212193304859319105221889343904946892555125117344353848964760123946996496056217435150097602430878666833309738006264876745764590910760192773012087735442419035345649756579176867214584885938736518456843581094773192466308246540463725821639723901756718516414249607036334074026688233587012828283460860570450764015640619922501938588778446520465578390063271894475219004102383752928313328474698115016468689105230767433326472352113180690007740692204359110966428802970309669564741764565093786318002360225616042424300508704995469075308194287596107196372236686047008964819764758056540702320242586544995558856377949938517634802389747203826383232114695638626735341949205169610772683766682040859515802489051727845768020807692692059346826214885584850158720906217339238843252869513789215600117281508875937630556754620765491407502775538479385524443193103463387567830995062772725178585345297165475343058435026025405621085007608062622720094974977003804631286180465947734705900877275392677699320120028439427495977201400690375254054442063880568953591778873198035784305446715625104635403938032860347681053459302119993534981221416752897294461441563252747468446138987600164317128299997178550654109160433719966891687617409145296618035149664470984511112623850830012464630320810712962723838994301559712742404889600434787439748445735790976322973269144817050573279791163329783071386304228185524345496192124640867749378885523027731844363733872143447145924826266212203071827042049112501585650242095678800662293919123355406294321455517978756206615089012443567218195510375003892234812966159973274622337822774940069801375769689096989783353822923505337010255451916510408655112761374257418580451931286949679819750859771414117353269589663718998800323206927780427410808464891467424791491563862695717059225544163341677539604863298585326350653992075245096306320858412690809875875821761086032486044596816925652783676899300472343697843771155929253957400468481677697705733174459188828728399717942635096746105952242278467934146816869596855771469854353327350490269169074630619410770925358540661570605341551494416953587452936570121153195931280175279986626661166022234439172556801069009103817673690028505210797960716782007663447184738422163378532804212780046305905408091312308040331691804690108982162198705506614990531404747570348389784581550433110849460987003094622943275967299598520101492063965286132733057217088643086708301120574550050689037060167530397015786786312455548907563023216379579358110908285613762266180642181802362244160464920696904533631992088757095900467923390965931546378235150115336073290993687839755867221876235938469909170355803058131389600417360338835541608452611988620717275095449606686538743514165806308136623712072850955318888965197383023108568188441980036098778200566406237626599109971986199269347771444970005376885183469746131564069857861178736529363194059791642290018948552593693730086196656649024065831948249651018621777891247194778466774311633755992668402700538702264589610273196995870521157597789796595916676215561510743727592212411934572285484739020922155550013253904713095678373613563542662033010204959344222478316263256470502324106796872870805651740631708375100491432003108564231783560048688555564929865029009499133246628335307189801388729657921701294914011863827362946173254969936116414428177278151586032534180581404198865487645079885821371950449183402311993116738762331645525266107922710715595790571408616018792392570035648468342608204571863765607080901528532405634039307785445274003783010912481703981967461851699008634531740375863431468471666352561970017692538637078287836204660778777532013916361012367275455105858234038342408589475829108990653302132357430660076420316596432461771069336273908008937057648628918848090946061550496715378226995137406984897416118312439879051153814112197397704681610956264358141458466152545847747312497007112946257605636800965685598652181824843742722521540777530456930140644918772429477163870676748412952765262644779603713628002364278001347979993318732785585412810025965698196401716957355963979309946176697581571102602717292451040973108476168166963777981773784275608057821929320212378638581345748622161407761084305605463390818931356073785357647762035128193394266140613179765757121702280688712271396900864769001832754270186990083251779449757471890429609291746958346407991592101864764789634557223657792169584083787662537704800272504172277605451080075825461248072999769856436834992109729787665508732081162757504489675427181183523253857603092268877682025530524223383594741751693320258140610434274885929320175019552938219478346490663722542277015047346999949763159113459622618613074189722292478582237910804311024564963678696803289434562744779700921004779057765386184098366352162424465610896154654358927408417713174025529140007278464943499487536626892242989402033409135202677372543162324481793185411948951520978232594067769887120741651867791169899816284263121087384527382593681803879477211925963503771261589624775058408457552198470569884466666080085202608927682343368502804729466800053780591504678034122408151244417374571007133680039676096838034315072070504651827382852140979014095470025295173984003333176636409380455854719563048190535819450486067537520895088929581368251207338384932976829538286528647038314841101427562942006516782623185808981946362279729613779118050648088317105655044787776853047341137067303952951153238301965463042690880538598275137058590308810858084192361315231516514326809837390372085082494068737745641212359757435679226055127692008162858944044280284978526580269837224747203599819182817950445927822590539612054989580712889080426912115993714965009090250033339049515195753244305910713200571386940902729430704416271288056745769565765093393682297839040847623100262683600121014626077808620595195000143272007856152257152583219646732952687521149034438494010080251391625342436650687229945697227814705688085346791655538385426864256040752438280206648757310524638434927077625087659321206005724512455165667740712812322076729621160549314143147611283723741332656398447002098536330065904752819607273895470656405390686110512644886643104360689552706953946550937830655098062085657315705942586404791529725035740621916277959644208549500355894035571295789219641313442586833446483753080624483195664550403578820266422983423008060563952539077226840367309379380676046260375862822258726042237202271445076672265400145659901597065924472839891542677598453804363746033138818465934376266100589328868593260323472664816852744525780397941943248919340553652866488971072942458988908692140615927785819407330225419823805788735842615135912113493104568772956000847571170090422054311483130654626784521295090728800921909275749551495193203561338071167942375609698501930588362347280885730987387627730332863153669848095077237636554451303529021620852220286024161948346552010058596899832298230486377301970573331067922977120680940888684802710235742774472938649110974195936452465710543863861338862050190653039058204658719803941194859813057661975270453285209875614542574688251355336936727192287991797805908845625371677190432981913261137124198670271000721869600756303123589229368975388987438619088761402644218518043988534760074213487722435768445311581958216295012943228866597547683456293473001036362385730158601784680674946959591129355043664085523926892557781420480096563666026787366008760477232034306952985352527282756050792082897609731535764067050018398828960996820268996455408757546738996524900158570130862887368159620188136979140857981410896553715637386481023559677555883143542632696460866997548011384691017210476621090389384753947967929423020979141841994450695816578814190334962615704280973657976300446576085917983352817335198424273776566534452254012745586410898814933285017561453986488332706845244662926331013126436285296596908490460461535123754232679997510204862952887397193742779136347773159980102531962030539653198475111729614452442374751425804525421611143493843949757877946734886078840153291466167215015635394366362495174086238552281831184755972098933033170822985134758691591368657342625640428895005293948118469729561659752376329665958456419838388260379577269177057885065696887981969759632953608611821393036451366615834121001337723856321881701288071225740795076297386248545838236357702221361212716663846117658175849121812773515101550176426545980432291812864217842605556918798499809656196439930293476640138018727502628613785533718490299198086059124306391493125002833514632454023618414637395914216564964710122709751427357585690983065184971830064690186226233699683279209913547832843763151348026545169252066238150567069619554914424213163028593206061259682519606686165779301474447880816351632337134954864106423453095803622992802059820511314048335856939867218424358568486480555888519640061862273069389889323224594696434475727178795327304958261248707767704420199393534726941771642982716834231630257105844654195303016943515772703069796003648714730244017285412088803794867886080824144859159791593446665110309157638027898774699427161472869457644678211361023719471711084977697387420504998844952005111104039615220279787355806548133405256440171045208356026620968389944205114413321651611307999938707413076253825354349808930651153210982297466329278023676242912449819985766645448401445053775769717261396893582325205875828829962111615758563894565090009526014295834802217291822448641085229081089791041677940705425205961986337503853407005110042470631055576183914368322032166535796732590854826414577968529472836969639547053078147182929384265296204441078974369752107176114567913333753999344658903164744626276987456251041239471757735868181825842759027049972921356494736756638362293555237928637858804276779051176891508200422155512372111662421231916619019747145518841368359585315665800392746778519073139506883241682198473880756247784192843765921017126830782975850463318107605321810783989136036102774477413454033103708507332563087302364114378206600992681735108842958765538306403069177165004903796758457160202956150577660587866796216166404165092692008377635308988187229018291290389872706600112419381610618944952668420808647797241952909060425315612101209663221147042241577806476883265192849201498654217201813440753882893943920559504131592978739984716083113619830839124613141746688440532091877201653074284457390092245278154616226690413824857831652297435537965093794478024308783184125094673560119256281341739697023322921253949561506182604671903917045937904596906921902127612141042042759379755546216890552836347121033400422203198908217093996710017726094056543305313894693990483956499875498741274208944321314491966773230663851224203468620912116294234862959556386212921581066903861022942021585282933998907713469721468349074929142122365641555581347973945941903402740212966069725185077413987839842529158880065980895550040948323777632249949650888810303039542569420018826199492098189331875124349003113832461823677782086269683919637578595835626997386627087586618934924182012766258262932544795648042417292707788220957726387367639382746888036900328439368720950466418943068239343160576025325861777434117320268117695403844774500175922199898439681619770060462882393086048577055911209497099079336884051838557723415674211461455288729866550764826299013867581339303571571196764016881843831112520636183938252338620805356683511535638107463708461610497274104253425211142975165291449810860496422664345843539505572079935457192463165580421102569606608332428620404926633670568874518255337703419741417873906018805695864358130064382083851126744444056108872562968809008888409116489571052082954114590598758167802945768453703485401158124375309600422397996108069373564007319873867419605397937004584637770285524632284682032115158065660508886969060773391865181792908274401797947974152530314914892412628888640272220167933438633493209759054300515395765149431664223324776074901704309245909451594122644916952495225037613416680839023107386686298653370456922858379346497952398098435488107418926530930752160564603413420923388602360682401580915424492922384672279553617961933779370202496246893566630253916701301642610290438574434506822260481872880096213131889712106584849064522055088481987678052105599118792820888017032128119318614323852357754669472594528589229418304155256490252934277102391329343929442472441833436129491582865285327365725733605060210385532143815671529835455261546410884292424555093081052219890790668111903712366471252988921358377698577819904676223755550737793703398364268620240706104092026031734540360375461411102632434777072321001366513445061018451617166926341744271152357846069132222033165446266580929388627825099876682293528636699297533666246487112536541079570800639223957548009846016865077543065768587205568060275280485752291476660733611261384487872600642280620907431109264873501937058180342695125574730168320244523118899692766319463398556777841675229328032162954430816614268619339292151152308131187515196687281368537362006968566102842150582984615907562859470426238499170756239239346132729666264383719543403945766986880997645559529029306892751768335813208328060848192133958287346594614488017321442041300787769280934197115543244841782192033078257045258219268412200734173846709798870408754904865150076434518282576234697455198058316732146624414678015352113221691646709358474753816792169083838960186080561645777117754042676993359790367161182543918908167065797225890369026934695745371575675738419829489242190406770998667544313619527062742922797912881093980060237682182591560606159200714241382464131580995897120408217604883667086609591854681063291587191537988941290082648363974498036339270863484799451184868908037644837898674822209231272790709189928195169140977720414422134230029925748032662202913665701618596648506915181206852993709784549881123256611104071502079052371532272806279078138743593766721749236830879528747566429698364981798980147809452656993996067286065861400732314097209795007207641491824948167155076380202442898713718669676936920192373227183520140474656997338687874032428745217624974584316959718063313782364822038533412813568356816118006940233282370841466936107795953707378398522802261821185058007182723606763641777396276878295799026321794367668613739999702453435171315175044982835279268209131633974834702379518198025382631092725318430475785236875466920296018256331156719809260312100854764845584859508521693728651430687790289442950243523018658219057557625785773026439142613380387132540867789295825949243560482264134418100153084362933380572771897553573438059188470690282965798747646144907430009382549704055371889530719458429115428224050162400263729172467924428323227640064534082290757240358353461105726633158884250004904785880492796905953650748650970591310191485422395881456178555512126355043193956416818129964072081186971273843432316017149754749652045038898997713007217967581805159559905429101480244300303454531796095916418520733650955460433728502211766198640675538841470919216497097299421492557911231544449071228988899184380896104011105275565905063589635556552681020278866031677458362570126726365148581099547545629075021515745576790434619281247555319229934921851241815943775099250816320787659922403534164150959269543941575103622218968861531295286730074134473064402612784673459389666775091052149647091767817867799722264122501955495657085555830123903566967772416952249013390005106532499449768706126218563365523233761167933104305482555271156802678473938593095521224990150742269761329345900670738199850016791223175179596648177463623866561377812280435618032584323186906259820137705347559437769643364236742776958996482904988764560722593468092213978324423649596349161418245183402564021801616165500539988770726425175516711651211129495737101175202175759109949577458707122159410951983557183403567719062665266450198488377294628019090186478014285528991399634328600061701340177208264579192170230981876966890305469468341211378517089142446132881300713777597347800807517826841396684976453899451354885516774627706042446925782345958097989245443057623366418539718976613689490216959169550595181478011635453997752367468733671661999452454095946824286261645956869852278331665400631831308424173955890568469263031244252746768447434299402020785082844783894892766377491957634344699929761176952451075287826443881404316124052653182546168777913988647527098745026980477896620589320704503850996066200200577755284629134865611264657332915914347409172532842217454236756219881182514289834841242946636272986653987480832591490746312452778135910546930664483681675271453143839274347059169554053668475180552335524218543207139886545855534732811747191629808344120479616341592541147003336290051778375474890651223331513632073908286239804338119520626583697905737760280909196018264911089558619238864582793099114779699660112794301778075984130117960383851722184260502039605790601375742433079024278068920568289737140844449582105577093983057871520365554445662730218167163333298944994155377615260256163210432288287318007278542183075893069467662461989631354849418920188519689686681682597603737231603899101476571913154603085094039410726683462562940495037556079576383612568091856324419219308675474703273920889341479839195903838688086428119668906233185532360504916962755083031204896573014779474735936660530565492299517931105117309703719594984327832216704961314673136680861855386261858906949826273507423548948924517918211764931091745328639783622445509586739166650001797948642806678749735266186596931135229160177493324705174354995115442399454374037752891744124426400759112272490474853111137126419032278037251975697762978471701567356399124090319187292105597797981208881289751944692488023708748258519175706122550446348456562290887337577326178947024967557733090869881578940632338132039380239431285717171416358641891665398314419799299861557575149270053618433058743647997882940884782727907767593266730417078838577731149250223806968859263293922592800867732297434354343601598201996642273171894589196909582470759010067278859141281386123354131082800323597868622836244920068289508708360145625607308405987828099098447698212132786145448319886288945581340622959890677727199909710421435370237738583097833798953424578679472000813265702357234191659142860583183265384353668651021684318114685625895887332719577864008813457915162815810369683655706290726150962127230143667639333050986881646730354561906028220766724552138992749560914436550760238958249915130201978813528328010288406867131733196070930494105225494069620777416571321585221016397015990787077961779726682450134508050305289345803487236076531999017337300211112535647344323205868898094290798332197480122959372073992437692460620811995226189650977665237631429593252869744338184391528148225660316508555029530326442732622271191672715602532707703885853498801375426588456128737722147941662184253302928552999954588028461037653753334349650275579546747353255171991523182454367518919100683446281480875473698460294343797209196002543414252850302014275645466869437323724695961216140985442701531350110413146961630563685100047105753889840468450868123319631750781323951636001857102781742367065984287101553334502022265457171242611468986243851920666387502732057389100245949659877832145188454602723790426139564163014321795887136929302257563730992292359815910393626580226219864211946168117144563918089345991202034989127600530941638851483852621388579579955560898480451495573547251191667334996484840818934023049737243768868041960416055927396884619686607129716273926945741217552375852843167175588610700515068509970212995997656221323737767183162943538037502385540909046843251819755649964671465827469029644874687158565028334998247003659100996638197003152336350151215158068815077427176305776472560487033664999111204906767876134467793772034293078950781370051898385407532656318160426292470813567696624454219949337848242871491391688605207990493172723995375367414815855045780741654245125126979089118363314690418894901788415225329903984263583950261867443228232068247462748561588869330278383125298631408925518806226110883621563416992273093628673166657471523602125140043691795149397041168820303122037095352630708157417609600611286595202718556650041988620458353961721545458005125973007886058656184450026899663613281480596734109903823180633355518793143177277744975400799761605929600601215869415886775290875588710315945823411133464423545206250943824951379321198882668718855136953193601402009986990029300429135608122295462829008503644929456578346306741140283074562431377001687994200091003702945060594372188424042048314104530029639280312764931479833042663758150860627032431351766827294756004461746459842460015047301265330075714565491512129959631640634845919917865988628410665207247769443917340522523654100146568686819434538787406658493858060642806688053964268558324088191555803867609571065459000772425356899117517799335929713990459092873238179395373216183242314707477056737216398116201121327525665952443842330320058251176656039066845451213440642069144011161384630175634530437145619538178879759570836078851098701471258872138792825048147733317142145551590998297045888118733951133182564549368365703619183966219634117593416477145706695412107659286544209529197247340969025769519525493956036213153537532376547908209708621438335870418576646064915427053058867126531698336259784527531182503757805573915687594753449878122766833796813699123974916234066061842779969549870108120461475648055782282160255053727845871523315965901673652804465940739462275056139142255641984100163659289118057064324707638081560727278260865272993182095776576428182420914402810770699358136090974998727886045794036720092665283050187763087438975537607434850408122200612618664160850867833298160778167801244119653859591053593856714319820696401005056117517509501697335572488723352676469810919184585474310488966608545885587746598516228573445076243216589620587859557286728569066791270090233659182484955313329231978054671951151820760139535486702065987887210638878755744493248573067766196992332153701763221006292658761377436010116641074280206652006513926893242300879744491968766756156884841456624097644979115922679979350595890919536173236951506117761390995665013689508651518648485932375517615328428385546231149872364746706555190068330090797055122721637631080511361990517517927436300559294526846109630576893088481848745379406251647014173111954797089718193843842319711647053533918412916076637007042039606176067961880897141447196234860459350236813297049075762482510731265332057512167076483228942656855041772520014610211736096757595069442489735065297386784153099467311424734735484483966791130510592440006993930156017319967598572847431729242900545457904127429394265400503419669772859771213777611974194794565028043262584206589139146315703515947969673308022090414824179270896111447454312301877962435250835487708261052048194289315272254866287864658179187773164438295858219099825871524074693630792191935210317097451279758817028939302573177815887290562585205260470518643653908418186592115075086785343520932019582424746716830924623203072712937177541010818401742572109277065144479272800156666882897427407833207573826618183987769057239546216681290285140152029294895522830996885634744512739549195425832421236458931927512743438757897025031970283764781685510177419103327589507730571050413003058642492269487346247176800550310681823815885935353083951812003822503410869075534943945400473645199138890781011718597394713717019389463004654346970374640605394219615462070276855146755646522225841704245153926331894518658249551243897120476411466228713769540044163813801326969783930862405398299296311888800201905434098699694929009136886532853245367213602844616726720705667653760252311257884475282768496955482284303142820238040268456809458076920678801096702537923524958657348825975715101516754481976547218763499997823554511580508535176738411074819533020199793025006678329729523964294501074598541951245079815981999476206609648546251703500657492774906165960594503349307595098040103771124954253495856359869678159710301603889452303292217897322441067831221371811571937995321951739746480577734543917121956236213030982291832011582212825559971947142358526520418161937526420125687252156393027214543892584436699128633107415682990679207220007652506964979327046979584853669860046711897618038936730773030393916275319017898684999996631447099743548375922091598032637732831961113430224070598886344166885641183359245282718577569506502122345371376227626627816384691355217863554108533332905113645336282900125548103229078346822865961169491546889596765157721356891721406404933061935589524714008043549966624139139355287493407015562261205492862329214704298681483771795832878193912653362012439682510598426639049014765080497452291805706277920446277146296095540530109864884460828139440447185448824513266749592605821575775944844486007769377281003055064603098762300647502738096848915122988548203298541928333654974855749610713818562236247673867345614314066456399850585523145205154782471601987935121679993963795227166368574846781004068607129298835704421366773792027300494149064136238979902833610324156938135062377621162307348510578915435160409424765991687219642968825220889366802639655613886612894240265257259686500917826204529098357700246917711242758965435233455328790630537873588640621185663830929728874907608888647288329768209465964807076005853596610470404459232989421579288717542337944313311600180101312213420151010241574732987494057974139792855492292823808713303125742039058948413399383516697791424473567551615550490057647850440709774347202391239863127119851622328481415567241503253196117080129518300668420159204489528540712006241828595011718674939311651195366838416434840384615635501740937757105408261113525590028193536084776054282178020343729391339406216371748747993292046272973773892760004089822565374599647897922506441610875188664311002053339583281720575180332380750024404035943152202095592858362711252104153956046409258770034712272685334969697526223036763511005890708667495034317451148647752748641093391486017790638159229512332800877133519650559898662339292118767535667262272397582329371239343181142580692764195060032182419337210078702878495488968190965300825460645568536345312003004796938819546456904522385928441010679238691982584817408097210172421751193794698968773608132672053538281869442645123295677353533787097446662489288216131695349066861909218202174411450030468899473472193425111891847005796535926440021625946236988021906435853498716481603922926226775491917895889080452527402124917634651246702701012749932323373681186238154249544247327396543065552434476095685384301965244925095163860050303775145479187546757175719675894294968254759772497765829542797583393975741547469898220289964772348759351507632880600844092401019303960911485107621984561897494108041187766490884793905616976727229977268858993850358109862589016911676440840028284389640823200336759251867116207821006002643097474642297793536532270904128788922699399792465515255380167223767584069778345068396215450060295076054818638984322260766411010745344709856202017443591430268071598873878375909732316397695491713387426594987750876123670817537736359922859698620504991572452647498789497300672472985202380277932572320972987466267715679151982013986089985260297987457159455373390393109965170135791577916754933332015592509147548299687612560279105601427378836202799961437936338195583127929194845393740198867147243865299570892994351650457890840158239318267956225082540613204308599478841610347254727430008816252977340652335763832541783120668156965579522273797638876005596318859142295345726859829957349112823168060209528061569029007772485173263584662693195635162672046011766033692653511861923515772552587865003412665587093557547068205646602325182838663220254213664293580105890387068433933254839424108247251793960619574012814427089554519362308166014763031008657243106491311430617082417791104983760814225988713215342155807826307934031586665598926330394677244299002694917872415505532473476464371902459093841105810276422267096402266858299158861762387621664375285349075540865457782701416221781357109674107361317431566909529537644308238133095184868367514592422274218227398793061737560083423345270961992702110127239751080796499170737872460325615032978753550961408655140123297035004950181901805597579516407959905339907735493218263874965477369683927852494191286340384452912110518189874523529559340283910809911953436950501026578843291519014310414200139291311068150719570532829417880750336911176075014713194734092166246162960204211488203398000770078508371319059134502743731850263390751309505448911933869773215071301762166698320888435080726205537881415589429247098343466636606739703470593151007696117688490839983577504579916272022970983433167621292272455292856057104646482656355869040014276989575930017722041954354581550628212615238793281960795739593713724445360819708004579233174843129932412624789383507665048109752186000610058289491587813190433128412082480551742253234825667334111117451645384812097344394022134471354633047375943863993750435386509555217400678376441468534251658638184288368556916458473477499797352037714906372624856319474889465472141513566777850766032375316726996465461383487584794541143595363428911402148159999271731631152940417332257145925628224015390054121206761627032751035221020463408290176638248056160997442820893420946753434866868586680733145132045244646570940165839432798213182269702040263931612657837548788768340864400988538238978733576318901193781135082142633855976642606349523814993938137305905931715035225677412875085834655223631757457888239814941553727745491589907358178160799772347124236928579242243247111735112028699613682025503261864501293508777177768774590164586670895316860907784518841231525662247847957733822196951842754560749967287137466620044484363186264788217789626621060532947636619696824998534461861596032203795301998085614047304992066530529138942762049661420276039809827937818676358452984588818892570320209853148260851813427489578047678651563385222891577806455297537065510666185239612483503882506012949453202833883338744786901441002692824731072779735216576213522130033638975911198687825381214304828865373820945882658823640568925383417625429203431770622226035376054620863987736536633103118389515638334222984045572978391306029328444652730254425639925125850565244427336000669590068679867936233883336743906963028659216945989371902023920159410945850011713744980029884815741332704547840718286876508894793910097746491423493689458154189680665234196726200066144958260801730348842213380990827393299390746955502141671051897350345602094035670612634349802032397068315926303594986640049134785893663701288941022230596628543384472477635882322302370173560745462955348584846853691912356433177752829516567889467016677094901119561985620607968252271796095372143740749988845163021869901993478494728582544701943800060068039710441583319531970993772794578244542081210610750287542781931459218843350717727617644459733766653969688016559269656023138657710601872088176223042087632750437255779638378481559333779625347810884787139975954928393721269413315413995521134720230348779821606863035960546821180461672108015501667179486311211178427100159073532902480343803953370222622405329185354907079866656877859239230900895182776687603860553903740989508016468260905784158621584292631835223015158629212577630656639953549492261158908754464377442885713468743958997523700259063376675115480503770944980564691391497917897856514376880391238940760148748951702448532253666195968875772708007196159009530941644620951206227645611519524264872813119492440182434262418296539746427490163063057018669053049085631612262384906067741663453427531147138454634749254124756892970792437729457526862503203790604128613494793998403735487969087705716400682503270234354675804707615513144261183777891039290154280688142136238525850256258660030908337839829563693565096163714969244939568634833844859149610653990233589917727539023714735820915530934580662930613944585060121872717282556858484168469821083624645785540351977646430034583895384855823903514237861841529979059728238078194706322573693586360109870974733759790614809594278811644428777321337908838451038926321203717371720274910520392888224860655614320750162252921285437375980994648687360883634027131394682536350996629231162566424484829048813357799016166489377923222272295059111198685444295752448319552294208240516739713778401785000784807260942018245614807184548859218602423862122362243172929431600748863242001157813050082306522936526962171141964868716885216361263442018220939145434004134058854071434684181969788734381423163124137801090915520333099828070637409157088609934315657460471114390998710559100333825507833440815810677594976164387437111280517490128124122960478611989885249076814917260927318901914382361067721731421452729658074615446913497659425015907751898776979030900856896442096910713992186765790409112600360626372146992582673895366838692445788998990466562918527415301497144093994315871763110428060114475336750771089127355716840181447731425459119463905446926696631776010615934139838603268152019874605815295692272190059306997917957914847666950233686902215772995538766164588970464572837816692121611831826340699826595359746311440014981427196590573526431721341153866489300483387154113244208016382489460238239029631307161343025742409715469542044945855338405658281695718945561652967109851492422677471949983494478984003769150816006338426404184390634104195206191350564294352865287595511168275496653287939900918634888010951226525614257879053056807370138553633144568797881016192272119840094043228213296607101321313390232623430042935876713913505635250170214613951184853854392041164986909109181350024032358923668209888452078032136339020426689139648468160837697000258421749775822656291814403276349002711463260939738159915738010295817393080613214675315183512999515958469973070601755569548787593259258115065761758888316498345845198069274491470041667148108058106712330177314447639406914047110094558281750078960381868977000980130019122750047656776214837641671823127757283474034318009336347484345028366225464657932689537936112598271216955175057211681703320169990399471410252525647871659942988270988555555285267499187394067817055870015275674156195662804348156223967490884759971687819684556787455588376896605680213306760556906073212014345373474413879493553228058355658244730816910308906827927457414793455037876200478135672453034935807574700289794998291911468090113929442541282896784543791442277124213203629194778817544161113541119856372094747907033281253566542918827906396283994300838149318081699553762641487113786612826792373330029193325468570258113419138615896377956065150470078908089996037304542444061325548229324432957407890961335454055950814807544701845427736870005494488530835906234984554562458035957630892297346166179056660547150811954583012124812526675796584357343047067397646655046872941304819327987753110875398806201239675784029030554633227958619265373356654876109613239900568161246756994151923045739791591815566017696943334116975097023026184140103446467387399395932933672205118666882021349864538380668784601862116885589455073120155091370979047502164523148511398177008218104915283533725325861846955018359236428205649229869711380943029789661871881546298492046764078857594810471087485010417819260082688454332178500793230371455120005018116597205012752349765408889009019725761329379021784324282404874352951127654543911202193376114995401791002532309588851992769169957010057579125657399552612129053027226862717434810508349885857883155433067474398364331490522927122034486637296973195037055972601156732212228689761864338120157235295464805008932784567316102533334814792893127189591861144512961327100037241968656165267786552971088006105284639981249145198413039511833064851671421350438281711245183924139122089536969874365221563147564270728947612164685679542989590250702385642929271953974653854616148055496437189218735225061940589276968937945069783052192060329706676786837262624242913914852125738231612886480122857733931581414509775668559001573434512839391686773129382411225691630900955055321537890811087206479053368027716299733994010319924676919133652637233965992484365651474541515261818912758213083244734793336141840078789770520399883521374486346494847464268526046859961480008016826869171311583775884235040671767974691436217938878694218003395570204242149602308667535158658338986143414580573223472768911075379301651873945398692774065955863249671866740362401884147795903483397572446702505549166798194451722257717647525098336530640932827618281821843260084012329785646995091342745991991074157412221469668892607705804331006709148441571247578724335481377386923771007220223511473973733199162808975010907611470706284941835910193130178221871786119476907236198568522628092910091918130875271224563457810649673329226901345632558303459295143861723420916305347916701331993474748648685669288512660176896159989030520743236029193449626530536947422589935976125858834418007678785258171161413216400360157400418195639063327180593935866637670862978339936434340085477690838359835051205903072912188512451517993178654572058011514913055406340979231909520384224403330959849950130310806668387789180922415157427940629365253842426368766981824485970459374936006674307898927302755679629317962137597143647540298442377262427888855307857944523417456797470608379380563543789467491659316990502092996590068560933794713054447707095926275230544449780666735369837806686978180557040058686888196402319246157634097016960717615797967621247789947449817228152190271569744756043814585307318875618569749986458209681940762331667670420610676514710762170207029723701492857893233767653633256831402273938756984136909272961986326501453715969997791740475762957357632866970577087890379621265179360073273264388621281963876161762513107952284030476976808224234416911880033772829888401578746249362126200002369393829978406221968958033928597382948999415661846000472395076574615773528179514293591922312469239932768117654902323740221040961365528433586813434892245735871893356036853051029070584469899658503349307556024071213452588939249600100872837461834195125986977357278554385456733054001008530208248716093214534861657929384699605186222637035789938714703587225688937800641434775624767105435409801311485155011120603257576370950067953883018944460773696609486220388363918564900827576830858078367362008002688377911831247590158216489653554798754554794970413695165821542776292269802586767195459792276113950922730442779930512255026218738729779306626722146865590982097764101282416614744530339394128844102454854010193550937975804085328305456031446348129805457721483855665381692621748744465546465544959151795142580099653454798182973292826237636731656924327515685368672480330526863400995460356495895736789441136107332799727539342506544424833915583106663619304597071742815580913953465918306013817971946164840808203823235261293000103258840928314082159120142529997416616713581875268563648960138546165969839999588953506088988785411174145920881943797403241973877844260719376377410694497855966800731721694372940020218387662696788026501026020330009526813381703791409047778290111273219981425602072791650896486388373526150280954945001791244912661360713460858058346494461283482204084394151612007615606504898628489356588494400838399594052442612898452950488785316015155507483970884350163966373520852655105895491219834429263406685317502231112569395990456915644496332822585884289871464085474238787884105384355116263719173186727909967925445231928182476503746356774002285959096049560647470107910586712154077324142192200978573365135573097986670718113482898757595395225937900897274603415302207262449523156111220660925460214456668036434791643418621003300853024446863260976189928490007056438656787454801830295471159005755739618589179400733586576719357118809309769783049811645259395098863641027453752004270833870555540107420301388499467102266422508899202349234185669743950936679148780771754173790854191633994686318192868993454981520341424687679709544912030673893807615588628508123787495491226756281120139568669802501048040019107219777643437458025197283754115935596312829922222258064002802444424390524519129949750984049761104322456111695213565423765543955612173009200279630068053729336763947013095859437166220726283732937410344332187232682077855275058970421217144994759485206947618161327106825591916983414903885703068955402122188188197106730204447879578104810733792389478540829913468070751549679720774425769467167720507434017790405955963498706003191482198491245267535467332988168759950747717688313747841475131189716344043428483665453954336588613225216113197968821921991410794991637808678238726639271821472105980319219325274482482419325422140103998978715172779476183919153997034979219152471174982091494561056923443396721217614213408024092072419740987175593663011052681742351146673886270912220006174702679841130757324520311480657664507007840073593822084410375512314942283694993346202402436115161198281900127525069342529176806724538220992031255933262572333011853207024309200015299625872338560163720198263155156762959333259555842619281727437680400215797411316811309646021454011343253680011164083575632355164209627952093219862135706302845068385182580646555087916364962182652177404574159753914856654043978901870602558816495291107675650841477393335695193948594653258280607169556251440425615355949992282453028929989127097785755354075487372074751825065654057017033278886359985479563751425388389308316685526207923820281768510400506960598083967660134328426277506890916405019826693138054671080341987453993851340202318380074996577405349056573815467167027632694612442516428425605605780692410645325596948480093697012734031238261790589999342986070161608443193889989010806557316654147311412527632428035330833894402874969531212281227583803495405678618234053068082411643147301397051990973684606196394834882395011029860485138054084850150606888521246226818830925938818239969972724256468843753687639513132209184556379857067334865550125551975000355322491005023905072692857356451206783120215636637088812706826295701157924065596469252191927118234182476953410807830942757841351865058072027127356408252339227920360811079672349148603954510474358864302902771589975899673535834964484739703336013879080394688671392319890337159856238827126085626726260212856633776777126744255838165975374757992831369313198938399942629834800017384444370716526982275971766222301301056528033539557667002579396278539588304862909127014666002355664053944721644775179648182402141940852436570753107041348277360638784470726867193482115493852556618655764754861430201772724844168293923000438218232433725530735448525566836820099456739859319326722896641039150679472886778151097798557543554665608700289213599577754639986700289160706396162129210233807445276832361325903304580357333529013976696895170248179958279833712448792334513380390732788226217168475707296081035780738208626646077719773314065856605038674134353095681493121913136038567439554115666469326276526078344881057405183858205626076050118727078214071382260276565647373089772882846265289117362205094581021390366047887955143596583598110602089252664391255395304147245550008469443696688391903656246365511898519914071773051572028828750482348956923248413750728468361137253732247481752139394147411694441981281119659122111549961491747059740650793612299863195073644055163679018793574377037800441684511197294180931652589755723428939561697324174224974747084434458349303962766211298655333632840235373528545419627406628219206361803413483411633442090157443671896065785749531614963576276913502705662069601885896231905200486522664457355456653934928786054669295388816171121145689803110689845551723710074822412773445265640747660055423745769097122863011002628015446833161234551888428103049049849041710921423863695127811488465693394491105091157637477764875490750129975339540479065930701662331647896990061911765390343287762910319262331452349937177157501289870173654045670387064498422592991651648455502822251313497823792774344009051747459222133053757228644396435431900227796638367884303080242560372598801384770595296203338933343650445318199905812571232885740582593110739780002987385741292963461312139461897872701290203294619905660326201641746613439129672557129703286827460107902572439576859808174949724339359012915753238318143864681121042398774196692248267859370114056831961863652407925529418250868757097189629169979695537258649558715620342940685052206773962070844041785291717201713665080551159114323100964769536038205171650517281102340627347753394540943286313584973368241969212694186742878436817788952538225460839245281537426452884516131515417020617987204531852636189933677218699788658775513177796116249255814688562405208154707830846230929355130823124585079582495004793719685637481623998914498816056448687734887651879404824391070452614743339845509200496221897815748860176489682025014134764719078971581209597852912568620390012835976827796943915027267384947381479569575691421537330491820701299316773788747109890039729908884899144653416167745590839631422390317789421071651007734163930299380327019348391774169003097398995495362648131031574790777115270023221903686924415871897135710777677956779984924081511218289071088631778065449987074625351728962216237603872376191552203619106464086526968480302844457037001498477875216618496503356321582569487139179408134159865077193489262815603143132651001980502510686061316634150219264191640829647286911052075354267360670310346195079907583970972416036416822885121459087371287770061329066276111664369871753257222794483752519547791868748666531007652347485506251782813233566706810544553016972279761779917291418212202375490738980587849269351429848934111423794753898369276963092203917809410486059915822761936379391268562259971018544202872454632977473906684158915381704615360889918802351195011929639878258576086800499175086224924074669423909958180616074237952984984234230220904811470534991866992868824738757379805384682234713234463252545944465090675193587193908519425042473343118375309886006769220038433551549152963423804873283948775186909717218505567594985529198574826027110666055417989225659512144498544198118206051924687257626762993951483987077507881830949691889241886023301167696218868504907777284947488501528581239869701262348192386122812617434721221684208867895780778223916578801334986653886191233387467514135623637054480973762140616129378035383646268823212247335941399722439684194264525564851286286509800944722284500532367555023634092539324200445243099500368580623508294795663298377842319707400876626896982969445386953663660145434407231355646235972329317823208590719848504767062328440443721084329208089859000810030498462019819358841356072017047965359972883486939165037426021188580401158636488187330071491298506829909470605752392730390946181461363915188302023595823953095179473061637526263596742105136220855126923035989254619882530544124678760905676279458190125506682475471477406491586411692404149871536331320708895343766640157452592814948008165816963304246364710775488189603533593932956803778116438532717232797145857549085505668251398113450830767364731146949788268397239034537764747120119587952219171963252194625405215765761751727355536350888624899410999284986075288665376997338084003812828000572781537810578003519861965867765132874329454261591698564473851448089772512565775651508953481215372432394364525844605339218160221414700580919747257666465276776794649387913177503903391843204103561522794236543357930867619826104029313190061784068053912771385735065666185366889201830033164425436028130171666226262967101543248827344143508130196352209292646500721828102103878054679800644817317684566583221877687878267865304375602498408617931596455330279741605075545461106039575715075403142639779990472933041975906029376457207443841496425289769311566922238184471779610532742846874496874362677642028341304851531987346781400028021355651421466883700324555160287515401722957953808556200369716328238307943711391050610455861032168968924929191301830965214437067927580343138114780182572212801411226687680795327732319663450167553473179120480377056137609232659516718255228859456959014607833501352998508048468029766862208444427412092861869721906830987031212870722212321161598844016906548827255781939199964209059742625918199672987662959417369484370145375031933181549786391239295545848648827568320640591021228955277093094826354513348961426005217930766007506890853370039138319995732424310806467640936892822535068483056252648469504689215312660504883946129012355328376955397607953719687292806887761856849696636549369163257541192257185320934471199604791893296936806186253203946219429627431278039678645675279826200488227164816046933968362114915268269511257764591861467933712619211866357776097090190308350902784022197200290134887339995079918065044221224442650029202674227003416269509184314850185632766207117715033134587297559241807956837603037628183097551980734424806443892436802351075489865219949907124440274443001995580924051679740984591671762927409520048968873439297403741696473476074038400562253587205465100407306819694882740716768086496693867699178786781187947966867331350901676437291063841702403297320580030659382116689204685247726259542232047012066940576252158029471999890240428289776934965087691852904653534536491937618813844873910362555008674021757460135619823854919958023775720241861606779775715762403066095416382856660824338225132034016160515326328911873409044571125106010021078876180215614115855174566342782500821766300670733685191116314578795348110096594639671385761723049156713097577249087589459761389085708187081412293922568339676799837198786753298648888370781956752592282506569320825761427007139158395642122644942200203834332619354964575865416392724396709581958573130742477759910641160794608889474994017048761692073874915172815134703658846154651719708976536352473448631161810505196457533135826950211859207368390768610252647485766175659630616284450172985498368214818223119267522648721775765072631055350768860144508446775432143271627697317913427645134760099160342499007859759078833523513286099605356258949187637919876835622598256445622019448709432090165906001095962562519769043258471545422013929531241842131849824193154540783727370885279457645813560143548029522883696024427776454154940422223439048168090046481536568057135727893331341028446974255111418136344783501846302706624884415767396331985355230128580282826939631685131852738632229322355693831250325404112968727830418996470952107575320313585679003898621354778566619842711979920927222602426793045539814973677788970717181144960443703221954740916828048729780351062140102102328096530344898359348148459620733499331541119895663136231322862094732816671702619126177736696446597819181168788462016485735249310424206608392877335097734396306980451917163447679471477349060231790071933714972082822143077168741962147269157544883611437796373823512398943960940667074211519077227238624609285919108888063182706642583656611761330055977529378926211337605265871405381224718252034604599094175820149444033105823074908702168367231281907619878923753338136937027786809071932455362438895990958824439985339923496940463348313994059379664461450991050294804757045605286942347105031619803464142227302079656082840166766248166741612733490566272728311140802983418823623024949576571855534176914005465397544976728119884951000600145991534611785300777223009065990501051901732531112439406187561031984787890573644745222305676721332112136361446605104086192448284803769080923774833403671448535210643296641494031191166199942456497990612281175218908515226881958400722705203006444130855554876305103753105023309678284608711600641940840537493550344696780740515711715182857413011422237263661876742627806846988514329378944361535148465646026259053370817527932872708504456642785097999900056825205514869028400185505273367892735193359410982836213930617579395153049127626879197290152962960572194857307255803643152712868012005717674569546276172676873255284617434087558924564065398268730922640505252276202225903092077320255703084549649062796820262525202563364194105812626258340545768308431221132456365931114511047930448170782016397800212021090182209303484842817587555957097639323835894552663923204399569325075279540196550926644903734130165236629727515542738164832871082249545374536464925200269283861101849106733754191964920841727439202902821272809564899210835338968358932413841285053664271531674143872518861341683116848961598153124389574271406519732110068025734538797609886453155949098110174336198476207412997146312166718560443977608913759530241780020261124922544768197175784690968506499496402622770017077023186575640336654771857308742820403116739178658493372291065811690236543320356021060504932362313400003616258591108279292218388360395590164051484252208575097323651861241256956167384289079599689665834699802331031967837254224670916179384644916689812087625049197446485193107259885617526075903466611825884639575281740382913168105681313932154584785806225024603751724342275173903044785307541141083651702107827818072774497228078155692857357274415835637497743674097052906412995673774300000041668681680644748680889539091792365271106561301889566078788956128933987997529561537411681029451745543897330879068172978656838059991630361562862073540271255686516677727628528659107956174020558013838266720850597446441992350179039860029283413684868000657478149166944423314715771129060731424739536133263255918154870842526966324203559584317036759775499969676510479798302853309610499148014030063401159011093007552857981226391553508620769757335280304590726134781950094690441738155190701391147226101281225436301550771982837817088330210483467252553926942446840679036727330637506290306732305252899511815022581001312839971246560304480145169005036788177536538791311550385782381843461935730212983097303919044878927529659678509090862236548030746690996150015051309461036422800833813573033499729611217048119033570056588752682825791074645211782945465334079154501423292827857428114996650648617248602557763811114976449645104175516116384027817523349891302447027800924899346106577737861114652212999536346543245374360252733124403160740727472276325619371927023806906075209857160685701395305498435052480946301313343609873983933762406067902577699045976640437735325639763848955602146021202422309650712831539790511783938005736148127404204951345246250530478451188758325168857606213777984104676913795682950559841376981348179345993064108531622919124232445505937619835154427602213711547690061724850012519208387712131061438401457521205736838702455123345623713252381732954152300586828500068428552087156343107783079779416134719188213266987389028711585887391588622698947120495116047352195467047648796880240780150273772185631468354244947162561090618057883079164474346348169245838717154756999197640409464470770795086333892272451117389704337423774580550704860032453038161925508372720069070769272803191327001593337097453552099507998143895623195838715527577370307948024942344176151864157508619734977924811951135638873958720488315552414201233242971745327282198786436102062677985067444564170423530446206339969738491815730827939806805553603632195458642392402728036275772956378393209486081235064899197687370116143872877299254239856158551105989134738937779686260978163957897580692403629514859450104045800970973781982655439776801557805213639475661825810924325855365895177123759888175039689130739202827027101684612098358350631324951699649109671197246751320766704552199309707026573093735673333333382087356442502126961869485887027815415293354526425375271668068031389731562098850085076642378124523820445923808788317602757967003142966977837981352148981254035124249945139632477366407493304173308522414147155601409354319626136260951265947288162188357865212314893252449336375569251649673773254843881921654338052022604537016886621383888018064519071294366781228163992167470902525012567102283637134707679635711405762054755135425592073543604912844813317113022955497438678163477638294825346367126951058057082855420606432452157266151107476320563113831924063218265575885846290843906927472057043641323563730072854194300728404528046661871477863896866178194682827552161827335858389119005670554345357523419211334642376907762812655002931977629292945740306673062820637879433621415418063388873042674629390886268156374584886221435302381287271342914673390790393364411102731478768303269595065314029429357674638529359917451896565127556365103380136676058408728015704614364573216364361374124757455458362150216048099236531584776768649042116116994371927004218789201799368090206791237466259512181973494479657118970999392484866516939857366841108191481344961087160460954701909011109208603276510308006168612373889214219285871380423241155032932191977976016137829385325097168603468277080229685759447705970093425226133577644270179049788933223677537181315139406470196581972881222213385946928353514400323398878268219947669676700446302251133220207562949183752466539772728577606973790520696736235054247632007834756384707131987634313703923384683156245128931408214602042233509189705805296828561979351574655473600229930926384811447317251172800238041326310676385970724700660677321176991780696023537558845109632928015885864461545804351384993149213485064976915037786458821204735323841923211697643716739349370867684844540030593617270031093385218186102564626546676524709780722281128653810695906526504844820982334405334814543144272536256332536442078811540335491542014597586039006802964657219527877545268982602824425616342641811874528821039623638286220254386306026865406653310119915837827723873184176651555518535891099954172661692830265980170861522405873032094315658326120780948708085307028698759184628411233109268532105300029866938246686250852469530572748261409691103276914049710483595656288430980848959650823468380263949634190856111667024890958819186844325439073075068643021123996427824153834541027324863767387406904243177822105150085827654163948884717694926190965446216908398379206471638002134593409055412347424456934151920440101878389232164949023813456490819366936100162634874634294153636618284492394520604066792100444089131809641034626175510636142878755798999860123836588376347506798325541653210667492380699019554763678463560590422330628038511834080367439048383515908647805685063148397265934469117677096884481893744791605822541660367371488074341043354817715702002800164950478568862957501610415657285809057470170956922048455949366999140681593969769760945796369208991635177309450380305605720002077488769926193550153619437933953407008859939549344220888674335354398909894177792439022276771545831705925984550884723660598013194791100545710133905037671419360882292387671667806377244941507575067950633762454740084325795110503339672499742222295207841774550718074011956287475590387341949345113551268743265190143429497022701035134592011466830862415044613004104448670313030838532148263450109898551556692201867810407734383837951976721715289630289606480603064332596881413136296860157021328736165703175927954554373339546405528601011966638916123585049386591763175278204475736348544197722563628830628068209582774101482633019123058848836723668411407878097205062267453089216325447221960190968310000417843854867229755586205952130402554607593425441199413217455972194185997008093217353557382510956006552798749566585156368641942841307180223918656489159632274032433310123239440694282755603450764000847393873590147380638262787417442251789943375755856103830909862543529566211779296497631468048450565355464846130134752951703166340800181534880748271331427259293258895635780107986334673015073196002305076907081574609215524761863890641672735705811332122802974218850187644086950197232308903670719353331797266185290029879352220616567653012577618584714142838812392155320298978399501083790464557239497236956023712251384666883937685687940591503824699214532601436779494987797502321262418820441914856799054960702305562027878226369395205872399250320703595798009821615727406841493895176221318945112693459662451922214217259239512747613686557768567814135444429341630945422583120995418908811656776781688052186055196587632985692467932914356742390394235864697458224104025172910912181131328977713662586015308297611006478906375009851879656249932591433380010375315035174615266027307429811642300440672578064703527242125705749101999954090588822956861661706963526488934144118346155387496539184580584737208180483500708332696785275113101278393681628882023862455264206696770973750457449166014000378578427256408688416365100324291719435159715766124529752550393962879631231067491519546488862352025517151288215222678479154447936908312783552593663125014510622323793170738476811793279092671459755644867993373480464160918166879636227003946409056477482583667263273951518449195559324252562251138240637308261548847247858087816894297750984990993437262519696858627838755806858236010004032313360239918317962106031524213184550845662404247283548956373747076091754471026758668537577399203328115039855944777614037406118248129454235323982160741966873783193337329367852228536218530393103328390715927072909642590599259699469313656384797915026992923072304678985590074532045486774499080512020117505081693214402987102849525556680093277095022428873313641654215445926881190732582932713493951546578373786906117242948853488676742496342571396894798314729962061724519368856309463981366569385700717434584915060473558885533131877343311431610252599319448468302609191912943784926405833875543814468996526921376373341838491954241347493268843601005684202178002378479300087411153161254493000439426220796389247102762065523587212378587993816006028953600778704639686421752465907054236066437875319262487249241111367192126125459424138404208069385025210342881559797134480992391569254974655649778171051560895698041952269880140243031087741109748883285772322095911014121242783131256562172103748224045872614641622362478386963411530952572280867351170554074751809940548438065149533631521190438761688613595406598595906923405684690743692236450277691126351703654852540768869533102844615877069007801427516318721027135518702439593736734062944850832914762689452124067974692112214339931775126506764501521264987479629315734543378105724095219905039812853993717264546127237740170628732837717089520805588773365760881682233070895260991345970687494228931297498960825564616961462542890896497245512410573807298632193362474156687773580864961147900549105753714847198704436220751129214411860307237876833797638574600686988953874681747168902922815438763672899937584966696757571249155766851813675470664463008889701138950823441223331537757054436870008329516747390411012958293744627411763796028488285526143816848400142855056795733198387135581404817817153909647382542646958312629238212392200169141204835989176048341493598334329186898787043104578371039778649706167130825931233732380783289933688463079241028080746496365521853677930023246074814144707860352581955379641897025907481710308604417769211737389994003990648604197982080274743780663402348946919389076943816043406130942160853120189490256518212074633249981845688534468992580514571842572750499996707651071109073834713133917423032621326097200287184567901116397105414705819818683534773986771545448201530997610251636664214657404378245263110367893000058547357812700362831250669286924214885027142627590363259235984732578697168526767772422503122527171631906340563709571399663969260288714808449364273635920297249151271071620057200464001995205864730598337564008155155129286180537555758661610719641305746204059016911571817206666339508304963962467508543492462527712380508468551183463183441730461565764661448065444980981361665581134510222418269623817521496035052824764710665399990622077006329730960918173212810744180302645592654578486247363261054115455879291363661303854937056595063823743114467391761948540004492790718719046057995355103394128381112484905930643765035203145576075480864938046199244789682884653552380026566320334124314731961140284797852653433009795690812417874009144407224703259297178327369902434391806894038564370321195126956878478512517696218505662170804965938363019617473008099464411657346620045282204638738220308192101797677930387006077051275511549285826135521399340362532182927602895962176471699619128028183040731913740301961077155584584841340412668550399136493584625111880196421250633432374363860896167102008313706439247904237450184279272430079328991736125969289674430137880920170147537704708789979710096191724539435933629877965934061881293217622348320428530969118010128921292478708126282399272475466032966569117590188059328884103852641784038822616422498449169926867457745407142283172014340063630495382036010059876458952275019330087675529234300266967569129698541505952878764703147242320366388320035498835516507121399924237161911986112186897435575350475333616837881389418064849581637493336877681726409421986969829039685559066051685300500887900215337550495064370372279707407770598791145091566573201395013654042931478064042678579007930988630988604038781631444578677274755073946313103380315526218721278194363439137142622374270200522406129038571382439950294038582719181339735936827407245763898278375190010716882702139498627869472612042960080911730300774126979852236593820314135874186123640660556236528559130268330886676964088411912406882422551216854355215983143339074388850884708318802433233297982971234689847474355291387682974642309636126059616072892541950699267615382838041966746378880018974388239327631357601169209597262525751371983490058668258244377866490987697634893358288982580031799934507558630620310060743212146093552090013027279763485379961102753939612575583945729864090299482998840484480500181606301439233762450516194738176746697149571900903133241478530152952923281208907955228877560762672793146516472634687548668016692823880270369971997117251109778129880606415179467827349894662393737354461085457357648560780594511789700189514098090757750126670795293818770501155006794090081504091800406238793414167321265559362534088263230135442582240203636722269606326622040105861188357521317088184703480456679717671816652284292394247836686317334623057512678971614165189082526034600355083042487892495791956006734214907186963911194326295119236729013720658608773730944339299758880355106727220689740802612919939816167481055831598049562485142578211558987137259930696847974732997099152215192766150367117888706921720712438681843146318236971589329091542371386229372721850694208753273620484286418453078939466806680351522950583488351525221992824491566280435012552115291803773516706990784215958493724280731641053184721913776214621067107302831799857271455505070626282542835418328682571198159867455003721118669971364708897897288437328644184092914904819772229976906772837293546820631514430248497832472799646980627467375347475521670624257444336257351214725806762023107624196394842803057190966054967509494895588951070026296611301029210102066359761539649074067846475144805942075086701095308631238640463459663548852309151922961139508811642363674637236172827386451003358609249773362934170267148790337930123482962398653364169086177787715607552389886434612218918133983303461071043035274048064601183398193006839177116584743552400149954767640166130570509945742375672968985894327644846195161490076218768488748065193403988107655324294702838339604161950335176079568477208292983235395216454147569384555744250940142770989453912863417249666444800758423971129259187084036503018514853504708991250719392055727672429710019366168064749235556322033823659735547723101788440837440981222989674518039291692674277508722899094797352339300784085919731532503826052715142123116010703004344340049799134181406641848667913050887364324591045177293819581691477209999444460134380511119198112510673002486724013503814810973809369961417085487895802316338749237856019803275634520481195772842088743527506539492532315379533513852196240837035411805143525521598278842199501166764116533763665908301873413383845217935874306640636479925058044083114388902914955654552013727812396899452740903283127180298365165720847123366596694137748783625751783071927487751460968764126617853767800794157396758817710370976202352914726097823585057579790594754270836339065204964947709836617759126910416925393046358528035578091200898730827166164992033375797077544313980626345027658615138817058992926859858349255463382303748392048283875330390869413879330884228447593844386319024406056740899594794598034308210885556070436077561534407223452251891239960242509416544099117340041647728411875087066157528199373022659830781188974429831383762817159030666047550701495684048645032960204824664456487330426264154846551746577900389331384982913738303198769406778569216756597974933080344285812285909134113680363090281866989627864267609955879626541129416323553316535214474331554503330059259852231340866176199619650291111128193598422826559897535239855627652959027388742834549318724116595473944574419448394820214853607459949497899774286216089435248243420874456998931820618853542789567964313612224233367710289570454359649084093459573465775888767181378658819290256805043457622077974569255161932013854658843984427562884680457177341701150758045539781091198055507623576137326415443262669436264757004362652002711217414494239688761457472802683883545667148295405860615462800519113614965298190024974806862792515178683359727613462266970925770886988861347900547644030699503302040468107768973711730490061237025001398333086838873236862859544948536088714885180256511509943838783291166891008754466293973049023092238246274041762819634616420167589082602432063028740766404462796859439326179304120005571332183848322971338972309055247468533297756096128284520561125241574907235930010387882393041201986535392039088376285397038992274892477147790695649350305195409787783003989478481519983216326366817949744026640510218485529750528091059173251241375819807664944820838817392557422609363488051941912860964346067882295592105629293550840581856269737017916607354231063375731940836559325248515405797642706576985502794688554340060061456311675880124298516349261733622010165372161943431217139815925568881445979928236060067240031225379722548710445658486282536817470961471436790128717717760339759614761338383152897891892517894139323582953670778864563260838650064575227752663545698132656165530171812452790397849817535838735357084285030137697317501512041160942134508873543100163744132169937530033056338150631119518163396473399010818840687270940455342128998959337022571907627971693595074398340473732441870848806673669230460307073194228329292962367956965434716368831349478374100715143734134329456784955559327608400688353373992756380853949549961388696044623452342840894985975872468309781969944911118308005641651282993659181450217565644853913369928011145893672580991908874919850455055907335952237979800764292734943870832052396611037087882944030535667476891904890609975206913171090659987189165691614373086210748199700709187686384244157871020569514896747810697841104345099045252158406080054233726715581288309041468924078170099753208106154513353593052482921748781720147349970433901052564412783789612205086527412724694062861575188969558054871961242517861202560623698745120241046021643070985677256389636645269971911728142107126314320870301295098562025488142231544070193791089481189621701856403295719950267508358844339027628096047548053548427895702840873656977035144198600301658135787149417107182655512476916282417524556772626404260285564892241977658462500755362534291361260339319016337967917497736909284556286925582260889602807816205653331266769788815427419183408751285235349506923668522170479392940298847198666075231695677176623961067333742687867559736264287995996527516386290455486473955632924011222817167183104884541324553902775865705805597219527927983722862494734601224218759601502163106670045897399867083616308395018541850966677987928017234614845350189800213769662806939614072567396306342576306023278769265575896541896287928305021324088656152303109791499361940109531569471568979862372493267459611921244197109134189807420935050164199831068727243933712063130442945608835640503058227015706462602649623965093522178172814579829421906495486908570251639197178111446953002613995477514701330165329203203424939302765670974363275789445963155738152778025807994144973280559418043516238057856284148332550688415204161286746877642243360746881793029235456404645117608443504070522447026201529483621606177179130968339609234325042491722825118657336177527484582407258780324164228448946085429244870444528994642430113982458633091119988407369519294653378723522484835007080840313043268078039163312296909899684852906374778915647095335970466590364869460368013131109164818824133639167525976449217772579537000072837006344016434795690335747068879431910152145654844628379578331507564301267712818344916075381247442159989629000244361813530729028851746168691095398137511494878475945460575246612432856317443267618806485559846786851100290962410341614774882355051328711097383859076824923398489311848295399816256038810337030170608481331159335115454322491181613988535377153014412599502824140408109775970462448013290461405192812114208015191436206230934130694487276602526721254550193305855895217296509767387286233551775004038353258222000743319116159999031165251923845337847214710820688357083909663074468275689052679177977571697047311674487754362979769063124286647818186427661648583788866527665989539444460516369708579993312425991760478854233962071252402826266888056873421588573373542614136971356014640775718898986825487938333243847068869387695567896720459742460412671623253883257165539988009508990743404642892609703054895242479031987018961929028115360409708525795810898448673445788139809332314791111784882954963306615233240127057980622850775150993791328917543844025299671470390877844622724850337757238319286015796296499241638224467288524256290612521616554221738396975221317598936025441370728878773337054218934191849488181501387310038717693967171377932093547402808124571731500874514346580225180041347459482369590016759028611754029753967571292398658594429367126339598983285913312718012174509009140647638653303563688313980959230525268953112543324448941661987081961444763389460754769136130309817572056937100539902242556906882039481043388890866405153723349335412587915244952189909875379781477444916957533343338587249061003667019912124090319503700469234029271459677452984630378132885155316828749224341115006434024911548704713565162306429164842793611182077576620827163419221583536618940871306890952642587677676469742290018093520003579043117870864529181350577186079569649560733339904508104636175303672127402734567652384333921649170578351899107483819491175590384447620446869661764843686512434933350903787075761419694614131122477024488714538518684006316543664931569251777781518312107529223446166530630194057218960658027572197831798130616091238663336856756117960864745041254655455756337618699463196145881502498165474611864598982477786087604339708236199604265993399150800543461976963952231026985876614626816735846187297580833203648246491862365897313021373632317233928879327728128825981790308223563779621276447079103714860360649921471323201240424471254130761409378429840391965810879081013714093446208962484610225451922501688085488996150090789511292662159982708361933634504157253543360808856376963021827976853615808426647849016821054290044480355262486046491796757895216717813547873516005161479087207623218441266880373749883311549768547171809479302434049626127629420518544716347655007819495593675965530715359236761077685658512196919674478894076022403780350214171354309374723183622455749710902628404654688579768500489082012983378180473217223703454308945461828708424103587008131151057151156936143775552671101291811553247984622281225486416479103725015171990357062803322679910390085577843065621037083726669273597791564796359138998552664361918945524940285946907963473894351043087985320457754915721859433470152319872423318618914470705352875843406944014244024041147980567593969286186948233334540348912521613367840816830321933726665669981737398027520423224848971322503378953206719440201975982900693286871074405451072315784860281521661383635203906459117630077350415985265073677868223911287051273537623282028368555674234409442733475889412882388621791257855417604001509257150019216122910731006994331317174318138933038194691035096524911523247861949655525484908181771163647765892722818387569291216406150831250704880034537704938561992885322765773381437795721041705813287221381507222269805249210846470722606115895508478931825034083484324609918097841298683613693923579279648600646850812883228078438775304174731894111701383746296110824288655901830435150106594829812603776920821394825257888515226893549009642226838319497243716308079869688212503380777880520733107417772670278270522809136651594091438237124430467386453404311460706885728224884595885610321135958751808005683508370187424250076018665492286865632877972658032398262976611881661139553147359903448278819543039881995019343100996405794471034409478632512625325098871645126964065055535364072493838803818785420007486702370428999078352802335458117555152384449745668761779356879364466731123946790218138208200544587334492119653210616449704865993222666252665166213182146465565986700195493076164895936978227742041007840604031616590275903623519460982150044385876276021455045745123389558459432042776656685188496237534166013753138444072976367265354873144860262891101180690599921286960209084454010269007271007613159949616759311147513477165504608179896789054714664292107604037562967015423678692585624365673029616025941764527886085575050957150547278418707314871544362299479842076036724412691241609249520237648092785495820609720153171292198305827381189095907619163640548339011674931940933120939025548907888519964205941034940177279998556203141645049392115478305332948185219320665555397484549811875357949777747163649530211943342121553230198405323066912874784711891464891186170089467159413523708833575253118237052112099334269149891625686578374285876814656424875778904206632653587290570729615417421443084288864913050190330053008060457372085505878843111856590983582970668544084537411474750982225999184735506290432924958873570499384722849441013551424063948698427855738208363903324452799063437462413659034140359154695686068433454933498373080393709831958096748001951798736270899867257660316790136793677869583288369617332133217686786329724835956975217263891612045927634900697747469392836495967055519122550711463702112684713897033198129058307117081682289955617871429628716949286918610498480866430004522157104659188825125055130285475661231410069570925393276666564718689901872992560192491827968464607029916397086566798649416648292753908478759856539772338142518196078054188968484452287484548183906837099815088238272930353057891791140844333714184007792444990602204254101934617413807985448151566395411078684094239279243759175555442896633676208663233294774968809969275160248173549027746897061137189283387708324967725592876462907449990190784855147824409942229735640006084550430137527504158370252105834366398127846671461238836592955448332570335794948874564078530306970264345669080999804118412421923441811921148936555736186002209767171279605438552892202049459634241238061005434302835252955968338185698404355008551316442531363391282187182089051090983535167870811571017839537520209596093804454898907952498785503253220432722547697220407748490816915991342127640617304055722391788596206356548125520150961345743519341251549773908006502426928704522278789936377482832817663500942111663013166088592016153067486770489061805221581584768099280030757039427373282930654859251130660973256212580582111749529601948912286788228361072476565511256097956464900615841014012643174227005114104687306541071675524924949284157862087383855084700667903450437214396808350533476059350665157987625221275575830951690673948957666521506261048154015391658223325100648000064608955107990152695856269852070891245218378968960741470775569181874277948031360821670866145885378710901303922429017642636101106763409980304668402755557831402299296695518215592272717068456975476416081493593218009890293054650557447490086306729556954278677088583443684553049251598862507920958652900009211187400706939987968124865532584809510872404701995597096217809692529373890836553723763889825272619673180927906353046441786268171545064430826768849011320651649888733151061736921665956168804639646870758753728703023255347797013248426499778692770741915538737983102784509123942075024154918617575742470260616663579364497301253222692287775633976762366265998035762854714036114314231225249195350494904907803907348417174476044352569055320590444326162193678010846990175023231967835907264107037471209880493367546443771262532569928439286364946572611775158646049174014925083303195048363517816573049842378007561196818517627321889136734757927364307695361741299550074136153131350948831274094871463055829570683414413282561207473751278223851854217124250385046705549336220318950440307238951620613449858520179205011208124906721107483023648938400210196820171124419474293839739620070129707908869458903127245093590753615531744560855158679643072874510984906734371536295303612788616290477671420005603513012808382543849500262110707710680954987351300256548443873885321401932268004732329448646450600384537095856998442722359829226402528051684036045979642220227046955808677471457668866257251301894581089710973888384781690490418354792728958794379266570976401632163972067997874527100719176093077193776062332915885289053519595469449361476250971881817815840466245236286556479779033416875922880234787565029070039907423179756545846474593084138587615797150484507254559279634376037247742678060571555670617690540702900704380272636939820834748176887441913365121762090604699279740418655566333219812649168137543675479821941684067988341594382685180557623724825479297104279834773597702985525638772140306740193219163574051580186947445719475045876419384244004268506308584054313308387798194602250021462217158117978234440599342994190870801193139384030557271495932148362772473707566184125641749119454941359968218575210483983240137057086036853972312107439510801303098483129038367422524037625037042799559886737206216986169589885847566103985720508931831972082162376463677154933777800714558412886837893081952780667911772274221386040901951086324474777650301296933471222773017918478864533293242326621447106690652338163757428609039721359351342777945959365924194410962205642388024094592314897932507952500106425030942871167933920211976601424268315329706063749405575499547449408309164461723672633640353359737663209440518764222086699403713998254902602723030365685394944494028499721309054609912118605359727336013337109682393814087680212838663208454262481276662773525219099160203737063427724902538033747706272490129172426023606635881895038841684739544771558999320047351892221666544641006727582609411269259990098251539500031763949830241213118390140103585563426662297252302322296999209099425493417545742490825071531277969165678307795769193098177093517551262530342938581594691020420596285112032575248760304883744879345884276467065591491390461287708529797653466755603575399512440939683277464124621688321569923079140975549686352122027659790424790654158068215969393457634197214826850664281531331529531364757789984013245392684389838998188058149195962630402267410955943193120285935906394238469937836054375978825543772723227852770072274207369741123397466581810239534279816001927002662721366422358335960814171229921882671298219131248846721384242372296644188518906111937677026834209419817670001510418755608145452515462526263091007580591475595673515518036258919813653778457787525747320333462681519334877306755011675880464241019747879247456607422005357914647880492512274494106094754610786203849473898536740146200822916036128044579723136999931299796809710189299348657217881745595011945004281074732910353446034597407044039259968610226761109250844860424364036685206629654167203122213187618108007079145481352425490477730940541211238259483168770169092939306398680187005346920918599581224752663308239503540525476168359676301951838427348382191919129830355197154573046052811308888507345685440556690654479200977845201174001478298893115387620421316696161024042155077632922990884642980071424909472007517824104064240702603260010546029403161373189678559144068771559229089880302870598254272729268546502866907565429357005756432298406290982451504423441745798309271863116327192810196664271194942719843916396570505405818856818828845098792613182734471146534690931144089616592716923421002525519444507095751155470630154006579667358809591711247784331096408784660433186241283396031062491242463094973182283639458974114685369058809872218765049072905103254418718582074939270022508054123531186733585774879466679072031651761202541833422350522738234974111851865419319176323533858570507457284279666647458288602506441973494485348124527890166049203240874941130277850424275392141116884474541762014535352580489274830272202977399206981935465349331613863626129627580647837826157871879530847529695651592633660646433624993384965422510550489038305109770054930813968220177859248024759346817150422785348975451266960444789548233932755029033257336595768466974895246561702525735257836957556073743250629602267744801073035155118861319991119832418311498666951137574556539720783592778450095800766992642085116319388456557574166015276525345886339477882512884113159105994581822620955906076309664244397820870300851342296172544832622839452087929945111792422497621530692775220440151952321594892488598866436459444990590156184918323980189663901434516458039599653688724293507406687551281695897774430949313739740627335274421277480386580321706227316426713907325307451083881531562115085118602576731500340212831235727397254126728725398713727354157313665232041903592067050099479342814557144896753989041245843523295342139584331824782775231256142655117024054499289815558304033354440162979920937774508890818478537891518622139375772802053300881084152700626927709670729745060724132182403655641345846348682533231981510028689053796188131050848528408894526169117295563480009284902209338627099264602453971469816919476896926960402788763578424939429511327736834870306374253849606602152188969989162596465245846278547373861412045537574094277605303965024435808786228287909922038310502325185152212757618852316811926610177404397222435443998206754445286350814865968419129439288320416976021259547970492618628914085948315478278520578984207891294983765731812881061923688098625959742783782271851355803414436684924735838829264289945106329615086052293029543381440683670262924173704191528100777976153400611912003686863276803380252450191701428726058425023258534784395612705101648493379035553703447998566558974486739595145207628667010504746627248939476650287178400318659960016959993451530641104809012840388841013378543020679979175995861438787100415116360945114752406768189214877466036053285992420391476306237257619123837146360931837282430725486147444684247867873384005332508657371347489372809803634192752746025550941422632544280103849641804293375152346423795967334470336644107157364675692925002331314207134918031008848292962238779425885809321509564490656876336431749463870081117281462178927999330508237806581829080552986722732213705368286486041456410830233529449690694571069505847969542833124048531612142266439692075064247864380731336789214293360152756388637143941919164170763984520187895978987768774555227487635217134505095825631068399353840229913507510828323244998294274055679242620542503293234924868550987604423229142936581565147161209325655450444393581747183436788480310903644338880307033432714911012148016699280539637162588256852569481708069492714863693230400987991813802889651455953945265174713243882912587038105666882086339652249022245104964326874740404576500252258210166306953498603296797324279601585351121005255355734374120821836896154465323233758572608173555051854288099999975628063284246004234207747910220027763920618488249407261178484083824214923897377825681100667719661768075446096058288165850231224145978869331964356862118259451803466306560407048247145763932313313474411485654879958551217083472403223865539203865836703366685451172863852961018099062589885135888290002348173240003274998717413290880216572115887142920758900676914619706247420909001621512774961601349252390983668179502418385717769252467674316959088951043870296279329634453854840796404079589703769860610977490901305685282782987549444365922590186360057843280494497681145904272170785556514383500754245582149498401341336626012229185296973079769675284981960683145000707816491321537623785467386359429271439594918263998543372173678079325482503381592251156051336932639434894208795419057187317515445136345503418448427508705152358802639337705334120696933584035596467901793606612779923568473923885188789600219149256395997744625045215720581776997921245792558378604160742293173981758078071294313895080545388461333557378684745020524759288229006548928445795553953057713338834277808393540451723476189594327297455748002926818266246605876809633189220430399471478108726130027578734973864234673763686125525213442219065673040445185500932746791095480538936265015404145513117683861288895423279319363641700096607104967512250537703694784540983286861371453762117456333189477177992137662816939238918873169285763607578346765705326247036059100788062898800572199957123883000739808857871900841950675322294645663262306506296768780533597382335820420309543085374080780574518593003880906558354432818212232404830934200211205659672275224186048486375300160776282519515415224160251276935627266501679138767114522930726899044859824751954456782288013477429894092253907048191947765542870819837689290658598212409786447314069163824833272407768034683715458306469964139181200513438314697320220724048727561750512596869913526181089063849275584882116389666951619589906868582974058402582577259268130275199336473572821415259171917765693345638809681315752509702171905507156257837083237826447883727310768462592323853968658697542363061922203666154596142448483792862603167702817889576274398586849485397636557470750999891126169878856308770831670124624170129919988559260902251684026732134303891365381583551357872535230505270842174794325831908665042561242951277686469893461355472210965775889652298796211494758326904826314557754735497113972038995884642032129233192485329419173492580441993074035807169746772481253743850514742341011907910819672632033376240149025376794037464382314592414476065284115124942529018920877762686828623381782073782912768966737192316098963233804673374796550285447655078531259747886899693392754404236296810518483368849869463693276264928222977325921113465764598722068218757465287224863348277569003942362904656865053655023385398156560594376593787892456922205907797971522180298977202551148040059309299161399793930636004947542576129660641639300891751823268877337622928848798257645842604717458267343129007300469534867258217996149345985751464014923233846612897503666677336306816716846836317862995633495376375844863509728695476630272508134761803004866880901989011005605039623327148930417061243970000327841252387037215612174722191033164182797243035957025772459001921367220186585194435455482577825139560699886186653901493208003945926498427708133645278411273956230612220558751772266785833735846526148817299750406445789392919865591079657371121200605982943425983003547978646951032065704603408260496084860938699261787086335335404533191048086828030387268304950186884348582705389510252853347578504381182487582622535931770043297453046859159981622529868824868479858722477451481844645475972017117369025191049037116243163612559330336600533541118473769007287703438400717763194834515927186000366810183457762195936653665347068858447524912234784086313577894743158661164106228161869828230123080650266519504639105724941280427892059517986972235174738314967762145764456482793239225323405024428832423597611366352399588382166933433283816190788171503838933625213913149844062275734251911108973211866245064275327400993696974447376779669642761921342177426274402799857160535280773307518583939493334399327086678269487110685525694674614232318869468996945038410514014576606283953922650208504894312274207145431994447162165862722178997069703801873081862751658653348645070015852368201400045908728047565663530706933668257847535668280015364827464200419181880483986923403674088203937541149213084256402855904102299722402286444092605056323998629597961427532457172749676044899943738211646165589672460627871120175489265814803271101752455490938318251618471050535684114549753490095136962183480986437707418893118571373369605897061316429670084573286700183335493934061535015186910900393313837970891219421979621035734922259758947476800837582648814061471109871657271939342476424155705467665283454570486232606836979292181341213859639230735244785494728799015461603496481189157604330103368864514241118110835998858338421624530205332063723571292560926330768222890659959311600111902984220202849713383134398675002958320702134632878143462897495022389913748398472754952127196860009100536182219583047685403849324705404528567162481110421113963746898147997703827334554453357655142403642401517983448734991307757824826364347153179034398206189894991370424384044445214576542958786118927498304893824765849058653430856919770795502472186354019312804344010083816490282596919873689150559035515367933080941852538012484727717411385601770713288283169660018782570729646059486193939022241514439566487890846438660875754417167338607515625152871758991134392914237597142631500576062153779954862465078658925118481244679264289231804227215725666354656050673783120686594598767210622518643491269930092437162737692153385712398540928785669493479735568492467744671651154464669412450083308514317327470293352174258193279129665617313279834587586253829498735490846235454167027641384210415646266191693808975819693918061188918395369354204769889832298896448872561499022351789109324078561932139820429645009667981081985576633697755511724161187627147945787005096164259957349516584994418641683348274246431063386422770456370552865661533999883684728322727511326732927045410852081354846011497246387241918198717958486628302166198380949240167806377754734922378826220351684215790756220701642107941676562230070857672332950378601409286507296757404443739663486546170287169760939203040107434758640349153004268613896901560541852010149790965234855245288427409355304591231188910587623493479634601720228107371720070409080880206848040178423808782768367982831567780167929875162663119139872574696058070023440195972431357124759462617619631915644332181179067376993994453577942671343801161655908605705398237923176930501111979488597120572434582857608509568638723869552891097312933744102736304892578088543259802395065103999668648226076561474188897005616828625922902667418988075297206442688022582100087117062001439407758355162184942922930327956992774490517380878957437978675664268010081396123577557460772449610191317624133970714566218459412302034597688889868704241456140292625994664385723382714208324686369975134373902969136254461962789604359379494441740883931692731859847159172671497968858966537315595311745466928706620838000468351607090182980575023046089542499741915108751379941669403110478425882574245179047694559795162160761177614511724603508070287271618018447749731667434814163000505818144913182052089528502019130143936938798026895648449955921728017499788599630615788171167634071070289277138291252860504239665266272494495570787011485367816319769917804732778324164519037849832161059110966654075616396370312056567788963933567382544358519371217549443505239018850853681737802127192389722635135443098226333946088570820802650954051145598765313066402236301382264679891479952302143521939053335386089285002610689343986611645106664052922483561327062943179894809326677133162901252711758010427227564284956413264546056498077500236956587614788356117611171210129177732074905081609760676043682701956389716331664923080235720081867004000427629440950521700688819298196299111609047028273237244030871655479901744340154869210730038854430538277898962286877046030227029848345930408598541919247942260809351936078144245415592565068857493488988960224780384877391394192980591255621006007825317202848475552355435622224236376007281588787609166868863331862478080590462541221210806751112601554704289425209139196481143113052694400116108492242736772058189964698984207679164362404508615181601409390646767941583008730372432003645084391753425078736426599210480619629591452053310567094300997425021825712516170868345501067674003136549024634434840265293612517450152127844806312079461851865649622084786308683238544173741894251534710698167323425567847535566596694240602402212612737593393035026727804453802591785647831324250286753000033372454702120961816636895560999581314005183548729000506253706750380933883287275103819725368211293960310682242353105823242650596730519865377451906630235246016209087277869507780069683924166330723416594001227354040044976794370541073999888543870797501356854526618724207058554711471137286921251618188106027165334126946301914488288082305561550408036821903910011932882015052736248377725681145577841974691343367151655711717973211063285457046420356388028655896627248223079285838570914800435553087400589940395025249433206268782893048657912251734776154449059893901780828831759069948546265843585951192161155430713332668426404137208167752103967690975177376545610820465804030403844430918731028821646436426919448796268721921328195557243522586322631313937930353552669192442942446826742492981866751393637390671809020880707402422431991168619203833255896072154504830148006674424799514019469061882983051835447690526956537729327270040478497361914318215994768249471209695800730534213940355294898507043067455069152295695354806685531893266574871452122625581006833272322960360307901869439972614716245608496045771223317590692928143019953208132702621302734440402439806816398308185643655937366991736280175644616562384127597968632303868278400464210053265895184521160850552034295719043443500630988817696267425360712351524288282164503621408118829709509538812104200389961420394849557623677805090144354583411039093402760551653049742870224979577637487470239389594919905286578763401881576713024886345067385541578617785966951583924280261601779839530157661870264257150686660055865742901427632000393054299227035933835047928374790303724568770446273834301126012757001382048625829347908568070250248303774577030132112492303691581520287840447562809321891419492764695928348049382725527514545827050598312282663299538699480919628588817663995125696522006899552584152844172199844047475291695562460138838747100961962523775345948920022948592751075992051446297567346495119610108916075261545808683626998004343724318526135592894656066043328037967508791742352070566458448623536251375624049877608245712910869346371701267040849648142631667244118843112317985004709218718081513373865439968242939310565542319852818304139016850629458887301450062281027661114425823526674994419396169280961402406572484022280035930425014988830962178159458914802820414760500956209607677290407529515872830452698899196288628287819324563410287985432268605637722052847859441404961404017489070446031389039941254282629982131340736054522554101501590505349929305459661242705007169615105509266087443609899743215198238016241614736888698641210506599317640520641095305982929507995287096121604974574287785507834595911261706157931925085456190519809236983412563866147222155628360158335329358887181522568572019424957820906698600884959492676604475552688178385205755862365035147220942627742750290185036617151296440005792628539797452543101740116993573291406607938274202153074975393240487603027970378289186087931279976251814465216096291416171142316587591566104905167740819044591518114620370688122790349540672403333911705182816732695525843928200819011392443754242058934903442228523379181844224957402360696395873059726409224884407946657684472374634177524174497456520616667636730077700318564796023463020473648064577435289104222587775734109784004974288777303268374343612889528988173792688332161403529067570272605396896580397761620338529969345974286710738363434764763166967248321490652668752564797568264422040003742845754685959480024070525876438809100048905864664647249415978292214410942045674181684442896359861717147250738292992747359052579441400084354303014376065559977836565389185112789172925887608939668110813514560976289280077182451310667190909737177548847785038595330323878929914467813387725704177726189053857384584522063531688235930774997695151224334616334774522939752477826120388902472944824689547014529766213052154155184355046856440140550946719032266617978129509508113140516571125327306148941281971488366311730947207261367074454480564524875240171398456530195659213652040296192041901368153210066863632620787191193980382486281572504987035365721391798745850249173002654223077870515497861804646395445817428070617325487084089971857562153459496658237915653810827900043403532834703688001441407504295149252223667989220064744680858509814946263354171508084625429514682360479383406292048323888454376318333029275327855775369210707330853705493260544457718511946972480246528984464942814024811015514859342846230847856482951387477897787117647236496192413988097102178981777056669619537093511275757821441897460519815757869006854577467739662379191715766277563526663182385468291442037282711948596545067777524121301395740566637612660155276846364967250288891317781670225131163554417360068102432279883817716761857439136569458116308600869426091557496804648236297614225251224915622790668997930700397649496460838141758102178677313386769664917020376895738510303015318843771028100081923223619107174114480041456429604361441181475672649163299779701960254798829000706632000435847843357501569490948702211320151699475081303708413029577111301367410381281793983968322096123428839072662449796004312713111574070131444811655493060862121956881798920367426657899731048556504104958791404879156414264349190166833805183633673490772014009765206370354093134257553965468817978784081649412766450017582236554264900837658543144908760123888569700282024303262349796778429306110128441725419911568764877340371276154527668326398180963885973810310995118029298780801276332106044826218231919910186571920642891815020000386712386903679621806479300055350535473219112018332142582199474349889790161031195580012081665826498864618203284409032121839903938259063475182674929762770436490610756367277715311665225527296452878751812820716789615010341906779859919667483093718415389980118895087842203710187801697877504180062645441410417374400035147717311019078168725786020784546732046828635091463382452635702762630911938208652752515470224951621069267156055118600252446485460606168638458881467766452268581034425508067187291511655416848502191203364927799038819239952787103313478705004261333732344039219457140599342910899392683858509551438391945258879961212726530825087809314321367316359544704029259219525445637718379574898082844090497183778398103890961573377878592813487324414506582436584524808479757195817411705466591855592630489168971059977876808925364612761834082781479063100009520355614617428321023273291302252855374765119018967099605504141428376616312715095073347803317564143215830930542154032312738083378719527614780973187079933481379853546299480360012702825440895801783646692799721974601219955355919423660244959041934372109162888790321422765449580609301422183907458901537982901998780815255392598288372647694487554188177135559927596470897346545360349449778951695638703922148011553197012880891563104438164183827677384286142342527638829399712517355819789568169264065128187665116307458638774376129974016847084990314075939433832223818000976715600038421672881857032992846132827299898096076400567055790557556169380706619803893552933721835162751290175774323668811340721096679469006328008868339882557478406713316060046300788189320785967059754965741737776356361556054485518646334457077694302966256551750159125842106188977297427063891702059433468707962921925760223302361152962833427138886091755718331871766248681983586369580727078326573788450322618161281846074053390293998977060219288700423729179655528681046996877818119858621219902604417903715053354656912264722043827194506885766237663602470842614604527747348013525850585617515392287099756431167837575459078846421223289920982183310736585539318735724904988461191563392956339531524880975915502963179023662517897962525098673089052061613145322995534813753711603027800446942639453709038260400035208259555424571085627774565244809523762001347099098552205265030219887437625572259295675104286176711797322490497468307342391478081878872703463664976826233047759170791402353235679882923378013374107867788021289073613980293282772140087969234862081823619116857124677242802124951690577866997405513238779543207860571081729993786031153920688750164127898334612266082011975037344401596792008437715310185259695581528980429844693443729173902446785122806550148543305689822723131894279461514154739371535575497804993883831685687491713206290417007800060349716598398514677412881587119288571648745688101939788589932369614375492150357746757638921119283567335145276595247694058826670302359955485679063138117836479984775540342703520718725882567349417697329372507097936945605900142929452101004161981393292169730998454360102309267685569237390615574183752257873305028082425516115892253935682782677767483240074065969282739238847244171926887237779376002758626851978946481578921500890751327969684562066806282269599836678291196689196015448597613413338803966160960674117401214881912809904485770703880328312792273114823334238898649662618193347478469534915468500294730902553264314380596186406451540082499848497705552402757419865915640865803260525207023380151240090696672619410413411267769390458154631858637832932755001047031409200206832697990596008695992751350123035961235604016609643182315005465566548032848001705142982453326021400842891528481659037385690626167670021893209615391149564902488215756789729096519761683684850022942696387553188805256492968513028773535758957528790345479542839609927076552677545616168186868510159424345604451476650561816934584167927331609583687193098387734910332960283588736037346682670038534309600813863836357279857378928416004669427708884249289018712595674807242080720885982262887632181822700502671808501782835697617153333095348202971666004735960961133511574549781485453621773835346864272819252219877411603912919417246136812634601276598426828048983670548057588227622565476874826020968548950737308633796476802730397358273852641833756497459054301162073180348102896334319216742698353090559934528877095372564742139153294577120177925196502046222657589300483903166610598923836126692371034084485936696383143738397584027067206841947405093624129985225619295464604693194159779143335559327942530277036122890243148135486651717975455248160446261287773706017540314363979330738369356943605707585095893532043598395988763954157930934539375915316998550378036486903852833855794884994909384352670117288391322822481998920598961755710583625456569624655894320171149681939870069679017096558996594812828041971916639977560034361487257763614702514879052111024022782954479358310058377058515897609727108421322962759651508079015884683858847857099081557981128086856587803256867110493543910833833365689587074012096583323832808940380538690800468654738002094956398066955841562306849141252742650055522221022865350530963425256334080955333828594878058864261815573447971936457767165504647310994328979249208095715815471114869851909520637147115386376882236841185938325368766186661982136818400039033818756481307942654452872852243608094443468437369823259529283606657459064984968360735199961671882768798523604282425415392508404217668133818639813040476205391967354782510724161216522793716812088280036097857803246164626964554398070220049049381274262413974964566421890555074636356626372717097694283121539827909940387768815813071393514797020697836993574888327227400732875108897774249499455661491999517761170735151038799720363745783869107054991750730898055626515670370347517849260795661296509128587528498924924819347998868780681268845194081938162116513441875278004689459609311855078498789081657361855161912583269075297005751537542078936275937857164786218044224920380855714445687775268231005255699021817272295974196077820411564385924025084461742513977420596730070859898170240100267330967317835835346570038563355384799711342786694730108569260125612560284241124437224084980570537367869356406656740603353788116522968224055593683980771316905337477524285265878005628802172828608211395964062834704033667626996029870066778652710639116255677889730349313925515915242795541310905730035827616697674391733450653139403753988125381230144138324190501361872035039816091166038340345993001546325347758780843248431548501316929435096260212983636667181972307151979908879371208340972385846193114813485505435151673407381403524290626883524473039348219376458994066549050551004456873126749071641119899291594385867540318293653485607090003976351112436673395808858230532408125613184469079579224041308047374793304926602433750717075692429916038252159977870031488663523188801491518093071362936350108155338674888360688387497041859333852897874403248492822058544403612105498958750661154522542849137304499474263240094325035796562279958851134431155333513302277245838163519518221244283588644303475610184898499575474250618685808807988350101003205955870563079667417349009006961258740916882439629990472745747994808423058858493816108023953359526148578502154529719093625446808842609838239936333649332528486464632118083077176792714429337858505127566100544691298249086786636647216882896020856652148286894592089577106219914245023215874954358469653404157749733944520718254635716920935323143122556799399396398543168020790494280048951951300974964158456368224600550082390739941211260700572052845124118435161679916445597142848233998407722056599578191519053102425332479553081654581250072350917497654951634104951251251351878603844554340758404042316541578957234703315735790537760961113435547468922076353562695405924059660583140804001697841927647500981750863289854969328329397228644996208399802765616596113065567188404124464967490505112009360633548485671486132628051836379806321717548608157351931858921059757324407483525831172616433193713241088254817041698495157392415849792514064843503357596526970645188347955874727720190789803007596641312645055236381005867881882058340525985716838474602478999963661409092440553788762764977697207606011822385274399328494784766557589502045424893381728046183146378818283755238123151695677013627457588481932445572995786789603663480129438510732830771858366441008682087271336094279251929730476192125607758635984565150586607603188351375505904572414002220553217740906743395353718144596078868265632232391437674691290420014029583850788800770701015506031791221542866705992263437000259726328477503034732219635643583520427789503351905655568706751245826074215515321536331695550759401402795568457445776550755071681799802506408397302978885910082576940813127486040050021507535339751114596496332085257415767559308070193865231668124408761365497850374337469573509750031216330680490766556778097823351989754157620397425690366594284013231571956576366175400704084683817150059517937334089308473123525908739949596642357956255372406415494331466429540721133872731669101039382706596224619185632202138008213817360858575362693489164466225024605199631644454502627963578297732518817725374929590438633855926117778561661050506181453709195414189229032987206676337117204889507003261806690052092667659858000465601256700422394093865754955223774424284822574015806406519264648327664255980125024153097155714541012122901608575066423627142516843184373941676601825400659236089486331986829185675955935236202672941835829717367253189687168272331978416226102113357020979926268325891075420334033144305230873572539510261194174306889075188854444340132857313576937346302901204939931983773998324374631946000525138721086863369639046876235832031937629965498746281376653608758444284067640452968295025137335776397686560518598072581919076050454305808083874420860978756556701712093439603752861886544270798734037798988486839367614019935382972488201813101653468295527258922797384707559263748856410003665866228350497312480993095667265849809350569499974370993068796976966948770372552158266548376066272478005173839126215505649989287898285857079359857447494288403022928098810420566689481729921806315955252297928278807572759027088148079151206673238119695129301342466587328260219283123549512362321731273562281546571190399492345510266312501506930033367653808321020183047091587667485051871582480906802235962474449245965550415092195088961410811919618555691070469059856187976803145580566909581920349705500201739683119693679362613494367053848727138813932164568371657451048584625315422261110455516259303805647608175361001520206902980776711095549818987288286905641914417112343874113636603244639789809086539494802914712307508442062847317907245270579927178497931541600704196376253902449859492941802020998405097554935038415544733808215514934963110875716518791727208129864917182468493983190723803413176885136042722047518931100654698151122768218712303278270057657406623472927257099083172770586459519279720110257514081555684509441924076966377111351396009621495641820244929402177547714399919798618584600653673473026485633760661422521486053076563404858165528059014577825279334285422489307036688058722497494916897491332120252046826292539526989618597556438267659019643092730647300467096836110980097894927935179757235522441706086930547187396001454505819666814437686762668891638888903185322491716749048265054464258588170601345509899535684373792308086079607735056351838889666619163372786970030344393897783541045602510864726979704450675712644961921245738624652521380141286006992169240658520670616676292270592059638348771762740155627966470373684745807783686289263132226198728238552388330770246833962254982652089708722431043009271829530351145661298381101014995746719674332278319061283929959966418932428978464665139958730473037445616425927712227070141385851977989991215559381973295469437272339660936530215778638200348594416602166674674747852326023762294521704576386648266814122590221895617969007078361074600200119974455549250048772316288150717970651731025137083308148707521586240605136108272665956861785416737541637793647230888013151990942508822967534533283921776629502385297374843212234412844074747144152198135115133094680786899244660135630597464521340731766749815294351121360349307301923958949281250674451680145778267461710220839927757942294994571699727306091765597233385709743774593044838785504583697417505561717234159320820528589317040632695631744661064963803571815590753078801757862803627933974427203859000942739116922214008865238764128249303929674750843901909141334182303902794072623080081667311149086740395698229597146145777688158236853095165552578378626036312353343430917206302835840650450148642046433333228123630805884206112620195220166403356159486674632019405749409640677065168160720423023727348272054562863562074895476717027447951377031288494367901909061007437103556970761653570593846464828390129849154436086260954992066385078725459100477258172674702453094638614603116549802972090100675933083480912388074755884449216422153707823668738518808901848700310309107497406030125409432839883747054278772802725302828538784195873900796458311407227777505370494590725410947960375925522553730041185231543597360712915464149554833123397278513437548693259507379292315461453578722476740196765891512512361091717351831920375438762381777493107855330742972370357438963470893717663338753703741788898658719209179272028468900417879435288368603403942724231983593632264248366509582744722730983819469650156444999146777153660521716568868439203362232825302166879121979097363939370555652660178678848778182149121453786810808803536402038713543783422278723405150677604537715213642946299501601417726116590333183718852522471544886342157976848297966724779716484996303462229388210846295997248455776580985761444743526307315257359546017460614519134251751187931955957478834794439844259576736441237213522402654030173153781157040703162781550583570034042868794108974587138988786083498841475020114844336723566782552223368730123089729434982436551575392411749459557645692376575453719496976030021745643223219557160571131254102716289682175730621839465884488619696924250540207055892577030734830463033071983532190455517385678121770310717880602277264958099933264217131396619023174256289766216179888253220441765910256534086638927283900421258190302748904117784490434056841681041221194036298142331214842629237980374520564983633013185965024091420243327398944430449233586150974669731256401130201680171540502016169479092741567885532976469505460273362757447544778067458645817513005114381644596508736698391992222822084363942146382354673384711918289135469399384559210871714693440044294091243305725342904595809720013710015061104282245807296559237183396739678768299178952403010413567136929577440850714718478086125357451475370088057726436091390691605923424373430042071384756433370752902083347075546860745529781844860119559556537518408057993087545237640393576126555424052256240021180699154012165142145629012178900233648735042496746543974087237361695903058206671237252642177211880705832629095605698340482306974607273101114507033272852032524201259348246869181799195596927396163098981759857103545477446670532037135819405882855327011866363340576036257062165818937170253055215139871078924034049715641683141831183857215519684472869360066790259258375021728422390585513284645703061835115407228065532857041267592033139321533026359957095924286895676109006144293668690763360012403107913040569737937034805585561200096347955986696598286634641118028637972968753873153212949271252705069162012805647934974637438056322025371276473595733527993647356272951723770998909583989719858835424928688152762551731873376831224009781014783919323311590776069619060854016159703308621710274383474105549015204019126017806607770860151334193714916922794337616195001042578193503944487368506595024313755378270500528634792124143284295344656882535914211155310768895845017993006867904823434276832117310982295811615564856928364603402198841536187909203875070420980007109319636579997277862135632143534617812799059894821915277608162676980990281780183457526418992481845410933050584373478529088968879099571644358033792881488212259046016407840508971119492140763810413933884038354421638269874025961155944651598937974460641425694301102636890857418167181466697187372522195370765513741393384723164326836821643040486164708543268881263566252059553847536004141703715106341660309813202807462313550038926644789994176191516921626681945791570184433151787865018781193733476122797443179017481812472721836022896220791023228411935349787708669296066099288251531854941294614845589934834544261730004666778573710862969826649656996142529266624214328204052004308947580395622709285182650505885606499340090928982158432434065386493176115768442044985311757959739433517140800659146725713460539045361745888348109962984908272352173805171213749591637588256333794754300756522576636665041028194909652035450227086265094499487834160974848730257452771849249125092883437381645352748298963714462797459714174473998967515266336978931100168131586855819111793110565130814912003903984223178690733130314614230017103641612370025163114621617227282723676507386633756462326827122512904931287754185082605736760935994414545593389067425196578973166046538538278042394349584040307270855290729762243009347190389750247985499470662126416883129987794381212625959888805676812309203506605682932558602038513033921899162324700315716667437096325557352436503893457691350872328459572485229966000171784614427551570011184352270423051704781110869724370618235267592694946239400402519155391093872164301678302632541939941430399519323638396995415827478730503700301282950796817688722982380178378327088265997785104130726393996133891415060152147795065734454426409987006016229412195646940613192460264446283260614032446325148040666506227491095843860187356257754995239368253618138885752854758551804081563190559832433662401454397146195383621144196414998295257225150601042212736557551947413777336410915841906225371929212680062717243143011215384061554015420818679009371616800571856185670301436101093533340938602363492146481537907236791608034712301313368807543487471495454671762715183738253480560077842944066985430114951876880712249003446416297490420956081342352580800718880474046611247414698355963043723830441661525037494813351316273963759076624212808650448614274948049203483821875357630962156728830844791653587348229190864986415402048111113239270239051163549594219252080669200525469833930844636818816309033133253689360548594096102348146294498359623273792628388506114614415131520668718766718868004288953348429700937883416566399916529383997025027011192388163528388922982064479374021601192399778366911499739611058164180889517409046922110904308175916380737705382636446280904120771095003957270116549996586484728339423580656413219185872269208617684871735103843287085020521578024769428627474280694574276333724254622771156953668797540256317219154889312218471051914964549796315350539319827034290222816501379197990107161052112845142218306234359266502182245705942722060047965133279391787862030719635514084558760720181243106716263549233117976880037620044949593918256817415453153975903047263890402889104088996375090433611943732894990847621367403268819109042242457085215555523256739296103073813931358799288561728777098495568247463979407771964679515170088640374511372642643945069143200423453340957332622681826462470862461097555220264236239818111933563612088626800720328515339733519425792452782897585847626112367593241205353885784430795451486470881032579689318045236683443206007512219974205163038554797496348301351820845181133536570949716322791626668117527286130125682413106133917662960320609715166787533892515301765146246923712382446955307526602587129257364481100715201878846522988873573496031946599629311485617224065699268134894203335635671290780839558961020289579569816174603563336359809373919023307658540447980280105682163001039449933892322070236698647836000082300069685659235271517151424760751405549714025205703165302917931830390060224580704588129584573649069515219042430794569479064605748672230155775066084043226640942257246713634675219200836173974195800140727568207665394216267778506134973511121567692972037582788898725815767947699697472319842417058615371218436158753730876875970121453787510860778099569389803705227180186448289862571213288602921003177888408008395191147166787063198186269033925952891934671741193914101583924146822959114648308344409712875773703528680191373776864065893706425421350150391477198739871421286565553778347602534849689349064281785250323434026123323395089596866739722648049697538381032326217111213966924492001196475364161922404098743577351385087432821306176387835279661957550571154383353250942117256524356649893106608978752921250494224794892408845359346361771976208569460339353852776790139145629709952733269896116580533594160086208765390450371703435263006078303021952292933723075330984901253876549928325601059884972909359899309230242234504250331995229898557422321622213109413160526705437809821826786276023273384705152118521160106506534925279732669004432959814109304586504441449791235530962981490313794786658854620207868005343075173548723261468156389677962429451216718658323789759535987157748577328488917163337437865621954071137865373348805225072650368596482860521940900575919981372832058606024791416530597269372704107735583314413448295267938237874622186870748397153239450285275143648607398628393916328653346435842389578675095045504313220454735441396166494074759298450861882549014993822143128521385514540119996637006039404137341154936727096417409979119228375724855388566574272993274513543208090145381385872751729038631581089531253846379903327616616808352657843949165371453958318243855836888404055534444279691614820820997608807501667200761998221185197469496064727355931494105564077847867100618982432242755461827329403452740279774989038999122633336726497658550195531761228963923476796832195631965912293536005587137527476019701782628809295775600635797881652754509164455362842568001230356715168024833442000923829074441069166012192724012978435624082230458294449962905753461835599238134786780200641980920323321453691822530908924129435004971925454040614354055751277432720377186473841814114227114588108579371008525684856817241003343307544106778833166710061884424900996156484079953186383010713358818966603347551832077471787985291799794485875445956303717114352834489435026099866795319171976219322867541252443915533283986464854884145812482570555340021469059821069586076056013722643430398541069237060070116071929972478311948259536114518189247937530660761216527916210671298780745082003645168199027933762567614407531899003029165923636218132862076547612379882410969335510169698039832384238725949227896863964584583355693540269128567147663249195120724773924460123663661594577604074155156274660176710249512797207879671517511415837060644760396681024973992786346806140068125979434401547172188153285879509088531217634706119086569271618702458131171172328144167744074243652842841537799165790055157822864965781595167482248271124722450175771505112340981313147024647537649994810323282081838041076390708612892629097360131228714936781173240837071410976446456224544092786976350853731115924687836984618607366597477563403410330436956186619389904551856193623182785426516632309646387905566399187246280074448319133502657529822596500798591532324994084041678899317332642209489053932816105905839032068590181900286875911994641980182986375874971257115062663072156548209446198439316730989678792883902761331048214682599925968716345011662172364900313322243050854632576722908111603669574873051493807233420140114392580189247313856894732849562311334419964556852120876594214379253406803298345766136550735870873930196128531413172239191198051495597603940062605249799270205284728633692108994578991776854635212443389117703017439800612833962717149761560067380601702756462199798643813640218786381599811209669566996345392679192654613305638193115356018240045634012546540447196103592604673331427952800301092515090781689425874301695146084054333988866785165546704987696603862639723910845078495604018542834332255572547108672590979916421353630439590200646793654572772801742264692294356269368051035890049033789741626164046488767933178710492453192712491820180967819505832949011551490155908069547821060022765785282861650071444115048868260947536600891263127054245785911207399269287436331334131369268889570342140614882216986254348365426477163248946783042123550483981503910007751131455076423259695451064805309891123603147812196999010741586458275000966526802769673247308097888946225370108133000934483501107486966775059299245132495464544109890503686987761050504291432094756063923699727203298995060481314756965954993269846655869316935979414530259029304062245656794411466667295133143672550128882793897755900602324276684138750222139235291940509258616742868028999452423362920121847681092037522860449237673594051870438484012573588787084575521857907884751060260734209657026936271229205879654254563245364226856292288545915967778421573690716731006034641130045039344663701609403371815384779065771908939662248509213306929482054304841504267768763632048794387413808306251088314130951822668968716012753617180098290582771950251744974308926891525455764294826252071821683742936240651418765652412996610665474519735488825005901657949226724543334652623666655426722130887211756901037966709181299766406063027736785014771326221088113496718680770385727939928451284298810874895205089628714595569650116952195838178575946006231986389453020206026048248913415355180315202530248145752783432491442617967128481429397992636448180674280502518381892462295291535934047879673765771177965448463108904666882832466651281683307055213844530316677232267079419229187974554601405359142006857616549605414621250202282880223850487928041551394652974866730548498494464237501163528216283353503524553400496737346105960951435676110635492688832975883158503857294185204032368214258210551387195510629047096050493115694919385502147712514674743121743087701635168155248385774471654124344045197572983843405397784943224310787669969629535157084064021597849497953750943317309389214446147193307211317548650128811713116010570232588421190841086827295658639210371308576230602481949987245267225946637330017246778545083640981201833521072988690108829165495744055833259435577041250150379222553012983198215098263748682602711330987825872064802002584701491390857553226172027270041120558209058800140155703941716681332146558836855177002240586781821722206955962009529034348277032828333396001854187281412323911116235032835659712125245693029308355174198062386503294498330314984416726243850967077726883278255146502844400283141319524204627485039973360972759227761073748999653757810291909392368064463236508112281256664022464523565172871397913112312731076243548271659750676750305950744002784262993723870888618057923581841730588846950989125702100846400825858321227093523582908061636676456298979012481054810940371335171068749356187230293804643443687788031299705496835560596426720897011461552868210700320809909796913554936434410839105945144883412971952614874299668208973984195564379341318813365791680750395562147628737804670979830404609742520722453098904924052625063820324381904359630789359838139495870429845428111976528524905535984514850759955643473700189946774165516597382205564517268753050106670955561638898572307995338759178930722546842831115945847468258994800230460489882087682413482648518822885958588716115449993957436990940758715872791611844449211347498076932768330818347423078474728065023481207185109248300344589248614158033398882137695965648976345562812539980796094222360282531935968270683776940721310034322462174491304274555150009166238983545831087412598908763495781893309549198019755603023108242603388712579083848925305883442863899355711544805611357665254355598051313320293163962516891203804779712162112271443557096250512824202310335553278949767488027735931140161795720095090141385731119194552864461151497700237081674546694688955140465232002858467251263438883557111803600923390047477634687949224221391572761587807169452504970272225786308353521366244323673685367639438045420037304992183415851977395916046554101778449162855961451119563675132038619403957619932190026894273218975530265903603229146475264358415495249437339389065145882144016177177915526715791615597226048004246138538474645826929000709480815781121841927823102599258054000880605622783254434816859086060802121763958069922825946051700096606938568665822196141613801698667261958381291301117921344527397585694750615470254173624889040919897902508960376025140992997993884456863273308215168964974966510515489760678657246357574625413984123005116419398894936638543585313514491550197249415429422576227064605233546463616529485978801076209920391102647744461180923913170542348005910350672924201384927745185176652791538099317204185656101247291339590485936894707338610829330477989952933487675849729083678288685206678532293515953819868397103691925723215371080279471856206725865860157562642084621420736440565958146242057536844281847937046439047231912082731299647284048072080153605905745168826425175459790217501173330140846500443312751956716854000148177545424924472615012548943653844387549567598620273211381655119928240404721121184086795791078001013891555508968668801948057014495561370081934609607881439757323679827042730925193936166932492423505286299563764257052960655460327808795147429363108566773489870431151148917684950570070159383217939185241248849912811025476940599002548295306890766407688277580051655502152965586210628542661233749065720083994379975683357718148942903401354231725878452583325492420943290414141729383156182771422471332936923023889776476851696451613731380368735011133324091890981276420211083803258474275832667868215765548021027984864477184585381183533643751968955779744411686903235860841031295023456815535801720083649182617418899978926818334509382508412247653384916286248627435157726825823298706797420613441480633437082086478820399781519597117531370223279990965334291059901561543750562294823741940411419199228308088938343245295399151871219543420438231085180864502685334018115463792099868719220986901545443491398756246683017180305053746683232712044724289223474296611199112341408619430667775763684529120904549821467949014944773962038919466691275987327619932269903474743885665999338531047434117069878358999427932815873946192695389946956009772731026609076487967163969764722085168054541167815459392850970845132475128288391854843169422172247701309571086923060642139853322073345479444001847049481634580673208469339644452288458184045004585587071932645177840132562229411160479461915341343433942798720709382660441623076132331626089905207960739007321562751865805382327052043598596492870236789853196865019113642594273672080716785585752068457730868114682006265688351972496164030189258703830194997947224973795163448826651741655378911388305867410043199929635042031656682901929874305621644404406639031258982053302800942530369863671160754092435853644282335443843941015781764929985925934925375754748249281240533284294350010772671641491108947758621719175835323579911228915426199154190095129368285389401918922280934435687726054684796890201664282002607329289500278847225388269059874317148960240438012985976818867817342565773211798483488404586482441467573123777456077613070509343432580227116734699394763870726259782195134274451575658685811488809417661579636832852625224282283835943734491433683302060484117196689601664423196691003600672524988258815454206378256307880033325736354900854019499662980726233935715359995106773108100618955143953164175667321883775092414151471176388412125076041795380779023421558102036050365090541172734858359379267709449368084704989567870722124928616898962503966960072460462243722367342077729982586584192280795371446413776034215327459188997584234392976581208352175991310091390747165387412212498407502871357337776337550857967375379474831981705535047938620354028517469269925283910653845401339316795077795474231711771462205097650376135481503608309495482496993474351887766548702840780122113296869722936157808850503062124023563297253749073291153392313999332051156451893861115554205119765284341803472832690465050325371162881386162739620281743098334209868457218303810145551974077351110788062131450410733753519461516604364853845773969790627270670772930795001797402174181014221362254136013646159478462772944126105056056006065661083479716263591939690716860407044835356412120035283393173907863731363139495127404836131419647876427975099127735514753898398193749993749409057302911068774006463255650559760530543499324194947252791925475829194225668330828389902670120835881104140756138126831864818316551499745852589878253489758619843771988508078774361536930404028720031850170653132195177681475121213144591625668831804948042634021171471758191226239164003409461969178055386037968410682662333640815846251484119495559521283370399039466508512258814027073787616564029655891761376870405284278709843436925680944943135775264623818666117539684823037885123315309943133661537440671120713594029453034508593132634688190100330387084478639660766212731937722832883475990507018448294632121456969983158082832895592177068951329444742222153440313516149630017092257205984633175866773526559459149237767372389383649639017067910160126958650613888779596528449399586867640930092365913633809456274994271479957803091882067579095479371020746877848685698215419609820993959605201217433824966063285358604968339350735852388765650706180780612791738367981167390052652251064902762430467046353780485309691484785801410482594872098008632246313291393162835402065236643161240070622428187460025614478303976918347293534254263772095721314397965962529002525105274372619098167736439921337733569660546978618537560634922100959082283047353717471384592339750519902571687860159500926343232982081596757569839066989053786152326403766537897388935582754026445446557172869048053753016081753836766429624071314894402758380859540238947581360086083774986601072915209736514364302402208934751414095598882076555342733215444738311301749066510142694299455106613909862319537343798420379896375300620145543409607155750899282520418210002840198248077326072285085736872633771160178577147560759289232388248677840434452468563342153486757724552208721436099937106087854468484377919520443222731723761330304564348013731013082585264690470625307823644500205982351654408149673934758425965898529805728647570781803728922717385370933011314460498148899856045873756719879447267828948054266885495736920671409664934778413499857340551977447480459563129870084457921109890774041484143788201933117619323830972243529796987615704678420981168453558332981361746726397878516020180019959532245948392078312049156522972371728159561742370720617289276600164491513668565339136014228160431287068843539954076766441415438050880549077030164469022886104405282783340399872113276122792337677355713598970200802090694387947740716639860162010863827666307100612829391575906166833637892228191247173020048133930760596602052807211839381394570140834545313652068556728495736665921482102267430901225658025416655600235359295630335967953739679631744101019288718840430723446910003298215560378556929116344838922267194511166611491467377257693182080848475568118111089667212279739953990075642242213488944815242083217676484152351460313675404260774702720674571912804250890625437166433431312629816475916737336353746229552585752990088580654541219489838133899632937261309652874453549275617668713852413506700089167799580179612198683070245278835882706917837021736788063387439769629536760344515182459722039835842917914406131969805860330549414568931733407410844684764241820456530174374417088196845632577775349224981397463714842548814405855865962485092000756664484756026233865696110204685490148124735400590549987722549742085558434954733623580794971075797637320553696809855467597224216104892585163170356071548275095854292401326279117558778486247026434190227634219649847304445236286507292651125283431428935153692705198604695591927294153147126442899797319571141556350524799500975122484127896947427359758487167577111514845027784196164462441378937087603938389593474304112628200414185828251682794837409257392039123009418463826651864297988948967898931584148228496031360661815296329974691033608994083730540030249554130637336689867939678124015965677279429688553962244478067403299276974062809474802902759904320097455665303361773552534864930943123942640715305159210324191242434386361217921188636955545591603449289502227715519169782189544689346483817428745421587514186264650433834523682235541074071940178025751360434540914295545461010512787740343465679511880289083435357708851656443915177086499943542630262472439931547120893556836329330270100702197572653471465621044873791918261011119213353076075726429240271435204127537333162620524994866015116370853114437343928470205277412467267446074113990966672098931284966549672850114509735802180792936240414065371733219680522957956801840147342668703782817866096215494563301399930626491015876013675664065005130724726172223254594402856957663283043741081997381804253738870392796726319650242074320196257379435067167560619673510743032505361706697341849483259293397291486521756666468390607003584825173576011730331361024724497376006943612577193748516827527269410103913780686268545582106810654580454221118475274697448840310251835968018502129906768490182264813756177703130643186109625056671996546745211474171631560169831145259704876114336801626784501084208095263867598992631328135644198475188013069910411151274721715619457647366720253164022963412269720533390455285396915925855382117420246722761318817515268377872999301011908848829731428215743953070917929078577374027330416464279354179215091091919519493919660142168336659767100474010286794572305027461750154306309882171794743023063505949447135224836803316732121203012938826765126432788085841735788942621739737548932531283177285421574991588911271597278308147081022416102873703449408418874663967826158845158706328408449491404635738122647264752557187839556508211993175540054043233806755843646043871699091075424172970310048271231726055819799020518938999969487779360812219588573017076748769535628739608456180538665564598476574359771611325720021011878206192602974073859239086039146937532551019871275070967878566139555788398229465346941269099312938324890565131771025696556187210293153433917654065296130269673218731465106370811767119974479032259076088912696255531357654813795858775111066760224118771852274718735262393786155567066201091196133581911032026261019003881103696628715937483698185320439756497459761589734407245207236948222108078565395437981596930867396868647230426485690116999760868654926327611915282455058229674733924458728687939663445644165676955669779141897714196844246954470055900565816259900713578742199028510777348626710942472708390224615915316026212229849004520629397359505340502487943891201427614287513931678603757873847299956270310644383228300442509086330143982274930478796811138696343608629379073566187673319375159534255996754882481113148190270748965587757479112527407345588764522833457980151661239470613964256750417000297795288987291160054426568820534881392568911050635908208850722228541937334678468460926825962818918691731824330917778978944440915030990752215686928515707595358116596527411281478097892454632402724134557544431541704917464805502102971393367221360360231288115670165882061397676344081685275385996709995328465531896344651347943640457732092839703297975255678885224283625368737258526039817333327836869661714960672731370365539267904995359863115500471494398730394715039068341380534692069564815062254835798772594748553308898089143720602666064661365098161764604668020145712386399309802195217168171246754455381569140122522154290148646717635383896646802666874434326488151203238703782637116377943482677901231180201741820784405887851648882945188899028080754190604469703928297003888291253275042821816392659859113754924017308987208059851706160462449452945943816999386540032303698893004353265012525250973060745440467357409868844558441821736188390770500394603541592901908373995763417746543182676790847917518471439110584743213893519121130996717954001871151336381190607944624080400957545231973080166088505669259755959589846825396660434564430633609178637110237959410703546032742394906677770661304364397466973013000601603110320848537121548308154208184011285322907702687737747444397209415558774864932131139650165017258650673608833989748877239229182679315990354172269777636538342535252223528831584712543870242727753142510745070193222199934485682906675493685335964499972853871900589541378825665593016080970297016633155815186201146901949480493099152585568867011309916015510201121496111406361062895503102493392051690835093987194183788909540820596490962027940382443217469368153871559833963558112752050669545659735910230527193787098360958534913792413975857543630910736375390250122766834691823004222635798097290481679140167957206106869875174393312001944379005110669828313335224322241737306994485824881737985460345071432056088143908637187512586903536604465986732117236678100736465763839417729765139932491434863984632406248176770840872983721276747826514217311517924360367311077934784071673399594781808672909308699216059509563214815313592925643341847836867260244564719630038112141570097094912528715814280427529817942288843594131034690748139514594727664508743158063293759630662408588811840122150655356264860370798064727858826171344248907910961531782868407817964503640590215401643657542674918383972288618398281004767917811872897730220252867230693784072064565797468976512726257470421142178418749438248704631063468439264393788162701418260136715697871870322363962332365360478606024548225005687082235592785989361001652097643857689710615567853459239374753209057144744302662936517793306559953483581241688741751893196533311178553742079462902871569515950990680734270491888114323273297556506334367398753133074010031834770800423443854463911014936870167702358110005863088173765331485434666861935395779196880105170827173021778275060022893783376993119240472185423894969473320759332836988447707084911565621288235346951114056343056904937371379074035532734452581203971827488440234448530585449894684879901317510334319252853943626420444258943771655143265656850163618743614053153359653767474379503899626230874772323768989454751847481188473502478348967438913566508916494712303116925428294254063874878719278745789041281262325603228948834282542913132770726307002893772822195006297394853689910788044367358346632304570816931285430720421190521748584282086765169754831178767478340001767344687789249364855285784307081133187077256440839184792311041516699538611966721089460589773459369637491388675775046137859142669146012816178505648728435434821895642742407766789279106811736176831966573062821685147301290480728967252009693716567690277114428767608632516659583872565610642146712304981434742292833753691622885801801076096782985208322595044646939924846751423270482795441589387620062357853951524202661677016690734846111911870164815698506750781869777207690850580038041336961151521770371565721118026299691302445006371834830842748294175356381374920833895952415845477711708851993294516957131376461833923019300645573847193444456922636409166958273636936843488070354325114407577935000376027018899194915773663451346886424677422002466289568563238068954595486557280971261435946937451593444945115750875512904258615260348985428267482373630194717403628867923243575616812195069364830049007717917820539274534522358039617780127297693794740494179882437779081590597890956522426380288263936678463231546604189247179540557127225695062046162013658742634840798740584188794606418623705836328965242929017456253747527713834019052463808729521336587673549987381291994575867302011859444078998706794808471326637631818310038283894602987498045658787622544268819023571843657280292903012829730376553198431342106087524965245597342714079526356414569975177744939364786303869057146455235759639670823526041898858309662275286050761274310849878049746829439572223658719699813516300021458780771634453166576988933224916925231788100677784050566103718456674869937935522677561408869473754798453802397633124044508505870187969293214571568103382300660026848283447790659278607614716011829375669288406045823069256477762431950744583841547424827801547860151074623429531525540044902820738509692715791930418564592724408707243353018868970843307172906111316615408443325412850968863272144708734661153113797567215575279077986156932433498398336757859178327070692787385868335264246599202477232843244533358432012130861864399880880703903596121797477352089200247409304272301165862885334867133712126769387070485401267085267148760664190907943786664654374637102798448094525814104058467405419706385712418194095229315452649823748715601632895640161041840359472909346528579087450134028355680051119159451996345815021879539330212204986759210718398951497244828685785940652174141788814867433364426664238245545915037289730156505307829674449521451433900617265699637243598313364503393662865550107787755745171882326869942162391024451282847360810963370506743160606946676792275736900460235916687101426846182978872204688357579520912706710691442707668850418152842795072416117762216261988804326272807305079705173421929520296368552376430791904077990660821352847755616469359607854828180129278926169882415135399418198169961453738719286967125647938283807197658997088014035991550537997075093702013447728701293956475603303950309649293920101780240425221243856559043477944198019115431887964447311902323840822169688675656153515810999718088115209180990643675654852611371604982208037335103078682077698893013712453040245364499442862846891699888560370840202929677309389132572590378285435233902732657112849467004752443516149551876617550632003016147332456852279113030504482934599814816881388845846540868419476211806236515688521526840000973478140624709363082396962417148302739576450730502860907165841262323913270055905340657727399002350082522949420971481868865512752081203751936912742365565620183697387776813527325493772216862836415356952899315030073727204120157503005325375621551370272697733746997727458846699203011984873388271300992286500207446507354575412095198606721912719772668666056381374251749198628193944791043744057785236197940380765758670510290505881177902092475462377439410382613033681053284083217393715215549113920160785391984351466590038199515149661916323856515176149182561277433491457969942641888061304016721659500220369294041081766627189391934036764152905806611583473394921071612980037660605981173968555853482270770361349034665426987750056072510775767587068509437575968332444783367654688463529888722081304323561137944598441072822691488428221603151650429944675265204841871138283519970245310592022733166329852820085692294783860666861158029702496949159520334551616959416909495139087070039860236561407919146417069931484320415543455363927028066052608710597484682120545883833158209290355535577647338691701768526985789610173601706212883243360175636382690576122589032965333864382827204702045154032015968990830978164596731530363810264712855244197737220729489367037222258241352821794777327532693342143373530053011219014973644893345976157476353339874597333375365609450035516417700414131642823759188782186717850117237112209412657484430503554738008690973292243978566888443551390445992651399760139027007311695392834823532331043330429651268150418528870638884910041603299056910943270225523706403656343043797753767156006455358113771389780834415224379831855007291280751348554743358171462147368662073778173372181568402920022206545460009447858741786441365485858538650483720050120495771100881649470460872620243512285862645618579907010823505460864889412672561791696074559105277459506500365878975624951090032624783297547143468052716214265757163024156277535147451260117300066460144608637140134490237502828225703054104990843740702280704703644511755163800920107544133338395161393129129155437013570598765444583212355086211530135366587159308586635041105080146288625394581236536611046347859095596817442552790987388312488823900604233107555591063635286539582381960829479729437680213173573636792519990207028786542336600886808765637202100734214857980640202679708936933060339970772975018317069009223781518698260677884403885288827391666010296201061457468365291074087936364815876998946484926955318035850425311512304507999402882506769630748356678828237148041477478627099201341942380555846907341452470203163969898668687048028306516933397716401653412558851191702972296204501308619472532580539727294799148781245007144595456450911357822270726515589754815570501289048941541951698349097098621518937686303256697140516414694380378899985808754798850023748617690634760538096777666847585313579702851589385406577837071767884110277794728102942274309376946932840554185105441477509454318848850228066801505193500776077722275552765503796768150024050688031792171578266911069981488977597803246777268177266333619969658347910379619914459366669025041049588876134974699528680398788628237443631823650235612934687963849188419273358070780581841352797208508757746939625285649004346622280368697975233368764947116685538922811426280357671035135071264701573055751083376663836035598005276323140322108360521035454012694956992373970556550008874687086453827603203108044634270494434218566605792091595507712870943881267566578653908989656368195032249666182825054775492708356557897337600067459515958888475160669360821348434805348510913319245325266929359281218144589138794703442065004760595153550316503657774981661657516357090716903935292382866652989685708313266321508716319122251331178596831274321900249813785817813497348524815169425192016351880212304235275094863012694046054425542963824615290928597201170415800699082961379684437077521756737673285294413777961804047589321967989589860154797207172390596736546254927543669044657917789687898404494010256632566706457743571565690287411135453202958755673989556914471572518606812022928046618546088418399435210402013564378037564598137528352556821391640408474310187798856574862138256253295120810272536438813666001282103461779356283568346052497844201005332529197182897592233199427974190449476696870206709848556624957866914010145200429828228903006507080836683610668581860880545920242982419237277848909931778742800426925611365863415708923569549590658049918973081928635378573128867735006652421408508581368682933977472033379277350083117955921178285534692869745878401170551005055648055725497610852773235974044534417091277922271717817277041752986757128305830594855228267623575210263111021638880970797824698902035555976480245226837947079022417783762678960657231872792774160149729679012892669063938960652362746550924920922846007748798084868659720126941363973426536048831824230987264214962356014037866600055977158957021445854851028487207270317652400378680401764878415906579358250840415125337082435315504373076045324743146201491832627505478224154791107682478981209985031028130145031295621977513990924945788571845358095924586623096720594830360454689084452912494313821288914048312487877600065549144490482707047406476314083297955496617192855855414459726855982259696253220471728028152601675170342853219095489916828032407871295665000126529244703575329017086690376235411411059110634026302712198274157361328171187793611398017468555868319756421240610989913151101054183566759390717177181318949254981938221431074719678700596484487921762401276229450370983459039010794993828550817588021511143533650057739837825918487726806695186641040072802005071457931918804635852507253140573469127814834452532490979481245244157088458963344739128951063595988419596815601676117933375779391613660514144888105668206322061438729759427370166819458076393967642719123082133727670009582098841890125009482841051979178581056853011068710648426330948247990048256541574062887856515024548773786544780148827412763190058862793228087408463937494554778450362464449373798481326031049486635669836001356805525001095481620557761595340148313756555155020287346012038995661954175182353180543432494688969769146990744182124321235949712086347098346417037863553130815088117907394744801883235543137433862534276590957889635428244432893736058455761516939035370312135223205597680513698159949284630680526482589209790276295929528608046976102988593990196458773931557329550724686715991710655144319729943725430269623791566094522330152854792781231365855064184561037564113856233371941428938958093779459561504360572610754225151714384074917344027298112219116747797515489301139410842768559634933536287624562346431406839567979539965718449769190122877624917288695840798001573672459439700257618469469876712553574750935056876623865628691764626744457030209023361430642887565753769302494600523156518070323071961107103950718583854953473641256610089117936518758884302012193091267995180626789712600078647964055499234847807307843919583381374641301133174624677967916368632417445323548923286189408995366183240764896300814139307217608428626145351881660071564052352348914693422049360178214517831408278974281244085705374758429190318999140396645321538663881838714398418030723455849303139301187632227651356531115727721408600493122421705656933045774457475652913217667417785155479099429454600782510073636519638106331288580832158112961337899076356444096659082698125876610573536960272850943450132801836279412391516352271197210585384899041967192237937342331046025065593414304793092824113406461642785244855768759196378588753261654119252967950133861009791165093860835612423476512972069690804254565319707678636155988148940511558845034507416955468255754101281652866558103599181978390976836542181542111925267501157984613728752405636342928764272535670236931319392082156266214574487970499917177145264695846321660275245829612686203735442128185935543789917404631675201500287587553288702137290379336503229195998295518315495377153339883000235188521316919949326205270491985259078455662072661743326334112305779316938058798224886340983432895444371553812603462031475582390534747962752398669042820482527602205652980234079858136276181685097290135648426160133308667304567657004551805710573996550685234157788075793499580162486533671713020722441566030379712255890398409603812458970921613459602001248372124996617134862676728538464704167119843489237907726999588870856125816932655709966652374736214116144297969535208569947849504766615801921185069855990571266566104307448267269585757988821686806372513772368549800348546434911230992420755614653257060971711267051258648487178505517058379276619237743212421368937160637658920723140529573622467530182977121149951205006477086247582095816614779119554889889209351715655628161069843558692229081909899613247157948202028427232783169367206726328294326337688910803944382539700406959790597143763234924447432082715727381389850947735418591180621771767100902730971921297792977758258758613203272709130842293044960067644234086588641395598184814893733184925039175676485295487052947374772648173842371995873707000549328806487115988343600791433190146624970400030106237871457760602291980602471326643237924241862365020295328755750439680297198164533262711635080869413219509620561483635280034918040489004376355031072806090926570480611009698191371511757634965009362828041460499067128945547109541217841919830310089085342670147327661088546526227851814718005166501041404361630663552393892021464395680698680269473626633007532599885911836895377441735954163188856006846037565847896709465891434389707617195225731923127436762252970200141604350142142148241802072394308354505070374608143394586317031602475912965857553906799730201310391908685712190736008309498975189691304883204885215826002459739328857383509728109000611161350812366124797008762360631459454239163306562876288305590076735954075188016725243050872660431388858814463298291483965673589969273303328710473314249479047642640505597803324735484962851303426943410195811756884293439007912146079077984414497401408190127681994936358340148923778545224005402114085848659416012781948704599252017185707890614959993607775171155074832814701566052475202002625648880990709267379819433120580334740119527031263073623501057383491826257407336579913824408415901392839056400043503325745737283509598388171732380309001313635227036210497783248587528303318482208844542625678462905043348233191547912859700375105775185215038022010942678383357385098196630581568649639819015595548722791990075279001891718809801412410555170336890871819161984422621229714638160447150674855511547498692201277683524524455257103530575404911016713174068576499901207104128251307347824837265126831414784040438695315372072139020908464820406889643083609139483770728189310450829444015712742022454395455022295359242116642433234298423415638283230683784223630543151755913636261420313908750501324931503740735504359630708082654864289347672438694199204002768620886488552706596605136270940971820114172181667818870571975469486208739364469501545184509810759657040974958356555027256196331988238026107128465961026775649579440114233347057194427607520134061041543049981330656399962923888257322634795599707527652923921006026850279031320040000917274833867266545212835521189215178930149417528545491431273197859195493336829960044994713314111913404460754943986548286979183523830954978820263845348879652272227353444565429862109938079158393006983585276894492120594773445057349303651461817067129656354535631958968349550629790803915551878166188659236239232577822323822213352353524024995861782239986044435609638111720144171475169387604387934836992286014663227102384698393939017375712067040435743717696233685197632961310721771523486786754280897205627871655284412968338638968342092418365075851381759168606534631350401293795401927853232906352968706665827245702091397834009701868278689373537028552431534504754537167967612153657410614615233313569758094348680319656816489056174991491801000738931410590607808118951274157300244001726202019415704535737825632754317620187400239659054208902634412012963771574376591459563039383731373650895880522676352765876055291429018942782255451891978049835470169956089065969454542088168055053479310513254295125546206684444547025231878113832372264913968267440159459010644547576241005385111825688905946466719065392793063049525129237337603791015985811560975343944489800339621714071576829047929641353491951461320567938469985691999867410753605788894890431052297285701770283098699340893478645366147781608171734056232895127712747386431050367747495409060611695320654634746148631771170854705190407081803246832883799586826697126460140800063151494626900330653649301264011038121747187125141574335656887905474730652830185691989390060950952198511620265922464938660732126078559713947996964813485060402287141308326323071220294168756341030069428044019330649666348624723584739513640688674292397081247661512378236844890350364911249780603922556283785327953012083410645801465164344081797914038159425646204686592445798379785412349337032831384486300769596696282037792093685948520774886373106609198280419356969882019683383699054758433425303458795389278714247213156980421732970232888474554528529359145808449679986914299442956994823755217732422166398206018655705191167970864585638787352393145284114799654809226210015927149294718746108144931775740342151625670390848340913418146700965185560647210952211406247425685687218952593646611093973391667015514940980756605988413276337426914501587949872631200370143095628702191917356732666963683364631103564109358567306572629463921351548778524984871996577911497042531670721469228112793384577384455289345289970589653033470938044734840596265679896581836481085400544573091528648014862544254050252704373253624126080867297401497887766529029963519789093992120802307246826801434448362117957165648235051513902026537617094695474077255873497937424192661845215399194313982037953602304457301868193485267341442234736670525768819182920100409011930203625416518609981048911550671912082850389096519710388488558240914317174128648386195672390805478107184143189038221905631067156685834158387350907118585430433262236046738297993134876011513912323689012928438851701572687489705782479057666123912793310698597745701029252131587798614507491733150301202660966610606189570761049708816570145728486692759625353496302451534234542087995180401142228848597107586480104779937776879280579684504776992711057136796616651861270545604870338836843612802356044163004683456480058842098258741950850445474830773574231940120538816926444403319519805960356040190398242881193044531519689556650381928418269131922099888053912027842019231301543253231786921833043943123903880539065629650904348798262163842369293660082177248709543175911824031910255124402041359980162271127138593133316394627026919056121708751381479571344853849734092600090088466289361470192972564960924723264586860332501320508062161148157183857357271253262474483006325782768854501435466397379581181391920745148804183037618229609277862128710094379206741351897539282837040481732572319591895304831688176510642624136562615080180371798159277516696623037292730717180594298055870498196002596669052324119127174412428213945697504695976892274626273029880833655139339482481331097384455722857380525497685703887483496242783266003140857435962971370407495172831028858099997113490630122056951873673849834589324480152289595006785853689597420020057651682134906074883026558257881800052780601896782813516946130615906401424884206934761499319242072811074185037812370440008387456556941877437283596397405711414671328906864495667958828797431823155112775938016616281957673015692445833734589873600521940563171129405646554715498895918997930215989462522205967788399105128807826932474208269327930813151734570162522251848359598409786279884583268776560132798137721731962653193152754421056829304190595829960356849463029082450183274479873953574801756644659037923584913010437602815789698283091500544133020504278615642102481138712397534246223048599228845207964386066294850065827966824218308577419839420418690173751661930451781418337506779781023257733770308759395510201996228479607754212044574255305824499380504156953887225056515897286583659359478014448279585454280522648727077428836699968547187204818963576300959247394960643926011312809062663390968102377519712123615875576726379029304356183596266738564829844419024781231882871752269350861907756181024568598419646102640844675471863159764971249813372355984297539907807435399283708948912847022276687966718266427385534772662052873893301129102843364417527449031511375733038524624721279062710766229403166227774286255062332157664078742557504606373148802208429708251380978121543019571987708721460650105143410059982535435516173274837158414822119228063190834920994238268596247595502584441853827745088185190695543413523536463541752696767498845478023584764766082823858290964293559493327980479953759154746989582914407525312829926762759960032941315028551702159910192918752859010341744496622910480273259787089622359902918016605180813336163288049958876442025912475363825480662073139093232397219667040940453405160778459670274710463246626015475182296246666798191703548831145797947440819438974786692571117771158281185170033814829835043915954604814493140985172929378647596318546483058939738946719968041247759145934151934622877852531430651095562190217677166359618792880049873317519155301832554933553880211217294149727724257883196447171481616606922588625554194547199062617947129151578961416296239227983832943024154784541681573570729557327128431489014441275715448667853322980844544044557727192797336688621679698513490228894025505449624182170614743306631061949863935544013295773032357109784034401574980274398053773837025729666025305119172574900465333613844516918312254346678129438203823789597269211521832309818036200295497348436345903870498326558394810510388051588316593528862817312415176732880618161367633102609053196888695268976550523395140664732047204227892742373489274539611973970832691580883796484707101368510408324498915679783392459769330260484532242037696252032494407879640161970659255552756127166398404572906747272677388057398166939331107153861474081343016795661654974673677419087350490630945844793004389724110905946531263194428132056600927129148582100777359784335906643579046774181469613352314096931991025760419905521276386850973830083300518486683792247538137004518431996134453241319649428613759944153408575345304480824654535933795363039269428096685958564322593343264572030292644502610044485792350899921413819705416360145720285507132671391508862422901543908623183184987664793187471587088744499019408665235801145298454739816711587604113987290653555035694587535545561113440344167815802444582959582452220246385703539446431971093987815669542975169241615345811677966343149929460005335070765092961102215025878393147218098794330498815817292376751330524115188784919717091486913771012339929798389783366681612939596183464281407105996941018366637692934109574135377586273354392583708387495356609754514902963471567078943086462546398579226445107847777897332683525477509634860573297652892227869710022047644025085784896754093800905170883239530975858030757037766532423415180075675527320971331406323701361635730747681733767314105938617442593039762298193011122017947234090559759384569711231047161136066188255812235650836565970800765409236385694156347314156585665449869628208822702187002594490096016399869972169644755851092965008987997007174446307596924284434457913679166775352129461929712388684655085697673787535963494145558733998583603632841363575612525945266014662078473716510341638027311047830436199510348726590167991376257791366153177505672906750073588144980375204288274654070149021075951429551519623495467206599466000054267173544369098636890912083153899691092082183413588324072483694988613555212323977870770161508308550306914050657938639475432044009957345958394427620212701902695040169921656150372302490905560077145631917372850597301582540352354738721473762402453909758824208118317555201314062668682115609702944075027136721786250058290458491432207369712495127774755070857601157221737522600494752924513948215422002273404827384742494212638976677050823227410991243363236404127932055750249833148095140603258300475347682324279113572381873624862538970237538418989946577956825652935957520849645577277910159624714322867267970328245348873038373242861020133560847713393323022626568794441543744215118851531255158791294917493188397694183645659893351114652427445966208175981126993190092643649543130983412706283543524336627433315234478585519175252565047938277417645724266782982272033564798095035874382557773227237529888054014064070652777229158730829145718074874565129429897575131109494956815131694338896548606611528028152850963347952325924570997345663313871945755293974779508688349638089911022200772639808093791252270225103843664355922954749544600798092663989491339517201895701964628289962496995022495354949734242588723807227262928371289711125585503728751994675290541968102573897354330954604967860095999816687498304588846792402354292383034444101532947777950370127828042102586445550890484262117987794094000037945366667709368546810546717820347979961294572088458891242603097008502447851463894002622048354312528787533556767162678662516383383846616051575505577136620282440297876991504393732630567028435099841531327219938266492817134989340262930508657463844912113107893823059673822028018492328348691741014408702978759100320168867490855064883599656528742811472251433626877930680118758520545277298003390694527985259536502623483330304825591148868784486995652007454242219322055767733408734517317267527201400316721582839154894035644155265818443587024023995002285037062635391101874161481060080144470688018230803756135861867968789389659330454919788421719142351695057939404308402934777720106957767662927950314235634680400715529349397455801960206747350522674049500193100849491866813184554135315454225074014713932163100158134639555895100856997967462904516859464887201187419178646727344669719758140090298070681577890107210047663869822632604031118727952793100171065369806794574981803904694429712456524114262332872344254829685709214188269230993614507572033700841123899366970246718817181581678265120362005791901671197093729655593562325169330565413176808779503828829313316691986555475089091706355844881501396673427982076638470840086362593528412973642203740037031672089529212699545821964147440831896920015850192226393106208458467413522624777656370283460108691275508066704411542535190566369958779613177102500132464620463921646521743796015316864704306898832153461055986658919630109626493567301202862281093959490311167669099407574899489880873914085160021347791653303422456939358693897948335155954204016210027975954613883396654592135122204889731560773951768536588815709619096952752807585298541397539902835456276482253583721483611400815150596835016058755668338555706538582325271190356556332445789819944312947995875593388378974108608127624503693646628935565965626310761548964006686234865543147576786834535349105410684892927558483002319973091577117450884725833846304958362402636433774453339839538399633147237385358443168739955602204868754748739201393537846968749788248795206271658995865841310760832817998438712737379881418581470087278646958869063153305646691965150566082937831118543576043527405249925136784464896729565273993195456858637311625584436441931324736402077980091240326019753919988116883533724049194918739316461993539465625195939151465656514735257504757290814552198199650060244157913581797499240227970318167430478638570756169368138591107041898398243148150854556742492964477225695622855679059415434478342329168754247536753907020079470147835756151562681761680276399029426575127640234166662677420337320245053958079198891660702570271561157538964709887367463864477620820997261625115475162501229019443925712533383241484298565976995560293954872016698420985588800164742207337890725570931404195267104101410807045467461603629965777777504277068538415515532006966996420935049152413958511124517473177730448136671771760982876735899405326368063067148916539745497962085480907774210270761152036940621743270311194177294342146933109098163753302033899672623550206922968667054034973141029011516346799229448833683385185692469584454667181475692404671379874537963367361845230855302826135224072669311690192716325148320667762695986596401189510853169941959150698395596976021510806119789727030891316458081892524239993173701828566446522861116840704770453800836648226409603358511098950614094719084761854430838600375892174511908120178242757561189546612657108174377482710401999320865672567102828115556099672268494661685747928044026978114267547763309116857402776765913483495673308297499409106102871245824354586833008438484686071824586903399208801418058724470847530192672763282891777842079328359263745976965076523444031704497927818254946141975310860290183451631131159210193222506696879083398355222561013189311705086693794509789185619681225221013115614047198240300181944652367212380234408191772932602378101815067825035853508493180960094829493762933626303274899745818162519357342710163356608178412560858714333342729294749420401537246144118406965148909646131948090509574444021351183902650648720094000489249927778744858414301901099978558881970172114558826035265587061502367785719814628869900659217639570320765790067064743520423612255548842716737352714423191189314971886970862568813374969037061352573603254982184029456909418163357240408157879001403691503811062797146267992235032993277453027134043295569490057770530439660507788123410226105751192568487913305053034711304511730719252568089288232558195433541057174064762337446451760722021707128044120863712768819262657148998693302930758273488135296729705957333932191499490201524746716594106258594509455156185891116469112118818792309123955204261427469912516022814265034907637589232412881494985996374216743570934605336052968351248848592022220824054531150741424505114119938706981912957462296394016535621025162401318683974990940403894451485051000947593907884883097487792308600736862591429659962060116140640536757422243914323524951753799392348219380101337005065199477311764976072397757894677717154717850878190923109117809984076886522685746339473260810752678320339896557138379386151787747374855502209676692742042921096281383833189769877240543418326188168171670394749056817795931912944075038525704066106138516701259157134702636274423904878371527266102993852839968588775519851095966186665350278437067972895674634165302472833472992298768901110458435619941617110367004003223238886305661500549568729941785968612737170409644570126770759107784378256944046958105246962997803171954029170038854115705061003075544186634872373781189846761911001647479497127300155859919272407508176758046314926279109798535435463127738363298518258742085148890900419045585064375364311718705084088742944082695369929448014705446458234480105148282759144365886822641911752252887555743582063718584142255176793222611076789992791362414763088849298657975552978319002411498927976789196851364726531188660768096447965493469983310642836108763516850974971959583829975766812920647710740190611020888688522587222871732980072334338051193221158692262223449886441096050382080170729374025796009734428133901890579319327775206617560684162372232517029683749279444468581584696106797764619517815651604996862965724835515685803485733347434118939689356489406786440672832048446942729478612772291502049499484658180944423043794183370134862161585909587100794538115059955364084832786346745279024658396360154385192672922196696805989197082808737226380772953343160564619280004430863200997482989926208634988862182757870439640817090576430285594389789431109944921499852409303561934715932307711816727249808512593214446927332973985655128606390024111092791012538503505111597827357868910400121438643315817130182939061694639517235351449579522790745270784521348716632591649222099796324701815681323906028777031097247026032290960716178398374992889613468591113687079279711430421293529473922523823610342958499334413487323634744703436262521621360032170246491414026314233171384966685418176971681397844502928978534577760034709919334899450812867362483644712218532804430139328515290742850354848995432809382805253207577181013112014449009682182259511009488955016401865724144748059714538601705944362760857012508622908441337707638284236722541648812621507467309124228279275688896733566332582191941441531163713890955659802482391617757746136820705866247392244929268483956531205353085029272347564074709162639280985325663851869690385531699842756459880315401386801464666394232262322683507906538586608393728815313581095182036063261764810592215695345527646328115271985863416635662519801140096236808686565034595803734333025286627038392229343294325166990391723315065825647157306842345858096587735864367484639106230756790415472007361180489954599894156340835171503480595652604199175045491060454450829830512092221021325567668761968334215225007336321536033072110977370563702248179355798050383793168576891744511444836431145731461885719486458946733266227530552348511640917454912660501031420270362115101249629669294790676194710179924128081257901871458583528958615924448504295002695059084705782865035405901616016119230013051992334105358296705225699674789736658916519529078575198166812089496036121941211162723801257657815987636309343635946739381672802021368381670869651322196960713138203960522965928848999795500114092564442661490889056697803283686883582538976619702270216205172759022791419729718738657790977776545220192269540260374215269495282190165361462145058589488185909872811804370978173112109298377242510877787172252013000609781658415027363604376183681355224132639247400395908404181638706087553098569014769809349473039907488157242256526621215886099946950439734692755241675026672016889166355413783568352769070830158309297786037912547774214098193479277206746730094627485926374372211128300407797384760493543208116984066259590654041771358538474823648427977697253563734164212337030106319058716642912022273001921489915831189235288523450186421995882887790604588353895221656656656028290607393345823139743500648593634461679435792525843220641207989659223044460623816721642762906550662480785743644642196509023844305408137489740609798515433382213931999906356335568470127322138050017815139732708478127121754346143551036545834231840339889961352830352525586995658826982259949807832517253213298242599916830019548447508932691045799873472471845148313369708045233235383445050408451681011436349697111606123874844436262274269295310819723815142500726783412673402144156101709189448398941685272197803370543063378509294479094761778897286900959883595943202284257013033778877573846590417064630748186058890690078951566118578868489929274112884454142184511445546064778926035796876724205569256595231538744648488513857128546708505015391438548929817889150812669249857889169809066805370285862044920550674657104595924484318709276525616601729363759825173129445196514528506404332314706468325342590986599571968981408263981003494054646395094801240603597741868868604858186783085500435099936525017749056785572719121379662177475108985128097690570943339624904921174827208903400448051304251039571145062563161689166562168846831503074447995331205283479567208397102528328729658677496894301561958165534934619902945835141798407356888789481729099449124668456964313662078110191592577448189479042965023027195628036912829139538954416515565672024026641057334837983584770628253832771903370070580168713384905300973482103790803421118340055779788948866852403807876553710035298237222632578124635853328485652903463077647786114368827576658847462441261129106540697620994415611341250258931760802418659452327585617004093042700358624543913146176187410659859567593932571623014040587447269659194951661346771960502085621045790042552997104965907712055814055931712551631276969377343203614219402591354442949405240159144025163371202069087227185357940066281719708102470491817849669032120214764945527110961453844504188774866753106932897413802217723724937226952660441893744604706676121871820124600613862478089357443303475047008092288431385962053283469724999334475023744261641001910202958493733357120755734042899361882157000641403625245606900286510126505453033757604354345993090599677286757601500657532490890003397065820811313700875310753169815132013085146717670683534252146072932234129584154783978326548387959111420254134370056048979371132191659211751471921994000061908582641458759446715616515619071973238949590400328910465826856710282323693147876717635873337736874291379339113784767711657693004948568997413748042924999274210295927771190011473050899499533897543561671931347377123508792395334325033106941301461198673760984800113692786438072896448772524662234040394597096998038638648446220854201232509712938149731248927300675665420854677988758941132909856462086978520632692043449959669865188048657161879992511350862697151888608351077623136387483129301032635251333500171204795412998527417205835441079241531038546358649932401590454065005917410109148009388850843081243261512405500658079006213220386252892181092086696677983779306396342147874859185588138527588211316955320738135760415949892626718727023313406659364938381191792130303765161340144855087236037632995931612774239086638913147327999667891561054202739747409735223860566468925653011004969937277502741888195320477606542215542572602073474835485033148374892504757100807737133421997340955840825464660731165287636833208134967755084016327770403447075469413799886121827607690699546911004025779079890213875307243335901368721819099382549082032504065479387809931209334244200918816303545519367554286499407363884464908387475499849626421365155224746325810011897549842390470231325362040036995259465732872867675463576872540404971050938423605766166676878643258965153645086014172110851601273026224550948658222473139159716482037604147552435747572130377436897462316915315377945185888681729542937767427591120792689352176170909500026269388045701931547215818929350326427600149996878637320164739803364891816263020765771183684950593232543036817923653117556011094318958158854721768407858397931181294665868936045038101578843826652053867863290144185945605817359664811116231167495406294330307123902325133778324004862164941413745221605172881083847572858285233854113117822607122937417604977063280748306609718708214689123457173671622326033184791854247204911910100462871659657472557142871278967796884874286217860042870488570790152327886084971904263307330375181182793093681914394514797504115775666890042878392429285961989226764003161919237841538088730427257900091741480015687447231899818081560563317681794741987009253803919221513714913621048612204864673742386427374684178186333421148453456416566684491817820273055419450290638038820221570312759777698376299560303813397611788088514687887976906411987235677517951351668257535484847532189917983485873653335972436974301132704847264982144951632133166242018299929529504177699709434556637515663448076325692042252351121544923456418449846341449277947052827477624308435106744228966247178931284046797223992989175896765297352874526362516432990167815643598947837438509806038038163168585086387965863325047341617546579081279319810024089277821966566180645165093427273881705017969475480645674247952544654950289785362875822798170621303221211451171868348698452379473264721423452866379675603949137009247499239154034618400001637649343399758940774329797838804536292073086169889382977396859692602787277147920971234852167403585678223480115200263789156908386915160990210263594082866978458122982838055951647298576823729102552955715679935926151326834922963445901547033629900521368357720850149571996811711467587141056285615877618600523491287060833126346035808638604077517746184380286373308953203517001061305382983603726262211567519520789815817164688320427298942558137340175234336753419567184637107859334418616038953464168176129456149627143469921927119951324079793606787904112234226902046280593333906631196864036743282840567556450708374811615533609660767685810898743284314903950287616632581651523689278473002850450721322407257016898106445675552507457232110980783958447204820331611320089605565890623174889860198284941285850426549443269005377824011830753733814884640339946773439891292035707647243948739115381193737456913723314601147897325451203271655807002288143096147594528738488753167393634684818568951995134672914749068990140730312492166627554642982892816393804470728674876938779107975167129433835487676032975343499972416671578844020163085921347367689830388210411401263385868672091129413770982404430212097489712813190297998852656344481435019773036276044088133848030795697140806954914562228039222305080296358758074115198076240085636905486904305197468534577667638624648321049348718576881463082622807512383007344563289587478146239424102576566573036703249589183482988506788777841297180910675837423160314137986896211830488071939516264405116936958770826601143026160156202476020978651250091291089803386117169832261469043458431696442631869529859981060440675007190198512396210468635749389283053140264422829720666092009617391060696195713184976792210463260397723471356855235413232757078589233586775695155353677939298334724778716430445690653931361876873739890277072823659042539720725993864408263826161941175020861365023469162716827951159721414378672478898627915215287313518614295734573058223551194853531835477943183211676845512861705151142112856277539708988331085640071980481037145187075256455016592080863348541177532093089520610650870184057258604690761889062974513090849755114785399298615663939280082604390357254283725891460157179170002791070717627063623097587504934495755009465942853939134735223999031904468130460360431662556888868350564115600514416431236205136598182494200017556110747903969630471194637933742537622871418714723774542905384540513389692140781459450682688776852704706896013881620876802232663909047567552171630362099713361599670846598933272131653379916656554051467829844834511494274804792462919354479544589140403593557809052762968724263702940919287785707153448216736712297405638799920365751017032077286677157566352350021752167525712925219406462109512368167448967790982384500767260828960376734854857449909006570165891381007061607891681451099051761895041299275916246180943184413009238936489793923131845562047307708979563582901414833234398656476081673067316048919148352512502064356263592000497250443247380619562763740596994789658424231771833700449962916816182695215616006403758391405237827739406166574180058434131280886846395474226122241571348445068355773418732746489482120343044085662367451502346006641285717719373991426323702639768534013824957839386498606659722264196847385631534274498294597880650925320910389060937100080128040623030445926210492017772985580353105879398063274873669323514543017804979761714442561665107072101031920586582705206753479589095131898917509561362543836220628808795757107559324998577756592797793830080879643419077944738856277403189221496284515192205266872615242677315691942219888958784890330503996782930513748665757626029063517794842652786658703437509821738218999487708061661118371908110752530843480362192782408670388687573885293087473691433839580350817988502384813954382115767797875896896087355721641676620448340752027346943526306254918430443530658531068728286835303797814646366386521831140876939644775503034732290285626572398510850021038696552386587747015109671177383121348334614096243370158243598837284901919226658902124623462832183399757797568563933656253271190030667417686325133478477571587531382732011111165279005516273241847406019237667069080400668023440444604382828176861126995769269594405478889200282444270544734531546018770747344924919768430810115572025285451780589224557410415114826398633862062795408274314627465806441004331913453282395391288445814991135826863855035624344681023029630757600087199257035884939319445646969420672305211640878469614747846061840653590615104294569805999408225802309869765154250130437872806515876688234691621036885507646451387998822808766037351803402509603678197629291087703287442099569504503901336454866972834773213424473124150687400061729521595529204926338429687604067690766006047329779127420712842956335463392933512633674691362057022603122479564840869881093540435080351242491660411543671860436926649881658925328046689985524859839802611154810072177511747369296824428603904716087980926786874374133270535296187368320681182306530703452990092369195420405898525328741899308293469904218389022459944868769838997896045774375536243013874245234654812592044842423455511776027165539773970274273873720167584811255620489638051727480043846307894081353930514600099582496988498839208489156953714518602390189300078408394816083139303763748802837143773244247865687392239590102825323473303533100344765700596988557340523588526280403904968087166398355076497427894725205071674987043770918067672993658026987419373446385469529308638238052450851193770173504456640697176084079526071491578518418531819611856461115962168714498692089349364487099893926462017724621047041116616803836654139873354308468070121272992078693223392946387040691349220169902698332773452981396810776032164123459748986251682506319826571481938706818954262442486978453859141264632669882005248581057435541871440819190667447533859182810814355908124968940572186111740501804160106655352956851789273303695541825837799286931695771300604334443428722052162965993220253859861614548787463977676049746714076103867404230445842674417123105820064857664129021225950650372574912157430082149238441003429862677661469125332056920620662929587220576070238363370683549228239829578596945360753623914829874502880736799212703463447398588333825990078200889269347558669368477100128631878114969548046380821929644488533314390057865123936719778740443247638813108420025400411705886515209046945263228026525933853550473690432805661477511661556897534528724981416308847767213001893337690535266019784254199806385573441926594133774941557429555845040879027576611232503492219634340508033353187597025672092792360472091470019593523707066070997181978772719283820190258596089465674936829914686741426727324910718180412660419864488971013813598904988233061337748628112198554861304503536632198083279938218949943219167888016911129302955286442374607806602039225414599264169732757311990937570865943516583996655885478066198645776523006987679871429116115294686803050189002529627575047731734863141626783722135366758374547957018231638782755287726523867387128612619252441831349367699543365860412654904020788448878156696054009454392466046141523405107723730276234406558899455454277650181063713102483275939323049834877536016750492973170316730910199275601814172840136003190654052647842783970088852405121537281408138344098788375727039876128366638574877760528545953269184587262848284517104927507702341071112730499971889413305939593110332049294838562349145421525498757898143556978608411017097475210393436139002964792038336788144543288722874094246902980050359755384839393147959964894737583470635876076802003893445144911667362625745823690351565456768326436268939784937175694837449885276343128337928106360040704605854314685290647860023489902734803387317152165986735169551644066161624280231681549935532944164660456787680979312730388950110138159609752908810225719312404376057239807116853521610616172317532668412805353274538113356481372006775376837194567954805795554446784409974316914586750086486649519720686473942869055629240033370102971754881442953913905246225323913834947119223200354103002413167824857377553399114409521510034119149688190033967620786440010348351233740494901075595234797929232668504876823039817423971811198495298551540216162836558091270247759719070332169763611882401920389459111626264705534348382999766252932699659404490622032312309192546463767523269930313750167138104298174539739475485301339021671153693858103536711628928184406146807422331592495720379985066466535618781139208250463267756828674677399829435121031866730136486805457914947098373586425519783358704711111050368806188619355273452827851625990092695231197198290669154430202197415301994121372847681068631574791149581562414604240843041464173338144049923592557130721360029392929466766480976297523438198362188224752656655860602413292337177272110483459421698779911887594991097940497868349452805002162586245110309647612097234458144870671933686425314423140868862043199165750825492782490451931168324223192090554991312163727803133835399390851767902263975015115993124898422444320138169762753524379339945239661003978762517146815698999044337151206513316685928672912101425360044720041661832056804903178622997934953677830774218631691210128755116318687469905911636752762573877082635021303659155177926311918840116155303258925707298432734802788011555798817113131043303650554478601129386407384168805953776330761208524388365255995554812873935631028101362909648231119459764977602393688113315130040181481073734348306342367203205215259527672125871445633083487832639326980838032402626577204121077459683521355390144510469377661533130094410604818451283516951067235851966245973241456936672312097443610450889982857781839420127671718558302669996821967169233081621356467350660024918761227558338258614485265836678757707916308762573239940513691036511498737339127568721137112402328319216877062782119099741054771704460126235348292013209662165095272462506118384479139581985338839188656549667673824898970760074617224194829817078452217024315014954340690018994367789121015422401178831645535896327763563047697460173565124148469474917396824166759946553457881357336608045483662532024624184110282773039218199184235929797937683029525441893433632457715802192688113733676763785048919431049655477217820512931879962491407007742537952603664817359372810289283713607676316273168222794582135715063051759963912597277303538393813693001669507428202059594526387737835872851009089808767484950238663005811036603431365341520942562146400138920877849216337600016324595205760015351736679169065199821559717932903276090807443030397411512697431979556193230686338159914271465592367057781988346888546020404133591864954417178556052738580883849407266477207923215053204484456304409380950582337359437161920191812616451167625111131161468208777025742004275536626948959447350860964088656823200126383337930168034048840334540112626139447791045026672283128892531703149773279146213201248837787788486122118588947050411311577918351170278380901847574142127584574094435620801709966486686056295987061712959675027917286684060432604714106288681571894456989161110677885431481658720075032882245765545893098691570154916624030715707483865805747555149369778453765853010644235949811892007329160469097181828152642959083189716935045097107107557340932475687649530841578032498142889259289433173830149526204860098773754138260103414002609059104506711085623279629859340412998003885582742502063042440589406006142059738409856619671799158985069016713751293719579529946678192287612405175199398516996680415224907397201232551067000841135905515876964347951187461550202536387558418236003796558266845675793461724693184797462833278788896030142417618552508801146580947370409896283884452776189815662554868263712497545863047485215728085575031327827852409530857759679492254426545383974855047532251012230086697110849627179365567862686120195823873974504470232697054677575825210284488760393065536152509953972262175198535274030978186928074022215038010309392781106011704723417437369053839467417224792836250076900907702067215189281089960415644867399130231044138712858555993174919562642240703630971389032398222031009903081156759317122789613796639231222253863742321881310616328024377156723061075441877561476482175435686878408102225270852715876602076686598333599475500392469064588763680576702582632353519937151830635254521410157437485760164001655144213331218852359530668133376485612480533248735837922895111229054782109271242251546721979070428616049804105843032528755336141900792522234018310800857049176886102652430105286803846041273872277849393200921778514728800789054788542322174196101565279638488167282539921119224304465635698165668379325126890300210639184543578825409920726214325126306756607337232270595824847152604351271597846383534285154532670901593462386702137261836493000520707369657554836897763014900803396758823884881180113047658109787569798444537612612973084075787803211239332165286217867069644667117879654346242652165893035745627475689876933614259508973962564609337641287445443827350176648523204288152288546774026279102246707218009689650799919078037833340338413798263292148596336085538441272090399096782604125809664934997850217333327756926846909944773069023945051766071271736919006044681463812698251515254526290782287957292127554163738935813560216342133204340314909688716414512626504380774532086597950725313502169322600684890316598185235037775031578364513558407658161949989831929281499981376039843962303208405084806080537745995749359945223252601543071465002193081578253070589344971680540904456582555478043322232056405912482609026392313621734036539911141024810014605095364005731967634454452803820628882886855229247184355668413556418220893220279965350776493753505708419920089407762929568097920491729455874077989990829827901458146372729803141006437392621937845560700341040733360388620217413136801331989366472409162192328453165432221158556096604544739578532300822482482415489640628270284377305210427479593540823508776046089869152348863090481801331506744698458079491209958047279342324480847919377332380694280723924344295626345778237031018861889367461913751853856343872660729331298745685664301239790151298681787885807128933720102811235664091616183204823969935303803562830437800554141239174523414763007926263154540621293602429739908554651487105496878245537621186051804246103710578714971548433262726014732826945518365478925649024073373181897100200161433570670972945766948147839502514956801306568870369818729483900116955439973920398572010894686543674364587590400211835474558936353113283847550415968135475492367907860908155370193081390792551362987358254882355486409067011893998302627087606590758062638198426122512997312997087639990310087414446547292266152387882115585116098200007249283325394978599497354037596530578978149997353526939660413970892902091803419015903420064520342098497870681744073842114017074491988440944211113706055418720560749066381137387991469434401580883589532003756888400489982347372402965835128042754937987898165408727861816034412103317551291450846246309755070627879437281333504534409040069096876540717235462756310328500215778963523562171125562412203674423090538770794026543122772020622281390146134927743069299868598437229748857141320350694463554870170707735622532390960607931440728904199990780676816238208173984078076166823625699193691976310776312017443633790662874020691528237010984676786466379412417985772100330585490589753685705864382420918404558978982556472411399093422956146000203657318800875295290873840484365873541979042017431474076174765510822623784091367634826895162792475985894773422027428514541029821220371380454826296687408188936618787351643443908909922707037526790491441938508868332410970383307877398543621081407450785423495104633765788964647280354133683983808377725302366780326840231801155029180660868014207772820985156563318643069468565278744798061280637989075056009943427310169256492379391209952875077594447864140861116293878615744701349865082143739579946366939366240813727103894175972221580675334427912400168542718809335843042438810365668009788915914687160710773129890754977073531075781959827498797985912087791215696202588782877084618978647025143074317146118461071469649304907350054438753393440318668231293727506471165320322743563239966733100838174832312860489521783769746267653736749070590470185539923371017248453811906405836717306586299617426552052492897341974277950134099522074692140137432000747496125551288072494719309378132299403074162565871817451962465997468776308328327847758278259133274116898900088535134517446083974083585192881237470562983263349315283448715553903527408998395361240925944046065434728963118566032692402354217913202399888906153216374571455566136243676765536927635392031629159105345846286738683763311554352835560097786445079571108281165052411798680647990305019291057730371618432699775380982270092658332095798307491462119147077358807487636507528167241137912817960810575600848200350306419734315049928557656517719978329810749398489851624614623123330339372292841087857139144412449632768891604722824594415659172669305947460814504741909721069701143163084886108258083133539563235554493875171580407740109442256084271576770244648893934278632977489175311672495458792590048961130735510744390856754797992449777580065487982090725939864636139074150828869462843224740554979716589472476521865507513005971210783614519409232560702026158529023068626138977936559231059337998414758382446543038331367711573971221707743631756731288400679139522991963450355864760736867427904257372616936513216929816665121585894907134997707410279487581333363695206641186685510988359419927383774157523156342003940570055688890435093091749727624189390723978619541958309146324120452402516253362735410567012125390863283651218534941485181298648787509488877752007014055261939668816223534854287643230852893919043674856153191495112713796136682167850158720095160383627266153356194792441031404367356248945187082927592925899498127893640033391278351452853298882533193188376423748720222170679875745521203860340593763619353615268963400308776817242713910264485749846067779641810921473354342502822314537678223868848156534713225342650286788759338347344521868802156281908534602394457093226408468333805251187006397642901189280984025156444115437002694152973613396043807996110499857524701242991378552912687477869660717847146478723034818404511860204038185302792807955783797410180260900121967962750529446681987010986322692453056900441088368340941256268080035163331703313795073597017856766915372055837756786528157616735511266703613989315189808287139967849260465727515100258928729288653915935674550470764681769513408908621801480429124144313468282226234220693383470410425729180142838232839765504829389837995947392456571941049840253030363294504665887889368982631865020786586055189287424861883257249472299738823870591102172422091879970357511730303046386170262686507566802482322039787661428520178593898233042816761909837017866099597801648617674673307351161631186364110513488210586000092919162270304786568003881932496390005371883488933409273377782622668126090934735622083283529029808107280010861465264700287848583938307104781164150163388526930242455744496303051104574415931338581444196865484856532689211395470133107951600867588011518069897164716169602983539639208173215824826342738033709129631674349424522207937979535336162436550652424918376674468298280661943202047013524860852432701934301982757803508365789294078690939582613472892357415711674917182152744464344586829960937018387821462590724397463606366115804643074511116289715893325495007598637935990806261229085543666729340319483118318757061920282316833693569027900079610191844884025999256465727822263670032887000705668337055815642870111383589440531401358563070915321127123223481596038778264867033492295934212959562440945949351246520332221878691482204818925803281796182446619729430461035206636943134479415261821278213496576963084318195201942688661050166674865589487345864416185891415799488712383721000777689725634423922057369508431396113151156377977331925658802816982736182133382527183771855887026810830115411935824523241961118288087936356046141568102088632943649721935173794364292532861982764433510969289838137329245537836529099769992566419543690748874209748247622511197458589796742636028975105387737474673837278540147529287356233531913119810698837755043404658138541761466927273738226839049948116698294726594068475405849123258771138388318338380637437145930644480441638073450555190391222428589095627251573989445058829401816966194513536215963843349803464014116377117724895386142097329517350973337051157105006819591659512987352673858439159035219332614996725336034518501542497101229603680411224484063010738842003311088540517817521476535765681274668809287834739614488425322931572113130874095723125934521130155604951956593268297787961617730097654571557509878438278420062981556571812950806881724818120836466657350241091301835448458002595278715111269215076675114629906518168870092251284004172792062976599476459732755521780731066651304835803236411825659783899500307372645083803834482518830568183935508203976920259481076992779351424110611579017814986590847503191242644726016893137296707343035286496125604903182968526967665892983969344577818221430493661081569462025536163419107066152476966100859302848630476032779104317199026037886728635417848575944891843422931595187510394868390312904595862927582496436340854912382406452787250122120941602083953725686361385636915448779824333860878185624582907909231165284839969043280434550409672171704666804423233449143969116042329864715951835036132676448269095790020129485818324680310246998011441128164413933930299671104435697792607127437667252100474991370049658683915991306116106324453953847083606032777562974575946880500106292565131689270987424124471460594205581845728112717191355398535144009290588554890514226840831866272992117120844207644078055888233030745092553686007014405460614116919923031811867418875944327916872938854367361973823094097309099280795281349114566229036576679909518540786203742576328781285920902671024187723740823462431390151970287644525790647498679282120850193423386672811360042812505112799418043462233556643941691352413543847406755944291530742722474061772800013788343811632788409333410874128075458607863978391882752195483362117205648224174439065559318263622122775850419795387358012780889804658065957216949140411633366549225397542963393434319565934165916765737403926603365647430678391222033137554898607283557233943276167144268469546981840441198764328937201368371324204659455647714597858762851954642409311047801262399783584541263620314292165577714617998106328905565636462182346302916272674872375731356742374851814645458115270459826432255316282909213338685567619761198788853367070262567116929858544253604045322661182469154909753270759166796600676266670220776277712089642339739087002958474715199904630887211156649508306448250878256383758945402560939553502433898017558259933561735803762833429579413614208998993978741139454192149214199224853395668887090878703079037195500939788949287948459049142707499999311207278598746324787438899585430700721930150312690028111563628086569766959127626624479120557911538603102983191011909785003094332648615488633061016948296807025522816261044406073779710615100600042025799798106368075318943073961306034941852496231466053327749450176991152093213405383791184604925842013893230846052552780943116274277306626267927531729440425006027482462531122185760268949599283132359656422370630576788378548634830365369729664309521349322968098252635329326126388086146099417354341286954480486045651311134739147909609819106668064636068182635102626693293913927163374764007567913915916340359530810241604054403150641538684309597822019110638296079704650157538893641837461638421043172869692054260589958155549396451284541831763913434185953661709003293853233380110981302882572310718235287862153391880676602677492104574285921394224082461046895155256905646980912305157842608780290611367510212561622827451370310983521405640745481672961791997263767878832078796042629229248184173685055023424140458671921260237574654502786222173226295110919179742838438562164741201362206921306560966051211107910274941410363708300404738254195634877570761993299498174468981271601049636367813974021131728459675130809208109894930670737830940799403932230737096052653215791996949395358911807292818928931307643051161456006704775150747085238611107770375738804720966963253281735203786649241348434327165703973473099962833326890502713978301510882096026076409117754812861290815716974231571725368690596599929469469539854498248656008487790004258097136447477516706458966800716080057486261903227241746647056370115943362053861095688256952078134663404674681590726319422599866596050141439601964609633787116230470388627903726508002928083115204093040817766724611474045987845494056081475315057291405554353731965158079514657908424814056687224707999945733453410077090022250392180396914410748990628742345829237155120727809970271067028156722701030775659962709783352769434656321596466825502070959141151961809830606872997639807224983834334514720729320073146741493598778000054005475801807528725865845180172077780223807793100025136999510658700035537122100375441377014544662815774414906461966765787033177911301453451842356134272811316554273920432418198558897835668232423666171852171653932772125558388864340155807932571806578012524667084880630114704673921125625209976275984264836798085550092531083907163756967429363356822163732950375285027799269992280275390843833587197082387951085193377859067778544190099141973855981465879821746187358789583692482389522954271219386794577773607883251622260850960085596774145057327232299750880971851460624838480432344134955098420139583179218678707849426713261311602115840609208510183224998918740421732961719117813506953477538449685378227190909843831959902228630645205711186681319447229559440746057293369729586294940087031372309317894406734448795604001302861006953366978729238379708374008438198855118798821661900814704216180429915410341456757078128941395303748000744199961140849197907278565169692258317997877240851450997444674544908179200570110243430188532234653589990306609964739477943752172500380438807011554455752401058349104386769692839284346333888715851814514188659425143455118173154998152516982243341987524349897791337689741123965586935659471511259631277399130811781672433768889374996563983259588521497446145205485839552742636513430308629856735655952960775281242633243663854556544830554051658375176366591732581447137957988246372652511945329608941064009281620949130492581333350164804793247453051085319523985950332395848585636834888682064153208008954018656624369463857350321674666126814801362928137617798712043639032767251496131748309854996002057333108797594418548035948013287812030411112879669014227221174632073962768568599532565366918118722401817702430304044324992282357382937249493072972101723874276555657679904605733214299389774964314571029345000418226012211345798935707729142108703104151724394095167833854008229079713195716226297801786195099258838876660580967335084993533527170232813156071233728104439540331828015070650383179661093373964278939139803399145218948900785276019976755657040784570441910743440535909048369097316968253991084081205665695335236753870493185079051736959527139006793438379603198014439561724585887889862566538832097493897272234353762771768148786125901995761979341473015278759150357739584006029126567650790818597960733069722480200542471913882749037434454805170814055670224377670240988358512550612565688675861231570521567400227963090748439374270568756571147418549719874255888015071110940384334399041489892173457517073345322050427613138898325774210765070625305466125816159519101139587372771423493619725434530734303669842606604291357523474361520540331098456710269365809669074379222441112424611584343130572805876592436534114252796287119422142718128441769076689115376207526828153497983473471516388642307357864052424204426553574287368191294607713729962054762165934804635125848150130734218675353067271373591628578902248196489303711478672543203433466495644726204227225937155827338054164236501204953934736461646169929419923364527274268074933983373075536168934105944285882798251101606810149661304835329132020268914947523828808291381410756503311379773487098773054169999967358531322044288656411181950017447387340124416500028360461521902308506351801642479658106514377942983426007698322358929331339057824728947893035180623869151171478363981600774210335944520467671914146484275303655061339124036710806175717467160145179508379743649530968689726635962031205918985001416075752129955175275463941555653455231009846695816884787723947818656845482364093211588688224297783046389734006669202818057802989135247774447891783324357172507285919395979724606193542359527589884090662845436606735184990451737109027148936973188156949194537521179496357371728901078604824462434819848556973083555362064466550604545124431658573386648682854751904530774349340472187169243103640250315929185371242304663640129724574612843613882184687508030662538547532326002455660279954248502561819552276904623423184465904274164654159683920321516884820201931826085635316682864159188261698378157224026729667000823122238040831623601625863401027352217086964537446552093578390439249412707817529675778868770825521626872907224993034237240073503699435745369374336088880735555092187391902057108062249215657184037931475694648592373017646132545147587197499982753203280624405737967871989037578951626631235944523239615555551830900662303889543574416346991296618256649407361165541215147084451335215303018515148582690790623239094196522553728099288352352453935410058602341648960758699476308981909122777738156251253406755179608009209877548962930711082780408632900755092233990564794740983438498489649594806538684359088282369436037963222245513884162506587411618830946422798371238782084143176489747710731785600341000293381288551562836772419268266112371356801701608824634319381988452596769141949552188623400099748663918739941015343983920823437570161837117402972944695502396757642391757892425019854524231140922490196746846415723303040221378746287404397558658598538559453842800516372770740602818116060627468608462651429441086461214677916421155926957120324899414696098712239918925280718052662561265031863573237038536854280796127561188898522873417142878825713260733951565765747830778956071573823197909588258869177185084369220877359347825809404681451697621326930501964649318823476675490586110596915107296381038226011619280551933746649889879746996671002189943824158693135460795878204259544813520550067245311788631744163828780367481050563039968157315169891613124810089093015690354514509352276083560420799115381286100615239127124075366867828445282174700495708115122599946715417829147262581583403644798534000642398731370857351610190685175373904993809113109751383797601242336943724441427416590891928868697797023434339612482271316594557596213966852979460476411770177114052966689269405876224181496793753635970894590239738427182925810869838323061706194462877195455143633580578086024830584324784205087424978314937216220401054109480687145097922637659211094179550009493523102167655752022865961894313968452144890425415159560846486524883423046247676298060747372642687677830663404357942339175796737279619056918115188686906017685396875870366862872816993573985574657932236692440000977934309557248454664534453922706776439439019111718640699042171719579701008232509707659783799152968216974476095859464113372186008504823506063304578539757782706603968942314627158835738800115490566056279127564338807811512301808638356907767932437201378757639778224932786092940716313707904414483947755198952837337197249305739072522155644119092147751851073547722930265664623895512226072215321684477479106297962175907671089568149874441282803376029694880630900044082344740974400494646297778025775962052217606412545202019370916092701658875340338260705283047937955150300585687213667226662048621154332044274492668694287096429534496406388260938785160257528154428713933739285761509551551670354011425515152845021728645655166820886309151913391719664570720695252618568247488325744535653359885797421796955380726981857534467903699192635373621112432204632647181314105883370690830058198421705036022578887446200258613123760491591960701528992027400917798777694622697366091286326137005271965549309483988345668667475575658412028237257568229048703319025398478153112532194650834359036454639492334332881718953345736784933021027562445601445962109167653354131104722742268570973331399680239903140178629750231799559331824518337855494032404946297364436209234694010765559502665733566153520756604243156753857060155994327539589349665653485521998386067337535626947556534062982134344688281795465300071158849674978810730612528075165093919184869879496711260940378153216825304771268410952171044415158267994925580752857762427597342053831716479725574788343576133299057330742482034437804936139222954654437032437022106603837282434272396648834013572614429141775488579561687389896069501810953258825803799786098428656703885276705791518797208107409567383367061684768526245526083485488089048726974214712037108192729640838055611181893862375721288047560207337657356850672888031800216989281949403200450586066193647923141530687146671108931584514213606070308915461394985624951864675706431224787196958538223808222140290968941744572055089482438151566588153622222879368476949015732142489248185264285400772487379805187429317801263841991997105227439016671046046464467936279969481598310998484215691035325825994149381869132572245401156646755634402227088708276791920368241745020988160543348854351958241239069626965421858991297466524561025891632902942279104269275012929664198844220495041048149765361906790401533590109969043548873168769071001810118799549293178270486170807623448047056458112051033610314453055307458846761823468224211540155218947955069848729000406767345643233333034288350180169694532823934448759275335301587252398747680442413294502859955024396274744500114417812899000722123624821428706508502132612548793995470204752087727766657954455798887437951441338543350945996802348801962649876190950064530263578523534068744756828801034310372741497584815124033113681684012543978575484522046715000811380991988691633681361416116778022811492698320915309359074848987842938711685913090478976751019879126246851020827262301402659661975932140500738079668476514742002719099788842794112732490832790026834344995904802793200328366200985978582232057106842602621021861663640636602306123245341516177562477263960766773352754614251848087627180543221750436196169856403271398321615908429445514440148786429466417794660259132766370112064792371586981886361165469101224143344287642365669089988111576652882195085011577664530467340790647021704300304721460109868281508780730174118355443219225725684657385907331937187952479129499416400764453913279198008263974979163919194210832354394118052952482323157366401011190377560408530863392214096303453528989720217258174745198950343078945054373229294525262185224040706486473370852254222606439766521566362752177173483880363910981709847680653266723562018460441697095061133221141150204306921192197775577724633016400118631859609407696622810831730164127617036387789093708877196252170457554938171575086198558072041491395944881294141431341852259336169827520909174231542173129969202595708609696761025010263344556870573473680459757809938230465824209120676867184729647156201856626633037589777373080293929965722084822683025874308905176695726090118489502586682375904708921391626998955577279400509453472252997283749182723500987926426911604240012832980497539056539309178245048471742290803974877889011014932063672472659068864173340086947942545147581608983953813890741333413040630064654728562960502357054860953573685023842602170186098569700321279071541159305680278579602525124501946193364803916919655163449384465215896662917571395507661059969398286136116434444618983234034755407956985045685497786558390280505552361819880155333035163125362749614658957787804112057800558433557966642570747008799060809296659038560471976592291951784337812467623776483464108503975050055721892260681525966573382892023889002410419060984811653182783416431567539859170802234532443226341213528221402798852640542201929169475637491625549251397219142858852839260971464002322032790621674946926295411105496292344537270746355929038021574565753199022184793945958989746105445081160090403199905623994646230179561950970887072701616134708936938057721053282396092572971955675586799377212425959889287251670220624247582102212144753658640994506209876455354200994410895168206531031121532522090099761635216563128795210806510472231682488648656304417577051283876613526074540294425609529750852432047320784964250276673761723263646740644703841211996246058986593554599102061717494459461623907646701799512444681695311333445723688163435155278531748723674210995244821536185284683092875503778757786406507425188986750228271341423333587371936262746554962546201265071692798494987174174159859946918817424212137543029065368112713284943895832654786611001498035712011252146136233049576492439029187059863853479043669226290678304763377624054733192075195388281145452345263739002289559500036729807526172617185429890512910335986210084820415223312389249099811349768340708493551418534245586358516134598371166061184376636988779664145219529297347151011756220742109487449427368415711962356219802737543232292720690884411474298015868505484821932782385103565308388812947696133555161651663159523581738552064415786882483739240978683578591976236088124556721330528502835907452491122832900747144383509767339021687967877926018240907657154825710191736591620909195921176151548249094307140793633412423373671597378338072958409862291974989361164088506475071187930353752055191944463127170076238062222811680245898521054692247680833473456067750408509819628741733665139562532518926437631063859731451025669384338425163585411534005877275347879653767174744592192018046138015273064383345600550322099559355431330090097591527400732571216907672401459728524798216363018946965782600087249862462270978189933480388668249639527004885760152201029763436842170500029754569371228857402726188968752264072817082904365895563416298693667982894516039302018259745339621035294597547206795386542944776209110644815726029059710499790759186482434164131176067282119927399156566068297615960649648436893824913084709288543827865795612867928906716702829066924018739769239423614142380533283938130360695072046333467319482953871106155653629750921491865112297351283645460730183671577292303505386692109154784728733704736046254808553684011458934868856204658603093031465353857208071719454445788717925510728156884113656973398037396035506606911624020884156636115578690831710546576368294150216527615565696790916468123028485678792513470545322896610761766545511734727776025696450734386983802086017505430993860798332846750769010457000588765234827752938541380367285614628343203058584658838660843691994063504631181030090374028770431120345115568414287367006592741350886167964588952016311205210871143156312404181407175692277507076974587050510222171349806173334800544018892551255554611226762039136435424466400543756586627599871239732728803768188013266369721762816854073047098855522507592172733957276034392462291693756840299647120815007840267673320084750495700943308712967418126696527506911680357050478590496690756054214891118843485428428217618783283046801248053104183839111254344852021832569730493213883467831248806924657652583436036336120991219013910587008145495697481646468785301311536251335021800419167181384442945517447599763881347431078715337933107004098896388219656661788464469020494846944603054367122484468417172990337261907320031184519241182508389745985279579404377355653377296254410467664390579106355105879525109070768465158628379742329476711775080042010572932761272624273728565093209675196261196976887357144694382624931054515912792049671084108549845127740476288883516547016162296947767316864888641672228983665098931922311126018365250425486906140469586743516091480093524760859905508263854044295698809495984272662054512216003128987909468943111239607940259571606588310723420717730575460410087996139110492396425378284749939218471206778664771727735505637265233146213297716726663242372976041122050774788530268874230639136252227217496006355583912921770981756441214481597615026144647479885561316471214072403653144981428574487977087280292353961663944782766130964924192924293511421161710243796432010522479570212121639061680806567287961868958692543215972437841416789370500844483042162172878634449976215420229872607061496442933029676555516744155639536489892003577085133987655948172226132119863304578530703170015981551701295783014308034377195618343163445155599813385252161970222301987101653857180624298930566800657652380671197345620835802545472667835229726922548595490765456799864364146615816882926492066888379464791870372531575708305753831320469706524751907566978505347800024530314979965822841930156172702528183943126268852150830027361268380600652909719604804407944786678420928287646561192416175188983148850605157645671364237748838955058897618694744547022137020986382808990590906035041610464258345712364804353141849522028844238095922159770120744901567067482100809187443543988540800907055873447450502100011365122644511426747990832535015091606033471653324665796905459400867758017123949165692733841235377998643156045313321955228716049188898137934855899398495016564713747369407929211341077518650337264109579522327512854829879144373903667853681083899729740100035566288973734650726641901100680372631717792117031957291164670932620437871831434131667885670909767993879744565807535200754225982068666940549020827796822331011933052662118060567712455327864189912799134250395361751684068564976778596861591114412380153829423856769284137301168081284684366956950087263239705689482059812414728534766650665371084033361080728730744694378341075097488534367805875962255786480384837158462871654989112709207510579148573970880910827421822007234042389820513468902747352141886860260831435423639331825979888240713216624256675486895577777622354829544138667008846544718853304063278065536846869297276315972803786521317000712830708615220587544312502406316316741206042896622648600813611807520774157745624378534896726600303350622447356734097537853080576882462773154661489128702928727618222600441506238107020750674953649668934988923809214488727508088303594007371047042040782188383735679605755629068327782342271513808329152554981036565458550869972067720000236699855127301595755891644637919900834401342497881811772694181950811751818556597142910456789052222949346617737366223592103540651182487109518826133048537670112559494388270121724498594273991213135707620445037453125701372937618248843312463491055268133960427098891797699486657295182573568131254291282304235489944416122288815816590779380906349396481322443389746631786137033521544545241800608950471892587360191180383039390172978265458405278670923925486277105788393779679515296565198643701451091578330189405227925020864897635974179314813229791881534027513347026873922910847382254420140261314245502964224821939302196279974303301804392157449821394428190496930804944818911743645494307353808282412628173152859956139110021569347622208456483059048366813335606207196364789015370064267547197214058978285157821585426708572714219928690555307153916752578392187713277482379090816266649392790664963119570864478527861331883540379827204795939923125485377058718716755150755512049898756470779752101109025321869137289364750770345294330396386192097673656151753865003453722351125098651711059518787439195041288376436635544997089145596444711228938230226144426914467530307730652712671003026653801377864890579547634357931169401460135780966869899947732812322428701135290098654882106686064612041558971969561855478020224789515071463984066330686065872101421705064350548729959849707661325588050486730464424554391092512541812502039492982572022252821344405341316476706794477461177996850962715029949686107471229018591749885983520007205955021835137098620366323718089864553545004216068832406754675652198631464603871319924438194428581979960576448127485248161789365822398427578510579885727405991389637831320011520103080438742844687383089199680329197015452951626709562907865896566868202927279615475524362637139972078307669821425407782338942438751699095607842481123372001717839294396344669065958532292800595215550959000593880879640270942884091633021172294613330920482141992639405511798519117001194057951053002312217471336180681953496991960991287914577142479323941041507803746374196739640035406030063455713194573726091978452418969292504398867103424149423344082030336951490380275172067254448786704112492975100739392687929453172745296545493691903313655043750170422470483867424743051452582189328243259046499451144760086423201201497409339152994556261260936474232549273948050342490316014540186869074709510626540871826199740983818131281205434339982500480436307691290111375622659245805583933245173251116327161153498789756903017043835369647323695115396508488971336119711872137579430527983918235460216212587016810241555281592305914349610767621085293123745127080719870051662739974642666313219927322490709018580063597464879418413587775629668341946048052024017501805892376350193986981770230682513995093613752768469769669022009222899975426446165807516438969798956392912669980878580730124339068726085942168042079596694716001126515990671415833179869194513611291156777208997972990388380517129782186833868589969005678360819205223891714757130302653957515883607139017608084578524120342387590846305308767705129052342640360829241224742883467425994589660301324796497244740341904333893443888710857135326342469720760538038527836789133446198252749498630137113175812621611501398852228087458534861700713054064882841719291553639322617604728050372440784218711244242891045548703879689527317038104779771230737329746156181605780146784829686844742706486775750425825725479498515157638820057346470101162324450999332661043110867109564555849089467091780048320497804219720815394174931656960256160732554092639000080336368184477282985528205926319008650816352997870781828702139519013545822510385131316781436957107162117006087600669941479812444963975166332966008381682195124360395224172741201083622344887996423055990964496720045713926776269007527134412114722747127919500033352922533598796687171083127376790593868321956977352930787868570027394512919463855010310776662276850645076119810442616413190999187076551086985495588239443677940406357491046927657498087681818252647208448874333885916462028343711585063342084692251852405372685687049540232725218166895614453327275222688989842236412389116229285170754578701222763338211245315441948818173116309216032507011593939029049267380182522500511429141483850967205231330129541838322922688903461866464619102847887400038722710973274535713069726356461438357477478432034955880127549682738906087035976863039580731241663261542337784370307573790938232018393800490783096594354099527019814557989032844332989423355802186651623015087424846662327838939061773465510772853180022416386873441166863211015360957543917455854852807616628833539277194412016914541709622227622159649378368802918670770402891627798568544736326357644751401518171535457416186662951127216840158394562767964614557930618745543632423679408944657949378559686699118537972995581250102902172408524896947497512636706618298605066390447289063515989490942151871198637727485257641600210526157309221429296877257708806421572883696820082296753144218358156898360584008743538609361988682653182458450290770707543407394157400303867989961773102490485983090850398953981019124895894956633351727248461357183615401128546869932959156094155928979819056710881509903995228851100547533731821031017056857298108110964943692922898289920059169480194032982517167251645545821108956260287515482460779760070270904113938749914661349214375837376256176392691580169556454260914026833454875566773148707894333885446901257827488860784777902876723674339500991084821432388696973447523938962274311778772745155822128390992225905441350536896033202814952635807263628303324458515349638131487328429761543676822385322699574493518423958788168546120960812151280612164021126366508113844601239027279335423430326532581698459910146491871281962829064268018713003061027712424211214731221510035286526008116188177027164331318109402362979819081047425989656099966391316160561056607362293579000937959876085045075435796708011416327439276211043918748654629345850670532016381192537974573653283218590494870490330618064068355660323789609660692457760450437397194080469031822593588498777217083926805449012340152255638795292796251309586212865136456267772096510472539146119463120358824763086648910943114023103606306768909510053575929241014856684146934516111721039051842365282546021641886792728954366767364521745644346742914708247552532565963483789179711864710378236011556238543245934966771927263106471659468895362275156225109259870582368015957766606383485332906070474640509805363401752495088469793856882117666564842500939689172159527602488919667606894244371030141317870006812093520637477429319647685842525259314719715071775383675310374284883601543724300910350536219108678114723367955920053292373812652660787477101956646213387371496217126289142629883927644555486249786914090625501659469679623575139854012846854567353820552730551496254131277583565419175693252319355318226261556610218749660065754474880534160042117616277830914607918408262832509069051563957929706430624106506709229572786976230933043422607054339867292914417143253655972617011615338749920043229567494785555008955447877482580159531278628384945611047445342553938163232992087484183808620294155108820706924448198795511824137496919767601565441213981168337980731761901500683774160648572375316897465891510092039188537833931119730213588255451594554691385823735665892251898451566462407157841966099206649778055394323497352546943588918278395217019638831396449108325973747021072478969608131776167906373292561578544790302760133447637694914624891742671402647610268922782797705237909784550620875605223632960151258307852419280986200420535901557967992975108647459345776762399156679513255798663541328655596315548719474475267274014874793336882010945127446433406779435029755826613146935458182908010384324796997996773505834496100445309809012750605132127485728323040443002436461300497406159685992780285223309652157937018087407958188224565147840988771515915216821401747072469398475049531092059253330503623601716183758270474111803163557017704045457159288230895102458050684696030003076505228006415590160524139342263951407876749884369389001681091106915476748714730903313617584355915940100946586460460184111376597960805086958351513779962022536233447814841795847944618230236145124152186832630568556765558243035160186594602558468594742772770105257039499454136985731796739547383968669175629747336954524452515262519078178776904496047587218621458412506491788839598761785459585683977815428057852658747377333836972519724693907383173230399139575490064282573494690526895503300805402955623243266771634067967414250984323956794884837947705022606914914648268216860224872930581523649072694928838677526286830971138448463693099354503042499517299853495071637073404134493171686128541911596765532709218617433666639378656762855201561477713873439249530200122519101117531845818512355940585144403056356348515913531559644227704265175292617014354088369531502714933599228488972504808592203615556686957856613730940297337840040960991248073726691428220547367498499448511711681879884595599508287890669307905355273891929230583955603801178361810353582823789381024823320352378731186613531113186049485251455669948557980883599167651129677183648628501668583748655527698779416211277891451290973193283021748773219478221446567475099757038016476190618525179462793636493430394665633384267133255627826990672586666613494766121666393129050791796636082943101909031368504677846581815818832398342662153915420958564614070122012581559150805124739697972758129393130305108735244348898920773890936724133118107977613357543958034986290766489477923848129703378457334210806049423732954305319246699055731736427378430324039415525672324639807715972734104579636443821086117066431968150758083913229011966840562111995112382403949322012699424440157578620801410184444166833224617965410642824137824170761558309486419512306755498698165474374586304711488517322684808949162184976076177750329478896326308070473252440808603367727743757479420623768799312011805990754270561252447131349019625809783801314618264466893920937040373817551407584303367085325773712490949962404986789531019745755411726717757873147435939044081822020878685059243360072360167752757860199172862047167034766952392289272770922732317199447069081295960517129725717625367129716459184667795523011690421988010307093881073174176347332449261645332196582480982266425380716945458573802834882869704114431783819717070271779969096578213392629792858571335249561107770692547314603974397040252827499046656964317380442494913468791643442963542267593724125266268734012045834721454172823632046217197642050323137009210632864739304587093831464138126984943196804323824037235901217102569125399999801172340607525100068410550485837934575257715011223328775309480789695903080198523425521318661153551579794868176211791589588399383347135611208455720297368584752962932244149903037095067883758444778722363459192326204602687639097029606325596881724417030576859343094831489909193293341972296377387194783541026852373151744742877755812084705720356340921059851398261775173357033214802843738196578011609826096645872326553339712163778220669323689661362831265001790319344773193851514644375450222728467785521627678127981532572180224590576508341479341282188568113646203954255363363496121474339760596245108530133655027886744278157194405537391426237345636102441107304322674239292924697022367228925082726935057041074369494148706240359123558966897780721001953103365169833550304877460947126585130914696428490664214912241930609075424775733716082169383657210442673534769920108504632621183565273293486318275585585200186809833780715247832564311499593594635820786753925216709516605245554675380563375508634127227832280763202949909646765086115764137562448076517924001699261190001082696631517590147589368485832195128812807035245832036109008053838151154127929751686683539131717371873809340706612952957988412324118193682168460671317378245110697160046028059950761351548148621526098863856547434225242207366989664457941664440165890035553423830642726969667355979201254118414036136494944752885005794925292045537497814893028795228493922111081907322506934798941174010324079167890257072083104118651468403822814626279506347811770224399350486648182553316896473189944875248610476261606784720158864947272601260957432533414389832464870376245630554092326782083974191904010287031035291501693917324628551384623431546068362059629055466836336227058552335319265628134186753359651682690072590321087864737771969784315895303608311079668986713229734343787725200152574771785271758585973464827912908139689663722617231648866544465284966024412277263549384133606231072734662030831509890041654112473349846088683028459153674249769225963118651595267978739810068511293403891456787966485200079752513201824781817801220953492775842675202739944593904464336802213312893293644621722405836902098014573191787810574598176110243467881405346035111386789753105814352216424536370205108221520625763886090629295957510437494963620012648928563321354293106911392558265853870928153481534382088919249667377070455342337106616432052515912037217455707242101167412902088971332060324190751940520969872341091018724554692530664109455627919355217793536533695269396193447576798009466926729877726405273826698104442241792981000516966882694345476760783017895721974441513849988733417857533984892411478957868623706593733747405561399963106202117676487503582620888154986850783816061202753602295222708194516206638756823787235362658000916669512873622084139863566634337227161136570954776472447189103117560156678307137647111955822586519803250667551051029512515602839102029042469588221070874612801398570529238146484982826710866043081818553864712051649488667836731258267605432701824029502515057802940321549404243945025780969103707175974700316637787558282237443090742069255916506497704182828295830207052553406061324421375115117435622236549600866088965245190908035837472735868459781761307117490075452973368765733486095950847026491040033567976232010432818887083413116211769599757328408489390032821595966845742039219737158197274437339919568565211686280555615797442453505170197069075287547605294366608092751636401483292637303449573975857246692365323139767658136934738897211877572932370340948676038543159756905592339222185012013086951318467603565912873114441401585374044088437533143689238391112798004547961583108190832911182700476029405358339561007419971309239667963203062972572027389019415108409334037461349938744383122308661332338756891258367087195734885544562520555428075594289637437429761893665800048020351030310235829464189412384393356170593262966870489747592796547903200840522728406490258437431186560213376810573894170952132719450147837360332264873015859617148836447733368464592576387004014626738408122226520428746460544140278588825551216362732316332118437832511665527618931234684116467319065774876084629083367952439140457015367516911530097590396507883027320562143392221952394898188174455304860493862061571998915300040792779993194041728999729282812734276173515932130953949104983446947240019526953363938159209295196412581699523483820423087089368843958931633265101265048980356175494757460281050019145924861354573546510822535401564952310010076140785816628007664432614184430365203231263653042592145378494938797495334305731666790851340670292978496016369673278303482197700272858047994638666702244834497391638882954119911939880225849054988474258875907470801978662620548974747167491497535829772359786822667182373255734264056469024020243700996745686130136509080118992515428518730694892906420570388652924417581395199062754953459650933831563078073931415051713157453271766210394262769094998970886650739586018652931133777478347945588867784575234098911516239652611700855914979801202275271799176957616582493584254728119908883367467963668573464269089353012999889368091294170920075488074204661489307556001854515773133666200965124721038853685815689050661432142958743357681440155633765522675122757787866656406996387346128703419832397578611057134771722622298958989832834524829323931967768333516875847358714179507163466288786815813784084341195106575073755898577343074337895830380214626553322613444119903673466395167956423014134688801745017500556945522605436437005961988218500689620220262402422937658377248923294559939571288817202951976656105059017986809574310542568207612657340570918955084234810347837394998257742093466906382041492267900419100402389472674443597064071921628453106626000901435395356831362740938641276770620482539686650248690355146503745947318340532538672295151250580729292659278951232080640908323651866317877088323488240997041603554803953782018775383130377666431373840290299454661948293923931612555586178659762206165071698272147992848345567692850920417235704929429111625626613957985176587089907757935723415689873466320311774838561523923605075310782335264517823689315338383963376790980563660904984618272240176889766889817419116891442178639412255778847772509218400263720354331754992262300208898780093530000340028323714223234335781767827361734927420974359293714627628346379244812001625003178619297126825087574716188329440959911758810654441037654909141364482925979701740436616453204518612132485920458000416668003465775980256676210088509646465197733448605019804604587639328268070794086014263981404175039586682352623109893044248146454395801774954626045332062102122489332631628013357896820040492183339868490230904491652150172831061856036458663497516782171545220924679783630937232204677533625877762078612791149939605134282846758441813831346033926359636674218190090155366547698220865258131685945581517684306649949279694390486145901058748055244812225850078862789094095160764336701120006904654577173049632045118164095678046300525724608607130519724808764358154270773163795139253251348663216344278113617337182867039282171312845539027211693409079109058842882161868833428925990881155734529089310228508559440841639881559517009157252768857211319702164067116367760064008856706297919961972432831136896559856992080497750203377573440942999995485535124638484045587385289016117621181579768637285549742526534720018692932026133823873186087524696624879751120268397334309069927412370565326738686731410248137770066399172450891636421948557714679530970101943142441775622643421745705466743758510612513814654515452793504187625864424249140808388641613843930872074882141151453722746202267703920437945500541991043615633030864015469743674524641275754088376814878636914526008972814507542470473472677058925063892244078565721378148755051690522522543771959939500701965653912959673064608114248093025953996457848035826831214895485691959526009247915908033590813945757505217442013537678094237772766377855073980070649583020889221745049046324574468319589076409807061366497169851118027307960002614651735332693986764272386219021104680547267518380385993000230085959079983903885966974815950640617702958060991646775642454556506905802905417249931991267651850015210226829309368579772084616433908250178354528489961636307949537966866004958908907123920169042458035592640961249629902480405404854760558457500608671985437172631478537904387622209162086698225789481885360218285986138185541284750554774271117049532749373445477518995425829674981554658186504898486397485082983534774784599558883144769966255854724807828489122331965884363748029011275692396852136708182832042358528237430682594551028904585124602739935278859555463800070454667468031691658550779055466364981296666302253807153046409521301161071026959732613411543138179756316297668825498121966765083756604847354900725781728678984772716806827513634450900500204092079931378960133372201953260293538093219686305746441284531899084967913710373164701571638765888702101141868622019410301239305634617596902000435611079137992044322030024153474601687587679927371502123137895386432571984211385230498497479898600284172785715187587529272901664241378745271146201632997898318506549910402297143126353218543845121334846504807189090061174583846123433685469730956207028954247200800647966232063543419826983147972826122090343848934883928610319342919834012274904442794426637504712995637201098852906107843460788670021485879793714912192959249012139956629691054536012166218403086415093048108269631247831237424264143258988744981479361941427186502580557713522878584845320571228081133751395930295363484289972735805777769133732081218353417475493668169712476563606696586933160460203980061581117468604698661612273042085500600370964936956333488369087179122121959971819987999877902540414031995851732358343105137422297590231936295514882636618520859135979390567553916702465216642800401396914846804933976255606573671622580019444841504314686510087241930301192219632210791426457593646520387931937686844861526325893232628885558350597689604503830194232654368577101796109262794084184947028325704718494194349545200966050282499817000673155856598729652532008577523502264760196281600533494912183641114418784179402451881530599707848455381570576999500142251605584904749140733473233058863155702425794453655192692122702643196078186146422562443294861462728552081025117798679906954056814400616272428490311881784534445671622281840802259743780472832415713409876833514074901520023963672599458694874113025971293189699618520422873401324322450105390146793123806404037866730989447578796365933565267336537110170899523405030685235675819052746037934986506276401915858185245088987222632877802221441826566125234677532149194728483327008327567155372617313878787541983157589038148933653002036548434600435645902668781616895026465323383263600081123920523228962960464128606864182918051001699359312982589042493459668038177748744858891352717995269609672618338602731533787832114463739760802083927572589510195427216765344792872932829414468630419024184991924076002220467923368098734141253617662237013006533897429000246239291327326707991862828836033714041742718654848949119979218798808305709940997658314747620667380920111303326049088629720596231694623059041655244685033519246297541286185272943492738120272170573660747626812295970306857648650572931131209503043764768848320215864625546095494031549095594804030550788624574098322391703315851850053380985093109585805329654510104225279707607792597058046246409870845823901394662478726592262148883179534687286490190294387009657158208704940070597320611161447298863556907588330868578139078738430735769494259151302945255835768277218625219547685860570812209503226587339271753549228901179848824412856843177798020882778375250863218684195485157241098073910193881434849270581423037833865086767255792403596576780069379581867605685527374461476150813522086970610437183541711728047020837210498057200269419399938187937975158145866972262225215472836755096650201184155845820533507851763242459223403759575584089025270666933603740248283486069289883346763494176916010095112598055874225668925647443050718602917643383271717145824580468010417897869863704492300546042207006797817049310437838709434216750678133341026467753320152890994009407577707983985805363729285799225796578189419787245264085797779505516605335818208806914359249283274314521785502914034704061740533903020847527287362437430286250875828041092783695163673621831710600274471420871733559901844462677371721417326985346404574749010188369513060228991784894503216484752838242638065854436390251338207491637513456044331384852194860316283602702943790889421237052292345431231572416950827885627656723019375071564057719356075004408848110408126161347104200213726799903708842466838019791886012866911421749193811807340259656879821821674978529106210595505471033891080631656343790565330433473525844854937691167344885161195284596267803022747321267480262062914116547189885465479466439479844528495256114109277145412843006972614462203144675085243979098589510521881164563481707687006798054736433926954364976263222151474368688140750954453586253344389465949943720525334767967818237010677521240190012597452916850790250351272818333001101793505634534078822109244463284707697063909065107684747890253628118429835713775718700422159059980176243038957038496907267882782489121322903266613596431267013099664091292183364989163400462565420974629904105236838836597565501881681101447440905682209598818834382719366406721745945909053730081088804329133941496430490165208221712110308914675808776931133744683576147655018707004851955173285898490700699975967238094210695300161979656515308243037946790940663844017643732788470796041845485027339586101907566254178910001273951240046732297408412584915708292594332737529580215661548989548064148347843650970356516562501283185053274474395363102870966299375542924239708994325016636733899229535903696204866857576052827040841318828299888122849919290972019908960923089864837562357870479883121054615381381020882769676258192016196929458672193065564770577514943359514582940598784425078156215807639013934765848018210859168380249945200340189021643428939028549365820857218482558344441548215080150034792751378211625453858644211354281348051650765821673168471680317993890102937421903179905360693797386155488985043822977596025520162118439740841821345914404308336030767542550783085799369078375913938151527318610812404997976142858032859722119440426119278678668354183871390650585562897605488462535424946709267861529895911000356643653447160846484970692339106361795344381680372435567286526848597822574725624722511925158182077746022243374619717717671133647989700520620805193666912594748744266489834854925176442243192428036838247925463568951905022182010659710185657091171869359896882610119164967233505460875380549536068719949304911090738961971647138592409239414064594873267565547923385553645587487101864588089725550167066535597936301827225030015260830948853170094184081838030088115019754076216187646723745207051384992549152903840217761211123867253553749456924243904225577164626518751490649365193826522749897292916400113792292620044078609681552085864300357077874773059468621302603556686018084654029990572006426565777219501686607970554967903343626191391310743035376389047077552423363807923522070578425054704399983469215725325404048181892086006573060850031424154209376784810491074290197539780618745458292087081038285793633627163522235022242147486911776711409907459466036915498939442726813933091289492733156564922859290731600530779610101188541191625909766106924508950434965890929181996245949377987659255503604158344589777125893031331732596917311635401287760934031328491556705980612315800657458100727110442093592338632048812037691046868346160350259351479861852785816650920211971475510672624780625951671136712587268677278814922001805205112928664078508259842880198341998080635296909404908781174908231944095168620724740350411285508717781567242839658537192834774190995520124115547756079129563961799325937154058249914012534553047226974671995267081469293558860128999834653014876078754076398622273741160879564834630779961088094283093649549541755958053023900847528119182643506223867858459353086310498601191471386436440767323646539639346167735245411420598986016926837162742784383136859213293647317294568545391021043580181558890239035399178522355715587711454312260127606787444109336344306725399748768034543069674051001122658729752764285693416320708873759444315980055566917052922217264795917363348019682306256123677371015920609241641667008378499603229288942487575220189021000427203318621126039628490789592394810537905708066057509867692702200704720745351879060319138838009126026487036034819600182117934187272608348047479200416189585790106252409198315950779362590916405944147938525285005567435819936850467133930408789094444647429917888106555456838592279745972608261421934940479240839632106553872135867883629753512243552352819174602268776978304152097090616476458084278515590141429018012557601960524855217397151015302422899907821667737572414112545548003419170577376769052509897476467870051713694235514580277541183088571091781545113134004750386575270621629095250097999761940537365319203155009124155885880038561140880020683242453218414005859392713283887750847734493990165384722231829286231438716899459092978485918407472542146356430295972900408202139354603081124939908130670215876274630578258296196646711429334981537723123217956749995582029106997932292788425167830551393293011207871731922144307730199921330245482854366310437077632288170560603089228705409612041142710664522389112126707601250468540063748453461496775016241748034052363890895337405798639452052755180507895888507473865951511937335468467487682158340020718089994383077682268974575132622242910324060904561378661016358760384689141431055799892333209351405556812847233301857519823794703857597859291324975181335627394460214732110640902199376803085013175811047476415655338390969739184408554404072527115538679601656961637520465404941773331238469197277627425046290039192647079614257106427471135639648537307206961028687428484548215518306703651871314051226946596031849446732653066853564610814523725462766785869693697044243788178764436845813511772603001632922550707478310518538746618423339833556069098972936056319545886055651486040839446323055076460277496043208996171840759832625503121161930469391078896048066920930181965781881035523116024112004518838670186056209346718232615297765316896154936208881146212626131065079816674384532223467966439246908343854846853244208981531012461897424880632474656706151815261961567110095854494738250372943456835104611791254077261263620211249237090491700240754931338136153217813110132318702487114481794088752628829368013062276543568472937640779601062591430465333766108861992168174183901880980043052903631192130677062904323598198656411278641904645059706708238094419083137386959905205467085623663546107022818869339988365707784776207453629079387661061916125785680515685635532605512662844112280037449355418157498752675557620674809077465024045463710550159460225622542537446515638363882227259836347243497169848172336388825123931847772984619308793162088358615940219909506635866365960625161474616921496989698737392299212192888692207386747157587351821447660196887400449301082673387914362903927979753927215184356100023733429688437897503111819365956143679644617153781453690308929519640658972881089407289822950423594606603704981884143525134851255423536835357300841725985036499451164931915977665208106032006117465294912171914012571019316997021387116450553812580837198670126909827883583901801878604519190604638334882828423073081801143196323752068529539082261558160828192266289636726627791908801895193357956772141386076269623990968471954128714212564411521511162559774860420868157854463301110761101496204771063484404344955606615170547747639633401906109505842785218796666179961409396269815363814194358613362797171900012340662320586970419177911169291032860645431336385895568827583549862741540962803337430125263159311733849924364767824306720279032889874368678836324707360275560061668577627335425474718262557336145305318803067236654736223247156517407512299714041726721989820992960498323592472532446974880284450905752123562071113387393362325397966434505631664529268565954456042895439888952070313577214332463339304150308813654302440296870698955724657742556468323105896282830827379175652385926324950477399429712202527338819778791627739042211302506549903189328969617248420392042366745808630456311007244161407868306816245492965344346608164953700886455325910547909944918589258739981631192313231294383436843356181531032383575018406956787167091735773985627673718096764951962432563269039711995191278171786059822846564113701923802955929184211094719797974352626060658818900951439005527914273341896927203383607378104890282302091899339115008994499663003746713600437466036045250381324693047930975262282407014666587853777795327174070212506606159672186508133959173484026701038545698794891505450939906066430156262110129809826787522533172294598875310151765060023356314867672200198356766459381557364433708706930645676604214248605971678175461509588664470113855474995488006846962972169550308905594957465350471449464701009015692776029985022208928780618849088895003335731434157927639108917806605795572403095167856023675072455908733855826319387047879119669591443797771280797685801953963942109493706992576893480045545224262552290316281778825013689682435760594204969405636334683211827000134570816568211929509255273836318238749079257993332299329935860673577855371605342003839676857300777041608598583847221706761750641493974639101532093099114857580182622657083072279255635056197922650057616034853968533322196633279098034348228977009375309263234554839855314400266364305618397009906045098550689231437389234805230361227843090592095627046888339274025854402047106897461110453756153433968653173791642798886982266009936449764165719931702709780586358911225490198200409900411175582405000049738299865372417287497301139675493174881083254357830739487800504569729557464294761940198649310733735561200903112420789196596229052792742160410461359275089107619433900731761803239322961313427568246955521984845612517718191682671355374990386342975259893547366453401542210624503526275233450250294581660310901481256246733788676706497658519153414739669226737339171018330118102118889884647260720073421931331189270910364296533325756392736955187172864032885784536888268852605024764294908405287119180953002426595890742918063180986674571684490298061534030947246984913009683362705728049460005530626919476169829316859228911590026193479276776589005939091535223067914263450736220038062628692838095454479567210752296629912365266934493579454955818583918242083489773229671009856338882979982580925600343511890923952943659168811154706213787898209268198963280235746063205966728984239489120469591643300891190709799268426983338691454107893849606501951025517129848424220469037626124551356887692398362881967403845908363727625276252600085443928221497129062910281746115156963646693195161610262845683974760884509797171038690042047212873713903453853598110531978128395265953578136234098593465986056949482318387781277299641271008289374047281255955101210988734317295371670550959512142604653216659932687785154160825211431781922968190962333613191707799463057297476035738325479576302912016178636509103520131787416761632468622688653451026786256899475682503625681184523787378936192128226315408104012607678336750602724935970716328087551304147706125361538814281185148112980904624145986325010061976236388349591096441712151262093197107706702238586463563007702499445616119761887425570923116339046022681925357342193797122294533724910452196501429531389617478106124940179724349658951411131702556877021863394639234049312378746725386880788708304755843096171690430067163466385919330886161828487078308496925473756600868309436750334923425525013294962259268355732939294790757632954796768175336685152851898370846007798200740496805199028265464276941127750029035365412113772977073767680735495261948803138562693615154673865369765932293100689158346716344955803425994755268964793335081367063136173786856694116930924926175442286261254255867876355883081246135679782234200065595594134269711756383634080141197880252803394856923152392337850223732945432703432829234178250637319731702437068146457417002820167609930416434582745544768772424104387274844844853780413569269125603082829556116700436966920551801970180668282100733805096001602005853810359976147507266064049139581914491998824757593786716304836564186009600858648072123865926377817766642232730575775331389474453567130141002646057255426190351116818137692549975036710278349599435899266032512588738194687633106385082916728053178592105876863061874764144423937039001896094596143744221572086128464264968249923972198630273456207926713975572588090194075920146869737446126150049630486768783757342563056147187151166861155489191724185107358967278811915303878878159787669353984357301870519069162199337842900445582165788573848696182790907166231129201328084873989781054526192504331562690905447853972505626580905967060043313074609549523657139017533889011368857928355457395212770520417766251409044734094441211644806701380215438453487203381248641765079675768331788123784454163495829926913338557727242442737911598575879208979223932740219141583075106181306352939750419443448039275460702178127755086802054764136824618103070103388004969844469383459444261916338347028784729297337969320505186146801821734226640794921097299022372266297379668779002325716262079757044528819055944502671710733479990898068202107542631060642365795041709671866206976809759353678621475694369316520435942981979314244099188863713624623077902697169036443325622868540354371292396770697875240866432523387228781415290540129756845659822032265802849808458964448975351179906472157047367920757653315205870916126458101878653638441215966365566831088041656745435245355639561941269973162521097661847462653756553480858684465282498782577602672061561460469878269808982455057532271763156022189673267938417920542684700513404877482433673710907953294147330434486617877793975681498016338848196897200666397563450366635255224277470977684263569733309073001078091781549899395197848772666374171580931349807834626921885741592594369776998560704014627137635920806650765308013646033867737203659216419783452543059310272991276553806088779095112566982449112040168581163092806089105185718730852719332768799535431503764816459993745819235857205425972521884658427171240988741057124182254616060729719929013987588706795121803849982172080626901022276395091752851772750701882692771562008810484425032528087017386410552330846153197380533210282950728933976472937166852090503590365059201645282256646457397697576611799424411375995851642582069472373606848557391405965220460649913801839105084282595575270425533789346212097611950219222802576356442831614886233907853474191621168112264066348778134920362431608303870276002067012491032071675552783100538539958640874947570214263561431570780849049027950320607805575019252912506249156764528300883898653150407666904515356557880705413377217194865319525318876990873552227647466442006963548301898543030663901749310542244079282632816951768643722513990568966415846018081280559577936180181011934276393243035224990439908055759113028970923140378606982565911590601271227841011063575060950758829551876374604676866056841952117503648676939827730540258040234086597321683392307576696056970736978257460317382355273651201250458900379791661407217008952021459383654827173912290497193892889492062912448926271002088722572166691392091547089601015258696706626524650310958136239705459408395710305193641766497883478066390208533262987207277517615797848176906256678603657110798372138543848604111363927635964612119129350103524632278791183124527814634484533532963317660205869254551364431651705801777036133234121954070238778337681640424990840985556628877147494828739058773819830908374861559546077881749864860436767818374537219391242951569012016329051736141877925126741711428631694501803150560452693034418787952762778145221158746196415582330827246411450893126119902017519011827892089016503809422037238175301922684087102377170805470963945750805839203984860867356826607041288645600927647530911829058715526819863909733483913187562250428271726802737513202794027760997348884913545494132933742509251268146835472663902289496152805916694788152640361970823835358555904904943248344020696047156835921610969364704223292755713325400989777211087947203572456586011875516192928334164759786526636299411063088390382938192787483937484945510942354646382213030921108872657640231822473106248602154740686525670751954659082051602430826415015223465623799003382655608974088825292065551807279238643318934656220376795914291307424695436672835305068824276908411760692587918329340324238244867011059265907562314918267923916241832179830376986461415998910964734476225206590985315365751428097052295741999763554541947162314630679426033718444036768156634347428639311669124624331167386658360623877300028441741266327149593873365253767643107242211218316877117951217381904648597190526909785556398016441190917641863119008213447385535518730795104698360040374677065001287814105781247768035347174805577475287564241723527804820511041072761053598169467812881290694462311655471100114532888871543062789746671907560476714083154056978184345844757831955774776288739777585794728558067698586338507950280500577854568152470271404709695797687708825132850754911445856095705092785836204243108895895558481064890941914993825552776086636971853845716983925866379412047214401684932379826463996632000413209654669885422807803369767788011387223228307153903858578888339609433910954750180971702210907223906606919971440017900164246043285014581383098817817058505511449975882203586023690142541499387194091140268151430928017023160383200392499592757282422138967901797580631986635161649681721408251685291904936348656631363426070421788253504635078885376554481113617371829934434990184394823666981052792861802722149190016971869561269246249227733226846650891978814181858533286234045128961411302458243916023958396506683348147569158579024798038064861116553810586077097339127503073270993358275158505849246726418903603082794453777872388632567455108065666422276328433125426920210616626599298718491830575712077746421657401514175455306806834151185929551850441520549707558469246332725375534984282151163388756089107117992202233508622323380317372231784415227943323656065480828026698841841959584226842843027881597947198677560051759000283324570734411709937301981638322607015814623944105326418511486649491100073362208289692433335372221716396319388579584910601881797262273064184150713851772689176919918899984155343317666726141428654256532039290018259423298480644959628578629622201979364619637526455999525621940001570136205304389585018239686133066713344498752598912663045821639660110931018169084558487791177925846052617385796961895090579689972060043625152475592314685110163966411267098853243920536185180298237161962600438796868399215058727657407621581236008260616009411839672856938740636212281683379490724657007111674900832820218038307664686733923508175471468665774384607015318581092859444748335174425584992059637343292613131504746650847257282586503007289230864508483424829056471774732357415048569525526704735442782063364596567068976343241848030509648233135909263142152162941668961369514408350348328270976350070538957288727118187439113036891764704243590151169663674276075055217807455476126065226316462691120279277408553653994707314029003970125122550668929232127581848099704423726437529951795161612193527199647714230504603097643308481431388551673843834911477691559707257457675634938156436194391135741603680256779235022700630398438413906709383607348724367904029696799336327130698146746733243456873880557579665752065465780910621690535762028051505473694713947799282834183066451412665321599967172797746849584401335246035095745475250012744022237271442876333711332358012861228632503403289596304806663123965775328267082894787762798128138119279338889801598480665989595630852265656428976033642960689713621684345008762561584284556657526795341199683776331584505267770088696558491850494704981278993893239050306622488062125551531201822938233559448995083846169221740756793639789118454071855526280050326038482526436687886129561960394765353782901998599907889042918465156466582919755135853304089283673039694017347319167005482154268825644667025507507632951666048631429202705308756770028332684144123622808966554136401473074381693095805003509305335312854833373954298900851613817367596949470399062259561617999893426554975820035516295544164087782781469011978526414991907751045826379362986645569494871013200073703704654176940682682575525745926111317845906047234002853126638945703014417594684957244447550577403380827669692853209863926925751476605744849427181188868041956232613109659461197130058502034593981141066329062938084517869704126396903380755215119654912355599899550607923750279107906326589997562880228624918828618056674757326751295847705387922376475501915320345707399502298978797151671253288706170341097017486649667900785544145784147804468029337189173017569621417221700877696217216304016755456834915932612175876972405669034899437564286131549885302478292976414454173938957077336251613797604882157046481806970905458098063088472315400375124428057190403978770444456069757779640228832977072288934955453926400539703006611090034538970457591569291866907758536336638481943452854748567991763872734076242991263001055872983969650519010445258756789916798508654391760588689101985478360909487558762336620137441708600323294100882924165261239382374837929531976684675716303661821892028598206779311606445292582333828100550494738325466236635937786152362281502777116473063566026191833495880039870448017448529437729088775320174944135946846832227346108441853102998756711177124820297650011228914576779638458537117674174021499245133548182782940989565936660872341213227412564669762027537797026142393267591761508647194177564593604841788714689057045924649332246761442806028444480585141106750979168485446271045425814717052258562791659502231074018494325261586681974078695458759340298570241006205806659252796825254172101001751289896601044380777078730601782067208525801209321925573430061011797333332222562313308089142975460289921145372370277748334240131764179657993725554483490582084640100393595590875401971666896228349376502697722820796599108213662718889528437210089477769696577248081752684869493226961087356969006633301044532656198705075166657250811838777928909946174814014663393804419955950064864238297336437443029887543915740168203820214720787928065959683049125773967876607760529566340399809899934724229860459868006132549853087519221850405859698729016516920776163332317321385519196147082507879612685236553256258549718040276498609136959072691496613627433720237932748811247869674694859800206493143438336091175604654091273211871275351288573946988619128290978542076068266223471768863176283582371206833182341010267896577749811984571936226996467908841384511278285783597766818986692570392498780300388092861321111782466547251815761549332153620285361883581539695966101593624996340728122992533756998853530616027702440727660867175070992539116966390562180436530134310426552732228313096384114050833191497985022249401346994621203781297087026668709727323723433378949053248037806220105029104762338404093064404349711926832215561453380008256511040606689756011854027061926753557880193355448607810460372387418878567780958874997045812473425607381799617138712455584348678542606177308271116652200615856617181954907786878141547254113293639326978559539409707327329053775115137896056172180348672273155483232905278804926791876061111035903027140973733822072893678654889895880238604890178643708802543452689230842393084395602161941571549407588847597931553566556043341145393094573563551113793367386378132006482008259444732677939711361433112545932970000520658364884994978482851931472024493845385129739485051869996618431675922144198718236986225202972766088893199293964867409157131308358347975558294186857820942978125230790022799676668440538190837262835861047963820426803625650455681718964714349614762342950206333286272821566108763623788000635784886278927457011974687424880112484136712089299663830445897621017278505270629035817967319271494091631489812540629721299758336880817328912636048016437551474325714059141340997020598840782325720356007493198941093817807026305544944360889742076268738356054429256322693399586456376030490668134050188347985719677554947014708461222423627349415793202591149947079959296157121241728704347878219291228694976922391967916335142612410795239327100138211951814415658573838415327730126491379863719439346845219863589062191827917457450239344190888115374644116632490897697930104324728517241848077397943050490396613084058838743146229697495906149778484186172076198721037600054195863756583035440888636879721746980046982506652161203602641602895236673685919328852945159532074330746970417107473545118010084797735711104137689045585365357823712691934993898144597098304792436954287379722896890871896818092257891975054704003931836530863337685732537495162940945978422299526897274476537366665475360413939291703380757631562471175020704072296115887974994810379487117720315011307829874727478873894467854965929403668494192536923993102619685570818569434128017632728515423123950758823420749045756327430420981082856576247792939030005138825833379062103719527892157205930649439775632906817611947379450914317851901000957266377349508087080797280607818106429252938795642238254251873845988295566517155035118878112067698135704226386388850306254616328991647333625344711342128537086750535493552508964619735069251520043570080379936528259647582218179206130146076940071215334875940185180041555538250146271258036231388371131448331629860563865728589142666076721669763737860880061043664518644345003796159906162410256060895923744447844073540533315029977613664657082961846906005907658681548242558648180608237817776769686884107503881394877620357440066409970965101835824797549108987665473989462296235976456118772977297669862158705885163005755504207566213625815059633988304986108595878424629444816308231205571705147208780540583792852043867803631558763345037081500592605493622459526079899749851459666733957984864635704498984799213844885341384164470419829309668455256509852419747463595433661139397251500735818467148907275152470369280932417434892689232640554846162507546711406096145902432586363384926465631196359267590419424456278327727239370225163615422769065422326230437561037371700686395517743052928450243090917552755999363603872275240770800335571411903810592580844519747404543190245681082994555738607188113931499699882757831909035070952362174125736624931245785820749079607732999824763223634125169647298590839856991098883038445030873381353780390694010435058552557629512319302958174303121572149129858929287348904433478682509716464311391531723144165462232843041572829965955353733616652533970230220565309079405792194695344852285623488290489455205350209047083605623663669656092410907602640852908471937630558966096549758805422661091778871645807561974454190356272261519980929326538096465594958771641540697049044229116553611489823634290986329805200776225055300990476906309983053423990379382862897783196893371284058421044563909363888193121015224461214919690074310689323720140545003213276998605449691101620663119592244088405840216248896294775172203588565956185814491189303569424735845793677344620616801391459734210146078590586049401822952176752727257540820632430257193412954040953577206336920647182877480350200969750493988873934129843186430573765016196634878860006340083053217887431729428491636472317589906627007653445216193792043408695879752220353113697455400973308234187761101518255412292316239724109111935681818278702388174594667192640722140179836905176418513280141366345081626098304794586993658001364451529922854011517830720889260926398880122552002675903226013317292409709333367795140585393702578480845020285528319392356316683541030097623740076381738005572652931704207990916169013163664540443677884083481978473544576214182261827698463786613683983081735091841933293764365641584033224574843950632552763701052376875580144689951055088338789626653476132745701413203595704090890486491772772150718377647440845154380794525656850691708247030815390271420095712034448165972902901831822282578175668021791614329584151995794336218750267424409438257650129882626020993675285140355813453895359635154036993133482955006711772244101382355168990566191143677495802006380139641464498808782539854388484692384384046106444769923115853976980022621075731649734404741028175342486406102725109056895388946562961181078183437605716938235912460019571093124294538195770780884157319137425446583256403027884194856675895595163107155634832372776857985603725583415213972582313122710703249539318738053191551722201618299791234142443826804980152857602136205990502927030108474868847747669447376982727355509554015167341856023962012989975901496359436673045504356718354274613515451970779644926715456202051897755918162339429626562463004405495060308333485459164598164755864673174351089060384096489432392282428099844380271356321547314646678965930342237322177393147601353749110452240434716008492646721074873756774186166562652975841573972101230412418736883251120412012417411866789923792652123123252714260452488358356928588531978017328159334313389537052251267685478777505779885088378526892075550340227362335668625221054857716804964903321049491029851663917921098653366808592742835424677154779298000836332141447388886793683983984992248111468156033940498202232856066969929925624934908873469973901181215202998241311535435929645610037097499803813219732636732889042920607384866794447557406959959816109874238857072888545515796744437143331212208241500469767111793249872963628695717811286534943950621656486118237092437892965455156892652629435677820581160029985297590043955236560520914073476406129157189807898799560442971609856571403795394606295502159517067302311407857175025465918128529775944258351137054278710569912145649172357180225407007160083261954634018619221547683001086621545909536726867653820740755778329353055476046904125123858574847740299343584956106782347784094346453130886875502145128036931611785441656281138107557196224018155142388533031984733250734459514993178728462512107492643698007197667329964902366751752205297668229987955897294953920228580602558313792402263254618070236824892755529086183078345178807586949469578674209004161545115637045263565255369359097344715532580695762868626567576948862812506307795948105802795441358934699195190334314953882457234200561256233810518094345391840237755516734779191537615151956600438262108048810151526591020836667948176410271751485884116872576452537275498312003491527880141765399097650196340885165627280347892189922535063046825894360856138075684246079479464898393644848849105729382720448859882964754782631478073505416085021875545766177439852507587031165018337502829099603651635105595710483387085542627161781979100570704238503513139140429101057775840299225009510061637241930055187950380362029491988176624971350741859468735987051046337052816827339951587507000791065550740212144654463784686665126962934977399649219740261745819784664027554987283801091492046176222486475069271088581895358058489098442689257073808975117260916092556002636110068609163440942859717112863388324193276048667570942326021112804441167409865084668273043413906656607330037374271026079078674893731634574742104732167529814103885542013957111442755265735433524049748204184081872587685277501172642977361687397470824354049291962326003854315578491301204781850858930662607402615787503357044192816227860905441245837512978353221137846241846842731310294940064019115564576498898438625550893639098213639140724343741263940510664332375574821082600106234141205033689176892932866856028549809979315197111588861081069114361248115808249864605172073982324601502260002995953564173479840168781301610407799727752033007812674351533617498558186136169109188546519586559766009894398714577898005989606388884205298613088993472575211837231607743073027224397008036721563108617287081878376784796390388111647502310092448551227014727107949037620926736363186068203239488852877726348438259485920234157077231079171877098868745677693695480870734735432902127731851747884990457344907979723542546791609568210150832946806603515141831556788096067435742062727007905112480073950600897877638706451705427331718453031707413701852530443291760241882200628052825544759458218252612038582689431172079991424713753652724450112811068456739639992428699385798651508748573877057972873148531834886003981205444726706437866815405645124711604495552160351596212793942187264617801475739353567103582492064855555732405001564600685764599796592212466011031477885245592537513597988785868075997061764884482139844464792205491255460651136875518725896453530108817857317672962609105107088359364687847232054655590995834843570697175252659284930227630086733380204422708781521784736706070798547887039265520945785049188462724525429259478886242585220379770360298239211308076944400510403354541867794487715546747366506852948638063404464128381884027162790726010883332245330443085658131691458725551290509204863016811553707404786369938741801174085984510944347335676506587752860412764231035767665873905457899416542607290701487640651730240303292527618411970757402360137345271848157081376212839645895040175931072471658019099800307422465958507976344621769344595921959282870073927462994571149532057859295524033766740225119855303838760003768757840523938469754263735967171019801472598156743270776476201858822739054393879653313943726311973979503096894046865424861516921317406844172908590528374985863919594196567765091178455017110506954950970363620395138182206327059950573261153775210930220862961862680474466028486312284272349835019557153969173058847934123768954226654307623029503882121511612727056914413829417953246598241072923843120696020075223094351338616765059218321131628006869449185193128644498558986351493076826890870922873276942042330924957002143606824241334847219110730237290506353795628702564831063382789212077783579446218732227650775271390923543523572745951844592674622339092914994837462935291543883857524993623270845863355219910769434670013856483481273436792151801629008514580914162957011647984767412410116623727051591414248282819457613744030891904698302713149568025021948077726235999849943265311280596145921756837370217676148955224732489082298867332529835338796376091412686051720062051347878567965924781344519770624920125301459489182095216848007534409307267142443141679316536284849907276343665852803932684603567331782805114250229789330417401707031831753494847442697587144596649134924825207096472648630917719618103922489210245111975547789161929808088437973097215876686292019056163106479473919592304160672351333070370426347320178538603461515496067902077092530742778322901473858390246834899900405639831738915401097919826859711319577268266814577984620874211821868601793925627899513194375914592055237220344278729973094563068875559094729049037736468959438143169735596913695513660846125385216454898496738776103525218245464153101163546350644255039995446226866114342643151823632623299722690990096318957017981963741558724645649297688216820294552948706740751429985912858831531218640436197546760594763017459351816076389285254697284215553824349253811049382251067905472393822370580525891899535991675242632147003446577050517267754477524765123308694753856846174481907279015605270146325145327270742763465645205601429895858823658919823071075614458439828513632362718146666655103823214807612851810686548925975103337892751178721443576295419938361906029287538471489967279122998376585232724882572950766941192186280077787220781368437882846787377348378440821200878378537081693133200191030188706806257519776192238160082579563846840177779588149091656132131403766750779755335782601981033394983608796884989652551691106616305654833536693673412829430730943617565887697376250732132445442346973842979192802558648139069465937290550661199717873434543167166288955251534146840984582209445965014992483105373149664650387783144158457437208327583535943500210348128716079937505563341716252605523533279842784960132960319825103517100369337125013083938458133827008112015721967132413013184391693054023021047989908994474090324973506852683916358489827613633824339161277438171181918360230933503374627077918554332748479663120675702401863715335387619550101950010321973407769061483764815187416435652307379459993030293655980364414686662714840650385096160421879165039194752959942726956381501259071068614380321852794855715541569100632518655549928436973512735195603873820003083636395048823240542782870062046724688610393128799174735946879547384498709626159860478390903750412160154241617296368830195814903305163403639335524102291055809974824820115844862849071658743973510768864445230455005402386936947616972806733479880954588284541928888120937349069958537387166982089857294524552258573320274118636351692642271884683216587116770597915490069315087719122633197455961852390179007834068985764580590206776849328499450061139416561165877319499157485406619662734100625658688260980292528691841330293102688921137889206421059813352969052794992765736242857037847882641742218057185190452617751146368979397539064497327547988808357494129222083791480466858468487553267238552309058558673190138405288375101769066154958452729572147051370680009461554534712917004297188761403378274309793015080735322944371541411256442230505849396159065223981870620464765607051472343495710113264064773857647024258803222531185871584870196744771976221568219657198202567450827031904148932707044214892916692505819966089818810099115199673939498936972692006993660318537464202787513188728315504624695214790410352823250367684021622508340884700617698207448991657683189114714683002248272366829081563105492334526270087894698948832941720373695245649431690166772410880475286085368396241998010730799468284596372661102123831966582463470770396899435870714256488788000123285163015131361465708858577420832591452215508758456462125752132784323888089640967002546032308811026840403393058094174259191575975865259329215529652853721390431713692049330631871321768702440961043288740240676490597543803808585927397440215234123458322297654546230005024119276726510314009318189532472475390003053172879046253862475950465872388030674524426330836703967599433666392337503057592233516636113299107266250906508116490235918074988019867992589327593816747974001498694141307227186658143547509545296126139256232438399742104141074464305359469741602095536961483859593590317984514185119415899469352673710316533038895810951972709491408068922644780101105859013210037969186172463882394961554028152207499149521413012206724239897940730429152956317739720824441148162199029306056536681328780234707352816668759004981806972751202781710177271346375860280120140037669121775805710599720685584939378011746028954780401069589855316962496157427247136217951772872591186346045415025344849113244678401886128388994376229746142389832275019133182883833135366932277447611403170621718016447545645650726049530467648194784798743530504845145433616438598195104054548348118792558895971249111209831880237758456686008245473389793117873525480306487223553249607512867734728071353037281181764795213079449065639834104375096619182911737330305927621791863274296669090066687873903115687225271499158749988268340885999662941009207404180035944154663615994753688745956022429661353543997689592251963816161224910632461817875850938323191833204243201701146641552301116212529545941328313762768977143999159924239917967182920305422041194278736898640173697958188585648344095055249944163490523934662005564601745110209046111825877603988088267720065976508586104671613450794389619230391037096618298846224607913716946404081402986181558453046892552074133643166739428485009015750803014016222611116254545611744154384582946372462651987712820431272357364610083769716492998815425914589473680101125318798055085661626883290925717394960364863769724689048833763455279160304374208778631697453014290129142748324680931470386602497791988576902303497216301705190707630489945101282070432482613387143179872859625862309738532461571552540278010306226529386152926381116974716953143733244393458722487962171699848055201034766139547363533289896198661186418288073377009034895010005746560320898480754134590353464733777564948627355345075937518795552671988317092227745108520570497849959565262081884740632154681486444515460944308427001663496813429045289475554279313268557217418951369165516203662112174837341928439519781417214487694591227547443331026615719836441218234878106054761365219045738248609347989506866201966031329286874396150388367911553358851744544698598341386224850829006217107680236737549136703318839793867056054310950169282097855876128439549076536179015183988509087214203599620611949752079745914545696007612635515748466563304931889824031276622302141201732346865097245201240520311744486255678489832156621438908525812773366509138079540304376341228086797289529370949986293219634863342611686605345831640589938844852729017531295870505805396952811978164762929457900766178401367052685748768920927491012294695521416640089816114771158138303412074324519874776645447511780307986126171906800978126091603613733374034552865363982596144070303713286799739874924830874742872114012502920438364509060482441466352057299673801648148251281624934639052715725930293391881227069756177927056856458961258477401809305188115092920014426698481991159204676586910532202554854133593290414118995272676708281624929212202650154763909295751970454669711313528236743631801451511031141328422778173970896529516358982385558156491074245755327126656795904400813315774170598188466325254721678929797749949865049565601493498521735290680308690548859941123970166912128291155404860050218697104295357155089196398918229775554857629041792998241868551660829368794771297107201464728804882819233115898873219174984471315908957423152403807152193315565741666846624594337638200880330601520892464291449461215454380814035740631459004477712857209691001767836333558956909816557826875772296476354858758175606024238916047092528461758016853022282429218510279654896384778260948243858276136186844267169954917369414085916424452044662714149678980555960930670719619224369857986635907030504608826235589178351900509237813023260633016543167499913946967455397073631867258036538203871202067012859908472593107333530863817574910114505378596917439804713373926068773031895758099238530551623313495306182361973347330017994229553355179101333144192580278706150885712987173249751514069502007505644222453569894003815691697753663255329879852645950505104735748339248283457391726202028354424345591366888929592360004490909089472871559293561768435835389060489375830772724182550830147108400093306788392733220835503404184835420130152517180869568857384895138427406305483213250580927963683337613438306733897958318732853446571008138887920543183661150226830111896268082566374464530131741315501059479886704092104423573088291413432367653229666607481171610129554407170278673641632150910042717118150292324288510295557597716753634297376084179553168719656681871074038536303631410010524979345591347216172843334768753112141963798224934809021320801339053941715669982384684264778844588073598299382885791652397662853029952353662634526376256135659457529890028912398158001632335068960338277334169159001672364770596917701816436755204591321462069702147098840279596029711415912778209024630034941311267711114983099488845367927587501219925177120363803425395985285135070666737005500064979524034531670236364938099129161641074992444158096926716661538550997409884308633663529713989405152990395357998846867628406644146200239964817769604358206744247225364462048736230677451374008581079499179485186050947598947785473934109411858340413245434015618854173085953047101564188877992947568565861525858919241348646183595718943324063839923263174780314570714668670551675368176433127459471121390957149503004816674777250685639199489774535239475069516360472395841105266432684475448012162581619782045716204689128303793631252232579081616175052046620579321732062047284209514257545317256467782228805747568130961059501834352170742627150429960759573813185485205136674051802638477128285484510583029429422847243821832237664899480964817525225864095224873543282015142769373943186349105070564035119982196076966740141897031983325401898893097933811513514588803274195955762587453286107979501376573436298797231622906820306131538100732750748811356737866660122648649290043635948459332097118956186153373921216429783773526909341007610605542797644190802469311122940711013670328252606024538108792105361887972411540219385327822085456701122830197353393917207171985410462596356086317078967769787602972539758247370268656898727337747024331590224714879753031930139504838702393319210371830482369696116926694022194555087595117988858839901062412549014230682665152118110545160220959896113353984923561206544085924306914870784065403117423232838302712146134012604244395198573070705271198702833223948797355831983928922963122220496589703947562486516009351383743606005404065023811032439572473746154651300969564781138204369993289669754413851461267618915584556476973505930749943984301128544157544060710007639709335282873859115790958851639719946439292713937894973635585856876165736271870768340584852555254427274256747108841669433099474615139844571361302787755331077703922556109791148974566472099550528998753207866857615299326485584952425229321472356010237921624464407546055209938460381970867389862636110096794524017714321361363264400311970860135743090686804203692338611498059183367473040660489685753996220478465037825152767350583185884557068783473005700020321096131287086735904226374037446014734841003458899405401982719999380752143275213159704551652384507563648536128603950899613482606450410747627485100476322361409170030730037540346402466178543143660476934662166084984957657946525764878794564442353383386127167339223182513050212652873940733755598529165241008825199374417961690921168321074717897084605800362726281785062705985460438140726221665554573968218158822688867037351997083914475196394857024066007034020997761697866398377407665789271522585967311839635747486648346357284294534104185205177743212714522822618006647653312372136866392631089181320048001831399564555984670490337027853263923161145778985216038027678364263144838799696666828242899006283370986217861875524243220228706464129951763942546297497886824661323555920693021842216383386002108353621677386885636111941328022761453619065203753940846315602261379272166410366257088950834150322006464076953927158530377943221517815760665109564901141760442078254638526376316651291520146827753631101350213048014418474527480117522450628288922942229258256914579607593690719827999711367474242444336650853609538690380490040496053425171792666957706372948832582189915025517351122999997815410759485457874126407509853505524641235367280542565158167545498526614511258345464268108123695579744917636215129182851160754621803681591085445749910314402488628505183188896160900186651453057471044752291182813641425791524969404031650431018018325667532813507089758036118284031414479237058326289518481848278259303855437759971397839803640779825893844420082013836367273662670267140304820559028578813783282218800270660524478535703895560556674611849877448087329166187875800603850052651290231394117925392023582499694426651846037833462214009642050693529206481164516105901551033124684458892438848843087286351420094678243527220555123512563297942579207751725968700992327351965766200813672959443261394540091947158878866744816278646776527804685906840798717419897672817486823389990697979971326297953605896391997160732261888543327343919491382181541830984353429801921860233454833979983757396951500580047256709793082820207511362550268670346598649369450472738811520596121836084670468970489518543269037910192829390872752478449920884295664356978933032515353367328636985612221893063660650294743478349326412520296674249161640519786655972274570645964939200944238243376307564888621541767557603327959968913748191153050637206973241482729849213957979993530082614115879799389779224186011710525258897210545104142462682501350395822931779728218639793928663736105754191812236686418997902835007278885748151174257977979337317624798666376091302833704434986052322081297014987923441164643997389165886310583048883614044296293175600454203118569441820857693264488538155567519984791276785381264122170823538636875593625378239699783975941141711922846436040559087613829775541229449015773776518654531981331009076170029169799280763529351879643362528788107296575100288855758725793974883506105524822313526640176989046136490104194788839182078349232660322714622762557195969007758092819648801815761784249915720828965089025221483125971077334858967902008596141576504161965699471888849893244486295204933046175801438312145552299473370696649329896034667796638001775072641405611638470844577299863952667677844210108439544895061034147024077020464714873749096165058385915380605394903072428280176076934380543960363159960037512427595642940513180121116232712130780725574661410320812273663147610917988883123866245496334436064246033878880092065058826046773502080570575460224857095432242287069512945680022334450497104730174781286902213824685369144705867008017703544225319905781568453612887137530149715175492068028510961464662429014228868009239753958094436516120243435839922691446672193520501466981193332083822848303065916806714236789814648993775080280193699854999074548657809774962607275539735267397838112909926183430606819573111195998094323637346131678098076048572550770837941563472038219699766366369074717262192002585471578417777468897182554440722555089063269311701709272657036528190584603590694734021102345802731139607827852262545444008473847817395347051829072276442362967537456131578569594555405994949820370621586356532261478934507211145117898829996281055734288753243920740767082128951696923022772399781090219660873513420625842981364978456323211541362289863356486447758695489344970172255524556076137208953660695347831531263920876445098927906922681402884632040054675208021717762990558799645065939642732075719378602672228595508841510939266314462541742081338017841854606586540912519798987172230524206575693042145601381590060422120861241788978772099729529931265460581633492376005292644839896600959955716181509750032419251388743933466923334827659241320183943573564911072666883982225336524672495883065288533990336345403408115969904292974543948767109101799275364559057521909161806742852184328422823444376719372030100088702505339957134796622101109669656058868434392064326883851527406319219348729336774786163067855586757371502864450354960596830397069723805276810093110521929140372458358709899072654221856172277423704831311069979541879303998350243817684247652797799662598669023655629519030630531419916013161453214529251203577535507745883658997355641457395050438437624646799353770505904044159918800127584801099398289318801714696693265218239453110072595220114369917206654881110837339535678123477875088670769241667597409190941375246733060277011592703345277510835269169584509050048561470422287469336337534847208906893278632213065953207448942114542605626831922140588898918262825224811911694086827440351559474729791184491888236494613403875835688940389537332585052083243827824587294291679813883177924168806571891882514665285310782854866435706509959744882353937479946651860106020482499973735543805611332099345767959393194459155029606767175462300052894649350244754043171689101453393438555197357770175627383951852204104204006892008625790906630566254252089586378889902021301356016573301830068678078025642952848571432451058944048034064101374917898550546996870698778566909454317957291568091096141084738625747389420680417619772306506831191789852180941203446501031210398460597422411290620836609438777846792644280455275009499550165913573829457745159022621040717425289074013351717672059845810056309091735106817874380687471269851603955964001144868114455774042709259764352390122696397006271623329199002911643699845892988877253705181221981680208035899080196073132426375491864522612096035308495697993704179661758359386442371538381272987520359605108600177606059043537566971031950880437327185425894872949417164273047389256255224607576020045934330241651140875582485298312712065205470303791933904791440035284732686904686841050367397644216486545963837049989346121761337038891956330092764068994385449993692330207668382238025214935921336266446344646313446687056174695577298998288182706740694018425619901628452059031279763757730206459624628366921631182843798593268222596897068446160123679802600680673013370886244709796730744063359526654703511189251254967211038464846130468693997228484027534760065137560884920894562050252998504865390665636854996575926164770572766636068563438928094885745065688935059086843317409663086419033191633717070963452320633868801019326919215683104885461504359052443727814677033124801972589002503923767119402344426095332909841939714120637054146804791761805362521962045691003190497703609497488311561924056075308881185844605681003814082526394850061454268627698182863093950065200691255544368449880239263711998376530702856141490933819974549702168533485259730842859079298150639979285201056319100875882492625317112262165033470333799913839314547416439042272932034666274005065840772177847389954032048206904013264164935365590525698466528950544824863220541321267415003046280812006927250714758177043682226680003563526970773601616684392560994338476477178236944243946278580788553309196063274232673850037454386951109617356978471942576533415034216131927174571724338648459220293566237480758688757563126856693915396017997757953905044326268747627411545770002051247569216967654934257629731841057043699459219524533582721286242695402572997736298297195212773050969079434513282315416821495005842466225056807291164720538393150265223412773240342392609145931043682192623488028949887574440952854618758472189426566565288837892903777537196109667110351622415055422294856780951075572528571828418354146717382671100100909826233339701662317910810400846387517140758934488888025510133048070764557026044293456723749803449583941590986249277017386713206542952460349081624399828832203498237701113578906465678262360570929960895772058092339078193919449863617864934755082871997931726321062164816877356479299337006260375263485994488592556342878071514614631102092645613818173874482248052200257086039767632724368083999006357348159648009454745789308949258301372313097334036443083122266647929583873606079299052699836189613728439896851513618176167727135271117635857403738258354322636621280948790132556496885301686130334429539919836345354329215018823694992340573218391054455695282220706351795901782189323957314686855572587821238887356992031700639105017957259059080546172073855687744893221779677261327465719129061775069261511799620073070643606460997393455161501765640943356399534020962550977336343810617830889378063323586263653933011388547896940222229435481891854383242428555736860821662888187386625950328041343743982485705077405276910938206296441186564944880059153072986774455105312786885800637990245160402064653665723393309284934166688404191110057513449369632600755688469176179967908238513744118005380915094910277767553330557594565417263557330763220709255426209520703725558624822137692431743777853055860949951810616267590423354793461233965567294155334216957040927148312954367754126945556423416449018247694657950049150533341385991067596769273983816801821447213881598679831222211962522710827150216609980639222908817859290438010287339852042064860558678260163985072163311539083687846383704348087333731943173077101912021127006116889734845889648542916028984647956032545803740262338075491716215550829553557548840321283756818174921531153840133248962533319095380335620824322115110311244747918277496199768202084709603984473737115161339448797878064895269899847691821432917534274168868737931794473849789044622513500313706818668100534007230208996593549731790822209015314915841603113360839536015256996558430788027174526226730358509550698332418202495851588152532694890523519499326599688900440904179674328279837824153174839429124572112291605123719698455414938985018867998706346803200611752573915007211993952827317638596890737990037537856894424371036702510937522212086720323959491018357035157732834249949060012903599448360428022913172713707032025015568503054592167180602214243725469542846210016095568774557981817525712064061510623308158599983348854390105899966323476305504948607343246583184741675802139546236309709098690220561870459982427024506228109502360233660841458498642890261829263978974110885594463078561052914214260131733678981080198003173665663167863406768713770489721143714036150019524134545097025859133586541181624702423428513712061325661335861699384409023840762080230459372632211372207462383975120609800887467309076338766513762425167783949545833547919361733746279716520784670855182243423374292544818265997894902210322594908899056778717572937415834336091950297646538194026803266674541301436162080081711478272826142474535650284110489151328080229288297907471784009009707047063543517672863953875518054410621472122516402801554735080758443264485670035539353424030796614961174693513854148742379234475682467879708338163004474458683080052543055408745020856400784907705405345023021476396187433263349701677029721608717963261096184891342374636968243433641707929598418665507207019187563641722201564501286570935830897945284407452374814406907577826103007851065862512520641115554562310009967558107633832362381716692456931059339177529740226182194536146158689747246267731264968136631180989097340819462142490002393529025520566880848351245590413816376440449685298029877914142101961120481331091724018809863043686150971097609076637000474486778613807801294401683938341929287287480113037833147556319817771132622338474653318830763023469780204832209945479713009022672672964377282190024910194810022356699148516441117131633425709073110403025525700230600066754601562659534959555952966343182332298899967224135467268640012521821724340140834189824213461436225901956882527164040201703104563827849396205909614330114304917674487766842126736595160901464509783267659251295347011059014254168296828639167199477516443685758282137780328235855508377437926224690497085556483473699598505792844483124077745049791898097616831199310816754746153366475835445666089763788213640383152289148121874569036096944373593419171335855713397508824099344860827333209088452448637080731158272602298011792033794497529699332095192280472168898977991892269804916118370983865711529199153822982195759530042699189482533294177843647828284273186891566381537412645461218320542198030302318552296620258149231091437151813434168526004338214534954892917606356118147025984803637811665348941731649716808224170505160761337600547670464056674436522011695635380185266311881297335338932675130621833495917165663989705488052406830457782789555437916499882286208264574641392697922078217036830843857174431085019122633218725048398432037315551795996049829248652758979599728310571265997892952520481687419957856763279688437964017177049718319581857316463742131450134258727868813008770088321220054223862214377010489087053169125082129657202517093536603193822377155082635961147906510652590283460358704201016691348546483273603300945247750958944254405984486897454225935459671224474449555325969237576518137100634237016958096765441120729950306489686390066317558394724055645268910534795421294655643540967209742459805483033208714478650798544640161451863413555804831746553945889644377375588854106664396767471059526673667250013965114903650496215095273896574122140309906588144364084717595392808537199381384848853651530792010604700455911786937104698896337675600056931622543941481418509920249706762779743189635015416972736669008821936755660425542673205221088534235954070769345895766228917411167101176759303576552304876389909848711124007891759269693924967801103129979362804491078238639449152463842321983154165040058795567868197556807352128820231114382337314416394031645473950593925990428707179548203138819224142235585630585244706944940981894221699567931615905449343761195647043760916220528764185002213682152422095094544286006906732629798323062178756995879765093546735232358525026290099280152382749809340349304696808394767794349225594098694886247416507804708287164264347933277722278783375377923956471612905253429269742225257709662812123663345726070610141750289225805491560452688512084308785591117871656149155512871477513157714680480906658958827842961391544101319836530996477296152192396195880237236746461575586130405234622029476832030283829022962006799745977556287390079302549686636726643660799001721111438547986935849641680469523784743779769464445928125489278118647616590361714397962677647964192525934704068651089494742944741262464229794653313765674392178858351058057095744574785072971550041831192468463854414537288411900846521843533966599680604904864581395668861329498658956103243933113576718288655373776601415092381914470544092921785794642955878050630085695912089044572157433723742739421829500927737374269833981626681392408074972236007233866335595660944636145989521952306922035873340897795504721755626822589987725330979913812643870028383305424633410323781079872579337786516642497595233232720928573034263435682926901701476817493842640838576876963524552820530053240662713250767154285408696394713179596993014929055679167675710021699260528223004234458181182042866511867438207260668941390905628081472655920608515026744732096705034099021770858496068603499839432953942386498265914498651078832172342583820636635703547007276323786638018592218660772931887743900505977725426206997518284078957115754401896293021679653058677746016517770265560988777598815669986171401083152825237981509486187628866614577107668025357797282034857458022629514576054460372087595908725756643174685583823796905767652794155819563310207592777207351422404734280007390615275973923585933442000812282739137648359064524343754037827534303263898850838543037247819609648387455865963529943946191044675147094038251666208997488075584670470022005110511457655771155000776393691642575914454430094382544674024029726575599810252260495792104305204744571863818634055806572469659471917409983226601936281045427817485087463026959173005690564994110367919010309492768260898292452552097267625265273524716492088631462534388394472459127927765235121947795536362944331916919025550441944562098744199904370411600041230663498031255607981562537293148224652081169848056826672463481960967891566125252929628300786521886127271496494213658567186342172499121225759990369395117713776153660168217150817986148287780380429983855314656967100872125336506375886039426343224899468266063035831269784640427938064134485211753549096428841621595268445843927531927254721748194086325808272873254783394623291961242146897992471478733194381127130730915875651364106583931616652092427060584841885832455412789100423531894366226595686153046872872714353082891770064017065746254219290603902181167847167450404203489206207896108903647976977254011570482780864408225205895987030723535740144686671604100006588240513247298261773694580437277775483626131826509548398682098749374305991893120768824852704672593258437691937859618244395389964501407143096769973926323545709260911970980864089024850345813400771129205969819512870476523228688782179174406740977521912835250830605283157418115483087957649164713448947264964843668876771067148761346389306331080520531353613290891413345041052527082233598253393257184607229516864807015319871847706259028260572616051862047382205422791845202005352498223939852920280583781094046266349879309283949547710270387446464494927413802498708794328122811786693077209173659809741056133074304603235248674449027153201722858729676010085924408511828318458487519819193858326491529008240326669090935937128896564113794041290326664107610457691290129358282330976124015509796735641598531185733086681055390186595645913881355217698436481586016534292967755058933807712198943521085361425803773285036228868379926223173405919120064694101379020948851858325504112874885570630660443475850496182408180032136694568226956209880216156890310455715904646693195309685202795888432181328106722097685143322165850921929636867578173246678375197208828012283153309489084287332141672009882275356616318147709328181968725364693000885397609277789715149946041546633098055574469193117681943505040763709356994977814269795762975749497474331281847847743798146164823155287588146255699843719227228102548059771522209964834281773806279329747951359094191436524898693824347442584845835034103801010594639891563500738694036988342420332499897291778920278851606321827303481140079856286107173091070762573739574361807485062025240788597561846389358017339516088779965724256957559286782234962124675144487365008396493605386735145138173488138797372628755922273511295760182839754050875208841606023546317373912098385438257414406141823306734567623591158317293232010804295528176977301066049155527314181368393588240949006168866886711905781923648212794066325445513676351458480706529851488184515607625211547259586185504760438397082186268856733147825297695134864747516114592400364904366578620072284572448752709790423299627995162172027495715240890282105887991923489575299792873700819375085965034975555901414920378746230400651481241091461905225854860864603105141004013021858016529601469285265333496342023079828435878593875431543167274061638709381754020794428284447279189070012231135689440287079810918649749451689317617348980555756286999027983770326672170052329440417539186025306032854537495725487428743756523491691445976997088095492596561266215932632465373560857187911047679058370666028575644406667328457411569127757555266745001420427536040359952253814724651700405425237035743606668987444941369111733826524749190058669136636573619037584078677491149929595492907110961438594525727784478910721210810449764554163769675800394848437111496701030629158558353074810324842889318611926754879008403890687468005265792473147528602479752373724702787993526582559036925407384504216067440580857101130823979478304252997117120485979433426615137064372359182355172560228006680901302616012800217420200807553855247035428567690280031098328677088485476995724977939499103849501893909113292897062828963420694517298679714114320346044948775591211680775650035705256434936830666743966275109128596839941693270338398636288631845879136042473096857793165846855849536227800998427538293893911078124093715096618126123156920339697194026418476718959025539889469736504241773949972736858019486205244146399770652663267979670632267971417626518380559571811803707919869321144031710264282839486835475203030746575113870970972029733329109765269260954649077049195895880539699752478691529761403508197183750546377572263821068107827640263571857719710914110842007313968798148602054298606582188338963523838547591313265734315704978178902286209984152383292523538205957369427576347708596740858564824273953797457261993432108848971773413215405753830294210811113007353609598697399212339580682101142623189148768027517356581065628207030110517237837966862231329660366229594097508977818399261126684770057306117426738628971245440761198216545707095093402145910578037744336453995701113658516107129247052102880336118720458082790409207261183169062802397075189944821666687271636491160330547694170005961024087684302459781793575428733733726460564356821729015119296835470141528131223763416336459113409957583401331897046092044426065083359681363371204815871807005966303224791064138879695480520000252369715259293390909275531992531474834341622662451980866479796665497616904216170634961648254147716031196541506529843762010206218369713995344728037946192272425208256583747201645787734469157348389600053721306219357890582642670199554926148584306268041764031816877383738515630450410145595369335689013440028015932956735611299172368622703861859112838356780871846183081441174532282481511583873748163371249029520318666699503310761344768903760117393207743735838007323078320115985030216645266219942545997500042703057130389181784678708557330789622869006976102308526761683949164362662669279802270581765006828557219851207480535309584022053912009284078373892208081147163480267189626097858556345747556288619853972967935817900902908274409301370839700690945764517161389517515830641569721625230562400860772101105514162064126008154614894526624724944190651961363898263385146688360140008742552858448263709492485570104493268635361196312772386936591285787823296455539359605683294080265812937731617518714023339156212755701325932528199725434010109126793264094097992435164428720305783775836652731555393675489756648878701032081419845499274942714567491784853338407229092899469524191364273827167914633538545219748154665624346793359117655518470003743481652768388459573318824677339747290023299332575691439903197797346528860275247748926626280108059343663652170584311988687064478855513142446404954699320821946563490218983219885476718823052675557394101724568273569274944410346884945334241402772220604862624836009019656317821318520002152983935751121631751034076788516209809760442576126214793727692661245724322373436532622458487126441485335039087821011646482546834732100301615018658117615172136733873692728925269108931711202744108966182724925579623059594630995537725097576667497090270677805146666052194784496462455938528457707040706263370682083057188803494005982061302129220415960497820998661974803484261209384178314250705548662456066920901193324547060949752547600980527414195493842154984956922376424363128092786728376434450445564007407206347442211867930007849202182579853258357767800108968195415145978139867402949098391342382327979873808168951523296397913030410079097576697263031576448544487488603076755304102658005984596174020027888935178590994495615893150069648664276401231633226464385806622323028320271788060488367728989845213637849114674453261317750713485527111906463604613518693405955729508800717591059814413677436120576946014909337713760937756171205786270829042199003738664644694923541030810489626387612748473359840353983527410589808919217746636181432447948471886521466785209997913471154349864565728814885739819285132307644906573561035421925193828236174291890151625500325039963333153430211408129047875906689589061730197854522104369934419922268933104611633897357289093371691118523463674331391706340389761083101370846268151534036041548733651210959236178005205431449108041827560765532178409414171028761840873482326271802517307332973322448519939993870172319733159397219512015064402623115049695238989599226711554019186542143493276151744488068451093805496948959765609326980507745244546423239785588618732193951540943491178091150276022120534642209969876840286319437855080641994138319661969125242980869864967567415960501417698801432278538804534626266379854012540508441535946455616640103920380525690623333307235868057794988745105070697372011864776389731631258073693277688957597002452277961604866025465531505282361529405259231882765040543566095633738678474202209275130985947829653084870894251193104113931946583024155538498672624943100271782800922317524777639217461663898028457103103499460527116287155181683082525167186596500429031765150717024480251710402024846988020186603053837449922767287675139774523158377371405634543267991378188892903561211650016393451361500515803103019333435690321559480140960253923338253025736818518158510678344286471921025720328300037900278522620467314888717772595804346119609783111197292417928061026395977628228514858172469400499906327905236365511615319499347311628558701422052657352800485877195126412701645700811113603953918802075941608725047036301119389533605930295202316020017107919832129360197002756500073913958695555323520453371118915740237790899796719258508580723781055482980567208255387926286343395544416068671974789148900856684363405636824734881885177517175663148640739482444537393348887945852899825398448922802399948895336152709922134716294845701942486582438584370824178990492722026782516684733024370888028061173090000873883713601325409859736121906568834000219153486313051579523989885433915325278032076454560177117570775732151171248630322014821985884084516823946841131453190757910924336079254529032038937227423556057619002510067837174842502815200468880688731088680791485758652870966852206590467170126282362037190213452451560426328375825101192049797673320602170687353612387888435659015060314772735825861483038791359266417737723288547905554072133955676947971622178402695921884152983514345084830526873629945475775243353624140600639585943144038901486019574757367780982176569060247200569933391775223827054277728244632783329617311609060357731104392145267365336078406419009567914393395280202407495603990756848934294897067038888521881387321941839404158734339259214333008803784324616522592608399975721426918226403610168835216681119093769304302994942827481261232682341282662016477834994893960430989775490252440364357412761946940603354543891243285377084140924830543350658595865874847037635141278661371020786863988509569347224254943080661422292346921132402836216388108355677572183907104007388753461484159944569879609812494990428784952421613112383911968532322467852103974804968957860981099930660781262859398264028182742279934930766094041836848604913676388042230549872098122118691972426421565559849250926061479887164196697441497392249403787625898322028488821525516895233994538371217237650780495774526831879774660431083489066901487279520908894668136418594457220131373630404379648765398705497768399786801768321184266021240274752132585831203187800734960503588224324585709187884690905916415855756970193523440768110850687081562245239269153035077222180489697776343760468538913995044777521456423191542161763070827791857645041787158550242331975421920228933559103745509146443590707709830628833868505725576010749509052505893538146769952297618212724492966415214333665622604498214021681226717527902514627318404769299338805141570505011862452599130934214748107460765657539310512872010547164553272757480745405420256785982185821844119259247485045896367693740975331305928938359928933943983023686749646338095488862200086537456479423294957976487334489645092891755887905949635142873188138221422754014986325828757089521782870912267710063101927435924288046563566259564058447108723403056843980658762028081382801000403961560576711620147409049703949583305505824238386640593997354309249584809365139336507445757354028949872073979370999606705829297525071164757459471858286367864309751320355606056632050355489357324004639969099976370307507154675276962975256275269615430178701941949970382304181589601739524119148922457027253864518473377103708200184035451417633961967037850878811809438773495079065327539484292257868309441006850603689108510341511570145268198479671008681137782644833955420320279745933001742687970901369728763521492729750349206420777498332389385142533402344453882886616885437200985232621819898810865775346988537881882355050021601437486508572739481599474080359842255517719689300356861789873971538067128397830469402879218161595357197006261655258750319111013307468451712077955635379168323491108052564100707674544898664932186689015483788197165230104078116606567653707534164288816547090399355313005664102143933103314438383932768986458370828111269844856604492054878025161542723810620068019700751877542790041484164600866426421141981328381946837443562867851505079027629682674881836959780838030325797558442161475593464024236261948144224965292194665118409521660708477160384770376860721096167285743224243425580649070135908094179213103093890836088171620649095297581893116763452728273510441083066204358077700838766801003330472421256881075100081220318873865626868133066742656832459785103254443843949290379995962625593743848294528539256180506252644766807738763307575409727783641380022320008596027366329761266208328842487578273757420295063303574899015555549522726792480662917497367370396572438441696071471239690471461152513012551197981731412030939714999273446716088748505858589866402389788600697843676988359700438441071229352926044862730758835977752463549208443822915857838088216106019510525848218491420489400604984582683073879211040069556718251167069643217122239752130630224507822464140450493404583621342213445246273871884802232700093591218532158331094216427134121686336665949370578974189816565847334275965607411893749515346789512759086139283150276282882343383402869683142010589878885829410875385584123071103284361696826314883528518011577238688131560499041878244465904267826063971035519659101504379907337467679025842725302476892154690981173058792016242778123698045883573299166381244041114270487587804299994853872202425036848629588154348196972105083510517114967646866947215990032352881636715920888851979002440217227737805351152749436545116890138499656509372445582949652955219876441014457610204643944225273772968518321891832826280822373385060822868554035712750574730583846578262152446770769160837080410668883793061002191947538685186596630081012563956584022701066037154307098078535598145916085692670414927825080608644471291460398780094212302534875417973202903470097945003446550147310392474973298947495238572056636478963534919839034356951401648002178726806106120735990991574046515262589951022342139148302713882988396069729140722669409632980251098606523709864872157257761448458963748398239571719702852833520924687422628379417621389388115979297195940050875541463808479560668782192912912575548004193734353042368385370104940718255224463915027930926194883067207965064285137180507015121782006644159134515763415114088746095625808635103758048460545325430203719502692675892236941005306247031482131926447002402686356949819721688364190250173403516702387221549237598852802336345516893563884356694186946778454252028896507844544579796667351317030944125274020560895277441058557907254206807924343261621440369993309180470750392130788848775890610363272660928580586834025313572168298544584689150981503940342890547889809128576766082869941180517851193146784768116539388748859712892045332714485502603768180996787631110881141690208190980007488616586457808147085614667480010891405933198921084524740999385676122610749418261336225306167942569889333723626890112846291758872961424359325586279025068469328582405691900416177804278397337666363034361398816287138769797471079662241372895193000617352611507209441335365240220373621120878882054136693459599433081560422876711125302468959006135946971975695062755348337445240265791877385913804618165536171304710621294588826615617923004937316129416415864211782223537475108102483553744755871434187349275673906841935448408263513184933159778837169422503061804211544922457946292171779880033264034220793826877576863160708325140809043602793173316490786336951231281517390837978056142631013359992594665342108527703218049785853468657929636744665957525115603185915390369918718045005162646300945696145089067887702589765263044987709245353633591579611580882195277943746978044644874096605607779762875532734695566256330551906747685032829983288343728858912295878768171137003715981056300201647907091478501613924703041484428802490613147783956559266716170916588460867153592944798917749889338499223191966872960208804741133131777117764193339348466463047359515079344946489630916320123512333588086903512044480916979026221053494508701859186888644070544533365759430887213530018717841525079929192005683882211087383465020023430594555645678963251588332888012884570427789960839369941164639189139919065465153109602354401422388704719264343328906620229509103538466956120335544049645923025670232788618469754101248846621836196697398965410913904744640527600046010377730876271246302277044065598222531713938832044110946543424048188852935008459239057796094230119813649052361083821829196362947288829931962645696775037474854938901121896220056174165349824864569273561619580991162493115112994741708941222359863261951571008843232456487968134551811096576161184816496930870185610140276386113649274868937401605720845295346121910921055563659443131601592684132465828062853063669594769152529350941860309604200706452405324479085498898990397484095612191466537111399297214219562288238953211032021014015778039846295274844302608351723639898188670138131270552717919845461072406966578367230881075805911728610644168129905666236699943114623159864149341149939128217863219089139595424064276199772570284804163996085980456283428133792012823487394089324495633598856387060028362648442581234305776779132588153262099903991435754165458300720925449364394518550979108441928255540892906832296496159765077832080802577700195650406195034605712426054605427868158213348979204117505146202282913917462518844404412803552471383273856685922735064377638950216182223412844597478010818663028012451269063031838903177753536363644471917393733478875393014304208267670149744786877748978355281301665161198012497310642697341844560891704790614100734549767592138699043306304487920016256603283286190646727949098257089240403823363418001440118461318804564739690467174483286664272769440332435036107371120042257677069190109452238445183327635670458477164715540740727493985045670527586958921383493198417891687562585609183113488110085409553683232221209929229138874821183358766864358638164846907608717107921658972729322372436574894702921958295882191338285457102373852963132555948444466879111083707084569625078522645784754752634230654307743814968639841737965227322660788866899875851580007882057482339686823068250263754438248749970642306868775740850595375206954417073847575429558521994494661297180805710365510368025092234953996675391733522873683373734961777167264883027975008142876532996686675007941571227771511766643124707983190231880123408655248269402389747076188698525761814350796674274624607430928720974219179295177938111020913270942110651185682693077576097792337011506963267991629534824356221162305145123246138584042572197750140168918086152153957501765008744794215288574625451310566523851768763724670652129837232711704606015261317892213634699160543383698958979295211372467571304232669939932396001408825406830978793199608922238012508955490296575607419817519663532491171647676316671556022925082386262085017356215173304172318142771392064434000853613966854654392624556619353327490936677856138169107082063815200987656168031068386480019518176037160541332688064498312311638663210618429277364446569861733911903714318707034483815114654788044751794306979683005419109204326470847130451603260921002975431398120130221008474833930263310590177365567087712575927280485909016100724847372477870358896561488013212981032871669275453885710453896054868425980378672128066962056525760402410165561843704338365994283440647156656335783573146463959243488147281358344302560862329360193743038655791782724097414756668878857548280543401907155375211011130193157345601751326675933169700103868956574240880937901483610633011351005345694998129283752373256090995391632575955337403302038525570029600651727818085968421744475273327463831630769402534324014744176540283929260218470102732031090212653324263963429525975914976597771026744620522911941866390806777879483786153512539658676493702964945744968956794414170448964614029330591512863886408870856320303177999311786511935166200520242799477953418966561304789712534078943852233047860943556463162776411819399818029254619560551750418875442208393901926087302584924621540137551545871741122352237413947530950778450890849457100876958010585469129616310398748425659889107119625439297350980393571010919138107867903181292349157032721101004807590110971842450091497375163359244498049509859692522996930189368502786565700016873655755358186887389847166875720390812506062788152316654277618924634469732854956479001248351319742828081746364015942677258628378599768626685392163520982356185456673219866466262073983587809173663949444030952872580385591899387481233165896673056632132018399255876841010437280247960025530960940699075045944110115268314015569718212130073326551706269551847162669720736436337523935345373677181583121131087515140280329089513934728522417505115368869039636118531361694816402559762092119498277646607279738527870700512342193765581037822127934756486140105869589414563549624976095096859640580798950484671366924650934841875880921787522156355785876819913652795395053673679753672321371350162106845933466579538687822397766717089637190497176966896906377921750526391985567734413691885838209442633895057151629640842803295941833417623661359100021816120927979583078037122778707073640529880890205349375798636209943111311402657904573952565550340253744643635037822001891472712206143972943937362175344109185212917841215014440232739781364745287368048548027396610587265481777824531648808232909019722420723426820508173995532850151747203819625814608768665241132792758839619778957219974386928259606483546556958790293880020657888726783761126855431892570544109145940977766309894253555617204874637192934894165739921259112054783180244757374576229704376296714164644524725957978671377443807387172137769101746446765945741239375661960315875788336715048692437370062508762570361638602391164394808562895406964879879954745098853092587002755935421008316631784058756613917325668577768342851127455884839903632384514477685124862425840532033832132992650405611611513444489145513887357651281869394142752858289414091525126995998923581112143228807894566611856582360718743082185533303290039571990473474468684669706368332273539645717002600363032385221622474191864795459554831883498100779117956194626451020616124903244094731669582794919740890321799150948168364524133095388818030239283626107733820437396864609076103712379346271318591150354507518153380112924366563487092277478709819102506118424737881998322296985762443940919359327887373178926776211612512084167569063669357884569773164465848742025610151254054044759547670071420597385343485966798198402180215417665855285990323285095435710193270795177246789103324627655920683021912890212362713081282957460418617030901213649800218261373795709580212690145685697121889900604720714169870211441857199960841974669269009764873546864717411530829355226757040657113606531792269084981573317775143742007431986165231276954895186909318267950095949637446857513299055122872797230823758403464168559598662392480657729773002554350863399039254773386959687762672608099354469633644786380590521608315145629224045916215447188890882847586312074173037730690178821932083453718563607183163089955630348954746448871559176286810327510129406281932168355168351888737502291279021961021922481102624557384889413182572331482337829258878763360285432675249247732272224319143588974035485428103516138155326640600485134402888892581554809304498460450134804517121661567287324488786057819193748903737772343734762685581288262989467387094033452242295574465427771944517154497597213544940555737461945207411509122604481432212786945101206469717562541211949071614397889817980841435012610752403333000905941460514056290890936125724113813633743191027615757260843797396477662240030628850412594764658863559212589160727350432161985314005940431802458027934766512077843763482563202851561148477209056659145285814870943086331405966026232725840942825868843123697080483925306865657665820165437384736157471254826291925219461631214890407843569404708785273694911234261463501509697315759927865992798654803469167765356470383688832269520860001518713427045151660450258293508590268912528072161662764446742880894684822711532474821578290523153306703169433441297033124446327976697680422360256684774802823877820637595776199541453053090809194746816046889848109088729836948980968669505603334148555407785977817350504096675831240100527489947158556217617675830726057789116621313127888453908723945086547063645522379225359430305189986208863327005882626072370164507580938162655885376384091224440027271991078637527667253822095540229525104582147481854129320701620761252021154749038862467969681746218402256855970010092011657089180969838708403328693576299856976073597343891058971328481742417195536506476248992666828197694612461378090611138955428695143572423895019161080224088262661657789157992121552754510251082377285037569628763674115141849622748800945251999082376811537454380561225795491097575534183404351958419604140500169535506519972785840053108137072737064926769912249203026853363620384353847975350781523411337787170805598335977627759083853776253259684543694548541252350621320680269933005488204775349821657645179207784484770342764863250248259867522421306997474115531639016755524413512126955890724782177959492460611802430822039116737751410569583777184022856048784751438170325054974358582869735445390694376400500042251313124844627121116630633131469295830589149387230516583025911565208767573432684233724023532819725009745505344995250800539708512976840504972122934104169874993142216421879354350225606739435626349281955989032393046580312978962329756605763325595692603563102252994226776276165336236032140589436161966733710652560355533420244646427251965975645983077870192621608406864891122550910977359529241885696787353960736710380826912204318828184192560714063967256424653286235515353685748753783767999175037517374353777909346139705030997709960901378376122511895540744049915881613864273041526397424028914594905987877984166911995450205371494931875535661964125047710825670147661813061570640514664315271932969239494753551380297304673895451194643672273617610078726624497535091384174079435357522502675067535296010979848425362624902340766350480437912085130131819196144359778319193403002854959197758102903590300448752003376642007266856455776623765070144866439590282573400993100039907238444472808164345829193212431301484041138276307571532824968748764338269205442716278171572931423685228582273873546339962145663886700739077452874816107204566283979853222591985068530935861846540116728219667639162182287586745186775919037678289975502494335299282042680741237129020194514716617659700157260033933588025904631928222343339364201999035873511529076704070205766409254410261956903840972298267136464072945427044895107217581235944879329392434906133008618240727669297497628166249843232268015094921398921102680280788646305171907700118127181087755089402609081431056612971560328573710689212304841284985361438336846344943164875807082949710774810146776252362141515481256086730448685208624191453056911016766668761936428159852212336563582512282904822434993899604355901655548249658687345661044870157702892490792347482233304767673512214733553688578554133735952668615349700901368894977421053068132347995045098950458204703100316011328008448997437071953001246983925267956849630931381847012669661740895460298032463450410045501685962359623527527515928358978409429840033918250446633938762157116003580497230154335690444295070935395954359319640820341536047344229954896898396878545955533109340855451065003546415318186799842935312394131772897181818695930829032591822452769355241887762958293891141131667417328813461098024703059603468592468871987739641108157239948579422646151788510593270238602662603235446068863695403553117883629321504946803096744819507536494617021468938751942212599221464833647370128982584884653512181211941282481058418415517626996580607366361260398311872740791316001473176982268861190719453894386544227971465300639544866575091302131846572240489546106238565480973130788467868063096243115367080991828462211339820252186917671886217019632579058929588249216474840471889881961039395015769608645601121921255583959859213287191100379187796187073672321265732883678487841913556038897186756180902098204962689183633189203769460859826540856729124924705386653618629609314535856838805308871412137581198518586806580471109746987090428753263330682848159966054230287589782923743725527102386103351151951831568962834928064808133684076835225378704992838444888771513328702114510841253440956307157600827246754365293740412137949691074275137196670895545117717778084089434176054311407918139328465900443443940644921650733184692042080667056087340946022930797330375610630137320303601059098328432026088147705479999085048323020260752787013234736049122369569924387729420894786554394835419387749752048875899479353190779410906828287958980010938092589740826422136897386389113648197720954037477704524378939757535654497807468965944500204731610911110178306521682348066350348720723400197048020305363286876693914809546955015877564587967634127616050665070703481707257295952090610001382949378417375941482056046484143699082140933577665993969144058500336661984399936859246370888010455197115167697710344691053915973037990551325943772903271488462818364447959449494680431138072963273134357359533401110734084969150742342251471778183606824401300315200186608958719219069139960700715186666146554871270797912085688213664662872158308626033259545061985832296354073885164723655684611552169381982598752954801156988935184575952089576845960639745200064052794284232191980523837305785091004069680307161463014949038416405076490722877629967632362961704757667390268224207416216568693301960605334223131735951726491158895119498609041967251433588392382233654163093613961756815064283579736572301217841055191195704970116687658422754947800246207524567663810708874405254487338602037719928863275677656577541715386457312678739578597216889007725647476292600883366139634304469836052858205186909147990176471637832354801264024329261763774572180012819656452918555010269595126108477532994402885307058978146775709596777838570382306713332613116392411428043643542367925501298984477151304906617765039071776523176596699662301627507538679451864332851933523230070020462159975838531689026550049442636721627868301148495769553347402864671065485897583515601203617009239079468448522285513787461722878035501070354578353184892154534525829177036026735245347888311275972492992896519122864562710424866583923590708082301352774772766875661356476255592482431695390495462049889793908974017958695039377483938648570444816673598104499846453845380203550277994905066592254897614298335468282041919556696003633825826850867371650051474257459319132367805480272003239529068812805312152645744651887449842425888644000463584857770853336039458697864023502868438299044297458777245861654557594425667742702311940332607102093254972295371501932821635806576756674257695645711924133986579265858222014706382776791566123122280517689723923596339730303704356188258201424341214400853816990749974923778296904856094423926907981078586957870497366059063742766229440199107877633441994208055906498333757327235017626478731598694735480517705887878500170310880965736715785613862058152374293582072696998958078638635322892796382139818263207632498712165815806815058344152648786687027380369597487125546643052104451804140869863304833623183952518919520077317307040166613062884202168330637048881489200009766740737808620009636103767087695831470757842590142426588619015020496172950422134065656064141257642133332277049093490327686015572722564863795378262362490998680768913166574549851938895865484403572922055141846410464993886954291756326179837496294420267038877064734284484490377978109403181378018532156579847229588764224033995753571755898983113636629595753693055516435244796014108528403104949004588648460131306541137585753531913894585900348032495469981443926240885252492594787436562377747726580212020123081769964073117274320560091238429672846848135370800544123740562493685165586505368765071921386304450333978483450440734972756172842562026969038740701159338031915189939431229093150509849172445722048165182109692583502398161717357583715931807740572057554280000415620296502387371599990804405140368905493920106776560755926026532495910099045176677315711753741015991790944099084787937262774717921454809500583406536713641737097271349893590858726547101939522608432866623714684274397391581176234266169234422077586904580214071061295276106010674729500747217333126253681061006127546311869793182296355978852774412816864155739365946283075846186600338975995688979939085707165526237858647208064849665470748408119235761448528443014178843632260756474865743664406658002660865403324777819505765796668124454539136728438023199906586349134791995623497087790772478353226383386298915004433821964219235773444849265159129681693360095247858803263172568743191205658839357047215149989796063202452927213195800765111512913488188033787221580778005535089722898812662635936945441737190588467341137223380592696517854271369826750063846048986804673057611806640802106655068985049890491380001224544862522283919710323892777693189919914086427223760169352736654806575718825186940954628773437525063163022115344354330064286055794925805778429517076769210325225200404458098078416737318706291540715878243835257572405670970314340849472471663916592120715454149539860006249383709767531612747447818895596733598028259515337365462925655290586220688656630637922394401755872633853884208614950997344495147033169853632836663237004797932699827543688634637973888567925742674165257898302125843932712282246335623170667516883883115772818597506963166461884699825033414098865381230982127226840976183740543877814014557151567525844613959939512516667327950542248992931352001503843924556679720921042454166676593924447723558553991023037097626517774661330076118057150868710804233972017517372129838918180977335452813429211335694788761133805840916045525915753341336908387249783054306221462354491747652961639826747052509863702804619975255208251352452800218349827277358395832175152554970373582916585023110842201899528524926552528989278521772275690875388622805697100064139432255225608316118513101921481690659056288834299778347232182132371044626662906940053386714398057471475123567292262505074208203959010537116075588629388569356424569355171087507968706525742446806746353481057383111675125491467583241175607090172644780547135559722123422625125431458686931104455173706405651573394752794823848073010784119931576591735864386474741270498033242721711726194652516779959101583255760624945766946041277611645378222545134018439450503280895754015706476200489553760435186444048472050616003466221182638947634364751291177333115602771856821805937119433166405024869215814900891007890888288709392191134532514476255569262226643247636166248712689847748436534190078799130887074994164327129631349614426992361574894559511600882740592986803752108298272922648556404638579495066457114135704484754713182070688972961478473909946113572817546879121556802203624689789585744541671696944785317346884730914170928580284525124535697484215527128380568109353950236622459424002499072860119595749628372506722429664205530134847942254770616203107296929926335375483913925092274680352612962535485852433469967592593948074872880734886038925331778972087161568387853877471787516408006585438589417680294719884222187062936907336389556385515978045081210097633848834770762784140000736417672247706038682327054065310489712216371578212212172085713364904375973437461491484012494718332330461998574625057979817014095096661952727437628267608758744693632004328538947610132996033989172052591722603664792430362419797017589998212080623827553297216991205589201882252546978817398468322574605743352820401150603305431238258816644892078428785734790450238465435009655243439596197892603952680842477284246151010662626069784779416996160766868768016304754898452951689286548268667761424980263580447387361124701731221909483831909741661815293114416290107020068439241425973677772898911489023596832229706011846232359098746647536523725834849961503198040663664800411100904230437333496139956619914255984021744450636850496427131576200072456388432247235712721510150593255563381218469352584052067112297495934223614713191094174622595874059772387380147978845949455632141580083570798052641998261352073378636391085089286052436840244542186816311941482117236880050421445949520988733920381848757543930670816155683926042413593323552201803551287257486882548806191707289377389836639748918595246867384337070097032618082033223825521732445159261952431741480652328224325379074050039694870102639009325580284944924539147157269409768470629775290711696245485405823073788578340714652241284180359219262071112265683722686201512269683745957741175534478510917192016211264214689465585269085481335100654686511197932002599375402771074481440349569935992103867523918381754860075054526931121641051833761367455534818147697230897045709736418373837645013177241237246695554144770809903371190960433577627233718236180253124410580041923133336256891986394893327169254670606609759058313019801772947623651400099708082482834411737476801554712788948410880307517441235631258504524336416201065206687945033823827617407842301437321971639659109670976306462891249052429892110425577193129847654015133777868284012586796762217976212129186645195522841745686739435468718827070100003200204052265768314368981968548620754652753187116002708044776001730069803550209678066448762862373787635463151866591454987306615274102568963675967620624568944172129354221787401223535149425331443318207440295270546032926677297421124303219584404847717603450890773573914264405181846841491581531988308632761264606990747863289632160003710576020232743383508885836015455907131556389111887676801185380703883706330796006183953503205463785899839054410444262725143560211904613870120576655550936095835521363597501700707972300792830238811765782323911188908456454597821394294196094642673800827250832894505332696336801047904459924967564171271768977351592734771027398763250834654344121959768643681402715751742536088976962774476700385335439608339024291669586330976997160983992387231888325335010562763597626688955739569227498328280429417204230176363618509405644062869091805572582713478206197258346236930798604498860185166844818128107420642339014126302027996114783116150057104342017418736030331333309275464220711328117157672415474678335248309813680407116034963982878591262955644620618801138925112651020499944252349747574591883669540866304606597104877337519921047134087056746828260206304961074507777435617268063260282628508902413799044914307660072910572215648733288953409244546855351168775140094830445622824675548726020085064329590532535216795290615212830397741257850556956435396134272323927547527480778064914749051528498602730851132738466065942507713602929568424697796967967404538667164016811557882526737490544686201484246016559347947850181231736629971679476535701980123738430787932121659332051271237624013660638430527962519873979973906303832267852565081687527844902045714078608324947720512051365682177555930878560334142808289134034163801974442668949099286661443067759748814083902336844969752104945532071296895521120889349873996081070592236803060723538887504454906748852544811709402451156898411829713080984062676900092458190779683278159762895119944159005327811889345168138554540517291025780128321012407710782272409770396009125036011300945676130654324840746119192000122656940286168368782596279234799242870325731633359911512721557037221489749692765495216454900638627055522486524501985085863291510631024313495307982658892308706304174743162915174340648691037412865541062611904891843657655772249663542173830194871814118722542866020987792114223118005708548101435642509548352128543242436316493615050624227045948951892764407486344211075851360494880188196102084307529715411815517741370812499597864984022539233123473475442909908235112195905997625571672343759136327897169842347470045119311942931294180359729861499530957199034810229938076534916295208359381051537441727540365760285350215882252997726799462848213281881276696108538267768438487432342167226505789412175148996372185842276952181300065370224909795087414637169783819226746881612783421343163759852967590160293756510193561482107097824359552613646989599842373270305309917169057228350153650924652352187679803730274358465531387129017929521731903543182333025267681371257566526187064448248344093342753624411231074021911653500895979988486392401494701992253073200159333187392768863108334953018389768921870372141854289968843723621954209795636551715752957498501300621420566072358602091896993650490919624831683895150584291339534598260867057981349751144288150279334473349823550027630785049313399029248468067543556332161894625336779431687339194670697102217375848115284543116326532175431030045351944470298967093800161728894885696034533513185318671685536640521261479300054906647573739456746987315589939338823554099422662641951824231489698248147598935155877005704636544411634841730924618733818755441390563694949945008078604812829497680229772681530250920609323010746304920828587396829912584058403567826991764380904027344887541289240379295501338936011348345619956798962468128129947499587886126614051403251704171128905374246592223919619381635800373218991430915854866538969270330380671560367411319142801424187104764201954430635515273105492388900238691319624068016541751724456869504158385366480180931933655370921164551028557912390233281140884936848510339422121062279687109622270425384957910018621105571800292611112743411126668181350158395981429043316372688987437010035959344749397942027819302873026725692832816477057498734271406063314308020582843475905222300946430750549077062184133986050204605801340262056848658904466481739822834907013131928563912754373838474837437537904327449744076012639030809746906854946277694477359204482779826107338739941729438046752995196420175271006148855908450623907404416364601111692469087706677045850904440344136028907704988894080752218314596522417099927366638436570094077846615235529694121421538863732249551534662668545705217539490939415202520615114169997867138082270833689227000820080302028139177114555681202967273917202345668342992932897104363064153078234768322759220814499109213819183998656987520037711527027122686116879419263563036126357352041132876829999992411015488646267236457620955912474380437069920230747867419465122983118671475697939741865482704925763579385872078320304313158229825984764107580897050971423321013092297748322086689350515818345958450636846794554374792549568512175465163538719705866169759048398603797730820794402725753616295347321499837170038732187649684135852482163609231011874929405323097193652313636087377863747272272364914680719890360388341714546255327071713186551396686983081031001304857592983865523417497129905836715123670982162338687894166645723409495535665642467873313629227012525391271780739997103334187799226066052348598623464142747327318536314131345877469130341084993591928282789689888247114018516448300784839597907574627130577015853920826054388693029338114336685881272403529567571419636112913866437492001587903089629912774134436146788383088308808006684478993714156267345591906625954299555439247226954526915226546499179098407890374320962585801383353315289013202426339819391739376537506990771337490463545635983183527591173577112929493788818619192782803155627150862849142069144109673469203838949342873317712610782141540553313642150324954665996815983534991705829562229567098804108316521230991823959142199937310033743827104589966006145839469125684679877952804802279988844056393717068354499269516831103443768860729201646903469269823927538215930628631117771011270301378149820106315783591002343508392939692990923321629235220246048314668971553496477873477558672011355041437897570500749407812351434014156772169214993086499230828080127665342413162085752725711651303623671311673354490142931952280818837576534276478208598632042503261648054888439143541614248946628382739239054502689031175732617226525466838827384662665078436562166337625787243039406921686474532875540390260811715259283606618266764274216318956938929554962829403928570632727608559351545809103091622732795639780530013856689289637445622511488223096692596698878114271129339539162099681898188857900734665882710699739099253584560268344081101425538386711737698088692545287484804302875647447197570803566209016755756824041296628589094174111196442230736075980339677768780711703548711877455170914717509592647411860998144806884495877244874350839383633151173646111852601920137984156700214711958853145289160256931091122706346668404929094190662530938606435889063215518563214484282802718783081494032447745438840667519062336898631328029707998865305772781236550781700396149726555760631272037631150297987812128350581278609505930805569152880966714345906479802613383623087119768851492668661587901851474639445698899782117301599422065730001856432069133864604740780270663644123051968944536936682137030486357032526376385822603644568387515597383873659588552503300282650221249076139764012111580944396920273874370160596346588185744809988803952622883557259108514848060502643441081418587693702809512896662823848364044767924329579766879281874008661091122148378124185958600780858585478815651409567538593576246123607457416093882061968409451830617208619827518603210947466937188925535117912685906107876868390605043190977221947110885103745748411626551645634791517969375057561623395707268121193224669226388011053139496137788553518566397866092337167811256235869717627021762412272119026646881416575633910231477688716155094996051740748787463143443402846078568369449183495179063025812239772911415402533308386361634260796579129080858263563482777899520079112188666926397848323114283144893929162642476860119318864098961677480951527207125540593227833706990034700878298038043834402271212132154911743259169565371144013785638841790434278853283277335828928539234014920069631262532652633370068709147911459643737320294387124299886862367010901083451172280109534769090337531124019137445337277689445800624279037462384741404941444678400859819506923696002927135304155588594714519223970502853058879431491735939805579637644683884480913356156104668979818317185289094176758681688236965204544863467335572459913940479000554905305215280815135175204074797922356087088826151258475603233354842208174535620700470006829378016660818642275741843532578368544995731522390504807266506464008800717753316717045408760003241022793775452648416274694064387781758798616143945050124746863845279547975360877530240034389386842329119282379469317371474589654913965645388259405514232407465220210067788658654783683020633662744822795263245261387547595118150446281260341991729141186072816172700366952090029198403310304325108295820343606097720972382789339331700874936661738660165429741369566052736040730297493725460535156760081933112811631563166016134852910608286997151193452435494268586009953349135218704827821090314563778939399303606182980449532361049863913830113683419290195391402215415727534230834279360158400059938089135732283266923028096869396643520941195381701040450967155437748201512039931863971046476534335362927326444113431203024666540937151917068418451285087092621793976363786782304442957382696250008985133515558074164514678832293412422991052733813869914874493350773822077226410212124833650929292842500119114914300901670742149739177160008180940099754586852482461469848208981177314704966181708089009198232526302349501317099645807711385957978897163364926353569038890043112158312940594274258083102231032015916283480311851249951675051380005976292237019933411906355250618884267915081546752087203756568291176964630535893250264632062981439916940473848065025321533912956547942848872063986129824123825868914780808923826768095916536747842307958859679919545965159202301379802498363392914048037732133064013051178950355125394317850049490990022699925407692892882307602660560500723185521612570897212377779918625569436756503792693863150944776933850383849367041802772103470453550406317303733578475136018935030216321891295930844040422545214576142226495333081771554198625112884427460662912519570577141044928672129204314627368225179570750685941915674909488266228192881171670677248874654939353984436874685354272749203191091859067053922959126687957662318106251226656399922156833915977116408003076603688407551406932658123473475773829140158830636700364676119501666183916562397582312953418648828412092386936030368122387294077265415963487294146925380454102312212255350174506895651418036496992343700280337201687489664596175693700150641079922935419945897033611560869840864532941682790258489531706805007563971044950362059172750095340600988866448176716410089822154626150998449744874586545757956875313627134580007054686159195342163331469735837961697415012685940597927325540774156373726213680083749726269700860595915335979026683794360186509582027642109908669096863376835108189256715724809029135923013698326083356275077323617069920131443815337433677886261751945651741573050974250680042097271975245913844542534342995050382109092334091792475704081928520722005885949256839820476217098634363297340750694734718057412754817696811421591991146823522479301771583289242877271699233810220039157136441979820023498529578334329566736347306923859774244311542652851252243665340851840024109629346189221275978874032358765255315310386026022556598334798527957012445522555858889287552255351606434070265676139230435639749383673799840543030630159203995458871077057839087829934450364510690002487317413322857205478359806107771732782853281044406816803577653272071039048536331203515291284803912103971593781227192703176353830387905021841312068337749453179108628188763200648283688550839718361546542688586248658193460244118928614676561438955729014368170585798332613407591276313000599431807837988489520803255781735860782868780335971389741058897539356668947130408563278050277382240613591926724580676543542849773959029365792763752950109240397790676466895132537555208859798802076326583054218975263967849454093437535502858729255493534012579892872533779312741711678993830639038548842163191494449452496088300778326519772057854382311780417087613647734640074980659394975036126983658914066722596916878387425078277346085819592948316206667902763338122941116191923649439155564002418212895884408027161432345958523544938021149394790912433574765363079988059473129038821071399582107271653223416893769298116556314531540951894923586291458088456144028947345289397940468339629044853887655225649298322990425776118859905013130256187923160383744472545948223572405636288951545153932934038585229716207262495224352811295496635440241858499595650193885000601957524155169108422064379155873833521683213700990683821071037794977029941221948439953501307260393033390960442916478361839718967619639255967298326939714442233131930891032215487081562850917518134037000608352047743507686822328720341989227765794184058013682513576595212666536869246244090146060896413401042061235516256157966188701369655961519465128846275446693075259259651354351222556111698624609838819999091518169439190529440504072081926329807768676222427721715428805984221275033826506218724982286469985435035344555885539316756853606618489929400786189808763557329998058468947246479957868281969548727676852653240834234900682664867582873731795586840216297035976323958831105420496344564121568446106098836385719124473852067133820081206077802459459936307016604019629000901370366597121955336326317443311256847886297734094564685060853362264583690743717911238578157404499918773595376225967214037932430077044599712172072937674273152010830926672680873789860408630191629497495922608395140387936613781926930571074886552745892180337350686651075178225165374205239192119699356577242884517980794091049786552839447749495736724213836477076661737093479773925348875552606330974367824217864722664765495626864734105634094526655548727730128269807017678571306761671865938556472867099537853915386168622297727884346695064894614225702383083914734210020238040206811985848091745630433242196352592180184888173689632930588631074875792179477963638497425273921916924232943495077108942942932513055244394331556047212264926025223126632598966324670336552033878841873452312304878254770608056425485707065969913967922686794586685160640634220069855526281310337195792508080729682219455822789821489057299830871401850539432902413705224203309023941583676484250835918631792338282704849551446807117213795804408901206727278675977668030533442876240696479937150948405192124136585121531485028592833624482493621377747409994758509219939405580375905829909282121789479335450624534879823668536120949039398975327445751486726483628196769668695726220431855737073081323554583824378242695364312214976476348339557103100430283225016437168033041096007032544103778320986634419207770140121119431133701916141569847899354013164855040211834297154221553329813771561080036353191638618397030768956238672364830949249221405654335576483656145663090972018512567121547604754027489204852121291702756971588069900769952685884117296050060392663964072431063396681485089154169168824769016322551991246575537628772856875089084998840511500664785959676499547480978186175069797588726985205726776711709208480083148750570855161123333453473362043209688107310908756462611496400327961900520871619253143373813193085103501152126761742617957703962558012656272703841242511450498845388859617444871177665740376600785631818729949317798266344387101222110962952162301897811472932389436559286717433841248233219065223442284250813461539602903112017127893266638030902796788687516289685420150767008115749979970732815812250200316373661283827927435255457225648326697874208146633514609948418798938343078477649165488831237990103478999866532389881456727965568129739305066038360549161529237912264416937075942502534216762174100323190233626345926696173083309689651827837992292040075225900032122949319348567749741972006992834591837746106419176566873988413658618784805818902355098960204410626761983886716156478527281618098902504453645980161982511021173540352630121847004643224630998765249667477107047137634999222018017118864663788777042107808154495343431271634758671340605338061920258362920774418688979200511708523096116240868868428793777571356884353332505028451208450464973853291185171317413149377910616244283049481096074314016825792728991484445664250567273412961015703443959927566762637141933765447131057881092993068984122979653552833305131049410036972780272265976304662306057597751128800600421294966132529438098274934124818027002632268118819177994670205957094336786886604846667438237481184325512921704595261056319132177568148325890731144521639493937094837944935102593054346971784638036016367575991247778893313212583598147766869457136633450081941092866946773326448061249754483529209658243936835461061090757621098811460405619959171665107153058312465783254017207671801678646690724673858266202771981677750979125745917829325903111284768370186734006981059030496205466884366288722203865118011394914034325663873835132563349175876647054401457172753164492722806121228149888254231108059933570877655080681066981037950797617787858301996519462553663401379408061149636193413451489537292923765906686315080580615230457446158464078694849256452768038629734423759545108943430073574594301684509271206631669724849950273546193378300683945206291439759116398897248452148961332264524402126037820367329552101331706014196152385857279834494809187001481557486567685033527635037889851313653838420647253229106996116418044143807432413962810777473019142709701388771571793930892892715890874297398617433976371802516876977628717408229531511595257892989279084580143146518511356278867635841198977831873298949648159753319757493266299910810582555768604128118328933602174795579424263243177632628809133831948927427072415087543998235641737774292535425928863371260522384364697298174202778211331556085772575296887473859964119974645695326997106799007277373232555218490615303217939600936337798073239119997296236701833643294736636903084760584700723637810797070474111247870083039009691778534835790034914514223637843147322824038458524238957125566196429399506770836755461497101805617171150755125529038679740557248683919633629353831466364623109098310456584020900518842990502870391326138534017370242168089942785821826974482415417149762832178344610014826048410078160951818788566441509939830761202916731612822996439298631655059942555281586527012313552136848911444047657590435270940288032256352701204683869802528746219006957613441536810954035201401245768392266884452103804286762629242948244758955191307281686740351598800768333827581048722931115894003614557524179230818787634556584388265135041071550333760306614083522140570109337526594268201027824494809773686916577317276144940963352111854217224986097730026087749606649024283835058627289129978886359359083200567266541944930229853440763521423081107974187722615915602070078161219051895331272678777152918200597502607409249469955574027023700794820734552979206357139730548461022298065369622445503557948807570229291155656053302834412135821780216094841418769310232004076146097576253165646829092958366451729915505090334228273185879806873119355650460360498941986804403921804331088574400837012123135534541868282416516018797187600896159629044684306704442703837250784423968890374244437325936939510995619503132938133446436252548697741801879215264698127759761938311261250146978796433553606255262577533882468451436373869621734243148265774591836814449693093095547404424691732091772466098222284377395551942737993607460444994151066140832505028312780500090840295577626899437843686996318795360775469158826356117069090065235898366102510294411995161306260959862783456748841224491156455409519400222301733822226349441270897440800764261183637873571388237320176910570736413374611739679665949747261065012199498635878463431324105610777942406230728324903915974672680429279181019076004095535255866864393025038347115485371205251040822331914607141150042220500586487075478891245278704672666404370835096694176267028897061373060483150466701820864388195801814250977471299562073071040338686043664855251285063842140305680491005390624494167179583305486023713070793363029037710786378901894447831444684656676831478903375612985767664197031564302909292205462301333463213405577135483546159256728503732019589301625311699803236129728340452994909379672931328450843415192782353191796374116116247606802746428167089735392519230165712577449286008735963321816497687884480759279489506979106838759964782143814630868926878012757847618549467430632696721803459076537923782488246245735213168486197817524495904761552858010293379215885364663696153924261700028847325505238629568978416520892459622878187568331713253312692381137633089599434913833232555375487992102443433913476605987151761377252237387173304903883087959960806362824948553942268004396459824378382860523455243999819677177300673893910488904625521595109795063106726402426444132881607365596143010329095819654076489932799276087519014570179221348246941519034882290552716172697210153577586151960784694688919161146349151039868008770628407975677080243984028377708157742322051858931145861622246430826231099715751866041274239756382698635817964171487468324884125682640799426486016298572000101162487423290576330855644759600307085471130770719940260396357182478961134240825826829130917552803085351739250273770763227146430376678247739645214610602405879919412406657747840159629112160364756682869974072747529615863313017926126936440540476391048175766348105454041694956134794988301972918188536676338311758246182916846398366268409706177651407284365572924123237799764407931450605820275596697345271231463309934150263317158167191744529774025482614106588556928939265392907182991666912431022950833044022449634051299313782314832469991017823365433303872520456055899230539415071586847868016284614221121826915494201941015354723854550726140375319190942207614792167587904572743316594345737904756483455629573687092893267971634538142904073203525371425853678890646727755279223016665080843742416786217204940298478402042777821225321227775598688085770490259542156361264494347733183541929386244077494525767848303844731579865521987487508758914030868307616366228132281869077831820283116844152978083271585248193302304177773540467456092503898783752472265347412856408092208287234587962972810151650500168019462130780890806539374885738976132979827314335407166029204544003111130594148339146477526967787416943308576903391868735846002633216792496017606233671851900652328288563994834407724649631049444842787329538285055968654570682459758665535298713824611637227741665126060916442861028392790465513819557504659134728646290920021843058940620066951130905835191728626494722076123122259997634920420215579170267169296929936462996078036409340715441354805720594554125971057760651787574408662474523080513594583971842934126871682933510999335870781113499223983451454648933013409015819361101986628465192383673168233353356178001149633197456249226891259585508518744937233110294054648142368908334247449579290347809478424320433159499136689035366479283574494980276207950544116181134514156647063367233456976243077324304343183638222461421928674768209429568493222371002600925216310295209873745108270350579708413319140270400000028258489533134359576994511140508204260124422292747430143449701215454142459667867522415724770831556000658661279267761747632698881720556802493454979958489590885308854539513406144309367847046653649769713092217634182342943003313297283070901927265828734783795915938376930616755443679117319854970267815287550752326707247993375211735217640766481098429418452519318846557594706538314687788607379919874770589159709773207179450951999660086551437626838733244834975793767032677433859006434763926529119117363837080423437425533638652746164833393429599690742506210354898465852515544449724830201980854175645050454500913553530828836767028076132053164719444965942910734356755490065542112666490605711673173671662719898915059523115917324015852667224212293831344900565054854456851116022643577442453368364999274764705062382543396714150526830723029146697263111604942037274879773852285871833570934482166992201264101832833054883382224016581446560100787375334389065288940569021535203813110228775158796042113281154038945145146423860779418178638603933331711398164905240212581103250237447801729558451941987369536632205067188626543273114254608759344335023049967310819288299403976048685761229689496393952474041226423329728097773407362886170997412042792172032332398606810828869048427749932809006103073700465205859098783408498537978840903299285535490227180238979672626565680768737153798376758952582899677383781851852190194256480188747273312616783238379320088673800124897381184847417751467289500664543709981571740627183721906504256823326119266001843602218864277300550659824523276805112973668381851001225586017405504400969052201869715210220549353615450886608781596148289282055836059600930881806010746783122855375903392986580299506313097827208427702320460549937455239258474728618685301689021402825457635279592025450818214964856731873562620032903672432353653768346008130604856353070232520503093247169554579524492384425035364932183928832539640602641011327781791780657219096444810491132813390019795521228568168428593366462378034389140411829596117268107099962653629887665257700317941224783055453215742589881608096863439325757938514629926159807440000252644321594428312598412505031962344258936465433673940086114684491640646557696886417068945903040610297463500209115869323522672007309331922530313496947117794433498097931893358137020953232752543736146379697499802503436768035962429051105505112290734581445303215842336456196704539774510341475792988397276993836424575577261381402873866783889797900361075721953350684770548818641372228553470410719035114107193775191643866419775351612231646618016543061450176250515164450140039964582191672261337341227574584380795366425545999884326396785793333667807783958714379562983226610181835715693073207635793778021584140688760745177550561431102467206865769286191465481877670268619473175082696109750692609509788674303770253397869656991056958370486518826072046916231269864316244463125754228437833932454438154961637912213219686170271407158243582809038640814642728540905887989208594125706309141778646759712554451742771500608927658434330664439429508594023129497848087871663202007129184349331572242796699172623869316484171612387811060489123878287491957666038017333982202495545122996727901874656005895449900356273288792735046120590712749065439805036626395513402740982580153414234820134926478181553405398563768881786940759450156042229531448759520686036404942357525987406618705855448007925772451664728813505419071101533075063807069596354122259560167358635842819379346625557684291277618112555061375337600406231250007421676345311072372794245226454573013363124129022793002295615824734821779448633966650681637584596152362868927671945047969726180941879836142956921578451281619363267145142620497857541500715638185083129470822307549626260434161384988919180084493117248083920662204362381009715848693469766388829674682990396531123364434289872232402881206022938098505692066931560770513893977304867950708148659164695045147064679752468797221120757456969397374946992082524434624474053967737812131367517480226034241586783700868300921989952909403634618239972796380902637901291358572662332575117251116875663995543135500357994066073064979507070769808282684962905008796375407970496300926985350695705806719107405754586001416196599453904009039360668201346068381887513644571552232378501953598914732242029384656742175712300563185976107591483256191645752763640937369890733777515477936454694356792985482938900257975806802033315150438108590032236543303664563052217134185503387893866636063071704223119072260352494918835589447531854892266544916050299430652793363392908576214033943767960067652337769275219017895855912586172533223988810639249470518593510717649430197466653744439028867574187442404672285078378224126058753284968311765429339158052311332948538257737960051224412001815418861285635168190837801927236980708161475398035894384826224810935074224477998435710568956040933086107764529438279272209683757404311743656147446037351134602139448244038583273717670584905861561548564403910926424833807850892736988444434144371481190071699624962430134036714511156871652081030029658767073588035310181101130803280362353458774756843253113333216911213724925214579519291176699462574410326279641756642371299824625241102120362703754256578589520188902085238385317283950273357260764963153968212668897804090021578575337943913557806097453687939439132489090755190589167448851252889920907851955728833144457356073846954900304154362402661192663917514714742756942215674562466420283128675568948251112262113087389203158600889249573147459338180401374091937558603148537586522922900334284095054011384694589657827547937893108226312908054835626698297960969868365870097162787278851597013474133137922091232212437691846400910407344133581399030923426357974895727259643613290308781132806919737986121727254079753043525589073264186216951189874885147941465885721865330779030375825962114298274325991119302047622319528484446992468594039114786788878368888182460060849120943569074641886191913021398760908353668540537384513882111475211906028428635094047731298859830655736868956062153615712268633817690852272199969144190515771966198712566124423365911233453606979493558393698683986589806985954543372398183376675840509932381753739974264129321420601989129972751121220663848561709452515343273839937006592411185822654069660690744478795987316990178583130904453213621516367267836324148965553162781785713921074272601106525944220832673610705170166826666252047579911431599016793278978575280117277847077688355155203486765554001693778859772153326319630742668742016096007930695848058529771708400039479281666583242082007093363686743081323421505340405670781743628361140907251271657060007411196228594860466388176957033462490089090214422686866721875215112917104745609109133506641887297389059664067814863252512614060629666263848994450788587713374358842543001154773576611688817094836494826289943482408024870744299459247838586783572313437509046518453357076680190456661030608785630283370925251203769975163303697829921164147823791910222715308022127273325702514287877468091167917974159060020783226288945301247479551012364413979486896461304644397158215524380211858224084120625825024484028288105638785747964366046921693285709102234391815411981181849873740104314850700895546548811701535544525121155428258009979649083856302283721059269598221685661598623369500426409971918771129217774270099614589317548062455252280087909419143184492286795704524443301274415430838401152695934594419957110607746735739260794883401906902180863636524294778517821076656468258587046118155134890127388580258094487163362568657785234809474000866839127152257544928926929360492295726619958652095697152074666372086127390466553509980268353572571574472812511922067163592822598086660495159784644753994558677681601649216842107260018122382060355195161131133814939695265220788375992435211455297262615699329855704575004592064309460827998971588332121069173997628607839152469007134022258809809451872011098164758153624902289773133011444876126474536911727323709004875764496360794908279541001545908777697311609534921930412262816006940230867513160994035595659918910660726564676258073371083529140107369680233092331504858527354012472351912292998535355808826563205313772038406055861418892601437619611419614926029461519997104642961429427759071703950620863354307762141844729955319586337591052825258614409102415900277599297146258080468467930727994668840535885652915483845871856160378961596478397875481473166989093221603133548338897211886386069474345235234838768302547689466650671483676928697596049983828874385260577409272767066693225432804830177708362316166057951959452664266649725140406461037277490125731030489861003006947853925701990244666079633491659334272472176929739225902586398924805333222312898025253410592940032305542434893944852188277487597137549411216327525547761817322266384596780997575246734047729681055453702560323722769872234316618500332104858084406487837496410499419343610422505199883624578254123627855786079951999654596795095424798765918746773568047956230231957311811794336318538663802029776578698032998239703714739797794564697824023046741921145896672266027846783593329655690320670285637659000692805333304804882672137232111606112090708508799092007146011512405942438776111042197943412561999018393868696371347750666627230416550753484458824437485357538035640227670517933018645344228909075767095429383428850137146425969102775082242930100614405949422275733498200322293991357761599534124270828912841537283950616258885170838705716806828910723690369695287047522541436053323787611276827513360586141014689637158547241899724596959232659137184550518085466349043113314286731834766818357960357234619931656362759346062732576505585854281312664759210202798261686401027849529876425238846339887898203463071822883054029060858327361168934620157645969842184457392849799816820210370870269724813151814251821217737486747946193696155114135848615043799882388730643625440936270075039328108381417999175819250417119279472876590731323447206688574467426244279417316933110046432759105500255666069388966447624942681279471536632293740882747048579060812334203498494409921342586652504145068353851160198193219920480856472201072198556636991123990678829067046505248530589547313320055523928724591929811047006191286974088578395998281104649461446799482306868252395723352018856018037485284755646971408382473181818302378491058425624573276841965188552425561229115360862100141820488217382308527580815938206289703064707485840721689055866860085990765013889080654075447687626982309169416842579951729676836611958356357866069614306248658988702797407591682743563203257328961714281997449576443717912078256929770101008225335253588504764477299057593589692203702669794782930840022073345565520881965183361525843021405353669866587396993912321892073627210175431276716824616741783014284557613011207441582047493138161070229881379796416298592356330400539926731468535345636533527795728300247031599916755303705071265724775952620764075334050393249251398255981844468330107567419857729319050079889322803241945716939703744508723253353376233704520023489275892322690479884357293351960034810304920365326838689995336854283756454390718925756452627470411984974529045443880775165325125435927870452166003003196633604766225838093218898060291473119984718919117868246601605212612019569993990436859222314794526127453726271332995390286388523231643803011786778058298203732923617271899569684246175168505136109328251616590215937081744174382759017673018175317517583264194062828155476377584722635973422790204444445767234186130986675855284154720785803630656017067356762992319465599341772587886571239634543569118785460505648559522250196834276831738918214118415815089796165015089511940810392219947102417683056356618294018861726603843602262097158342760634970347266124090353960873081520329249724819531526172439367717630897145127174342186137632580553635646243584588048944697594416942400796931748789417647751638529042651176264733918202342323014371153465626994256188835610452476767370874760260114136238490268300737171487415911935480617833437087098906693577374294004872393926334482908821335023282393194532788691232407477916513910873252679211853592286624948691727209598542016975440339528110742987219080733588805639821445531523073397056144374946384188229432767706592807792140821332457832439700327998340991866529116768593357424992251089636880875778350824121650092572325480439662314240576920123698311211495969861691695703199066576298646542860849473309587899749208026067111680991802379193921548694143833089976033748115328596347766308456432341283555382200548752046777254782181387978960296933332846633393957490986732174330580052468578849113354110419102316489899027408205118525426775192313199084920877681980837066061371298025700131949895967448771607045137586154849848093572521902161786354113553620953112353888048320189576820541511477085862877513431334888811593159784389837116282973611025138795940223286161631777833928581216270806928938448950361713633371309751829320979197747249982073356375361485719751099470069977294343647885277174284916842368768348984323080177833154766900285662855516127106643091833320899765351334016695358585055993291068404116144552226689827929068037540103520253064522624053700201083318016530961931931805099953319972111532858805343626516627971450111694826512522134491216652003527829777939914591486158290227128204035776586567765270920451425527390002221522243123127065036336854754126205165373957945839596986550746699778529428990569144990921317115832691544009361360562113671384409347813575873731504974901628159816061191631273566246748089223438823814854224139095912447581828261887282247764582199697367135743323704054283965788614084347412887937967839087304763432136670030374771555477468304009256544307928383814142392902712424849643164760077692032778043774285779444576183390330787875462108365172486576276104260924300397457264803250380815739077876274862709043416767234544485098967375662502018513052837698758080674790066599021741011830548776262324058273123962734951724708530745152069625211703282177918830743735536834688251747834592182972978922553343538125155322485076710387338792915896107370900314045951935911933123797736848539467046465759478628281627720567099356468338897175516865806208108393611529259154663236631143851530755801959561835802434277223195549797487941376072541682169921596239524118494002933854247258870599813183236862183761201739296165658038212512109941184321212049865087768670778901945001098979338631031333757477057995481711716076051639461308356050203806370295426845992195220975798522744332277084921307604619319377013414842913338228303019862894450885928576339087585630787070527094816949565765525742380451374277211773588796196143747160527773819232555227643013324008504093682359828557231493607128016144023326258014458472259734521294000911534428862105950558991582102444765085624524698097419087468949462199751304312747034981275417816253433653590862193372594375573255890535546825605984437777058358736029093933847262970415947163960800388366741616277791866882772665662113981431599607471806073126852805449803412776789945426973284722930837080907785682443263276475403647998205558971100728223051236052941117765853212306263355349028897002618844981801949575387827289626316123841250602755474218995624709093197676940743533767434656085043844395900560343167091223532256335332145019272942325411125388847064904664078939375106343661949182650520862194190402600128736847443302081068873366358219904822571836555503703989386108350872642959714907180730882001680533650278226515640440277923313890200757559780922225123179419703778855388269959756134971221985833358605414554612155692406770162886956959294998919197656582295840768579703368140183932591638155199143396417336800180047319419898491186005962008590892174437044215929599836491358370624838836548141390631907519545990467988782135298457911002303743267852296782955680585538540907879110934749735686692197246249947897817998204137565978081370838132483000788322098244119290923405090199472876653148338005906333806141259634887021107036750300573273788567921413647509493701816632186919970468050043576739255970097599207063346337713669940734915961128876775610973838718170664054054924265619450873249721454174123144222538847867742300431496595909580870348146102611707843255603943452294562250517085462733610542366328866188938099393563109143489461214185986925614961131617837919588815566797700120848198441888346708443014824135205267355626559827881631040497998745296667768565132984620642572832419113248008689915931312926101358316729782588441905884955872637703526702575607108790550605306354928538931253887044697027811424136375504065231581078803644682080372292200136403699439152407924154652197936688117258904176721223590072452688648968233482158252792338897289262228970465552138986841325775513116709093116035729734423219816285603277548853371544469179898438376222653968460392282251346302081471628170146592745825107064601029562147802052213666273206012820866943944797118375486279077871578873702702569276862848991075794400959253851135142590619683196158819616120775403050224396100547075954576269900827473111711894274374538934247096004009032210749681008018022077209615086582846243487305283336531372073573591384303928482038930783143327834064369018575973614461992936715150349420171309617354167725083737320381537388303161315648991752068836643836581208014424221248785846632638467023839081807138255539654766963597770062405449224704214256953807967115413793155110174339939146161488083739894882257649480860008502961076151220547451448297862598528550382227873270252240463262907928526058813213817530660326174398752635605412623826788073700041381684144948275667252452872181930094867632371597739922759389634526534131759024832492940803926057403966970817101428732570296249746060945676796340435012124800166798896494637839117703147670547270114684636284478676577388510269065352370412732050113550166953510183738893492172083476278265176895806571844907854029555924548204474487156462375473857435327449442222191386449943911959715125046110547236990799904831853407382669361803105793014751626141623772493132602855580370793082132668935084144361886027827580875081232182640163453462007132182185944153327058855489766280248073749196607765348974394448461195095012463834864381617809790279383539680515102489857122350016871279241957748576405795357858547170852562404844235656811414244245296215209220185508869675117172739128678972486807778271837365269010684883067738332131783432975519323122057477681590710704991661159870316861847271159568230897634820223298576075515325220520921661553533264405365269690830791652239193166003134727656267723018657231903799448276956193007719774598830330428004228164766873371991126320732801835095672464001301772605000769608369964605347830722835721324632930992886199443076977895195844948517787062109278940953070206499775377396116326702705137515716119893701067463206786407827033596921268116182716095392457940900503626112504780876372196373746530237443268469110991433323741463154751884141683265742580422500575564960945180342643457215320545611266305654564656627874880218812726015838619784062415607210879570413200576610766207595254533034914081251333910488541324177780167073787227721596529275037330540100219476611790287142871239909434845096950397963098361452579481864551665438803005987875989259990416580490750237727701970285529588849497350738295676077784328018866296761241537366611043667581155766820134492940566423389358571014267646264597946757850536820909690238749568952861504375688225397644804331584624659862213597885050315647630202779500854059701191686985775765072894827384391132208534618046466985779542858576165999069118034463815653208771578688518581126764008967850255306565204912117783256575713944620302014166769796464148172359541264793997631860989720458754926212267073245758788970083520639118927092815881655552365431983998412105098173723700139921892210952260472395554348125867822130924612007007027893980506286119732069598696101533927730791007303888917056998944159791977230767242163933842430927658265872473832247328133256252967572784437443377180636313739154278825133686884886941782302185672361870049050971314196623401783321841369562560096001357352658746474815917003053029818967557043465168603633077192161466855660732803101751999474739673102982603940093051702974315334828799820652932534684735306286495710743747428056012555105843615314741783784112086502214961628176584600629730130865675810852226902840428038852455691369599039268832759007534562855155916963427375734219361589101183368683879050223532304751035420678441843626893760895590557271916572140107644339316351760692274070351074305964345094605254468078807986195258059617710559362759393039732566619393322269223893145206369978862902379130772625132498922317452924937215880352129512977122049121362322288488790236011902022801464288675049111369774208316891653844659524120554814017953331056575291340154225696103655604831343908382644054205275961586362111784049594570963083546318638815154942321316341307204706025051146874143966508142387086896351538412477287683772235333794777024992921361486727074531862531832825200682680601247793439915561238331402888751991292639767606634838112691356517836870890998140293396374642268694639529281961511043884922825360680973481653163533941123380121452919433014732190043841517809739024972908730082375211028309463154302298429838459758774187033257329840066251579951419383352389695946290157410902709463603443119120135185651495044125879501106482947508817628129012081894479770365826241780379119554559805585624222736224434242699575581661746622582819937123102994090702446915188725269288709876584213945570992440934192633406091601973092040519026665218356815119652906053011080262620672479315093864516802890359174051210756699635541333920089517126734938970502342666849127862595123606820219607695356814285477624234776436158596624202944262898278942678825279332517942587033148189686212071003972750462837196960345497859810333439244219964555761805077530975170763449576749426859189841512788788641567162881809418730864718630519682782238743405095470998265072422622354309420314545538101807770675841559514834167648186844356938218250215390879500311011318520405109431782416452803943026450112274037396729910123687213712766563806717396634587101122375354180865832380948270729532329911394179501035322728427951036894333567043545491173527100290318385778970170371813590850978792897235525826745365654087266902890383710139330044432793130782837172941932801834645342410697016922424317489996501730733946948398810330242014609560070664691435537419258331369662359549878807664415246420052278374012879710236220113008005345544954578819158170876489761535264702878841379850289453026777237899208833416149986339193105958713768891059567526518976319214533707040845850290985781428799606839209777711518123623961546032762424875972865445091768211257504810462932869428543081429422847720818161598675608641459535714501441289729426283427228592133033147294164485773765164258769682869949710807088482840609344306426178967059689926463431871900830492836538478264771614593066117989420181478810730567904562728160276490582314149297838687733691212757032598007679615320232592615016532044337471452954810184848841548928127506083743969839671616154726501337266000341514816750928006703457624193726119190102949019017525105027424669248202748228059724541321049709844734457890460047316361626609268235094256521732283094490037727929484806399911580344012194915607098585529627047975952484346554008870507166430806627052324733062855321919207575580360123805590692690452736317176548995224401224195606115892052620948639778781979531291962779673689162421326171064044929615524598019616435221024688254713779906673908433526306299179857645867471610149962170381220409530654092104119540513960566275480142430894792529335618566650828141474437769081377931043271508835041545646014287378298995352153831806349552320737805783358703782337305165744369586185221445365145878850961583729322483393803589461369619888376349633977442718754175061870813984584099985993218248084575571286339916391451803291066492396642706924850278401803101584811215443050050011248611130145192676811339014387016562560548828739830805818956573972574522105699313688635730183092137709736027189752151379175956134800759310571033970993390705155471926354092742564688095379783453088980316950425649549610128502991419500617745379648838684226153216613475704669160021821259221618694509252030389598421838766174352817623851755986653655604811201081448230312187773507859614376413317102515926503382889181734952689855295823907545229036885397899925605268793145847836567525791682380590036633363041430651991579630061777807060474659035983744486545713530813023716282916936496984233087480479359891593251387393976364260709548244830736825952270337558977683092473035935128723619171397940711712614873800295435941259290306599623243411719333388020289418191732162885450379933102207334524199776090085548417362799184790964926277548036650484681186351754014030942024660391973211174578712293795319943483243669471571112143214999009737269693656800284756854446494787174389564361668657388978585309215859578612374782353695272912358107672242680028777982428641659415016900389731702023534038334172438744141404237774508708629359743733312991057283148980306364486118216447136644693171449430570274875411798626583793012205079735507404530252012380613413020666495527811224775795083652763501058621990999935214989709641377221294832550544918721774430111089302089613122526419635532608116610055213410327061927028195111087494605764281610880201431919294405015792254697641256153191154760943035948796629530148694632046477439804034231969771642282716102132559186896775073368001082398103055711238897899377560627781600829933284333517918969722510399977207397938640499056551080916045495887222649714498173555429022468330516929299706634516682073342665172645251274557025171398927088376399282021680229580912725039935263185962662515767869018015454382312444528597465997312481614785290841778676305360654583788191281687217270198282782643615797340839345616665311861518104230937586679374430372795752653288679297091693285773184130161338621162271443034536327577002273991058475225136978006010478414101114290732979996882428798230624263081203437517386995550478098064125936043101083144114651393281658729712150713428137767196731936729870702111262941063614898631554677144131444167654629935132482340554121102335552688983852555662508142993420806909124280277699730869907122876749342011293904005349961956811624327060899666122025824019136303190506148688989549277752405990640956278035615170992140746310410082505819674823293232702606793167795555920754349645331169298700513051577692184446530967915111522305892746484080895793459109279713860543424854100019494539386413994767145879018805405392163781051165104367406426906633707521213333753236770705136392367987171265650575975931750424676299353827455969876282481817006564356337896269687032571520902564946041156687065972904327699405032766012908292975882111772564955702863708391686150859035803157312969770828058803037827931892692009552062857750440233183531301071097780034775570816378475164812819752798825143738642892302389305674277938156680872541937749136897446924238556677808821511949241998146536094659876291064318796391639953975634902704429942613059560495146406945635807107157930643516583854891699831751324435177725827355817418028399985563152027609350188155165029749965362930560154409107232797251674964650516660875030329360478433666038899465541891868729674875324928352110248101467387752543883137203598549163882900718955020997732530682766054610999911420219999253151927380734497880160997099997306071490016703197893458625782726138619913350623384952824347980255589806231446377875797237403691400590485095026167943275392205250839664230450706092102857661028921290321626478312295844011527862412100959459687156135772153862882459907885998820388851029097740794222731954316087024435262627826357054883214718570179529630497890012588101271621423055175128256889940284951702733378391768413602901271073897805090566834633285389825301426166567831025463289269557894845122363237730387413349767005501647687707969613531138310736766966829548683431570974378598624164294012988131622548861179923126873920544822880668122840780437623414167918288846556193945028716875143828694999770195756660560618597192340268357726954740282359924661867460707387622620446432869866060436397712674161223080851278308404441130520316249479226666415780666769767859713483894618607768657333819023928094088169608193620032359308722038810767425018833398832316738941721260212802802393871743721576063178662727925352229125082691754213901888243580191856513536371473417779974328438931237551197612189378008037080350461661328190890531095131550979723472177217500616147003412366193284534962664626102946008565306168706526644508814869592792542485109083004472768558465952325219791951350452268511933003898210815167143703984438782192421610352408983926864227344652402583258449605497719600577310777688602925452394911720121098673496623085189836107234851057039057643346846659458603520011988671552926876920232147583061459699929115915807034958855150515856811947194914620697439005919746395233830462987042171554212267734263596902831726806002661197198501349334728344678837669740116681790802380907753468286467788175110812650474084011280403566876094199696412908709948412138815594638416293733141031489083464684398994195233597276709109550450956896955033422536514025070481958014308473938138802049906074713077866475007343402962307201629625867061736212940220903506788305343539361438898702504753606243425081527494613386836997135289993510423802474241477478469290583977532769089321186134738807737007373031004379032226755245695010607912918891661865424184887738400995292091110204200485621104535981461031325695466550254861317221746042732854641838703785033986823096126703877438589408458245160983623565694319570430200960815133774175774586086552441855696082821353926332472418578640709966008458703859166654706069673068204384176649565242911516090766530650263918608569507341989823566310812695519154249687446395820696484622870448107316196911558390342708901778033306533055791810989017064581076214020581032863257245960314885560786561830600812103041786371439684551113993849414750170868785552702460492843859674206713427973105377002925922625050022891435797716004610598519094310576510499149591701944642261521358147867440298426659625023472498680714608772327596694696921249676311657947802711587090303074522528811218450807599103019289984146405543803885696092065188035481266002125498835318909503134894399999536180214668679990939265029462281229009296309653784381373155631533616065410930086458923465536407509577471065919788442404179045354676005888209182442158325907463302087282242726420351328709732228792675656745731597821216965790313359801326945788737898275805323229796579133459517860474519980316464087100671322216816435391520131354361997892111531477232585816197832073319647794414477236831738770563152263035027142875136763221594746090109897597789793958206284246721273483649967704312398997277893429805767812295792355887485123206453768422326770633141209510641548310507125789391576172387429637055862817480707655071579909666386977651373552953374971613018587167925494435230883075378097171607009748994848624030779704536541163722669067395327272282770318758471129340601897162325476559342054731920100146053943285003290551025572280964538944601611067641773859575718080571904717630769529796701324496755237456333852228584336083870050466545482568179331740641627182448051153892433096093155159201456088180658766583564129650937755200483565355223112513301075060123423758569187940739877230725189038272962567453673319916427228869352381060216838215021862501333869486706909374611580553105622271154204121856372493608831785306378518652436267190499217061828711595584131428736731614505270885017065399910167656437417214781476013313649268075413839012494147422847690886010501783425495067450343302827072160130481534511842463610051018479620354621373114840558313434812813118370657907519925857344522225127423656532973596482048879685183346566382494858672343848560209315216328031172057438496711755683281816449299871687996348082286949609337481103652841994393239179497534107075853613757031002531398925299002154281454998978148485128787611369024207874595367982556469091914595918514446814825142494045439411013371375454010659418171843998332998357510278310523016090326967537078219239559370128203152662985217972421956045801172992978641515589796378903612194015453952156314015620637682642770954113158805464429150211829014404277439832485129959972339562895781050129087510395189813007321546210847927262006535976229938190384757621560610117069893669198339612847691859831286998051784365097596074471928768713874250516678035309823081957746941695479209908009736814739366880027464274594833311220399361587438247105606264134366759358611761191599096389412039707987921604911780439499746812352351243007713372949044025287976693849710357527231651771509884539149557261825780998280334452061023221366260720567187623165573739751672155457396650587359814388207643825195436923864982199658754020327353520979352520199849229542100079181912588485657857781877849899401357948102547195340534935129533944251123199916522344636700195065938647808659380089067900814525894646520645388606380736238055056196105045680577673139081199919487853610549916022548355760199432820093149640109458900707770208389099967348250788856836935035780524248120611103633281429266329353449287139732195481307061762436803425161152988234194185134134996369103713311911622718529732860357068480523128561411704923309241584924343569257198315144140822018870380253247541130543053259143968817944043363929026471031512964991669579626021676748047453058905015159082911364651617001180033830618767661814997359392998506913206518629669788081221179631182237679672515172408586003683675403626810199489641193243548624364984726388385973590704208314416396480133532713344600104305983327809102558410710461900353825426575161307407044153681665590861310118076832743323028954010574674052581242777476811732050671448023764772419731635268571204669327730390779416013739423053352753226654276090242811259649376113267468752838881540976988403429180703166369716887866696208796446785402554767704389735491517795046404232072430775450493815102482134755064581724602567711202112718377409599906332155801893505592009586478776210931492910904365871897461853748127737270404989319116294254324593035886897239586998839925382212505128404267382406344487698064626468324210046686229884542343169181734146564725654823232839831069284684796516097905591484232523978505095985322604664576654180063196718443981458872121621270374490633973265332287129401269224710580325376709803217834498028269234712842632051246278309237717069808353244796586446242816792914980810694274479472550377070180964615770044296481475795281735767574796839849457605054572657924553364615520134857952298208877862639872964305787889591682329275694687700766182049588706977471584347524474240166284094854081437510262679377080037843213361447765043877962356724307762773348217484341549408115049172019314403662363695940274223312760701351395857423511468719185923763754049279499180689372685909004094708358915239208276315915452397726424455907260761187456863970295367370544457122087832290824668307424747400788201108680804168486413471445053141876352501717172842122245589222296715263671255885171608805559244592149426329857857430781365541446950608490047832774663008743534611618697149377116302904402437669091629183198757222074236421415035620361580860017106158780359812784434784107536555721445955453004334549548397542849233299824416782305770214939679186271287611129401967104934621908858517100254668802987386508372610438455479774140355287937124365546859572443788884891030819218279886521346674579001370172020685275213200636018313041428429709557775901121921854317376953077454491463897371284170769506632858121794866036535442702516758348533235110246552137685706516073011670518115058018457623901015422454481926922552210097775451690665448406836387941208020518820548126189905593420461023999610246966101384425860012426775794259279129911636204235184757053751949722679548044408164475367566228014404950244257542499960610809340590824174018299529896180063878064560831601775592247112043358423741905420988659025895517612689935166376407345579600320772057060171001371742682906340280341110170093524625210932156447065462530217639184319944682536751236809655011345413906425834028268868737972598348717682991153876959735712506261027133577845547183283711703467202107798312392541806495212374248988729202496581674668180072135008897230139151512618427058449336773852132570876441976367465025053152347880641014909449609829794299468233492982534166807424736341795747971092449792627051329139285882523489806413388679803410491142740011389990144700174637103963195612947450893158918297951937945628472040615852190256814324330391555287404377873052963593711235895387799558500961933045598282368455696583405719269610066680839079479968175386226011431913528353524293491365453665931675318520741358264610980490439330257608623159124358242782321279519588799449860995346717752840883381511992909706877070243449517248224535897734947832613820618447494647422223126698756675175326491077682540129732100646530852547598760883660316333757221791885531289230539806608880694323959229551093785678576823125636488702769850816874673723157242312497025453222185590114552810478824766060370297752877304193738055740494814211901877917313577236981710773524855689551959765164023590503173183320596874870375897613857125457189559670587518337573702137012814719526543571043198512337900945501219195271362169846958259539739557690037713393492378506219023216348095434732826118574247243987513619740269162177787566050556846752467385128081724570286305882329460417158605222112727657578675394826152120051286719438183019401936771008547116385522466539620297835914444657863613219844250639139018161669742334612311461199740636909806991717003275401065137716359231708912270260422353062816379714056835924144288136549675536219967468845656773830696982460316265876216270764184929761771425246935532828867497074136949146457175544749340874775073213737727308757818361569193538764349242959745011870330322449559325624023768251675952275083552961700061811827072806996785132059028319680065572814654050921746370979710547220068196358293007055757848635893841937260078523455885487898640630092429631781305791451540070333416219663231665490908296044786350225338943707387930032953148848611955895950898583894651983661738266205699579518868268962983099348068254010011266770789722697026569513579538458596646037607665395565089363274464538512755624731357137602190387489173235845540561150086620556825792812227141486455573673027114621387283690038027991243507678232438763006706931513318211066870651389518030928457180154023586949541571384385935889487095841615310984950399283282025678121890756454777918076088476759731312585173249194303828435450228632313150182032567456120210437600521645930308242770661060988854938245191934537338399225456213373306501911027330288905249756612335675347586935289405590539418784953176678351272643657743099735190615446611919516044102071596026494513688235104254105177820039247850177374211246695355674126019350527019403906588779942331149052357892116509124723074661406945855735607643871327070691289981119510754549260265344216684168287024182017231866777694370996148403887447967307185966017830683382494766568925861057209375663287724876426760782249508571947912155613539197850281431753843028353877306191302500518590742536009279840939915044176943668286555536209491675988263997980540497563040163509095614094895541427915344543783598501412005470557964467732298963916277762071632244316431652334638740140384163881494495199618216481132133747239578989827650206337233563464770519251309206283206639846375600784108369389559095607444357297537145662344326286677890752302841693056293906547540365142454673285425351298473251959096694393371012031408085548314365928819782614172052174629660807438278379908929564233827134771549133894169665862266218523725972077755450945782120309695975584150861552050373221925661804653103946566333544187668594191135670512682403263223638689731834286171106017095812559663506164760268762536706324089367584207030273355202814130369957304347198757184045556805791177364623864993450400075699920073872399659083070110891576925025533390842890192228116022444263364714251135862110533539435105730662843116690976876389523844252350984320830094450463818667376204815612701790800193763853228506758525452671222882056304023576117322470105969923664806292392833580373131108829466734534085383762994717973456062124118266407871295325749290060105068782339172786178646139122197163653783728966724655062660950037786673677951139936632553215747869021896561687517806251871087731387017244239175575531032286638830531974878719124254491439990584221807885102112363910424118634466339543240307149914317262977565241771386617271624709249324967435633159737565275241616387759159886354891530236109555455716592681818620901147473115016851498533662304758681573682933486285699786565854047743269205776226912889413049014009018278954345234139947288821730420617184537564187293277840067321647152609165433538855410874930002495288650996048176246134591611085223333923001398590349710271620741754988678295177074543114308803477315558576664481317496026932315404990719640030267440743195459034199291886654098839425469967679176904359047215490064795599118553631751113864191665159561113898597845604591652359932400878503156971109244327742586337655442413965769078320367693708349844609921467307640690489993994240532924347089108791524064729866173261874804390996695504812555275868872705811220842250134670681735309178857767639534405186610946735986897726198515874167220216390867275844788039817507666870879836988496575203180332722027830567556799026322433274345433933453917306731631939053683411928001014589018335376251171506799866525939444656784276533163035345485978337111515829675397310475303771337036117741000090969734432863777568106058306048498947970246926415900646646552779840641591154705285249285310989989253407637955890966487234999397835600800561569331971312992859221060783885378182067789202653381255953129196913804542679015696464536125758804545183750179696139913735281889092664527272585424447210575402102976799010927797107764809881851970674723124829623344323396051428905438595787789106974918005366602186870826191045902044965172069611650014607194036550209583649823470902365439627362906334300034666083733909409620142933805671637057379079167446941595123840391312134324292896638568227625074181710904739303033406056926485996543865463514167196752004235200107491291175822598794007505917045897478652416538193193031187657370387294015343653384558989237067153060977877874868267399844115227870185751226670141553178862781893680053422888403649747547836151400583661481221001387207835661381460080277845823918357967562159933084393487946399169851017725479328584099697559685249498562926270714708628049473783998464337769375994493540454400311068502349637944017227297988379285965811144291020151124274230137777070834701926985532513365206634273343435698246820887433048747213472233963446121557143089578249064233416138746325626847660969018468586721424574739320172506881570222865414713922572340681576327821395905857412231586172544778777365286383266830771815232747232236015793937405652618511890407837414232973862242720315968115375046497898513752583326257130807249615028844081930167648817638600075368409069266299288703498261667652540463054614432150952572957175820333628252534182760193795168540646560419161290193001241699797570797237946994273307955033592268420538911131514594260697192323615028582652124592499645490976186295200832839174846250568001206614454540678717131489220228100774458641470450959415790641649643171628944361230486506825000968863139559256255886212938282084340871604821907689734459200630240478624186192529269818604317172327526480324007938023413155502435348544930176446191703597256450126926472340435227783019643182936225268208379141873744572825699764029494154450250578055156666733833074406887324589527321410454714852029252671167571626397456449006636274890920256758640880980343767600722751172660584478895246901591443238447948533050582597728868342842897368260621183968793978168582546850203041620742975391515136795988956796123431674276685628568463598433004270609496639340479947802264898947453200330672536437840929186701978059641429004757718394288040649740629898015255169921283544913975933527752805400959144909155344086992423339667389775066504096802107282099084684967935140098057567015826925828360130617628321505655812949367061236803879771208539200725802843519164705400961828387561314944378898831544424483864240593705466590491783389581564294829861972127241936065672297680542192402886719349698007318898179734853342872743900792264211363771985244717431296229034937674333207549512125922373104531642425585893386862543632884425123284186309195635477902792746114166033366300294586615242826694341491994991953854150475256423974171841093465774352489634692419243205699733663118755084689759742571376908189572408448833213595695845271458171989775745804468068904608193130832999360633507820944615759868933342210386400634156766361845441171193006883485513492055492092736305237315609659852553670471560446555511833524653676443195198779157633284634330503182132028677805519773049514541194225843573308786016422575892622046946793033683665958049019538038215782329095080086804809620418970654659435929535057440790797102950006638475120812078668413743751484744605208195982643050420453225113298419519475591926616626559495637751402654584548770778495252435946377744427726656259973876087394358067169430726377994591912547117981593362694635911499318845352756421658871442458678091916780627139389221413944803946186054935443318368267794259873627523492438760839793637580628366531796827085088124095245739173821857041391262115926731319582339878520211487805391961056500813365348031721212398884599466979065236510594047003051720409697879075663159453989891049334971815988389354702517843322522441919179602658696089638409900774259123802283278910037052558808053342017963900677065959944408017787245832550157753530142120932899534402742812377172843705571696028078036710655378721615174792418476197652081236419903400472636441261582031544537369100595966836386749310444315079930734721507784136355017527539225768854240751997168584515846481909653177345404843060371520707818122904676136310354171917532465187761532491565723120072099231508674682828344325176534217626976798306292717399030618191182778041859333777042482430830105685729138789048047567637397837893883426340891984187422434856460135226491815325522475779726158721674034845532865880835851391573544801348473918556150370733139249252551205586869732560580192249289515931028028610854900294345810419287733645802606942309481374703938914860098740835621642563746798819974435170686036257378949715339041239085178143647797747041365385337802883056999736644082332798944770374331911811464698146222016295844629333434318221933735684536770357175594455240548122573930759135988247784452701763585540169908797014892532512733010062959777821439545097796907847545892252611591333380443942626630443376370146576309233547544519437305517887319977034131081140245632583074949851814734979860115267992298858158375016029735016943686299079843795148132065233389453202492274851866922691554815320361058951168676042294285111055453045133105081034262617276115279308529201198760134202542817343221526893194392619560545570190251699157982498904512718466972746878062026941789820729626159366938497376632995000773510680072374342010931727483993798127576832469826657509185031588562257516312120186468214229575867633466459327562383359066526987986291394594526856836198596341151067296271309386391141673805929990041839063600064615019435889355725362433468388408993409704440514215923661771184802860771449612595016216602353575353409523438431382480893930752751529016631144423957988305696690681595277315228769827661107257122636068945745945700192255224632750999980404062487948495194721841027384645434292137964934862784098607711142399632359344395174718275295491848192985277581101981226803383311219133128977197051922949525811892126207176471779844373733181197412709264941641018992666456063982228051743792062165431788242521382045948333676889826828363669109101656025632798022375811365507441842667899105143851272486598852052272375194853306367169874692726824703966085546489940084428077757006915165012259714192464892335507215758751673615506588175926703061154717025238560687332994509609766076484360907138711136943609668014816207425269624246118438231185484532977256951126957954891051917109212285610731371721510778663287859678131710077176614247091069866179523958128198254125222448013329878055039248146567544509160032787744732029094195540709667135171112505222394366992333293356946224368285381164845886182551503153775714722904438669144550232926945098761340851402795199834965799645688855609881847326949934909933238965049855507050218763732859319203114031765875202089964714214354827177605158625412312004166063989567992499531129300829321277578126973952716454299030201321287168992245152222617754119750712028353219624578444716603862156656817666250412365615422416383965994994025638388342953427883013023461385118613473286918924013415221246900772749944979959354850268729598196095775660236513639812936809793897062484418705916443193762500404692961760782565382026776855561714761876459720990197456864856679692770217243780098302275061341497130948298581968407749334455059171771816265518135820310140963848348172969923017498313308727403873221704910433004630925518369884260975150557345564810372852574518450318927268849793164980294392240689735680048447102957885370806635164532146126523230383954003270987349391927752683434500913497603279504872968595316344807806099425473407912699888964316000818780697126171379132876910673180342022027634636624455563813599627868160697408492859416197028392572485230395467678394625094589120533583678485738711148656373906497337027353374400971553011826055337093625497490526443444759046405936108845499273180147083081911428810097049915403448283538658590066760375182279605971105080806428265721988281366970879819117902672890998113484206151467741093023664310078112977350435767883771651495272991021146925609666529130460544589324892711604100698288805748196228863575085551443283429158694641891749675846716330027379154932641526705135589080339841702327411907536783401019269275536460871918850482457912275013733917763723270129155423881917281885330357817026777329649066136728750918396563719131290221315828654930660817099441009832263540061724878599272554458433165207701313492325094688767535329986529187112254858004683244309255515211189153524626476768890844714169743601367377939061837200869035261525477668682616209427823455583767769241963490884607836114373833311776828679561198176723891625308785939367686514286211873250055587410459623191925281818030533382872894905539937798033003905921431816904807653609318211926739676612978798622972589654713859615903841290647823614297018542335406589267007462756021012801519435275434737921412013007236599902193483463499271261986404261423491602722195401490131335528131589391050006551150242879587667492969198524443959695952654584785627733137477170719701472031907727499122042191122884445789242067001201793246655250119719407333278347988714947663071068800154871474062560095142625207672592704932831443907566389104084454492484415569695171603957988461400608374138507299729375307825369270907168430553354765685523987953068345996902713721648367488711322396880702671890827141600495479686334209729899187302108525634803126700972548003624273928523600948967333966141831612480427032235715200039283721660897194900219423891500058300258093181974717951792648369980489180624355184876035400858894244299200276616318738657139389371833601208399106408038845930877006007356591633438061744478575605081080248615307398229205827984046329182236628257047858900562335821642718005138181076202970556766385904838514547185883225347858024343616163559629377570383403221558274036258790850072717553491380746500485480776681112026400145724527817303535191452322157461398442208716758345051023392351634167469484053842307220023753619797870193186037083966676160945412006364908590014558857465916597286269982615131260665193753651391245870608598311491284842079498857722461225196452357425558225969021295597101445327699792474773065884801832185519398221902792556813108312923074058216243480060564259887998154712484092422807896760865469696961462132704706652763303809104477857094708450497059002750802464762864668313512788173137845375090091016771430522857228679743057521406782938836929125130732984560630267544570912713708262653882940483643909234840400068485416940347814497017867654336990567010899670015006824957818489109436144135240558581181819715493492502511392425058082209085269307629548345179115174263149643651996823905240969420645944123229551841199552835003152824626507131018092713490885046077147828278739179069678076588037544260956840677262332321278953149225307940015117725551811949261319823403000019348376495372121166080361186638980829303908462177638308309436244632587066619606568778716098162633549791175937626290928437372858546376249766291821159866432537342174875568156908234914973682359503725829793700756490974102383124792518898835769446396297445112747699909300866740059253074024871999850541104555579289911402459627210169481489964390429800564026381052581502181460458961175709837098184528204143417425549217086968126799183919678833522327294620229608484000161303038423057810945284327106130854342094414112475827053134101184629397777668150045298016041970823032849698855837814390887726724004174424653061372714289702372629995201061072695871253489449364616525506640544501894876986505731214414773922405053405186077407510502791235791204431933498878448255933077559249198386536792046039434875355272847532701629345136558509616405421509352959149654129766817271080747354833815665534041324605181363112956579118340755093399046307592620051436991161429370943249255153389384625358332558532254415636562085004163963475394051095883012487553589905613874794921326470112080008474528193832916586885175562147262863775454232035677793263040959747598028562464412757832564500461611762086037243544571488098806135604868627504618418822592948580956012119609095407976890122773931505929270102008177053957906670159510325782100323479238050404954561703143568880948200428989209402435926496195114175807162695514407112840427699683597836655695020427908973471351299029356864901489096197004445407734960395171135877414933464339549082049023839491568701026315754230136042325598955504150874904209631225178083815553668443873324003458999402783086575107711002365963811121114887299496573134634786960121148114486114282811940987536432918151227832664996342647099732100524351689615898913684390323502637900741204122890762803056321588546871395460014041800648887006895746202716205275930601216355674401394633182172827139515728047670079350910330853169738794128643173637634253767301808163037101247838343494630065986638587338976650000000682442481085792188453822306602803223497173511345900856215491047804127258776274081636692707511744915370297385156960911398599160306079519196124552512645418694177239771638934951290427845113240590687328797337106234460116496939134877230834425403927686714647556354354870969842896705965146687321945155319508430624340971981462227747109936214512659930081289708549028232066725300388755645313612060036126085573774384171961960542842665198779212820929248367073332351746932047926857811681313626696077576135071661095231196209507754513247797366390389358630111830830405670024786723461928161996990313522005929282429244648074064974277526935854530721163532811420325787403014687057054999423166675607837603094943580215002495138578519158949345076878779268712878166181468559530970939381992497503953041837100449506985899513404629343611301484289873434112388164218561121010931406844335537356678919055215193730330010879985601616877079459612283644858906090534438411837079976238251847921759078299189058436316477434425013729377816248364065328632886663038602946094015716253277261660778586619435271140990866655639289101231852866529773321333541970899205815530367236510175568544089640708082975503990107727789083174463329946278466752472424756924085002412275484566357459410119099194092180382017955967169105072395840879341818939078432688881975590122225394205388059871343828739199858701005889221756396511975153058945974303611169924134840840986244231621221337953857491659079749998339761357308494473157130560913894502480731920681599207394561916793353495845989466449744230751666427335078371194035661901286704651987976336735296911215631666071199424200697295671656452629796617290491037786543273561856170758022610100319990824243501095650678480012873110278932767307849736439306354422122653152701840491340396023885103328698055260332431546280916640963968200968203513409821607331000825433765487883645391856145259500271824670920409997242022890198940526074974039699386133266426560543852512122713373923437511252302339735410727980898108747028370635880404300252968612378758774950460102697402044451400574462543509488282117189435351373307804536820677353696322445260565994692550249600617991991373870204467685692980012682779715039369218550721066318889968379111244334507255725187865123094711321539444832943051479088695998109190879825075274446310049613045751977917069450702122580674165430100760023716968738529029012288422002601832187308952231198715687548142354063259815728305357598237671868212592631123078762610324433900513223847712134170435794441750424704685279341577955848412425617527164019195889278998369900666328357354674308345555144202559250800265795150873794048982482602579744314190789794284696486920669137171264678419670576564226865330021041823465913281071986665511625874740786060847064596866726441438923015790645457273989168207004485003868103133721911973319220273158759346811230458448178793989936280823384572878391281969519902561673313451835219585823010004196272702008171029296809781738285945909670463264566749763161689154249525539733161560668626729019637546274639419106090992633760693262792439088098068444373113287672369522169016281492760461859767461996867254972891593920085650557170971716245622279959403862700502667506639805420325220576068541520903167339359886649344930936421411911090172682077323525426678748333113695901730606634258105744016713738690221099018584089917914595473357909252379386307145619114937999833492185859746886988037750037560279700042290184652054491985730616056774657947882769142833457665010361111806342637515237424240974467106771646970953120469698880567668454053583808333900788048765613381334767814913281859354801653311156473497844277998966452901694797238068998647301374862173773828581127557668794496789806565532407634920275870579119047985330926407328958396788745974605297213406553591798800329440032037088228615427854280038211091944647756322469809782662972154577318999896135247289380369811164539954621676449226235502173267432833502512247847839479003033677856700589540878003929890679569489788536127335253547100187935817352032431341176452935962722339940243229459008759012443268958719577710712700520941515471706717299027062202881408196033329138095846275175443205551675558499177048392449071651089209734058448764370605674701923182974711697496734302854420729441988908004909909982471542675863923289737506462392168974572910598947520946796265502544349854570912328315706668037794517888840498897709724154230698336097674471920396517509386280112358149093120505077064613144334707260239925821173148899911239877292502048560020301655788591550229126432894325085766405272091965908823963240823833228825047534039649467083683708825892983919542020740491013690093009881813050873978123042094051895220809178811081315825479662948657168568953240737937860886535759515780036789985995210701300391076408944048300781424118217246054549821629711077390921523681489395868370276769873799751872857853908918363632117538751087051602927123550300334257964843873760432486850226961053449020906082330508309273292804623363092263835644763698858840254824166606089954030746836783970290692395783755151134745679090413829273095156991673846631787636854368047264693800016408785382618579849306819700619034918623496602784901031154549604228147121235076400674604210514784712444446113051080694609438823665929676202184195855432294767201292465798334821151156038822369144855838348893391543863850331246549292732367180906995287597537068375024636007174614099673256847992230641262415031827256923938203783554048089095597217724696901405165676223695528300718966277373093737981043107005197477839424734148372729589736955670630471435942981093309247277908680934343648078207666501656651082085892335823323940409965445039411141099449782185677444772361627580784008121330389802052367297107410774697040534305810017830670699960404928682485844487123496504195715155857252827112578652107275736926938255572891969791242199982257514875139917752665896894737562130405479188913021252617525793926711503188135939127817499632963632371494874767305839773295820203108658554644502463237864106072107613773262308309330239148421383805306528180785302494814804672769294319628931115922364467955283384967854377227384869231816229047253835769399036927484999730484036603767140563035558797333121394120367403822285972603802489571472026678637628573701044531853368196387454561856470030814172786102074481115686046414643833352418603344592010333070363781639000718464752681691572254234834145556252753662848499275709065574128910319961058272920271502654126742978684844418936020122664371739438079456287336264925832786204058529639080328976690472821920824483863677480877853108261433026687527717652561334535019284489464530521880040036206160918195822781600954039993296757198869720302203957567621328505707285348663894265566242576876044578805510748454549762467053039269050196622362696685139879717614777081662036464289030938657054847270318203139128739438026938438503130846036755142013818167584507471670893044702164622746240015902169433982424062280741202921976908845481599162700423435312990732958403035012651112811430867326989524261849301186961295127349763632315651576817448149938455475757469087866895537808132820809492750316024152589915510601889730885363358341048976678959606227596178106295952246369767349533929193783997996589453690155034314253382112107510021200830730029170357013354537767942710475429400785404681971188446332482673491628562669964772906237745281775126902066940488012882211409966331151001377882060564968990708168645161612350792467371369390077754649525085936854665659230093473975637574939463087002409513676997788037123310611459091940863122028852750652165417235006461722776986120313142818465569717725335274523818581546781798859295682308868925828976478524991949724158459894549198909711317033405083741997584192582945911676106534329934448014576079948657600911605725355663706877691316855778055734401646534133564044197678628606579419188412965790619405554998680310286878736964399894793884689908534267488688317937230718246752705620526444002918763059402513540101431111986091155711443273431933641702228468899977539857895231905204892252582620318832220388150424118932476091555369068501869474967833948315554324274163233442730836105792314436818633034336875275600042130962432775331132663298698234469284396189448603148054976777542926652932541063751041507777501660856954360079780767687005397554858870686632802400070615856986889305969435545448078028498414445348938015130590887512697330083980742279670178014643884114048166082513665664525887580643125254482040154333910748189806561062165200121165035576946462726446871707302609431682645386482016912406498198024040913211725984685873368462738309601806967023845909338596063757634567164069631816810574592998583830334314712663105227514120222597433926705876580426611909360278192696428484074836910518255103762514982351373572747823022847567772085798611515313868530702596161649539428732289922735266712767790600096563676537519332355705141569872618562363582050505462905987519907347985852949371558461544159826380148195928269453050485925803409958533689915649170658915806241371261588951557580490413832164818368500968755998474707610282043037720931060520019032667652732507645869000823566897960945267649712144301056254794958700201367097145634210929723398654783980332829346907823371874977026826653263681744072989320790034896970977168863693509484710847674462979274144019502549612031113082137419074502099448674417873184440938273960914430952503668253401691950154451944927902026448450773829492472143509339614197162530401359765264012352906419556664099043962847815614313061224230160772045883689542473531352832450234926700968899242583173496004428157159564525903671009441403473467748938727522381034444140154779093676291919091306991453440787464485969445781607280632218882240190114460350145209574416751728547694090802112507620473436551206372146257856299487089594945372509070019259357118164619100684016308127630153711421324313552661072914132912434622874321101253473243050507213238881179858606780683578309566119623969569483274242426056694043622749696569925712790737860425780800795301676944374627936844450243845854754609514762047514219246527907188879637377775346075649743143601779101564466277574576272913943685809888059317290308138141590658588532281034054920531945320354497840302218599127750648001790734269460951900028390044635065928602368744274924237632723471338636847508062176942555745655184790306937663987276418284268218206014001334815767924797164962913771732823492847722381249276338042034031859968556462304206810913275955442112209856646606069228339563239942623042691474385689447714011342713955504175516960619623851463191532739458110622390557645142350596754673346334105008104796641597593105392243537227724953128419130621416455513556607658021734060192286414097907451581751542665811838489672696029648583964216201868144271622194441251820732355303311512829431600562200095651303356902732737780980722381029358689996086374776791489027643800692630223986482397734135640813849165427099761996888827748190243911835947336445955128054124887112268961888490576829027508892594016079046950233813377718887166127898139944597062603475969786193808275390666336657925475945751264498356116361499640255990647154056943571421311976296424194517428593163790008826857593170427533582267115004721388316957708860715288617083096198470747980136409027708765659415091867575380504103767824627808096500438773776582441094247832826938800873914663356505326076375872514809560569834678380932331893507971325816718676043109453846901232096299354076985166966591556703053860755513781754022568605418613118095384746354805817742344478080110167928623786225689328578386463972178054439171190344391103839051247521973317831733494547199245667173888173777438158954232596163147397872687298097063939111335998315636531126705740631137615083862351677140353986796785134777594812223225971487611849127225816434887324416000397658149858011466289107040988179308348397048411519935857357870726019566679855949862427915581256212917982326238918208430397108973088581696877002857585098878516111512968540604598934689353455693828639704739127169937631013859498867237250571603185287052009706704627418792203828111138275549681236180449065957020870153883709723112081012378564621739511176624535800680477828099220081212084064208371507037905778608856853381452042199096521699581997445861603607584633040685276433114993558713840459137024419064396491888705505377221381364043474152411205210526625971500044813296330578517336250833682486793474320062027303652754471022828191379039671661960445630950499397473622045998466587988064197463088551102698731383599371426619411301056366405220307383752309271279846722578411189019972082598040615311849803487944653912534289284499297314563649379547620038350971261593317536148537104497725190124245073327360556224621114157109270367038491718596567309485015304328173114287208318213976653011616962359072765329578322173690097091065409493063343154689712619497791046807288183284225787053878885629682547791336179990525357602019195063024436933142223325935588617355108552279000501320791983637763266308582360214711052068839986673504980818005190285788532377561684149252150139440847081854730372321917435727568081304907527079886653889549362959157999633192261387116939414221904931048146743032611947180905093079011533648379934986072984846529316642585935460919222463621272566248624146388410529526534529644853511551335740674845001079738077776089766121528356921172645923873594858890514235481353120281832822753050781856299376879354508904094404425262628548937036716340142652998305061721941373825448867837330532827528422736246832986930917653950913713444887190600463956957191798632799085098585135565575253932686713209930094630051848932080015662015169344952614284999513534918475630830920900576400704062818136938110502962296543166608597526603412217689856447992157898232017692357815392726034536024283331265150866208183012791922760013374335763706328453433600336338992325933819334328770567175939629449419774565511606918747433196500292569368456646381168905162788057259598193919830432173466174309656229680666833752301364962333268093821043374445316148579391156000001253773918678790621619908181348190699370806245138239205608247868852079110391607708495872432124325266300793232758034087524928346556114568821897251587200785112435259573410308564458394852788498906811369743881620154760364194441905665893707647164907050379477267734521245587212021522967949549240089855288469760048810319310593911075975235418176705740934039114423568285982379821903751777222320619078030563349425715682922549227647963980962549089876497303369457769764485468997804720661476928759150493636020848919820892209389340204308281953250843319485330719100364846950105561306652705991500123143451542745633354246222576602053116767436725012238100475163345937875068017961022881399497815268753479183102111199612991845412994633103628643373694002615156403912112660042163278390863167374030844320560611853143916018011738855528426387218698370458659300890977287583723900249884327114230267653121627173813842001007406428644819280042201559911533038775304975970305425704252292258351705056411865984880670914445253520657778248987787914738940010676827003286648464286129044744666290361928640341029730449746736856620981183989124100388568222559684005466942570644702928698817047670510241689335104993270104028697541347638913477388436641165525530129346898285142764065262907467890242432075845043414445837333711997010319376178902193493220599494864716140956822541540665626163602903634438038716117056683258892761074191225457819236087380215240489444193591293567714783755188751392727646233009806269090590489001448379053308896279409174747816365325515921264237087184716521092746358354628866061079590477722569126709373018273410020437253025472157253447399218133894487187819664161069416023135451972381092519038778129936449523155394824564663334086813747969825983113465553816481213772760142019347818857730167654826498402257673942466462449202673039992931520626577928659017004135988739163383988880880053835141480426661331120915205329099520080920984355562578972028808745207117832449090050561544200616898484468983943861639135024908596761359863073212603869457010439517528756972510048585734488552288062352776453240091803471169970698517915020215733101420776142267051508050870622316584512309319448582719739810691197918500286511827874936793021032108266182978957448790630922519521785718336231748446949897097940528319267497883625699048798291737245637573844715924250203871092639746744056337105592555474740844509571576728547027918021210608482656529210804465078228202990428108450941465894753226773395483390122916209322538464070868591839897564286961434033862525787406274937639232896636680348599883298679120700880357959883696421600970065120954972746042264900293381650964255013752420821724101955654228059382125150025364859787227739252150240957396036624957719639502401645726627503263565781117059341467500078392581958055460538958364376006917842448414489993296199902617592425309693034346702602558864343169670713115185873440344212672665502951962153839279627471206067387343898896212255156315834434528849091073689876244384971481474995854334795480890774266281162289646602731952165130455575766157406281635166332138448258362300853243438756608149793687769252495219856334135248348167025108226232160742380311017768500879060934460572322098568440914503477458433763165679284261166107153784903811475974770566079117361077825022446951996325150114144169954258626290680502651013486804040212426671776302021283607518494347846766646353549562906074362536536094832530045876336651363538037506684919441463971000743514402062337489085046597586301599386991408757801101267167176840291348208094132613415085086771898749988961361252120667713769956527279738090657881454482171716614317760285601937305826247769149766582763493971399286033461167028169304240822039426500471312740177992693171702198665864514167766020660765904115199067504984264093690659264986386600117546303847407144982703234671574466156020677875848466776059914569977037110323401363203220220357030343322055174517692428781509467666968704500035437251121911480895476195444778874079747885223857079066428510677332502589736458053026929037818298087970135769424599145670104735211584999532799076869058871386515608885408359305819239989540866341654333451506152943573595917427081561050236622855493615029530291874679327067434804551994847924077822906014548373835499001304604770489952045957089207528617480504681588997339189036072956359793158120326244209321009875566099504188000406328247530838693090319770330227679059282106458197483453969073368866956087478303168879877584360093138335278416300251808524747550569591455249192374283512084958587042325837715522190177258177985616986735247742341599882448165652534979251134005366020210319440769920164667379071841907647685673123481874038680241567547301566231244790568679375498604786242154919453682422464251947525994272167141799647010371643567165844118481011127522117124598315761715741216888465979607973601706804113747776712261707291102157090336819542010598244296415822759685307810834999822306158507243010788997561880996356776730405055837193504312507937342837360280999737859524048325597298924244201474836050757332443641389282503703570726410680809095298076980560905262637882494141208004915070384030255862709965627018629382082265930626522717137520370030626109093208666759166988921685454075790433916340321794559295601665527386096851798530215237458436905019787106924764134637321471270487295357698173569738376623082239087611750020589252473086650306376614724734776350284935684093885788162653790425831667808422490946427649398766433359031664978738971732235928098818352872132399918468827450802880414939634449041597420049972243336907065652050514830239214706175004503666375461991434320214080297974264638908728393265437798902394849825314371899581249408266003773983241405862717555806186943566895935815076702651345740301762163456193122721280480045934952640143338909286755057868438524272870939210590597112148622884834564043747379670145424869519418770976070744703502372388125112568017248163192542676791621521266765509683398677892951680144317767067188489671966638322399341310789813496701157752835023518722039353755968610139158780982546674375929940293899247376647400535397396949392155068876595651523830720818652624329710657897879543342912421542221910408989966295619211290571247099910335911711729402526959968910209801384741453010659721559254924704347175950293797229773804830852468703210108189881396859968474708205438677529636657974002261927719928656641332484689160175574235452410028498174564445703596328083966561493516561204900273881473274902917779048198330621711414315820775688450687200749932807005630202173448899676394094590684016245266838985038040142164884691628103222836962128544474790171332803799571578774936960996196496367167338852376650059471016100012707802432773270395720259216343165233040618604427798579170091077521663156419932825297513637526393396265811859862183416404327396954438407452800376018950502323487870540087620247989955170929813570653883612988737755993202713002134309450130755067521563974082589844495046306222130140009717364061872171566223395858916469391483868723861163782014586672194638812387606281355821613585929461682213616332633744017447976850141964277081640603098393737141287436647323846990948579998668146822249780877974719734001622134976358479706783189685683470631346900515116719210080031378253786198567165850310084387625329732683528742881715122085823194047675551118234270086718432542023138763672270812766922317820778364353491740872272995493693326378620536401054200758321577469815093751281421273919442665782578650468916519191360251414107623128915829638173833637884280766109156978454479594423525100675871564147874754827800650581028243545799973959794401806079055379599433832608262395335213200377416196797708949046752578094273396512543886999761858200698601337864497056604530769939358469278936088934818953728427164319527247988990789704716313002417505217315848555978799724276442893928491426262478450947794867464561608256018342832120547877050116913643335485338193501362963281229921956494594988359775457789966581971202300288430499793689228652989062268789389019176501631395577517154837428918659783887235632981468001245810528513273044411232595082623799874347044868343270011163828631794709598848953235618961013463441999535696050881325434163857986006124489289413255378770547344951074727215604209508854897451362968480384405326565186203903521559939687409313444994524054981980517792323238010547599238849295654776840921393789613185647018294789824376656447673323527836121114119413977827089425788526134277763321202445002959429817501662879686844144050475718123203642142194968566192568757470019594961063194484798863735088567859744831473239624738846547359879509396734386611887965565631516937561172204030544461549765231723421073536663656790454149799825026695016591012349614095016670677137288196913896209686379872671755841756078140145642765379760407984983348772667568501833644868130955908204453950465457071043987772865092295775510739052830975755722423434688133368441237108985669686847762109083376221047220891253422275792343922878060979268258829517066281807184201900262290385958903697430753615798019599932490388265140899255159531030503883244883888039743111869864593556085709614835916597038669854180284468499785623844078913312141993425198331473932905233466352343136712098352947910450072731402862784850551859310516695116397690132111591554232579785652882003682431965259272359653438203356506575135427248259195425563863986456803005602943322600492931221623626124660560307118021720443017924873970011937103831837294452567207181205458146496564081441176185860844306248152654454120768928587564882381512332977869451443116075355688144630376798165956886110300304330908610099428750754165023120477825058785938909042996816571959464222615663859471160581073528108536092444574048781323611035139888981611210456278397523286048407625477595900770904077747459946478928514420884078895290266803774671616998844353964454943692651862705009365781891192185561849430651205882888228065189804710092043610861352119959924320155353287049253522785624199568405244827215680299458968232683348118515880149399270727326441460349198050126099219787281154580433009456758459402285973948959160321057252637571639387972529473783082544595184955316956881760204186524528401505373363598863711017537555039721357168531011152005341338205162257071378721858901299471627231588004988811213038460819314305535150196163691384121569880833026498502655604247518641719023100788807267355335332922563020452467019400368414807989626925022602658586788292088676715374025335023397778196604323682541529112459717946081689398327403314719756873782676159591304047926373168394781775088612346922285730171398994749684056943208499319430033630886143969674236021163641250373055001369106795948831115007166918686034776986548195142391995249872987925241246675997948001101425462051083860281082802357438836585003841434696678318030979052727828961660980930863477961225850657090871401447331065986988712303033667687075485627028480287095109148221570010912578469932762800474256594011365982633907107395114693824013446219563230204978762416989842031467108250621559602883579337124156666733942144478932721894472117922154639947905931850243505504604319648267853010734133353732799965015548014000612656573423921396632416259326777553442057467568094932670036076456031573187856269821357528519243820181368443063783632378307318105012407303810333677584309752712602684639938236037484445029430028012384113724077625911181883462854163016884430143545974562843720593547469488307153683649042617892827564634798811978689313528202590497432552207018224569843158696003175182417193311246784230097094943261579213963657545260994450265586259809045787325176877778318751060626065112820085650601383009834212331865928066096913346564261259662762431390336493900662683976047481678743894515357881334006611000366621716896656471073983011109321647443468281465233353074177787205826205221019144786244727227053398195732314923640203082379087381728355345309341580154538588884392574830532146173456631526971887362987374336057433663531124420725883417978391591416652148109829655262744825104195814795064007627996845211104117507235426533092632537875092643861650024919039891050327109066295975744793688795624448404726091790766516181948765403831787445421106759360773718587818526565521270577609589054332602798981974326286995915549292149271826355125813559578826204278294211560816319479119993215377619921485961560295829152586369099041378080258519391487668923951090224831255582773749927772296917635253491283185881791559545767071081103471192588225721136204157530341512014288297983545021343839881426866952560842094793871185149801265123589177596143339529804608139714130018918169674103488034964640236497385207431404441376830235682820888195575202698151197438077704817950735069369018798193881909704092887378956239174908978357734241256054006838582488389071353031280983665519983708090050906695218992096689306734102601410115101409574767562450501692783012349265544462451296575361953046189427940415823213391349868639453127425417235216948138204179875027450812969199454291348837545832860553058452917453515611731549433137135983260009740225119837155462782525693294402389678772161607249502521977833182175262856315784329227112103030188860111406675388120925034490419079324813103979122758857266181905015912817017144405229759569251717773773695132607754717184171812898708797195392778442838832008174903788794255278820361098780077853813892173744755469144840017890199650859166298921295155733901537230362040020182610220875127179375283962602923165270506088025024918876949696856840436684178359867883642788195821218527644147621331338536816381566022251115276583766293859252999014525467150161514469283229822300687133697893322086893443152660536385233863267640568491779596002157098489709315657909025038244309382503926096977886317009978282818963287899401824189710266390348322032276979381752429467728632519062890467693168184551541044489670009479503990531732331296572724751324536295729784720976229370164996897940467537646376011764400496068148551595370886717475155570898011560716917036137483064978992805913549121101421813581545784030655475688609367768014968681770389713959923181664735584464504576617012065611567509639089939913507667339064460686909126694139667002173662473038411549292817581307956875377501604857451066138276781339513501225761959833750547882386440433614602423684721718893109894705397927478117505038348192812656005909543397413058525588434873994371372806948976613533740583259439011893768745423597595307302723782156217537882857163887812485612397986995275011732840860649079540512633945600325194161538407296896350907832163147000127833315522134082888114066844816336146389355225792202387817218134895882858509328633022939497448866622647596504362165469618600695528843861040869433698414144747717218259849096468922315744491285436546944329863785378759444970539354774604412761590644035975656104638345898985617281742687176607902869018701136198289608159185637992289554620028395316704457547261494151570654446707963171189395778233744124152419230192976908733139074948162425549130819558240055302325450620867192979330509624557454572336386117652986656317348724663627711107789800047352776644197792506129245348402926804647869957818672175405736295210780222838115960250996137157634242204842907362687066555673522942712007825672657187159604656577887401467511034121505861104402170629967218295604599248290814719858601579083831245162917274470905610460024083233911822722754099800685831649372844580588045379595334349186407369480522921171844841273533534753530944487832068629163262024657027096319581537097431172526507750854950300835075686737065352790178490356807868532330633692456589184005717991267774303364323081059883412794017626676234637675499101053174143279285745529840971576630318579895475620309560372007811628596026602471705145414669025656791011346202108735737650481168003365677489623524061862385346447512798764835357474641170511577978654023692164648591253045397319329085117819101042572130808854234461203767803585052642561788205665103184406834575465604667988171565802126262901985293352662239326226547409984727235259148593397373040464471559675966853090548091937336834994098305481697377971377799882548108512787565729370862680021813653429058345362240367823230936843702400506400162532728021853183298020266021652886341063360782536357897183000323812696743935316193919095802264314875343834829290039540359753216853463285926089761236042675353870299309608890758084917915834378459589430447059405301101554304356609148533639329651393577743703969620839632182971207247269940451448619266071878877171464130689564295800689337752550378018781382544674928176522166493910890146056332334389249263230326079127443347899700866006958744353377210987390684831335005019071926044872304080954272307166930493950145880305027524645652465404348685924009651460632551156939672547794486886870323659794505188296970050471620367821747025554002871615482882215376071791022707567590678751322130363520911805715865075042704883627480558845171522837818472930389901616058354061850656150552141583046387456550406371305895315942966976987253040812048403765715901750552692285213864054787144992084977934966340617434701243529393093391717691627571348544827353192672869894267551373609356642215271676028708764454828475473990607526232265812690437018538556284095654772585725752031845312710964256357233880083318360046840509404389468646187754036316764051377870742057283113405284548375747083098883740157412276058885416685324905765369095111807710474548521431690414694114045007238133764956624362560056612628433995788258622379451326618127066261539573800220473910294054726475660770249468419343422589234357310092390958276666609351700841586986896009271992683415139186517967816860904323297392097786238733196757438746527433516215594755901676833782371214186092415097016812022866377512657093218241345365702954544467070577233486052145342549647502282633073530348858946238657874216429454185900598746909392816880213174068964330804785082983869325144446763737881812822660654492966123690788841015711951913548482838410809582875574951893149175579481798819385359580972022135933406733064009569273127119412907519480203325667111062592262964444045766027375665947365190691118675393387409303704157362009015947095244913114030322011908999452409657052281982864258653035500102545614603484023821464094490359479190973658623107404064537964554655503008506401403326362044487426780028415772559734955404746378990891316261588759361672013121611105943399627389161695381582493615261638177193160423474306844410711551814601886184195354012164911355438535468239875276378642398284470112794987737061997002270229609911800055892359505506958513864515021269027112668751828577024219805483234211466309070713921561569022710012331839284214851385146099912594917444726681501445211611503541560899705747457346805882002620704559072651116958088730131873689450254878219550654963084184673965817330187913268089099104157771928031059971170228517791949099963490827229590266925226179619562093790248216026723420324268185208846820843501731705166292576666874967283955732600244522965458106349523976567798138608474052156621016177243419683997496154224516454079195884102074966080806158276554278973168892414657563638862298207724348476155840818128809785494705640589765284384533421277137836002831225243063689903654232634152735884657845945284230506161175073636764012886838761058252309590104967524008589950597789225879839781749409658036811777570983132763428023996333514993440976601463274895816530088023099204855044110618721254333276861981534172876855702433876074782970736164005488848525521517557171927443945249796492209421908612544191821343798675620913775847184535979573260506490197786901577632407880791810116284724177332808468685471289438489554768839026214488658731264697787949854989665886418550491785292888786762896086851293307899612896355303866233352966967766273956832955491186707015938953795458844104009266708229810684128725097152392476793212600157597638906916456467696387832930218826438770823838100572481695859267019649637239995098908794198924483429181755329627211032434585951715597383583177696012709058110914990497643113215022641062477767162050515816340105799311466376780793661213628765944176843225688523888809798832829057743607339557711579739779847012491741888668620841336491815828653791368421126297849695629155700605758036080877418390383517681547059284264696822636662819398556397957476441033295361724243733540240506282685666740786099301472170359000764084648166101139265311134052417328186122351588596705252151382181894057755415032241070277080295916822284495963197347841343765782520542027057985706736596560764216338500335483003375025074748262694922542917127601087850915298439372261466439390537204875821172045812778936575423570254955880988264686355693241517089018917382904232082338228100636025051178005176158337960230922831464023736493900363777215633875033109212796514739428032814831821945685288210400244012983098271473685634219850862560869011327358482918218771837169379298038469755127351993770805870980899755214000493624912900660240397942241026721624296479869084107829704313403364638967854435350233963508650188942096398108745337615279263257774948779933254334866074187308202438445097201482545253477417310296541566533479109420495735257428973931166116841761462047180209013718558556030951532089402119818849141467881341391380467914131699288398612005239658627672470531978858289735412679370394356909414591863960889901361322566853224485944592076747500852728460346036196744139344805162624730423625815833471604576235499861162211897964447456577899516816962174458384983410329511336521827856660823824560890057221469428074266703700982261333410883588874163982754357300631585914472447739138340065787972717171337662528379497623958803521609363127216562866495755122322380592152376917063189010614835696709935542900410907884342705189509655646817564775837401042042674259981306766485547441099394998583691826211533000527424789843848322013312287360429228137267953254107036174099367098026308212097295324102713828394351894363183705889237073231382614237211455981765855646621263145355261728401850888096652297232838861775965969361081000837017147040399832021870577354720231789060052130685751938093228094982532856389057541724462918850066652561185792279044216206211304752393713239405121555953869515460073525556267452943639970350191199297949733879562977611585380662046800213381241421012502034351923243597942484136852984544112417082917049572403854063810221261996089852312043196642210491004554256927440376912098134185778112123837059967116342866675452998905961830494428336761777575191415348114849499655536641056824781053794521506806837988890975122194748693908665252202069155466196779996972442091935851546906743888329944030868471938303671151687331288344094336334246304859152282496336933721005764871120507713294659997733100776359078518680730826085379184523818759107383181304289697931829888734946497749572602090931922341604790444476792916966690806972630041469877168352919829361690573137196299853073388417131486538201872682829648826120904826270884041955396522791912087468239204289323409112189825439009552565244360423601609151626880924338257424091738523982551499298261066040832153871003480994243108896218046380689901214113766128169854812220201599215320423484065238008009692902521923239381287691471113508812714997934321067885426011606223478364584354012695923807862274523251412062460655139016028120284113128773672897053154411598773346219645242024413631777055645616143015573321514170047037299650292313113073214919722443991986278627815469081156107750729150300847979155573170457850254226933412454297454972630924034445916772172216787893123519821828836309211238684351632970783461983631787237663917056648374560902564177851979138530168872828413323143669620181832738134787540935516340936357593778441486699181511429334814527120297132216502674685017312898367984764348735534160328675106479934102022628924441686789366038149852231942015614170095745899775966015441979020961092508881539852583063143926970923760428073067274722454421908140708672235202482528949613504659179521724262165881863525412929917284802027759075792456237283755465700741109366212390039846500470253823490213971029653481617762207475401014728850162603817489115047541173772739939762741856533648079185863415866182253422699752035173242918385153351294688997643953016182687523895669642967834578503076931938926652897816996774397720247783623616430193852973731862276631789070280719254904276944025801748954737398526202314672019399710239630915357236140529141732682246888750696206902320641778728432492364728720780393437179120560546062497470404901227633916632502910137560389879161037335508637202862317943124293500181281887046347793061677731025729051430286211263146315360314549012108817781100533213406266828637830728949790204313972406310438619347667090514171223116253299769376100088475722237742743519254472155538883681762703411405702890270124644930724908889668629816710575316535818233492170863729935063994783548918498152629810815178017728336029368028291894368317996838639155958290347248323050355541997602400087516285913413997849478183011004982859783057241617980064110360202528816440067032579586039975792431184679509873341149539943137641906003884677067624388251293092874859462473463803558549297277937798030731050798858429623980089954171051272810797835414417847819330947090384011762719160979224059706992214691666644498311236778297882646807531659233886625544648487663144862938494026855798357807112617215246343122265626767490521393901847515629924297590810148829244523703464813577914847949674688482255384119540261921290141370830760171572959207218422801010720155047804082545950817625891273541802749572454872169440515919279458994134330276254664222111086268102001895786407957459229488446475123194588612153438631505486373856498461995962556566709436167413996825076290704254880711230610804667483715891869796441421737895163312346351415126044634291382263518802466897855309201625256582696835907151207889962317074913285890783209617960952149814248612566447738128548759557364520901363572856344998354503698098451466961986888942275522515407996775063004237260059146535324868598234406117871210036826175798347711603421732116143752344058547848448324560228338129502974229606188900348311418345900138539761897052137294485310395024326338827529819413784201812140465379396838719748005989785515624518658584510082160734206906777397147044193579419905457615759725886451460078453335374917812938289849486117676365446961817845533526453391150706876969970697221641292308444259576758021895244298256953075946834739933530574081067715165974437573399773418496072807852784162750599062421224935057600915064144456938745385914557221943161441690536208406680846187210896680292967956029650768697005169467350808132879575895398832598950947681793572761574830082739978162128762727341827723200797435963029153088293337302753791478600122619937744124296837035963523144003594715176585979086246281532942877157990906544089381781642523012712694650545213921961551824298538113616459078597767454005854561513061768248536202765672849397708837935547108385508487396703288552396444706187929342487229020973945886673001807755022011381860005154773363308767519145174661014000238782787756577291248914785226323392447654817278350302307834313309241318750289743922905282027848806790143619146973910857322048174197287205954639839702177322116728248304568246753008945304056366588221514638605454120630187781618817669471072462362294668425033624346569870307538163997480378467337858520303452951802816875530651253700474739147884357000077579768494327029940740803096271097747914415452472957323316329913163446678301748887374808640353169076327888361734127295985048871490926998483141417686470323843542860116242159722702956379804327540144437855920038011592462075320719349850393130634870873519339675807598319365760101410704656896491733360176061803004461089226425151188785139952070697326176485519647854613593684689506331828742529931328112165791199023485322024740251726455436990907959604006643125199686531073081150913790579086529064435162182025306075570976883137032669241578999346451075384071442593987765072793430763260951807124151923208988949904182091289281845297937131665786544587175276592911730222759029550194980092354942505801746444046298306810246340818411832773615827867916523344152831711862138869758822056754350679573560860738883696248270993933221896678388862807195190294392635872028419125139036671825013275115193255499048845538046048894096229907460255988371708036214914740921868218827117686105414204920604543712788889448116120877586153462751337847486197471859379465344345588915344672851294116039709751263590129161798364756812233293371864004917527070021412680520361233163015862174275099033982034025665309280133027107975525848324979734307807084171651480098137112445463069360876026790606791047926595422860568676210528114684594671457870013937719024361075242108117736774427871086040699054569369211502654374809858237940975499965899650913440623132343272026377800597978776834041858603937964040697952927828732933490286596831327102474473478636125356420467092109964960630148398723371023533598829191458796841196481769290431837441280488406233954144017247877663997782595852403495958735918316536598726013240979675471782608851600651311037575867552227305663249729961037080123695351874614270553052459816773833241105901213246750450225623688379094570796373469254286783189584633902946001263600436827257528157832995594648239301464060056857117435956124770824527240164718331624086729966233023822427195358662474577254654023900174773633224691833850686799261637738303494940317372630340570144844346108409582541416120353032926856533524739658098522943592271393875619895405365289987102112395453375969152600174445128240300039862784269795170732471562850806631979126591894988402226605192476855065081271959960494477755387635573983949779109584818952529163603507262449561253750242106780918580901488624907537914206621964004903023600005765091789664451436779885914069419674364278409602649501857968358881948943131112032387438834521465137877087798749075040007549212551294851768407315026480853144873398110914466666611864579350395348958249525288064337420483200398895629269382365974105262539012510767232914767180870824469640678710199835763839568746839544216179501305963346670108202309370300765043968999733745509838352835126146239202911937087421370972165099247547118725043010634146446398603989939419178892191821133717175136705982764985769398623654168377291334335093565266372258189330641278630709399256387752796648417017098412146029606043914902901503636831416358911814424593857668711078646470316509016414583885145027610846701928016459362769604210738783678691138991851055093806374708522470932061013702870952885102547063738486218252114580245181263098042879465951110641471642376300048618100858875935780522378377472872416463475130027709084317118146420829576847097734055384746926970535427806539787913501539868473429719086202501049201458615722739277388896997394562642060392068185499678513237264127409380434318289513890510284723252272760190005988559186056944678851554180100882253598193397526322796918124361087346188356476267886121045974150597568895180689280899257715003963723657486058578864806544704420635344368000888806944446647404823775346654898927285353996081649862121585823593370231558290009138935617574130471123648336394366264363803478890107689035325399386858591847002759648236649794817934122680536483795454611394770744463350972042779996492303869834536713569586994362069489212026445780648832263432684638381461177193850522649230864310983306923637572787696327404784605893339492403842366541175983734749732321183019586351481294860025679054850794670624112404152831091480445969422755971839745984427782466512931514811728715691966394037839163234007160533442517882819681753838450974873987197409478873331011909788439348762924801713828461148170833228253793563877662805661057933608301854195524087448559813498887275409961940100869125915679215200195114449964751484420014695328433470023751961382724392126430019265685212982668660754883135243157237818916345761659301474908563936507185471613910054206234542599490077832539576245089551219030489249187999121035442111266974001450139083899354199381565519695313227919607370398267326187742471866374093081665607611204283109396575389444649067065477803181766737240392606252554574997563425152018204743569589201903857405274587375249440115596325270554575133006976599599095118735780045225400805506532214528420744413955318192900854373424163433019241863934243631248748538250064542889032740717274375670191664428528510897554567596635150872737785393293133425175457199699313894645679775374492618287361207556200256351123260101616857577475960522067422262073797942437674648775465548366775694743810282602738121313657212836697286814186646569640182889113229837673318234482500352101839866419421003781440865432686268576781239509379594769881259664306197940186605678196196455719848292091941680511561179727427047011349921648449510697616955299400898104154326266673473841920935022690134302477841632280750923830657366063282726296892954265025312160882736780121055920472695214326118224936914916527544308075531536248090636697886488422121506347509551955423986667789054541835525079090882272494084244118172131276693270755783951663892619398712534055421678821420865835046005789622020819312841336774208491450133729469315207672230903631230482803358034304287606321729391160240089372608488468216506220782386366624628115626306644902537151799372400717935850901049155202461775871372562718340448265515667707357134816201994374815954984818189924098866608433122620743340399068996952952721523046449882892165614645737979746129480294102407878854700388732115236587848216384549180774124048740061232323320610254985443725649771266371817399532411530795503858200199802573740487131941818960636739674127200627737677209871653171634242422067676848770325712333584156475942166257236159867114977013967134893578067193098056937451989169139858590556380671124343839789107842303234222149612219581210049794732228421403547093686985794403148577749275487316374164518451239735955034348471151190129389119326328446586217031851169069139858811095796636262978022333665021803925229724086337560839676289522304597865177191049148417625822273027454723770616034647450546039341621019342678990695393987034704289709831917885192574274808874562550989839253363024017275521763996130355560395329722567500314277030703475222555737244518886010381536692172794169906668033713230149782685942493004769694157802615195461905272572361719245348470249497100206336795343894908970863733780115555642359521356461193688158051543427350142526513765251369167712454389452321142712673251025196013207260741859478153779184007449201779970404990276404580291764898861966321740073703568620747119641391522175349512935077953164289526659899452720920474550256875549748517324774650132032887544968666042216333786533273115826014430142007240507676397120257897326901523150251990634440551104940541234194944543687397602272463001664049915913590971904303274341806378599416462094159741510570402024131351689947883036902287491926147872811758783808645653954760230698592903194534924799988486373088423941449279511848836287704400780124775122768193457461331654112982239071706580614401310276128178593667906143251742125248964314729666988509533412941739663322802227102826924749461571260182192203237480230777243158530263072386274594993286982973575221458686511882629851046430432400013613843613615265079032925635698385500287144913711856422798438043255768738032232593677415850640882901858494089421568547296894583819214509163349924068990608021159026387370841484218556677468400919774189324513219065039995215828293828681241977244324432324272346163344352997508357336938973714010534512236716455098340099354280746717665082924769312063137742660737699340880556963377043653734403493629979661379658153576803917037687805098429598638851291763931467948153231999748528020932912006857265477506031161870266007141041900278196517622528628566613353374586329165572650108035997768734539201181789156695776342933101065068498697594116615994169330764054243426421391472438087785763977078126438527870884527290094168054096510430775493224700143864238145673943500885582013829155719319397995752460422573748274517279205831040338374779429950021491687195109670459976262888021246599317906800361236940629476252756771937039477661804818749153092602792768777288626420380786891625826953327851321543492864164284700648324594957719189320691956702562572341455856927419570696321540881191757049491923801757229833931216262336540442826220827683588428591908385933609082270330727057040182445286154135681442264904316911675346360431228809146705880143437170840367044289951344710995820219984630624139806949126448428144611048299739451450975511291784156172389156968536545058431391313458316508313245447423683046777059876902420010565175582062765240361764109573486106712734965131631901425760936655167784296418771379067777028498890226153855112747706749137250286873094554541662223869568374631257695026133910137429943543708487608474390951334715432614483156593098964320214367657582264214990062079240199734711750576786595548660512095614711091558239503226762971435679958184285856003170345532276473728301998690703499005712948646254464641562745332050211050151330668910211452143712229311821394895628722158359457330113755711954518694534379784691853489163132478632445739448638941496908526557173599262038536395360621794316397771867072493730483614879014028523491618811924169841760622433835868105923817278822262536404509097697379765135588380978315387195308935343613659067160001976700562161847006909700842059701640543091436764030566020854081214784385361292654066447837097768152225575263728267700650733737511177740564072295213023125197084456004649018196934957821220393327932315918212918398021027616715925724202940829652539093540214036381437414635137469428034303615243865856021717967726354092425235718966746219100248410667861345859967827406923496366188332903652545333824049078502372154293587699230345273058703848649019512036743350994275909367189203097619836080059557034077841919595391487263419649992113285458212485622135019076452239643177506698103454259640903900195569246691909227760623843592967925728594869808218649350885660002259297852868448626888988059077216866711879305276783386325058399014471340793640799198479063389211398916319219384089993167790271568018782051849655199572548392531077044743622501436047538481205017782183470173066543879859941327079821473361483117910995590340892897788454627669126122914761055468902213793718094240305196916216237345651738455665046988205571984588312245512551815241240415080580289232312839573558820587540001554430863637606277433236925816351803413482853966829862366460772467106087704177692334312682621967832692208295884022408752584295190531108978623054227569060497068924909422677754021400014726075193589164665623945339097753764585373633586244931207040904857811756051727059178983366097210742795768182261728468399874573913224490281598238371184728149046861346848141692247812377518616122077759279289823031862920829348727326085592195128623369079806186516024463671299018037606513966488439677954469455461024901426278232674743822144648147518642861065592218158036741487053686729880364081871128241697594410678294150486444195141666398886965298769734190452171648104996390250555593631029358417210146916830160195407472628365390859852876255792761077217108292579223356485454158294441310530842775494330192332381408066720074282774556225471473860863150320606592697687973663293536172909766634101028194831821458813425647184919342588378293495622125151711762742762439878865475444438134953084396596102325276631958311367170709659060524324799858866423754638314511613780663144785345329198442659581795233687587876217853234601783013881103522864623824661815017718457261835308515781186044045042718593051530872926872049412344414226341655827177457614391190379368883789649703551926967967217355128277826192116360660844456703675440310542284045285928688557125307692453459113783164895486763458724593022870798413475976921381840052001150605486035403112263794076618499476420473966127735662518150428866915476108741209311173467687425090440690633058774316598092643700541384148034040169673836143818334023311692917715045455558961065856443656290728282625176623029194330174968940345743011954718178814458170531559234797100943983072769608600907033327761861959204605483494782999293040605479270491225077808906397584061011597744281173428357832441543274926663342376131863827269535894248224758748384503103164250260910988528636556745393818277160279141122716128680049680829977892029264459419374192191978758582781623698836612371679014180106424516929670238671837819150995708434625486689797322746762099087954226750082893317384177475321433219339923364183629079065295863801318767133999814689847327960352709023986332143258539935062145675346067093025735442971007180487315860438252618529217380491512914953658853859846664955317815173202562104422846223778976250368235765172017934997681379290725830997573003119077361903692984917044374864955611619680836485693178702200878926259980228887374102499077912877085734176990294114967819634787550796063136658873362062335741570896026971847513985432450408179056074887150802020200667164168487239213728609254858789444486190847416163161242669548563302442168332648928245319025321504834344632885505593478837499019069590916073358924458599048147058940071925667710993650974184064782178318386179135449001143754536508077160790216042278036600260065339973057554948003805321512341555866410547253644932376959881743077053016047683854264728452211970035867159025615905524193844502449951929696558676784440797668407192405204608237778480780864162667583660950671947069579068178410876403948928523168586540223498211864449839467400512868383280964588022082406715656114981586077922522223614375692539883687691429962547564013451760202788883017223117521298574120064157939696816283269001600360876822335437507335545267774074932616559415187147642745714075185532712473153549262701024033820852540919496933606564284861180606734436769021683644586244558417546156541540741539706970624210416499980841447338515064595202611872895275824261836437297346999365937875560796759952138353030503689488798951378457730277613275629839971616953486615945562626532675580160337337945301422649501315999877324158657429159389536483137341159155467108942100706121617219326229179191031639917694837424508786715362054190490582561317108086278988041350334391579523834535926116804922181768014170387009726968905348451711538722406611114447811930619682175110143685034721953663347661537641477487590748398783464618062906121845639972384785835239733475353969168542460424024098013972112894835557515611330182426383229200884895311493527430976522878002373590499449060162118582120265380919552171589539625096594153768979470398017795856411021451579502313069445409555552298043660626697132564746997292596234629301658669074696007912737459512419989975240105630625956753549039526126924436123515479113709856120194755332823123804781521028007803739045100089168875934833024972886462026028498851895569480266839749899151343152343049188437162260695161156964281675438033056638455194787943571893474085418213401292402506172598258674401955443816489761849606123820591856730170334576341040783835310727172588979899651005571281731177638777522036538450576975110254509392118853095003229579237979204839741341987629285711214682202882959737148716334851597875919360715090238011828853179671648381599309194554355192075756146959757978339388681325563947884704095977655380217546895142721461373340833601215078952142158237645165471798539081682991190165077486633874813974855989072261685124780184851941022149621695289439947647140726777208322970504091504279192308323686688378699921749619451364252796081845697563773749526051556336154372260045367117904546482496753687127925897031652076056203127446401027331911631479988203383529175085368152145718954469694425403686193984904153741611658113969481866050413066899481564198187002080898214503494852213676042020671717186274027679123841460959729353938354233461667583447552844987809809669461723402538121042193567614598951981201278632630301052210278760735297475139667264137892324227060728803012462951656912433554640330773715115360425197959185082519344024387023535034127825804881304845260660746554121848030620300339143464181924979087813920861769235484951443174904576307604301131632066003898347957328826388921776299834516451814549934405800419390389526789104174813040283768207135786371563882869550767638755310363348076784840572979350652754039027443329312108763575633564420492419593018190773441594045886616428243696612308155415040942191292747218818726394378105074311832722931971300186826470092991865640608152899377400163452703372329915367956637520860069524006071983160670810844891197700821078037386660725539467841922801763758851707477076494305843461262282913325681911115991698269619342573023931352438284586867893838114975050977556219954756376206706887032490868506107742444623262950581669214681914889663371878316615476257165308935500824131577203029709878308869406090228389474621768300807330760269531073700496317411347954689578801011172276286643487776592881057075758955315435548562165412462775192569224799896273199779181261826007745554511184697942874975432045156032967558378706336029193168113226538452236960461708556929650086533471680087156803670238887933705924604041860937016623902433968643652449228241792948958745413161772141916148604291933458667554775713769261548751564727898959990899549420993332727607045343401349757447900732179292222652605325115415522653276569106340414810554317624495850864260172900253233957930310944402915918264447287002979058886430864790849582493682121305163309730058262986468778799243889953207354142911682293676274117054375857729413551165258165977000054560830276914453746124147977970415483325541793455335933939244386115205817248059407421170931160760052092834795932900967667116074681306223521058219691043864151021881154829646485558732461005861248190692273719524075590292017586825389858814020648693789134888566567508529979967879858699151760063089678756206135398107927464125338974455748523356353926436734527463235796453179721211546876097602198258529032268457111531015082841502545419021907100108429703785683917803232822005462822842653766468454053266007957534137885047275282087817919872724275117495418115782945698688960619866549348170872020343511374691281406686420014921816533119643047057168707777822197297720235219401074246151144085510257319750471726113165383702525341772364596391442217035887634909322357720763996850537242619162265033444294364340176832558122631040426080454531878913263477861295024164688171640323563862857452191214041849761634293425988302833744526144531897167033622667099792995066060326994415316550584447847000097396513099683927775940449241983380869628725017551514415916484361693242491880710461978262703542320766708786179223555399021908858322248568008882354398803095921670104888474544136387580989019867919309100891926060932437905407773414470148697661615550675952862046794068054997436741929921420266884409932679432264993934690297494510630417951463799718681305825912859107328880412493654765881688799823426286933374601880465386091221595588305996392318579378923734315709278372753666027708088971453227118004627517573819616626328756337717588025475700456952771352689965504832032899099691769930861310369810606360041913905581101590341430850868085971840531477086327075886830557052563608584928778251488598949075488584028299534547826058258940373841689870590518506399244134330195871078868014392690590522421416908237682604463165226081771293235675579760609057279615078809642487400262258211082809066833561762761032965217723211369845943255626695896596338841940254920188639355246664061791693221080409392922573813298718515424477474768277971812123808625790624657426918005005061063244673336117267188369207690853104775406581704078579194307738490235628630169531268860553605126444444507946559559822784762939882909239822418415431435371017233115768572968007093463300373408404685018470726221704000165227380777655675753100647709383096259374563378328742519473722509984943995108387750078043698461497216767476270833606510402635688197604306083031345235147761206268313364494636154204593677025275886062686916535724464577423666956600623921213746491347083670641638484552998194469071664687585538124620316922522178587834996832361885242545439507782452591535652542149690381281399297208494713104881051843902284135138906093635373067431731812426185201132681010740863084391634146347707187452235098790660548146028991875836387424940023579833087143322903104352975527449729298909482480150887826342190138269963549563271608469689229123820461368002159626214248078755191995625015681495549658782540710236151873653908313037476985955747814232424263707468987099193477124278752038455877295811628268877180917591641350674523263962205590049619932526325882989553717103298439778531071252960222433344269062258134845807999574947908242937201670607512443220711360274036929537365111727364535096680965010153531231555406153679619989652912141817607919192337132722506386657568357491390209704285498590789057839251288167277107450493637016573255818055342250502942868982774801042497450382783557070468794523849056450589546693946679596505963398718858827238857437711791134663453929635823496453173093525373175369653061207256223336010648505610895499689084601892201269061604787159423093914350350116114752691155104901516564436531745455910469565361793547572986349186980392145422168575881087396368226384109452354262446026194008962257814848182465963156834635738608008107835339877039111928595544250611563255883924217645982281069726397457310770734309784712974764174560811231220402927617689661554701419444111205938999009494073594322814306525185875736876337159193639907065171754906799458460859025088461017611348958309123016691940590925005569388176285290776079702827284569558452716837999818390265300351750667059621910742203454029011648862228579518397598954508064730712091376193084503638953319125623952983090120371334179072965575388610526934846994913579853153726748518928120094300882149478729498570513071637920795058807246168686533754853173188030800401787762366538032708955145371682022711758460597784536996538938471485815118547443158108249993950722057386104191285690715650539327143388843340645585319615200288485281857397605854835051182473480220661440415547496554112255907586895907231666334588048327587045943258931196395091915356665219090132337275920805268435412366696174180444627192956664709068154660489261181265291068237429125643662845517817673841366599405174312335691566598680145415958638725534676158643731589664009470417164992310757912863055712302971601289112956454836760116448518338047215913164373713610231762047721330023673078910164642281249943419323154092670179741501208356082433081521603940011469383974609898475042782067209760867206083223552024778502702993732687926542360875106228754812800635861467380406531700613928666621584881506335537821433896264397676994967284825424218992831798491360817179611314918320367211219212421578577125583607412819069600653736022207831258792388042230344799284222027993562227469639720602406087077804962567501952324890431957256652289057689111566292350650640540732561474018469196894228684807797370365231884447630486683496604293870893470657588162729089060655399945983022020692974735504636849924587839561254386427966086412533963191007179954750154171632774555491298166849032784752699071683011368439919671325315348102257356458674350973118308644911274408492727633986553490346286528661667492921286314667051434492305476773937356829469520932399387967861853531334390501663978324514731760532540557090171196313570789130209020058037592991906365311080370585871500944773833327228908422960174787976457589051400130729399780398961000665468041578720275817120680124707907771196938025547081415515355835563589719075796048231115920018397594501339144338332693333365857270256340928252101899174638097287760317242880149910988328420009047614065311585881269857610028197530888772565572737554037127229515468971902594843316368804017445613610354124625233715016736279840907697524578206951417111094763056098023789853475202775686231512329845008898664733371741055504026786296157911391748164560396971306726279459026901445256178172096548346899918019454390932061461894233156146559020247530892977710456711705343508824892729477762925976821723962441153356927021436319674505940403099191467312166961438128588004480375066072927776767813591474002116067474154756655038011222751798459435466744131848723169677695539802801949661493896262698550168095771999502315630286549877765629003582692323067273588406630399338858974757178047196991346555893277258082243354585329425147680959529990392227041990640178677094404849031049459342824512974769449754992195481966510081993725958501810409340803201812095943150104352733799494943175974263375951117766697663297254650053040583034800156525148704175588618907880268962299630987520263472857193164666017863303730011583968937527236748582259285101743209729225013315549420581747141067551902516995648272844087311796985515023092978355599933392877223306336276070326125027193184844475497735528563737912337059875673712606627795064381229642775905237373076978133827462941094513540735987469735024439275130723735043091209036479427075704268007161695536270394397912952770553099919300355805535656066368623854486657863520610110227178087027652275254946105473724516844576303397493163285609637404513816421344937893050673572322720141847757249432905978456452866503476109917998147929686875097008439624585157403564509829761521551123912846579955826699433898889669454443173179892103725661619076259776965215777344311323827391859556320714115474142441958189001705564464148457761756804572925236811488641591045034766807817312880825297503052464843627224813864141704851851682769585338582380166204990213648652173464203483876883388652339283004286596805577610795395927995185498375858074381886723973322448552693733375378377609888477153436515835422807664957992574310578756093254396968695199266810641108724016289420897049638052355164534767047344555140601025530041456160729034224316970926968034296778375137423074748116293649367172447614767697903250084837002012027270288378231811896487186791406705769445514833627729052758196383101792820843141477103687197780898693101339302745793969919565226707635251560084438674432065940439560946456525518393000528380021157382935619574812475474037934776585203250128510026685549221144575093754314170755512892755959442883919411226472915341786161228573320685048861057359057498471574041616131110000395273469492931456335329934058051859812012555142759888163724547835418131856692643243386776671040480117459302312287816744601350752688379888080775680787661742501726624279771450561818836652865214575541783673040075844991668079034503323142854345688745599072939002766168939595825312481737408398376004658835249658230602003770722460705362335437611178688609020676073625674359257776540671325435366919722468268081925508722360445750081743619346974591381305171738828767694892537466858248116198154961117085419477358988530661582969936510207803981491677519865005364707060437408730364456458038858504175999688836838098905882230967889321717012065961108944812724183916424496873637274097677765558190346553921651294542291942666317951537911626519728232545826371176353414514970235792631437280014984001348709224152086308714913290790998496048818129728512603253284315806982323525442325050328599839490383231459914298079087260139123882906780204468364934506645769612499214386428787991152141555875091701391825854163004997277397277045071125713242264840300591693166336686453393230180232893575061410531013865487521168721888094015826892433294314048733678303240779644024991365304047722275176485707239163266819017321653346996161581278373399327583746697270791599476151247732073072956249663198207675861384403706763481871700481664583496418524397389559595214159886483360476638630809520678348461225698050640075986834466109605967601327383930019966936866284178502372347836469183656989122697415879598708843691259442716428177215782339558474287670334917913629027262468868386137885654859933425760688191380122872235125981591675836526342993882912248959662260205363758542208399705222301820374865299752630343306286382526856459339623615069077063334639639449725577429536754924245043442209136154978958439693220676837009629175075953987016060545149494826073602111897181404919618481795335108248769641285131024718296599223849524388216908723519059217249991424780020935631067422296095250518918991815534919301791787769667052075249057051209081662786370862590214962626864640264236826719237795135150386645799711306129568984830993528842762625868869887038708138646893216903937953563145164501080048198868219985294730580954016287821497468272617050683343221716955125122749528644713986650057339193984810704113761551618352766602059696721730302262874165226982638433778938073647423883187583770933321120136517551656628003567844371293732833599775618021337084739905722490633224650579870193400639217389552234639723408414767112172028694660278702652333954931509402131714783454600732108471086046959841381995676529056128977760123506396734200340443431507451272304434977890499964015285877964985553427168372681510999640676746610809981881603665936453399393099836989261861887513126046447097663183435614229800665992611039849018240125479000215674610711845544139681989443445118030422212294520633558345615800946963561627105210214488599775249309944997597476883131771889691619639811159313021293438025660507417763279755336224788657435743122002914042619105246984024071390445803173237568808602424056398886718750279448156887012507031435094757860123459911899343399049965154701340434657598609326683684634452862046476109367103030493884410548795776566508897998556337665094767203694305095701387261548233280957281185416711315109014070102644425210807446069054487366271420164176624974751173570390620184847376860764088747782027561433850603596742560081876610036702830593211374342849876688889893212684307809986977020560432942337099297452192415980127805843302144937071413750234749199922441374257025773896180354374693967531655073979931940536849297181297212918333702943651661924675047921613819248584967119020864062440890440478236706758899730421333008186825324039396519498551653448733832778807926332935569496980993639504235404539836476563024536122002272973074180603202185009494655034120380577697600094514273006162952044901448893076758314426111607193680558331209905522524526641063822106191252445227214839226201917022740218496281339250874089646149268834829501887145157267873798575111188949915058425429262004491711441289515689779523209674398011554168998027916132990121652051407574030862716690182666309311760591481365198860582076730210804766370078449439809254829097795901695807656221159228474594804756866878362185791549271240788757511706554949915338962072507857815946015967671011955922435912840685454792310566455638435115659650896791321452291980278599167887272063493414001582882715127678077659780702206925020160181048941573456116746365122540245243238715879536274352654847691080476690892961128472107587777370876964769503730251425963960132576831362030225065409240288549627539683554291106426448085425472637584712111597795306202319442542746912897643753886747479607341892194444112790914275343475308780396491346894118734380666477780559927707791554771649068838231628032102446574932508731219356925384778500198626189946908210128531864122058823526973346381340219968516277484470859554080984508580529470611929156494521217330046385181140549532754235120166169918294804451036496821430913548138782005925804057912116242573511710723453075691543346478724540259086318652629477479684533724102535944901375239135616296841481125459492780705533784458927820135174084993583501439479210295709085211153388837079462855951797090455395407450045634553355103309537719391051287175016549636424836470131416005242744803699506890134582870719799400770134103183080127161650622236690747845279721704986292065574759921962325839754771220937088799519870717059267425856388939667405069832020914384742430270295499492597651234394624362415963894603404354789296766830201185580124171323518352794107213578492882151439904369580283642366491336723106849550922963972312610878635222298858369892703656309861796058909990859609740954518784834244460135491909490063743685757554297369594016883798098904157218531494678188366926999611649528174997399225663173196701972241009008914664751936032338103966143169198700749445847276501710958581074700973406188003348608498568545649275509657603424858130689582323369277571680307849963383201397018027615043075284475571764873172306463344028464038497014980850128573369331299249833567628127395900833622307595461817209221504133479213306149662553591770370503293635793007261282227009267797045946521213157781314946675823512163813362186289737966639198005307695868063176940480872331903581082332139406682333736497896578509799962898336451075810948455262294808367123610908900591122972900254695622238630167901300875945134652366978101753728096632577552104805429864488143593889953340835008128230759417660917708472366758618873298519950731932803908021197720468389607936619931198956444863535070168649584716622360396468488079737843078523457267353976875466128246750317663099966206407669017471004086191679967982835514646436919125759416355820868779825816281618864033225422331627137970473427662922067720277755895686970285076803398419166024540858404889188445876525277717358391068895017991245955121410436790260514960364984559598788329565491178988611170434732583200096519318880961661945850310737899377564401056029829494952359868877294211912442278549798492683724787487231808400191044017877122263204931974015242158285152531309327633100522475679074208051814244137621730474253630460222997873024812902332870883730710862942712436579563752349195808843785729639914043533962575807877018695778604469895859790812871492385500749086599295004321414530039566862803742720962392400115092070451070816589252941233269963165815831268950535376876512322337774522372521731408164898937459976035583098550078671150856819132373773011032296299142883171732316910469345227765122069191901670347160064779454902301189910719118901288873229334109444023032666526972938557528687973441920039195326445207408573753702945825686100862541831698934827869904214119544445220540517804360374820910541882688966010810317827468150014780261787386161689839502639212887382554530544575370495433607225934523186573990918574344816774812382834810237848238539811090738592289106409949939066773478662593370100657054857886096426095713921757910224786870733535880737047332619045275799239342742025242559073111809620765706597762010204377825288267481485699235174437114893493419691657226104616222584690549511135580716981486092024301668334088575913223197012601886254276219195291080553550950907368688926361825724872681905945459440897779544261788450768221036953756973615354544818263268084033309923233533628259083466318773997122019847389522383159714218665818045797188383613286582015309061505467593576142451879603470791609028680283278990927998173142429922249226267368739560789949199787413310078779667356983201853242326626624568755735354341041075290884610808812762361335219020922865380345237247598622243027287631799096817713742396573767066624963054944017655613944731811266714135630610266875389262695713177898699965193327336336443771022749384278193041316963799631128548409399640451551733112540962564045713785723889521568563560872684210226730733333299266666888763672382589631995936076136811339849635961371156521420513093187143885049987763880540448405998995829830158740045325871644412835961526974315683964321462875210599781984872258505642807547062010432989738503009218863472492596686600789689155071397234285658498411621698424537463856570445547682249513466411367967119780780908846915671672329312164914305679965170542523737279394331083886128260548919940694658099420229573318919252846245460998059191658129389764326715552066906510949469037323660818199306225499275808170313705572569852898163688044588168727701356726813044735029167914730285953588022651224479369341616668602379175142668966716680488445486545719701708814949676052917152651567331883424347922304930320118971145183795010365970086752114943438850101015785244767732893266942440926764766121813535201002835391166585737814493420721344684630985064285017484904606147668376179023404860686192421261835553505432770238521728560668993774853458211331320203125207483835974300425241730410325735855618309311962163941057705291712939378367929927237628597137913740754411060658317932080125949686917133362601297717043447549258259844397595396594583705899835418968706062755241252769882299181970717662498090151476273681279452561487750340307354116501912160951599499078647146808000700971494496671194552769948056497190378177760549836907844647949976455449968791479005083291591333255681424114825614789453858465931053239977683012537044079117084371057323746841996654523045198277451270916846974832781076399723369070067563615338371911572849378137959629146848808491208227848888560328838800924613074280576068550625167824783944245701138638277057897742906068741279899728720791822702366569662015991522138994454837519915701208037709385884128391527994243205668053064520586675554626514902256741643378961468992624131153740015843240503472088337370443125352971758441249194601235018679662104283941538359606853654074613108251344129173849543134987482223593054067527436527298353538385121791861246573880526552673215589229979905294623769202316922293898453187106751381960858249053905710934259460453021993923359455596011639585330330849367079841374878469421511986345347339243665926748177253970077597933110498479610344755076547405492876344710186082180212074619425251778795231526096494956942199429963665960839859509417258171196673274337714789891933077420249690018151769506141886215165006758814651898214994244639231827248198059554592783564289803014897541854303756305999562504497132937327864195006321286937475286262684401294997848000494982334319883139560976451386019949145206681452012077073438002784498257095614898286368989730932524845949387199654302804542856246916472337335089700077661478449244008912878262011529865507338611104072453356467731031399480510586330623627177872029598891905217177593250923430601263643803946585530509430596630026716019316609340846405038252472477756496994678391242666853800742011544894456417805800737371657289608224702223350241952759010679455403267662342376468188289997751187772723819717827085839523698472438219926311361365245246514185361557590849533115057310760526243837592866759581663033713971037176446725935319166506440728734142129642527999023709424053305114630731244656301924888378885098855480538711958503762029466710561070078841645608391198078723496525158290847454012845737305170878637335957398017109142445035479460482055844085990374438905120663817929313484697444294947349841425152476541750439065035495936182869246358149271408209713255322364045561739402282494955696779714865129760675748447895663725579765091455627759284421464284524492467795179584588261701459573224920843153135046600249639535055524526259042938112102929881608744637966637919383741221238209452942049066618854009958401307759545802131732957040941538631563824764036155622874679389937302012165726004991732076812159207637505290061226532689040795915525641281246839434149606394719307997755140032368102508274412983474507300550077406347675065617072319351834474620633253678315627049197960267799927555745326832881496967600857043602792118030015623503556027248306300548998708954563138111177301370069726321877161136710696251851265131364373134061097834247618805328925794470788128308551927336732323069676720648973477486949196069250487492838864930037329049541356786749126885832952674067291676442911803632264177857638095413478385989328472755785354231772547832224073606249707514328457767489445915281992796861026889041515262946765182064288161689446937492250211249964806624231975254056296031016490729923253633679357264325809269474192146570409251240657343725508823106846076202415757199618106112799364053806649170162818337228470411881429005795748656744457769328466973045983823677339294708918297701954822035077886316763702156400978043704470393870948593013057022494432206070480783372661772129890066968477368640239618671929971072623218198332391745566982316170070770265396633187495764929677023102124685821953030125673752757067174414821742260291029364288946291863751556848898262175830170157548372147310590324034401771045171399604726438292657444031775369769193705146376438215707140804302720052257965399567400216116304163777338249401383851621143540265552983437112719958555839537714029800556534037229787902444263350978373649885854898828514185050627181546890139530698165643824483097523468945136143956505289511889372284411861196406604324268320918949641835411197352199659294984333427050983395672864102702904947292644091401330860272429756238826667871389200989322878919946501472118789835512949287239255652438565642283293365518602994811903046969529916139975426673775082911675566615411628521977672966197530552296056938880386746876959195829664435439422159752448526898887578481705094374574933795312171670737333328880007430192959138654115167175937306129772472202617458877717591557157668303850119365406108398046525048889773853234112348706081781091612699226307900294338370799075279915208154828222103329669942362204806902820928828621904713909394230258971054541278892152061758824413402560558059114225685736960994352971964452376182249548305783168301008321944225269257437163597041724107259653522360538280971770785801393580153040294042334685992758227508272998173552945949992996559894495540732759856076900356495658196012748488821064649658323573612108660472009796510160569588210325032383244152485137998115552533749381023076590797500720536883684653539695076824449122431169507540522108408365615819785377132640116395726093640344959807188159792943306325813509416849000671766051913009456313129638212457298557235359589925360111507274623837284066348560594150478714150376546160041878926368240479847733096855586583857029623700250915756254543695608967501141682510825034140777081209699484092632998235333979864756427219534878278397382320041768266331350128727138071793316917097460760689377814903182028435267613665823856342576552756762134864473755092193827341251479316897313593885953692835186158648943932825719040062021772308518169160500793632609860324098843633585991977067762068643006408304541560240700163227071939482967279638408164769812014802370653667814192197042120709694309280403056868633467928945331018313068022138057582679879543751837987926265265876773625747067023124193958524739300618200226526550108352881986190586779357803610904003156044006655896612289173578936528972467187555915456517308870940134229635998897392691581199532002944396270992283413298210386316022339665373365961920453216729293966440023527580910538461264871719907963125189113420356878657374075090799948403488591288676665705597739090677891814896920940973190285556104472686383670751244840483309309164335472516873293148731081527577829960070800217601091991702852988452670709388300774266439465512000037565295359328458186065325098871694252845942925012812552332279750631821166708746685544305353168374802412625324438716554783353405015527895695616412890671469877168444084644179309221676884243603312035054621314542093287021468117449410809961983877646044826882714496712463793274660353438791286797726451776237663080234486447699948744432001440858078289604631018151649866987267062158620620740540041749825699009193989118904110491124368933332779726357868919119957504019142179827082881369881497775132838523702409429427329435182751800874275625574794236800292074725212719219953797242510076606991790482167156517779240218538461965839786004297712096178509576554641814577714612116117608599236437065847304948919367979074868025351786522738650776263691824177465743617744554289534388504739348964927595876640895783916410312234933813478271552608401027899276649163888734717633394471864354952546788773285192603753791954475913620333549803454606145312295812374111698643043276820382031468773257436173331866227216096263291536326394244017356208973917228608527715226159633107603829446542188040477433639014868844477557609606512488306337247090421753314867256239084582845936775135592347998866992313260299876294738197039683851298564059000632048651018827347868536530216619362152309575603153095401595614943839944474176822978755100586565849164978418867607221071306787683030246484703980095524125501370555695971694166773601584151128418574854715756385748902130589987751299976299150154646955016361691002789032296184214828731585368144766682685412143057901770213536760641714822313400348246459608003798899525851740401789954160144110619058122687452695813088252707696236678058126353637354634461657448711425135348566162387670688906551797226060314842919209502366060296880464066654876865659195303948273519791677384643869337764533754973302282004507877115334628010229841121204495001035890184150201651134036083879960033669203146746586334248110860006678463826284146010802149914565776275387268659031420230360932778808725788569958878977020225381663337595721982377750007862027105269711958843309281616344406444768961446631109574559607645867811291054132426223910900777927843532000937583210678354088790774072981904571824759779514529514151992598487091028549929710451865297633037198434863576425976161602450375886569017215714067478147764837714035497879535119787123896006437597820473616283805356931871227753634068134611025786895851238092274303052597475401673626100769675245856581451162661723029950324518011988511358507291613785590553153428543116344416221763423182284687514666022525919864280142871814129807171803201373236396133381752326889953637955591181944206827486669702694282735504943457063520534011403642567791563723967492587877387189505157668946307616276291705912434595881872132499760963977111058944562801434892486699115559571931480429673586756503925365970879019473061328511667263036074932456623595055520037677515635683105297488204895526964362114301341315954147116306423907176768158841707014461812673470906669851524801051732542527958506882318605199714719985103491474569592427297566710811379632105863692400177720596923744815651224205295518900516201812111600813189287901444150784755265251075960540299765552978531226684281612101663379126858586592993582845670241691453895332937181568802465480244266892578508597184385981036402245274716480724950958730124111763946615481217800703732180231649236296129604896392641754772239723329134361043826560807249656976620406707025061316747851569797863348682684001153844601422396763886789467070356216292299908811474739032693570621165963371758562398224655552729557239078708041526029304194915786336451920650475355062406762073646529779286432506371692958112065377397334247998138935075872233773463771781170221296190189036587580795224311047071068437163417527657336702402395853657009756821439980748426065895903231058144713302760383160908923617041680865417427061449551481774611111884791229679814679475694782074954517052749141821345677925118023371567484166487713693213832841358446643419709051923582325686663105433799809641291742002489028961171716064362817885305983806493104511324156303453308089392276174994912599935889417879228841248347312042910848646848384252884814468244142763983012053497891842016616009659822646150315844968703752820888181864772051985254147745539682843426298766544952133400640673077356730433978355775864394427128419854482079828109898286433854750661176600077949247409775334902298317263789851283681671272710498337897899376448550802765230252535998721690426268780040252800207740970370447448573555902316292955299778722428957571597024787201012239742558619346476649584347375838903460316545103370840918718624259143947330972080616802761749789109383821923794854758392035266050958825719895964202541098369395124078700613529578641566169869713174250897422783457449703090430029922373658235235504362374071560268780315418304881463943578448505047727230421614081134868565107990732981820349377604923114197620004383950919209841919741459001272337744938131886163844635996784144559914943535893872013109839526784340161311274578690919778648147591217413645332532586923826478625628809721708512767811283031199425140690458661425879572147940531005107691239469624951308669988497639881952170460591597959312045848483232031653828380060217990430409299656904799366288078841944044489481255379346070445137052140599131475514573720758079044179039751746616389051993425551558904707118984272372815249845721588591657413545939118917772586175535526171110688897728927623050481975752385114233860233237067418025986430758766183218370777815104969196027105356160143069590249087909907300136886438395908319076404548627623079350140037477800042706068219891191875754712675249623697842353006177123022036661964021930989489438437248275164752528118305601812314000735596963597635814438802930418267166068245066859257689956359683162739882012422062831645591063915991224890772619885342029178927777090326238212065018248727062735281595218156148742562550318637858186673906711836027390142124258673127970647229953914539860581864826997463638343187760687413211715901687991781236832076200350624205717430468340963522853117216061338976207273945041153715211314642016484012729479326572896376811208037564068319494544156439386547493091941909922843733834011966864007681922241414850736708519706761662229055814847481348227729847844206207643219226612137119737715013235882674325133223881995435599810832426673290859852104549440821149826264021121243870130447748805965834243975019563933858782847489891050671544466869956373114367381454563922567420492818488181481183507365629020495257648859065387831853890579916201109373046435731757632864016807609444421413326238510581524892300291831546439946161547850244353587653005220785953619525930903741568506880925695629464414409589648994341962208379377500980221151581212058474888453688969483402339874673718096910023788406385592806447613376728036935135323667719389247733048385917588783853394055791911008613015260739378757782199453707994786859141257285484276152312807733576348887042239408969784114598843417613476943299749019292641412612763411976306485429395269770733789384744656043619000770914306518333315283947848260258018427141011347213567028873214479352458347100947165269556187500970181893532571186768807650058441112101926580391137094311900726188579924093576103205942290957327874441900446346044247897057708662674626969848292730365733267394245815598343875681198432437173178499961880491636331413780018509278690167686416917710217624386663573319440548325340885618347284262758063426200973509639484141296864415431467207162711165082438295866038107393008905119753725328026627548482569405082344146189373471152727325901653269817356716085625663547265543683255507134489142844675618243665437617317855308978578379799465368990334388007923327584611088474027653241999563964910936432602159985874549132617682622438476840672480910960096300071913197668511887686067964153963811116103475676726313533729251145763727917815980562562527733718095166282873633480867745742827342586196800275008809816382055548860820881866106607614040357002517767728422580440642708435994427766538285492348348379855512094415291872120692155254680198469459299550918014453601948818560925887380706508864498524649310044449652457175359403980814342977024414226994304614938370631979516977647983207466953074441826832957159665738244456408568408168095767171468940707250915254306858120095492429054112069971387670084346672170572451828830838114423673288521060357350246764518513357935216441961490208865922573979087093151926434474458272398637244925840041310089536579925687270799483418710600661254052555714490391574005470832119321503279203627319847197921575281102441341841982987743582719814240520818740081224548384919081432430682310383886593132802991611255523577484699152565136993439749056402730212708827111908055957926386384947524835576438711035906423026278840429837256813245819142732987575785086250616408831390928874375624651088140207453281381671053560768817779928570745838279278902466315084753084540133261765041650018209320849471664670921573930882694832876004280838542841322947374036932295519018690818299568127863167062706322478218177069301197401916491276728780642827432424037927890902336819460277339909062853318279979242322974631556174690081566619528164553893927604618870186623084107219265640380126360775795558909006991236287674386105249393384943649983766534555031334945309605882998153349982484645654848734557626083367986898422825636988318530036943648676175567070180305408364316222563820719187391507204316070257744276323579700091234840249555635801058743874546485125222257216565883893180463575207284325570390091968927272844064072275765982430706606818234410368170907769620056052509809939405104974413896541887981813260684143682991727984667122710657124902673213946159619839352459084018874432612108983750890545424097643572374148736371166026147035595350408265434188018188347713900250908005701490636588832748591878132210055209981392813543286369681782285241648616448511444196671215674870747547988985393388735214707669229743750603864641169932908320534298466939506660202320648984256477769496265199462922600112381953004982099834113459643851406987274091816346007625748573815567810321110288700827496175719701557269849774874683046510701988066813821261056323795077072214139295990008537007925758630447208587859460848220739589909043131935982305102753953064993778713688947304120909675524457997426573972837241295435558772126039732475949131816708315760005072816251553687649163076605746479617793608959073315644932207934539416700923935424963068600215451194295345418896134872072311147429904245089546323877347521839902600716932524155668109782845709253887258187840362355475957979373600171107729054327358749873380228167651933294331411211459035858111098953790603816279440580532067230367555675357042997005774866882530622979966965363700083276400026253212687860855936309311637264043240544459777975624416766885203739924485585446717406965823086457497098074122090995409842037213768425491559230530380607233216751371714405723839270997203812955539010253059775936095136438669951262725382832445543575696830688657964969700123518913484829851487526400558511836319254676918405429105989084489057772521036621740644893900430555599647824847565687555185969886263666182991390925861953515895776957028680774923834788491819130005994729390802030012056028047612348037101204534912119690359759267920359322676888025525066659420744351091157612448578704101262160401712527167320400405984491009754043446581099358457511865112059213290935042533561845835116953806774877612909938271064895327458363763970959102066064406628057999176105427863900438389950078712445097699837039548958345355324842796765935893415591836485196481747528091033419425652991437612136632810555073272589700767161194564677403605691626046252913717063735299257791117855563985743362094725996214005859575615745303549363355211728909853554575338014808285076794053959330478748973380667361279272981341624850506674243601199481748199979047981384097310419725581586407283223370407951496184130778802761518883006489747972120936943605240283235963921671871021430118932346328874092221705705785032630132394116390416550614683423513081625492636038376928389561741249481075334568781302696268123056470649797083410676255192657609159408685274525209403209224263154523879135365540480834954075585436712464661274578753932907890605644387487187438755284759111504282520182364156553234915459487973005168896379626991689026020058778098145174183194570357854831066096987667592032385888700916126085722121860981203425332348722365400737882151473529689328757290541744156575649010687727262362770123771224742732103757075096472162085139604765935667115291911060747873868555912170392427243538587852223594870017217692902399870781533154879779426622501126449118109295266128985644015299487978481372812270052064095916617877334783329615771139056215460976753542618755424812080625539809424911045381970340565280637294588086636742152682527796986231792607553084759299985599098865889671681755635356572196616636949898144563895557633930299123400443219052846021230852364632365183007773636710721396661762556347638579175391988303477277895298905416419390050394092419251251798887124747485814111692935905636231386232658791568159447181732555784920116928647216068186084717273796310493129719227068945346576445844095532133130080512836638045422405835600865932432718070510419663217026519816038108062036825893148975250835762763637614518334678091604018208656731219203976248177893740507543668717563016656277489037527543695680935694738228992374807309006052294690898013798330631344237050177829743074532467985066043740316373405042871674769709384354299004872373606041704804967166305516545289370176771593715787262431594810274713917011082353453927556015504079695241984863996289856743328422431665120502150674610666369722737105105016529761236100487850880656046363070024430898720043542165571921967413039091568651720022178510758236265617955117366047896302007110977378299955367110404367471315864710306421479695144014210723754940667570468784573199616427066177808007665037256040138416408184392922547117232801323278419981067813473371587047326761667326850265870680042310266712277216186032700598453475894557792861135544855718957739853089765380595214248203062965388935884474903924472573630182610563686315473472546777856012963431328425086170242720802963569850758766823312627478063530032395434120720556491706593726285625156326149971751791612323065579993843439346941344580065646861244758080124161439492459456748204317954249295491120866768392728869757157215579755267869131984308858916372732197622416957666737888568747977025460893541233161888110071921359169534066186006169236783621570656706159047813450921920382783148200551150223426326629139074563645114674237248717114990009101593868415951413899030499076874121451256865583970086404142403515512745232434614449895958041572392318229945229378763439099725213982396633806355620262136933211258756570084348563864198682549420745169047653239080337280105838786463744857046378841248429992875221028024548977159618484933535846444861524051360539770857105419219227270644404647479245865030563358423686216284965688454262672054570058532163304353882649915811171937549060974350371423431363162590916666763232804045020158433894922381166071615234656038808550925576064496383621556301992709433186415561648971151751004426844105922762349054505628151629323627319331067997841435448175077696249659277884529998542471212699550042702171850849531578052114701317562938586286996793536033232329392988372167940468400345579026060202194127882050862589567292341115839826334253071505821040320047006689156508222295654409442935495582127327636745026844818139998891972603420881784087190690252445481990669236155362578056719512493140127526776787882557751280584037435342464046384608540665720086160359268081005111120149602987519488714562564504126926195722135038256554548726160156677009582995972458610494422328544423370183410752005095553056383260889707251436595868322665790823089070627651959778893375797303475438326763647472979711065163766270047137414608668898368642689624066122591544182498332040350871448801226163609084811235817743781665054406361380732067713603832905518937902420362407123633863712149513477589156052965484901984690582151556004363941903666550660653340282148303045161843350103410261726080974808998802455037312242540035762917267625083496063403562154023924079437276649945710617490372455989214327979540220939391350733842882271937500826540971049825397772370124168308001421819749419387625538123765117352131015512245578049336830242183493053346642716154687075941719516115263075884899802733765673909939654209500730407160649246541994687445181419751506708941558807119792889826738260057582744772796787777948815014154245081607974594208849229560738590394446024071067122378790809400193902646473870909038405602660597747366422023907020763773606334891129641959387488552144415036737880260257573849181895543737706345347810435024262420090917925490948871688166159885556885866939324079437502053037524642140942240443906046164550104384747628982309178563393451496243505518079652101994011293298040594267266262135628731781251340499384857095999234285677375176208419209176772591141011577707786202904791235947098016961745499443931453949303351738089981172919997646604044124940097841948566513389979983565332122419923931338414143734965987005994425348570720884207746367268682335870512902207307100290158963518744868185553818508260297184102501252783680252070799953512412828329444395740005639528653218591097285383925742409424424285120023888331070480393753923540568354938514039688456187209158951971918790367117672329130760936141344540009854818933167937356717569774091259275748662253637923632384758981665258256855062987035995790423249258844309670308787543472066356586419858458272320186516581961525996690865286335484347086126280181488419533263007888566369888220674184645644233362853348624703051068170230705556111458032264152537049832208603943292782665039153143546631561694021862729855943035549537301667650683319633712636822031698591751999257099626614451891417739968282771248552468929260537475706132179298557444710436657821856996834037570145524859230816284451443894452602994796064754345628519555759239086765413708160628672230601662878863509738623403240279685088868456293789436504067615270561916077433992473231105043616343758284998712466216783632483181280133216377517986397943470812052241211592663262882020002958393943391177904355742945201302715728160725995590900559285643326858653079761489126782549674470031517049848765372694544762615646806459053999187041057533980307295195519200860338311134074081469415144025178971868685757261906371200145653694490724779701713978077862364955369266869278874769634106778728744802091180603522366017697003893483587181598146877438101774626734144729187472728816677343805107347258675569471655600164683493428750066976426250506847749603868043420308581821021548126914954438454796339178451153511999475074702536507756625509764984583077180472131899916818035903081925657805796759377308846723357323648809437033203119780435367876581767599815820230373117116675710216906771262495741139201387017031666819806729884999007850707150668837451233229650765155865573233215905674532171067527475208041048580207866624111026083483284734633365949935347511996871133837212011043201004937860895539728594580564855597100525106680969558026323434386380049389682676732789924674943043994028488823978163639899393459375138242101632166239037484316269696303215045141488927395294556140671964306356368109793477985560411457967551291299986737712885367588152964709771084836600641574770003760366576045011437807134623663957083119343080584023415786371299884519578555295362258581635710071979429466037789269180859112044189385388215855649072953136529241385199161474769861505834544105612982561482878212035323616441548403593481254707126436899243350993755787250609514962321475529630452413115506616507777642383244553921047753443613030875102943373043319007558976934088345166042985829612594773733289518549718251161842542037623330165787442816897194414542613845871867307354987421446279293649927118806928354796261376302791692351407101671533060086403453132083055908185960785904579535409344291878278180750678559390341453653001577304967292117455138684306316064017955565716254724204235470570052315664052510775585553092512225922572731581127992425488637569256498507411039988625598411873208262903595822688724605901953108890919063621463629244026589751614595547993482578030431435843573655526132623134621390478576267096612705780239496099142661960893592069733018552463181055571797805299295813231061252197255360213661788088762346617109943848464069836401949233814437442987725645874968104372454270500167471658304230095049778633070346642979955560467871214166524757372672235962298882840427237223349577544852837860097496201596423615075184794526752056030675695464749184006972869406984036484230498182724119009774314234255491050999528219146760461791753993104315457381794722631585985061706325084715207081059217645278044552438368583653535098653136826051207135748256317557620755172890304357028519961765472194595461495489427193370317996345140283425116358333174030209349718907499810076800168363493929761011868441389995058205146064746291936024169708554856615403753758055341687965704576517143606827293291344208116218276142547365599256265024814335292087599331717409438140520486180735780316170250128376337019588273934139661326655909352195805488557967204947114750192615975633752980659257033558413361974520360669359108520228289670192519741802651248392920362485316750355111288396183937558990493981106298255648732304268597783591821465772787125912817614193982489972598202774013572712846552228725966758262878778173584950873517567054221169526628301977585233597004993049703926461152053456452668436538355547670933549488635600204448812056971991384623525872371750034822331432915144804637206835055679384820788901675609707110752831830717863650782728038391650541233885697257664357300988150033165840119928592418880799313367988244635990444674345615286375142477565433818443999344237625219978348860367766346162485650724044665195431024756719519225083597655259234386875374615679438353033529103424821516746454608780972420775035200727583974660264959629774587222536401184749774787423454819911936645708400865390775584014884407865961800686850896692123813153986060319788066622965924825541436926906063644007034371937884496767872267225135564751805373115141398210869735561575369117232783908816045198576671105826272049285921499899889254801227201541145752063642411500492083580796745183083183538876057821099557594221509667613450456969623687424063628157343165958285276382337137343982565511350425433387707595450520482417224266602600837685749131860631383338560619468961994416338081877447577268378284661397667441099557551988454820254202564605593545527501596041069065570345813081807218941997321928057337523620418520306801641777748068662101878344382019281663792771534541322840866927631045694890530419421547889088363210207943550935118154949400146097401953680960698847162881602857461619040001889576215415919697734178782605174558110160100735143654759023019827113629788739900204375717084863325552814011751302981286740276718972564602499356382699853907758555990793543583088960478103795840825912563707276717447275801359128497440350060872045586517092476032156968185481120837813421597142215400933008706364030850198422648501332043316455747183032293426952767577466706568736711698308185885030774269978074136638123888539966856806018803789416740887013777532135042787966840795063379674932897467704051179026253905971123915227637150301930285715807956084388161082813235298385507672198149666951315906637052540710558384896327422248311808149648910667208559641376825243919774685585983501412313064480013467976301362789230981251581835504153981200702046318419957460933792548523445002810383478810163450384069195200710398456097295287867044728057432861221706835993509825567709664598940879197711722048919987819324029360627803758895365415871432216801128704074887951975727769868407371294803137434788578930031660693296823753923781211098109261836099683300863047258348530591764783229579475388749257551524593797312527910619572205521676580049946583241441185569916925875228634604217885344659978756565125757293008347491871972450318775699901566086161031412863021686872206664498079209136621846730007146025107907144748345701349524692028425772075516739907354564109140603847877259538105344147643684286401857067120929035626570152737677007481285667208793796435717001784966836823753452249978526059285810843570592344813732145248919878086798865714124734029243863778348744495080297646606912694037417091037256471141336155051505547192489664855284086819363095072573957196821589219505222716808398461406838522526019879747027620210287835740945274585816669552071769998414474306825626348759294778998840121196076476762366990951796916896916594512741537244607719251239990402308252327959715324198773011713553701007912109768157806318512964524085442991924283443702503369687870880044050644659405257798651267659099814827439859535085457019311237702776354638648712952403181892743470775580311533241902342153884753704603256431669762203311693225102933189478545901532153837894347364358409150413448356471188519806183580773977317401174610911318909909776315253355894602480048292407690264827692034310286859223353830865692868143357689410317790246440260941443766566501017159052113994246145594126428983139740426540591803393807402055355102900321985800468156857826981519818361281502354747490841288377981709488018751270385433514791078417871408160165906415855352044953973379997902728508228247284459126305316353042399706373270552250693441083703754655250725542595125526596786213707736975713748375164415922834402419864376929674943934203140083639339976381237686235813166975695935044923487780300195145143295028501668648403034397334967702828554807446802697343989416466766168778280369048868480749448400297178178181370209287689605311226795294927346217457368876080538244413801303723115546432843868950310664463464936529642235901513187894155454167347638072145009063468040145786180007755467693059530676837741748803605304660911489501234386326471124256113554201734355270406001271215770363224104120033015877434653742104087512811321704393587029227285735959624865258385099899808572995697862942397810388047673445895888343631531091346175285236298343896741335970428989704004395447345356950561898621872905525951536469300097341220822287012149469973221224358490726031906506078920738594890247338519626755269347448639952694192325448267371904448801648153148152802203667403295021183914004454526900322800710931837486185223321103714357951512282746758781926534692107004510257608263176099403963593720083974616580527111720010398871093409251666443596575479057089130500091968765330445618031468039818414140635280443474141001763770033373236567294455254601451764363198473318240062100629401604636972195545540573579209870374471843555280731415406034208817117955582154714379071103941104786307299841342336388073341622112992420889362655509143595268901859239454316645555052618973515794039838970008708620321313927524776982393144004106645203038658473223293020440782022846917819490258386312529459309400514008124283185694552598077947557354531665876133739216129056219449998516151277676891443182543425697371777149026216455489310724587009657109736541135772552091466055690756817044989934352395419869647264598752308551341449961865553660611006757060018693196517220349800572621010592901713223089986514942658789882207025336150171933714865277620029467856313767981850421920114316536786935782073158683790222876683922600667968143456042235000779157004999691298294572054253633369135563071841650328177611341417392303427442341978600471371318392894455002101250642057969060483982438749577634360232229625897305272831789600247321191788932845794039343536018827830464000267291438454584357529624610959985038925131030145986367008249255840545324534369010025344901204217958994676051712729787600488600987339707581112783238436693866735657087915218504843808008978011702034648357762928059010737864330421162158770553737869031920934965308735592050971991122569229642900237326332015587777792027469856233705183009071648935161082820170368131482428549433514712377841255301447596520905190537291792638757553311525419582397980882476718322408628770127735905492964529806192455774510252626885455711386427707624588828135863781244807356378384084692946776406112871236269102637894009701540182988950948906499537933989352509745481481452760779396910571509929040072063098154001711497778530888016209176829307601427762543242462529937103872401101859819056978937818397846160414044479256579752701321603663906835497276225757228781538405014525366019718840341511270328485506506182895993128105568586366130229858236796415624250036353105165304483565553170267474904156913452823378083714428258179895372645918487922425754915269937414510388889997222981504477662114787824541779771523430878472851969228628745590557701588462837456605205928848627304639587745778448599088465483717311306449286132457762991549386006912093893384032375857506870157468455918558639801882678736271754390008509037337543675312098477298447994217912160263720261482738459927997555562934617740418513402898950788434565261687726900811666044361721728801191498456876357744781583898909353402168802713655145379800625481755719114767577892870010821634069619767057277150324845762028208341862094012682466774735608372710216132859157909976562786362364429971421725514076594997427111268585805236948911646941960865913970568085762678463151687204353657103106802507221311105550032915611312445293117426743888517627454092452653409939381619759988239694472774054258824112638155950134205446235954188878516339996231121692136497892510046307407032824980095869686532905495026593462267772713812655902064766794416534445645232664307453070438543955010010219196993951504689440804299595253079909712485164241721986964676207631681819987293332138691686768220671115235406721068360129801992900437435972632035799830206340761178479501859564836573051486619657052740763951069357403405947065182057433874566266211443050834337855199315555988634140556426130214578951018345385400850592410652861994798337205867707057614268771546812950368512627589379559808763337269265419718281245388803187700995018755760394758291835433287571410410199772462454106840872862921282814598139904271259896208397384539688600852030739102644117885717043458230615344710260718895484202326307375950990854872778150819439130146368166380974565250570386937929275499686786322923463169486039403398438175887617622697559481386185164382431720101815440405829078929099320321224875259687542821548699549595528682511560084203497383837826587761362538914376780216496445676602200345479348944501587437992919525855056234885804893296059687134373864561267676834635287012495781658404698036420321584408272143291606972280812754975289139007435690957226715933954005427737753883626765389183369199157293701667658210258838430553628321049187294492603324275146967729246394175018905297837487820367684816576537635008853290735173940121040289582254417732548901700014333855262648782350229894655365517271146832413179405199377128159986915321916511641352241250153830903142323230524687111195393189907549324296124604274153997807783756391331223069627047771466751459249692523266173131251826762613079972859064606895997490254299256596527835783999003844934301913972745031340680521159853685780871021789648249392996436539106084710429713304388884369434238589114843763344008819528907329334376475597789374854673087986391147170951437498453405024719014055178217777361831913936816987021206033226720026784414842699849223738561276852913582437065456644786725595978583760450109606630993036006297189987662418534793192072134994901956383838402699838761440413104180426961311064070285727799346550907345445714146993676596571090208613538502310566381408321330039600386951725624764346963369039270967377933537442632270136281837944685673931339354510886918631150520274297904166954446680170007583860111597333215350475070311498977600314562224220653814550235996716074360006460388963779479831942974375292333026668407038137933466596396779133709238557180725350205011596416570162931345823702503323915605899818267894682854336224309683335385771809807723440050705269660475636893546967485295105995725618905990011624948425188176844012871007413372748243016513959414428475883543606550414018982624077315086411241601272517829831309796194718102361010604562348986298222849515090742514392388847704148331787219671217429742111806911334915728917357713372384564767308888318547065896591050341256740133994039670149858809818214735017257440095425604564518319725347227725798402111889322533237786088656225950433762753236385163176166368274162167864197884195666299356368627469159859908572999452695307760879041923489585880707689048339883597880229739908371909347922431182541911287906468499789326250423346371242740882622286253630764371909602441226736689497179309185517897881656605283612368574157600308318328464795448634482540418844775825109851636350468694898264117523703436156917600459553051570447128703187523852820681380645621266388718909524443850055603153067968814117504502079560823798958225642477876430645225406723470174162779729836952083661780994110636675867531487702690023705115789333048619530928544036963040632860556698705618034187716543132519112271678781680172213655361708006020959970803798602379062094610395592352056760985389466866619608365957426416501645774208382977643828671398966719493108570715635068142447714122631924552902782282924273476256808270674829270306741704223975357349311717723417618158033160544712740781316059217293242620751152845927793439019216544681033872371464314492635217849825260834693839691467945070884805790231069078544297874747695697574471891292211781951908223391692982439239296295894148306120874966708137372579488119048820580377672701955429458675172199758905037222794432005552668857338763324919457779923113416338508515947038086788591998619537722658734059252896107828529684026826279314575381130104490006641672541923518381792681253167939120192206876515353493943207254708191027801956911928364477698877222718674684274392226696448863727920036149695995313932282375763493187144108342516634784817504421333683006138681757269903250211888352836856462281977298967962510019824073566693248732610162023820688882663750772596605347618048214198056244088116087232875118816647027970973333701581022474420057425847852564774092463501302800662423232003858246820879315635505626208428994278832271937648063748213268171842726669203490311699918883538445572177968356632789697071291310323700960323758264555492009954390883752353097416739084865197845998479940791900689924856162327059298106594322883827416735703910926544802013816243904202964055529754993164668229557089582074129180089373103863170867610404526707575787593109651930976130431305194233936288573927799020983436238365446197647075181487641242805539435716264622868376539621508136662693900091614425512415651450466000759293033769467906964525185393176141148745897198450648351749406525043809467161146978928722773802116245475571326030418363332613850482196128940129166964159484904746535461286015218124777666080994693307935848844531431364091156009043899527988648574289476652497793973368041594797063688675449535661593442514570130624772241406498301999115733489801089821084253709364372369383304962197034129226170747631765495791506877917515130386557599695709228426170077216754992722035749315511901990001037344281091929342580552137554342706595584987744833557663451388121771589043140805623701495728247518012404564348310275118269717408848863526826106346560859937479532398788174800451168816519759721350514661032051831630038026938596053759820242190749054780033819132565269044173346935490767220530572275231599379958387220815463219327772579306516596030349821767454441805695591619660987421132237425939477727440932824608256938170225571450818236267007515428977803832655116083599941865959282587467763797005668126488462141334652233732236806800127200651923760242660608261910965057875433913981574461369215893395271412794115085442940050592620194143523473832869488697625537174401536695959293645485311616761812414279085055407097735226308625205275914106060483544282408197146882637835883206265173547026418715521558990276838055081855073935026634510822775007351996765376942127998885514601712471198311997281470659122438885939561494632779892443688516743998180193183216742841476152644814746413379137492270561585846110697254288570614496466863805490358143078897628282999101610428119500011282739283935840579776766694847119650449511568013237165311227154122203228254102884660402737760441495452660817332774662850768532565817655630217743024819028671009415384844981539616990134087367767462545041977266450312854125728206423443321425569456125977647391441932702955089970457039421786168082863684368004798203478561243321952581796020217242589116223459193460127359142401680885645438103851568477324700704182013580080065272171014499739791629750944425431280807007780743890354559027165008225263928475086613862530229424797895021120451044477462679229175439065359128897124831135417457229407351368780194458023168277617181551605816112865735249155526563066365061176076409062360611845543103989826519188288071943139073951317872770728110222183917080833900323968295692983502114014994743855230642237345122998895520532892708700132435956572039999682026647933486586249279699849206656755726612393599847906800478059287552637402305082478204414831504655286149932652096238967426355287170105398052921760283374207992581222928087775629286379615544465660534635530346570608798723276356680253981667144603419697088074226772747579754450785545455484925114335224863941508311386558941968885086872165862045178941683795177565024071108617891522618941998941169800173407210159043939381534928787866515429203485078278599142070809663933650441085578774742596089837389439432408250106535265931156035766817125743439754972505872117060873600011914741240639018036371335855041343824221690948707604046077957446990675979830845686886991593150835619029077617980067888651926056102745048063873695749296503376816685688900095007524478843416852137137446898593931888435968865432343967162594929674881443115224742418688584077853428718611113268719247556181841608915776197051675543025312676970184782535562105632945270756151192224938457618052756206443302173065402925486040161871193419009072763997292768721363276496904635153917258185430897960626332018917596196668745930556163679898608816387815857707883717205631536370119364730820571457782662303239499848885280353557084641464447926792522097246213165257080626331349767899206548323674367394605413422156405185465976860688801329484213467270937243691172682073313187790765365249691270989377353168701996751430549438904019213230914144633285995488013249825486901637291655365903497329755579875805847057199415353749216101144355175184664756932562113847996751664147847488868601227110309942452831477062881887686622870392569303794327748895857034353032990436981264704530434854240408861411592086176754135110346129445764670056692357179227041095908856996682428371388585463401507417315247046642820276457104617027029634296395124565052520473773268277651302406184226538309887035219341509473325407308433615286965526440096584180096679101857536089523646504795484036223242571454762013866400285598915113432405208566918284356753066980159988942267538899065796809316332662731453670138038181866615274898793638988373206388480972691711725560743055500009499395031191832951019551980181321198738676499568035114989670226917083001070097297797222871789125257410385931139408988619969949934324170495442494912934772174801207433555434889972935828957244037406802651708569682617349837186414830688621579124552509678118389890406515514328289691825536003984777689882676521699329278154472029745012530808410282716085711982792753864690922434479222136666053632514848387485988284296054153803926843908070256792097424235309649129538495486789322015122518014837263181380395489452706991882822767287240480867520772695350693805706745648598077954873380759733687172024850385223053436684061613157753522125561916672725946487846279947493880398055647075845100960270752813226980824017037784125334179202977794743365010111572660594186055210530941541740971889274085319285142935076509086339338141673044141073228456218065774232134382904067875940092684172062410049906350733707819392762880882863497370202193140315671943873190414546592567940422074180319903410384003548662013841352660820532119811284478856848578323521391798343663963786819599291721557984859446466320606494724739928792745397980469874593112414467922098919879270031175758507279497901685408458048753588845188722175077576416358663383220383351466776340777302467719249695780578642676709496538949533041475612329508671881498688564540635124176072514188815424115061450552594490077944403851294199098772121024301275407799053374749779204278877555347217999515185518180946929159380030526898804485207373352264237845052339561642432161953624864510673471453667445432963948343782678754804455158315239392928633724804520853079003020539215178658345277793976995490931263412427173629675006418117971820541358694331789748772665969651034578623783880694240477497221956568510237055658372578340713322840026099234515853002395156659247123675161601150999716655225351715807877249733604634350370194484148019852955618488669724601581416403758884646677320018622030395654041344883990668944517885523491509748952743119804386574976645920949598385238282767986554954985114115373512123651499449679929203681984917075533064955769693418841784214728090628875657161214730251715705286317558046582382345416365085898376163924003454451612106802523636771464331979800049913631406357695029603091870819225279831695781415104236312119991959013003270929668937849585814011069950481242413275896687137173597724289552744924309888568692397720376477440640218671919030031574234182441014902388346072923738093232942703308151746457674414075842070693085102333754805894757421526718465708802889455035715186759229031983362700470348648960483698244187145899219318778127629596597805126092335780812750349636311033666788856617544107582847000519563093931509506636766758722690410566640885794421800335401508509901862051053177543819321779897239824698779692051542174020523755135267161966560123388505183099375105992030093274763357476357869769640465882773766447827934484269656790870907215723747921461342425043887492911718410574209810221469358376231407565070083961944076880498842230919078897561059528293603814267022207106748599258844171893393883617730247758251459750460096039227351489012190197750149016133637110803391370413689940523539967292566414805315540489336856134690740754442418928316815645186379607473296950454799191572429112715101349355058839158023300908810340895877440078539954608557052928092943356158534498412775509488613131503289367100855543994146305655815661476456377181777871256940722801985873828475736139790031111994196435682613375734281483200732108538496325549869222073459315328684281891263052495359538863803060310265673295447746109440372368751592606721076964680610708282894319964238188828221079576161361095086712043068293254187911347923852795756415901614459913774628462939802614329265244725847644771373024178546619808398101770233948709936270219243883766736962641602904290812049345391727891153242435829077338501241818049111134490535935122204704192388977484941729394034519404682616711787971279509230294334185719635540278075877699915662365304169397169106256791509448305806218139762212779726990611635788457298614242135333910857285867431929538008534522981813232685351639924008260667526401912215540065597100546978833129165666761780822172666892861266314368312348980883472840417453999776714622399988274665227699671569100958679142709612640594676037406350902894327609671577136132430259889062546502253695373513537451287900080885570252098945524407433959777059066526453241410313357095031383097789165920424904918141229681623473391525452247657325589085823390990995145339737321981489583370814261153455717051232523326799230838579378680273234610182066652317194578702806676840994019548814192599493046171664965426629359635252389925487805834809251545164510021520126568569858141834466325869448491193132322369817740705332101818432665678606937467218523530150592724974535029708930480195685556315966310647573550065072545558702878524301721005631985088955382534320844922478963019392448010504294836352972350538584887870116081884765511898843320682771431859135401731260129191561008277256608499280175109186914638776719924558336594314094971075475865353589578910013517879071855048683528226277551164250475819922601080731065651502708725974134618134967944466080982660599561802542353873094872015289924211760920582973115381663884018312034502363356842075742150437228119832063617795678695851857588748753893916028273369338081731572230089267926941890885407501249399533931390403999180159291559239318253865181410093188835399221727934442237417517465327939881257073827046596906479296239482522153218481439738230616773724854729110159867222576770050104529730814424055821239649682172326874705868718146073502963088049763793427554090624186369810946402712034536105970732113862556392817117580290433314303529817347719118924042990048498529926467273505225869527919142730027914799641149464722014158498596488468544321662219623004194647789852149370635103375418219729188684511756736486309425878109754678320264587402144956276206744120317260523209001557596681081347302689507823186139220445662589013915712207705756121306098305391571580909289200071776312093275640564925049699955056153285834374369832644857363985251991598829048554109905010980756834877770738577400539060845095384802444476704606428019918657679972581788026944963805153544709579031169589628899369422961987734988105657931963712043598689255181525258965708178256576630998441929222795943986960121348318219467084328580269695394755171170341507793100327542072322495129379254002859301281772016915479985122700054884865608727099525612652317492275179871405594044014700071837514927092858959030193518396925769059851163813518237760618086321320050911149679670373498402463239945667751969764785284347495331280644834070411277641898795300189776734935611462346361261707019765570177413051665766466998511443002778731854179528020305362176110987322330128105346593101890857567868753854491853821460300485082818866939505527399819196593079233244589775418477265265860240540517546464493762502246375579842320680289015189648825672838200314194917275683695540237615165129557128951643527880078356347826248776068487326928377571033961771481987780943467310395735213961831798128948197788817098216572766321353619094520139007648693190568249790974876785477352859747518128028399671507302561292728531950005616952026715815621950791926121314096768359940818031792740038501213658972786054549544112978874278960107161448944843152267437727689931383843851452259874768355085710910861619737450051724552417523843589300500999012142948940265953444601859504540970979965941050693564541551321118620296284788490688346016838024033699974460151426215863687293094854320159175819614117096741766989091039463348189711712890175429975234743611032573258287854697258527542544474817458126724032216821522687167678615896571308035526765991860629563192654909282718732943675971807211641539897455137343354846209825976309251385234640161549679181872668506849930787354641917217026676462668875502194801084853909586770076609544538225313152262610102488687817513339510027912779720473597855741919862357026668284807123351818666619823348123400211198914415544432564381985087907317927992556228095912319312396718891111578063226463031809006162398176856408811700484396433478569305459675908958754107368008839543542157266435730822926154115852541413076676652782316454008452209569504338596528264113326584062818628442760645543068707006178974330966199502622333548372481553677133983785751106520685769279168400594513620953667892830063928279624353593265632072814931048170735274859397207415995291664919576732212979007089734849722133967043168015529819177352694111946906381860563308045490679572350053342364167756365196854647107146247198272578118493767666490194248111818132414355190048188662212418048354277135577674604558920633163642186992836021556930083366025970992314705071063378487070665267805403406330525498873185111628053587332395517766143088483316364343055622763505084258260475909661265264098057921099099880702622625003768930817540253078861542548465678864901894484300524809312784739277930757943821110599698533747614146506785548493069846450322986743155246519023785877551274698638962421464505689977207092564930018106511525140386038100121167969719299101899744919272077448364507485816455312557986782039369321722664636389166906058667745962372261592844156573976806532113277817645747537291682850311869054960214158387998308622124518004925522554231420172293320452839404855032054777257585497327854011065314008862396096111399701987986174226623260505812715260585615789570830178908168782200421189533146514426409343475500362482759003534294079051866956596757545863752508403586225723012527983444911214498645938181876262112943524289914650438703847490526332351699586260508561550553946620169878773257114368603782528093071292877302112107813079941177535619587682173676692008858934861648944069509568773001376031978007114598345672952400190261737923964086390610880485279621332666188988989001043540266179827022051231013002200060101485613245547857942338689918187480760415725936998580072004652496186005353147752600272445912399380999278311126872333929526184537719754994430137878774145217980685856600049480234121371129598051715215868334338630529164390465469946132999816333050282383358583785800073206446078257108326909355137960740616022518350135400866047279023909197663367513483216151086881986018788504004542269792834725159143535417062749199617697949379257537812110898369423846446314061302974359883449857925108720971622406814688544613231451606539791537647095928887112585942019171361623189963424393556736124679641476742921500971622430779839362118083082921553348969840983387685491725778901186306140977832451767140958595415866848760393318677998808200712144350898259505793558669070305747302513402776181396622524096355418575106423179530284420270797330836792214993271419265888863489601001569262416657717088035931898388353490447712118524015170410219903632830506234820378799019780189862251060184732243102958847926348599549929613713294499680562769158170147423252075459373164583663297007471511974214654646223697944385593923447661877191477934910855564644107899207927247075370165832014476623259900591595955848147628419830798170392699873981084444362720792163419390661736420153117290811171546158453414507851657250261663406971854182966811265669301091333651185095292973540849208170992952659416208385610067851282084526021409449091402498237981986969148760999786975582525913158689274237293631884036921510384507688966179705353793247193311419635636914166708855069456162139995301978496984331961183758481051382569535890203045258863555549593279256791365879531810288511390756770100125930712347599960065603826242459763552547255377607345333221830677909074419776132955681341092385185916366553627129516636929380705501428296547983670309550429272876790897474016982127125820104114183841363618244670773318258819273784258252055479775443993074990682934842362004207344699879306094368088576838366489277860747930716270084930474397044499268747139211356025641419667776574012281022775047757313992604865234320223692821763893207206174723574569521647127033141541162649310653024445191551119957669735986570798954602406642990896117652107808437703201757475641128260505910158855791416274280576139393764206795876097304204112158516090830289164128273053090909826248528680591739848319890500969137688703127293076442972951703865949970799464142762442178548103654223582452841925497930137496754090441648850505118235693179438424138041535221896974227941726849760797457086475603898260720552652671126385612464725441238289661015206366388320701515732032018573058991430007691487280920823289479467149537370680113641456273084800743498090448563356133332624888735353374492077525906953208320529132698684060872325620439644223546926453740501738245738931096691351660325691437792873461658162808980300117869558915179436923432509200040105062475106605770615136512115539909636148500402666924814535821580992086999052804292986239454177951568498823776474619809048787998839239409738842931727465154577433204631453733594762758808758557434276574961985925934261718447413686704685860331803127740337086244066054588575949820133313007474656468309007291706992242400219921284151001087137988090475282226063175316441230401701434023832739103966562004115040840432463979772432129965641061837247269653708799179560528588715134795322169639635502548822067839568443364836354110844785863763387083772580703983595696116576970119328230003953158468980935571957074930342981078107998159565226612566313771902512830692847555667765864140048710092941749956896329067955989841375751956559375436720059220552827243903668002314907427788683824063791723835920938470909603078417844258513086594703825726491998460437131652683765196573934492841699279860985226632522658184828999223718375853948104607764951970994972143685295071253442003314170279003109277268426066147315676270129785168622145805649293081841394853955492819593120699555534623293969042574022978315445749507271713882744915442792949746902837846659516747410043056226654035368619402772447780856700268406248333978578632035932542490722279161561245473325030209577706937594663078789233601151038341857329351988539973962836379026895944097533150545386622989202304513731239614877748927957762522995298572369381530428895844571519967375928436434677757899199213774858769104208762093278213458320543606823195484947900122155233511886247730348086904601400463314532232650787341109421684382604677818972318350108846868873710940144900819878496210241180467401250535160391363615160321706478124145140187386796966416057580626836636426778790590877838513692723259205675076252027439858947217759169791293758854123312523917509628873762390609873148120312197265524702526992746248035773156996398385448142464336799000815139422362460336019851781264677857926733894773740393241941380507563990013794487019986472214477976730184733982159977137650539819394284604974094888364484568494184993878130507971883229634392228190379437689371613882562046712157069450093159254651032681740151470358509991784649186210387838767939898916996164815159129309302242080416123039499930695680973956095978457484178789407956061857385633392288965602014133421327442470495140211640662742056540550408360447607664161746106300112065287795778520884153167448174934152977318997592702430558943354425512154953066329773223232788777894479797127612935987283903906456392914390637257532648686306362832782411390728762797634756198920922223191109804389843999490714437325311660517832125182951621784092302973773409460970074206227699504510214351307769409446872613221140127155322541934048152999464760574936095807065284016106971709582743685573711740093835483381042938322672035322917631731704262432319595181469072650043496581605048819505809375040757890742354784647683286293372446023879651296592577869556242375260366958628237011967382326115081989547596839854546672951332547438574214111535949876623935034427498191383715703291534078182492764668319508452735078726669270850360252535609055616860745604483465364394347107101262077501185597515906453930657274093568849477363364060657795125870261525371075268843943537485014918091399034167935341854756997819956187148511491153925237211281682305112655971554401333850376396677336717064745620888549620693388366411600935357675978294708520623342802969216013650869101429626583286481887132268271646482302925196310924753453461422065948499836378446562855443159508710229509379113155206087808715632374632996050754362028594426878593151587515773646239191524567392058770904923862920110882457694104664077114412071479866645874967130980884825649696204384933136390166848004743067060106141224906568718692180692002781713093774321895120901652949004061739889583392011477366338883684709932477634196719799058302031551505341445960510182754068676522744906357768318857972617981861339799830326108048428982571015250351869264061242033313863461005506532324745723708789651620926155843390365283741271653099266780857032023458614360982027672417089627772043917175838239956242041101718415814337750031620407143135025260279107060928063234677627316449758773720918790434010764156564538056336221064282852491270940030850906805341622689236358366352892442906143201399093834904148365495752398819073685880895319849543717205354910223516505487429187747068744022775134499180193467112859370805483180321576214735243656654217309995126688886898879976489055557484564226667205620751362366060637577339282735717410826038159927706601569149467264578579802394033668593878119598294437680706333213260397390884781231560126053842742918131733235353822244094052519551676742177953687531165572585331818109712759010801400098744094628364340769357745664364758166036962047428887047021948037164953790864854555173504772115944558450365134387388474579410379373539956673588638307110924385570664581033681545909776345170075133969550124935467786751584870869009988374760861604921093122716773185060345631200697714063687078989158304823232813288482020304730003585298761629980921883408905513529667142823900323566511654306701050171891629909488618791805548683653731518519907797132008194963945636261215426900243289273062521740165006321724632284572322678315519863941804515454096150827353121678793308884237519081593765427446608880572724389631254525840904870343947402019068983760602149110941939126143431452693655836807521151473830058670866016483140011550900415780692077235973588590366302056433329844744026494689728672874942382752356651101811576445086609493591470200819863404710368695750825967646239461400647545333127083582562192735626650255970147639129484009355655297439841962040743630647853802945383664654046606302381612786711871966804670914893654951689678323281752956194631141435527027776775138960514573202260384263692977912267471695167291621139876395084393408154643655698538208210266064951458438847856644780564032331117448481105248609689004809627869161863824835615403844231767790842061572650298062026850865343269477100505196792419899907743411494646708682194485456833848882289933031588449168674213516913963648157919045265074917204848068794401108504329315298274719815657674805058098917392973485427448169018506277650113718686195887329435574487786197098194591110045431086133291970417543110824952475847741784246519452532453948462397296792016563480817291692274578480838035170333742478094862057443481566909367955175687976710823784810552741197100694116806670940031603317447334480415106264967026274809256766915622098001712903080582567760653919595764001624064938284602533326957601095344867500152883945543224260541617172757616426691084649662539292184653576735064676763368816757288714019784741635280595577077018933969228040061162839191729767982162040543331296842188236899123091008919618096382901819417253270747320093922796116105869357094051632373001641084655749923626920138352332051319118778048220686460278919451653817828160924836888746569739873915002077571279524536398538639747564053914351294397758754433465356357931763654689302120961341121301691679799329854743515639810172099694017789219496217154352690736984681212125544299648720743668474785313450610389263855618302785170046793660155322764786182007529156601846267711802656458027498347879512653626117425563693502871463821819101219701794203382161577780176451418870269300971638001980595143236813321753752876775775368900548690369945755010443095333861983658333716458501020401600919988087874822006712560880888170707553742106966154578288919564812644977495463864568895292655481553767762109456326415327824576216667129588058739059884952894378557617343321359155970256019338526308373058195368720631283507247749650306672005540006089641783078749779889877409017265813257808485483647958742773885244627897516027307154337900220584482373630902690701937467576794629556969468014705931532357144634242030878987658734616078575860005592643412566919474743039173219035828780898971523401694053523495694974896510574506093167812119646387899888666690037106934100518268815413162768156396205792714771381654288069986661524837912111799336840960800570261418475338984408764486760130671178640612480191719938238492552972959796267148481845593233146690453551388834046740569367199757604124873563849349436540546197812851050788346524457012001625885196477073896499072499992119690921902707346580332627992518038587982720665115974728285307699388506752736469850172376981964940989579568166836062225622679711444254282177656545519164165323094074228935398134442349496948127891040317039448686792182806882631973013814777680805070399676917538935311801259500489173532659875548742997533597087001183865253702732894819828962087632280759501402992413533437287628182645096482437731883921994813402740996475758382347342679401918302760970345845506261358685162647888497538414248490047889681582834421661009121968557198762355673456129192934693886604557128307849316700811797394726668932542756196808511028887144371088733983481483211248307890492327030646647962630558096414765598855622834316054617504103086871757197612145425821443921376625703695498802160934024299716029838093094370255893557311360139877208917125829641616076936206584119443589319259747197841680468133842423562832307739960436403790232412009666967494695557170189759702816021512668905602523716524829691891062009580519522585172670316441023574675745469852339768872285575110721427249985376200497625152463694438024034768688029014212554313801256147384992866139039063699897609445720322251193353835458200943720248354953402066893183475673358113698085152795379594877900080830280271837267370115147100358740352346971713215742232532070841957252744262922967885696938359514914446360342721926139252925563016166147045115563726662169986509603038454875537487604941388957849804096696875968008585152195903391320378592681605384921590398068982686733484106096338727092062486415201596813438739595244606899341953272374608353008983214223711017218208813925811035623425084683261366933738178677148656068571717460211450485590479627311681422139958935237557886020305975526713748131658877437075825890769834195681471572718249052905284863993714298887634995353776263246311286036075903534265912069785836247594142623601448220540061670778109908014671761197243484313848501889061290411847219650376325001983083788043692147237673623388871407063464645940695359975712138178498751312291638271158017686052801777192988348362906373154866110231190003834326990377543668229088891996354965650208363810071381139068518737471017514541105538214037174506274879084189969634354270047073926512866836425956641741297745197696487035076036464009734092442536572462592209644096138349635397843094932325662944271741529007379283829167017522369638307159418875190726925760657223385530847044504613570078462718454632382253451023234621913787670183366692252871248943316361159230856277071888445754747027749615864737782322881725866853897592937976763958330553983511716112020078359084864948648427132794334351500101697530315316235623461424620806995648349176980319232097580233229431828292035139650606556271478658679040754795440034053632788859245307324205226200862557198863745161351263770377487785819884316168679634270824794782594559454023174609620288172646876370393273635158355385523768323913705049465046773239656332865730861593401156358313947318055297299220777739761229060244960675617783719068649984738964577583471405510970262347973733610766882663180336873537671104544035630260533561053459088324435492329700696859076772191574425822509429022597972697246055360716080007842751266139844275221405550829713911115996043298815699038618116533841650362195787791081911365638816146300150243565536295156703745195222796380557512173964972247151133873129859785212063174412898260573402047602247217779879588127716264356333944577857522206018324018364034589628122900858754807953852865444709755714865815868089699256782505127553476211589227882075908100861251614920225490319100284498017941288151680850199724168987859289825395690447970972507685398384823379149286320441221950895168247727858806746471372057909330493678491663003887963296553568993186743375065247838536461241122068540537628402649096143829728828239278440508536999546075390069049840114398763827599782786889919928674435969759544696099749019651205153857386764750614565263958147471056706596367791643605595198754712779098297496767302693577725831630667610297498832939301939705408163738577390148212074873789419964275369717373408576999314290052996000713658595692177960125521482348418997173516255647091375613537491707149134856441632757476080456450441714897247717980080175847039721557166548090958566135273265134621065354921480468091550323669654725369336316698515729781716221742217216021204024120585045989943694930568435588825648921796997772063590496426961454071495410746424794928993999290935121573455972374480474613243203389797628420139856268533226191437155106386491938561174768602242580737089488031020930626344733493755264820607555820265488089126181122728717033557901234750479521405858289728541560657585105661776639508992335265590030206803492431277141394701319688924682462897627347839747562629038960892139288954842102201709837508027127359029685567471844259493912371460712069875508994304731225304725788092785740749451672642643830416762895985628322818431916203929518638528734584574022949458175696594444356300547102497839074639612565060909436829465707792376035127003949036449556520933855620921336068146959807965203731426044282424786775606011216285566378270067422491623013202814681552798629424931499417773044175129604637451500616884773327419684649319340111697382740762808163451617484639096670085372354062539135397618910854795794667760769968296960016428194441631111858343439262647275382791133240509089976075615748092988359684707083491207263806713266879881189328601140152191314467203650550439735628964104143844137556468338220005922738742841063617597157981678329634063454702125254821780173131285801411477612743367304150995563137976406817255022709757930897309051161739014317969585954935456474099536320917317190605888013621110232573671045967309585131177889865613518442018512587146835476974601465060817818525382986965280712957852844616213723979458589683875558050479921996055087491871256710339817017055777349342765710044384188893458404872210608611955102010951694455120363145133842952725819938311299342305892188021918202932686622469192942287967684261094774982526440873966132986363194192634454814590622939388382395856945644683272384185118107047459871085272964888632141608259273017313963082479373758763551159143965383327495781727875024223004344561152950139628108131210305935229695892186221896361756116005928354100375437489962004737028355545609286824041788024313447910041671064747615793289047755563158146602627986277328715622979541489189957647024946434786518380808176616935013617536858000515959492961467049152718052331922482235594573576324014654395942360241853827217774433914621197247755520386809430242122568408950282664589076229748083065400204574572877807623208044116763122036628251032133865700839547634590182373261314165461250583168004289760301053507705199172633488801904844709183609213265875226215723500888573920654237044411909606906355178136367575819827048799988151393079845570560936379572498629842973925353027036405956611501755778474044278807702638333834192334124472215725146915304623985545214379725598654741850794244225547176762903162923937145831328138392093474022564087169341808534233173924940882984107358859026042572815158092890241825220424184389269787033444097056752437868336606541870213130171902108752828640261722844124297343067418290634089796133007255377027400878952141344276124789688235838077758407179501514320143584501456950465785329554484413529686557386236245508518814329522578518368164325180672825686904119959183485226492131819644552638670728677494781995718426311676425284698997600179277770171883656268694596139222835709112659088413667384681545003553020722015078686420020975485056621161970043640779429768749019049645318157093460994687201904307023085284064304952251017799413246507200738739175809915723359473064988545964619075061856855514766121839050999907589935011537533615088561093577871120734972792065081689597610318307105203598088361721157280005229843642382199113798044857805874763657047158538482420941182330925103668717072132893675903533614512935766592389317099206775854327138239105204305192784747004134106129667574631488208314049286213242205447013025338288528605418491762080394752541001149204554460832921163608849099495263811896377319410618199768559201310878262596289296402207667100823618571169852652743422854744395299033716977476483972417982909349493574097647463619557657895120829265725618564531191128148717898199710865936846221089123929863160325548692249409206940400394613877400371987468812487080412762854781443531255843295737812910921306474172017305929917192935947264489344162819522912356990490478331516226154936341387011290024329305395447050245410103359121020713337697543187912950997881030931613237263877319305712650050198267077228747416696014125098081998173974920595256358605376360456947168090366909751209627805981767275264666273859999917826928834014063226513428092597750900164355535229973287649028953973501967534427758623056662217501727194267287575511112135891647426705251819898005891335419337655439653672738831710655276042232251983398676101148949922180715991195455224836449557278251818626459018950191300560522598475629410558524582252074280585564000357279205805572822242406135204748309778640723944114321957919161521048932719784286429814736236995334814100961086218644175765506843486224723626222282951810660354167069980493765703869525359342348825209028153269470517511522665497755518993165333078369458465428487786111432407189001199724907907849299657861004265507858875147784814365251253344517077564278818737988918957870459488000619670354421569343440521893497617612228870956142703191783564768682759534938958467070586955650752558071893495006654028011298737462231473109265927722710917514236802864142874883037198323505543146855898204447798812014958750463582553847603116416960113712257270888528959744433145781823562056597515422360553608190666676252085540159006072051640321796780363068164713717749584055889932272466928442368062874374160181710244731982873013661225571231502836535724282235625794503996652221710858104269107211189148618759466076414054505873139446809552870446694684505441337535473653719623341496552142578877266348839387468077885696733553972227427471787059609053710466279191717378782864191492044593636785590116556000925809767505710389489562718653216218394424781907960815266364104808779009191841316085347608535547890037489077388928121016221216504512594376159069753853663387691694153682658436415032512962209155852085540791759367602659719003382547842480290385320777547815515091045128945640021829901834860500697238934244504689868662745184453506282266326127868029576540238476390875663641552740212970710736595326511466880861804702854884586831201919369494733320908005524794016859589589555337938340533705133608045033500727557629062529880866591831287650271602435956636535324938829112265300191154475113452304223573939832536921310834198269467793900071654650238814763549829916796711660886834993016396569736547330239534510466535984064626580439448269960140147502320087081856055520858171942062103526347800853377840544797303303416901609487870922217006216923397601293352459116602356384247346198977296861526569410347574203826917548677075434660826052530384426069937313608219777839897724204191246115633423241560147504042673306431838873585535571912688670766314752215172406493103456082784102354930915301190459312961844314512311730382203636559485664337951996421214429640195074508355182996684559520597917119335634978205339585761374845955942098972301217827478934958740423209130907256792932606292490099713389781879365717392850565896684961471609362101991589242255393785118438760877743276421038899155847604764212325162879205542598392797971129244241073640478242041064235267004145691882964948945054642692465945647627135061628028359342214009165454256664800821330657364247022389213518520473362558131078496120109622089172636175187278638890261858496118912907342668413752796679455441626842717933454485381054283354765496214201612828793329836174343096648360377050740442673794989840488652197482955441388721157943528958618693601909554433401141950250266564459718403680127783678695786701228432039271390288709327621672072943576207655557093659261716596976925525224719026839244439935060356605081648461653779516687159366117414866169579702574812943401532271902246885068017481428167942796507268946110969541805370601076394467584126975241084741592447335475022493694087768541687218688134487124091375765160369052069934190648967785850006127477471600721192225428590981605670706793766962751684031832977648970580356687278045999562953024726756093305752514857531431526057109293617367716205153873695590292737404443530931474004211411535283398552952997729089763547285517300392989407317272038070779346429783382162272192409409816145254627740417298802321688329840103953805845036732893800686133472662182710354033498272589985577818664785446501082161262934336192617782915877883404277831783887753454155740852841182200290922412888880946761319000673160515449746215056712548738561239483922509035009125157176099782652719683925670795265941362012360638902776305320246898508037250779915555163030611051935050239780501987594953022275291111856570073516100842666842502435021006425879961544272962958549197963843579725735760819623257414204205548185275490011940104799868271052585109777144795710810084523451861088776597825549603876319523212547961874912556894229581761719893319256021804213838095931902663679061755132236686381432168204503154904784914441838671401209681699539515506432354316381912993665991201520239252918524716725017564288318347803354220503584691442117512623160169936973718154646817106238684634018755028219236414283698475749145765593927012836284633815648445316792001030333860876038846634769453036602518679150025807878465845837534179859674813057646560494375254079531521222279651220881788844971477301228791292779318434608165769266738219947628832086261194211203605003195072083186153064886999957338707207488558934190783280457706750250259330654332777213252667458695584397680386135975167140257062536211529824913068262725987702724879035403288883382332305981696368512651692213451318074073010478128638082777681812196501946958512333099213998066002538796014865705879322108372569662480743493979179629127342991341980186402862758452493494227130597235970186880199381457219380661844634451871239942470795126950784755695900738628042088220121637009694961954711203237201563715052025848927218619173207795168098047699417557990644528039994051588683036179802516310217467574391794470990675045648317582408762371187041743137020162083241791409505364670125782450859378341792872186318686243029598439731389940119033202133612507792654016627771184354225357899805680529759761355212982229234799312271344064548854718336454457743458452990199489293594224951329561070885834808141018792297427559644425134006175655555087867782404034879658519280481716206416119830552623936024144148376040843235057783514438958905152989764863260285007940556581450360142629155075532793818540527834709108396859740884618766643133898967086818839748017119754860221157396151147810177015138994979278169516319982023981235215990403808070377865002601630098275589967444884976298015524927737935747061552048243748443081233848928163000697979819693111446532272618986599624704376123154982223226096465253215604073198089810916433925829241724464734845295589361270488464334108790654046741833805733130871504952754224366782589752183848002890592862628847033844976700021979866984252400329904160756700769784663453189496264843910545662742519358209065069958849941916207291051849364644227733702757572435563441146546103225037435715655551743664774626248009571033545988400596601313219695739063866423654360754211409407750301167971377328346869402800084481192267753135303682204638710198010284007536495563203942089765514064849610438052015162931418316411488845937494947407782345166738516495743213040040529021697674899086723409431516371050747260017987603037028413748656921041661787760429638557214093841380718694846667345126214980471807894082003799241844180487847329581386006166673722103981225008973423025785498419902854680420726810425551083764325977872793440160925268820613249030451600926799670973764138834326969598020491248056925450792349733565411985709465153938926007577020785249177687061403036902698601344114390919054276517302428258422386391687162950939362370636426164751633040158138973248803543283132873593167372557251070087098059514840562503356228491455925111584909942198721387077309250517694415724887811997462272876597357818768026295764876669513305918585739379011831477057159529976300891751690469141620776341501517935338837698264893405353799569164254668986266114479988589426023055520494518287822489253071692369825974006570060748490823209537759945679035448512967453946020422316926086259848104710895727222959131347758883841196718501780042838816629928751946478812216085125644003084591600320908529000934260607552936039672653268617051501780563885805038630613450649139888505994269199216270597934653484753087666963428843712003256977948936334140519489558294652499659563831521794806205936991052160942802025998951367559858542612982121358461992800188354024615220100308228032137674372296492653731257812689558490418724245463020852609644694681006364263379836869510138685186093341160952149514802599317144485404140179701688606002625753360393094439219216495338323008399430687905052359515695847106198747794629736120773628050288383113112431326166567391664547207351185397576016287986486563491663905756043314244828744885418333871022372368826156051987626400111638655948240299172292648935855336394907260263841765306755234325455925612309645651987894339159016076828952796813822666075753884730379387764406653135073037131235406871366702762115293718054041298241872563630079760367436757332323822249401481738563398035375278080350069736919416201729780325124994813563572468523110002757522987895645042758430210031787891000913542307261932955885888677554096780200291672050415289893090456226076815680294096814254945627578991328461600770452812758115827575706290180738427105684743592185137582603924437424960637708738411016250383975032447454883255398724723904509311106194667952251012809406039788740978025221893872475775044874867065625525279208965993133850529741183707253107703248120526402032919166023000841439908704321815718106321370998275449059091432600864771706282930044439859938720260881771105345817722532603506422901428436423025119783174397743987893759321237687219412279208296286763655632785487347185793608333506726117267515091355576915614475940304098916317138188604759308496288063701647067702290516251523524676133607895360047725670008723369147978539430891149800327900192518889454302386173080000172803350326406981072459522600809297583258242164940084375599729833159916787125854682049339781928888367116336658874037569768299980688754105061573327907692902459946043160304352872365254816794573398189980922710070030407381918558212544740894693923160725431361965271625489698918640164836326761738846951390503980373352218104097254334507506206725027151504127312317962039405560021495705821579908097823303735541216801517818354488046954174897356796800878535024515943005593887172681353836000586341280984243092663370534032642803003154379764297193691334775988309409902163505711169835374391168193422650819739801388436643576175006850750783468280228466664437077397087603277459135084787794459091240932232788263770190370396846366789591550666601752503076899174878035925759786037343831378937755045220915962020490402871464832721664434118054152996900950544314423731294880697241119815349057074220340100013462480154868719347514219066959592803952577446337522740719567712687810303026011334740713055718840603542955153453581210204813198177365714975031251191399929895357223053720799211960721947758282904947078419478462999221431980419555070906284776935926704119155765046231279685952754277977926570790303426242242270395032105066278200084919058176772849680520355800856579405449840908513024179724261509754714561292898968026250167585347030464956897832539667392344581046948762554695172281066540637578944490093401774718378947562157523350986738214151866623122100703361644205192052304167602497700448359974272766008730683769435753741899782976793763975125145063051823684352123857338065864528503832813443797719719543268753233622209123218395412430400623827376319415971413237218236312846101352391260659878445681454030302033919566270935584672113261061216527382325648961757887156587275787022377840594759267005918476670817308665435153749548611254496159271240959708134768214451357172213629738369726532765955464857020137370023765528836269935507216143919477085359240227836004978791605159544913498028497800841247242713879830207948370361756431455639621525107910464666473620951516517285158865794822635445618367245149739360899484596511352831815252701703489427648911668830739317088909114048650776873052347093799531336655497467919746523442800676687601786018936900241159112295756349301277877044576392210531619795738479163393807333804619154653312666157437954114336361657400992507055816121671892729596415034340351180012440730433537971243316691135149030438135282324480409918542712061741735088880706165471731338560464221597784457075660086886161630338940589613647709869246457612222758972331562996683655214728278744189933532474217667045029724942495998092792427262141165167048296217207538591522586796326054153573366484467992021395604999515721711262031909206969489257829294559762489779695463331652839737687673070311065404429889278801841407338554270346032274244549102798405401259560491436720584617431366900520340751913401677589355130886265942366739413842125575866919958870710938033286639613588878867374021737526292773879011103706926180072598433710128831238277142322975284270959468374127652329457491440200059933713744265709151640311252123728920032870886807694344054658155142712479169488942449980061328849323265887206077677038186211550056627380093824745122023223445431288741114469767976841073497736727199326483950314949790693872092898272826857483737937163638577608252814017113590863239797224822880585214899042613847084598896144070077926796258420657836348809034500217008687081738258464144893937527315481705684833065864528404205487587170808167463958969984720781377393140225842117425021329419789515913592329098425458243017101734462799995746887766276893545398806550334466628222286942937959668517678483524324548217304210818440752067159945719282169450258988063515353305667367095459805206726343258053459973158557378590338676894197002637985484537625441969941330069549056967314574654265113674904470917934626630377714659026062692131531701973537909336177323516379999900528833753566675643758178765822524253550121225697150340943072058316589116219469169878886110103072978926223409915222980049008116538075049780662967148609939083471249952773506994494338783278074412565623470553339679176481608301727556487675803435865904755330672789196874069414094755210251246010852673663390912670211260534831121894590022479416795559622774892626645418587650350633335093045098317853757257405816758931209751490378857863997904859880163974499421858951473517850217033874110247594237372118984243918271161190399145490075930286656054943472789620545108522954749374004315169459371946502909842668804541690402409037022960358391503167762077596312086378067209688931132767960120426459147908444709823807810699409090606818963917975605527597443179824777704577991241807423221215980998026819534523809316716284661558696644825930263823993213710652997336272500535275101614962582405752095130292348405098809808369251233805231249704824137173286907255354429624235011235938617412080715780431847580229023110258055237458549686137648932353212510282214688824930599273498979637002304921983601550832962002767836610459023972135396477279651230684574525982543125401861655155276920619489580735138694337674537892873674958945467972114697881026821301006827869963672694855128971772608688248834720901737329782889578079089426727435317587308803076485769005774321518635838360584418506632743635601247074274285198108659640017867257115940147585011231041490659359174365528210869891739011158485613323643816483175309028095565244886200797949949106833260794471119227547120613745895432735629167362249786925157853537682060667554802304788712741000373800041059219701457403734905978879071787266964306138418822369108987431651187375377170522370195284773090506671808831323104749841791501940949777277136888346968058792560859586053728621238934308165993921269537506058556269596432988163279075867499284027902126606375899536369804083727007470830446164173778372773823909272190095254361363427502529776711582690939219346188177506053943993540511093562608799862693356363983448546898368264719127326497383880367490173211880958720434910635827670808600660408708854180597893147350663705129465168350917698039109151359192366837409887997157471591545193691607296159371335129353369722115120975508934975957600098753143510579254347661674415168067749204676676529163973785040703579289337066082305400209337020610309459940172664362562936845741051626785448741516853981277673616129312526993131831787742531756280003490739563056835337933178476617321413748390198425726439854892244829994075207244636698130803688709136941518104360342888815195220055530554738962222414068185458192104193576483492474586825836567101035925124280632166982191203934753629278240874732013097290438682339937194017947715255070720312025239330304735726536893736271210654834106832420209475567903377634954017109861404178273501187811868266725746780376672328853726893973582421760484498608593260437880620606926892368220424255588857954261804219050110377027548196905724491786442599820901942681085993268379091935534081675862735500676919609782262201436697076289969365206014216905906663377231200803776604181520213525875219255305977165484189279513849440614547342895055623564740244571573610391490525364937900716505979393189203312796940008064623189969261932061960229182355406648860478171641001514448292163365693936821803025555574463310842010220382329060936440791559643591315277436377070681278638105396905481594203326087910727063445704543571646982038232404664666290416217048767972475489856504917983978724725226430094283378849121614457303532059066403033924802829526590307940630918094926615287074675796872132726270967482301260154249459551592483572731489789895411182497294863213111931599355969428058360350810357636450112455186695867353364167965531887660574756973023118329328598428328747975750936994414032813572793008948187839405785970339157444515416492729893023571309899873511515282430124486379983896060194331328878194202645187797812589037193899398537300224023634811453193844675288494851918018519406669783355870327694063812403212826490850350274924626518281500933555970312053924285910233297446841177034584809817495199523223174194851359676228407308484137746255538559976366180836171787988786377080302798705715418333258839554148018388992961510847935071382545651504793396952524126573178092118064632702226473661630347004466187116162561476126495507732464710611029258327090308481423778556251320966754669512494177016971040194644099304703356142696259504176194140820826524778800500153516675812074740998474317215047452247069350430077305743901271561018383154741721597113928320711368633840591253131115816909472488692377135004025783315057958658155338763114856789642551533614507637266038465755882522090442720237082707090133895436654767748118708388212631172110310713887580179396848954644334217752762546892744735643236529147879489691514157600623991086751815070284955705961714262766484858942762424928602179777582322744868766076094959316254107698399323026304739854675712839737793748962141384968739223677575534611937653814628426776509176813772861092242487221281287853475996557980815815878782302893541960540087739658888954834987431110746237036710043135116291837061498329252001006533485457226053630033163152236756181665780050014011809681913631370836500931706889135892955670551378336265840459996789021198913807688401969887667457429892379402606763495998649434712997183383068285338693564286806191619783440962398852392022428792991300532479917011800840299421982080063852587885155116264722737548198116273478103952935764173730062005038399935279393225287350096142865851167745425631416022068288554638275593783445325335472523794377162494914902521118596423952172999140223857325656662898133665414400458525756577941316102969631726761892692065530471940491730850397090304631719393025555710986417051566426230410312944350804707154811266167305732103042705466035535125234290604409702182832807886919269102043761016886364867476769813029921413205384956456647331091162375305132558827806759088376083826030698103541352991063892245722763345716455220623285609614159868574671709824052440928251253954545788970658618338448740613286657149989542982473209528724928603473096016074575477398436328651552718125168689138462691570983187027873515495090424947944352240671632082065085592856374796126837983928088386040543176733483248479053992799596884513402747373716156012130030789556536820502981658588103596340630158951550790668561453145080556725910302423191425679264035227728841227065142058359876557583257701155507624265708391542062213143027097557233618403927796445429136975321523092002609851730162018654515755981488501792286389455833170970850753907821770170511899681755754164384416495808933472670508373144135102693478780662379647906206977757848710236010227429652378539919700415709944799052081448054561266388509375177443244823044145512380588216520387391521516834560464194619118775504022517345813664067037643427704842124168050138912028436160418118583540961667016577569987551867929389825014955176645343855299123588950006407046453976733817240949513632008307308905570912929683080025329587638813649162418132162805714161624560834628207366135170572930385628304756927811190842518881081863927963923254861078812269702137939397004341299437245246202386279314358643689860741901073984106470468940706909530722056493524792752669614751612868092651719504294707805565839238799181379716642426176651990554459583462281963829779752696962182035213234632457193760432632369461185242349326160761987121473921192758640814780930334924883876472783727155997686825469347067877532523363364870059969378667914811866410015980331623337483008507503662548079955239048530723097276582987780370860844916380659152331771350869225001438288871811021559306509245469385527489234723161528652332159566596511704825817428473181436010028025404804890209517234956357947328188832087175054241693453418528867949302397414665309394624409504450137914194548819932231877722074349285454602157482025538369818162597074669291848159884273854110997842282926364036119766703953933231462488922096050153686866739366280438277156127964996707338549941135624491935135217384044488007277132487848490134556649839458675382445432721842481947555986022449915127091716051667388849510339073299393850156167832073290035277832500459472101131506794251168650213192047895706765983730820821792560515638718544795506975545907232128958011081648492084881438978358420821241155323989062112811841643609946300160869600288685313082413754125490695895883408323765274664305262192220662598033135557558863879273266332522663454252883512976672401509162733622040991446223397721556678301587680608478386481866762527394073478694671539839764224033555540779154893202787206475597243284343224403520971353506776677106495168289583996006921785409752638884318582948093014668340626832746651744079644241635175291168954826370057694793944843431283310977062752835614913999232277977851825446544861939564774410559948691854789686497100694457578017495431102524426469569304029739932288566485490812139391222438880707392477859408116481182467762354296116168731255683905658966622390960202899195636379038905126419819262980009281850819690175777237208845968738328899256698277796417814872914254343641645359007854913008907187136198315236487967769433083148425965628748368394746379621556560515290930502893145986715309193213566343610932519924588805649812370166646804659961024308421793831215529958975037377647297437020304819053912100000560717592095367625645247125694568896661481104278095418383198424755679241730052766032850575295911624107246878368918171170805645161870866468495935378094084932164484713663436873831987371389254864707630423192486349245118932075873088303597163136981372522248584643162700876191406683725945706075364827833490569673733199405164388824151611237764463046418173867618544130181699453402854407972582887598058507049359921906152477405187831050828631577212762644099600109415108120862852010905948394657967818993891108353617346702695906873065112199995503528014598580142441802637682771588958568080140958247028127379881446287490933805403032051260421262676886844720564344251528842087982397769615892501955679335443867305173385705820590591468543085218527605660509600256095581550171167275818639748632669262935884769001580277832894116901468683710173784703447465212397372800497372735044998467422702502324411516551915630918276537276758149882239265729994033715241395969767302449506499309860904146386888867663801581551309459462937679301839309157177568848356661439651773280749325609739736655313233255057643740890990451498713639595508192717805420928218802089633373179941054227195299161142737078490928900755423735910670356125662321624290493047420124426044180379504562061294886695020345475955484080212229238139401700612039964271075779854513382796826272073118685240996523011581971950614105982488352265558899602778312847658028344066026006946241354926785399465030102412023961699665283956168863977084648511362332860590148495472230806922770029856316485901428091690790148961042080502947828036207788895971104164288349790172274253538263687834949167948496213167876450318216588099427204046806565019919360274688629414294561420461215564368268790191690126328989288939941561724234544807563733123224013937464437970505656764863300634546020124111870315012527641621911428912512142853148452773112694967023548809338633099773868182355866093902144594281343544235827466829066474582563737430266983314192331985981115819451995123868167632585158909968484125057077635446998508670466118858183175130084127384211180295624413104961202667661862233505361462828448299444793963090859809491786700036809072006879415559044188382914907385109212327596880485926322454186940361544482734992691768855086287264592209289548476419441638298696748543180209558590812973127274573013183075604425014098593295802497400804630318210367608604055841737891870307729548962165576629813136692970672736365787463235271780244873100512406405495642802116830278977242319586876439250978389192518240581071633536544714391033439541903455764633518144570575961596899973006660379041070824669975665832628052809533317124168096135467342219695973245619079207695816857869080385933946437344467768840878894052080577376020303378111885013767887821001611795518928638086586141529336676845311805261484930190544761871012787283749968062567535747490347499517527259677182546622834422294925042058727862183028521692355783932756021232926826491993156095547609095849018551602446256888426596729500336496440415296630755230510020408346022037478038179900831968917563856655189689797715271425691878786911791382748666536832210125554799714826458356888316294534814788921219812291129361215816217324348804721633390948933363995387646628258879615606269835336152678230439859576048784661400110271958595627937509360464965228810767609737923341040419062715097883651930909548644428307409139740489437655588314895782138162749981831440879375888568057077738301183617833851376179326107433891907007787260835607029783617043944881809598673198298889110191550203269231405444808169913934482777376794038064255304841983587801437971596330926954416233907979227042163993840031219282822410182798892298464458765078049625090197999131206333557418553918845550786335752988944965741427619365712802005033822346176273919092034799942621802578850577706178906273815458947205679104156404775466432504510229231126760753357498452551835157326146615144115575937377913807137546435989709788461520112157969783954689837623231305378098484800277451441581993899821579766469482729479004809115873320889530666661166819442824988484735964390871050087255050246923761220677274186430433760992832580143869331068323484644757074162131182044194265178568912553530547291564844411527691869664499928186100812010644110644277678817399695138350682113391648118220557932518060069141250583867984156722328784717959042209919342064308283968905151531189252053753849456240683627516710547415258556399723291370282019917776398145968920677061458023310688900062575534668485255544038586834689745960267155530994035838267099388351550063296403311946229781557575335974737032120245292023708574584691930552479268932280886875046758506525992501651469964078185812734014403114916353564257635523450912891602586803934039803633002514063894096592867949979711430802497000549315216699196557074618333175467153180328026373784674076352322660910015026490694121463495572935785314720297236563570015656774702304939504002280545494111957322795793750654415712385191890882696295392316224961019781798381512283314464402711556828620541737215902672842616303124382670055196910591957136411109631402499099336065144190558562683919479009542852333224270184317441142656593370560453942914464154264566246915415780359898808622988659154291651177216105449629177669360021361370281370490543843245964115644720644999805376101622942132648435867322360937849751709944406690070641323104254945993431951989434041962848022124497388349605176395471368820592286165743433225027145764987052019710262804561674809530935281323709279389517350123321229116409617578305821381322933618875604333554728166294000235686926124052530091360338616726981926969053070917658266939792274486226014452098888572951069468412732699663731488389046138850629964630406307434414020852849980521501810984579051529112160424197110622651467710110413351419909866350895908424094534864992280101194263337853771031019932529624977618581427286767395513170115960588311420962102569759138805563306151371789598630483512176579287623950381405269895727069238886213140514630829427093981628680188355516656425888801455919281086556193797023338755419873790409175497523023002309235045546160749473180547627429802583147547946939719630093216321216040632128841594033259671267244196500757035683264692093171925955068386041394020533419306244812625564072229710143590917367424993965172343848059419980890236987328412594376147477228691265885200307244447139221729416503218832263674961627744962308130865170887683222028795879505308381004834663407847686587408583326313896931027028115012166267419159635793489990468558637259723390409573714719706741691029544612661029266426693572764121960023757365139958139269618927717608657716786847495142270713305439187406621021203755517186384952950624742250987001767012523491487323397530263218485972017403179364632658240322647875303845383497623541164808345743883386971191746130057871355820929224178953212634461316517168942197238109777620563121279409707411333502699026780836441079359223123464309971842768863892091200159900018365167727737311776559934819746514951614044418130898833609286945197601505246820673177186063345601026313986220820966006877661029760326636999985310113524716118379709638884313124482767931497704428851909959776492193098636983015594513941390466219158855356404287710970476496217351745688949652324105046096809701442420949280802270774353300290384344151350677871972144671318837849540010299382649738664402817745698518848910392964345359030536432609865086079174316139632581092467086378516289391536166383039694716258720900120817575459925256833050814225143814332107700426403352546993656060935606126456301879690422979281019045628744258936867867002697510692560784595353274534346723310221936511107538520494968210614235027890641400232761822579671942069386277964128053124714612532014067247884561519750689662454561268378614894068806949004251802790273890244431547352476100886847744354742924832138110637000571663921695451143676347705306435479828175599780506517775344205645113662015547778226014323069045930487179970266630025318981221396311797277825223653064193023637403396053237375276625549225027248765245959899398902515860831707094723970374681770820955358134820282951651588101208431725730482745821464304839731219961517863009804117191882351438505527314472499222319607479278162390914856007660352252358904428081397503427839110428269366036776569942897913381240626340319184533145095863844955337961652261887450590319024822454686467843442000442691312477318796590727931342966924162768569206741758970721646118064976217426226827777427046961928864220466341397947957453354931417610099912823698795588335398650484401257294441505922387170691239326634920909221882803753414489657922272846422310871748279323361889957530409117220629073378874368785708435608351057914068167122531365781640940699105300473531822422949361920101298065105706440778149084515907364679528883647486286793593801972237789790931013634892740039107960593597591271621582069714808004109729890719962064501104449580189155505772925779532943417506106746515407227079812833137373654803343595628184687249980408805296473990532770645725351827489927866500681368098102498411819118260691036899225630132108769426928534477166582127958115281016163646963397070336113141783559156844556271870279873084360109087950286888508298607464211329798550994011958066605957421097075223295751435743294154598280105933315549657515281098035047880346242554394277393070260891409237014227094739086351403508119480688717821454882492632467033544469202970509160014893882640635967818083600865813796823833583089118877709187250211870466095162553783639611858619630160319927492568035621035762387281981530754731950957104954994791059767672420162866980121305518166748298861872569551704285777084778455921865826611987583671624572201151911823870058117711438874353285270397573029922001240766699410434800644358495385565317627301275354094461037816095324808887913904119906503966332213146202318116365642122389534478517326056438163685747669042958842370761782083476506840761317909318361181021962656680260213766018198372844639380689210754417222821454722953202140390473396061460496396202747508906057695318296815754389840940649376888070147435528661817172343479424396851369411396470150203962089276220306010308832055898168962438017719687124867847278158068477405343074950670210956851109122096761524281463084580402059046500570793238529955347759928064698503963554137198571230158694827354215841838320747690208599427443563664431502295843401515490249231361091222874060097769046107615533196385731356080774891843135554607836131440968276047359605464282451297189664198941940485862749544749993855488471667563271251811971190203892681420329274626315493524955727244156216447891276661694336400836386069519849269496647031745520639823585410996146908375826313791338030192905331485670558867312283543812695581108756952521437022839690838439603769170595050526896464255524545740625252590619980132493842984836951954005618745121951975125849884051992835133138213821024727318776565895316664124948673641845512839673816698101099157559015959189401564299781107267892796720224212310187420740536695628937214017428070974728240049692200570861969731821187247397455046039312166468840149365322480996715139119867781365313111244870148796770179571858711424442320659951516093617592128751474903848179600974625075621859176669079619306502870465175912482493431549981986245513947749288691439170655873305179410705273870900577711724303682228590078407691643295824300634806983454955945182926139173243307174656188663921736455377935018895730138353858254558204754644669259774666665982262041077889555126581637949815787711277576848561990529026313911431383558767963052622009686727408487701973730708755847447995471983042950887190880311965118613883761909164817102630612101983512554233251996629516560578683305860896783847614014918254850460337284017229438656161260946270832242390284648475432986003569715975253500984826458716149147152082992830620903216223950495975556242607388798385364635375025554742868034190100256630484975327694176501156800553735488119752434275043061151076849809240878308863404777264536636652474852657986723918979288636014891196221360504780258493876315037245605328917198885970181318182631469025772159593550632238119760803482051386888409099916101483955249523631018604265419024668613417201422600429850878471967454890416822865474435858065227113594746122826041196345679405111994699682867716596646147849622912513250586416661317701268431392960461769246059104001680149724539187020194749784834371361286630529044229611609961810942784566655163500520432656409013540576611760164341721774056018529664128896693238971744605837388549601877191925943640948801291728790555125005919378287950175917142568140502830033770048646561607791122962294580105050878183549719056747705794462085828695134869885685002046969815247956415690405272298721051620451829422982463699711218425200224256736571234401141373618135309316701351362859292472528633276297831647910239329261204519449827344991843995913917316621026430295729546719808881558563258138781944777922330423972411555252397795965001294125080027023458610415026151200010318775132477769098687821506765007366102381833198196125796286049179214388668586789295235601444869310203182607570594721920083300709272638752147239143692194949652582460041838393188044289560961650112823897228551641452579127863640742512048523138714109334901242567120411986698581326901305003461896514933688265882889874906807155717432420716514391338908215299417593085172638419444942278402622990714333191170598486344510439605399460158071445925164856627147188549077326763642357320179110824653157759547102222885174339984713607564462816372667356655815419178981892773839040910809342964932974916375786234619792613268091107785443244787407376098824752591693368971495971201022813597948925970176465110859422259015008560311683695698660230820659036949834646686879752866640143793163521015528340192675016897152473307810832530020959351726341107561465081036892500197978044020773004082737721449789642271544558213073051852377933959999361794973055442265944360037498713980188962510196428708318518625072178119273217522556402985169605461785167604997867963306469453979931499046449802389823550338232282889290799323802544244918053260301440484185140438247323354525477530597931407683057867467941341854748677404583482562587330439008977277269615257124292206196034648273534842898625493481896048441327999184657708385983894987649094135042840368267126414831838200524811633454133846006831390798839551125059571910008179836798749936123266417445547004668367019525035841448870018345924018101433976425702533251343649027067361093351975810416425819547617543161041138774954137283112633103541255034673694268102580833854805017043636548246822609804208583818984253822402722695375527409077244077661805402558160017327652914263979785247242607997503928726879944746833831761964202557860761510815652908472002535616324685639644287924877721657355166507230292308850876732082386003823905785366224316302935754702726128360986143466115001480239966017347589764386901988275632060144712763131911295098379455876581219495606220299494437695884665014967494146851989938638059993183581009230352260431938235669958520601875131917101592517998485118479274744491534640726046092597735462063375220946340140469935984837743024428178128766058479465665632638948542627316833278292422558691580673522784732265505927078206673374553230757385810651718984716178069117526200348099814008231494180488806971006529738661515787994552786042567726575204322027653632765143446928454140531615202903114479563368125047830345405426306179426502228218886076957552767921860829326901523639666710205862574198490949802068514940802088596300242830959336937134212603911186199395289850582443953513045429965004327900186521978794063275889845712212694541562829524646832251833189284482628799397377527964391519308180271922911987833060107474760318529157482738695221762582922821029912815129275139470102914993268616197873577804415324199826374842358711812354529266718724273066182196690478741311228792413298890824894091415203431661155094654526540348452172328573844049567279199340207510327574451809566537035587578269567100399746010439332237842771429634062248499438074611525517437093021269446778721654377868076076148969679662040287101977783533533143488422578257489930123841723926061282461487507303009730828775180054677185249316375513879293668274452116855550169644467569706227792602414774288329221765864123316163883901723191131218449396167522221777622925485271738483173355477774748962538829102194202787295732950923588570979949950927564659633649113096392326623554315822540508156966903573444365203080665103910156472439617688546004555591534737570584094476495791450560819755355236445762120960025735393500373418975731425359752183987301711488044010284707766377320944515843745087223286611588297946605262734677565612877765870953074285621755682457846361450348816380128689571917568550091994368162944572511604082918563088161316790277375865720255303351028528121160748503394322897222138148135013346533858351745920394984116701839943236206758891755840601375186802643048548781227803407518633614318154186564351892989703580853617218510004159663350296465354680678956628806169462501754319072727429153971623751896667981183127990786722107717049481195145905217653612874487302932894045547636193213326229621559015112684442326683919785213781564799250605560410260536985407267442424617164849140449703073126885975652159765461409049059367231154655177851103899119422330929169901551298513005332062997093952735807208392398126460248822118352886611516180031483862532883094909019941403107231343647962954806996534163416910036910709083428376610536240674231411722795094435752613318716111479227127730351394666446390896498637135342075689720800366287633392395395105484200397961172624827068287447359404108690810703099276240329709733470993071753733875848270067239504742943947876894525731551649172499299211313165892955141015833261685358394059760304367569403061209538676699624390397434193967776523951783759980169638203583543818607945849876497976113833805748234782905196692612308978229615255070173996952093902013837462596155549237034448713448714724175573895113792448131833586630294351744471225175159720733468835842854517103379191945542974381536966760650229343530795150063221353957439473487171884844096631169992697506273222360313052812564061334601226709577669010690791514680162884211455473559172805458118135571591485175070129676494194125909788089326275159504303930034432004464577006352368414236983887292971616474950058633430631167186233573647155970883116012653802504793271121101249008640447851574647702788488752716050257393868674757466297904678299503613005143820599293611892364785175460520178099471941747415799629348087765064921769891545287285611657524872321297250397027502768345497952500018780803637015739983477785237394478046322166352806491247965795145563264265438995887737337388961331711623210010825389353638284359258442370847788405903978265230588270520799240878225423275374031193925619186617633970877699842645833850724377732098297656763001323662109384925849302854238574602609527975033859258314518823385261805199936389510951779817509704413935374537486188191798475802308238093937827585078403368417035833197021746490521634981956686666165348106761203915104674821626743814756252145035182050562449138693584778669022692489372686882838713256249248770705167448040347213312275128972090651874028935441098039650001548128515431057930534677682981596476253023653643736286922590049310809988455730720217635326114009575776264872029634167120508041971585164427267961774281587370689283255716198903386998031672886017101494267341648287653220868658109052187560450105609265123159269810248381326466531837841690515836434182197088309397669176403655469648922386020567451690497126851414218875829336626004935450570088874164684457930035916204655005230536348433250531733143210172895798664292256607540884898975772092111055385158668431696651391277210844076940702712305661315278111793725308842351466400344908627936528534342997903817565694498092183042407021891328093326132690277288064968111562275592507697073546298110022989760306082190953742666233861128126899000578977661934092300463274860663395592995921159678790109863994283734477647446573017982240557897333868122228399847965742744207624069753379967035035944456360157192571232434990965611411896731550801779094230646741202415970976455577940090488326795447407725595010572009514686396431788616862906721579033679340481398130871296487905383479719759267254270040924278588881851668781908602720119639052138405224713363416356455485026106310715509250330182972742827183281381066953120761105280772627285253274932639784785586706999240867257966139039795761291454619052915760261088102125491611384501356113529580786227529109482071019239470412782474927062551573068644722876098752990671444942423506194787681140096386464863334840438627670564345088506813185089616709262580385929134676971832523165261754944028278442899702838114807556202199245798174260643953071906440619902490368097252392177029527499658914423713191281744995138084259816827163588225418353692164903282491732840018821949485067090797733806553441669434128545353968239010398154201156530199474972848921735282943232774808103857607584213112585889502397971901543910712932830129290472961700063322430068170123818823843127452192645625974159491684112343325248374448862344420518424688752972706562090468366346217981267155276558830400633461552618562828973520748719280921383504940834135750500331045043922129277610830701700797358848921307497662451985633999806543110808948580294338968057486364990703444515926212507520320231831909151545550367848651426882758506600128096243612001791651951026165135370950844402450282952361974430914571595438403760320176932079363143910569952075619170439260248727877042055564561425529955118008808225432137253690934784733711034082898126569518047639992667795842328074764524524368237867948646393409513881592163741105923414153038210082989873466839994420142839558505584534461061420985909213909891831244315544878783356000213277279634423663560643332317253697819256221337674671214806106673483370234162505816867123613572344596795426507991480955264837634929657324076155779436813453987066328092530520423525688040002924598277160443757725110995206813003388531573147777041171313982995591524655149366735703392123071818239562811730774275256210546979194417180952511308641352602250775526783353620131418347648123345495693328571726827197364854973438534797349914416916309638124860569473232423373141446148713461227249917413809283795337900273074613055791305096714104122253815725855523632675831823800847065538352285047056389542400354768910824502477327277895474144619807834874703313007152813021837413940093844666225558602673613067291375581400225398791806154479994416179722366919617739232443652460322076494491627147463518043656427478736568293744695709115822377548431279875558585717903318072087498710156979274110896799653657816529574276872416971506894065144554949417660795453011187611619066388424887794308288232821231276404496131665982053859411196271475895163227134345629292415784237044363612654414879573216961346752598674196799989937025900652446936048931315065624143717264681639047397481952393404781221340323969995837319805586153223358516978361400986951550375405841725409652968745089727915478425537187896637876356386442001755828034856810287307925450060603404849590583719044909076210652253242606222565291041203146921573568441961965064262140831552287852170387138769956980306224683772905946355372503336059923208596281627884635931611112435095581622557781520226085096900664604142676383514613488632627263731776968050716559819287774290673292525693942594169153442155181159129036959522490923591910514569556419360206973326469134711000819553232451969045610725642926706676790700010648089818657047486458801745430494216387737330178040560556981316601934483366840008630399530426621495715970567557558295772653526571142274521768265113733491015901258679501621402894781256199176010028991161586302240992128369035025674237723722821179833833392051883612338410538684182911307262439879989704008858319879521769876388036711123403830658123615041226931900130929303054177227059757822837418167282778508644343063176181625896445609320179394219737567774971740763125407084395317546034375003712631893206108521991890326794803534618291828332712289497473323856307318785721990448468139077189416607651157099253176560556478367290114750339245941144980262995046010099686312076347666083899691022824281617795187027926451210190570224827712009046468428324311079199281031243374105081633899704738112126325561830784901371855527891074983479861339419653483388351255957560851176854073896845319708589926045724943178619235553417180668443200845676159118320002949164380927379201606591602241982465389161372252136074963198045626631433401281853423671489853108994157215570228142478009508496481192369492969532415669629879111418000376025348280424529732357720159156071315522711773473027191009693566005842779185176438377015774832658561672531946313371184388899681476638732132812355720931554651807193290489697645350233753910129178714325612499799797696546543958835232632808450035803079422923437726572233429751263568550389286300017970286523132507343509569079943243474300663908139741840209897902425222269262279272204183030909438699156626741908146464447700741766791979185865230394434602351169504824062437559315018814454433933241262910373055971174389094469203398771663835664318270728261843193003025466897689246223089242795654821966880527496525906717181893863077465184519987910605894897502152934697428327477978126136993492054304905782515262108495008976488323635061184119011327161016806015034359570345705522605088061398676968063529049800682631621805783030358199285685328230787559037687749893120136037810983598965499030288461080788339091642967851607990214442887902731633813627298450586903322016894861946993829434396523340931889383246103828109288449692125254814924902599434907562710822258805548108665584817236952197785976937213562916005287638001013888268829059927079269377499949069363566050008547578171089034579419203542550462246307684191657426323896722597375247595161293305111220469347036134501446155171936487922750478912467403014291386926237900056895886223295260318298247188219505475287891885663341474037093148992177704648011389940200235278813147277738824989985993639280365167008005722089923677443671630760915505566043850630803019027643013989438110612884226581797900073777252776090675543883842201477761288153130304322499489766318823591365196679797449469817974470941790493582167486047640798586003943646731678834740613745531566589178501745382537357980623245375137610138581118605656085016433825646796508397582957829849498530541637803853477890579193654996698348247166162530886408576540684818678733181910464866951568166517593451565863252820958911059871881026292705282859244959722467080764251667043857819406111390598228247246477927391546905931600095388207846638076211977251166268019599872405866094830229793129751020022120936696521906839706994848216006348311676256260673716267146446956587039507421197712563945164693129100418502807700024793226798166400862840262738341949780495910328256921535470186046806013281031538809339977254583686067307036253628920132607312774424530441051458436949409418337364733580491658743449737495874400023196049575083151636547328006883858910097073684594922447410941593029950833470860279875290481356895097827717461453128761071208016206902117550665980020170736636228540852724441931121458533443019628234882315191276372620112107756113946250933667202668759999622718468764686485422560332781157647357122558577052921372225060369889997043563471304045050506601343056074073594558732089789471489497227030402899177412224815392472328907301311329073627077917108718103612332310377920803152166550288009903918804439520198558067198864805968168392590648344341450577108312544047239537124741599921402201559573052568366560998007992552750326794907070838559162931873371684861714723301242563530634328455939173687540891533710078910648252409000587675740976303322868773066382233453576259708454452296448674846405372236929952916674303175772887958687510510926911657240202156252883887162072599728411963363040919354796655068679570692061604978810512465177844228029185107863624139103013482563953129615192468170065514000108280806576993136098213036900437302685020492622473598871690079896693458912089536307416238641122694907362379243959018270562195874057118776210361600069072234346810012874790716312014767253025041240905181177772163735171468803082124865584088860891579877637031456832803058496834764584657722585839244273640939464588672870375707165387691614221695200759111606979485499739634630942487866887543797491536653231802803164617359845243499870919095075323167984775141140530456916646522514318164156696017121595764003589488632206860070776634160432571260500768575343862223583889948758986226319728347445569567020925422416810318574815179852611007765379617447976550981799822657006376060523966164114692031767628209214106709223000407821930316383762952524263414498183129426694803248535408157519190729901268082401564655026929623968678510049534869654922937838984583903282530792104371555003963724526025590591227300203864689384409459301329497605896434967294975533137859356919576254058815582716502043374011154413121618523113126692559757451917578354140156633988767621642894549310585791578903583917249719279627849570178567453232252691808484513181001363297014764149260574444394584770556337398072146749252194136562599288945600205373996984298182915400924986440240064069041192797560187509294598533266184001489375405226654022783702692750825217707766382969147801791334505045055497639282511555861231831972940325075014620359755025370887038973084955856685811325257274307473394032395767016795517834490782551729603810047869102835496922983709191614386450981063941928991080528335876382800970082156773903237869716769954826809416807606898481031409265172177706854838222953879678551852998328572979233980384789272119637638006934897820336413431959223000127820428490326219572351709433758121622772523006538323708988104681447285945516395429884077861371310705424588306504276241636328542826192250437248943787284965323899571086701657748661255784714589254999110477183836482362042684693854414466084130210677152945668263713642345820995292635371210711291428122441410474536459755508924146951095729881938066984831069233343715992255621538596125289935220384679499384554646690210950175524473668017838932884334802209136545759147448245344407914923964240613926877617398710353739753854758636543866759324159717754585818239742350450353800452800172135523927258589332490292136284579881476218506937861070506941444835044772396357809719756107409298686392298619058053253568179069798620301537223216290379003886354312980452414583921698298080445536504734060996792715119250809222589550926315151813588617031802077572750777369603368465871666802920101049140529445114714657301660333011030966372040364607341468470378937979961484236348646731887876115245950295236425970893949081876511078826820914058136056433630536959927049881369180826508658890382668643135603763820953651506098186329394076944260355057213212153093533050250305124361927503765565556909896279310597024031267831857354963670644140537865121486283682475019238026397511687468094375984835977998890906252711715005653428201225558862977307228851340699601280372535620073672498915230191998747145215989726113823841328322729681090014276675145357887418420233444163039132754955686922176867958826477987231073360222309042892266707513356756701533152185306021041802523691873885982314406487684785220375468686135411084906081475387662979143433577387500882999237601089703531030200731195458977867440046188359635394093248210277324802609584742273400349299480254381327308817065254595821802351809283997821888227283474720802194877406457693660610014926564780563056022989874367664810546959664207380307892543185109328401583216718264349584823754748318903593102488916513590214040299171237176672659684698522448483742918161767517622181580677317351336626720213775311612754151015299343079626311359510353570438373669014476834524322439980266231959726903657248173949012882731747381279116821539906675300450905806205612454180895641473328190668819931489736896920029804903960680533740326873147032962489473474401894569540765075349863561406350165561737983719624751293558798236894560123828838109892174083657030048059579682673749414382397063951920679276659637842452484450636434578338924472617191226192397253853993145663746442383638387102309573267980902234487865011153462751818552784128812167497313454420107388049072639833309182359884694332397700488062538134345113134671239570910742763839610434859053059342721802747986253031690344506203266929929078724290975203859712607761492031809126273326022422611559436416851035836915250665301971843877122627711674338044413340029408037713903028756554557326171060665449759863321014715461895119922717083970712114603917529206180775503386919993624847086683177751944452724230048468670455057223248131694455947651768133535557328320524731824832487033353565629486160993245764828709493716722333466968446543035933671979943837269785198408989055367313793737654759836015268172238422128535380731688754470243528609459670918101668480610017049863967793617024395922105933285327495179732927245458154513328369364809333308768436411153396298042471076163913242960040531642717562591015051694145948812607727290607130664525437374199805271581584580996716047178816633556246979642960410403918256016250808981213195000887529844616154937140167587331597128793578692056851236114510074150421623266932622215479534765694208978124734338327450239676761572207642419159312405861323776918505720912092485592983089061638574222445743610134921610712631768018863520371379401603210098544358094943306466122634902093545200334851706065954767822748479354934063449671482734048921392413127489479467444643238614193314010299600112203139754237217936701076225107037679817018289601564823111466161064990403220249889381985066822452277173158350828262307989845488152468755271151576345369943578040966488229026942829474663206069794456559947772908527131325540097681394284273651678889359918113210989461141677081616334422870651842209538828023230182480272018154370376716988148058644143182576626678243156538837438620264772247193103283457556649287671211514625774257933646029210568137302883559342560432071044069727214244805515181607097091073631443190251749740977497763398542702616592379505638081263160289638619465464535648410977710154603504430059813526200766625833709250862220344093128992132705598385545520569740004498386757972901707340928605999909633378171856197845021238696949276252092891283838611736896950313434042117708882863209019885804500161762796863138530000669093318099123571073050505494746901660998567349425647035739216716810481705595661944918925173017707376914475864647727417430155569814648651008783242425761703070752581519137936264565464748944205035160903117074927927460468469132224547698657464155659088440088369587395097190894111962512661262259223646010583029083257143555692274755992538094189282160951327540610559089293098771430281629177669272784766384882395678526383620729468586356753342091378032411945415798544273645474402468581702939047131429006393881858008228305394751673780097819168463162907449712950657061303163515212438836763719474267662283356741604510630472885083457684270352824500137567295479421232612721220947801779925355968021915680329331936561787454579020406746780318307605273714584821754361412586218427296448508641681175674314463275084719381994293683424667225954590887446664048323163070643384079732280327575367730125311648231341219188394701078191115235248651118215842791959145525569641875148678680365247123272238806320888978662926947889276714043538019961594830128611049782703145616432792374562760562459762663380105122426573340012118794876271975716356791167210707977304279493869475658848047285470479654153946467543899750496212341019673528186946384803997889717171413562473854479529360405988688798530777341692336276830568411152019246295708609314152381123384168848141079590713165408459339581155439297427184127162728400996085926057418238587992270620721864241723263410564641731025336945413961968626527242911369097371838040017096829069211475557758221522781194003206702860200460573058139555010510745280267517607110317369716071157210908548073025835336229989034385967781050913548919530855874686574482369434889148301462594667102890798185223679602756642605807087442085914115772607763507536252743463516364628389848751802685854875873981595624360596808194706918218596274769219089701340335826423664490801094568781789765594315579782659228603992630330424805161306038207937999113058263465037383543442564374648793474918350413254836174881398737299088211789954555355287064809853372518808087900955172676234530774257072084533238039685262696417252358589073262873599678315477296421493464336524891266933121522230077648345387730060383519452049380070088356190999941918620309082805785921825353007100312801479654432827146311011892462932965459727608815244941448099971615284306152937037161925465117792149179193489965248718923776057108315540121419237823015698028240362298934551599788064612713715911158613009817119975610167760890127440914632762986114024968172610138670128439473375768146656431573109821122991154116145645087740640465822668803357353982218828933923744374048868719708658738608431776343771802581490265017538458812021091238271025685537828273433400421935691231969242354672123592888458527373392413703347711077963650424465449967673649486086050482138328249498421063944658234938306657943743552945717762942678929175713947167011900728447408756759173847527164049936160960230778676855213508278554653213563935346554395228751055920591360774425205456442318115896968011910391116342607821407693399542072437301818772740859884775932296515187411486917041907825881782007549747842578628111476651674920287602122574745546917838179545447298904396437187149007114185155408992465608240658470244613873786010164979446094302749380645787819487314849164335120541187416137631254769436467888096218694972589469698276408909819777823594521495950587066820055206586429312273927739139844591660600320455636036573175304788194696388696556008306808694707984786422528037467135153391293201804476230708065317909614863746378421091981125266346642707366547869350320055518071988020398030473558218738145771443453486394842898083888494269162924498608161872641479437730713711445240328201153731166776564235329341842955190926544142793689525699591774588802116897814957067589603690493025842433708742622947927599128682101520069248338502803646016090975270807833585970756807745508287437353898983203727969791992292314577888881860413899856254742250841326613223122468568583410557048158932281955098765538669563192168571343395873939653298654890756331414057220544842304909846752925594600690978178920904084041506011633193850243334735787532348028823378104255532817513705102875661505980335162137315470329624054140462713807529587287282275963061424634124926888004185832312265722014969998484594867558489804851891615440735030248467748868391798618838535460760265347987415002678707728835771649480121117912569930621877348280840492663591117366671450559160814498115147635146183210061245716969045102533414509808610783453504189021419922534805824877892834547012969088440521148248336036924459696712758800241313704722709053820127655407890766125620288653704898477209985263078857246868289781786579101111567498862040127576660769228037529952247864800798591959099976883510337477466403443163443076544601220177213379689439381907780373042945305189276973604184075659028888138497231019403734218590417113343357970535234177878819027545704803507824147803172375750880596292909729679802130763280387639850514147174295226674954937465776192961464831316524626757526209882346869080928684015404562260457523042973459745985075909873594552180367155256159305901644731373591933887865867456470906412507161889185537782683646605936890095198868549858052611512542017172034828569676806963163565573595842778929360924889319362498506862166838506736607873917350690377079709697830266862002361936729666048300850069182906786032955487690720147947981677905513284803669387752803242693009908067804589034962784711863965245102093395404313531419063953450726918454126649166420110989264749929945483536708781381102667386734381163604285182961661215702218251046207098944348090190982965484187987332092686319804871152533965739387481143687160302963473902796197025586428113064429705492003389230164808106115710610349487806382356888504933169019771754388492746315272091694791113096461533320181942111508627207233526653442336500010665901054212422258913601898796722126872945966962747186198426427091149388172350175814362803349987128286586770441760137485487890706232656980528540883291836718313769789136575865061218892309494918013103016057366815663473780230074865865312267434435044844974742995304234613050181304898475552054851078858055290575361156413871929030431500710825074195627527244526610300904821908504711801838242553232600241267396347616525981026468995372637278845697830994735878917965344627414667644733123666619493432417738837638708671035451717006498818077076108919514731452267822922449519665791545648691948035179236378702073833679818272050371226285991125546553526660205537581516972355400679986292831816324169863920387221885690838093007388642895674654331628377330758506719409451847438767549992979937754818728471521730391089123518579314904284942399725306228584377809615210264429435398079407377385767749810655555296007343477554394359735432185445700458106910656200967611939186526981492684164250615011689517680901847018892040873069398332758418178046969981727268016591693990934249582429182008603009469949189188223444368074669833648054478625317996818680459940066040762337611096773561282258750010439125064414402669151053641779517414124491778986077410679877919812165345890547169498288474201451669874100738643693538289796101785258479162113356955020702752720190360592757781649134463665614220706927895309982853574204184624069901920317945851446406805681331063295521938101388618784063391840716970375931532243631445642945717693461335725834385083158441878994038193384718623857614508386988593671496189477109722488752412452226191518876985588963437856543494323192190168917420885238004557639425095786652889288871897622584055605848870385522948701322307516648745708927728576051248874037281563895958602080125146179989334685483315451278972915237805249661176077577520533373027227159954891228814478183475522548690020459257499077974988758417039329180867171924228647284329963292013477453301153489288721909977664802913492960101641478000234180349019089095521496984724068051429685214430517174747539932509576779296559673561399358319662672934913107312448320130068133159441561996562422214010261757062805715849754879429688619422466784572484427800050330338610295541048535099633476762694127206684560752950423826034106763546442088088914961606848327047573505616248030629533384994681506819174312632578615168516378643251672880299881941024642734211222911251028393492729989659939962566897973315816125183386584006353062382414962528837733967346699701287354141319872299171529404763718244088642114240179822777366253535149418431175266802717985351164718592942389352826859749348190033026536430385109579441461829555767423091939239456057620812323119909997597950505671413050234703702412646871069892495250226131631814678791148210350660167825744350120406255867725998175189752378811507602609029375225398049917562044664110867582336366065154874444686586490793813926833135252335143146102281619159695169853263761941978835457609024666656290824377839118971084932507887689149679197381007216138737985296988737926539431155878308389216388079009091607510953509953864697903097638163430081177103073227740428386712307065087980944849765873129646862358679626984129085659208162115117410831665604416445830326924658348116988710131124071631374494141758509779666850365845512587678099396043749215534921090519748502094946445403984154406785222086632570657081007731302680286882731999425781131862196339561254955809411443656943525881097281529440280164740152874081653359767680241996852501713535776073551052996556670357891839279222958185511992767812648773563043249621651374351090621484143809396685592857571240421982539492349870927538867331753979594355804941792178592448244150555735418605514070275587608493306287094767962446619542205822992550186686056469811797095653782991502330912502440249880854557711557126268860735905985900971494190461058091337549481663941136632819379424443100004209187756556383063893173553772177553450465120593780129056917791759009726443112037368360286819909540877873131814071867938364626522843587210167793695148477196969094946139027521773902906239678552439316914601759487572543675147215159899291716169697083592074532931337409439213902715676211785445780501710261239783329070287275250275724772851980798135653815716809866630302796595443574586549839807791486002857590348074465726736789459210532899891065241333599791629710592889641777334606661955410813477920933517483333341318613289221435611919076897477251806983277975503974818880611321434673604142030234545246304672315681486075197485780806764899051340879045184548367366063519373616298075658218777137808017728830221723139460548875106722182142370083367787026362651902045220731405334823974708400987727334680405427957964660956971455725443824242714738403835183143924747403685269507066794310021070743985690888104151549821953413895200433036022919436891995214095342139653712305781970561303795728882226583281435590914411635683678676715816247206172645474772662548905505710354603006272724196308001364346989989193588579469649665725468639853767884766197633178994384926001982195124877771374999367021150297316855277347255595103523705736487182931365952107227087421866946941114342543974902482647549170144833905042860428248232675624607264676694841466364472979755035834698773513874854579735335947229316504599796439520786410190799330790488316184725799004386402303124782569055527689296700707037352861369055928010619858747865000739146322839627646425054935488846327391653160718226912427713710252103514498363354178927080520603536945695834347333690711309154153947990234602107684997207862803257290134355265716072900943868611740702082345871735270142212321464827814327400059602051485096641084859518058745283801081584773176791356949514229243415152765396606577501079425856604053774265935374394645631867644027458346208825814485264280417638774690596439161830028227507741034589423218775820825498302077835864067111503976782307417225380756777434003082943429988112243189165234916568411002839379512158426986210858732148343471247342386141824205138529011561662211477291377669945322420917340522594713755410855925345667259677330418708570359110203948516895512633724693752254478254552615494561193474097527846432009439287082955376535623362152560524518237914640094361732990341814607672029222943418960320085138811290940127834298255842331031566945532314533453322911995714259655173052182105341866292732917284991226573860270275033655687067176928729543929775577862780975467705705827048772428447677711202073490267248009167282391690229882852948836657281411773532449532242793846325754632986709368952370936507936260980183358972936075496324662633745923734696070103098284551398589272439551346310702795337930806254656474390135446147860473819753212779557344706638489972976928460096331814057356964990583488558017547547008798962927430791621881788401892416697074364123739360166713764225486355797331916776544103068765810215417082378208483346094613449191090118741486217315122024427472188620940793385076430711978800472399981652082035348629361024017875118529586969361746385444949399640925568205757335477725342165840355025389103550444199283279977440455300521629410745645416408336668014179528509770152019857219791376821925920110812056281302875693526570869927009768144193671204860241570784332823670122843243652382382024119186538725725724069551452958189179988199558456255742277137404898685393039194172943608563347083303480121141252322563348523085133400424144738000066738533649272485573987545531347663575667584025522261904763249726913017676657752510040175192518802228435986066361021245723638927600850365897669245397975426852666365028256898044593461796962004890942021016618316956619331994078427893258085755800897250776128964257998846257896897514415492217117755192786123105567814914594394275070033556775907085853566444001322749911315625878844190980301406157325352269353749438178427013041944013872528625992549033679062979248260625920713145713430969399438275287096658866744223571195378878073378171397318900503519523342308179383757062759331952001525063502828771673661879620719040923016042157648011078528613893891023886959492477232734946313527016352603899067368963241847559346265287103765496992380713420950682781183782459143702521463423575187277671836054497465178859527405544264163156041378191703481355237439367759690633577606506778195565818036095422841630327648849801897102113134957183574231951073436435282363696029206332166220370471720046838414472344802337702549477566664401321992181415924151046637763580740798910154371679513408985142977721805154635018792185048026743907933541736636877332199197961115117905028579283195026055914108078450728263041486492644351226635488972831832359523387099187512860562473901093943552913743806454794863492820790713069014127015765214778136766668272016771978261551278543675846217784331338778918751952811173433446607229115974274114004353375546502178275003380206380502079138603090088721256317589828277029569411318974395861733397195333823683699806975918625401628986163054399241019294070541547147834784116742256366487173130669442364568700295597350828352276489577164362075589209672251768815466959462922394724017269759721471923624612923089275453891779623655450903131296632020890140063327303285312753009095332346178127996735761454447845313904528646569500609180232607336260543953473322169153157962988856999155484113811920708753244965885358065925803432010649391843698772442937340940256166460429808568062479986621703140555345087042802176567728933934821813907334111268957841090026745378162355778654954806550532906655159552227330780180218732694098836945852259670008423590444280976858210143159355355821504879710393927397199749615716485566775373425943548606700464357880291555802849589872377812804777649592191009053012139340425823381232640216617900804386038182729167276438453109748284548538351859358099040659081198771481238782546450007513867746717076276273118988301429853047473621684434613635409338115740195717522745020410910617342984611000563561302079363739983728066593405783762973631032637165824806491554852404095557944309555059837907959818992638269435094898575911615486534319494031425686762536800141462775544238217891652543537577638744671915862638194064920728967249968076719026686972528840260450783813976967901081853138603062178899521895562084814665064508923386976125909239417718972403709572660522429472864176637250541082092655590625089263534645765848067518949893351419482877511880639902681481532142833709286870923091502713593908796658923584031146617509245923527588015299718485906813484717256528934696066918716044172092529033758910467993673359252615989713075259094792661328498495628265652346703673058118003949529280521159378906147154928750864270209504135927767008732613050130275758680775528966692646533607726378025736785797633396621749529262866747105409339681214413434490421423341009513693155934076304275217954352786958188365849590006932338310607578470138559967339233991837655732979687537362173599294424574950366224182346936217940378463082892261778179010289231838774100412327090636872193356123046229340681949320808140228195686275066487916370540640230157664094604575757368597533395603254559902378752295750592582754915579631345116611312714350836515754603038675393750826635328729722925242765727168932861907219367834935445907386805460802608146241751116493323192153734415826794361790337504359496625763969925648408202644864789147994110041781757324900887768067887296719015217336065049301103856773672951196338161717715700104898051797355150284897653568238853522956088736767011476716403094011744507260910379532239232715525182357700764052831274865186107620120317093685379276636005242409740177813548385726436056252629242641508917960942986337027687234402402265232849819575719036444410679901315393590259836170535468352130186536770872628269726686387699030157681324825360041370276269757768685364489449218623455875046481178455965756784408880094562331321132521409849145283716780800128579794911770087100499058648599566378639979488297854077024126386277084719882198428077930884343173256067991267828434995317358904050046357360325261380715499342436118354504707018002788405507895932889898292416278853311044602392935521904298039454160001469526352555830911113281270361505424995684106804095885901966222027662384916337941805905693825927477367987565205813317578184164224248443936739221084564434622718638350516412034738739098264726231171583282492569807325743596282712715851933415776601379487383108359220209812772180981435042656474795224879579472520633675631309996155898581078896650686881926445595675605690558732158223312032973704722827015161054911714432108737377497768402875976736219963764756508840548430403167803586937044059299064608615078688305724558385963016349080642333784084015352617711524539971909300171227870633449332344863224516952482901995282145197706147166091213601992796615954033177544635515220204401982642778008918533682878686919545887637429533962306105485678063427816011806337412000533499927022765994124600434974308387648073431650876333507107455495108056757466683971021411720917797453885393948457835187831672179145633188936768847540645613864838783520262305201916114797520168626812337147652479413268237873199273332529753026942359320526523472119053194521048288656984409674203191263698051930975232055811371379350140399367364369667518842802624322930912476392349063611179431338301060769851284588221998167025854357499886891179773188355796533683237040632314544369388418540685280787663646335704874224258590004923582528892952302508557754014307784816263703412593878353495359344407489799570667249188044763712926731653362085354467616219880015464772206589147027851523899156504060339558463891678311061287265160913490056059102329829169768305467628675646743416384371267364305697089018983438796018943381363720653204125136688300632830741393563630879905936514304350113841314881842901694996723763998762899592800144576154708746365293455275012061804970503558984140726600437502547840397698786995457299968851021883562356249437730090667867178074166717926073008668514723166773177009775134637826125469146598932940929265743761889434182432044809383911034011820950716698294825474551006324636805008521523451231543307775050380472285060448229594834630739765699151237546737101081354255919006692794977317060889444914678565149440247998911612272480761166637420302797746065013979336214809973958876075784197508987230925476078520837576079356082786088258232618827594163873335959629019954206557881089996588423942672064847379433256521846157370534907713606828188239301858605915668036603040124203849798770898183714161742730127461075123810171060122582389289240870734941547899692512304057352176445709923401265323324425083267580048201308663463715396208613585556228995020335213041849660728079388519577320479354930548196312724385935271148571756554704650353920400149552923733373955455784661492721970709779547518723015687028904924648488984401525929347593365189389911659856159957922391414421230244408485416836929324913233864766804495923915536201486950336328642825805127459066606687607522344474254584139516853173131501288316487085368722354774084637934773330964800997518839174256576301567625792647915482818322402661718329439322737446069688932764996023019953540755380566465476954926907791389537836255940734190307769501623546860802665103960106631083577871929455626429557222113063371270529208535860325779732651175414821113157178242888909511612263545083856903680367451162975707171751665073070923349032417303075142811787729375084326609174182201364681758292733889163221932617889352133809232731851413714803747289032120129055794069041490231479107359815924920751505572179605759531754317702375557339406195707220264293049270696700819094115852360138523957549737064672794333220181593335329133962195482017232343525682538228388613891291467329095244123496817666625518207839027388742805755242883474594304013763861055087622055666679403176331497129684039000562648904009015803245817686999411323563061472137925721957161611756262547370505170246264192349204948125481490464350437585895955081042724476676089694199275827419796892008111772367473124105349872714040034335670531030316923217658801961170239670077195055578803394635385407774757524855067776089917196525692891708734962809673844025949847459666729386188304697719901674183663060219894865196191005158080151558196641688940639777218195752016895727002640347016697986435236896267458009127197051641865038878184219200904265797879809795378481676972798758161611780703002918935537852992633262507919367316730309840885089151746754507680764219056425761290179198286892016591396515322590708620596470812771253087078276566452680975299839559465693714728475182835617654017442730131884755000343532750256889079959386156958276030757944677205239672977358227258060451545648642415739390536819701742724572085037772395254960176232177148495972806943663996419119487599393859286902923658227727491656339253255165955997931842420897015350824812649121854757392699723585398473428194390420998587542214936147489925239504842297179676469118289264326373660621089637340463255874155848416084123751313792821891250614797356659522364895054255962284607815555906852216973547987725756230568843057978363140701738332062458776722227095484763534424532252770517464473141654500978633792789169339920287089839076672987784494651679061894473256388059330945109231876050609748966399730705535592709565176154653155132288407723118458678781440716414068534074647315206073683117171093078469576628440270138141858200520876687414382997740797933271089206026237831807314763539955236873752989560986770743195639033354317657102138444714796943962068034812248152191897128550591856463770647639040502743797260617984310010586340456353691748812631184733798471692330542676133934465237159268379839446212827724216356773068491838742000039724020738555704614895771018735056697736278347677938109790212339818895614870891998073763936072730617803385060710393659057084344907813376953960257337492072989702647668488412351082812909521032040678382168289440151413637765514086120134838255584342923462764137008634411955467783682538395250482485679219402204952262304726747260867500772106106044867133815269666754280471896487069780247929068892521680050892806128269494935106837217459689146365783507311416446477612090334990238001804144416354745614195983159201967022748426073643565223636425344817213032641362742934681040873974426517402077496400984985640373468374908970374889356352006798707646856601229570211771865347681684024647148055116643942581081874627516210967165555827333008907813100070535458256132375616816402805770463013790225935612024602353717085962843842167908314468709177036024105306771825891263308706981922930325069352878066224008578097536892473805008939044991124462527317226019267304962958905990052425611006889910788798934552484896330785503342135682067402018383874886141003257302385810940014507048439135118248003002038537702548411957628071591768319623000316819724776629320558275227733602189933821127166547979341469675808081104475215382427519229288478651641989790436135706323972766014264989804084878197728989182434057405212905898546056897472843903710294019970247618177957121463198167657601331162777373822670418007804378001307947533004824956452508100681904260782844418684948614489693027512030793105935290914309198706807673942167338635553052741338668120394096453123033784019977898120634249030920956917031456517725924327123024920646049074619098785879297224336742368133815256349784827777976668683195126397089912896084620351822023066573839298990009490681660994062909847032658933551195922137896389682103250019254892767995638134379895151271146327311525809845438831426895523417803792810569407637151602835583886779658095752842878199154123112418386056126863017754000279101697597449073549437008089494041087960226788316949042608459071016376353317003668437859992778707289783120062706204105707434764994353141772259460607786405859097037340989766609088807872658665052334091148993582797697739088316534837254755633091216822267409301281402439691447337527906259514363430408083574962654130719671564911214441197891115218340677937202710817509260425623013328638868240195581417705146323056493350878911567598893682466230965198394581200538875425447537040009762719181988930394406701027364596092329006564985729190534453198169282895361413752917075920603901240228791561379734239612256655489573043209080407897163739035868143574867295641495375005864958093615936886918863567544184789917015419105904340963627946030881609394384725099898211585113116397302944601751215184858609881420837000735927669111500930622632008082992668708950028936973179098790085545850839510447632333424595963509298712877981888274869622484864411409626427756699347353144469490874672981715361237036772689466154807209742294044505877181286474714847077124886400172406310629569106935421999729805495213461077713712972567098147807944732025531515156126184103195306396577939909353497794285065539817053059327756395980500580379246713444516243791420717938225415224632653998117013615322850942552596371047321024338122637169299451392624588981796757040662449204240545299398607078313323492578769022823191117194376561000982303944743319003792399491436305620806189287562844011414890214291002857468890916379855105798418752881735503554291035249218873241479746730896643300244934193565045271710779460054628031003595557332368343665436148078571309808066264647461013861537345299747868558765422640280885198921132868868400809923158711968352805586900906894597252711245378629340928165415364455245577851148209368897463124266802181817267429126128066902583269902995904556943937905626400696052336497275266957042887319340207434765924679200642615310515763696011390581251732707192493903777504843498728493918694755915662444942714208759038607886357070523710628076264606807783703079210375480979017371610472578775290763748295420846955144835699766741426755985783082396541921318491845098238344602628704083117225916193851269481000158236722774194376495124201740101267536756606194691506443100339344377728449697967136006817431757249999148544102310722526185116249056903068894156072656266090844979487397869164609002881944990076138339636195067177021348628510640649644643624098200520870100624649919559198345962327928111682832578375858782786060439183008524068982789547723382403702393563339201248886618625326031734859511610362042696234405585073417971813491046930262235375064205125497897920112197959989709633658984811904358380131819572637458218548516974383482167898155697842981670129701768283334894194364288918415636092185155802505504960677333497950267508795877798974580105342736837462232670040429186709214268573840125999396010196066988011909414646271646961582990067225211200663913975945346196727276999494257432014732087260887066290975326002911436114610175372057893828517286274601237415521428128071443089480262325388255900063398547348040902568821496194931325204683707615707836573535645892284713809153761103745375455798378641806300950561235243544391271539003030437623387435655822142176249656858257490688797386712098326221400055775853258925453236017409803893940838584583146857875529839087109851562857105498066555264058254725702007866401180183801278730746633938875736358579844035688767656283497675693190282801866384678525182862859196263953372474733105984951534896068706765774832406492524265972870334723304967448210778271234089310138007949384667674224885028182646606721583576940927036880860309370322074833222503934011417348335609711868473145250917487612193361860013964901891965263302068725669320997782278301492922093174244626968882428908728570462345797053029960941291724957254812203908438039460254843485251573555239394825857897963812032091124212939183658741113709679283861934384897283366058161009006200676893853723127874907290017174750107496915083527748660853171576325370975896029252993611361307639881900525187667333639697737889247852441758841285102884901606275420525232569722891264015960681614214080905506006902957946177262827659033973793465378761089395471147264371427321154451221073342545355879388945185384452937029496871427267601648985591299861868260459964173361565836044188205237508594033573931652138907536592443356495412513798178492197112147132578696609161308272076438535051699562092785828473867542816508783152863259189971357847165978307230466942755780265614195079106273391888094864012555612332882004203661798684824559926534958853204928768748607036348956489748572888280762101893459634103591666822974023033064894860734075136018752403267263893916947676480627725602733860802665831901902745131026411896921991730385921149061685649539959232824486844447721179300022774015630057446540371201375478843295906036261046295857433719596036029634315897917042742880915377654010102737897354258498529972510666115702064212007647936948220434777564358648339239745783847020073838309752099729470404244413635207569541130832432974272462799509345097406482667733658103366252124896467553023607100040531703431871718171017386331249523831212945431128288722630240571863724313686254047843124228288770938376558708999103603604738413806313528901832456790141361950059195266800536776829997239063764540701341165153953957174661072101763816277213718360513914657598155251293705559329655899636057439027978508712429227782933582842488779346904025413030259518867098154968801095984010719051015529507369112140655178047105672570546194699831934343322549018793785430274546120487241545175167115214158896359851546275945859276466730377074026408576243173742117308543200529134956325267447066982642325177067308466353243862070458053451346675848614250443095282423379583220153023755662219644959918199566673747323434274421970277725126942553393159906174106912763770839372316139575529423207019162015886046393058015977366830355874531137632798291492058340412640085758165425361610898610671796796788993827584460685742661509460924646473720325112948018035900147141342209947212504161544767380958826733976333774462962048626482719591339161826131445347995816433520826056912651214550485509299208309784027275637690631821281184746271295096487321161926626511228791774146830723237163471262615303761769350507082508174354554818033446539080337218846615076157566689838738726571273053490925351717586983831630703459767186616530398807762891591403589209929930444486851431463745690442680467519609696466830981007546446369645535695331049744168730088451701968436341079991273344486953826090265877123020213405022876909154990614691757703491900467795268774207472377523506379932169721316798423093409870149519304075786977221137374374882287789398531473708277990603647440826841119419589149363679582367023014542839748946093020976545528282848331963860863322684706729304448880300958989896285533557432039156708956267915013501112127257255626102270747222226010231539862476917052457014745430190971230450817224465142639500617807954140785269120586911918492280789697840637514990402193778769651160368869539163893797237910321263382788467431257309791626932308542931404992539251143424683667981634409306406590030376163032163754360917497842622836862417768203069471755892563245865944608426354209351735323687420060400856434941156841993627980730826988234172556718345007554210521158618550729826141432726487513262142543879430995712491058599846070455604695927974844649486442306377605081624903689919541917406696147426450094121234681740763845906666753630779082482697365090768647709018143367090474555607741785081582084106863110644158884042040783260285942279402946328044527202569899478829924271164943742252659902358485266567206603236804003322784429105650976638761969868471801246900713761060340226512924544734639888574687864452133299977283615301426207758895511710164724400990923174644219925759842619381872611722475677990841728097381211621150954448672876598939814177569595559113783065634729561696190468998864572550636984069823013936181552727350212622032811127905513639872866028677540008129935845287774857050193724397814610379334226993802388136433844285397034862638908270948440868387308002391442773231963428562255061778018633533449580569294017967600132427103866827563633166842602955536003901412037683232054490690044638012017040964659042885124909138138670645699825719541947784234624490431989178064381714444815273593982638625115109837170808556343237612112679493581648083539016741896347708509037649146516464367965170825774733290680732894194768521487609736278848298760323586652428476761507386105071462914815862976292719127553797497981134178217015983275077815654732872964517723869458971590933143567813388464108123910223798006437401569555769386240707705466548913140224588768791875801153029941844465678541961715322754352622445886425724103501324178136810313131245241210144680755552964040127503149815143693506168522847089729395386421358874650820418566734926257115790044631563294575696418706717050776206478079924810424140615453229529141215621303154222486799028909714629542764350063748676539042226524622953629725065711023933420828446749103441911758991491188902795485562361427622293879795332563344633669893902997981961373596601492380441268873533032555969074930589645748741957522964755571532414548678025943078150344310850392101516159637858791448183270326266630906890082042264466616983638963617649083672775549653926334685615382943138722935197986204610219578762677524813087651263463436456174180269052549144584272058228577705304964108868048171897290222122939088666113680745027246895174208426624049239784941187986083457207168655426471289294209376911363568474377702593001219547358746114363841397781985843093453008531374079684701667207248625444915755316952409536222498766107459602456315690568448515402232588273338835256374952962123435064938822973768029390520930633653951285764048254217558331248064541952888268092118765685470016835417334652553449356311392693080288284566617676770539104777398248093429018951665626496991433031845736421141088584478733760257031459509635531485837889413389791551945756619434896635989313334644152317877048277094861781919255945882279241136888962026136066200503926917698433344162744115790457151757371572028579331557075150803756991000049009185652263594015894809799054310032387033076824624507008992234511504021489547807711946186644135748542441070587190864731943583708556040870235070917334531172746225655016372616367583971112638242449004982200853998556653262817125426186089923675134011583660572792186631118557804296913241560349769544265367276952996790286645638405549305034988123119402634992918161286242592722472529354598534213254318904966898324005355332462133387084715680465916448237789994369548672511819443363169867483604276289368339559666707811677138236485369860183472454185568488619093827719756012139724768259290439962941915055163833097292062144995711612695809176476844302381904434811669462941776316992223254062585604156613440160455045015388770551211951282404111059384517028664805930139586550462769494873859588791940465064956118840759045179404943325032773284060199567719882381038124109396835729644710757693144944418297086111827555012355070904929688430475182776991464412810828001627751253349987948534252196822242591637857283286123140691852365067550030517674914620235325579935632913293703072225588887410507757657583097743284883249553355814688103843901816044938828674495186269333113130761649550883908342289443405005052013192305134065643980611048755712882451306014714257371234108772389467844365610292342097856120176461397655693447615413169552005956100848808559888771943091122033753996059058992631965108626478818922036813549291331664849449344703416911781869456715234723460691527446910619091085357377716980472935516639383707459757895678713686558894611967540897439089662345838572171533243850915853935281707798593926075799170686686842564719496669400407053136814575114010846483392067626587997412908124873301854288058665382698873713739716693000375819938135266031817637703541560870798717686829728708054206160367028612443244493175482886141175556457132929685210444771064985107807737689040998235983840416009289792451343888558285146686693369349163828181653027037968445233334247863966939241114546220458438349230012869045652448005052087319826290630516715736417994308062229583024779682921095673651579562988920122748150426929274639236165110839382789385062031172462874212189984323428341490324413988831021629666315814949726205717055286510274396762634123438585306653344439226503935300463556171592464921059530406681677039768394482638775893979297487034695457339373674780841560052872185493214079840344988204828022444679293222874233306411231830960135416347428535617810591057906888203574075776546804446694934044689322906220153197902044985409036492073355211896434960623382158788523635098801407134053617720046304463706641168728438118876299237869425011431948213352742838765543454877263791821435445522040296152246453133154615846572124950525804766046509675678133687976496014217196872782523454987142052142206448951466101926370067861184844501022382025032656923706594608122127676006715868170102219385537974501828083985494748164702065603101078615721362459452591711992241155643320092424156689890048977796822269091476936442616966130527813053326549361282323670613812526453528937408994082856331815561577022650925134902282860503086239627232466769393004334420811345889483670829587731594100893883198567147738509521938969346550226573555552501527523590880985187509281745851725537912404748615448601585544311576058915789267520518007941125187107741547097684682403668954985400669574830781459842609305241496579353403630750459046460739180468077464426648562453131934310037872667827174003988425201249314662978792057987677624107751521261719732175369187822333978907709624981693878356443800365413625325059317908984133402262021550910953881448946736736814687595860594674746751166063658156450780035664498949153306813165917027554702888042391711248279499300019222745879081367062290217587943584711178865638683198043977107442632345808618160001481505358375562052082756925861759916351642900693504119066127169381565603765291984371943964039907853198291755667614177371260956214952878054268082735464705871253527937520220689123805931489748909369926480766256609253160171200864398091203966595693760319201215398142620421239853457951963453574290177409400202560262247036716806582296531719212701421411440848158417255309263109302413606713756312876917150868284548327772658990904315032315270804420885154024037061404897121273475993108009064894329211863414915803447136931343164532430661171250436397536537044379738999193525565574720129335961245439411777195548648565447266731503157559830695851158037481269189112954429234243525012156419242133298247455822589548603103806459895092726228040335350974271022745746132712601609576149169510021272086486416372760392439825769742311135647944319812915740012983882842572121314390589831735651285217617588423713360657260594013696424273363637479008990422752557192027368057469911357291374485731213686234015698558273262699675392300292744228131265947987465904526634207564700776867322418003622838760405582821771036984597404449609514004116525990693946200660693397829338945387924808151977386237408653634260669710740520231811112322917090327224108892526317959476687867702634791326865160052125464216208292566155238567109146276007979927468351648566259661206467335718599520251757182984903943922372918695830030326773533984200948784221572932560092627165889274200135635072928554523711414037484314879398869455962613518984032191360313792290018106540442903398575925229273076640451346956877309173353863596508382378240238091382429996618979799394912005073969055933172531458261805070121309873099093753337781172520066303756025332582275680611962749148969863954842821647433995146043006947891832880416068622514430709269307307224090349932913744904103529725464335359078014957422763170413456517227706821322203551093369997093663269510061234168329928409654244415678388631459395244924944920724974141764613795158122108515672282025752957559728680034847685232439012849427531200254937762410582046711961882588626952926555785851390633702479699074125496600769270382407288236313047199062597995752253531256981462784576024152769755476826762065399497561667655817073733876395388547573097248541622148508234063894659347386705086795490549709342644379346505018053
|