PREME/G/MU454021
0107485264226635156525279903098537254190855884068350312537706638844733808562593809978233066925175671912269468181517705656062331204841424748876993961268793551948637744049327789933235014175843368261923131444822770552792408602452218907156454663432951318101793080245636230503399896904708610728967657623413330821396490248161823291561190908496805817277849912645959006890068104260948164425256143399434302019115567453700711989295423888262713162617132954177141972274371967915470136519127072480873222851912047341556300764310448335561045565799088772179771512805300470875307879238440776767237146593615718425304281758995069372871359013071014734470745383618229408137187426447132919171832800834663892771518722291732620553995392801330629626431165505425323462844627074901187450313434063315347111405605549474548149315051903009455652447158166399604026619650359053641762118336122755906102037163701415834813426454699211959988588185024443435858129535710418717995965907389069946766537185613444876194615336083788851650242030436587603627634289725293342588091328591970569978757900009219145645064744065498284470387049651216656806746325459276536179277646488962413924449608814545021993270501051825932284390308635580381073273499515858743558276942055349667093505542721753436274169988309944162226237672613553307694705806882176395898910978641302541969377774938249509292299206004405769671959841690396299664719156969840251229665284925888202808866485542884663529300798966041609676360052587399444435258277565550944396325605380355808338718004519207748765695082548543033461235338260200891042250664352149637273996866559523369088836355889399923113907851741331499457640658447103997331698905666551949235467409726672642502557657322527377037810032693895374840583158425841081074573626107042684586578575230594811493742764782565263220872112596333933128536112206037775577713430585793173891778454205020549705676990541062277224348868991828482154492316547149987883819564982611370875588514659224976792112229459533011690057062663774524933030894869901368171942958833600495615950285322917616008676031059835609859563183210942671206462538217589230110673626190231711707711205283282591078381467146869961853034815117348492155153925864796059998564182250225816845529025390095596044233303352197231918981526286955218177664453783812296620529219029380560352527329643184530058198255730984605596794329841605120906988497587464191463407706435584072547970560349873915775055228529344337459504666521529752185712374545529234031611202292850747236474586067470462758348775623821414498636522245399644246454100568656633322803477395178306077686582674574590479183031027065187424958082082246085372338428511628635070056378976638912489686715078238820980704603954996541438695673567263072399521482554439898035934769591173545241506436389720139592879962577340383996356392251369067269990472703572998486031365493537027444773553738007459756888594623871635298856196197582319956824441464054613823152924293770335497394277608074933258060527300627546752253911529833301774760350676868923594980028289496562369271241641043592753736901173916442723295767816128908810385077870189248923371525852863819949980105292693759615030703411453618763577435626006029619676169503539857980468687028808030233170587988654929783208301249452964195515391346932480231338733179996044037053959199296311635232134334865611285021631603546820948286957754110216157823307055681846952764553413083434595306449328799003235411106282875432361807583991663208470254521472001538051042695673937981540033546524383775690208275972194457900342396886557836914515741783590732078904593258142999328086018696040569479481703452486632944834733201687747855431049598487097293059554983440895597689491286832427254301624561435115301893475650252329491040618155793771808776753662387562952402090508618329121587567031741617218381241833779998992262609672851696524667078548440720807158810705436088811740764711125203900239248565698816853217778148087223662364742700751776965908829194238752113374184891336425124808680732620665489392507575156625379644127426238997840040909288219679489514955661777567296567046925945500436636572217781035293187483301421841495269787134778467545782102599313191680374480745935091889580722440029163423710288725389360828497414431774418414757578064358716384472538934537655938520279198703719719457630523231042097647378827531035950098954409430455227392676472040107578072390451039129336756047345549055711849019496457430151738056297421005629781822245739321491987225480599369177067967438452179680477061031585712798617073867426872712338990946150667033907554976761686979668905870743318685140254660890917893715164840486087805594681728224591007568035048339527345085931101537073076218848403043430528117394605934333785950078794669050930517664094144087035572145876281501444796718326826503052230180539289694111585523715343901659057492946543645261115843777484343155807180779717767684891527696716079268196794366557746579513897430255941548203122079047199624435090860922857962877711723177964216492400518572365305840055529146519131662568448409690063812121710561222120572876115191499283245440324002861584249260033513848939582141913944002315837224113174629438960895780326469679466514568333715623433598829733381970785651338386752267058117429783582902954396439845449664374833878909355860594341152602781865485391481662472517358070739475258804953843949223878434056441708907461405022102731653139396731695603376883787402870744794117188700494868247521361502341358596417656575239547093870701241146419359603001879670499552882834334020538142404439118984473312582496225325043020819834940696518650762509764034787773701329122150463986177984907674831508841039997401116781750477252490899391511085691692558427761733658215734878584317652615418623992391227362754187074318877005274625643184763638481785159428679072683529175213369240572007508108211586294362708150933366063088942283684404614514616561835021733523355997362355102411133856750330508687280137076162979451139614893338132741541638962490295687330366839403524442610211063878403161002261476733003141027180956753321950167086393796374186983803095929258695440797737337487430420897369602390867553160816135557418393937772090098874020093260148126472340745249504266400953230937819513369633095314917554686369936319917677870336723052870276454092329945622397396948538923386380109136462716700205234116749131857170553856541869395684457085844831374506959534390479661905625864086162761472906920056012976302260677706469719780947172111809471750892902240916429605374658228137257438697304341009864626160032037345958452258214176273859630903557806682304919158694477662628802334007304381767425674121223661855308220496768764371352827481992053000712627325738349211948060826132012776259560092586962296615663292822112658055915600597217861086130207867189283343399202032141308155165214041641685253327213051721187928011209364748503513582343742749227820637293714995776809661744197094844387196744809347754139503188315630402081192262943934466710682597975555983460300741026871883353423665477353525385755702461329414797374038389207443640036584780292542569391562162923673041222603436586475038904841434259397197350879042568720771211814963480941772877960430238554147779925545272816953161515244420944324859580205911225151751898157293065736649552556144979312970707032657919849993805862548753937003662609187401804390435693526044742962464590701078131974704923308207861742848639050770883597500499459169793983379643544415388184165019076109055239301238395400269173176081205086402895508297984086400223189784320118848567238820946066807305411441686168574848181348969924698736452924621572812466838102293876814406826422979104041290819860553609248584804884083426085547321425026744610866297017797925339022172318701249172478123131593788074974062544223442684801451001163132531725613802566257296448057458437857841883256072316897460835808425717911267936410970198423566523942452524011722085014988112927044180325019144016597737003739693461045702024306466146743470251442196892543370196963355232857463175966949460072884432984193229653128068621875225752782924631174644727866725927950515971206560273029695578079933910794124347190439790565815693764896398567461860193297352036811333701701308535486293364057593737677530811198872475230378092946566676982137896083496051572795311536771082639333748529183575239597674294387059463482831895662356504571068163944250179159407716350128841287123485299767032824289420538624222516472369523610817823804832368135034072051641188326349226389922654675011504429893526118523894289593583274765479535945763056169389875051061918368918044732771929650149108161936678619817721309643350585167927973863437268215874279401814224671406787524188621742616956372895012116791178947132038503443034785040921671315790444648786862302656630735544760408660130999220127856069655608271459888790132389112115063563334853679174367161390977649649568054041243461768337302079905277599632758889886954694990522394132115988779822805066312092423785667853434033669492503986860204979539450930019316200762456856310692050116427271397131849914405777842248819975301423737361442590698184566966673193516706312328551334499276893321428680257827958867714739025088232792098340993191393011588451143810778660601547236484529301480185814565166604796020934978787113612573158397745519339875627702255446751736928829213011046784455210627919485351084314474457945273091633810003665869638424041662352926148866653603878843682504352904846790721957284029031787264197839472558678269388369841568573940203459340410604087493616577168865764614095396272095331828174310604997803328242365581078718864486771457710431827120040878552578775937862214424882267965074386080362815389873959461158276432102157091465776531780543884838031298490592742310079770762230508452235691054203239676989409741828788099025858137288790221003492589090531110971559597623487858376993695688790801368636084519317747102765714789123645099777183992349994828955535346073874482002556446012570555909821494752555196828627300490082082002024394751426589900485658193020753323232919077905445330476668814671867543624198202114686520293007972998203003113821631601206686053237606575284303077705065898505491981211564242762635323645659564557521805902068765368444981338065697066675071219708907224093504828554262012845685320292725988927163278698623952615306354850575728201800090177678558789002466658508224289583113255426784041373850767545395027203672301839625396726160058456090600928379136585319861648364350465726741619904289880199817138115925495187054431681356994274613174787960383313624715263023870680418119845952016815299785785007531601094056435121096111058300088397693909479459588834664121285058904184994459815474802457151150737740325830657655669544297112054354112982111121111825668951086962232511161995647368758309421927922555095764535982149923894348880334780791396164742993583247878263139331331865592393524341847160520818563662558075596178610060702451315591833850404698854917121666495058696097903061220808138583122218295817809388211508008081519241109854448971325126208419119199438385169122170639446092004734003572182318068994941345851166678134042455192856755015682213616617914280761227532754545939323281288991300921455135740306740424817977518775935769222879527646073132666099222325401516404473004657686896857254760270215362130689024009415912692592477998633161911363182082714027148548137585251004952840387939971163392274641972552673873972538092266120567738404511792520922873520633463506474374869667655581895744894170653810976136584292983168972619517292653319933874083503106827686383472714070544092807827823766793417299015793982573236590892177675299970530128979379941909447510237322928530329998381539954362523254183670171145004284236811976534195305311313701068387223379058620573819409360902756753691852290363570620537659391623018020009871039778352550140531148314611606417183684480810537086678564105453744726980745690281697417318187301271141568060983618136571413011960032189355462838175576663168622584766163406973612222738346809964212345315517376399240179976981747302988692032072751875760930978965877716065407158626175849275742530498785252585264898267581620544608512130734110806642273817566654527273040177397058733867815723979830704356751397210385889464209133017890555679567615195097189536670950491074478464350644232720858571085074895426215074974950956569927269932458440219120426828882488587545465233733791747797300156002856378269662425295786941750136478255909654004335259159027297714375164974678554389165941857152546265440623252441346485280435428076818909090216491614839848321723500378824285033283010064679608307206483640315014496515381543904028200787661441351360648630579230881910048527836325585793014731366876473990047871492720364807713988063343478460280356236629621501916892409099910206107335455882042821409860383034244052997867913224877425262036325302705027988260210523030151506531663634687188693868967856246889934520703450331911863835794219109288114453860740312429334237183822276171260049495212067505710645729614580968003294387937593269640716082637724743147790427709135967195578300085288956950900129125978952154967810392624153488483309040565405236208148128341009896055376860099059923791311536190943799871530942777488411903886339569711522510407873897734261256866999994225360896353964216230535047119117844383397306631713649518867418577061768665805081663457586216626121805913727853936069660698726580139692072635962731491264943262095368116622729974867436800263168675821671341328624466412093624170868296938761046237358566012967098564655729426587956832214059575605822586772749643886543697591392289250607733686154989682568133063876255593884639624521013946150264182433049478486907821887798337948331775240660992941248592200451280442869714602912652202740054411856731001647824466633924891930017468109954828837446034176111191114525788268035234358526824390540558543112235924845773583717263068770811058719271395479037204137647297194776788872285867279641387852595782873362443697927636444288801797703699222554250485147777840263181038904445016042989091678632181585845741331716730756519028135055474652534078945727721089438414281565015026445836177359132152814076472150722858288282651503237194042191537109425346665633956122581532341262164057898233768950551487908549965944032324035355342328063252377783535584624622639320671922316166765983086744875486379506933048008189309513934267613043235466891492112061516993696083825994737317821550979353625572470533638554217366321786822333791041081833245052502064995682716196381777883952804062115551019613946699387488320037315084564004569338423059213191603857712014768161274523749568939211971882520301911955000857894464301107072842418661957349372084242892415711443549680960628156645684502735837994179713294202426944480184566544583961301660500676984422262358538845611154483251947176927558883045442742500189197186024042383277057840466709811844189208533457918789045742471136506930866149610871272172604973621685582573558435245503452959784762142754878187287304159208866544558610931171634284045806641739077496210105770044295306469340093866646037150297242656290830818380500594848665082934165227275912434036584424365475328411084406117715183498351531349915874517145884351551094754701758659576653116590797296025348643172903102845568541593498635723779577701454047251195559362320782618030227981016916065236358540919663998224314225992907899648636918159335271772863985199150975080382203288436700998069910456970228884435410121429193507303796111536822741542763516143918224314346308398079675292924429847745639152595540727048897237760267445685213622197456571660455521354418144415151541626408904615023010943304317083129491814706020763910256524814660192081814480571639713307681159282983444623272593124785573067154798701510574744330821655209365326772172793256414827831815991965429346251550146085000758603344731448212463806507413658463757246108432558959081470416822194087191884622741074064720191396298896912160295748443508794278579352335873991419307511291035894031682304552352984552769565457397585661667171995244330154216139217143978567401081899469273692248430088455733623086553823510649903863268830144772601746548624900942372059405825898273073536958538978914726235778950795410868707019769507452166335365745549124399193659907242389900588209939814379129771831442955637689511487940711733851983197928154152685765463313812273489285375919165866640804275719986259569385797997395607827469063984484581926104218534273444319993497165585847224232387697586592935286198728907877749394673062037286972060877634243502954916381419919359972868071019712288614910665410445129094753191685049010663412681692590182156396929682333854120756841503164731907049461414704393116525125926784163968424616867281564167519303416904008698558202071023617713058273638891292549266917929186108864252762979549285005297191694066448952638173468546010055534815192184347003504040188904651065348132384730784118605896839902434285935003428264065579383656675508638755510634841704975913068207153504267383565726473811189193212451268896182908107465767167597555311516772812060601906483986647143243184568648900960442070040655422372872542787080027453224116286488977750855721658440616995377313879555455464207212217650438842197697667631622763718301815745473802993522941253669237017314919649251520956066376164657903604643586216604908797055239299173780033660904476816248673798167231628007881132699575394756951574342339494077390586863964688425129399305509259078528265498949589588895932171057647155782389891811454752492207644415071027028845980309458796969407744356429042654263523735892762937514532624533290401805200702228434409732377477203540768960728197646858953952057589543175633664963615323399849816342393017035390150776300982753616975021239553697447172513627820831463042486377391614951028307435264521921341753701065214132577378151264262496198948557139471626952582530774314269346986229683696187863682387161991628555747635225982420512613475317910405929264398127658947866762119898832726905810267409546416727414397921589781361543675925476235438240898808760422713338322797052181565245081644386726261337089230490811985210417027426515891436220775536609009551862025395816935538323101166411392633986440299366878069730554295784183834866605927972743866863080553843197077730305562774764313790768815380425455028049261129087511766228712713525675654686807521997609300031697388361042933684066072318165529246238810712598143062964815345288329106534924303578689511007135995177626930906643115884534774189844202311082374474399274023677526931138481057922584641957379354840575961873144535218283634742727575793044357580647610298397131353836082344229157858250476554002004574152690896345519083651025828877021328599318511333253373864769651956112378916704945119887566380281553621648285717118065460767472166228235896226387134423141659666206205137793149912901126552180666184021805492059818202832313596209387036191947138274602140594246128889880631589778199292313532841530653803075270748889022022018315533705677014090672212171633199862789707417914663011097372709655185237605150620490686227667071227383316323946504614493465396523577258132892825512235918814769807724722530865284471533046130510301483129154587358125257002683158156689203211168169152572036647829250344610796799833692264393826608959040173653547646631245573707786142608029364137367667990245126202220857332969723989469908094114393818942470174445618790480590970879317748611006183953991215558509013912289529460701458996307012276015839511656937992338957020456390051178683908311022375748203316534684683978122067429729359481948605418765334019871839959047423524099839586072335674956479208953652370673574831176264667358252747119696615356450226958941847589490208152077105216934705991650510326797699851042045038824807045710256274119818296550624172380033782391127257597106928990094118001825162388764789718171697826316581384232287280517471167276760949123696114437335411773915022384119820320881767210119490503750697700513121821017444511560771113241971174529779644209191209314998304000127578180825604862771268274605090062104738051197164116731788826425943235502338673560849715251441796931583797495515696907628606820975463137327940976917192907686558844657734226095288675750661080421153667214697802789573351858644228231685649912665279575383819526723114285025642645786806588861897523088466061805608625318958587175402668364265975316134383096928849071812326020658435628831271906115053078850060396330229275540405366079362495054496755909550736653127906119354232140510213857008008599551688756286266596650336889323987442770114143893113452031339456861629195508792965241537191244104052893268076047380633134389930149456614482107320059756193069042160996277984833152211015567818178449734404336944374366302695499976200831893618980502836788420002204121065624122664959103208108185644614783685572764737992291579019462729194800450274562208900079088251551952389665186190050456071202315874505150918682536729318142707879937777206914156999810344462122982300791551034547759300041324842340676996798705296367294352053091538815114157409785858798348784422388127407797023330722563020260433815407451140672053713808338432760512347699624340995387285364563471697070531370075689356880101961517630586724946455186486804070250660027707692577395219993744860322995393638318139000261384658979767788684816714339677564654687908617946281631317394105184571176085294198337799063530364181770625125051382487572291463275024834433177533130253322967841696177591769787184493939691787299326699643018165332800121339081445730164287807813354451070287329648721327989635221483776982837875854685658815336656870043567887125865423201778280280571773632416065680011626268415086675670420594155209650202252664587288245568242065852844815052208435820200247881988224598587172726692093157811488481182046341181768959516241307863204612028208843235162678547847430916329321412785216722151071909139945855082877513705873516337888687741998208964965107893820266058584618440963913587716369294379584410870176228178354373898340302404564096620976207491430041618000252564048235222050012203529630103503187117873872605329525004401952088776580151139140344447124613808775480878168739665617081225568428857400460868354346085396654034035766831869343717161637028772586870966466461560185653841128780217023949527149968953161072051800107974885370985983534191748495316426584825885866032006445123984428467488847094396208349448879641954047223018957142790391473561421760856063104943784213716396505339195036860226059713770242594803913149447788089770823043792676164756100149557515507008550345845769525579438872732169381987602876145719050046488600305492697721306263482433580249577676601559703238613860875579427935668617142121518077920633464305305361813919383053371125859959783579796550263441082374720340294539529446230437519024826711312723422064308981467558828991244781707133408900644386895999360541512597851783121077315212639389322233766235982670263750449273320547689797729239372819376109437048910943791699379044453058388561139376739441478053849666040809153464524972886975117166335273931379008791873031813805900271003024026800283643064436061273142359257320979952634633250334907827185414098159899515513800364483589172379023652960568858683240824734533727370497506048453334629361479031605904325865713250518333057015653267909784850743681456427241820912265834649256863664803557255266647354635821637729416833473920832830833486880143858744443600076170676218308311662393462185855890129099220648087010002741765551014084502632015864764281853708898854870309349181695237105745387286169981397762915055769959991495684223584311949566656753738784443587329564528807194347645853117679808729202870592510052689279698378900756191254783383334998383710050265696092654563809331363917841071627851029524248830130801146784570095988829604700502137713076878066187164182322052559804738850057074155908123865887955670752310183915000789266582539124910979608640631509153620145239776841373867678107113585416659793794102015483386206340240180569387224684166040607731828069103154219440668750307442933413673914526743167372045063516216501479444305595092232381148516480252905431485918220007764364939264731673208304794852714040797798007461010053722779884120223988271964344134827297687766624754972192471151661496485184653293111217601224832567099848753885594307280639598927790359020666757041905426591096979367557572507002256741286148679465116887216606104095118491455190100183545130194743495772160210137623186107584896219195816023732161396540808290762454981009357127118159659433330250381126856124643616442432927161583767468448977021366234038934307098581906735695240246235413322985258919317764524647689495846194473179645350818625847054902156271985920565564633441684190641901783176964545428626720930244494535904894896242997458816043139088434958094186231794784286100318015687795825372743181175590843048394900833900443360406721031533231574011792253331644603314482855473817564301709636625728732802645300043198575533660971932874855626388139143550469371845064841149594733905873421148593302561181368423438627269903176992157668286500843242799390566846426017533327526727558160646060784141368218813545831751273728045771277615399656319250269870052062770207801696063300439515377239282873106824378318191011349386612701140784034326409616340420507982641807490064272017707280832703021862665543453640387715286916763596086547827799901724105614398858926424523118923009495914885827216147920900017712235969949524915192006641801296840192839134691403081249926431297340871616958487297125083850227674605103488931287288876628292710735170005977160602777270674803625636915183373647907844510066830462628862395337751995246307491309221958910329051720817393108841138050725947157726838990426847746970887811346158725606295989936513158608544090601447742202301768497699774862242603327986282460429916700697394047586137513303474549605505398027257329544801206247395183681664592370818780233133735376658995032139139368972352245760942785352554597335754337855589757569157385303879969352022094785159866067799299824271042712549052470849817120885796204389713009452865825128482060906933437783007342321922769698569864872794693283230468883585224191306193466610571235088928805714710792940687068258412028643420507112198818598006533187267951345564812381500838697947882003830294098996692176648086534104536562117168477792363424644307881258309262573218010205858282077876548552716391555265514528250808674243783960473923987430497582218539931767102504374439191816035589253846308508101655083866900265118898062719030882502752880415496632660101337585381584202069836477322066441994214844436339687775546004812615100258444264104957865277054699928765958090116895395830766212498416398210023232974507178902409750397689654338367682479553246087646436034276956707241731438178465604709474815485903412866222337517722261853428604930283005102279134634231113702104089552520560811702476184285809390386537249353339261209945377867082355978469204438669535537171326731007805047556392135145894724167857016248750053038657603760238020221662102663357540925810160632527114893587738892162735069715020889022062820537607349625908825295369407213510760219889416544289320353473546763214569015643296652183276621052179619583431660970982453821345054130829848847224354859876437114221472656604857037250431924051791660804490922188078162447408218228374466612713166634665800915493460718317552725181087141582958235064733732638833341415830245865619572257281786286645739875765262579965566760688816070145434088595084112123562101558223782570466959580444967121397071104635181923637050883418551682824049267876664055147759015456573722263370488844363407467756295977650849240797742954784783927426620438844486541689120612979116313582691653307591443790943184199429834247372111963210568295968903953092767632435319887973928590896433720701908063223421169924875630842070093168266199281393974224205175430338768689429579328169667395712905144311511081769810191817187816442172233403732687495965499111426711743329686311774334276719360222527256674048490785112282802388938593102626218772449432926516698078414490852074511689810976504791487526892577710732114532977513758864015507610615119701317767359268266049645889858880457411763684955637875068511973811296229425063864364380520360397252308123557928894781005657134343021889756927265907401243127115312419154475503549975541747467129821744624437443682470904883948931442339456762130541845790306940697989201908517989255093381832623630969754022842699244343455538705599824967966413045771168626310458269698879636972341999685549430566464949985129588509195538698259428138046416263909158558635106581734805843742361487373528708601250080164914173151944324123187999462496123609923258136602674088341345632363972258944545975764966242760654129423675394880598085363688954157924273018135324191689028359117727287466503588688498632005988168710754309424909201300999471332106598728109984352652644161078538208882944329358889768773174755822729200591999341669519367732932023953127693963000318782760425449076914225107970078596607878670714836666260946187746753156693468612757328633170232473985410812957407900679283663720958213930312911471418769538582967641665191332648037130338222659759262612451194538252211760863139609833214907699547432540655386150588161538507713803048741086034477292075255721303495902454552864271339893227589540873693076071385478886969104152449120339319335246157145801594476423636933179337030971737216333479726810884780321331628734212976562200448788957070198308124349429900499565759607334231970351353219332029342709465940359552912921904219020115449650356616107006043882420100467070503194240014016418714038151699814002941247017663066487040474620902548200847358460533448888151957867064064183648672399810804764080590387667974886776139135248069381752189109632036179299616268274058771185093611831643910193434156268816506253601857291400423715840979055073514039594794180025160553699589026920587273632829562687336198738151109938919005489546942735867219132562465171216985202056128160488223573833915290152627081852949839544753899531857594144865233259641046207273264853793052471542230335029623050115881874191908501270145848850012648825510220111823089450122125524553787227256692205729069197652078916569200313340640001037715050281297376732671550695096398824167555263082123225496942294524462395680727621909941160899542101435973698535872363180888161855490974816286966513208893847336786496022394472251957674121811145329857660570680495747778200775516233923999456062225225909635680302623191687857266415143296362922666979324227135113780273089042752157194183584525442573834054978291843648550592741137271562151494065591005612667702850808261474592092582621852589931299203899277158500906325487442975721853126428910568502759725882282636086572569636247299839675969610100598186357700603430513116265356796414102529180813496547122061606139920176685198147251390172448762011191463986803395790402657862959903390949301557974827520524362828152521224610989776435340672774165028709946396443066614150041117418010093711290006042508986354600533655846065241375443738108532072658825844767925426154616813443246323305728327031567973696786384606109989109730415067636186218839564240379908884161148285413168264566055586077925706403626880829689592003777318744723890015654576731232240233767527302115601410119169147643859625273871931164666558192730218115788993073223121749564485923743072181764630483566930686986990656343602195588123669492319490194576837112179588673439666500610458657793811052895959346996294977314794263323627237465434341977724707991565240567771046416624161305223580970988038487672175226149251333445524773761537479055906178471905496854070488432573615687377400457379304017582171123600476632697091894902605745594738602892458902962016249995067051777494561639315320017747140227916669116650778218334152670549567517307938682575781171389099801984279433233357293958352004192397203123254501697064481939592299270149395690916633293430454560471555563722326326745475600980093574347388891855898945539772118684595227407211659426802965114024353673592076822168346397772250991901322577466032597238330519479628734207959778484335301837473107868561043689128450656302080786065809520302013262302335515670808073060163161058190980011859840396162638707323403080836625667299401087802962114092332145415716173778195221240702653833071603840831894921792087411316717165957747153034186998550710232724966619692885502973775114081177749122906242975170150527655955618142906598238702126784865036844610790712101988939612385196444031253185314406624933561471539719857063050767833457776715928019924626234733843156652320155129425329836832421713586201263534944930270489972732107776407058878654707607047620900466288891683767736405558052801595738686713806560144328828091959049691503367051033681914097023745347765406974079684610112633572556287194396988559306976157609977405983717261060705995548449139459817130769440934885870204320622232070234295649648041278961235369837703960728770503852978888702705824330076343441535290774646686102717481750907309163420382487207628573480277059544072729526973178975714922209012486321926111954015859885751276998629759682777622741620559999651546211623705699959811411048069990697515806607061460813249539018244987800001172238401300141388119255934626272545205932094635103667224562231443077357529019858405800581048368876790024994249771792134310675690231222525618345668095597448550250078341907443512856557366868444511337480790362414176980674044188087526125848284362010809662413812922539395686779958018296061053061204435270735153492262587107442603084566162366291787562726170612075153944228177059433544205384659685540861799771460410293256435356852299132370343235001814352246570938225674481779774053750346215975171689913361325146082126406437787343105608715937379951237818061362281300879002262816384815501651876531253306498809570308845178093417281618358666551237883031341394482695559042569263482001846369552778504264408934938247769132038612778408920186069880283136189046257943313547887926060878864054392825498635570587761257836376668992388085857952430266588673561756109828582591540538394575487665652914089242093950637781561959210952555806542332825734445741764536520271265926829994507599416759120615423257762914791256858526890201129281270063859981731651002812282761305218083954482646993702845814023122989423167590935550287755574959255353540579923190327334224455903400585727037561448026621743395516355484401191889063192115704921026310362929559967201803340729394746036047285077500324175391088069051752128962910068010606121963597000421573961184690488868390778420594633475349024354145395943676137673104751682973783807855691532116968512543720536276537224247458110114020444338520710127238239070655760255711210990445801521447024969696175439958125084266575309395414646731194330784148738809652126570060631196297478637280723054942179266769540307391619451796942788211579392126812724317912389760622436279471339596827277447890608421585137753115045168920832476948181532302408434233543586125934364827514066451579720052674901404633335795567968836598801087832581522858413071783293558245925541920231813605050563572556143414118182762303410475001958363384795371276065239445816453088293214464187508556377571911607234215893515625157135747588641602298957968207140053625593322162440942495790012802437230029011582325856455091891703880211865178515709176810701817934054524832511578671620905577642737309280495262524886920192256901469827737264491007747557880280017606042896482601725693024700919634527931812938848349938003067158131637211379306094116412424372225715384783575510390481891166371198734115512151829931307848233475268987319376446711823143440369308968475534156146721986371995546158134028920724732596876900802980033267228609565941135339540807440692636623281934505660146853695517727746114444907388260312221882680769627091470690575237951025065472977957874003764880562098976030731655596697595890127449111314948963734968054213210800072716557656080627985925844367083934520104332845607163980516539836093759689074436994090043131735593699744175669910435219272463669939779807888345729488760771601601638906851736237255397226709620580010555723406031525851659484372653741007993059531522567186089049809596754980774756786117649372558065297800919619834410567125717242409811011887672043878317076502139831827026671373255290916146705174900834217771791674864823474349016407026672142630634173132526436876480600455550151530285493162892424167578193132198868313601488964920197716942447829928183950648256634394336642503365701897949947319155485607834843645047958013468166416945060484166908687253503506795561528038781688597556433424192336274016938673772282484440035356421964743386284794955529041309000420163246879425464446760583873297761346639123363158170710860863065776052334153316355460519163618783341512204196575214201777705916195316018833639463500837609210935714690209234886385334943905591202436881954662441310923025797813325557895221912034079611941391293957107744275421954951585165030812544470042756535782109606641152596581163760320075187499004630540581801809609805775195872850125133356552504361419633601186106075918537823407962424176098716115571569707799412450074823130796248346797858209930445009075013554325055731805466249763918997289211545880959217268732753032517445544743766822981801118701862890876622115617066597652974015315138787664591284330953084018635909266939007318226951009927746250719855389102751340445171469166446198977344132821835126612405110483336797347888119293631832294386707455979245573968864246958112017331110022195996208555741544581772571569107021294259087544628904749138963887840903277029090975264400239368307813997370811618235811754684189673376986448133771772866061624764686569452996509818828354346484185585929303885938607694850492146164486202042424188428360534368422134885913073188245754413937964266865021582988715219173868779680545175599595244040520764080292334533555890224135749081009572132209068860264138289638168849219975480624851748530175316811977019306440790015202337050263204118778478428129296811122374342635773769308388719334308270829450111860253735830379802186055443426406796975324860641918117813506062327364693155874641692211690468898051956602183269144449161050633429226084163019514348933306928603117861128852891610743871193302490453240212174246777190371210148603223839577564914182403655335244343215573348802015059692408092291088798693575469192001238468058433880533077650469146203281330121226998214277991752878750502696161248188952910959689246643942055163132380030583986723562051523561801434053262267902367991633241824765577774181896482657311727218998529573901970077153134004079157986514397846304690864990329284011717593103771797433395877697105152162837856906852844060093286526934798236250136488862861170926577515783548259564361131873166488071516640022925762213648468258941464591131162482131845969102022572753430450396042154231383776333595055988110044134160009430276450960021679092889247593193708248937863843545851840906241184418786433723497888705912640497437231943327624596220818601032317719656443124930494798517953372788644508171939241503072195218813364453991969901350458474802453072535526423192607293757796502423411415517331970082199795495256585256607554850998484234446407915137285591083300595931641435960270401391813141972794213325600431023303635054157349355656204910359014754823406669511904405070607980084892794985445063207419557366750344826719396038104071300258247799583409119478067919354244410879942366476993289971227541057819176322498863362161569101791610854493594564225525185896949765030696323291306183947814452193039749826690075330655738409506990142140367640555741740940190697657388818686744186702900420957493095656604175568911369478577336976346927343237168068737901823915510334256316724675477100910492537175811463758424769967461997103106377928906610129113404657742212525069442522578659723174361639657554179531385294522337625219793737062356832450414168337388335469367925957908069428753667071546746646515822717122271515991930884583728410124349705621973252791565859200212106442090598800291610929768348430817610725484118323294924264026923174424115504566562312124229719099733549968612170944149109437486225406892629561092215657738327032443680669059185162051412002001210878465944783933648099880328996435448059347194609809564507929363520951113253943603964712755993541157662097221822415261700573200613969731458589710329569589220605341070506986311602724148279563262922888746955866395678202237367466952150865836175850794354366565299689347410486327169048215990359980546316469672972669105535391615410720904185022918225030348411161174670004758085094659406005768153138275306082806037987313396387766600647371597341914034883475983722662370647692094960978012397237589852017241148993694235771476939341388331513613260450137188605750099172190847156947625774074846948898151985299734509265981022179774534423857430803779271303517851822889826520167905014964210921720543072565742229946427919222089113629161586044690199811156929053457804793153709360588032266208951518188509899870404053465107335235579764245951648900383086673821953135723599254346688325985034425384891776199955830378650382847866605075639796524043000202834003775498105424691021124817016289180144431052755843177587149235129126057028691494685116602733191470756344314067051643027957135059917755905870612267770703496255061266760842689139795270376830024355364270632654115226731139045228187225984196074461195238516951875727223562849899925216417636510374179705573098531896945394500930759903913863567310493716945597583692218892352078455467991338396680434306500033836972609877617510285874178629868005213143393626737684969537493444283996903490397695448564322205185921356946504532357889538821934700377110313039376161570303869596730306649953052087956885139961090819561849767658976584961381429955870805320641064254456249757067941827160141754625270089877804801878900052065311904323179869711842632206029981186941341576781525182317540034734092557332334290734228256259092852198766294292945386662427659150420784636500407673429396231278570307324889537955113099287125176759512187959339851830953926726384543173168055802146492248000057707910644973685936849124715714855048925926343361817525953975905470218001782446861352632160096463876227957404669977016087166720580202053715346515874148121494809201065254165880013403907106348877414047167995837027970909476353228799121736042042624903435128124886478771184120292030322166715409569284001482930965820188584153149739632418135569615645572309528096829107913753921412097991125857974612864553008337473866335478835324475238209334335716874771480370200669686738133241184707508059677636896688395045235087094970021197085560620047482637675315309013617983571664681041536878725263774787887553513193031335727778188145279771337703426392353381074536653318113586873458303571057127752843011608242231766133382774955972333759285982978846045041219040117653034931310599177703681853767755320281327677643681439519994650897084676619624832382353489055088072735464936777977774570337217131562733239581900587285723652303832736849962179214651370030141156018318099889148623840788153914933961715226230697048044363936267385229720062770709390619656187208780484636963436337573345211598815338743984651588002426353495641190446875029126996388382343089224187941811534827315209816781640660971106092022124601352097933954354857225487906947089769111981503836319811314310181532899425773786393462795686891326591650794331543584981427293661482163966704051662655274435947356062189701149871080652975763205082536641952130121452711902920713564123241984697418774687794482018616406310429841350935356034371324958771058089030300546296783660946939077400294629473515693075993700556289132572087630454072039085091161511820958449507406828548989540998800738007567687912322019031306279367830100297102153944946688962915951472342792620765927018771378025998453767280745174010027157334715671486870431578399649425959691396462057374038839288603935790363687471979403644681498854339896041698195819312939278606108931116696966032290336892120257085118045832931304249080699995910480568507415294881502604674460990541953516707371276328330605542992851969975265826023703890614894493973525774967942519998954966002692313038422619853447008149172957473632154616860880583617382428332358920168722803234092562509821951608861676785769738536439483507677103781920687356076589603426927070486296713530040170781605271714789290160983251031464412904420887608346823079574084939382353062128502896720881583433731924562905569995222757331122472091100112405044967255229391425979646524614683268783003787087990690374879617294601196217122812257878402051632882858627614008370075871402660684221773473820238454897211936698156919969977132998433425498340375171337522298090449611543953797828371990781307259150144449470812440484928680275757241401840647148973326465260389894578807973081548559529932816481539717351347578907361662169274615206605786357471862326979317820602743218225953866144115499110338953774713718533338087695807943791652866539662500937117052781779168493235571795345002034618205063410688820640959965865448272480585377936295399465641543463300083995551001786601742645846869546550322449266968485953852298901746397870805098866522609422362709893081964574479896392206268641930978104761196473409289868113502159811444264620667459295424865815495821435751113536494380965765564033561274312839137929638829409785075153343657373848070717317534745962187764969860615653240198792024670757970698689834438269725818786163541904257848702725599611144491809886953994072364945532194827117948323573210570917628041870629596015276636347415838774489103348060239519060156442118041099186288597029422845514223263814398337594940416497759383534418562861145944054995749444321390021831056068140647478952684231626229164775369101627285800156970518751481109613840983748773048152242413117232460532092143106226991712479702415568817491819514626886806195825742438208760561995675301709035593094495749130350262728111671807744493289855673604914770423679335239068801042145999996937411180021194246655176939095720614847924784452376836930944250711030704241037627537058416940729609103882664580691538314448794505612489519664198631699359628551572357983389487236690349805580355739152473443032980604226903333372572956652102881254515613936515960047858860289253912324235103041139879932014071501800423755478254671637958750512764255604068375009522140040886092769331842413053457779491489553017706720721394504675198733897871005003203549022907721201112423560538246631292663563946642463961755555081184155217546004978224291534580149655409272631455326599754589529855612946653560492424684333570424734542887285000345027511709052508022583380161025803935234474226088197424326062892461246365983229905287670699169591252840282447126866012616377341541341859050747748974191828171834063690096968316014664391156821135880077622036549809346233311670038400569775522674478568508757301385969336154206845287282390048315774844604268564133796287595147670231695590549900735445104370175031772939929587999585377520665054039551772519630510079177443341512002062503039017707188208163337034708347898082099341120657121340330672590880853302818541097445359431636168521455637995250960215483077510511483115262461287802098867434227983031972186988029096180605979589168949074624710152256178312887413723186589878018613513188265066923849231800572215696187679740384068175425141996690232538516256397459204267871731192480023884258657904895017270975529417471156360424580040621632676134132839753709791716382280595134244847348859709107763067589792704371841406752165735646217289954427380710884003288232719211859820731437081312827019195949602933431083161191340288334041093620784296262557237432592074011567917744846191702430756008141862429218631577888045480660986466615860375430282857237999379265050404649306923269304624131192566295376442842032685008425215524626120153813171012622902757269997278828734355299346666351753476999221565736760247206824508758434596958281075766525096924889225352096571875186684986499627235627973231012680442179108423200396787335720016829042713344048990847742183186752527604064723569139939797969978185374545377391966379141210356899956884580060819039917596119680410154047743370765836623407206078576781369533784970105911224348688892115641987425338434912523937576058604308976579056298369347536458168871195435492983477850337356696625061543508304147756265641284243030586492517147572375677947943508779302311151217664829129365138015667920865859219041820183743925806729599219408702773825933580221564434251708668240041544490604930426299393789997506213257657966828696902692736344381440525080876893213317915159577177783454855512325316482185078202944939640244448271240889974018719490648708011924504635771525109736260392814517315073986913539951342074798538129771632617906089336082404522016455486534980188366811650491672555375753769579879238775581342241662244631899236317564806747467765825549644583179248965357498783394915616933610624374696188163048175647464872655306711716203359394797856969583308595718437822218587319754407913790863624005454413183833299208034462272102712575646601729112685712595379932684908959787516020869848318146306757430434782784916069997819607546138867634942142296590913718380329922841542305819221130729912335611548991018564877263643990261836042356262978304193671804158827926964436462858210511087935160190098689741088485344576185774498092007149471527478345734730481971580923487409934566231846046116195609996204758068181643182428240945654016500740148281373478687869446894564617967534339826340642781151701801880760686432708419104515441069152724887528416632871633880899551033133909368981706294814483340646765301994728801935668172146259245693574995902336924113533835741871875467074204992973141702668277401992517698795616896408965049676836086710568898415198641531279060140686329643561823927985770526305768357193031690314987252627803373538843162495484249619102825096619471130577416157538276830860693284862899309135130081099603565658376628031021525901051477505911619279695816571795399799063391531043006706824272471655966223715709339417890135374378322043659833916004241356899511565148600809919317798916384027193803959640327330892412209235943658867611819134988264444370207021443103736025727026665973420567114087268089217397676472586844495435808340061232135986786283362968259398740087615148118353407856500186023345019352557332943339538424960270890418666283044569141818991782558918972999554568019450657537407405251538753846389347819669680929123006105120284177756875652665248416789321348135148089912546561737911571574782763218658792479477961724532399305691694461944108848063568268896138828557900819789830026372680461638591926871161338479626225577606642198332516242268787864402096867450793618116862217442434988795710971488170341633408950381837034602286697678905201225806527515288116824224479492576555858806320328803329776287330441430963539117016607716529736286923935958637099021905742920268945989723882212245907828306152727992297841075736279949183887276292910943881087896883627270577110054367920975068114190535974774694495688049104909061010584745325929255659719333416018846139132974951824059732449676485116358665015806192734852543268997066401123144421800589447969313626963081460838727923170466072513019970958230483923841830259472643181019630861353580856030823891930134773572294269438142577368841832432281961445333027274934949906294977879654401518867498379995362874498443029854553781761140536303332377367665861857064831190105455593341692833035696960023375696972154191561544917848376006471427186045728803790682467471965452060930592590628600892686410258509450746779424387320727321107462738560120991102625708486806100242410946135004294216700304750177182901516128427438056029656775603916936623935625194306546129736784651984087585922356606447036140300697079341676203595505966724704193508142688774769124780462690618311810726292303944251733209722818957636758700181831894431077488006142632664797544236014641937401810243522192605261675303689604575031705844605415105287631365451899523334048992128016545722640397948395786156135201613546131714393972117827050280900603278695984146861732218646117997270728060797444244093420685718907478927964322076265714029143738968452232004919601013378156864223747574506637088117052232845889543216768234854621020887332334450597456110930051777216197085353832993966978567427672661299559581633823909331241339777288989191742302839532227147947395524344517650244755242921513783800703039213993638825561452784228984706078470382265691244258823322369885060652941805910679837568433148264446036197542076148632960418704324213108933737811897625798451071650281008793495908404092078566437031045752653284814061302563368344629980530446794050985316308149583570379397311508913296620556801630791220162137186476707400649411866071859233683205802729352940392750189585587267983868487498814550798184311016152383191985792662987390895839399096197376761327453666706294513115929369624814480979029769429983839449152327489908735021516273852605195622890364190729578958620913466375038889608526030998267474515587484268493312296463823728984231406335262948126107455564846868985390290182891316271741882555816290405450766391715074847227473925472910865559262446701802282320589607481869803832614102597452785980920114648317251068807017721380571048027924335387767891975565430971919206267438723957712625854280420989312389009350925098062549961811710055051855644561370066430373266559534049769746550294996367753720211463341054068384575792635490618449194978623576292544262658969487475342613713805409427954382890127392072412853689558390197648705943818160444830011770389445272803680017960827370798365989323578098094562973390752454194512534270191460382241979957767099362961978728745386061185185632312388364389390283174672769327341331966639817879097786797756470778168624386720234299627890319237955945999861856418896541478925646826719993567930854174153835019514719569117180220773614621418418495146824887110547054686396150175332680516062609377023326278132704897181336981322366600067643177416095416226231137765650488156079676496879383801229564879710870117506208648238115466456448539754808612232611233460573682657447096430616664803415005346835285121813228605772818850338009944060945894953974012236152261760642979526101919515769707020956664538017543038308068000450252784510835766597307146458739445019097374863013551065832735604419637700135161506590930107927339499695091832741790998945468300279097194197434941718819049900675610187245973478038662431051818832614358752261272192174339252074733502345714396171446229818845330206540324787812025876974829625795952918811424712555491588831560231918709777351058591135953934138801719717011784741620791322312750212685804927308635976340704891868847045345804751737144739407458710858208062488381616488509158530460379194808867620627330846886557918572761377497104113279463579641130612860452587319245186547539498802693531132978581504668326097144905833297042885508984519709191649179722844515808853579949703816409511704386026354337143134556831907600143236212526900256154083311024239340828095076649182726689291522277109723866822328794557145911497573412661163194825019667468846932648068159029927924486964468590637868313077721561072982203309488039028940029264986048767098605495376025194679566030794148468304735670745696409027219637642060023263528423819320037428681247594416763224710096011957601292675544399674853777468646971138859173794032008039414725977143007681493373642779360936946601635803785702855707044759413477453086524375245210879328852995181364941202610516558781561794972829437227528371578992053151675087541752725186139678180114690554678172428869596227823625041902804332859116980915115478492512597055609309843632127959407106628910133545563648986711622809926515903494486754384140456277964439126804306968197349985012567429054332158457885651974539475244066868461233963997080047091161849286784174859556589168763462330058980633058841164642343179313193693050616277521429197269691196418116502431459567423073833347325612077987004181768522245949366372633770260094947775878881376224005406270053717249944292239432691051312041686415046036626031989045551581641829591866572807908455154572067901727568643184917879924258227851936351185224559813946857966823726994584792444241305126884379703785495322580965517847697792430448560330636807381014091494893816723789686721781375779485801487127834435453201783856914057310908823243986173260346598676485607618610719771927684393361035424563232916067866064674313927211315789216215315948563998274745666606236181570856253091903913740997653230118804334456521965661706252042076874772436380835148834779585995972484886144901323556235085060822475421349164557145839213626500209690574343828395339770168231662487397935847478230632194770995667457489401014875549215624680870536868572897974592309089009239415698744138467059809587168201835348403201491829224552064260667706965646178745147881755069936607410366071182079584006578205253372352122902668831393963244356126077096835994442717777628578313464956106176671578356455855204052810205197343633675209172023364570051707868197686589138114243132212923098652963955772396814618317791649705834917699511710757959966001484940629373885296274416137949756943451155974688913869093179395024387226630407058571628308535628725880023411630145680729929062022578496131720795157115511625191875505353339439854207880749143431054207705042929378943532647711814638758558203760875246919181793557475468032926306665327984227860202369309679129676218947819843894198977576057445560641292033215250170946671644078606159395340896246772674958364221228896354810383169191870925688018692053589133953292848901291400283832134422793662046124020048183185187361345508041010429776825588238763887084839962125259515610321229054364352729048215988231928318128717413228367487308135493792332440458803676055179690006343803453908664734723988941259925123983878983828752377687233778499450227702134478277760877748405073804177174344306263889173826109766201101320263519638687832177651990315186622971441709628063613598501949879991449623186838890113095288026940103032261352286877435839094767270224570393944765510586026042219922403184109516159972305264948331168029403604880554947831942526617553849517725429295485766748638062990126612107855497676471901910628849356266089994477907600318917685668384710982061801502438999402286473150246511564095635521213891500563830292430413905707837119973319881644666379458631948215881822205786428845151993161275187138430618390976563888506969846520989940272713373411518820794616240058060213934540109201559079411571922019567666636985966677037871451995424179944212595125375656174107092647320976794176117652279237665368523721676461475792841517592094856930263650810022113450763294583938529323774895618303655425980207610753287070478071244565456686458784903475520454337667947460072546567948835224223705826062133945562967685934582103231858730123960131482965808869423934966259362061135933439917351438225068559777420418067116482506869894840087774951824517981148255595181498203389258910868072181574583946768211230388802060002390959239009503315046236146693393970398395900945598963871349937042742378395742745713209263208237814373564064867777019707377589035356297830561673133290966824548764994110748891282146084467889452944671433031415357258898860145663738669496176118184968316998190298239244206639433030679110514497183046767601322223085697999698909752993289084288209845525658566857397920903647380339315320721519986822139980942219092990429050230430648116591989540931711380567725708585791099187010931084038819804052990910670189012454292067860653633771097904572777597224809003199615030912480573497639687504061886007516418782225948911462017842709049498953384315752834960886281535884205832626295084459011039355531384450844987789889734766838960390979821305299311740925380927678693360049798645591000333342658678871563338302044931114960674805789417877680013468805370374321608692803181877266972463184723138314606699419358976465597133980144896057825383247714272237303939995630454871003538586498320107217848386546613329572592086265283132764741390503994765730723169412055663081251875427645379758389525037478856295057283130668593535171030475013166275135878815911012502148660375049778208641806266353400101595074319566454431381617411034721639133374293639274915230699127974345191760821798822904195609643085428728270770530081503181440355630627442695821601918264179743395375843887918073141226534158063485668540974116965626250252970546092224858717460584876209155514540520530118073541049020207757914150551454243073217254480572620072166802052895320425774689014405713507932028298620548090257657745082378449697646921418304314813493158373730329614902322326298104851988592101810088729048252559431834683275737301503552746833199195936757392699147532154971258199947543084141956642317047853224843818380292038579539027269301516555335351340509639593278447727679305185527237161444912871142806591600056074102932949477451423708771282938715930260942607106128910915396748314619526767666292699452670754327472432831987793482464099638282613911137990581611632233507104068282514416950254073651680303554018287294785037655504828643086163992014889005931373944162893961372722612265585102301335345751379749492319240594291361424663500217988016336560273584336128831569185105707617369186983910235744221327499129592164331501135413971646097197292626237501307645231876814696522250930951494241308284546120292889518494130212050032738354256941182044183412516091400227886710812586107315763286461255397247880694621641327948847095078479529083260611515127406334122879311560831650592571888693573089412872212519873851224369756218558977327979330590519881359885109381439599342745721814923053524637767812445091887045455028589650011022927656429476074913003869086407722672978990327555719357982514505689219657908894518535611481122192635076943826388673244464045167300297886022206678425747155713265369072027350749957846320217935080688706564609583912694678438344369216538205698184180980541900742764682324498568797711218602635076005973997142059448547724483390140563035359302410744179216915302137869454263423700259522568187057937367290771003913422829653927088450719152748074860087485173207675146086673212165555086641079029736990200007507340841555947084906438024414414639716188360860540628239986525675450936018162017396415099858759087151734669650674967013115932213429969482200983493432872931796585436991859138932226691769094677652545554627917781731238146106604989273334531124602239754066701072169130558522473859209438329004231061611611055064633776485148567637109985355079377247620881241626873716686631959284141036886000495990901713656905677020899140646278941874652943146905080154990223297194382846545905105060979184930205332043936741833581390731845963493766969909887620238173522113330274284947883115784026087608519578791296813464457216669255965558778338418256980178925579235130135309900108408977554659477816003751040513312785250337855190199525322516147487431500163161690034678683010669051992693125955607016796993532375636721582736978915153032117860984946672954911073154595560977961631169293167048702802257431843253697346131930559566285587789370752252898717128488316547388682651983750708879456269796515268046384274025912495719495965990296819459063287910318907671347484196020431933246209086075619665532719071532743398037806480306623741004109046374926104020563265416103986871962018500810244220365073810598557270968980424905224370559920497631229684908048033755661588786290789712174267589104790437816835943045361849565728454945578005860825526040316380349648190558633319608326646191948034723569515186587093006678613490929024134176561402214793029121613781487478663277108257680625169535104160415430006590048438082364139853430346658778017237207128817628312542911445673765679104212501960372574580071592637245824158788085728654457046273796326283074189911209031939840208149744259240019102364597066608828379594577884366868156405664263973135654508856175151771495302032893646647292830289981739211084974219125290296484012934086431831554004950655785525811009734917422635247260162900607828859060460851722637750573302125498571244838536134355194725014617452310287329569854389533854076935514283163095858375092580253445299575581029587702383830558882642100922585110795925906593078925418027123951522544666238751208850010381782316204336338903064651248069652855830388402085052507480970706309118410910611355677829845960496401466532019336703714420773373828371577339093880804258106427320094926968418474547383423098759929976083970972696415637088875520171684040080846856326897637790238978673641066795114341992018908613765623223543845778266035879394468439865519206829611765571977012804558135307588750065187126037039232625446488262560585469071676993244924425204435957887868316459788608399459688565480573674883736803836181681601381311433443702820567650376568577228177406932855175010135350622453571782303623444368508477587966378322963831817098915695406004227588726766345940201510505327364337386748294561179887717769156564693050621026879339073155058193141270851792788790571772559208327871640035107344228994500133893183861359755603809110479728167303471245522651805384055617703066983144688616763133003837696447942317110897950199807102033734554596892506100772789559866012626088821566042550469768967038037841703497796936684248703003073801514320832002266735012797578870242433258205957570206552334089061272651830804424316435756747178191707978590424134569743855413492536699585175779709346372190510581088240608577283689067249529138252742671304247586850496132287268981522840782832760981390199925015880748988624390717719658170393506603383720357544979447435732589151546755945901567613372950026924372293423981625148415134150625144650049072856392172372986164113612788519577912107889319439354782131948249952320377229080215695847410692217421982597279206483055395514760393457620595637523025109147041901271320317253057356793244813052132901844758177535510005715801871724150986723696836067908050856957429037202591022634488852131617852493268959300617314646024521897891953528452473941949689156903376383628430601895201353812908687329755760715831231551226096828245357275111349339333231917634678578506149992770856781668080867409530165093830248834148932382711654055496993091718335976815895462999486503133525012263471660973537122974653710268806870926163642898134411839586762974731958798824231368633665008665216754448879982026957836331409888114786040737289832233127788915711721340040176732249334318865439104154205760924385655292514336306285728315770544338800101056803575724722288955151806152223959226866907014893218129670866566492151128579229443935877970380503634802265108759880000668294219917243510398759389714616972601237058814768950013808420828529498039545841749089798520228297562074606898728622666754037016657679262087837793843477459272996597530922127750145896190867140548525869352085687383936292678345545860461720438015213726480216412782935292335840942479142641135456425119255889692313356159168636921288767344406206363387079053876409012597721721577189051850283172036360127848760522658368524924800047712475874711871342966115599462511331164729247806020244908527999250646469659299707286597160360242901325565486047242154112672123722722005918126848153805521704771398242563417824701787774635496315985429862291495461345814607595395833767434573058336630915248047807521522353178174385856550068833942452597976613619251078983234791647576637486591290437429136527294954304765628904886487293598248150749264725395473515040624649950821055214906510766663685737246934076640139137949972886921413027141901166043475598433022709408312045723889588169349737532458637687725120637584731818015106063335934045128964412477322758446329171704354989293525099552721335171772605644541397953910836244066336583165057236025290578724097928026831154168807880837887172395297727883209238164587419526975807044764410974562218768802872796725335365464110454424948462195571763969889986548659282180238875050163819973682175779767885487034973206538008984444015289855665365620566712263615853281520520414203231296159083424550243962189659889258107252319877273119622935374598104209224217174491479462583983272098841612465496937623012141101250586043258939912161946626684647774226383040118216238887216326575069942582926864671584870412759822125890442067498881392279684906084907062224306287040477787177649194714713535428450446204750722977616375179224813604039331649150391519495511692778156130277950713045874289250514200698641178371852032309952758613692966036527291502197005904214587134664406701876301501232800115094886767172574645314031630183507381350331141380585069948091995461883703396808825694334221887384922061234396882573206027108853968968906446392513596350004736740937468889887649946295111640420640934641240020936383419991605242621123083483799794521712855075436061904055192564077361707386691276483194917798680061308105719330343151138926764593231958650241625827430146535818535567692404625168916638710667463603697518963338295922042304044719293705542032478417349646145492057615890370761709208951760732885591444392618765771188058625065311419457741669885664278536379978345984767608703282605155814498105915493327986450025998146586140878022651719218022454600696997972869409459798242093641248511257358983998029097399792764052985058268191937703039944105277599235406764974862363430516097991886985642052100381495050145225535780731192574129441589143120430160693196590804587602291781878678434274409910186519783472353731136941004744409689336312180449250279941459301275019296357043589321453866495315188902827940630898591865519431119864148238019446145162506203094386807528984028573732287457066119297753092430584837437769294038170442291812859738666816566315675781196072143976425597111198353951591979613055084686514449293232764859959941194624944203784434615757090760267135192267261371122939331936563472332402601209295068077360948711211462010028544155662226907987241478640706212552174617998593937107270974954049992243876531745078919027293464002754821801403921738464675666474025610766784351798243666280673914554519280095142801463916504694631274591690448415119399415454306616145244465479296170363291813468568889149428592630199866679330457856813316122344512609126917144897979589831542210604369992175475073883891472193861651790027241905085185583658831804689499424559053453499940638538208796605527901666718411654187864508428680844124543002731995335275267586871824466339285867519758339414356027799703886019048684595156430693203103937620124259995699492079460026074029862216340668029542165683162976281514994305498451684513728935039706218429734573596244200498987141524997062951346827927726896654977530507976603199171599879967528616962288203345615836773639243460361540513340231511104386448524426589505797878071424411432440256981380495968378162270663802618652422754649972996959767667817177646402385839508782599805006808501553276533820926508937323000351802118978028599858768189836116586595100833412398772245516143620564725729600223203104255601050405179006768834071006154392970224748269797434999912434752339578291367578128351150650550230393298491517098383525146520190212080405435313302031645231121605789016831235258415348895719852796123681311098378742430345262566013353844390099833466472541126414665529241024687019976955606604428747771216932780973491575858208232712843649187494113686155446989045939293135948549427544422197391711157644492707820636560614410336919389469937241984938051117228900403210196347062315208229165018491795883275871651531130266145340413643428389782838698716483078980193333857034156905246045970327283694012337771745233048835939499483212260179647026213971580504771119791385516724041240903161792919853628112491544920453726562731789969578927575181807442403472959537957757122037637207772525073509732776799293842163236020195153114052684293214881598371959470078987677828587074345772671478748402617550914222402998185491160001588524205147656359482725407119861723011055597245883351130235591369600216845869213757185781024990690265121605306446963152271784426708193260929176809670213749525634118042988136718828426528121603533768529898952200925962832080348282167533486932981330773132374208521528817274123302960142610644121974883113242905249637489939677006460038679353460547846437021898059745085915612079866788666629344078596514160099295285508740325830133702232547286336840069183119577844638664550167927387005035167539885357598612739666830022403140238529902766508432558166336564745758988887237897606121621330194553048961346544201763739748426451531160158581156219157802348369873487611549576480973103856635309323023996197603372523262590804431350888890895110067369936611138089489389516904921250147989289212946065088976677389321505649669659163980766873326260913385767133359065598609595550342891624658888434485636264038095880328959350188745994283624632162931416479658273514426121437755505175943827590673435310324769819884569132569870649324696414136041567311090421362789966518741371656154066257558603897917970927961919764395240854994073227356131399999319336647553021621096606772733335659321989232311984820509402921941127843232283697321688475005368805613853923389073288559807641843186186854298023727777162079273835673902744779915344741105111476456420635633826003352747637747415556296817510767533488727117549188915556082720860382959117000823178768499402143624066542919145547171360011432838952009770997386245234836399118068821152236919077955934113483122848803088383872555911184831026928966189467834166934018012062980173386310727266984983630090985024853872099972066645179461074110969428599413134243749467520265445324517082579026634955180268828458141378278469259873117443329006393163488085941622983530421031201114359116664739241044611875135864500226340916272161232904172698603052352125293360570917048885455401647803039986792532797929314358346657079588357564382793920202043688014115157190906814082023433262084501802405349304174822006686336866526331532028852863120228777980918247037445435671232563298133326282554265288034516892722834619063221820878067968294379883841660483367674761344319398219249340119563396054879108523356911639387333689681022138783549183046932897767772639984680673675209822321812899001815293988904315293404974021099868091594637811712012259516399528311463336865207167937217159140059496040191195343502717264896987390717575624275365536688464845042621221106572242620691304868761151072009348020315731887104968265287677577917012732682262607592688528533949679840911850997748699605067794193661678466281935961643015833492655453897135217083437697446682608170218890228782731317975467017713037545605822566063504734975416765650541334722829487234999292765712025189813779595280512535607376899627448417301949463385791218934356426616661952340486743137670139792703408344633540304986133441817979646339654567028534537150613598893766706843290356303145164231871487328896149807814572792744518417807933822879298818500276758725614400854903818459394248031882756841573483127737346334330867386149910487456334654295687992120614782144460117892448358083968650767388017961180322312480630351138647679242195021869802185692629034922721163495741355818246911018803193069802056812342546240792829061729269528732737206851645455165718600468454952630233282125148678623171545981322304598250916105039161929864899487583382683755182012187260908842011338550821009387155061835161198718777800729351218985722744523729401631893776987805500921659751139944197693763605276636904775474463213477085113815720488342875733296712738534352317938699665140131460130731184004156887529435888287799266058063546440462769998982629573023212061685383215517338813221569981731840820598660500910732322026352142015718836739751725646684687741090712298312376629227020973636530456505845532679109594881335789324149639222461045837678989104686417648904984539273037626774628046716480174116471400377553142065991818282361979800521460804710701565762224349051761935372133479828161101683357732146722775573536523899536601396642539240479010245107817547492801533183752519097488564659217392783210725827052112392515460196328283297379347476977378334398335867589422881423733726707430995875175519353818859027133364370827072041905114518671309021815028127523122643419480509574816291847608050028458593974098384879835560004106411825253333402147555703132741148716817596035353428156550059641700015275237468528886940495345814820985220186102909836877619161890290196356403356758960242135206021008068601313248225313378747581015322005807242550991810824275830248487005523826774519880467334386526662425446393094598209650153588900830504296002750065073235218838025161817391292237796847787367229059803307586722731037470175960222546187388254474587514545870390212318277921170383287284243838494290827329390477137626853815717381488139449185311898813615027526583748668897468243487299687997933452943816302650109139815315198256909740832883503830609902219342530245290868334156103351930720360946004810499836275167802664927240648126982968331881744501795219249128354522386030395788648020178386262704706768383932828399968925769192377566581386810526696944833603628128249067337401078743116034484071128820384888494840141011665762446379088560069111485029434872634351293839863848895076057422317366227710407790264190120607215867620615656805581596768005284110512147323207967404853365721656488919383309241968056051696039577785604282941980301575560054278012303463924324286226790493621315485419091902796713281799008925690489088661866165424141307637996609431165857718953466855963869550097308946279599294961077938518073978523962703696253289277616994914690762068902328396724886740995785981081709616959900210598291745127321955242033169320629094572361666764446762777906603681567294643429695363556361749817484052515244533625207063789942558419181502967601752362349759143458912623690204386895245731708161121886558555704639790147710882226867921694211207348645458358311364988531887747676138814950503385610281252451070827237469236813814180658298756158639213688886412882021709410614817789785324009175229966675453736728808072554673682227841620579870524240075601491218160702732644734389167122830460366618399660539930852657306703234745207263281697214612166913379904996147912315863924815614447457709419787289912152505860690930868623542997130882060812472576808785916981262146590689505048456632299625032214620984552195099550943261825045752468433361712546710694586929009498564746801108241859039323195068755926893602316466343482849167853615886308009148642959758072200588918007936712478421639158043468725083886763784830199346083675951417863275382012714631931846009489925342254962455953763969195708085155159801329400014231794975164874198038574408239381573563284817561203330754396944362195415800579369347280203205367117112841116794962252663651790156897373885156265571696119202620431079449251926757538051397873455415750415289827675366491129246937310552703916231028747938524676932829186537623626994139654053298001227960256031906919587567166869610665891419161232719788463239559486043857627782481690716635511740397338100520847100888453067893706509666638755069377428667621948872372885645423355349205842395737457116601558862288875204242394304468064037912588640097676581351361854857182320365375439826715290910078570235297437573244661054007476574142957760939779351851491132254829741449336251491082842685292431533586809780499117019869043259542201160289075437374431344445836407104574227097223637572361410953936483581491254824297327591572847247666215537573494331641070477062065531748198939398113819090399542946721286539961332505678647753489311384151060694320835542019455593192034121205865707093183056200279902663127948317682065524562316242460698853100458651956371547395238771549198672372794929686157158904495434159427082129932180689275635479142100652336697930359847453622498759993978838288286331410193448534907613482131409373441445046760979848212790953860335821872691266236686993380218551308113145954841073063271260210284474772942248128876110412794326622680405112905096015054468277722297456063956948497146437523882213200989746536597584367086754698978193989754320147428284722329909291839590014314425279897877044468355204239817454627366362611419794798763442854923242196770982763331853562542540286667360498175865911505935345495968178291789897568223891641988779139298602976639410653211385330356765006010404591425216365087775582261708405387840129157010695929924761113004541822090575496138449408651852338577238645631076420367420177764593319960350569418298810275418055947751504047338661924106335719052343188590959242285258911262181453814806058875254148837957988554119539184381685821429496025794221586514629239604131400693957335365452583044937198052953040731270456614235962084472857236504424704774946169899346431848586528755356773225696039879396657474268379725488407318051092340080736517229524186935814504047367524924287798480191452542011335847920542007752994714660572989714525477571148098093751588891917843354482185054260796307703050493643793732177556749025481231522406129346768969362381749668332228495257831044682501828204814140643169571912850260377866933118064740505430111088578934678358433765519117757298845610893810652727816150225270542512228977099261912809729947554298665913588610182051912464868374901405979417083778296465209391934129877515307556879324077403114159477359172484695293110426699238982981236118583831102045395181122575934183021340355880919040679036862348592016553846864282901111287431309709660414315014556065414718817534864528349699271383081790213816024336478154898718920591145563491055562934170103122199273255575640262584932673049235869908226597434032818687289242433979331822171038935304674404040279183168821131650220081070712396010185592785316617142621236697762303464871009386713724334679679105621827409371790063419642443025895613507906282130957729415350869818061302700745250596889769607296946546663623437147672441635019641309712019460794354027557135929126070897325320440192295319311946507052171872286132013861700815719615567765422482178831801015150092585505343556245775464225330669347677082074340925451004587504266323704268216779004585137051910327978624250187650017263889557733556891962638290073379019586514111813586995006859527119316507252631201732700351964687545986176603126948660209215611694529179172629105569604953871981947177954504478013575564146361325652769120224010878200958435846332276940175928541805483415159805925511190721193884597018774817611903537723924129332938896175641294019684665939809653507084715729203283268270180799598868796352395331495343722203615716198966119627732204680003682443879428147128681825148774885709377543747081835590754701630516311568604278686796064740607215343991361140442423547452056471242327274492124148447544407567872068675889018670349969056492972035790039753740827695926131227300223557435852118443516761758968298475568797053237204573310774899943038537649694451763567427752440849703430163996041908191986968406134759639400324335526775962220733516150216147964075676893131363531328320023131214202461038336426171639542421780863811613467429075101071833185267856814923311764136501893521284680993802791063673626838686775529772983194424294065100038142667714685656178886366887686146865203665842149313950993621912694990001748343407046692418878733231894998172657666337186442777617734521340486293411677728723155002499404655022377184298271913894808279546273131976674006895041914152857157221331566417795891607666694814740947751148754443734898000213629462524003961187266681861784543776443117210098253277534375618051340849261657838447399517761546279128496717158407944335239133907184985186335691950092176684817111999263394364848490483778041451062568183287384193703725267007547093024570573295661064263804668572884062095033740926785000196775184224936449248142980125944215616664023531888345404208810223784188863900621519834781732736217463520443783688561285617348563449509426521185631027213058503284280331206931913298841186280009196482203234346700228990922622636254975688935335840176895389917208139624200454119702006732408586814927405854227269599682997684989025213162837297177202636794973408829672071319744784859978891031368970751495335355364547988235944744598647606837874095954452173064750515202810274190553290880367207594040301886430499885591879612389448743350454186824028007519449294171565187527701607297467937357990397656987390851516620917473195087427929634232681594629361427526211542382433533417638873131476186767741012556793324429929740700736144103641010417052456067879536719713523691052107078630411092090195324496765501400667851858468337003481604040711009447272682074327688597159887180427811287469926188893585452104115979329187078217054358452515821334958994821957351541752562256815801174198373770432405663637719535722275016222662278327998370972731548867077097268506599764116195928060021153008156494014801253645245345620717665760651149840652704368081878201457010798342495004011048160390179270983431213578543188451336591296121181535716894524863566225975234093081586311489959421263586796034340559477858173580347683376763628903348646600037789739886651072530992832225105110540894030504669861423204295626663229509269846595745474536667883903563304006982970112295836596979491488694183985652717971449122095391380589274599221672244525565813755307104114958643193067053413410323535951200479695543463863105788070227716228976712658795596058865150455013327786277235973228829968986045009945603830826511840832831653758032494704829533868781480508182888738841020439266561016945967462297526732323154066944494153135588251057903507320135580618467297630785022905770472788516392513560002977829664925760874344399379356235214153177190980935772440513931972199106187508918239177256200452282279976027625534590575730381934151271858339244224246364969996618675334362329758195351327311419822642527008682108883080343415452839971677298433154362106843291913826489321141047657596984050686976340431378176492405088730188071526196136449636488199088672103901214593443226848715843525570697446819546098043144719553566786407990791993335614536281768170788450736748045046393233786986892993709553388516275201706455059906669288297229808531603798094631104015692206761151095720813910345436580381598879478681011042439773846161766668342908740352446624441341569458168370414753715974185020929228554776328701563438009223251543359637320588113582172970466419080745629142531263301053341361539314702051330590953677047503939888318326368445944340442366705922192217826158476930654759746196340198954477279028791281851920675533260179392762927417169677992098078672467925756935639703796614646740603450957018646174554838058597110268950119112695557905525875332198476754588499904702341159344127999072846868965911845564010704521906573191084721127966216016954460306150554505146089365244868323686180992535522524505648991878992029091324279137386844136525873649602288589927244018963118785911003344560656225578123281852505894280950750488899075416752449661480045472532340402386143285699173123216722550421302542050193209976863368050050256161559306791943361574918458936593521911327105569337079343629071253955496873331498885985616239488343991818620895562412292664324045065385279009377317910276873335007531552180104817236838938701514822215768149521224819919901447861642949130910392253535929270228503150857966221473289335472984204217078351195982253176782627702504567143459179696837811620044968964278548670453720888435338250460574751763181006432034642575277434641992853355851691182089269775552487126300439852885561329789210219767583372618604715157151090009428632733242159806409302912685705563063141834584260653459912753234559650007864454840767482895349160292330379647487510574453095494371671711151511478376791203532908129931155420718084922141528542757254250017903853545120123762335330512837222530275968539261250763679164550588480360424260320514473985010197881772884947132092929630190374380110226819797307614985249164434008879901947796072571583595438646800878069093641886733009198924656661899335426548235893245823108251409386361185378624528992720277200753430183673756335960786165589709843361777835776392284519172072817704276994737922397943411890079925574541695433839991296705524220143956519592621834742564850840422788644312973485003379049513401398891402681112146857742904788634449807814160260918888506230441978708398420554274683016601498338414790789903427086789669790941953402885603977099359815624887047061336441551653077986303841333600973801188446145428837585778596854097953808201778729733562449319350472893842796980094025008518491401382119346934416338317967142822409000296843965472244466055071016696691457195212925960359954295940121128926086299457078476503410777947354356581969278712741535048578590781975864189057549857798727777229220545705486826120053283220651340878405215044227972735748939492641390091199676096550705877574080819139093333418135358704666149933770188056308286188622148542715612057570718893392438764341749884344323488447421710597643398044991546109331816150751291451507158254940433562222493445295777995850745736992114184082291345112280541515628464319794433612655364489009335653992164325956545942654082977140698232341409560277206012422478854643127876022690391238052772109580259955230744287361694027212249416377779882440038277920474747461212122148945476206056134592951619841959594492848138639931600925719881206752659090585841419587514065139569904407284137396663670625099032666496215128957649910578215933245938837817409856702698015571874213481280983592665285528613438407942624342886543664046442369267714029940057339448633456500186356667674876688781038442316188834354610827859566737671374621424450478889163582993007012608958007726898571679428072828091479863792691631533437816252973071185940948667820132230077590152877154323327250663707418397870995851667363844518270833372174221234101882438377507875170120247825898992205385852377551870434808083421643554777629805609348175975092994622277440981167619795278814093445974083562092432377353997390720518788665572016897471170418526674303757164504229322048210144735024099675008422917364005844127355361431680539789684677716158011610963608220815667438713206023052923435476388422528868760955763584689352285672384273671230861420734555044344119796333462519414594515162860391028599475464446760086481152925613602836550610910896403347973576873743719335461625411100627306257973060934862824374039435190837644545687392193645770131617618579918944212626084474255693991477766754992771771914155559487629362785675775110967955312509324172864542101304120205606654531206110438871665091645128112849784255572488115200183943828425760334443864849343806309091870993970872602804584591796536689789594405419592346629946114468030829559982958958102370520990108525720751936466530181713236386063692984931240404158008353578773663493658712505079101984731172941215941368001487911658834703213565531614654329850256562590294787308378882958910874225127509505463242341093419134620725021925535777902766719088847573462687378418158886842250953511615078966199739274986092693153344393450379759482898723448145783641707144353259421829824899365298196607382319238928300694095047515851527346208558861872307249000520015766189798178159805076326032181012597675992901033296982460345593814621067602798399169215159552120107966644980414543971416728852317411122698973400165427495168146445931761309657929836761444191878600374145233198134937484037905416453659937948097241452854618334027974929418013279486744795642235758117328823933600259154592557523328872540463812828063133488095151237908226544343228368920429747886794261265859717430236350168552851420467747908714950990909127767941945615313498219987935004634600137493154371274347087582609869644684074327836058505688050739686103547796650204967358677554615576172403749066651457220299753910566291800674167488761181960282113272723040250791104686530894456825343041633247818345308207912027446607679444928211869548473656841496482579769956812075620167702421699862706864367012566911310116964643116805130982944767151406192595310449012838676051187417509193117369456327131320925474776596806862101643725685802354949311117158275490759475785829757214748208538315128832465143798843586887012890501039130094494583994741484796673194287133892830773055835340561244581248239191272907457336671341497655792966538848279811882671408102558733399795110439583657224160185300906875360404402459247034843322825178350079378137975911039737222062436351123517083720860876365323613467939630367445459201727649728952704954879482796843713203627116715866354925499435072853856601816876496390998245954132592973481701489539623096445624822866734658668635479219295867543166862037161253217018177117594229915430602754762249717290610848172781392321606877950347945999945719640286208848310965289514123076491985799267668981234233229443396805563881602419883547661211799908591061097186050110767233802369254537151625903523331902617373631499517001377237616812219821697891352412187424167300872353431239428667906447792589741317710037237565844918793380994747044842317498288722715782604247209606338326211982811494025550047385675160624701412566576397468025286062530191759227281212575005886171387861715755693879961148150314986531759123616887444881328169658347034413053554014565867427596018736320632804917669945364348621186872707001858307316221632896466111390497790932640670925860736774820670688141629215671388506352635339042148628113524663315484277152412051817670850401041573172114325215596509169941678991501793999098216296566977825497775020206803734598487322683676432595109675856159718092086888825118649612904692387744211271478069779039963404911032286298734308652755769068205864374040437300138980192521240282841311555414993888933152606374253895289659083843485018289256284325048608955706344246132350382289557810306640913093248532274768309077364821173858286780944533475793695606339069482421846211747689406225131785801460428004877150650866853464067012471552505548132009679915092564302547604382857945386659120637445523087864135100411349842185668459325875610453960509221337957475086457557767670053065676644098322217403972218519804113456131316953248242823674707563452528065175350480525170776700782397051406058710545577381554892301550641621636998418747872314649262354865462978053399329809566045325386515481332285040449233077894789997564342609212264411279530740849638233149201496602554960749361354234756921698834149396733379389277042872353537373100005724990344949537828234541569462544054477147907288131941020794259066577266783116225665596747930904338738400266610663750046409433981884608422600817829519701350110895574047504011320037339267013135842979183756218193931734891365677022385588579697103862608649115645002634793937587671706840456421567867937294786315342051324823798899870082319535279238204594831264489764211745904963905996975971659169429035736980773329864639785090621844027963679718676212304426225176451823507496549004562297082936726262065321064707311103575672523060864596441820778408772548544570142753023077636197370320795157714244299535935031673565934333409991478102896696429767760265500256162040636855395916391552135879046542712989689497124057789341092834058140372236990363500332305546559189468883131338810474751850367167935120976396353005057960736182053483713875893285604735133029342155846686943314150153831170859206281224772077537581753514405458428544363834951930742880209784546620692171220617353939615404555549963205699293729764363893723837027383274633575638572308430054675180976322502632799680970476708932784994883913867514591542832679093100206297310536641722901295266842710634326131632972164457893187234498150220021689761566455608970390597567356571216331076169807109532769087740941033088815596102600563469240069983354698551187598941648853778658165350585328319520965469231777691221348223274252124313117358942749299260360601575217156468549988232492284138573900579983952463038604579101673888150922140626725576289381784787431164316990911227845090881146865033420618949869493853987152153351727263034496882253341803044916384576754032186402661461984306136454173836046692716140753054857423767377829224454883619806012327200531081392207684361999518429926940770927095382152247258740165540796597747002331113073389042846155375326605108322895181400698333513949041422371170546193631713337424491743055659061312449967492676268182506166000628503245555625629809865031716419849691585204282097953856019512139399297048577480394293867852785292803429557030421799722448362921826246784229561202246915573151736786761895289559246592775777881386973347230942444412485803796638229862195478871089861134576305412447521692996802101821958810488752343772411046682461014954981921692646710740456735288080853795802487673333441826885242737370359137024508256163067815758384879930859276016195044959802888220214184574587596549181501242554881774497499363770831239573715325014667906867472712112047911219030987145919974768634131524629788395869098769098046156027912919710352380031611847191521636840543305003514675316837816947381305426174317999562042741238046701249690295861544658626979690541138313071897843958624779626048293056065148338163581869616933103667032029733173461027348231248090891232951520871801843466870142337947990116328142891805791804701489295296601095547230125564715525198602238813069720564714201300032915164448796853268590238162304189861576969525201820111144592796417378545666229495434644767763512211229383685726017210041950261206065527662918271942143744126641000114728560779070338298279000276240974018078083984681787301417818944403316385258970764070447193803550861591551367003325620995888119174987028660459691516114987767030236435661199241628230907933968942079694077253653369570630845963179194972542173439875364853839284338876091511413559795380362803892227068065864177160200081717518725206232120154824069855625246450225430886946605947822791762174853808287835190587020540214215564852502014573695507903944368637290668501779144335961748871335530068376934301689542761227708805523006521746254474584139951814260542713312667933037772064872434364336394505210310236945620415720599564793356233189525079534384667980283013550234602636714038339446005966656299882159686173619113094571139224651458986522508991885673339284328420603163181227720893558566325306621447522049668636858901804948194976006293939914437549349038351375779723753270256766847283495615316429145562307148232801629996163531405693702299001318067820772289623940876951702249075161637547812617053680074563174406443116107737215238429868520130194109136287492168658321044703841377229658238990401886392738117706329989057539612174581165050314725811858109765834764870893102228050921316811234754607987634616668673508667646925330169652711647771251676574735380891012776587129438358586214521915098557706626662797376116059827493889283982175874584201254105757317044191348239813062956058525254049642224212101852354594580829678706978472799552768612437104307338306845194581965468130260460817836656931045027801679069420055941544572527789243937009595954327257679922170002959701743154224279338139000353684420085636467600585848376750995880923511982485538400248402584606645300279133116446500249592630028580552242540417133327181257543940745568546934186154182008886995006331860769665860691318713056294937861753303171625020250185153318609168327921108093482333339889324448661439181851218379144972983876846028932025920336693981937286596477649796182151570591563219488280401623568886715624533414634612199909102612268878746432049111147092491428424077460742469059706143983552275343393915847457511802436754167140927911694500911993162525225325827048883807046458239894524710883136076952283659004678815978801180894753563828878868272990448342733528852974744715844425538924504130589223730131021817732600582042147836874796234057437034857664819613415272812048011170549448666920958606412112667765679154178358414216069417985015433425852068951308224135910185959200791308715465147915346641946172791677533366757809134841218720026387825405970986628373673160767764238023385338568616012074474185219690812307481903892546357717405364460775405598754727289559592436468943227586235620840211994191650041110633864522765693136764084677595446526046719220657040492909969830220697330509914198308035840062465092350543465454370042349581640833963198468584263473992588605910932436427166488434326656087912784453172820571865028131874168839864164996117325733185923866112242224097320611621585953329617472715655901413981738057765710761713888055817556272663483248618209760993273914987025654384936161941124626617680234047455823433779246578930428021644842994980891998924600093979458274577100781527063388048939233890282029509704460650809084111064581135684534271507480460956270380905335951930885622666611362103312262080735087705767268625065176926483162436720226600745534335900851109931879124992065644952345034285398119889396611149371517268809163520473364086484751065860498934317637783793127265859573137403361004930574851642086802379914806547549845543241778759605179044616036144851489140399727957255657886469227102998016318695169943684068269257634109035432977191858856366370129017724207400155031672164432563391675801841792238064637056841946997800698061326250174969784685860496938409345290992227108583990403085217184771301446809777531283105144752600619873397487695880866675599119053506518005565684006210349974911064318362966425494888246852318232415668682862872552041286263101632168895907566996125032248901192934810696625297917615484275438336005565577188005375029320916459118976247099232573145227763885985348427807675469293068749505997765810475813129808531801403527651966470845592322746658958520094998113945950700551162023012675662684659539492140035032662765860257799909153799214204216664522458312729753345736257600533536268306324693334711690647676833866530624893379390453898018509844245493256334455008258442837444505392053038545155966744897541780332631325262098939475956512073299658762252844481217763441724641458523565650306617398425470225574731222148814829643260968224934724504835987918919691920104425528934051599285577518219778035820238264098639414297524478350162171763921616793305991479011839826346046367611691096155943077448422563069017782338628505368104960800495181064983825279366091395049983750040414277173491397452065332393684995875336486064626956030301490861139194971494397067955066315093432613749733077190758128554908376299306674280691404742521982263981561396310573920989520706570732948264506860635062570979160666032305892148681050095701851213391929340707944815685454069321229794529937686751118437818324704140303643971578313751532037482636525261047028358522205158879602612318639394794582744785881212025006897152780634040860723062631056216244530936185986623524725669319266707484241466734337031321771566638482786538478639071435905270683472706026259385388038934429098494596191816931054806955370794562336559024867841568082242619117026058129845357564490494786007702889951176917047683101721481712680263129262430945081337146195051718473785136590519238616885776320147972119837689773895733446231947399477034949295072316442051033051312084882114517974330022595223518391188593438579304906710137807643525841014079374547443233320890016193211866283892225415271841635563003414117370500268863201305265912350932545722084586538551133240161851983311860031879337643055237674506057459192180712487516869188776813809086788007559502259093696080172700977362879326755713179969987212909309276956366849495170779089678120386599855726804835335710291945347032902094986769463927059159707710368352179828982252912289829635430435322817848611275425450889016607233834821287235269452861326636936154270539772255835346257539302820194968861167942095703859731527541073521158284257725931223426672085852785200261608451852611044779951178231845144964929566566169432021963630881212174561306281858368700020449704689425207410757517615604079776325980323155750229469827387630424227327095471498982180869811349377493355771114853525985320094217108777877632837551543141294434517247629263577101299085733581259133261676404957285655809844654250336190696764585844294891774438412428446938640451426983030522277594650672021436847857833376278199466370323282377850809960462705465268343066194328950223821175050178064383700710939610572835449631225580018877332154136996358043167461702601548565490120051798312357328430062836481025737699597284962448675297832554904682088169897149356239169911756051570204653283177102679292792360058102158070390942076478153207055122781071812731222021151279524401087789389251531495728181238816239175656225309739656402960625404939893898816075499115977686439157813289659208850532276327327687440585654109123832651211966501045555789445630013585118160626969134744325086730516539011039966685440632338789470038072166400205045452893133141450259064633628189095563194919769642752940325134533361990262403789417906336242429851424610817961366635114597754196850300121271519681461470570909750350482510981088053720016940888633147002864803731210645184866132441674080075372464684523712711320151955291504898865247526758126364044541678132033633832857125678205280539453205555885459483760649298767645422787699416429182200123367323094601833370539562877039132408805407961198243919551683438304869087842610454002885204910198121683430750011423983357721720319601355343999259015436239571307263244791591737014211515946329715263849510829832736620151359545219830359289578150632303363830726189912368566234270361016811001131202455281679212663269867249092656776922149815712170677151220647189330147179784309361638736975191159436143442565875574782881166600670683835500359903048532279793169093493543625136005842521774365032608774714568163073656915247899007912119339266593439175679893804454411621542456935805040665755176258978189812956848878821747547763478602802716409646467572689439697527037782556866041053921614883043697058632873623096332913113285150347572997724446653435197413530953029125475918021236257602046320725773653984319872922536046848465960622412988443877532376709064266173741249889875514875602620016349720707640450801750015229476578087741616790401803659201527667621413890812358334729607832442930254877210431550225751892935345809784479930945665628788036555470747312546525656577071422872704243344458834030553528164194389556204063570615469744242906279891307312858428082753887340224981054117553139245813440435675381625720218777084321023874026742966768934248900836458052867123531921508357451423837244905295346533811260532783537407666220999784648209188238044166176591877616111448239966269447783795550510211636115425362126964504252108598734711381883937360363275800979363055173221499410611836387638475782119768682159399539618712449011561290471777488752796741739533359265837773057020641744758654220898704586345361880932608483327633466468047611398353168201729122008903305519314874494326194309622769714675179150010948181523717801228597999458964705441348182352850385825546772512664305577618037141131404250197278758154014616073331855441869810781833465086657866013391917513926870994000900760395693643200306493952098207588449022698174147473022673405863275466177306775049973878934521499649255470185448533452614156647554637146484587958785695857899143156803612013550434345399193088665846756658549046169130573366770655189920991217193950772766685676105466245366575634475657471524490177580378621804260962800984231620546311360320420265058261952247581449745385809163866185693247755250752715816850061921757518125010501713228910808814132202002144772373357419443477667664841965341764275861830087832504600893232753320453800618549672831496967774879098723480334164678645418114300832221520924365793013332975666483127097976003801704286704463187956639803186656823312509618913109736694538812076476689581091383458757700696708509336600433537807340712873259103772828068326671905785446405860322180897760889268503790079747708439957294988426679538194153435673153347737536986145550802932573200815209507190328378146337715179239590231662784664451078651514276117504669961803355845890928601054228489905660616794766063190017329833380651905613637559676153134332595896635327429695415750594763646066926904653204115824258685428845865022731237290615332943062068614734520682686286407722053853646562972607331611730353892947547798095801379597715586385235244986705493735418626533679824833586861760529417428138737362286503322626988105186637281728841930140287473044303515185569730563256255153228959803416631115313652588324669291439709442384622605793334431151977152216306159474331299299368272012745389746461391214093163983939767257035348621737138069715547305047807927756511743274648896852059387669019289267153865211041009967872934848480810446835630496394589178180441292125034145970626408606811183831356657722930408641130627786696777937987804460705824485470801608595289073246991366143599632616073326707184917177388966407714266936463838300160822721975052303976971337171061203125144239022564717426571258478696071361478970313973149093529022477686111476976833487044650374233936132243955929167890399541512607991719480981936974807977511748988882500139452688679533774879339682082084587737183064632539570965301767835592599340040865122485943831296232382225030472084268827092299006774078785314423892165898580303174585547041399926923289179556376924354372380300034338586187882238126345244838117385721819671440124943123877142915111661800269845471915123576813545238303388879832908143307927862925729724827728111487548545779803431480304122871320802092085751493186269014571605075207657766582121420047846533666457340223908032859346670742991997425821292521850928723484552485040615770549788265300098964424414211272255077144260528501378518168658266008372830839733298330587166647095467753692672337379606693166087245506996374074757804774839854377619225388322777773075060525968392262303451802568665490740453741948277954024789852664171811080107137711502499319211923394008481565555273037965600303773550947417320200832899591948950438117741290274370228294106098373882154384014910966220775238960569514500904413066258343724464019246676428710370211203586761982306138671755871878585569372946587965971525872249236210542592968344717258821333629488253841839247741982614742446730069359495828054109450058091897817784242946941778545627489853275705233956093871041804690945556060173281732886489968131891265323371865905880300703888774545161634509012014513147090628268133034312081659050913628146149325659032714635923119326797093720972263783028390431303405903970290471204145385437799331706268997946481192501107759685674504389776428120706891961492198556825058799519042442166240623983789414988673333947656299699443908389388905559328939098484725573356686557956787064232384808088248728658373611798414988453105195491739603401902795135355239113134070181770831351511999921693007958759440816229052147414474218990503586885058481249841369535259203574059446867545887078404299852832574836971810414046195231686844975247991059857489684495351848675271134218901654201535958985384056539259159331625254706046069332753354095077748103403136003185495095153259283545631313684266322563088164080342364126528604671681771405951095095223447839669714827293313313384959174362082572754964608110788416330910128593740063622669005391496947084173361251583953433139742212431808722609809065033976496869339966632003118796995738773265766266146340150938386430722708020174336869387616293366574175809320394854626825242793655528930145519428089493881793912302521759268058009258451185125655497810929931958678000145167009461990855365455584874085433631006367560103768350875101728375894666082149813605506998073571154887037077765728407249252562983649194111036532985124939638250793499808263330528432766014437367939273675339956649179522425296025237034605237801619119918517271110475463438003481206658787498752185644049309835299632000041563767052467033248533636767762355498457167338512222644619323701901747984700132155944603346540203456449126195377290352763436423536885069415239842259847240482880097044647911928914884259256534755449332162577510501471198547667572092739736112522837410189871363436076484606548000806678671739321814276003108867040141527836939863352325334447735629458332150707322810608406431802949345710002407899193972229621348009933593593423687163960612060344535281260322860402388080883671546248548155789606459984774593887038646837613745504808011453295907340399343360157656642685305599647874293337081691522792920114207529760266547386564395309000709677771588480372439757264577110376718641360503086439934236099538371914828335202292161315886451626392444844454156838390006533388753621057709484076293098949603592362938348114954037514912019861115266251835405198796530330200164682004719764470564957734629725669219476587037047397393873396331383857811087170519357069243057345528395784410540657048789745873431850041539114476844167240064159046056515701763546580567835397645820547596150004581219378358955355457741765614846522136382298740923708137689351850136940985311596818830679399441038826194970978945805616672580612985833851149248517727329979849409311445357848451419820181508498999611247224325472998085605647723444140849048483347312894965984352279264927490687937874048345830701821730854440284548317675765938709145538805338146863520162459446776551638533610498252047619054427116172799729861515953329739649398427053243376666867585222916853158880242923390951732712577250147215690067378155575500096358156447147866304397545262010700135930054508887011689131019262605877519176995130159218250745648786303349136138683115423585736522359255002759856890028351348828896159597883104435718111778596354732291664908488958596106012888245925055414023906022314784467749210957811129012772260780076399714203294684588017862936829521205673154654301772551191680501942863594103738071277329516930763646277654419824592412896904963478692084707763618182971564631450486467090515383243168500742548303925262972969086803486842027516224916180139806710548267430672985389639221373028877230850792526514089644847048369206903512624479105359948436338001498628325920539020204528852077161373245133250223110990048826670539030336650529215540349045362995583731559148170213076439272355870787981003819935079322864716491222590248005991517436576813765403584047092932041733472803246919593339066951185478206393663670068554661412749416254431695876799713229677294086312459243555222325395741027906027228863381066709669759571963382939887431538819895448444392506306503688866150654736553787166660362318110261610183947880597207151407958509319078834067870550325941667311223792517417037525805446574994702199451775111086061159922131633573449755665275573771198378097619803447907351577359818260373217219992546232976047323785842810557993461007309824505653370726809055758057345571857792259848493812161125931320637408305777569109051246353102919649091433947215555612489313787090324454488082937794234159165901528832783468040031367429823329994405912328752031864055001610087768579344760432960645397741938069521356011538029611369276190719806874985347978869425778772241176396083531821014912886328779729594058495296686842480168962603864537060898457272552724076719639872906161017453716269583561613721010438724306443059254188431886817264870271372933075813729335658922932339179859879597396493194361093319098858706943885466529316393598053043742138470547742917245920252382505107435938340782495037056889730495078724644803117681504975591137297500855883531328559115334085697773268582573003959522278323454412823454607450103443511916723105623292790689870805008690284443879921797879060997866966991421975758741327634524391382219649466494522031730206607941573888341771024866741207895104720077668063776302728814832081178195083712625556491403722149522548668305636289129082069503962263311615751245078681394861318641632336959503658240746891977420097863424383369207618534111350395111425961580378205414849522607268525979064102495800885839482164353126552971974443544187533671641857202976798706375236727893829405744583527811308197288140052487181350589726672224419087083494794627707859097417510895332553652165246944400687591159610056624166069507564682021315635784238762058260295485355101600423167850752803451989502596036994222489339541310416290191763287105942482502480561004754428272712424893655454688974912567666714823185929888324479044931969037018662912847463222148819840177362501043698620899820862348464657752684756654134972266514504157110989576320959762303378434733118940538019773531998794030786695382219930715539781644596130961303608642024782885331630369902444671497141865585691963998383978712490440090785807199994201533606449932670951390979930359950577549482541254465418033379497578569477629753151383970435500764457180775593056608449130532076361677605200151023569279798654613333780203826160387424480947388556692411800397084235966120682603575094483741659548393385872113045186211275076592951203137015539013617246251494692064362711106113431970312330418982689177630915146622566165547442064279229106063935725961360842144641619270501696668229231655290601265906449310487667990238460897578508020998360697982032800791982772981836809554949907125338297174415898516799954162015683266280415393645933517907890667816979405213868262012626143908605363485155609734186388244418874656083198459086087848267320941904810166940800478453903026571649296203592501737914933196379515555695526093398016914886040662209218180331166313117102068609779352691564281592252410792435633486659453181652194262692412866907972765116187013734041279722097772939023969149824789431906888230931169422554750108883403619299420226966150953548592473140866204186966825145871952807926783615232166050056138563824299407334053254309891432981110995774782004377596069551172369284355493890463183261579851886808881504346054177080767812867254414517315663877296939431378543926492894385927560393135874840909550425410040322286318826605284203330649704975739795783616287036333342987618257531869116102281273756403395370829257019963647912994513271992405335060728196536283821291633213839249838623873776586468844605641186867230358968041996975642304084385343695774109901479311252786340272276639796982480855774348333803081093534371165689480276995647191684061827617352120188113201379163316515056557482162360412996331490711110212629820754128367838202993348576252935390708940050406657490617451759319478799795927504534644146542410331237728609595599295955322845593804086417776393898992910636630801005873485432436237569616431981495287175050167038740961604505334033594901081223262059325113598145803812808437243055029394137399422292556164738417922664916642342260348926700288167753260305474867173647332924330221451033007760884805901300473096333727185962190362374189175267528719798509072556123069039211437608784438939929041626315233664282138858680322421720990712774050017011498072127085896309272905392125318936526356726817702421880743826900591477195283765113568125060380583138624514518476894437144581626012128334478941844240809608916065752008016664940838880862232176529472696515577052090259683149394435134043059184704453878437479187971854466928751166851064156035684445400997230083359849380213575911878632380646714006168331128168655588730032617076236062776171831870945391757452589112019479860759079574645821768873135982554001236248810366622424322807880849575289507351070663264884959329936472282485404151015269438032995546156974117166535675932750345926853291995041067909701386506223702581591443452492365888890033337300652791310442673893879207966179210466017057461260759829369599877952951492426576789043201902171633557242052243209513545319476497149167597866703798941946500140187241723122260109857902181164953839583848837807304327721321195177800224538074844600459055977116765718389966380714579079062520004383171112016180028175617701944785044061775043580493096824998590143997844246389621536670105617810289728536368659756042313361445503960954434785579820154135288567044511268363573763318365935577368848562510429200468489470476674916993307304189306201532287895085976057372131535821492718111110418147910877127877341243250221662759198139988454577927857029600311388946422285943568287276648780182741852584301500716862022495526973495005746448555097229447132769204710852557738805954251610053324274131212898088555008323646372801501953456913378393334077039573181480868019255555660018601956731253516579327358663627094061004246138687827550904078217825019553786541930788749098044846601850964040959472376209068793915322362702101704534659087187716069167914393379799777193207071471571126945094347004562539444740572351419835775707148678915374927466286543780771136383671498118357781606203009324434748965258021822328398713695133354699229261219872717722778839318367854599516366459918470209131008991104031350592046981973932132564519854969591075228695913921934851049285139621063070231112116187631063070897456658203347534375405221843317418416136395406455594430383329404655877585832337967598858370417260849633035032977764863108106042479788770934830646248007714943981443911000067968621614486583614671105327962062127771720009350446710206582704468745579820355608836558646181721271812725434501857721667665328133746082027789949286080439896321683379736870756245685593696837342564753390821354603225496440378692692508628241663513035822361745495207752833676572081864477851840968052798828146497418510843631814308349300088380130425280661891489860885488214885491290599663164607594023754923949387429929682247237391154936488235256529168594218106092831199457738447869557023299881654723831389632108468553931401219181887849841934205890455285251660940579378197486358670102595582215355875538793262893622695902498166716576779051904941178659873388794630898181428114120922380969442960944417543900633522467764036615678443742852473329352972165822260178231167314706727230095651078375444717221660532027478050310014202250805296764937151466254459744993695382951809371209460451686850291059557349272156755719231188434436119535530525593310474208253248968594118091632074577660431760352841548761629778974605202854899606111461035901203315117059743792808100452554624804632218376842729291432933065169338937417000104663420068341985449905006670646422740653682673355615015523236682496408171332063821745591418035228344334914374953245161697109122932580336625179917378415107038172244738153260746016884918824698134096692036688941779818723807024684227416034506442303023432166980291814402695908400839158877382613833947390227713760200821505310419298637559770069831882920766267132270494535818866282127629123736487207025675643560784670401120830550691816934819995975184415006268445305230318694038660322404950647546363054406398401859447802446951676399072086238035675205775291739669284759258959335107412287110046701215896819706414896701799846418326111053376056615570084763045438053336809295994030581442192502028686953196000843559062138768441538673807620350662999456663032744539472445453637130507118430413687953122101674110753881515948810515066336050150097789556734703197388928572562890855177075172655768467958994566889314289190972272847895483816648304966943211810375352767450704276091898177556372303806435612963562958417882543047402638944996344361181671454354797682527697945089431815588679919382245757629687963416467471765365754963001855291954310898195577494653553428703345630116192517809431120243932264110218392099938728174767956799553875866248519018351995516618540162900474102478758517533404173890420888185221288326095503681411043701242106008113382765137409244091164431481302523908094305999866548315521196083878352245831521856295725054035791899550211883786289658855512966516669584986504223631908929268137701848881614144035309747626306176089506508007668306867890491009845395226366691144276700481703213290555742134265502688924588525910208104635604403108579519068728007252736054962129110010231643001745181856399318837300556430086483306506599520388619290131012368619560904170826743389579780299266631881349403142387319529873719812438794987511175273085691456129089473067528591295549411578189334802848493230192519987695582492776929163145766591020256842978455467266251713034333060379567778213128400819351275699595678736382194744498875213630316328103327514248898621195150809267720061722858252353120766746710107349611819057840413792955561449620388021579824720118071994835078027229845503863727957063491532650848827824188036384865662903828348743214992490365220258903734337669297717060293881047789580287707738291213720803814230747911196738033711490918836910083497982541779050881818534455825705122787615776660392812099213086015117120986348801642069050028757650873363589667564593929196486109523411587941531500499960915402786789965893625317917174688782030284683566213402778021379020326080429275871741892243433674185369395703877577752230803142276064986515226891495623340619837785558502035449717369009738715179613376368053187773124299368425526555842637945009980923247407407930175783861090483676058476700188966158902184984913793521912646023168395047829329492179593384894322808668286309253070371528329559442851402861878816618829505217667672339507341597826449805793264715375857568346001178136607636193197790114917684976881628328663149644859265506487656034832771140220682592737278211579174898479064640398016860266113333603292904519353496040017025776325156726049940425653419369394270631654761202355211415995825301367362872037397178031739697008376196133975870025687521493013157785455533407052402993609665756485507756737284807488915873140508854272053912870271409205530955880744619064037173195629047589807635074326818778568004011494578917628941710077082860540560765373001811680737593416102280823273638219313527922851100481747058612564195133184707071105403700806530575192537511059528609967224924609577062592867260442053518543140782303538135146841225392314469807560916162401986151025762073613738321953255050805591206937352350190992031499258211411066794185770853458105231249984969303001051076406063776970979791537309869535214302269568191685080387578144842766479593980842661539841162607924320753225932040235442694239595060125305254867803708842234896360364688268758543114253897712304838317318362788053195627233719745310189187664924428205252630354530333127532225883526115680099911451472628887607904084726426916410689998740049654131488314940769050444548693171342652508788826324504617935839797266797686854795359674251373836975564762071712465064410176923222327362103170636809016443746432845295288823003691384673786369449842205442484631726645488648417744494170879859071105342832520610963063163152095231024119060242848252343739602487790230252404311524118456779123910001455006115373126848701545728655958292901271022576184909326975550629285090022813710443812369378098777354743556663444580015731893856611541467938637412206560997099790059454641153433432222245632008603705367145980368738885856559696404097876160825212988954223753728770278156366397045849757925065506786805304971785285564322207219394932073543612198996113500530948761878202872282054317324719771754254417576028372152665924212436208887688979854310163409799462433285334804868012104043822528500426528646449870485779743698131086847993203093791550176319097863126320324971064669687675866923649281661345145002375768887442645115558589716709434272245185058781640484538553075137823657986734522596100426979578538883397632018392971106885123949495000129945225039037159894345987358892275895066412773411705470389266835574377483537181259479653261191878474876566040013330163213337295796524135195409564846111178194146685756215133270854610584248297847568938600412939768239011559321615556444938878549444424211691635867729138546020847880323365870593931504640005282526038794815590584629483589007848609886156568037852140119999786288743855764864407719021096109794462173271089718478915637628973839221872234646239789074050459586741843698868489942010067516681066276975567183356103656035798111884012799935715412422391596545600521718500034882899749596117211379730123231681484398977921902832881496929225136388997562439795318065977903959968931468523985082544915390449692290404014183762679839331499112642488311953166124926077936642191410233729959611013846044562408158827728858560692259941907571120016075515260794493318992755694946096158898444963115496725512744754794089565337584565283568774059761186169082166972741798940336509080960111036244963181716285980728605313003409555225598426192391922201593373127292762059416289841859271110553931039675570271276196061756796613611407858630595369457192460383569271246360065853011472510558165435682150990444155896104211026263893930200659628061713006165366199424737551971130242160540678907108932296464298157270229300425704047847048736270081921579028562859784711061354389230382072658467780181470168273044418598233176635727348625642345953039758678023912843616221200650130833278915860584717410485943978858690368443706563289378378284907211646887026232417728754288858828064506568017123972809835607520333301878092826376701053038942733392040638461144585963112891130827944848231004890739949152669498638385989103625048956865519027803355189037752697940235646525108258748227239621946162713543774934321797437608780705104215338717580547599298911137268262034127465638640034465872045257007398580447889990641052813384810457286733376838674767829816769995586153256634263204549129220740665994032878249464366658025502438014259121511448430861067184477556940331937541398160669030663232094446889967825393607253668871547549255819135432576084435541702933204616989847487017763605828049373457580465129489658659705075252186656813205917658725085221742800535443233021004849926137482870730053287070607958579084571822020166374707278341953109538280750604302184506436344934294014697471838912204715944716506674725021295947452513822940036876045421177254540861413804743056738537118371188876130410896851213214478364586185716984882622696700824569106431721757537496534143947869944769224307709003719694771945054601368359641971770599097961383670184935857969544176675569021553294398816481801016446232450498569211957465797953759581909547995548262870885248917929107650473260743377505490732592522923971626257590098186929078133489897164259604530990016855260941518018116281402797030787540967579442632806550537065961690901892036709295373986378976694182048576028975954889872945209079967377461165637208783949440522426509109559365781742541787873779214583750226042199002449434936295739794173042572501440861591469027778551756332906450630015612527438923447743927553578345177065642710255981341721579342554694101701888075652413482879218708976763247121833583717996165768865068071745568574897726883911079162918573084107398246642760072909952128884049678878271082702953885855481733689666832508797666279710468581920885792721329188553923408882933565707993995130916295289694057442715484530143334054507037597626865803317728044491465677419336040841786544676446962014182823692847704606525389956020544293177250489848334428400260447258335517506718531731844318397319047239020507598143066563294202453301075059663224217026400684346768035562381569371156054451581582670552037762124996859567106379012779102555866731150268995509076371757506325671923033267975412995816919030406527064654589145250029933206803189265384115207880519075226997720002865333806472484337949214169737043759936979918239784035190402979973671040830194240308865487752403889009557967343319566790188258339002839486873791827032151971883550936839178086732781022006411438691738402423403879370025694986945877531912761646340565880928827734413601027737672806054791669526389696505155523279857101138292979599433860098427994915021261015535678965156447006750845584266824408041483416292931184718374154354816353299039719113992653848615272637783992839677070832407248401247526013888654034328305330233503402082257358613134683737559216463583102983610244224045418806096704097432126054581317577216578868663329122139344305496218008871980032131345703325521451277057479381556354514224716710863791950661472618185353592826449623768901552321765802973388181336662270005229281654426637954346800445655886468428958405693320354238058313258006174625292417446315941909221461614232345137020138509472607193924639949624108099356752735322451833543942218254538021865298814972188714416022460245477785881729007343078288119709899500031883630479398860288365045657404964381478829289243399305379058512010726676745038166025616193558031029540504919221783458456378156789802309735478496599724305214628657578176020250508839457620289687119309211801389572161288503542905247798979125331881945428374049655442260665347984508921171665604956481976677573906744725520728768774938856396202954738205551604125319155379117849470843830522790703461440780291338405684031149103931825698256884563312049738478178928651666261084529205301449791462981523777889038332504174313226507015980065437295479507684936770672163427638692769471679313728487104324854208932139252234652583537327609305174605172594857618069561617345759285686995070318617642059783594373010200678003112535601995390842077414977502829901149210833945342323208608387543769254829250233860229931599934216292201642599441843198230966936052373108689605868095989687460326039614073220308832744080424011348246590883755622673719767161280424235853460897354978223380926087104410212220111826696434692490314304931078216342502928880827039878273848940725819272936297177169166047758818516045739732701580955430155436816586512241626429220393204953814103641982542573931676003327910351835140847586602459791978949446449392446550083119721463949969957105751443347615466719839768381542917958587509811532398027003060896460275682893291749893822691347090509306753579485307407445024016063718992160885850781021963114320899089002238547114978473603203603281915605510600883544407519322096705860629050889582383600563452198606059053795628781670874936820643127979008395178616278759352708880002553673611874766262788362643065259413989656492683051618641687419851020349667684347162598456645366202700118767071648686528242650129757790257248083235727181854189795863698866744443328922356113180286274888844718423638690763183185512692765789651994020312986867939358952093772857343994464417070231967551904633834651056650854435784253306711562813413890975661788897578870033472799964384076684358022793063596688490654387279639026900413157762890976519310293034933882147432900524535298424463414753840756397190255148499452415682869143756957084496206626191788740896017131030341718079319841943046073424249528697851938321316056130736786127016721519786354932563755191663021334067143026967557964212834440365390559388017440054651095431488569989733506988806240813630474015210718015532560833022626034508660328200619446614122617971266930553886204251455461114562969744823439890852678888815221537791433253202305598581260678205638279169615069538715105595855147537460668687006928320984362496565690577528645189728693583502699059233154636109554617492859599969438131212340913264318199510415860251747718121121585925816237933435010642765175012397391171235810308642848223029260963471374301791811601269054626485245368330880712710588237614319561157539100798465475495529066216287246547900128282722150494535695381771365789430003062104875937116705587346482569289360976366009244820688322978971342722694157849976683618376649504826258871512733275591110597073162678281656587262705206287531234444320946340581554743133585546083958564407848092717599942493910265222262607564094214038366042183443005452615886339754360805061286076743081699714417579815638200100884347264014331410908470957079944464711350135624443532411716000107437300339043711831126064523615387454002440029339156168487314614430786292241993989196263057764693422933824417415735813359792228463550413489268905178341898238583832624288764505924706125601232750376028732846157958556120090711499411472280602933344693706486119368361167282795579311261148208850808799081321390506013438085181310736122819970395432703246894010524804039180881775686558104065806141294715864386018387680464709519515741627833960155977128923141445729524913740013114663834818291698609804222779097195566004969177939542139557251515096544552336953471287245616457452018579109700403715599692880395177797903972295546631224897711738407079325109587544021211655404763523459203798035405187608385458567325043669430022725637150969873660740375192057891325585317431091639898758991488805755184932202033000394903991347983633206535347548013627576793828816666119466116902709428125365615662114720300384959241493420636140991324558121088113486687769588208264909266654837721752296905554699344389650609844876200733955087319434058355040991506894709945115698044119858212867621877397811175830463038519764811426153044185491537345012135865343575358750267398387258485835683413733043939889115375905463581011129850118400914028202448556965699755312119151599268255926248445929796920241764312372260552181075075360009643377072490205630339865882620343219438583791036976690882273081879475582989525438596163592523216586540684106410223853836031615721796072273502831448585682812291371765665858480549183325588266682313099040255095916468066461394275765071163522070272528142609557988140345101942287748574724528164148480747026406135802505940872855838572333459920734615083180608407475298376143316808033357942129198933528139175273548277680113556652651002845345060645674124852301905475234956555081198164047845716928959171920707312779257878090620769729638102936925156350046129509628963065475277341835717883607053447131093081147831057230268608247777270762379928449323166149344705033673086338123633608154064152208033820331482250594796275299105454015225531103009614741590408757951174284617992511779668784937015791661974728939185466022142233825346656576083280823178403395116067221718870831319295646542277381599201944462396786796860046406461544392307261873852926207474231550292032189661919086987642227512630623330518378307747538107254239237910560599252789259647994430611702352809165694384077519402110788262366951862428023109938281048094223016235225367314498551430983013433754206106527794700870362484490364528719806533918960959197222731285750554703799095367729741914534754091635597802220682207120990592567814341634242410650002935978682508061616289937062868394991317925742463652068088195403271156975196676320562146880355559258742828155798904212062081661707250909927732919214947558797715734550129119784793584154328665566143373967735194730446677273717831486917317964409851350811134402885326669207898329091925040937709837060581447572537354380451567427052783950728371332054590943400499116372079664125523633136721085310607290713622237333975685954006362567739484042230074940828301094515849121068385787934911727051499813271655305492393646891858681120032311429133212179695354762851206952183627271210477293592087077034657182512346711191305767533726186967489300946940459196207680520778516827954771106086461612924740654235416884048906996823980089838179565214084212333698105692706459663814685465254812024070612980438795569891902923688846311982101069884572523564388483572979798195023089296310327927103230211927138920902566356719096498845700491142877327221037552861814856822716320475633709419540219109319754344628023951235945231363190069798690107227958060927910176298072788314345058756506941230796585146146182056634188309511046894463059034459102904417514159504551659187640642814872902981646223401559121912963774334867826640889538480469441041081720939316356582652932091235919414997344268758685939979114852746378180946449304678895934107515130771603739529392656432271335223247036866662035298985750152365771092730038556147253062320073248660827140309172809915773236421473472274305531673960707297965076620068434270100365811193729936242626199588594664464140855062817145434721412491505830466676041911194423130281396667257895240101822513036036690664071950788952485135112070384298735890875466488635368061601855637315523498795840284298535683491915147575888987585769053161206069063298000584522463119431674428667160823772184280973828090040878894545239856395235860001954522303572584477556617436464955815979405052916003819601680928680118489407826395362758732963329326677878990173934234440466676583562816063832038820580037331552996460415252414512258519237761196755370161567967049901179631571895515897381567752153047649243456387593318656467779418280279363852955832934973977188276142395801608947199044504514239728865403320182009910776928942707387794013508848126171651992147419424820795551691429486757367868585071828174974114358448671306405686684361816867709971010818106925337100960710222264709435036901693941379445911722572130124183550252230657602283948129924621091464925530675872219430693114412060245283072903334027612959868754137770006324364679886822576541776071705427645870034491189839302988369671395847169558052537666258879954348538944735196362101931151606827417007680468990648602529184210392307427483348540197296221970762572803653478838115453279643235313683107989851254362377448201171026915874846337372354472299645173520110044493818563965624679270200714169857023055172674626052775869606082441921147015316272061657694904311421009738679321610870223737041769729257282054275607151206182413552708925511642607282885534411855265942417665806558496299794616799803601260125809777150867850923479281389482588566161717682374588249644377464096037238788593133160726610707803927968239130748352679423692280712775075540216636697402652122708242577597400033134764957190405747869016209852108782021964668746085566354943930553243559384376557765209277282152461193877548594775415552680691495229993773205149920755130453844380643102715142784232889934371873858946923029221801484217820952349322213433687829714906005488000919635253352004751710639600516287264870016263602310346980979626098771370160451731970066739038025078558748803067969757171856633864028182216903821733298429258858536630767699849840778404206429581524457953599937196793284811808588948172989416744391920032278398137399285231347229262754816468229605876780560876093729254406964113263193875914850086816815697096700244683998347972799843226791683803304707181763515963982004833783649174612796295257940065464227953426435173668584130355838658216150929232632721727102236332468649321953499439987507196496106327049833119807070625883000008439322882480862353320298316518729384339450041935200266732355097084723865377348418023100451749424811243841925197593335046855443845666352184575432055859089375412383789145414294316658068450298164434979495572492700357607707279288238574819811659598312635248195241515397065608245914996258307277250299584206174072160695979648649152252378363436981920173648265875354469429919909093353574032500279647833835872041319111329432489545869027983554990039571833523280504118604400213414544733747242419905837318603423633052513210808422194693037405934724787513908887232409267389579967416301496544340354093843365796860513510816285981892459376527906428538699570423347375312542626759330460412440684285721155955434895333858308893790699593077344533432948923130823430748282681346484393187183984455897734421201982786043770510293216242997132021935089402909713469693408040724316190243267999263768445971022599697119397830421741794937745331960225797396280792689788139427785869430968105595574567022651528565058571675638177389014317639605598993629688841971097354124975838104008066534391978290938893425782757105001300763423549706336047913336517180199965213969288965761811446629117284303478786803175583886609855529433023845582049280622285308420776333190290859610452589728827749999644639667240624995279709363345814356507219449387273765505021767890776682215800069343245652643746548810569453428819930466175908027691318530815900715680138150223520617407549100937388982340213232465711776641576134845670758066852627874107985114106372030835424325449251234251615772700811599919902208120130199806506729529896005668947501923377507819019493709106905024713083434887341062192628939461795246523908654547087954492469999712984270483222482844333569019263472358487810711286828236144293527573175532380739216611039808765437636900808021871859394582843658660559257447392211212387291847698415582097865712711091161065714154534827063071488445876523759820615927988265103781757165697958619756197090830909171254486465556158252879193198405437227243100120803514106199105331921329498664355283989927365633001551476677310731828585551435090205016429997095000388168143663093834560397143938843521047832773363669658003109730104271140123124777435721128658050804893429630612426003117656091039229664242419219484927216034007120833753929989284040484499833682929197635341941633677373531683814827065000763305050064137563622206555609082606430097216072711845567956363595400174654335122259594207339227518951646894910918647813133278599623911047520068488674521585430730648705093410112330595593575792206732990984322249452666496222585066499912984094151306470208683183898419939142658928265158322591465851814360605052025426172877728919647626842542099597558506911503432534763556939044081347541521040108445828348985806650511682688092866906265647599219068223897862580197789573894493094971634216493252745369281144020834681820091665874177608764230024981019003463556925243785356113122766263776208328213366044145950796162249086891430109719249948011578059708305303164747983252122650808887827420665663474149017597583176624120316633376569414208652024092890921827160287131017303574495686898288394003908165289730196702680176465920800614457443603845944220548469131719353795071784284157543507701677501715977962793295255471512026166837559056275963583586063346226451978660113180713275652477262455290526994159741020115849625303306721444439982235894144014293888733337189059337407294595154996705388563102178403134953899284983957699532532526724900704478004072510262696624563939689517634892798737925536753512193656850420990011739774970530091069557810661801458505099207545626953260777303133290074965404299775778522995185912372970561189470474761380105244559118522067512121815833201341074357614207704579665403717819658797981159396076303729255651700790957092526422524102928233369288961836297357103580082844847175910605085112451359017785305643668960967997224185880472289992712074214901669247984837246595852245889077118588411793374733859561425383375161256183352031903310610243240379028152780108541833960429167334604020557942101158372083160875588480535265837968511864570019515595421304481169392372404056656364050803592514610027083746500816712341187555043776402935629547929968224955845607428090976302994804979074179676182807586760625640066958446094759292002990552021742591356980490139343629251498689077068991606489738049113078481247662053469681780357293022990543967560396696951727616927130232801035395805762793673924616602004526306294401476894341182092759377855056814146567294405989824129512018432359368857874837706152980470746263468186443724842859542324564681536278352432723589238467743506102594561861371987552530154765707451348053554183792353816216580614959491713586825452960763010039598919665503902045438532819309670335102316401601765905052323394911320149399965992437259400131955316873695433861543214593196891606971148278145836140515893544268424693994281646090181235347879425813983979253412543112923075822497845977551195693120067426324859841003161493322765057407709649962586253652749841460517172944505256869810166182857549045347924124069069019013670151329634057981189935973011103614357496276873608483272668081406490141862941910776420692966675438279813565357957873882664443592953090839541031862336426975379410988097455471213020763375329394492092715549995811800562385077676971588694164600347535016416455819775333869417724673820294479501023369361159074523680397350564266613521196223050056916822105625885135169367597620860261588209515812478684435711589536097472972302703324004243238970500851132581451640808296597960616809957860899402428575467525738568338562486350652297430059723551644893217294553937271163364397818391827398583893871067823146712850899112796863469679661697897812534642296863188386319516317222237818899752283921353582386580185886688121760325636609211031827145262914562833113401791200520263474036005455300192089542454815447199646526179231680622955004576393784534356720534592594736460989813767592571437719171596701070250323140074368900756283907675553843306133471871702910112070502938764115279602115024850024065275705840847966563226046746615435279473988650424714068694742083321669913392592152121822763477050546115778144677748763562906735904199262350838317641026393122808347153752838416064213493852737733781228990520184233326977357467801103458427445515147756066662656790676958198314392131385958283247164980310006408143225128876276664105350451679885649191317994813449792231627822725445270222928343974522062951643167195106243806888860957154389428295603837252462756474913653747639407614658439023114222401018128709129116368961693952640000756057568347910566947369379022125951811933875018173438052278045179690401706160936161535914727358668745834886875841253394622914224175206529778287862118781960468515232074181858164373933793867334837975275965778920819202089532577012921228588268455058368328889476822197309110231891672047600857936499321830352077270968401175860487082283769287445474258614526752246940703163252267515464454548730679371309374867676034280379193741705651452696529090778069043951361912812321362728583665490972238321265980296873192461366030606970664581684105204581613880938411640409341703850940638082097585917487586806119694505921964589285385128997252685524445742007835741224922988069392120048163820914127853714622828375403576187079191606615404047637797909754753499303499170510270696919748468859598328377554968705740441179214541693381612907145840600176634578287868168658700913957650153055839773716038922088958306792588753151844857353036695249955223256173621929477669009677301129973543180055254241644603186929959773241440572128075586016489801265397311428785331282900404883982640253882365601933525566195472613237498561225331528453428955300360091124714245982728572034668705086537387294242736121742784195446422181636162205900450126165969274866215514352378073169705165242858417372766999097293371042149496912218871902239724378580419209079497311196355714702607172139337760325020421078992087638677174334307321683526311299247786799443577386293924608977008444821773179071057097725649998146750278777408044299921713089311511448077718591607928885925509457458717401819419520857086241408487830635788109222184763587887659901943233478341251482554165751281309184173448604309534469673730938802821339741363325257068321869316595561920694802483933741030789770426372037575326736479770634882906966972135330632202762376766348408866818858445198984737854139372614163184445949442081612532152959558008931780622637439306294127015098525981946140407911893173729005405045545346135988332380941709389500346318447181162663604104822904545937969552114413662039418338937072278708422278917359914890354507083647467144365737619379694828005764490039329542626477571985489745064636820493388953473850788542853990898190632085940363783300568951105610376372977647190741082251121858002068520460862143146688119985742901815858316591246627204621396350301349973704546031957798800983794904470738231871355399022786579432535529264298030218527963874200954758055557415409143114261796076118610386652591249835153774677708514651981319726274528939693909613288181335416159502815801708862794712659628194213407744863630382337656456129339110944254711881564313163044630265211582734281239694592918590657105299470448857956973978926413024015554334733444502347742302548790613982138717422109857636784099373332478233394139954802931925823188329843505605999682633286821351119371948699897129313523373398336739358840921959526045705298453221803334519949498517610560017265603238018568545061579521285416403197981867447293906672978679229212487073474455092448870229439693198315140782915380206653980421311443409844086097848467117135017787100488463495825899628459178196090613755829927022473545190366526293285952233008703974354075124063805645438019109709026324141657732803707203050962679348579158696583161587316907367149015089241739251632564731782214875402314475108531537006239310756835411369664046953428315456500440685467667856544951036294906116547738393745107848393512120646541542066518343202484212522740209660317247542814220990781954915445986467907116277334697733951295723978498509215845638538416477342882192079941858981048153594683043283259695501513938659989386397065427805906007304433809076095546938473322009222913171154820462568033985961530934719047258133321760129333262908823540128904169348334824453983545264235615747341999702657758848392451075703637812390982933303324451522067394131645942493318147532621879990883443607918182329886473950973124660913918309879229160664442143329927638216359783801894493493697774272601008995310080639117862185074864366864011443932963128182420795008200963348883203171384316060440481862520270493581505888148034507951007370763639475107180364050810115846531021500429253908143142201400359161365541996287440216458942697288547242055040646364706114319522353667062947374066467460990825576300828170705290733628340549214499720841415410541215070427051655226311131310088946926113340222457285580047156150883815210680414599586756350104163048535899775608077579905394686330683542691204360136372120276780632711929335756516681531750062173028967805653400063631675981529837797713576898624780141782939298854322463891816847130475901971577985429299817200669789657791862364881717338658432410152136215423467094382539247912758434619678444069715131265485497145228259466825299756077430883887210161317283575146163895976658487089631261608565057209697839033448304799582998336138881275686674551473478478215684249321724964449468065021739564095045948635727702330646640294413969591406908445674907482236090116711584325476332784999427225934400263005931958845249770861162711727979811601683436520690001509224213617014891739921920284192398947663142759315960562593857063804805964940643509193629412123779921814706157546592180655728724723765408500676596428500835453078422407624967653788220418307093621583673155632013961220672581839291708058598650813315945461224888929959950036883074803425020528342578943748888979009253245576489899525107348456360268801188150077110905540971521498747893529932308448264884925542616616558952999596985612748416249062583894288015716413279593726128911797308153131696347088498217145443654703193825454498991183089235936510253701233941032314632818701258886021558478856171261950384958900236184581077954995634968801053916328835831367804828038870716246616417550909107519926584129813115481751818605553723293317250054878757417761725665118531839404696836382069260813834664375358300304340970051089079236346484784800518865177421213180539626933731349491318985589511963020163611113510969840626576918853663013681579738000117208262678527499641499828363277378061478860609490512986724146286723790314739752905134074160870648053278159230997761266414521753570663589493146193639049776917921831325413748466698395169945757347685930581521320767171074773547992367987752810516870050712648376373028124108887532633544953007748168985911536197288248359868204832792418051622231470904042872702808522292724210806533543147008025084900868679458607929377035736682829995124050152452313115200181491218412940606401456177815894370712354437589310823027908206163363746161483306559902844125048525672111020150842933468604738733983667656057663626249990374227431086727788415875182258277676390973464508342670684845326672712343402708660632598490413197505837179629938946497699078455336965725324355006610379049021980157484773994090637047525748239756668030589684044087510254263772212787254606340740006055452203873536254414571291540062714361412005897991109883730783382342889432041990174956176881638635072224845812162271496720258227220806583086914162057843371667066993235673050634902603041369811803150643233824847747911615125284829543354534333772790719905590262830294634951487108662914324759998721796663749107346508715961403728714156632953464125544917156784649937694444248024502990692809340719778471254233323296115289479082241462851096064703930984003293182760961003880677064016338650135104824788788126054508927018540241046392045381116360226166493570302622429716747029951193100439225333891757086167638792190933835365666854467624661671655113949088145837508128004343129206047064797019334500129579891958100271108962001985626368076554872987375647273135809905452455895277307349316908684172795884097666103379023897589450056569025085957390288663152272881732647353350008424351284313586212161560885949763921988204125283423855690695154037716431961505584608154033712013218433994774637596551211259027233572227395140804582290939756634417240034260434808782944955919547758894509259152586047361624879232956109715330669488270910818838016621696353015669352107185547291494779949250829240611014217340693710299209801892799121286635517566957411309376024196835932706199853945701625943971778891883924468458936335129085906273533014572858198877274675855838088960195188982601614518102447347977958532178279167229860282876646291097372988388169260110538218835099972509962339555691637919269349971381389949121176427811064208438461182925360055727281772558729304066175486832229104386624079837735746353666372457904778357559440971230987618015498278181410100247797202523082368632988900756087386626290731132252343753261302594596265986240473525951625194456167810146028853140911309356024607049427770020137229652662613430074740131435137372041998844543811119638773283138119802216030210368036929531639476500688937586602530324551651871881091777235772263444258258777902417793847872328042222057063982236901232987427166621072895511450526801358010909703805215686291917072463582394961391880371919054407987239167667583588229404580563443541974200094278487585251610906988640859176760884827072514418724966394132703183355518290511963716230842800859316724869220144059081570342926279777234004810986951860797919109767898580775111439256000524947592541490318988300962179407334757176226893897434406278843093276198783266615930172780784088449629193977542936893345106336047870675012587145819932611572919123201343803556299517472913353705760827299035405465448831716059523758111947873681178574448887878127785390371815957416243276117913333295046580448141491373544694247600306694452483612024366981775174838851922719623051324893292191650208249883957429656551909274032755352402517958440304369470544410988642149896936949819473332088507792816319498047574073065453900846803782337563964116932951393018249180061985639364916592197242881423341272851882802024936588845601134533275848938052648934707623058281923333987309695100211236889357370417901677296343200219555908161286653595674882480632951597534417300914848001125195694002480836690708493210609814244839866566474093447182628409811450885894699746687312911207669926892557655418277162263809011797631749553710234031586734042479810494687122576275785627274322641188102452424431392401967532473591859574609456251389272216202221887777057475896830612396966415049541811196180127288663497363875300482729836191762729147590614935453809373919507367639807334992488807950740417473911253870958123976966241290723022634656789824537995168047131830347850403107501940468655974391372769868965268776223839563667760115063742786946959466988346079039344489963462072065497243317020373637693545816252311856202484138279639466986648528622440164946520144657360187852404198346809217480208414484536323815827411752450292128850963399700643654206991894434909447612222231531553858476712549265359428730620340437538657124232606918861794918860359753955965882710556268982868699881611168338529158412943910369816150390319739515234242170098238020766605040802174727321772998419995955020538265306078361723543187867589005116897513624039346988829613487334657554079554788013593975511600226589113905556226811755295971170864388993935524742491689691029746214474692647701015345476968740131481938582066211883025437507696223416451717762273790229725641463175623388909889607405311746819084093014884144928475007226639453760243064241127340434006079211194505804310381941202548853969550785966279347491738515857408113970544550076728182319684306652144040864674161326232928300760677446412234441250784650130318437807572951083514659059911995823476831694840112284949720787781716780948853727587507474551169855603765497087865156874271590078924070702584718533578734156677322675655997468818052352913889267884805668657797271886440741511052598452835104213107126845687543252935598809577672719454966520593313173723826083791320933759949388151843406637769356040272125675898840532707143006949851193635907020399887312587261299381554581683647969996366666249231190741882876376929316987798298748695966785782566598881545576062034036067840575368794037489215001109425701235340647221918176360638207527326708227006426231033422382861442449468793971600591939470400711569632773514478828180321594700846789791831744711506791822225842989295385326374021898406163680513942493806188003999472984692347740683610029574766221403647580155761926452334075610356392588650478826858905988503923603108231757084214909866393266350623731245344380932039663033630192390169353230815196106441212448260266336938776297355735167577590445905738672668623641747059705113895547379529688221962606465258085545247726419731695764123591689254524255271436321631733381207381814226214506149527727254361930398781367686956992345356091732028126349566108762058125406517328288284890052674298085157851198111969278773541954280082896995625108580795347615353867640082183671657212622861213785586011652598136100886452989232231353745675062873599890113665954532979872870683864626503574638201865371754837274900856681630181574390763418321129780401947859027556986310654919336889991106889861093546475233692651543265315543111796745284026460656815031026988028286717214662484655264883022059737935930918395711996941372423364960437031096017692831063930208744496740122573391728122613577070158477408256310759921772990621678686111916752803922330357282926021927957606624127387431717580657073393443444523121535419408594379387895099944823788856475195217238955525770280916295357107965998811686329042172596618426378227131597989506667980853251737945107104318329606338740549533039382226295161170594684043483972331717053124269584882179232175794427951450904210935087481916272488753016221414406443866675893729397785301369535458196356302306439048306730111817217859557289610213462920383727181682888607658856856344990430470925456375692458735928913384490666895269891944501998959607495405406191815748513205283589375767610259997574725611466111848870441402300567441118584506169727303853685184402485645251507253747087470893936192003410612649112161289348267478491059688562332420017050720854846008980999502815780186629629644035269997207824110796681629740072069137602841583651233035810525037102206983973432707388423307514669448408738988769087756814239954929936120044316413833536917769943762978610482751318357380848231157308239555452458985632786845772258672551484919205692149883318198599614655729881339235426809709583252055491387085291287588572596519046649045002995087287697453432245275148725400358839150257710757862329972885601139035389252223560825130182288915619139355802308500075517865991150393270956873963286135868537947742312225532504487111022467691105592386729949830053837770360117445086945153058098040640558514805082210337497691681149392485911271486226532698229619055349240139772584798456444458237791083173019233757614942950431075013291124153248233244271875086179637202964426679490291433710302913014210598409716030880012941996375941052515925978812773317522707701534783290805415117743018732899933568705076320629846866101446039492433487456110804353952240124992399493215723045620371404151553808864257662098012794458709559327364836082969261408985420791502804530129368821272176099998698965896463271313299713282795754460328684887916885320646048379542183889834586553549560704480372150236257017112503627600739610551896900539107135131481838759835767869420774332944020823734212934682611139119409107289158662802602495558428577727251257938127477037043873395879446672162958966275852739308492530077099903558368349491837894105063006770232200499349482922327835462349043756020706496685532706273588164966311999415952794866784952137598089465182393202282814061610952488919134007973577844251411306776524285646034794049454682075154230890589522155532866239040690697768967322263421314050819269257037991665682806258361752962366822665934971556078327128883086368023513819214524814795266268389902542760555370165866649452799352942510128890910471360210156187306328973410269063270157720358928392633714611471723507116772790517412162282420744978028770864428889345728895048581000539211178969334227926736941898953340715374502435033525191387835865596889926713035465589841795635586858589872724006764673625781716009699422761031409014213165663227527065690186374927814339690664717914228154760008304468971117270940040831752424265512613265649497079801365598997184221759745229014533835164075145176914898348446439270874744284317064795160485853219678554902033871252241939234875639338964216251099997637513162623590102979575798655451296437529143747150345893424944463520685220778399723080909233465164013009466860170642525798834273033500512580777819048461381605220373984840777263431234631710749979639634637523092023618839167055087569976467058983598031390937769347052861392930178605107266083521229733738771076463973791539705907051002870696634788436459038619188793459228682914658291350984384609552902444034986296503736337543805803049112357212460093389128278376799235054462985673988225994063963348268296234834352543177463215398236225898617059548539932666817338585903167792772262017126057501196177645419661432064068529417631216334835040597957418206934237832553472503389745413429007737029939564714630701992434408895663423788292915621643732182167883813591522867042597488835278400033245304224319259867393886800192375837890232240342575703603636005304982605215915346495179787862837035819727453663999000414027807011573680407366193481586542900224172164494527399304919572606557346762515888435102551533294684752852978242447231437945005220470109143014798579732647120157033180242785537432771306836389121304155278267027843256573876149538001843974140250422833182878613311695939275938696913924446909948899759633530062556580224452358171246000763141442739278260452858299360057269698284306466335176006852187748354152738204455792618798984486012559947899431100912282476054486159139640634838109913637869596637046369972048838620115670742372206654264578126351010603721801558374158100711571343452368160816235155407430531909149618535866307697799161423846821042054508739719422418643843027436781519266067044452173464852014717142068592776478997767731602645160542435705759649230708580953057937371166102368718359000656598258520029843923522493633952019597651503936001949494936002525834555571340593219356361994688845420835182661496567462554118657314478957860441358030688187281216032189961244578410472185735123867071846658893053485921387218169433350020127195285994279384552134015634280997762047667811758033121395415807570691048010430957807602685861292485077954082684601580772065747580585295196558134665903532367172117068229356068593659189085873522592010355494849770796459165976186817192233504142806134579580828211834513073584460457788659766625314878373351887211825074422957049589276965052186692460881024025254379318840029440570101744049688548826356349586245424256753708624421928352322076410053734597219595493283026362775291657053802672948899768624837818430519586058207953194354546303056191196096970664769458431293188781627574141120852096040017937009573541827291547383874427795322660456787554199369364645155168971388837209382796980302281836343281253165775514963119140895134833661082259432857713002484515761872666443230768966392330737312361110500789043747045093385747375958169105382660871841134134845562607601853457844746631462977811911437785318571819755960929806261269036517467919332052110435776777319409461341197987160109517147056731587171615871706087249096352126921858594122647279294168806716568020628080665573236068063951340704431016977941235127943587017408531002257553924872691611027724783860545056770374010700366452977080665524236204692115524835899012395115979524226934431466562083217166895040342942251799999765612347249500310009398210663924595349504168098742930470743596533598770785101240694581163741912852319731100954004442693808597642625611492389972295140115473639530412799778904580447754661878544401077165951024149669857506129832289941454421750264439022297651814563933191043319182977738711921822569687279831058550014217090104242093750264035906356480723777146716996255168691352770654200199403996771439143756814057442685579694814901030710837752918254767948301062071459710869734817692405766217297591636609621126953550076709078363025788137167343073111214004443175656165942897155809322650934762325750810395620969072214312290419794334952260924295156537697511861345120092773875117446620236745063040150085178170280727012715455745693582599464518594210057218391625133876705491166813537422273873660497880460280725656800177028801586452280631772586221567007434864936941927111597350292660912960052633394984562459868299361344168453548066193888604594690966880274548394443389526839454609994522743041927226886045012096897245942450047124426887609058432139389317243885707328870204509547287471180074821821242000295365076460925774550583704970826801807299553811826999563389253181870520698481177589139032989746718004081335123803040376284278874275423322787531484668926611372088181066762300420949477049802958514125126679685660027816055986575845601871715853316874112489214292777800370151815781137648868580927262080011552452196016183649444337394560437369367189667701812576113215319216709278674790485601260909555665850060559416387067022828214510606093848737987571781705322463444380997988411778289815159742126781516894803367067692044937060810466123946690278460522561897335093539240657652019928780213670180819910588293543484233682114211989885085165231735834296919006986940515732830366973793950161709616937276907913118505560455790062104800345111228814156005548762127315001349367767393842736841091461510441882559854236434787707025541351201246055428111756210148565580824525718349029754931818487199615174132952322177424260101059459490308545891592524090651641825886911603189353545244746374752000444212143364649460461777535173509321132082865561392072767035443450445780275442834877974707737769113777320370230587184051366126467091564390065518985037030021028201728216661379175879010133394812763841709248056254828758501743062657614928706298519693294248261896375942485391363025519268049998069595932581345794444016441965217349151367360862842348851188635175217438906619705381930638788461144308101283851956376270266631106154651785241031477957476693221527312224800156688783956637149890443231432554993856790845669639607258179400455332164461130825362856799411417544470017361427431401387072027606172171586642098802030897050722204984003935307083696465954199708482852442933217197881092989980234892766664511230420176987380961665895809675165354767172955493835390015694598835728240533513754295307595054203963040735606660867209641637983481275750754246105350467047824959017808849791022457511509610453905243582173948481979372153963436640845705922672484847395890100750609791703289341894048499616283212780548846064613636229522411707567373236819650537291252986463764429374718569095470350467966138207754447283115178428061088191695311052713167620715118842411659572646755528163528081723196561387512394203639848827573711898754153615552876795048451329514441529570280353310721275309312921497265481717721553398463970827786329926540591211835804654400339566588974161034004872478062350523410027373033140294360685557263276258279932858231427310259895205813559781878533211842184497584205997185045250312111978896984266140151476027118834875591022267820792886772508480505506934728999201330084966806476397251432179762941826240786210652553554170268991787176353462439367158899694541211275519702237195589076349215776717669422402532245860152711648405930346041192211391879254499377649618727998174398377679705567393189849852291681276304052210927425019626257544538027269975972321229061642827101217444853621903607853034170288345665873441022923636707565036959253908787202881181699238511469500223379062695164119798490583282494849220994491074054482918994279501144424517395815584304969278182132612687341740057446652804556581432403411884833602317907520779500733330281995243134858387953137800987539872874778007888731393117452268627010570436362269938541387740554446726504344711895238013079468028816704762638727857734048462979185581808572343352856624669564706558282714359156195967183262280985633275038390029386849847575490950957148117613008950558989292832904186091240142900980537668280960793728222579007169212806202383901262395977685652914403184010490670009732569077999758585776837030416577799076896464658054875273964041632195997843346637797711034130511501390241675030391483925161217258468153749895413384369105902817456550269757931769802809434815263638525318990973260637995354958800925329903054473559859190538562445180535605656757824753909980641919315642787455547313336033411946014356917806938120212512022915481657763193523882855231777797064543127857636660397021568731576131987893317075396807308138839478188711679604659080712171548143846185671823246496197698786736525020681904931582744210744242615401340759136166758773011895036291094707695263194088488791809206285860300177963879827017692860046978720723164079280388286975800168438976013091462465706412355957918432900221703646625037252843939257692823761500304615523312777552884297084674316449767397541928325466740105635925994945769667821178781755353125409083140541119649558826789336643868148247035308758715005394871555644677952929581897099422258931241600092687280297048038149687997407178491822175397152660576869116857873633366474849437980498696983247099347996531584514690200461852376932447215968613273129236305988569442922474165984939483445559825929561010025773510376497895223771022023384294406960720027827734509229827500170653436922830904817784552285667402133180754392866349832982187641864448365433725154791279964714166292176515668261527202014646120225278057359040069262075796541021679206497692136000212443183409386623644336047668514550005152028843157601332479902876288845538977188360305073064307716435544546512938879648041236673678254861613378223290053690300935782312692949099117671761427563833051044571988436857865140710876406904806926047080588361402791127395229731272426972118054431887170782038141696348842597340342466940693992639208200263039081441603862784437243940423156131812831595504736972012840826571708111708933265899112069996699336306535691233870427117251847521010078112370560441132936317837661795333236891264039310132379083583776027261007293109428209843528678716091483344431027798951484945367360732187823458860200446603253856820383934032276933504562481121512883605994948560433851458416299524719112156869966437887632692592239766666477208076646834541959314361755688378063202725765291211507309266223618497818894386714159300823890028213917812466261567820808443017254804409019825707208430490165725625159406694851470827308181726884891484339485140011649763736037843773966829587864752163555934877141161400287559562914720775404423857717972768772548709193225881624608460215618522587456280470497367557931067838300206091259757282568760496765792403298602266948520235308704381987342132996051258756836173745871641039569644206661836157687961191103702946626062751720273362477099909914694135815706751431931424698908086692812595398076644076528187694499942074915860217553187582217435344641988849896397328217938764577402774524101818142576488908874019514743581998015275259933149787043260531123544148778462755803012636598383062253133439141027307575661594205573846976083848388177659551345021342465563291556625433177579731585588789895030491511706103820115246696360518578986187309727352434398025131733989222486149730751149360005126243431125926564515274528463336169215497649482159249917046231631498170449566991684102781623600398334520602599889479067359335856990225130810549231120226345501209931591740905793085334550821943283956440804268206363453351627376090728708829648937142925189597765679006594557451924522917948444686024803840863317741914333703225415803962641253542162593434604622418819263706467572822656981169091539090992672424716013012908524889675251123281004078550678286805480357021602116004327486622761190446326391482476891254761765413823407319420085305399667795226571414274516457252969058033951767244940062701974148052871516285118162596191454569982153827557412622189257428953314597463104480541321613148919093283853057760761619515845767376450755906633016187362843229368658533959196465156179465062930647563499950576928738002520833975763979776890963533766848146577389507276672596090059970998298108244670858997799704811992445837727701390247388587994091250558076706599447328878966316623655228921221126205621828848755148254223289250872454227557353299374156286478148770635269582719609130382438636454907133235466848049710771248961864511395349535085224009285656910662848532958827260246040753872365520420166227489406371210861140551932960847322001260190725035557439958249899715373129726931648034369194998085126045449941116705834673042404433372642829126927687679580330786862251816224202953292161370312692784126535596137032209392629390468012508970157473786706583009375116721580227216950267958876350179755605413352561962791374282682508741422814699403194178448182602298836666855901085987773399613367696712876633287375191706226543129125640352070565669735735203222503146408826907282898335115035137585344658751774143140323088947241483317738924606203655235930803555704712671853746574560175696531451549427583615240931525490472480739015122337777255107537150234414779826279268964563987229136887125158849898998803654594762397440370783262319096850316612325510683060130099174593887300938937340172045989259751563163520131059940797742441478308873443136483937613982655251499381511124386377661902418354589957082963688202842901948366963825421693690013504511415726810803483280792104968988733881797460991082738237496924464340892730532394290321484630067701288200585771696207152030526911482420758104081609834175983760099552768203131688850635311919796684863022496583772335430040055951423726911470747434507632369958594126063982831669116231452979141941300864351196875837533835619931324143892152798647475489110202830282421214060592847202552823361106652279325685421084250657501631743691174499939683025532675976178557644358007941057943596053162925929092258928171830871700176444413050670526930004485178020381898541906825389601033223418595631876464033713847455754194958210933185705349065505604581438483337166408413653772804950286165997208816468506993187131352628035346230866613875411502643810760686308752219021221427741594793906631061697634982075582923761345671006464644905146262813240278443458885071752116470671601193776397030767483408343653895598199601095201005783411241940424261748533980836717773854448672898386151934217346786304620816680990922984013566727844162280959488027210791806254512935305502153476086845009700115272531516589119131509922506704431378751009769452821193314734151479872830378540449995373005252550557749622549376597671992894265047813986121986789914159910644708245224450200277626161301427248217133328782267756917479013377389353958150497088018711152785111766579790915931518406944941556753996954175048401899487052156169608181818142655328603659541426878327702078373156798017024084982435439003361577181959502095262625831471880013236345224165042401635213762274104246671883449690144273764954477776765569287518595997021872884155442371594915483659575811464812787231782900596142848211719870361407348926590582555501303417140300198920744584874095104394701385668102900000785369438411028347446516056498508979858934379096528870369066266684723340560054002597314456657997577465198479618183231190170365382523481283881239008710632984480311647146760552526994206347677024624734801290865962307217188642069943024547534112631916069648987634382229516607410234328848583020665317208502291154873112795936918109750034044832729922345605683383032112051869193244954673688480520455527046869585417954152182702959047459181635212743794786446771120160669371777418415315039671180990564374852807193282663430822717336917811537329118811826172319647138065555604493014858374365473334543703044489763775333127840301544442068049375908215305022819034428251914320184299977684133461694213230984049985942510502910263945790599673887732093650446478363940464530007333793242629588941067063464574762223678569844254340775979358071078900799444446641897650639237140742254952887753312672822826879225126279805644444576428029139494327007496683951327209167280567530451539477523663972922362922181726355961793903247649002623331314878198937598992123842281878210748581102182788372682116297117614162279788437831332261090490776669658255884177315515307349176227450826461371122646972527322049498318106431836387859501913876351972492023608658154507786658750920984997713389047861886880828922178262054589654028260858782837026679023606156615054106299084700466625252189800438057855965681429685721444486193964088627751278257253932443260439378122399673798655286204505737485142232333938583612412287108411229295211413893676092026320335779148707511934304314103315253448728845710542865835517549232279646214826500045168399589392627002760256692143550373854450148553290454937103427141740079569825490693441710160792873807961778224240805596452646256646934218662979371711744801610059099554667737512305618558635904183035047700345949134060268103560756118628255695515948327222489253191124844270225032477793464406882995565846332259998918908171373748071160426214070506263722282124326403026857628184324977369594892552447244312472972740154934811838848883011508799207392465029023429723350605735112049183027904697119117017995994272408490886616160040417613600116789480914746951782895520241304696628782063028043344108279423322668446679422253809389108885443124119742655959956556325273400225268466373672131712532750960952984126185933912962573758882555504492511163448729207545398444426622207444630347853905045245262072511498082772662371588865631303663414806884823838414626160035638938239335048219158311901740793412693554860040655685935989480440358018082106158958485632381475930113211393016567632964408622141221979751648403292638994564591233726928792078533273745881062717812346025867176396036513574946394834970477247606298255231176300480301707457160913113894097172020186639148300367884302911290520537560433215502756539664858477959039491625371063670725745876174657021172664818866890562026232677594120432487929417387489437911178245215889457828777766191065204065786296575784768258907037115048776621759679745572192623027433710335964071359016743998014422823630871023233744522176470745672237548258317765374765502754257992740291151982943499611211349296410549294213808260834085120646361387130243316398916354030216948246912881988711366618662954294350160413948704165211448981530783293330488166450001733679397915992836031057207359517357056696036158140341424211525309032406786234667357441004166717129355844604011646552273301092949043388473163296391853292865321729862520854296460236365934161511823273864667795717286130539365094048528354165755308228816803155229646686089546006865831945916669266591758912193258192321021219138980314708389741271924137115679445891722725868221341359038727814234563867143175721277881129484532219249627534726922020935455200230843053628599034221012207008249020187846300351622539713158481062065754826339849711989783120843531725109654461887130902098414150388844939382374855834532813904299457562326690351901661413938901261469894864133299711967350809934226359933454434026846318486950126031723598861833944599727465153250691113804734984165348524848125202038880976047517890555058703593760945338249919512258673213932019575125088710840073756257658264808183129008266342907089242616420953723653216053609497295605895961496686764627486934033804761893855190371967726493012777858784974892743075603715224695349236578344912009241612828549832098120302775087367296099833280035534161191243215364608441836101218320071257480056249273480924701649631888668285280700726656341865051703958412878028204978118897349344360511678648617500890531456413257617320942892653974731355886300732880262069577912653358551676721528310159963024606138136457070956701031267106244145806323370408814855353422276833356286200512198664385892532821317668793626833325060427494016353068077326407791393370681023862568173176751907143628379018796707998996327397128206854891139259765525940869549721677106118672001178043604182804717602893965187870562527039760991086117482129034694980311699104170225002343879920271544846814797727737036573680423489448297790927375127572859663089561140805772512086050724336493635124361932046562002677379637601764112849891511002242495486447485563711476124001812220565369590683303425629157062829067548942816614113644355859839651865365107121758836257727809470099549662668992792216846898352400399107571278840582466740141338739330767816772693513142999533683453563515478758610968034769466119614541176511903252608099126843773476251980942391870623381676343103615876509631279125731315113663976754221174894269882380159199927380955452358151058402248075438906960633957104994102309158799694388685106507091923935077319371105371147332556204090859036791513405245671448837914664345301001607991305094882349747505174477961699692713859702958735081244848595057997418947823455163519882900853327342562776424023110514462586637295713161115932110546501271357547903804602481386990096044050372541784245890352656044872993073981386408566747129211172583601657345146784652042199010729347353214648422596375728345735797233917154145293263336046698527307025128214089703589666211697797995991919864875114129022103585626324069186165660168699748767879693473647796045909302111202753707251251044289657871659231400647456719342437339710907048869962600603658677748995664571915822180067913883356799875431174370211556469656616264083282983079847979137002704309591680439631869192899649427185543452692413549627321449074537099788112865734937345214076693143455786134036972638546486355816032872282296537775717940182994833419984129323680628704356459444616648287527937422504122268038469520855069361078842208242094044148753623401586163665035220301202955652619684293439700902920558267331525452325465726897660440531875421037704036701371305112543394873814291296354881856486801140562638049838531847449467235092397055432970318899270008054577479219518193738322161333751844996540352863885475485047526241181275581648966856253930347176451625972883218891115930655587300998949654999486361307041974641574818089272034361917529084794920620364832131454789976312233899394184409424244298590189211601878069034527507487093944060362161423853724558997104611037737385545712628392798414855516866547470298354777899769471077821611677875982276859247328825259919416273471932286657586343168398138415809735844259600740591015746700924293436060471829339726706419817226769377330742092019776415784532435480237110322140281044713904248377433303299049129317678668621219849166061718493961775656213790228650220106431598259927989323745406312501679523845269147908259166385471407638427491398860604124907592030510262901980281463146903167852088904227618513976672278337611214007322563767342557750270174282362790172631907131383161374684365705815516344983729766372170552714206948037295718452732973352942858786267385571890728694362115051932377771065700143461607142295108488487590724258636284485042505586267937676553061030579850991096127202812485018684518296561300694908277899335029844059621448890253659926097743976305367405479672532362153785233137193461292441589476357659662300301319383000126536098737695842840339694547498981543861234710371888335271831228178029335140098776786724860867771630486487219036060156294828136219933042169545760561811639505761762219186772440490075699201727400320933843457047071444003743597592222547116333136459972245501753641362297750576332992802224908015019133333296533680811203191822575516153882259941615167800733817993677010612261051150034044539672067801011887066145626730574472733229574474281313934541436001951336981822135312949589542900585044038721599141735956560827614156855169782818622786252063971825395619966653899611669789735089581979874743765344344737535883718014000819100052896660002042355696006568895505289219961166792392945375431282664669330311849586310010627977631549698739292398910411610046184466370268919911579676131224513528558740438215551506194022642296081100355289980021126106116751189117684052418993319659321781276275739077033365875030826264652533571532626321727778764761704893888656719109370637808037478249519657451289029740962754889924458394180481572916064080927663846401611213069015242207832097875317533101183514442933909113621894176909799518209100899548133186556037174120653407941060386608579288479474399952430813586487039628901910260666030203410574759009716125094619804210791952899714837170688506082747815757406929311564174934308218189822878495407096293119139675800611307203968878206198393711007915802117935734367900860096874280043938881050130989762876608430445284800205361677831278691916270665727254015802281629872043767451590270263451115307942812049000700498403051836382932394458752928045210462226367694067448688752363001212762796313950965191363104139236225893969472030417772246117720220358938876009844721393735708394152649373088045996396983487591014688857990972554375177425656926168796181132124766098452694775071993174635953955936070333016052021037878562547869156553875146448126356233941091803378120524987955931359049910399253761290570476326992339451533637347022160182548189403032047299194269490146157840929992939951148088975514335598942122810741561277441839831797689439686622565538442860575791543139342272769431823276953928410934374441111447820344038730392927566598113688691109238374612475919242405799825095121923667263697939180025876633269932084006640524277090789815460749670145767980245450992846398360106837879417324841318232103937167463914370539988077585185249659063568187249585189648655178092646457671540253445673444876235337733987916841515665979878394536323844785414699558864024688410555398888772449296230188510505197055659659839444982823461900862529489006152327724975753411340396893891380425734185569721202358608555350587799634673526624124064899096228841686950335552409404288668334451610181329082158783292561798091555543554275037761857448654874444817884745413604071350947291645395732570481285741620947378975732517189813363494433200627268986187060879979425923368619750027848662710720877706834220826291001922744154028213209044391291225902625419585812830405626148674300947828786302753271320604489045027594047843721847576158147897956031625414916706782148877400804825974853453248530056920864108439399374140146858494583495259409365146660644142227454950940328399087952363115396919898471165703143120199764759462131408123090813462928396870003557283335538971465112808472774123696794039062775717533045353707650536716638254951655816014903191655635405438405163081239431210519724587060719352926656118991843113176790040778058722502884288339554081048063892008484426603186858403270496728529672384116598736852854249547745214306735738218522920746604805380740985789880290679330870936559604878049438772901676063783988751875669332530980012574873709467957122204340476663994337852961283947687293003669089075931756881475299721843372680650590180050891492246781480758165766042271149919968969116419200762337642554354295837076488402579646605699262341681851153672694607698154761518912177201017990649265267662582375885076980046373524498559547986232939369906341104292557454387538576013457738356674591260881420925232186149211396800739824220268128475886707483728543285455127294112062527932474308579450943277469674771719436301465760825540530294882455488543927261756074549493120377567360707768215915248967488097956256236224956975932300694236582133679461647072027750418274630630379644508969719442821014586386381668748149411328495976717010259136482613928560839873692197967792308010029699452641105200700848812877862919508641732076127468483160197090307258130713001930141296217913427336645725515952805275721887713842889344930002402791614785545998350707572265641837851161035416413474122025081579055964229796444228618170626763337815572698265698874081154706626936346496436104297892928861528653359229263812730610641992303788092893101275484857372789725446668653757791627341720383284764764935041670034644046808306564012573660298297873640726140844718985711493400456845702730995594183351357289566023497256180380507061324428386959158675366782465335734074260559746137039911216530244907195497395183432807680758477185426837203177834267376572018239883104988840100325977469636642316761862371501429885034215317620215088757735294369698235907928815541075205868831443750853056308598364701425536636308726794501253963599894484281925372404488841138071258560094253184206825318581909316132789673926786253199212890722864275340613886486320735963748171253738928550525689346960933594454241763281299800831654699873794734038291692935437137036256943030476493038628455414009643667854155600512622740846715946133386866150801126120065079294109605908005618668434739086817664973857068719242747061618954264879998392820843642259134632182931017150603221774412308187549294316687403153916314023154513045849969137857562906088404272049048930293402342741332138659803168922732943460454413495929418285994666866001065440841613471560411739694617087538373458971308924664578895796838390629750912465853182350590716394406234955891406462048515209228495494723384077876675341813660808584326377184374823081791202754334750811760679388313373654670965730890192674166360697788210833947789973851756898076667257234993039492066842327913824450456701589040157912982885596874052114864119442418007156375579626030804719913846623094378036538472260665786264652131312693439481175111496630810372398983142329081073343930328014904313773727549295802506424156246800733007486392836054350972868370384430624509540992453964623134965452987973072030340550656557458094300350417154622526275778800000911985720685077036241046601106589281535348271429080063136246943907973602457258674894526994197775964157200386900035856796273585207824331302620786503005030099628136767969322060810592959463549389058938284269150938605108363054513396476945858805753678320105577638780035197499400878180351578677908509349256633447525224600617474048233511835769166719432093149232125924652263049604692189615926353018878509694750211962617282464255832672536666612733071179078605511038744833377385791882055905575434539453546725651688395570989150256615715068386285442140192147272542859153084757212772510469550700582223256308357728090141645944770732691178500963951636707729639662582409870834168218547641093802354647755293086482183010008522636376654819672574589162939323400608589485909177047845098238321178546595829901670505793398836323512803875448873384613852958056291135309280465727841918460862637698501621031043559101379593254103052629383457592259553655566001975978425100414795330573787988805194825888159166785300807199682716907738547102724866391889225295414760470086942423413927526577014610604850442227202224314161893302686998594470787128900246293797009099758620430006664274118303193986676913516959616249840990846490396825960954797377310692141012233552086879977407933495850098014077181592690443155442453773234053001820612328269537965180893951574611125095724620676617861848311461690394760273755863254003832149693067813626579303110101935351562566931945227391795723619091387482456055982080478109383358618586905010311890572502321796516090907994177371119929716214832463218181300509050983483067815653502739083084513475628849109212178090438636552679278098947963911450530543927716999400120425809299977666093462959876504280507902807531906309077664177820111619162316746736164958191671919230994587339977092289405216437535982838830935925422623561355028566898602489705525093736831195058155192579170536797171416653712394311521273722722643719826149249858047987208470080162395906572534453741170233553876397969269959515826773263223430406868516257976371581786755373315916365388670352766236363866560837068701507864395134189174478260734563771359042689074226544046018659894602296926753447495775767504656852703912896462811627055253594942984010918826484165063448759118406716878931129880595478237420092784698398024421071621825024769031837058748475069807239970193771910803936320021390084398358763588593175256134782015309351100136509413152019485386604468311154496034232587183609316512445687179483362646322586759918300695271978695669178892960698167766404607547035237904779939368449296121703893986410398596749830622572631009437134999909526023805766555467711231192507099351787995842981758013030282798164386272650206613759754749423013367642799364671163533259972231533635476251546839421991818622244078055239030640720775864198280990856249727517408596580162943385388339718640456759744690493363279185120121962040293208956604777588657325761622513565655649358835609246333241126694978387917872810347918041208563365892689580431410952250414150801875820252982493213366643889205639754551226414442582966635684538136931184223674183960987246311798738085175437276867579630838232019779021831642275334541944423053149593514489959935408212418701662110543013647956128085381838490310304825854608448756020819632823015874625849121724962291344472017165279658441798578148857477899251722446706119442398507907622102121590679528955544950341074819625609415861172927225932804046104389783099580795366961210084447518806461539426283993907906603188105224522550695635309036838647127469938124852179619640407392815242725450809000732539481347091262392533857821354503126037110567364795144998783700843826939406715385742054655815850965833865474338187639540568769367289220398644770484759799637330224402670439314979836694717215873450197079966527209803311534621518308332303747272074771650867220374274505032296757954138411947627870696137113260569010729534501118853542199033111103441277323676634625784947324880681004450473539591094833728021891414984109183301406539023780165914920776355574389867973408716237750092962678176093818653430131117895530348746973081017614222522117985717980837793477052727817533096806932325011026094271915207345400459815296625796617980829353957884714134452613835892484131049980123117711737551006285341422016043766926297094031413193360590564664901131326253325489597001493045846915617049629517893506287307038603306269481875235382968202150544812446617260502414899961737032582347997723724581638706461090681945371408442891070612490156932378962976466640580298309496338732106146120933098438030886276564916294038213536767705487894749817248056126860398369273614871551334229431500357353171820582684442607674254968637924988877182592614127843912400129207484161998335624292599002551699334439085419764042809198653948040539490822565348139678106959455385234455075029076674282840874867000054229328048733872774756014255001692521105365587932137661987577669456924968905776997697872567927439648894877964689877743617572109544875610004091329302064966107318138257230706815126200721275109533659213271856776032167026468217993261708212502162797947324041202714889251400896272332268441488586842056364865385447454869226240530818346638774167620283539483082048184711089160803525070133049401772969634071835638413725665318593639956362895780171116498815748246995592701952425455117362821278271023179180603214350607030677225444831396109226512426444541300666620335872639030229783002687861987183967460865406655261987446576164369461543956664093893829549507628278989556778952779888759692725527948456254791937846112069385003373766065995289789614272924665984083280345154391899436636873113346916637846660875614576426301414779906988271997122150982911914979306894798658971602905929439339573841827150778571689708838201072232170609615625506898135130541244601555278827731328031607739163972773472404909605007878605910904807111118290191234113395161827330696050640164653845586885853199841262459115447511781256869874592875451733211005372379309284910546055615602028728934304325864034995954977398138010727217755787668074358566483004431971241921970420528028841190890858441033860998136963756987988275524955772084098249666856261471508028750461651355573441249359227359891504813447013983470844008574716777142659505123637412020714822024152952280150323095831893183208232374162598530250349324325927472356206441811434522638946672020655511714356040265104439523663252270244293259685665558834841023663113054935612742622067994562277180577464122534644126759092715318850663614492504415949954538872787147041236784900249433907506805345234850394212593384622434558971921099460948245586766099580328536074993563998364313525802369955358427258936265121394044388090166640912538656750854347921963941175937548805656861561800266953445682975152454919053536797502840539339875638123816415550337759788747302363878964480607632839936058151900744288660851562425733272018512038921144180886169000571942237879411990403968423226643489212168507729468809728640155584807539737826582466105857443163751572261684923678288563188636526548212537146727873516944397471268454960623111571762120938779099099901252156057420141318483866409764633514471310356165883896026179948143206640492433712086851054823730756373684038620640418171408108729565388964851537165480047432964588768824522553886994904319399746873247083257492186482680283993348121770080380328870647256971372612042803577009377720969538995936107772966653057688478097243538110471662622380617874889528323315046776303569927277857215240654645154599189508062499559174824938644798566558192885166641080569360230070372902169742534145608350106628885719552206585548012927589343787990076985474755790507163377963907021405917948576104335548228963599088143852146778030916873227953763316094749387890290261721372822504088857322423391374788022574154664500966892671981311034793252533494611966771943702582901482712130379511774441661740183457002795638467352059069180277040626215405600047803221059864909854712642376529031112689820788312625256396717041056840901315663288325851206869656318962091674938905786910038979490634375347821549372331035447874531325175717098900144131349392833730560736560729796494692817613845756762138814572655965339120641738059456204278951231879620881701006714060628652858227577194050660587531125528888537632209014892391412468375829320455520927196170998894108794044671852506370175517403901576069933278566873278700673887673161487604849063371682628071778094971459455273094180775107303858006459826739821097376641913148475159881833302772527317141689937838529733001153243289606190338436775669365215208479654312011095703018046611097551584090844885495701691991039820709588059092891104076834566279351429483613650910553625686701701090060089842122060412343908450026318324465882537665956856530643898448241796532341998665095740849856624715389599879398237243242743645369244226599950455964471396853111162602112461612455472461741097609467996298498176143481761481650581010555674699078073567903663287924271244034071079318352413153302485531897603796581528546689475526539903141441412582686476655296777860937119495741006120918329729452103380796060822360323813224982645010787885109493879568613276573365127933149568034650084551068806133894439122355828505660441793617063716072043757877371930574630786740414848449756843908608538982604422709244213445664153821813518636014192388459175684140100818430413093398522997545879946112354417130714708134786326781834756145551311208845164136667074026028745858680179662348191202776371881990685425280612067431772317852261021026172857071049390174636875659331306620646056067123292613238333616009312389211419958089697394350099474433081505000254307286796902801526573207427506071698072490360904847619044402614519813358014984152604360480019608478840938335800926663120037294386118396250664167925254009987620018708722108683269941518157196122598949958255484845708735513070359017231400690129152611401478967539682836295826328210318758276309035880353469208474760797632629370167954780627408963801019989782026824288423787125597929706151548120296895795618266360299090493594312944406297419940512960071652875255458966631501965242216824619353161493169370964462817267643139394788295007624711234479904021902939734013322651506192012127417099557969116590380149339771241187377787903282670866023441837751023626189829669250169286239142114562855770127882388388901662537568884596073071611239098965751857404071385825251498248301031179266409459009999242032076030546768846060299172169490244407062691054882033375973673315528206880726569765625563693610408000669653893763700795890601325062210514537514518076738998462789771010239531319043825424342585731336950463161015044036927538489704036735811812430522344519485251609738785608224659139177348016814877927938185939517907422679552964775130854350328324921096172578142594759122962914285184426635565185218226469760760143703770902229703920423423958910112434575925830493548139414459946198701905040129358230763265900406444702674412844104030816462564349236118923414525705025053324485366572346757232016971830179224647975629199297072998731897794644840828576581972980354366078137874040073029954510503534335973708172253155339560796111174218243245351484832195145431758047568136783956160255842495325153649695624296694061081678489440120802178893873839626243751459525086443017437639647872352050830461575780135206429459701998727679107829979491661772059703097143326854188264982272312034001731345230059723449237260864683040917191255528639396921172519871505710644487837522567842703241465084791496292422024080016238239594938436456621664886775724666997547092436209112611568456568078964420199109146420271188534048686540797554489134828693572163150890741331863242921803465272466905340661426637060728302544256967196650916099297184417281294872484085403604797084510241713694394590943422103789007836024313657948290017661702347011859753913095571372524788631336812702676671874616402551593725758059806898423719037487405245795120153996772263799145803720179482330833577681310153381738390810014667174368010020131021925145204800350411335880419805328576741729246126638546923882958850026927656914043097583604663021053219022430188267834063567855704115434879589200537199858072701710183157874866491270168188096419016148924629778149176864350799419650727376537694626666765380443259221024856829246753125159721621551629161776480291517907045465899512241238858589450819421492786392529345171278974339845498634064305133368025756480529834963004893119656117574294716849490373880998244981132651644270327002928115128602830430366324133653061400283304160777500178953365284442271545747330282665984936745575912008742080149415104997370919423868578869622761229174287300854254655131028819131543076586221472624780692111348253155703199039748674071372251335226940373606181694930227437956526493274404121368826332931113650132306198082006076525311626257054580667201805216574122921885959766910656492854889486295580050701124276018789689324044855113635889961968820367925626349434919326983402351152282218348410168183992765440501975052074272122536695612726766517727304605376745625508753837448505196652996727360530876654895309372501197961252313168471491678829945584375548501336847541899516494273266083662063982032883954230711780055222293791853705136285388569128216631367874715324233669638555918323596243143811651185668294040614849119697515772134184623863994177043501616293068510761540714557124578179083475538568003608646453670631590078151062279363323650610067383118787064460216428436208724095368954441179129439055088058661107271729759441522547144509852973253103166534602655142057845993514280902636257943363017215370178638468632545677635830951224694785036432653018490330289526216223581955105024605984636136490675826262166617390196626737244839362254130664643867237512196314473420450314476157184555252179005469243880916779775350115714883263936950906094268964552773810094073442692053115905948085937537348958799143432855224296053882792769906655651463409760713678362541526026652982225545765460840008488395760800203042058395525049087021646192698489239624068864775602529254626657525684785315715508955982575855581551601442736319753453121623847795041216880959893292917742433779072944441642672554787067588299187451143228745428920073791839894099085438236077135286533742661814965712783396754511519576072435406655554036728862039994965531488536930550845873656977321556764930714697115903426761220332352214848985644801217275205667348436312376671498878753771098980960936871557843280553663387474309127240902316575660338485266046090053303351474506080366091887493250773628028554071757981916375046751264657070361701065391907609741649454403937928220044807188795791680558071138994338544754181424699767693183746459616748309736298655717188685306786429256399972196291829302834218653168277811284098592321083226285487944931669394553310482458994181178434100566189879314618181518222836733889976304674848881638801713186476198753262210012265283639835520481718707639320856603851698155391325169571514430468550129103669887517916985277796965974169915904344431877332980011814666761739535985620786655615480724896629689166567143872416477875954377748885344220793870863063606138642182262438388772247732483524769068149958479449079467820444882477608347189722890244855715821291745610969285893220432032210018788085817174170730154531804623248626172919564958888032450534115902119171522211864633547045034371768263314444483979077420830550228093170495412688806893068338089380870503641591916945583326274894001734308190577160615629986497866999307349179821381033171346494467405630310159227555321733284911513954403170637059659977719403015004878091902237895659016780000031366838457428540986007642918801332201075250915159604214212535412456577195858374626312105303497030079904857599101474652130961836719040705114656480229631033383705013487810802278956313525753621687472808566957596038938488058918540086749294192897635904062337896507976805162762009038036518499160439777889153804709960065281930377713167855860010428468505547719180437100746483839361500952868440853250090738543383568746042797332399030588908310317237804461123681013357024300541838410706336984573107858631862799401131529615349193048804502216622819306784712397268853414152553750458687129099167422427605951878685435823711049191689006655330083096534913162809226907686657772848024160318892855843747416404012130962065490290972681250995567084206247056785716956319771478638976430850947052327302906330439897765819583867209737817569130440627212265701759494599016290704937092208167632894689582949304307427194733511755802306606201813179185885182313392451978145707753003356922850023201985819455762127851720178886226442417343395927993093605796503271195630497393237477710130571995603826628056957072194001051841444675507918072396120513410958160936447012108791096138588230896491502306993037023264163750013147623282526212284605723421459224480657131044106346772548346849094070849048405236588958142502105484346320039190907182449525109582704576181133347756271831372677382220831369131050673185869186779057119764442184801097315773696527104926999791082802823661825088322303784996274559401193669675279294728436952787091616090085488916071423764936248753176014291606581326086790986100444876904188053216540749319425667706098884699991977783551306874272556066439243460795579966724412694539339764432287365232729028378648720549401965968624374059230097214017305464503150310481678822515369235225130679353461166827668518901494123781506100147003133649875683931988497339531287462595875972539052470384750013012451861497457611314218714649535813904753522025529934195803981541929562835725548828446053095441472496206589449624493011679399022140206057985812367175446295020809751518609841827647902924529496772556751967709446251482251803094809483896893761357647474398226887410674323299127496886123918830277945894868280915259349881469366657641735496173839648425121309199581072239797215680944251966910203496469351946442721386619017119251254463640424026070112908398671477286803549663454008335394305031243682411429936258004279904139065582877438921862366782195084364397897304300263988734899436156681813894071954731677685834214558027777251025516936513827871008206407864196256012599003410000396358615802578305407963406546430962578643989622070331439869413716797159823035938828424528689483250587606194007275144607866169109008776088945113663727789431954432208862570296575454831827374436599581744857798050147472590414787982200184096243792371436628128344970854257571511337280085056363602732859188151722264900552421279143181722194420714374305717242497784729718124355892752852555478902848790742739070240614192177562215326415011139568352415700793755433052858965085187582466263245761278838198656519789931230143994986966669744821450502039960124668633659794925346387604127289087793162222918282597355890309815387750192106577682749583523969782083960284659076816786371816101634134848438708453215719101511209689701752764895855367406916770105593423207257945696862976944713153027496446179738310697094166899384967888993788243101216543000815521155048476506919549454274137457039567418753128342760093571239552686191351225891327032639124775854115842109535553883949273736190355057953879528345361726904657987288919341119521284288732661544866107577530532211839923913122793551511048836956919633443752321272491644682137405031051333339859425093510833787977234800387597355169349783598649268754409526855112130289809413615448985785186155575991516402580333557631750318809690714167909579856473644630765968579299461931644308913211544061354350103145581415877755630276124566003020952966395527465224523008559458296914470144187405331141033168407157184150313243058241652613491359870211517080920704209104758470907615135663962516356001056515837250933720581699131407839966247257418855224027472645670454981189658610147476452278547892349814503710498418570989959298736304815461204565880561931167439191255402313349455063041153305390705947903407941153215071549297570391591472855363119290410007942121853169525529821827278510070819969277011243420014063130835070594235942439442332482034950551019078440661076249722336427678743240116594430771252230804998034871389029462881906197040139376380191676813528617876264840088786522325763498812278375015565532682526264767002643456918884431236040387596592514524213948604039284098337344588735101906095646025503399064104525225936384782930241374006171096528997266402177172210900324740707808256402137881150990578822639241909976847019836413319045595020734602827670235068460049756464728991445836330794947322564942101237758459913833025187118810420255671609516410657119151058308542230688136528526566010969498872011166849154834923484419529426487805847330693978223041787762092355229175880800577837373513624775862372781012987138324638815590855710838294442721537147082737267382693503265640375777347241034951112782085314737938912902231973311794581345895677305046857511500034836891266381305002566397362051855663519697750690233811497412116944412367404937894620576732393061140094708660226152077908814135257228767381441797024733019420794499262137314951909519630628620617185938203481587494573746360036136354225683844926614100270776004188780853952781779190917772109653349122235161133544032580584360297129787887397476482843316273593951336155549980453204007560661077070527816661491199754025802553693809261716035843699526246329694295971841815766542437176169647339040545709562229417044880659879422441049748942399115593385137132707059783301748750899881297454300920104860897522116845126887052878231923744455542554472557582521943403653955942190917501232174959204742315900910734665581222712260437860194599023648393522161355666763624826257247784027254624377114673507741124383073477405138392420370509855591098867869692189822438809338812836010429378379702007288882347428842981157307216794542116204352428564875996102594671664716453469459715702115831939733189567495365021575734544097893384186014171518146777334905519078159405369865244981765024059888704394987467379354673617751920516392236610747442048139338875397847192159543643438131111703953690339798013038893752108231746317644441716176685427490993049909656460178090609413913790855185952649455165610462819064122276359293092247905992398310511581333740677651838456761297285933998022670601240516383982017081949753630922298263475399343186742558565376441628475577400138992776139655046944094214466796706472107541220901908830923150635799174097545801830876754954539098537701404135343888270187824747676136487400932450826327380944946556748842630872132314336982195003255918143186350876766698625591311442087840184959284600625699429999512300338461430292852037622054467307834415640870646436045636137744297322927198518170334049218855032455163987241040638044930723217291217257682842593113828478999167996172590911344290428940753434940455987609678484422567599370057391047868436748863784530201497676816330586495717787339999245980177730809107023750328396467975895099544204334723232550126750272335786728651067925140732407031421304763569609475703606061661366750095901297525878018655894526500866863948337843954373714529938332610083141046067942940435029930252344947275506235540798375068723947098279256018497793405104881745330805310614836760785882836414416293626769847363481443395688110323243175304885553179916896692469956972462068090236036340457325226097406427742125231873960503151692753434493536301256851386109547215993368897278214951069971175234255882504838200198519730794301247952435694198381809811902593698769468391997348553617532667836279302096309630665793498773384118889529102020521412656560972095518731928659090141077100326408386000868396069392107581267587214729869376068563517839863212427058425280872291206542359958835068167325041340615734054242660040276589428921388383917840531194873524943786852404438270534426298104916520049568764077093145506605249511507445763616946241437433614228956691642978046424894053674941715221932811271755065302996942678605684139659572081126027896616929025545876353145641019335770988081015972094174616337303072460923024769764401952701089171636472538847545262384435642012720327886838393084358900696515071196190765260044363111988446933716511361262376840603757730931309839178421521972461556392426409680681178291383814685595525811541574334076334542450672991619783375075427286634567851965207058735028537116182830257647777586324917961742308382352604774871258258652179183173562154785077254428022396464306181078192233937620156819307507323542880533954974663596898141665612894893992974723481461323980165637451262665506396088021494700116102564035461568470006300900430434091526845481060036030836726105486503890079714390167625701123452400762069924258479052945496453292690464106710293675439238119412906454619707037162668811129530177201055800397263378072125682305641390899055711776066308192505625662701829964420359057654033083921578413252051236657168616817553613302481844683444309627848382416352179882754109569104251776654821273728594758186478403461835215291043222612859187543488270909477679627621368588217284650220550463224284644792470906287338984348626023071423191859733601059775879652387890614338819948411007871425784796124411825616534634860761512009047235070624020547529722744568928202046101729304283151723022974612582331968410449876780821045240034360599546140370182457150695528151155201752154871270867169325127832809180867050714258269214212507414254667185444136845111680166792737857879291314373089849130331335555661786533753016901449903408560765966156434381633634416782269685728924305732855660928250053035513194189223291404248174235696642659121249887816317935805839974185095255179665889005908205989322803876107844333927118235576244922332887322801652660030334763566863573793597524763533476135136547424706479886695353047509526436801279253127150847688269991972910583195328112107042457738352914065786067347795810536966044968698497623201432956642260746171263316418336937224532740609792683291344103970786985402998439172456558794131612694864989955324548438068402963534845498958938151337347349564042903358828124503699897737121768310548155015256154209069101124403297342855573339289631475378533459050917837143585754464414055571663165942826190140392389135536566343426126782617961213285603528436791967695820581879221431221491694372425095084696042418721290138731689018882706094352142080097464940745170923631041973262300038356676151699004801218779962636092314585318733334881418322642222013808811449818776031745121178354250964769265392502198017308391036333681259165335518908156647914391069821561852215767354916514689185456592709205441900228890925854852130649092307640263699588992701874138564381463637733240409200069586637765783234456610482565844176293681691793574504802617548988301678359451242656155324398079013287795847625556533673053330453798677105344079030404087097727999222433807532652889745533266787620369802430556047811725076637925776961559822458497474025313515096896701632473268854240171169555562937611021164384199909737774753443796188529833435990937020437224101169317612770888931150218632374685007522874770277613329822896778748326381386817940536684680727097020172718204547061482822343721524513494445138808144932973913256791264492111817691183532610408756336035731519967980396953282324888470524345627903656572909805086456198769599197934835664240254345817882858498124915609640715974008351026471155274873650251439122486635925788665613361456631086707648197040261071590899327058821929351483074011817161311667324365517190271356912388002085367572321847915790934996180290784761510778072351180735593260465592535186462298337283808723331381051399344488256102805772404476388762854855772981423499011087845094801450568847166274194600984192636383881291004495135308794486249739983225240004169133353725884564106379375023154384205238388665155236687861308292348127478793091114657627936078716693002695181031953543246661288867299570669169681640874126901742938058417032569510464188965179946455814472944964220191783656140898026339188330674765553302190131694592296620058570303996841754877651049910202387912547731068731160024304645311328221726847269507846862265423361629561424550804795067165179636929232733684823004286290168759099367920555145029586249140141204811587808191642869029658969968573049645423286195599575942636890703971663139199092905108566238847100160055995978021467829482410059814382809772585401225356037856617736504983792412837235426400279845547444710453725610013270754891416254416585097437660750545742846005023281783046177887867816548678963912228374966207095746464360023898379836308010196529780807816456378909903400514940353721475487749441647911480524941648630674612350826798830205320094266823366890524040518703956462258357291040827339428772436746473977544784594894564541048919211825954505313511588723726210040372718007722566309451403786019748478100855949268103209987188584118510517287010579307973582726868289734183076325095241410376634008261369206320908640225068358950741651866766078321188894313572067792835884552341564971231363124807708355174777915396744333498831200518766295779486413901159068522982490657445677854028389997818229123498426331519326981289947968387512455867279026549750171811686342801030729192656628766483012186787363537073343105182434882686894992798050030498400701366130247627691670424864704257300197261457157002198659473798445687799786067093098938653001910600156747524098502255259708396167710282730588209287045012864996301502273483018991528055940275465723902695690633523476650379879367988595222977427351773528890767212759814406514985155207654849119620925059370399304003669783955930891939353305113048575373808131959566092294302210888183472706725730896575536591879143441885807067885540016838493031306749009930578691065314306366419615382028627695683321916602243776432513231884208369562208434639030135843663808810601440831879810001732579035203388697666027207336079907711290935680211051792321477259412023893729274984304562022411678285560719621653737927237053543472659389016653296120666028838794329173786799055785907805911379544678599480542405051842004639088586385158313201465817089224793949338989117846287675341816738408832560188791735701669895456032834861191937933076869587088492132746956158216997274456367562621946330524389135025268027764256701381053954508156293104492305176581845502058036853249394586462787662863235634412563740940915588059670527349411095888818748516693127660969151264327076581124060290517669083873067528322661489863534653911850099156148330671361227157284526408691185503360617019438848878629180311743886273546919071440488161396152337321750902893179016465119436222780348303106370256789929388430564034296771907184784433787319351348088668740979190606218205555091728245164341269756703631273458590405202363160145552350294614378349493679942237585840404592510985473341794451900070391424591836808620843344460404830919888492263267513481877502762865810225967567883245611157865078780852140812957806626301577712357733437165990151005348936745636277727703370302370272261142620106477194829043750146818027779078964147853665330241594841271425790287448309504235919095934908129213457511338057901650695706810894557099704908053322933763267333798482997655861691466883151529867075138783032993430408295225121117519479649270702087970786664008817140537989590769429370715247277336496523960128237571224147245504182670423414544179943991158729558547950618796226513962039934294962838506144158446557778683394344777267013409619364151041339081165754658744719892714600354902685684103443336020142181132632294347527894442330053774592314486362587111435809926670514769484941298154242550643705392984405465211733842490827496099294711726301683795820918840693283142534180177542431565350646228278343672967529397491242832467297163337514814182012237470903946090639498612026380797207413594854804681539703590688180487259973030198249461179546915054229322674520933981180052600224461570797209288589211153750026069874613368399396117353114849434669944431039432395336019539947831906210305378942959889815176629826735321603614478632948504065537474876248415986832900585929676896943552491324660067551443316520787455515716796265452705384992395543108072051558886411484952670579535126448349727755365005606530097155392574437265939805195820126256713768986302778666451196142619777773117036207810472282865048317468513643049824888015719904610207280446492049783428507929109890774692625615409483596410758821729700611909464522740837570717631134402114394130990542625191299519174983862313195916217280447716314190033515807751189906050649897684247735170900745616919323745738630509880784654562554869725900962221224507774376429975304738216773639733912313280882943837868748666273428599629752607382747575639474717538267556226913061968561943115726106949501041891082470017856620030620873872687387723054257601615383065284997958982090152716744797602348427497068407984726411042590152685118345615002371858655271055198030968332347843364874867228739328400448218468765122099083906884557999917653331497178287103295071096600052588277113053229403883108295413769006646501165063709211889398520812791615069038337998899451548540042508508563820341073152183187141182656614447222375462251044362509748820136031569857829532454808596289579007270355980952571102412627750726576270315034804773796695191589346539319062626166305415895517679052071284913547871284817560333412112878315054855202109355302567956869538983600664973649014759452235822221055271604714612836418558823726556642461841295036492114688357929900225885298360169395808311968639200140688465562897346740827886309064560727149511378934541017946992083167229885509842592900392242993708432159599614308194250288658362707795362638750151626816709170441513961331505511226254520839626164131587746104929313610921535079404142811015796945250618846905972347852921573855374696344108087229597843999459709654868098611895413578630186485194184742044604265506314483975207734186550298800083733231267473330561965831058609565206171843267960269765799211221240064325498037415716637397790901886744065593039338796024866396329715153446436765637965458043509026792303689426383156735522574472607312248967761372164269744036794823916501245347382384466872947574434916336133041526185286695535909651062875902983803353231485958016864031566137292664700097200465424199973829695932543447790999027177174629540733984127272416082336084920831578806944735772695517393584913246543656187445802690671895894395784488282906952005068707884317363505752109718465997945184919007996246339264282598741250535220230835467590252942227918884484751515959838821725417260682155645363040781231906313918929293376701996061506381895431450079543032730254938839250567959510923064044248748666942138796493925689004981793770341642227672213411588319500768594679822682579577748316362441455687144801033166650978875993216456330595287512374271391921497968342187699652646844184008656347711267913092692911386446663637106773355197780073750493154222629720564878178636446949039630749655329572372082657613336928739721832459946739830167938664981302795285754811868930674432718824055899633910419225738054091687055206229742756493391724273332683298807197183942237364015629464175263211283550194357265688716091788172770141286716916641598752108464608041154390078544134741434000755485640400136280569233709841567253007229034975083369006465298970413731698411491733273019312405027991325731394896575096717158790935886242273874794608777852175576746995396917238467766386254871800349004378294642222227290666890542314182964787023462844704036231074327903931622078850403897613125952638841377235220216751522894340827230076224811499553729102613920377764005196069157062016027595024120168415243433091671428714348992512669763486246426636562192890832073658691241779533026484482616641799495664995984407679084744870258252644146283101295630269207266157206614212586099135551513854533584524355413691675023492015307108553768344776158522146772172218163277793887929321453012194946148341495327864163187390684192574590222075950645509953116961666738364325069080900306301577721929556830807928020166068481079606970270890335530976425631945514203433703580312827615207252929863164336576781227733814249426118049950727794781887563342606861226877737485730933914827040564824673714622168953432535986123825906203579875487553335344521362148057170620230648345446104380545776301125545090922086775618261131275330930260211164697005597473541855917242561487610867208449390177702253925991969996408563831536075620925453450218942875005030663886442004806048434042347070960839929560829948303824057491899325986377741076702290380303026583118296496139386323206201320062836328764202858876790170214933558829718044562662139454110230354454483004931569909707452945864394649629181906143830314272707798640061880197507909864566028296980495809545895718356981244042184239010560713145926279921799664016187937055044081198089940270004592561057537197075708206858985071954410216994007776661227907870950478046818967068199894031371360399374800694687443693484279144862160153636107975399476025274371912862744165890333154263762488472699872530298375923973237606601640064811912312484054197107822555614022926034197850034001567007422493361740575734406801407710083949324497761430931389194318529099009510195768016849761299495291567853244182655920915419531621021263285227054310735444851828838426185349625444114468929800529317920062725725732444893342754905777885549073228305450285489598326062003042711865440144278409737818202346623381045261652414063866311408146963295557266614035041431981401756107000816523947597556675059135638439644613152624351670154589321928087404921980812952598862141092398711233666112275528782594585918973379261055612801243247438975599002590510521142947254281255216879461051359873856364441680841340400532903412354353746402691920823836878543988726936760541637008365624589749946649424567174642007086356506101444209025523120789711067351500028921969462962110315574786151269077751028672858525254239426969322583526768711790315214282978503267319186548405413654969451565730828986044125331674172929905839589644418512181290916476595473809580380405732205532457413638132702513362092628196518602001451255203559872933678401886344270147120364795939936882766386466975521950399582280710203579799176776612091459433809121478040873267692825909627262610563870209206977110332278867888394782320178720317785928339033368315721698295681124749689238780801315644541549030550139005685160289308759704175720933041861997307080733976682527158386483113402877101763655508012214659333251210966595789382054245652779285564174785783142669904395695123615517467600506885824497539532294871245597498474077535907032706272819250604189901673634822643117783699813141343403533027106220023830671029959160568113532178575232691598266088826387343732813291513872428075059629802436497637240176209178875573914424498470907576148760530871622588629657775501779688858575369230363241544555967863565804146765147057277806668965747618257702955785698361544374787299856078520793559801677134692478968524375257927318596779170775859141473085430990903310752899304024540532888702092854579651609090480222575889809608033210876661295486826644827257887844514537537732050037074710757776453974699108496750888460080624153349075512323787662967080461777473933138725300482559073670237601697126563784033591810894701634380628645456364911369130065917260500366356220191882955654131511458643073189991873895267670776657702815292058951228398606715739541611441508456457850042514090456838106384505220149438364673993458595525693885062291836490976878823456181407078497745757959155872975734275444126766135299000170620020093706307395050123215900650994666318212800620785758942516924777690964853723920207938269874631748887675955530639966006498992568216410247325059210610678172079570016325343750443549211539520355256840354258838648225558586430183202003114865606242676477338963163162572681976681746642251321470269073154974731206442758274842741367772901369347224582720417173780391835347564163888384372784417886630897711452547005271427677362357397203771097670777742485579358827129251401194829918672851286799712671092455274576304867339869232876649997803405124429806774031664013389946727513545214773625152442008216099606817469368431375895667905424166148027317819208506133109967454705053740448699496651428304636848339171081186015986606937902038972664844057388236730388152781330434105733869309419870594972550777868907056116024987642345718595220669657860188219707801313948183300391291180783437516587007281461804186194538955883593400260878441758512674648973906189515521423211454029113119500681512294176172482923805711633275736211901671187547008839970229934597225735772711212180244789148835863241570726418434089749668515828435428050333617235387328565078432379603717951988535722461753908272224007278705596527685273434525432198412248551213401625172237172170410608200533795404159473201160076132608996868896734687860649414395247074003720151442710139825573763672951668239171265541311977278414297602329198847313132500835045529649370642859739644021675654309376579719286258582617588728720302999925791668372427502057925601499083447159728615217061570853434216133533265641096845458456576744611915671045783558066760284538135393799160984269683556806770493602836760570352162593764973595616594517775367201249789020518193422069722247283844252789053887928002704737634963296237088393604097781066861498348406049806627852504214861135613770489519412623236672489052422144175040781860217516913292228529615530335055436509072462298332100795111947966140776141899023169794233564106966718880090532673792378386747180588012604415597783996743147208838594135936737759062625106741333189763311310886737016025162708294040955206162571584917797290742039444378383353797333527486376279724754772963050810717810085737958534869609770169410514787304168995577552719652822410862828363727996996040790537270089169676240620023788849667676996641863611771511586960059455030905768324938559764111869037078898168596311650140511425208517350001200217931173412238063273541368387495330689950669575828700635679875968017007032187946876654313564693448806035408748534219138271792441160403624503159980182933289464101230526832959142924906523522368430423667162121257783278203960950797139194945086820592676308452052737862697410818466442763593128735040579373397440962404719216238202205148760969727310056116738246748315822235376726606179547225517887157565427094306970956014126538310312511077613117770474340711918263269340768674406074360381868526543956492331879887540535259851813732620448849247644213302665348999489542629885012661839815649176397710970641528514974268563032840341771320615060498890149890168044707668352719487382545698651930777963373428669421404537541551829143011382183349767780324928003712072329976942007079699728075560788419174582573331670183802667019323976339248814150688712023744045273495804830274230834285811031261671957553399615037628633494362250077765194516362549702682925712335274967120812809396587897306184798182685437782635510962592413161679744658735416493520820566759674508394189796441563181043348414553766449693557258104981859509607240573891004090782687305872663674211218888355930660113982246953373969824610594296077129567341725121541620104274957557033142969357603078865605961718686729638297376783693986855472354491558243768854755466024284258624725583504396711614191397780962096223289122498362230930337307909987454078074580266375147742478569785238352806181221692508141033220484142847600239405733090399083770885748183548975782601396153768964770127604699422954332926568520977602360744197416249050810302192436936384574563867439865103433917355033228854307483674093420885628302665406180577186801581778258178719048738895192240914866422860556106652001946400678964811210917878261691819324218805732045504455440341455552484054032202675123645482458224804372987600924992337756530266923049899782522545748074931957373649957292388873962374300525414230941423549660498602817077042976906726607075249571078449337963556051846723140467609270466339041374415819362929719757726741262968048060353488483995537327816913831968300959514040700946292793320797295270154888750943009246364608136955712166044256442201293887856328401256720500014650738305546095542941338557730695908158146557923749926216179995756996059005718043575796684745664323820820188218040706456150429510886093932459261382084947110107131540567272988324344935342562850220446528626974329753644438720371446682288536087504177198636493434806189665504842321353090476260506449828938504496298893721502545796527374058460372660390401861891574162632213742961939395670440543593117176723523656604674774451827141023534668148060588179025826488703463419832601690756874068310586680409138573545221441163710786767143869747439696270985246104478878717791976108827223383017681865227209499760402516686154927618020365237231155473365289138659266684313891147149881102784621786298062704104089981841752323925388024999080109186163217192450078133807890813573756745389327714941933059767646280772856316985224776213753499183306935119819462615065853861745918081238470901778833832762010645628757222347309847864258518581133232639417679801733255821652664785213634054287996290047448703880211279104309360516983380512002633985707106871114758105596289904652078094643017152118476694369723561691177667409518877623734364972569328223597695573149577673129244580497624703083362917821345347304053283097215724276820097194224006379023457339690824915607969624623602512689180424659476679830142407192316595741684224059438287704771969738864926308883941378273056194098984000861325568331736236766011355741766523481347295085749844690184471986660243712998120576211398096531528377030906472543002806651724167689445378247106023754720890247565361675727068620447948202911919231950185623219226937816375185497930678055102952963426298164819083492102027489711755632237556706882517948976239708019937519006161416702575409339773502659669011163607804687542038215252973243423991754445853162179067608363173370054312844890503558566801879521824720168708660679517583267304561645901306165191541618675641001756142717611770169430190586916276014378986023444868171941941753863377300259622841710504189838983432540480742738180454034859340967665092602810899301354646620921970773651653620241145650805733728901457011707326584069012645434079921944820834058564093440327586739321958333556188269691128226230698085906278550458468805291990706174498138573385063604226660555624602583471240983584370058711045436582856469264779999041291759279973904524362768472811771745780411838609663285615949291593711016782769967630361583234754519322565109529424599165612647851613044597410562172474947393388030827525682307644826354263392878091706398937809061453773766270894658186844606828777584595483861237126919220591298638811914237462349219799704049267309493752906273325518115897315151315645009137725044767520901653182719601542755006554927742922862123004295038459112938734487180296873511940348503807031909836466765791495586221789526056114687130360401496083983053136876473220478844455654936430713257801283147727321652912526638775806707757846078902549468235486321140690895715735615496003861500494298382393683903842785250345290186708390532776914866927200982175468645260032322148910288541421263836677622190395915318636454463127357605525619363876338803149417766040675631216851653833120309851785483443644146903497016171839699717526831935074341988931748802249928304358199328890900956623594182463590468226197756224301760837703348574208191110755763479675978587011783235424056162974630067715153876654230865085564729707390381257908907200824736051644427529051370115231985019432361066518327468677795830519095432792232718071231072118012750291075904805118059696378347497961712611502005150176384975865477555130327309063407289104733875155457839078217673774862660368918046613895890520503450018384508797572328720876903623848649002871721266938439410170209920921236431459459608139473903748352148095278592000595307995759614436781641462374507932185208232607939107896218916642752156145015185075683844193575108151134553067883133772686528771600153670115099539394288155079300423247692292661265291741130830111542254719149598920002101813277690859301918101375038107220150439833366068261150098560637742642558715784793268171636949268645769655122257275079484521080929505626178944346587720539286382179815832282729500662332162395180450553011626685554632459807256314256080600356698612792400198801197010426036329128300764466578604991453616723801830019600247932084019918364560921773411825535393483083228490904537086444235594576194593032023813548819958306262961103270376432566428847443088656146073713852264112047492079127851551286675408695989836333711785817155418406500494462893923876306501857042304893690732151609182874762771263895704535671024251742344305578662785332711581012445387184365336538895853407940109123426191405105702476896295197179472724285715003540344494886880527272946445941369047030030655358738734437880969209881429018531572092139460746354349461310699878467855573173900136081090784306278132895172878962842585233714065340690069616075947780824662560877869940397554163603603274848079178575904230762347945019387952196090428125729547829024164828927299068787755622995629922343001922769134128779088718837985823153243984181437445747970856386578866978010477257728268408141427242277157415654432032295601466757691576436241133040327350694797148580528381731639369352321130128132850893924690603053559090071480575629862804350586471063166605696157462514738165724013732105993048362916833559752106415315882560358552216081675083978386712399084766590490244219689010520833014416726301067775208129547643577508211974089966507171506032627557778693656679853623271566765027618235121274482240641872581519760278047689477973171906302775800754885259915976623079075273428858779097332181912849639115643552578755955748368936663508270413787212482579833131476180738635140448888516544880921964092921745992073126349240707161880483879863044304975188751566028114833346239062613386142142541185185944318406212681238207892642052824164060080003295418925287926197135655693232571760031386866394685902126475591793721880804104824566602716580843626690931066425566418821262011247878091466675238950920040376531357496916565386722419231992765060537860520028429764672373460410132918406060252502549440485748453901777306427420141413438217149308416695964234740477112443935676881204408085034374757128389914453004681346665171180295401110564375951502210461774065580050818868069323806063609088397605228449409424101626679007328542194382518790735245050866609097107171372412181136257479559992493374025136518392661670850220865516532830559447673286815892479204055929527499757436373907659367744307420558180018431212531210737937253265444871976114095698915976418820008223294223549160482633876795453278049694746714111640832541842715148309323229797042349519238049938572823595768529563150010974213565237808072923077004383215061353026642391812349361295882575759150644572697453594873234583667964426550523344819459811854163182784953318282588501967127767094857230605191317788493610442199483971194597940303306003201178245861774639193249080019956425383787580710083688152652086550459508610385883493176431107652014401995326018810368528900792046148780597562529899674588104197628140540805259609898311263225453896845710898955392915284474985122210677530466979444129136111047933491570173796551659902467672716056927163164525719635222003462277483475815944074221336910718336198473777490246430578763519787165829931261331124510501716379765945746701719200352644367037754215366351088020646462277461079701247924772615871072325190743990520188788978111437373074845149850208605944076538081469059969255195540327745260046408930935984054418334747816900226961267978141116563836812958219569204300979967572203282534942141519702398414394327852634849643900862230228296724217410703902184071251208589825797141554794533355932055175416990743363114798318088715790218966882588160716497896948894786724167693331994018432051507224508471065387072611758703921470822208264030385107046165585226674577212316303272232440007098381485272956377052888426420540575760804535692069320414167810811501555115995169094716419984687373853240140199459009264349526358595443088919676349862239282582926389522586442733830111195776760058850824198896135405803173024040185711135389219756501200369564337275207144718597448368059744692694998045852141814614385150509129184130119304732029916263543421692481319598801460096946425344581491859925308344036709643706073514916828691536818860222860347850304034659831697224717506794328241979616147342143298667769066348404214198110058022888859463713383696614452532658726784706009111804941269254295519823412851122831661460070060475033538607754487701321564878658105315855769086713156899482531766977072312134148942513095934560471728504323843374902140753368255978759354994931834402242544859804082202048195348168335241744465970668940535920703187072327056663336682471645681735020374271535757900272921844415641352657180222766709729842772391902470071196025447923012243000414124301226436612588854899403733344423678905084332165513197539390907916238424986965122058890928433770942755910379606194398720981405504478864732890498962292511583964643005552190327314692469973182811486289845014285001767840164099641877249573866149132808208646987945278538728553644217695363871218480074274545048831067903126380137548649861175646996752354073317208926321217596537426884093241820148422156266507780019196229919964366787467465120961482870416129288177925757198538673400642387476453531907262195517949809410598249868828139872818910730109908381795523727828380875806093512990567830476811009357702281025925453979430123001263723894212715759486048076520234172253182725915213203435662767485862901340101503009588825503000989338400948753421329860445644884383362231513782343926532286326951471803717150773512246351610412489073758468652113857748183131372508914658146085075817185772732973880687068516071588647081089109816994979072861037175019999667253131905347952705443326804221995216731147804902906728387671717596309094164935932574481276217042059063752270316664881123043264167173634209255494676932874887008935991757346907798916199011085169236256056220709195798846327899202004340304092934566944670122894229090243171486761309563238932091097022069508445586077672896118806618064919290886915223550850189746718147920351611671815395692453761338125232202241534008038049790112154802716276298517375147222035270471212005126838104364337315073642053224844639439486251076819581121618374513739996314529523527471159018786455817287465248537924977006786614250951264224908757580939129594756082743807219716208254626603049370013223003908145368969076542469144707550346066059077300098954008506342389868618776353600924436072840647504798166275506616871058942740261922338041246563131127327494697039908131309794295465404462923841461181442847187796445903787936911153258300501214028828311081068142004258286166667010893560034781163612140223732941577944903504897088334744369518932872483243096331878982909276084601932770823979253928184800042039372978430122597782810375995933721379156994776596505327140875050195538113565336423561309964115414841470346435884014197342596320859213448453542504337713710888803707226230828182520319375886051772468831850819300648768044187059371732988108904613293061520525298713290637989595489915057984478283445739726809295223653411900229129057533027253233486667424124665825057247827493865600214801292309209353735405922912727601076793761912585003341709313488640828161473098473790246681779358997508931895310685563941633878756615207890348687706615403336225118042510625883058427818669430196998824297378005923496938540704710094031415358726804736310251707286336001541107463273732662327498634281519786658182381908515947735933666405065466343679575654344993763299204159614840751307638411887742351317120011496112181198518747871604237629666219698251024865708105322561516268733758514607907938583502097489869237636781378752597563817905778632195646539961308402131351887969253194463820407365789619573289688523740557240478298585397578150996547208832411772314284454409535123299073989154189547795775523038532794877640329722977628993894513086637401261232317488103775053749259120820216632757502495097490635734698614032063610933914742187527571225309390031259424258615220699129651298945403205063900895709373221257504501317863546254168163587620095609405591841355061231908131702313117440008264620629094696567677667981446193136717968682144290098075338681829085477492570539201584386590908162235072683330585292291003185616066292001808454179388108457505645136056841621453830637908424361358728477320904922548391787859774482622610413387785938205774545095205156102620884338572415929693109783237614055363743213522736665673744473843581752889170025440099131009939167245399985012047949063034901215291197851328763070852596988128198758060085385739715324553472494875512471409671518419675165430227078621643486984460863370270668978056692888826209691565636221033522219969739979998485306706294323537421739627271716310831674407317888183534812726146076544486399876650169956630176694368849990570214636372743275530358777234297392452489086238074147283021727900381333543932422374831117896226610672302897849089797819419397764754748279770279432754450448439069559846097092089478834092851683221072314099173947878777363956300605532190979017659061963797939655064704781145181408902729430359570485074252896769708422641248323152021657449172480492556894282625737519883004173340442176907348100545597691478070468649135824735742420277281741481701495267375305898680802639848525067598067335258543347019601670681122796135351410605784943412240152797662927432464934126999229560495697238333219393580105567671552999347702787884334216565742664266072735453589032724463544701428410365145296235720618581722023807834115239468792304878638845969233701044424489093196321782846794950516034800617827171183269839961381075636694813157733616213070889956454135969700183353830937118219401315101083460665293006187696191255249591409307282840980159728760219997294300540378208646362146543146699400048282405848011073980899748155227999614150375887749562993937812163263268786254192314731832246889471130541858347998852225709123914667221127765541563781252413915364544976440765920627172873081900645194958494730584406426101936949177565573692925514378017995046862881081874848896031998827845326311599959250103348412339997748444518811833652641619936138719248189916357401904994405240804016141280672214974938757877071380148614682146571805506096908037975168548014504906170149360704988796748041367007786103663052421452521994412748366739593685815834100304511649793762457767531343745078235365409741797044563141538277288439401359719910934191059984919807601957559456892389274784430646208534734217131681261877849677687892899915534145395565854953887791622709910254740244526305177606070296454475268110285768529915666069873478183788156520443244535318387651076139048425258402349925509864075607674091934596311884185845139623166072314917604965990033669483028689620815904580514965780591018697731255508353661113363835124818775824663324688905379000180443034054717054015671209846195255334705470130416498825448754335380318373599372083834415931222895957204605536961528966240713314722560456771001765471915506124505632344689671234082823295180823629557584076495778758629331283570032883229098325267207328331596957264652134363968413124755136139549280114118580126097048314696333479454544853065495772527405672529347573653906251775979379524596805768655675139487391896127325758493734699641165517689129991628424559374267800250306080423384983455818216025077382018950258369450724654275799368697195154118089262537238504447782436059823348924554252698557242869761595864914740775289214257253922361721564905866032850596916065960589433615519964555161241072414763092675377737977503033949301445521392529979995534846794745189110051860845980000606285179308898856963588603997903660400657285523502120916465297456018756732358372263068689462777127927002017102939325841056330012886373193471592787442626858972100198540037974118422817751298914856565567585820669369795146079536193342005279237027571280160260827896249831172601693230729231944321208235394205693712244666429619606890274582636302975872822236382075195097540272745761937423880042664254547741571587136159082045483369236069555634725358385576792300995964659660310420430232530458390956953264969390190743347650838965141904380079808062000984638856960023334854987344542734284250532570467399427182525481014117066147471749679826813137766764481298503912525913686017773894284757402529096523190428442919725835178966014853204640732937345356393537387023746672036332036967115170780884029748998328279193444632056673046819336477480481741230173322559976225104003687421904855280608026780097810291302619311619942625633744166059338910920130126330526108018067080854363456795463439385815414629164539962582363601828738934783833808995478375100731106827540282030190186638194579949675009012424524702162638757720262664436403619136030456994599334344789586857431009455014402123260937547061663517611395154595312787564698228498392898815670404771468691748435429155299664330772449723512586647812629062523513669781077804807081872999546269206093665529883986483874824306014712362598418293971745415378667425817570975028831716156444771234471331939597912774624214103447801309274604088100383022276193860696881837452606894307825443081310522614775692639075294454803640471221928518228067477955215896308705317785222804156296232770813147586555740887802988459671871964892699010749337019398284697848876242930095615183684149674217091544751423765514107680531014195754125735527466358044052634663295925365966054878962827407960403827214466833857028064168805521640659631210058866378956862599883711487377549879479403994279566424529663833979961839733563255779769545334801369021774793434689764906305165132167417178610350648515962083052281689164350531344447918340123045664899837645221032689789930798519634799152803178704015220283308262980794846237908454094721190961523843283323876426492575139291854013747049659876994296611631906973353346509100472549832998412011157612120193677306988194373480816530599639133823826568134495360639113865671658088897458136604127200806459915973910841830922001325222218246900463781250544218707101330724930963404902235793722821854864240873840061924612901269241968560938075666357415801563017845438194785326957925190185011538970375469303487814262172205395421928235284407745007131108282622464086406338096111893334559520415392202509861599260722028655589127331620530431188092852901284352690912371832389613876185823394381757331831563731938454407692514122051037963836218238768716050425844679204983759951770221154945630090411519401761909731729733973326719137193026518307124619287668614200154443149772328362933791512569958180694859557097762091266704576044869851413219983945375963691147165257190119050539268423794674219569200561207246456961516445685208124589302619283227956487204796171296929183705908469778074452536969894687624473730821092604380477399880368205713489612548390079538380595789201630875904202070063261346422356591186633090323136920833114333144558118319384703983817445935300259950846831637142705546877625535226228101809720664354100742395689480198688365567126422376403596166549364862481659239687414410089771168893630761080506854219405216642427813797642661047862422729854098934956392485323684470514376798087660448977544924708744762762088471997841859156764821881622936112459228398135820785322536780975676032117059272614989879208170593954750980965623965991358475179819656142920025241191487884076781212845642742278195815695550646370189080703513853236769473503664570123762941769358339266666912549605485284031714927638046163496976344373749179031365895161876008596016144716134505192458921928340360061143891649553625085713224641516321995978091815521745416502369098143412675695364338794239285709456327205432090507556928457137836629925554069932113010660130182507646899988118596018834861097571698562908916831514839425843500050273781552057503657129663740317627751984173467819191084759654125459341187292124601613415062965456502397737569961700730370415820612646175234798528706333632963906416584960957524085793696276197855185572513414403369574956050211346514876155978716807885071651652083099228418794977616952500787374400000384437802103614544719444557224472994111324222720395645025858428620766708506154543652539602020986105075681702132240739044112610073954081594741836782013460942344098728813872670965917345073963861260306754484110366167230982059996939756776618385260678784927182386283063435711213902169823797373674961129595522298804805061514705572506149230687206365589886552342144114408908469114437863942126601932452835182945999015867271611578345014838619500488557367076874250958594228060216959689889239149138961284002936629118060585579577151618173703089016421840281534468481215349829998513281904223697416876006830355339252433018663744888690069557166396975877930389194711234148271715075261633673806471987569313623569969174581696076490061457066283914222681709631629958065413269307010354238731097249808021873718479902377642225328478422734827301114933614470474068389895813920472816863393839597826688123918900006247361945913861947637727979398180642864980618056540347428462800037625385559994255144154828088718384444663508559443510918094366248867082889625284415820500742081671323949368174630524007728988081252942800500049551827528120127422929398798212306176095789941582953938863230562368588226421326682223038612637873723642371675228282505399842021191812104758445570630962983867310471869660233582073000117231867786664400742937394511418247920423684310126675105001100573557150236809308830960474556383516974449391668121199190503667132732452889726425551184142786129762294407623788106494974683851142193567516815926832027664111344521168312019424830692295027239107025276700089743601665088313238714019258143040985338833523341594078345578319061329469351631620006658110351588845554706235710516350043722221744714038577314851863561366915662209235273138023207806952548352246415942877083684937769926436155676961441612183937366827797618922043478774163086257997606369772166479910365688420027274924115209011354698150510235858425668207189406042468262417005311694865144150451629668695070852861297261278303761799239499589080462799256137517179128319867744763846804188623003160222366761237810853746442520346437452267354691941502312967668698708913964379716061215847128472305654927239223124770854094942911183438847299999804698520992471450112558401408768349454197660588625544566145972412930046974242766651954787471067061645754519620626202116154994341635324540371107224305540040223242566492172969613484443444268680543261499628159889870101733358583437332907907563560582821344821542229719421225439230926173652033042570298196757902657641223416254441802178723084309698995004412027893689468636215527929981565303898418989967223068638291911461959216068704003937363699200189460078301090840017260853291961156208382886767009078569056374730615343062265443313557589442622462608874753212003301246712284686813558240761523718680457388985854957279166120835762056178581804964849728377141407960701044700126110121760714314312682164438827084894935148265500045875200370580192729973097450634631251715283354747930548371838237731182673110579365052416196280541016112641928984189127658749437447183780058921200777386542225068307354775261181479796682080480851768709271465931570968575919314554322725133079797923731573765482445286096512297813259333541147349662394874125001745064569349259505942840682505161647446454858965475654305991170738920026147700889357946456181326656026478509735851573781330886605487059045024128347646583787166495782834349075655184410636768075715645709114642218318574585615703820247889671662323732602555165896656296552348096866649347498307611038933187967558665398212407289434134935776702129065566674874156786537360511542270231968322469107387698231936340239014560096470558867822276040906126715441371148315404363176677277906507709081221962810777765096489957381680441104663501666928006415247040398877999149567962929433926988685747875976542025003362047668096711495193943080303131077768239630570007267644864438591924267214728230749268342364589350885388487798031070171972112921299329496545575430483956082174448859076918306101747878491800687195522760764733398338203109254637490598588528353645548631498103594346514091452406101438140060302104688261329976082811535744777459520568564979137328090148082057584650186778694507465578536658010137653566432990233753863175122341555235258976251881949977140841965891157422552450647751218450976015667167171736565586919175140743605574230693260447351592260059032731793063450431494624327171469127245280347204071716159111157947093341021613389894386511958456072274759599687420852353708752323058443640845386098446751215965069157179716959069533630390817943854446765337639605431285022385821097598001440554632770092452904310416736119790728990249023765774617862418359191428615124986322475613196868678167617579124478159228349308086881339281928530614843693284543785011537159009994545898408632180114685566113637809377270645932506738957534155439314656316225293675463074040115755564064241790425039496707232957666794518005097780389987626292061598509739947232966542885461849908292914117670419323470662258337751606676731814345749708505144504831011982877714233758065078075818740723566933062966644206612527312710931259199391340685118203505365812488776460131013130235009256492744241161735628985965755789439405664406150311153006727822429073629038469740766199897721778669104614630983928930990086542297677057324008020701367092720392726897047733838715663478139695674933025729389387064104155382697875478978477270707096097742155200702020209749728210655225442566349470836042497493498865762700315645314984690618758950966555827222702660675494502241526110918851901953342050393898843270313922580442898712258479079540654657528160493842192176721821573587325193394298586709381916003323226128020684477335896091287660426001707623049917456961130515185320856684105899599555868311529013274301488885347988936982870169139158544780536802556938741446594356400121948027654426323265592334109121491890995278888454950721231486485022021699350348212246720262626475456063046654117326808097424903478398279698148238980841200221168707967993191870030712394979296483839035141685320683410049796066027461602265847201020876606319500255958536546700700371071221195917219757072230643371594547337337064196793276618777801907182837670576815337619805588572429985285359637418995976311972332515913302042095627812816290875442020947186350170020160774829766997168164880693552738416514297828493615285697882303296375386055814722940890323286488045442322957241412135728280187185044594359201895703877633531921724720654638067889752920339184914085600879264394896161917956971667296538537810157887918347097643603867619486770268195507480328313407577762870525864380452634720396410362137805679064851856220617277936418599050702559182975136249430424876742993028686338326214055507163576233937578719848457505890269096644455286910549623433874436746395856250703410491948812714306161423983478703913126095026302977600215434465308667571758922252979768856590431401612889512791017226820606159054043043450297423432003859954069801821709269940872134677141342765902988440209118282074497310038737977489831998770135237074399213308120694640955347415937546421135259499622875070934535250780513147571872119610668994158004492934272443547102416427928463859546044113673173598080266361148220921271131575946482280083916425673519311063699085820812969699739925161371863762046919978053931635534056635843279758894725735053305202677546549761349898775436911938188918714185050367584358033377661576411950039968004306950758270409307920504749897218746641075659471929097894545587675089134017009675221541199800218972102513813200271828348687435185964860250436175391504213901092742646369149388350617355398666615424183540826094300611967373470569153516255189005992459250629653132252808804324401225991645720639821991891698050541575787385006319125780895301485116196280032907335802725388150923632457652463957086386655992184134113675807704032440902807392905418996159619133681816397660303909422574960625364399153738253996342195050557662761468501414609468780836627880845182700469567083099727136537275248253292551274921608452683610453202380046169920606423261822208050314283543743838113145628068193812932576049200571521465249768951754711016600034424081520578018836041407446275747012725580683466265085930208125550891517213418871659105273295296618560240684584199018387037923416348741730616080831630811764672999915828213036093894718556975496012511171734315428291064204240317958452033026428783004778655528784484148999018650877913441013105446150994061291338523413476606360170146076472795498042648874857216461214371943031385278573958719992342371918659878090945572651827308243233725163521677601473788220743944676768082080835601064017338685660068328487888219996846439037807330839562468705254379296974878080595118743634989840006671905839631354208935000261847248651028968042819515030234170945187295575121405496853438805684522809933054607195020257059307428249008035586721120855999807860818938427651898665581523437153036820309737756483731490331264728853406815761291641782458411064264723453463137139111603339608374120745733898421606395703812185873693488569241527107670283904023728973900841475352168238043617123294251377037976124710298991658236136970914448920806022184673176097114434078557343941004582309508695624238874290868536481523586772380177246261706606758594219098964499218429805814799367960662613675400544432452678494709076080457767868890251929880002032529767077140439590849849507645584424560944558227557412718147561430807302072422886443781705606534993170496235268519412591701894435183553717219100143943382119975099153112247709113303449705379044926567963482833082189701212966245177605685601374833729069812349199326398161817501001437008878768088414716384627119791864172680493156616082665315361067210106033330086036384485442400790099325355604581068528356330086850025906188397196572636881398950560747181297658263381774899646042330371637259985677546557250265421949756001120442948909837550816738397735508778509015425211813154349179233960406141494890800284084047600461947968702915467563057654319157782826654244247224963941718194107916978507715320661477255337177095869048719330636218139032469916807149426563025521267075773102317987080451578768853410504892595863259658435250100183171594971247481000403920935042811955527231730559502912967659152429499755745397821357688928940115519797930141779347991717865293821932124655385777494487578970418235850630219501924199630550792270967701961544530320806804058155517178895165774275491489661780246358622863308265885812764708247712943006073279248668926307071938861375217122860592678153025891442948639449493823692739973853951704418860860255586337931725674766646447061776528340372557599013069389450902274374516378167823196877149701679165846988513100584671353992584227037567129604907553517986831768698207405323308987103899428977182572307174421693180537471914938556265281993900580155250424851909585151095615841542811727165378273436338199826678243618591635340814624767586147718374124524508666518767554051819690521713099397713030999463226769036642448656573610137190565968699836124054079306452086250162697649103813891518951821066486100910232169563929356515653290137630728191770093468271334808353419422796486143430049199038473611092299340870363820165488393834960737897616283316203558996522144939111694802727541110776138865141370639927884388939873337781694479226573049084734392746596450723801990080452506860937335741241835489726213994578206397110284385712512968415277808985535197087556226010380262008784247487077514842028350214216503277777623640969826817738177558749663612806066649090272981290874850686090731024752068371445670370685221217652857635903363674867395894322451738461315033347795468503641922580145156695047207697292642306393592399111745498342558209407531968880887713054516859879061272434237739745332740462719993542965547699244743593324434777205597319067811984240038216670248602043373810110212661709827603897590193651451373282373751509963954237929550451263866717427981683298589700370984586800577187672290463211691934942342360843957451793486691532989387053539674458371435135133860272547994804341455644596984350527274604197824760859182159366828163046898031939138390689192140970009252128594679987190579822985244178516965887927749163039939349422834479284121556943578978648519276145912524199421775383438704660565113210492889344489232812071973349636158041830504656300856781637718413552246853302215464475346496978011069818787389470731196041176251306089862586862438271927178537599076734230962520587516898855467799565547472166771669254386320485313158057137338875228143684352957201620914552708693194075413344058507185248869182789442538741753302433858339835148444600770483601131361013957635141884751440313087073071014369540696569055182773029959502550883801984281171591252324503948505972844275891674007399352996619951946422539626987671247581187518959878956584156894693382921732609897956773280578185578476065436658754160716931247677470387855906580638555114910343057884545268706215705463859358961684349729087966600931304818157606881711212108924226583384199190073243015195939428840837818890409960762483522683184760765533857649394741969674225572165041552333271129903630867246733985994878721844126183839209042092799775752490465218530695140718113490816917697030263502034090627150950100730675787540946330056165625785495082690934247739622381668202532831667233753037913772017808300828897076338842010054735174127707122392970758883323096501548971436745161935436157669320900882839264069854842361082725643890399189242903381113548511398921375234072203777374119531072883739463361003367559780505331671651752580975768436791250759493067143307532701062972227365988895099309090315018179243267105865502563248359169758722488250327081386038447375165355196727865539055437214885770159833973766581309943470938795311772747961602328379891353406823565283558724639201083141444670829495439759632536385911659814672150797121012358274784461476877508559086365609084561510985880384483758044099459697507005958345919915485041589031864303537283293066244936407501225616796890766082911617617252982750300158044904578867817205904033346000055794907843299285954487398884185257398185669564310457734756630177257102202494408590561253643320632305343177205928733066847646823074578057467788985602795559867079220893739222230724674299802882652960281735928796569941029702637808363622709830418170548993395617370733458726522284975226346241137082159042522296812550768078748798740234260636778648300920480534907844700895867903288259515651866010287337819526310945762675705761525333663754259277861368090766111335107401312955094724165633494432151906377232752559921642415098180909731852991354183146792413084953770455795455269312529398780100196098724583793343010808529421030517339250111334678511639130374165233285478625461489813006091018087352267551889403689379570726582871231428349120361250137989571775759984496028616297633841766258421253662646542299073563533026301276739363104459825567036366122196233654080544133972915950887731025367156715287879795791444075266237970038933381625037649868788560115298459542183159723299456876808817352022890404546594114822766256546970985500309915059735559879511994769617114565082549986960809669606795606078750780661227580210470617419437675439579407285944460297420174838431261128920427691485528674322442342691950914489896015140144059891848865911434540608703525511588109789949145630158069957318068068788207627002755536679410182770870848017453726550067106932957231453051707571778583510254254046952798472368831989327344475916792759884370187008437846134537982341556549949119356894489235937206712869525411924754722620314106316980918731845754617203263592063804064284785930962190651036160291261591151697600775301269088682122118099454353273585957734148000109599393046881016890929991465001884612764460673583814593856031162107536890728412224951721796836654109235705782162436230132457283246520527616617933726561072808538542547865807396815212833292039859518687381069530552610062840524211678154406744727982903623294279053932832147842747132727489294172258232386679017181665064087131519370549803531946791646291822110304879867768932041776656245523911458632866900274693898704107847734551957053578307168546885757873305923605911351386711684064639432827611661779162708500894862580132115653701872479048530954752621598579724323219638995013830879744653839185337562118595264411219575234914341420990459562059834573645248496861349678674457649045546418258045714235975787907008728800186556446497602728925734898470060469428868127098101998253285381476909875834815018614427431803962718937313533784698137475168094468778043107068429182181426980397190602296680646268251435648878937706038961057221270532682941269645107838670113180046388010527351662945578411879103382339028135975543244397170435558898338155533067175482597869789063431496455458928455559052320832308112694318022308635120979936990529295061443240469657173223932860452470766509011458979259587517573849561924899606192135628040283374310874895599291943201494465015904027309948758662036688438785297782251801954816212301411449949335549236136468839351906047711013700538719554572860365543225950740749423092898515317376259613137495801551692555908229399256824446523931679045869377721415062347727644073765734705187842698957404529626408908488488149943188570411339712557116068575127132783222683238422086039391052811896995968590804802607642364600734637368916700840272227131399634796286339144424897586918354477688711369821885896688358046777386570478700705646204725776331716837954302355517279444191039436889696105302425673871123719135001539449823476615659278607918786103064253907946155476440006744064680736684057876736833508661446013351486800210160595963350512225651611100449262534252313624369693440452131622677124720467882663392328202987407887151724994541008223411673357332360203098278043574557622255674387293183356002228223079378990464360973354200891090634042219082901118523749271327491863196067464488297294340570385315676122291912184811118052376474576706421981854992838871173683509143046456192682434620127688537641976742903079096894455865537761955981441500129499939204465514941129067868131481503049304828013629373596599479905470155432817973832977191755948445274515240626668227009550275697447054785586311482016504260178921943242450356450709339972979312284472292687592814229321288449529004150489977563702466473675282099814692810426173141303731202627948192332788900863089607759013031725962323177634759814127391098123469535542870533464063182281285133188356688055032370990051317292163687101688202298869790982284772347962612252166331148069318834908068292457186525211351110750048489835859135630936303008959376397623847376883338317273800733268529486552502223875733915176769028824990424154306925519006823267809387568435041807160134296820807369688701166108710884994231312866922217768530518674781980717032377013561588096836892577384745567909857161649597920004870122860835746676497932209776265579877447343299447035736600542555698506753584336414837364210691926610253852498388433349550116540754310427028005595371070674711758861278519678411897879558474371505958259498455987681770395871144697308470251091790679093456176942622373504481271183777846863911964749344763661201161380171121892427123051498995765689372135312571308182897131430745423841484267754256379538918245587370605935623893056436286951320693476936312842370055839646539624420590860606267239558765330626280181757686020182637931086249131549737639673300742506793552914784874365932930542677088949174706002950562962932745006776470790784345462173303521922598369674788863021600531430405666462021135529742839711284156338918055379703015854878075937836508933515453916429693213016364683926518102694118671519927888334671969927060322137769372079246597403073634815404939555503599701640548683087411337393275142232183569480666715485062122234080875685411050362956206703495486289297013142884533187713771510000148093944678719175736822498582097518193767669403220666529906423579549181493457201266757612990134285759211786389317696861673886807982942904756528949051006135784335263774335936906382438405529809622095283145827787744530398251475676544805296878051092339907023285098094251287301907946699438418168624102081032446633133010017083428993896351841441634980808543442582913905817408231458105673515082862923366280457339330591969669578040404526406929963495695798103215703796817406799164673774498638040285935435029553692621838987577980606876032126309244113603444762135532436963864477965437618776045694708223585062362352965202782446512998791913556441566527685119272241144049465007484490054419077570930646644284623771783199721660629078803311771371779405627674479274161287511609499615435776463048206121015311431386233334274272143100751117949358905304911728628645813307572582893404420937900328960513553526640196587234716559887838294133082582816831553640542594490241492463173821805963190680817505177158170394536657887458439085258229170585110240137655951187551541289389115491855883339344556682429703025707182175797135505350815933158687322481919083360596922648408930547738697351356315659435359754305351746906576364262261047477149417658666649272697892431861593840582923722584786670650162359033465766834163028700092567722445612835591188259656946467788119366493143848670245069069914064590623233613815468613180663985325890668578105359118170335967347096439689526049754417966779660068682904348114653878733370669416032148339123937079978887164101057289142356240243038393028727551627950150177328416275465205843734979482112264749448138180700018613391105539165986603283717700461327379132078403084595412809602730345176430015958607850751699428932625625426353861589792564834723426456364245751376471753225778774250668500937779283653668479138631999638420775870485146351962625567071608377086132205090790664651230437470987267963170757889136323565524352581264919687692918403843058129234223232946753362104124774618267072972025481554383165714332446594483765260088804673597129177113312712564376754052391709634204254960957893671675567328995010020556632558220409759217179837795022136932731252110357269084624973021013047184719679256295289365994745801093476285709137380312326131461550861331066734717516363206510450804346706664374724871050699093968900432665867466735961665266076719719166707148997803796718912650190179302021200838749712368444425137215871697941692049809212082988000396565886289872171321224712638558090320836906256728000894426127030699210419717318483029421605665162581666825478702862969042533011593122980021491687599714402295147739914127614558288235967591833698706649636485104073251775339523854588041600381591886475838953627289139692688057213418919473358345079054131280244591158661107360205466127351456047881926213332810629050061592208446473175951717395828419380027723165226714776040914944269797560624932371453166316503232813716270978646563686436385611517078300435158501342380388263355992602775969723464029624804812325616804558367309216212591336178323557922820876258791485664199188593905050212741353025887585417062016281393790173638870916615028815439453687436457954296438116965305297753152537362620302476096846372741142432372959803998204461056637080518844679086277283116592417348226899079365542919065777854572824395699545486381467167403514405053677618408894228149686456746807940251306130444152860951540321596353159127867465574955918229088268773005128661096039681543414912855471258159133467214266422520585188248343714476073620763158324358828187026167437169569442738871199148958731000791409987529864631164833199929227159827984970733939183396990691479803064307729329220730356577726001138292584367081180829411926116293951263344608030025085211948346911594231967582379360653506098589244470846259769267518431153470143068706604741497328082366975063830562986432411864196020093344202534432977529198004886394459400235655484517612788608990950716267481813154536031391139389712232073757101527936144093811555765936828623205685596047927346546149448515957029116374279993203001299543653725136400518583772382038252831788229930268120051985161937832836689945659680454005953648899137897267243560196405249145540129599497278099126253320086971210727492112471361992911850153812521042636210872583750437620904973419305393634487501111788282408013835192275181674192523271227699838786684757216277914219454648661427572939599706483605889769980410387848601174621734003552831741148394349050940347390419621257587453875613305923060289363123907011319543811405610369278958794591388923547406480715688417705240664738111658179363097947296433965458610944606476004556840918218482654151532455112306743562411690166165786821574348774801221587492144702759236357949628649235325438206270524371204213852365706662942779476773449103730507686638099495355405610765511991427599544750262817964370470311010148466842641655842752262637094232322419288721886651534629567308001083088618741659180648451398783127512017248969057263180497205910717014962554956033241557535501394634954169405171713375430635459078771325732446936253432136808538793945481370649357960881428397032951935499586344365832710856050262968858591886097519938002301580390012416997505229240265938027687427415092037377366511707567417568906512922120920755498154738681778037399620352680655352873806149467332500802919812719119148648539663890226069457631857865320509461554439991129739625605192003796297818597236249182012617033015870087243392066717743212910221383778557233578908224215574962115627985672198575269626552508006208912206992443673353084186880704297445863803800158233356165055176888165376901522298580591892920667162837991191712459280280048146908943101980434751322576792398753489886004457817432626874069540629493278675365638391141608848970326032108910239521045513138544093043949961806325978001459496471500626718171716429318693020733380290602078037276732597558800888248443812354821472335562275663720468160005200290075257630302695490587860637895566615458346293834703268421567200368460553767504432907518938961159873478931258988009782426360614603852043703789771771157501850787844202316885621633045771088828805226961426398213157942924611648232230688285026002189398781184420222760005029563840438772280720255872257449720116084340330757077188371670431384797685726358931385908420387993099222401679292409414346491737225684645519502384578989297300558480860147858724338433226736213545471963658185540397256015153777662984345581002452115478260176017612342109278396099386684363754575897190096834549930025340330004271519496301263462674086005932149078424020765511083393505126572112806869349557396902248195984634832362884265010040133794073987555019251199982235795000923749106350557409062874516681368943971135514468097192045392230628298389302384348262915495521700461090402690878862287237905985999812854030701674961588533795876054379381029050392234680911880627089686891310035981627029318171527858288739096493960833412396263786736580435615030232916723045177855163083154626676474326416275336644352513568974681156277792723617571401310425727090517568072168056893215410507827105654628840237048648036616448290407592139000879750064266389886824555667682453186945702002890720746862553694804654757153933215230682740327773052278050505674599830086742413598301801475994942095462895544389429369521890591672141705717560394042669571808111794499927313371894693906709192493627741949154943587440608673066497241984520956736752966120884045789153386678698857289773141077397877024342014523865423125447687896129111823897501400495077984750253433523823812083066815116334407886147270688297905822012851490494901428290283703861686194197594551462601449424735067249153725134976796036538034595371434022084021839123096680474803379869850555771495142480611621555284336117138734216406569695940877410215835885760984410407956283841390684381058950782014459099838995673845482287269493210411185978708308632646931341293352493700320242390048058732715771113821819773221332552239435727106346748128770617358639508354061773571612042259541953917672180324528654208662815551622462754098138565619847982119191270120506846534910572410584543092644759203010409016692631251458045910249651852266558580209442864851608320310146393477698320947643745937539778317546717105474372920782794269891239888011296757796585770894662496829147545680774918658643609179249591777635070638522689666565822822875635235899916409403224247108331260659935942414842813698043576082296207131763609130220160385871730587710751339225423658838271188439934839341787618467471981419277726726743879567438920690315587500071563905999618506721060995905738321583026273618653061974963112947074915334076623777657854905973783188022702238560826125247993805126781097988276592172112859539948107444202973599151009110502136151730149653564669819349130494267390363692189423100384267835303797425305620871872297682317825083655257017003749472849064686430882717002832200758836192516384746530100968800306825932957239049421077905319381985321532893325091117725450691619047716854305893961836576198040169780919744483915321551946097224188878054783094977310198755831651423913769183616862342484943808518655567703893879853762748669614996240263546846229509684486810075046512285445095226687275438564544933958533036504783978267286437731088668796371305131206387007014022074415945302973257999242936881204998194312500706149853083139032186148959507893283813728824094944560775535570149569461085307562780983371937271962396300246422636383404202236914194371184239695626194969136451579125668366456803550592436309537892280595153475794250558434822449926467703245254841158833882142513847446723593513589517980520731781337456714044381512506796759823725823602817736054536973344636771073671219422056594749201095073828840663436097099648045117124468304150614757582629751880333408915919738314291064764636710169157422790146569357662288589222821998325345363938252836559838341486089045481681532820863909827996044588776187497183686227624461207652051186735806800611946271844986596567904427898803514800838473970830249699614211659751376811552293805653614308218389680073119012588904064808252156353702055195412679785233989940108210065596635735874810171541259178967540451395291375275916290207876035009215477047677990752633374866330910892333828111213844638170159276854056546900546991915072555042390082252946521004766907407868444026912313128387299471151334500332007503055123522197693144519287077948639930643888490520216581725214947454630675934482816406929437043629126389835625938683128474312169030131284999772464858319462897567209718106494581066186414029333519194175785148105619207259331430766052710166961428274776548166157764909583075891901631654955986459337058041756143625556935961938542269444291081914468205488178772793043466936346043791011800131736398328231327688675312064279249132083308070449768474767795543271962784859099477865234241378601262030499258090922590365408153604297507126397632712818006767295023448197414603230853714643524913159204729874207895132822583444459743379637645427602446703282885235923474516535989303800336478237792803089538982342929908089094624135357052732859475907939385386882686585560708187889856699770187915979830074497096381021572693532761081406959944024481094731645183748430475385847552892406415484931809789083249965448256691331469955281855310813270232864882387529075278731973145046606631936365368409280296153369764522089161240724478376748078871525658351590553626305127406887866807742413540619085836388052526230738852656661800684943818948866612525416695920087886786584458475886225860313971522207894521590199942237152353049701430764870684287442708948359684368598439004387459839849243362221747402393023202473135590021709563303703683268952919354863266885511871055030599468516454978941462019048277170216289445265254497725763590475087452578545278256901521123814545907083576071326051446611373637279889321064610139607726264835197752127039658612145264246801222991690856603286607003336426309099218865488190409957964347509086819597877558244025677773679312752030598751330023859912985767042383031892304326328566167634728787750563830509525878067233453698890288784377989534062801226684201854664138937741300154722843443212732022688233574996085997063987585620120786224629914577955197466472273792555626397838749373875360463285698583072227600520346575873529155902564928110682804802811722751931981861767276010845739565517051515755722664183310504250837776992374762842981813875687370342870788542891764407249216868306466477883377081355282005598142908069220014747057632104306033165526674670860893848169418232543640630416376817505017162654543015194959548048149264936441307855341614191068522376435944860429757248143959034644354473953005630434923097544692628205622865526514985667808189651786681105764537259539402578727677206251335314386483850076924765283553219158689304294908912631551737045707923087418805938672788948839667568165099859419748031666864641732341257378728933739511388615934086523685619951667703044621295818651696213823404048169418644908783696343543736684665083776856961878177312093233233888051108978014527197119101168146128995368945673619036568347784130080654389652924230019748838550174241105654791196931285837104934324761030896767254154612400665008045472901496755291735142480944160441863222215397181129791838525006101562578421571828466325721595828302358239803954623801726842791363607530986409312006705773362214127689860273471420279945215001608042955126430203848828399304131347788996051157439074291874070573718159650607429263352929380848708577460975513727104274905672284053978332380613015106142453617141004944383577330833048596793836505159484401238680338642901420853319661578932484377138097536487234473119275266438263549824866592554449187145814181243658961654936086781230284714846025876309389547113135733394586918882427542448419901080202818909454487837477292775552179425330086611987709672627583160295865120219636734465118193370412520360379682843308562391485732175849959305385646936758797436933280830835648912836656635083362854321652152338752576005109878814761626731455891961273792997853648045864545154167227167147984513590590096090184131255821108617071369940209320494566124007041534606008034719580966320895995097357272619435386287151961509546021538016918480513985989034785189022172626053255422644126876336208413772603727765955251487088402381157162344454740243337302749870027412408959486222616644644009212757573223652758134376793472169742528043307366513697480343078766058279725016036159395718079945420913115141826157839039377290272289356031261379527901399957565783117693837721172761015915069338691480116556941910053498096062466380844853557137275235685345728613761839452330689366137414703657259762081178087931126224234092844914635367265877250982394198140301554218861871741479763003815013367002755577774776795741836675375494938668408906993056106029925398164198632786211703797210012811705045850877983556538975084448646195060387555360072106384241019037484505585242950069008835373408807344208205121160262517606042562264104162493552429202571186047638905221772490829246049104929735083790771502935572514067817025720779597101092138040651801101712737950404161055888253537040004813225182168341827322149547911341037982944367367986071636697811493028683649297030801657846841732717846329833485972179223544191169116231156621976684832427820026509950295361108487049541289417240564934073248692531490058731858065600371763613401567051527056656231026019023007609285755213429547002034743263308869675396447660321992752655903121838101629748678540965348584955018091257812021419359266863997622821223051601981176669769619637286382184219055474369549499727652947914464589877613449519869134118752719272258075914026094438882629487719827973232975661673772537821576764457646259121036753847258621580412977754868073347851854898285284339637887756596569981373291823635879264217481578771688863414840657522258174813825409127239957891718206861035964224431512339052361745392744207171992014292542450896658525954715489736989098185257884123320289398596289684767187461068137771377877840649740067845887055232139450468758154186375556666212425214798037429532811722861668602911585630485286519263528324587974710629922877092943976267204112449576595888707486899130380613125395091555295022599635550635823823643520234144993519229398621495148894496188331382241680063194734143605627734091336672180881359224350769620672134808818207442788483686710937051823859858191714905477023417920173269116300267135332809008869287076496482766541083189304344301647578242886900670094905010606280800630133938382142620405337601533644915141965482362341401218133317327752615577656905636958782407686237944079407778335528520313428608150488800690074725552877060073219864019638065987516888018367779866633892566236542924820580778088075067978641022486772042896485085712075469786990981373903001624761167253757364364038609239459092099092841735979623876030758191397483419918607959021277722651781783382701128445879428134252006602273671830892079489078671616335016982502362456020153055409959928713140374794434580564818207951411235140971863092246087288989658129239845956945284733892393432945660705201324592837362725046249335900383572255312572584352225907069754599796254526873795274172045332705766204057821111647071705715630015793294947940530026822186050190960648773009530203039729121740996884329564569497649823711114607091726903481310185953849604624241751967231127632933495407827213464648656999527506092748764788791896269563058389411347996249526795737617374124774336820376794687673931832938619838212778181384250072769706495497444397633629005231826678547257692902822927231561155243733853880116317420894131905972955265425924835257764085875639802352204241884479545193013201613370815091811384517167346097252717963685564174523670987206925499269011433784535740718929109926211401332997581457137383717272494047393099545750957013164850937207985562016526164780432004714400402404181272625459443558229615389427325254011103741066041432279391941151328156028904675992243046442547602723323328652635427949526634817752401835816343205185607172665428740582262120692722061992173144761355208610372336631486674372283469896473477540793306158224559641780238559661044204845956272444639287280724009898780505665089025777310698970484201732183901999589841008800619402439313171940745076509030883649029371446605595078752691145090586014333926119438627405101022888738580632551037413941323653306243484381114235588926821415295912511455584103743741468572318514657092846010687725617089324402174567651687309715886693169939966635099160607451955662611554776503533692597586702288631835589667847373206032221309599192381201285798959653904741402702395833734869019488821771165687959995161018003734282504624413010506656240592314690973058616409044762843767087511448185757511630530115792901103361606851320607890284785596222556125492872639333309678331218400414328602767630619294479618795994705917927103447672610035501031464863078505731931112731029300557756385889420598060015440295409944967649891289495036886878039486864668989067517259418504840560001719821122840922257503011698240454243067455440624492285221487979523757887288927468289919632283862041339594177775507388053195888048891708265109918564854004798995084852583207193448955127560215080508227329883220954324994806004967261816681318526843255394174685654522449606409843350675289294501956239000414392866839242182508465095231731680748893701700201561291426802319624192606805109457945133715620721929588168150284295560513867584449787596550834847631362975349413798137090996326338505693666059936376612281469432047442718132149640748025549977996386607051238740969476106415798750127588107621365663543314412345175371664177107486304030033459761782704418347268634606607005238523567574289785656294680544087992609742412971979554003130435250534842417366230318830608401031716688418366054863522031840330619447720860586451680157845151784390731728647979051119771965282150055768861069457718774637692058121320746988936382514372465296325403515542012210444221392886700667314398625471098579376510916400982675531955389138461459311194659012969972388432070869983955301158117681330795396832694624005834467691677624170016425984604480339967471456480475216439614548842496697034258848397675404408951933449676387793256867881527536844338592217499448761305267651856067689623273362972512613933983362102235811054280222862571090811596912688281597111082213574661044996846629740710835120128491979696133682164435799315478717969122664064459558541954542980902692727562282391393187628210145782254954394349603197638665509296947745676615236712876393138549534602633265819250918708581890256547086000563543650394449724144126746615613813464459469848500614052692987360987236633039766961834016082708678234065619231828982768286191360456067449704202419235999874837142677231282506098104062543208641853536821129967398777483579203726198941776304450084338895404791809246816839167789468765724316806900265924076051952762905199583516682589400531725613203157474985588952389480541971613335046877442396305990993891930551801245644662738342227659278381162305557508091345519568030649349153498955136299556012560277710548311681345726272264310737334512433051069165674191449186826287880843860464895738714658445624507007352059991228948578779576394216940170489293733854151299878069983817428643721829957768261676275168384962033219089394337838189216773968093143728785501128643728372729089554417354367371565177010201144842359058500004524102055424922242535387035945363696770663101459510616520944181673834421539892666324377243322195008371024551562793792561489837714526457345386027292160608263326747189524143239658744989365147084751687387911897447175710143173701233614615787105114431479114379528409466283385462626261175044407452049375744822865583477148262761799394789493891272812738734488113090324939351487910158445443035736983108361429925420146469426379685149608808059761506115017264590216505787264447143299241349867388864583961643455323511846887087626612678994054595404088948700859004513218910297469544426832656918399392961245117979197603684851988858693233710803933897916563127595575019823258679730518949704680372272840597678547781869573317466059453046225628436302876627231357828854335343619969326495390712518330309183224408372935682066913575840260912512428177309084188712761370553336387491075262023336242066533188513859348434674284915457398270723690975917443941927062183561595069415340521582431075050504962650823275929685678091962350163151200241001841702546123714714255098047120798814171186321086589518214780327438335021741528245978403702296419060315857968527121443525702283919955117667605129733192805764302589812740045042271970967560524659634574688971862459690861365838206648979041213173230750429458970847115521285597216491302543462869001007487829854289956749453728268129287362312698546242297954319276861731408526569294521102624784350780883092960854141804533083278052859405731281201796376551255330338133038336452368891071841509948250612047311415897997193602575209714563018417044467162457171458401059712918157727775422742719306681117106194203329974352453429687694475410456558226239141272491248438418372579873808266158485649234310318812229610247082904655650363300118997556606858500502886933454206575741519708535363849738635448342453514884561606416660042545462492857677434977863195531118517716453302068302160629684206440293926743311882711959200516154298639065826431144826789948187127130833073065082546366267502095946499114539586911306034012125709030228847195856161078234758381200820934982036926735509824888644599000040671185951640370751217199653860209382235182024651340606239987108317900116765754081295730539834593133658972597169797115088240079161624731572029829514091666073482288089681971585333674264606453300678471069844533380904494003733970976459668251736497911089954556993084956736541920911388318298158859342679292172422703647858427223493207606942555268769617391523021732048209538912390391936000227570071132858452892127078694784945374481652556466870205254384895589039014225874821609648224275118357619920842594264409365902405919352284238767535860362161643735072149948238911886798217434807502968599391018624998033020200374783945154468376538913667625283858093047393276443601417792327222359224915142413044597264137077027130207365573145456981657706742959772556905826278040113111772595390477644193167787904227431112236006461426862606805506889855500769033524926038445951018301832664382452623123924843420576732965358340939664850770804601107986431012505871185577371274863809275550005613055434687901383500301686069776182894987239690243351417344498501672330721365277046713656682948392911640554963031832612925963798765685841356199357577990623002507208764530685277265728960911821079006076023429538571400906581468504161052692867842394930767922080063000706056688372814605930113531397723565174819538548117215936436150801442508910219967507142152072003555423724507549022148153142652916241419326237079111518106774964208172033385387249714514689227307072829305463855919736807627057001700941793129794829494714990860198462785429964045633437199472987353840835396597125577634471710491323791461937033150520061544769965271379666434848828358074065186041036499726859100858008807544302882010653009888943579393718225440445125276089046318193914321966577722907575297691641643274423112781666707279519753268510117367146684144045777828394827778348174385024274914359422438240610632379738347110353516337083737687759399803349919138889632376144110015807520375307648767627285264796218122003341405820135446185358307563456249218080443294929347192850618148527175030893276015549889826634073285133215677410460191822246444942474970520871747054706773904875133576785531672907490400264441827059094912332776831838511478991281279093620427833664500909283769692170133454701927263584826062273501284273779757165950836553197224955038982782507185927443540644702609870435358268557152388571248483639205688457440009610867128439293221279960220851790205739309142320452731642292155384109606751940488697310946069424565770365864133399872929438525305624355666860568179205736400939538181395683276180580425314288710025147353680276055846736454473036390140976901494913295917090473479229612544668607096802089176296730964679718817883339478351202717694987876092250662749984901073641456793654091670528461675627984425506394824267075517802994515914325859944897688992485566626014781789294974434506901012190074752411949226875969258293875361411303489221059156135251292557623401123277430761135120422746791692037424506724927110602538659291244814192768578974153649016555311041128317280735058001185457452053793005014098834360246379577332866223623141980166943345434305735462314827717261872621627257030824667118475063283138887293552007921158836536138654831958894704545871699524574052562863800014213331196297496811789719091705164589437438511946713955898893641912457242249868111938975323226877025421380379942745140765917257857591165693888347127215396083979307419133087230774595606226072075516077122926286144902516411163601100573306108415280649738949940430981320408859090897954157001418016413319231492385004543150498487883303689159613458523421500758963736845703288385272058711777870555456654969225157022439706223127925769310265540740782287401715658598831667768817040651066807392580393655362420516804749369484965743826408230508816530727362722972529534727909180857959020663872420103024278775364708277025457008815202427463751916932871684873952651490336392269723221269844336963161367207646046250277446275989655425651059236866345094406638468478133720919430862079931331921608322529591496035625940813018235950903128625671214140868970593748919455456701119035187418162863737174606775643854113921261118004129473214423378643749732899341460830685070696155771096397093646376810490783848426168031361239015436464810034522542985140944330644113811219006030389411942988988612388425686819558262552744106766949839242841246579817079127533561866541923100421740918071083926067529822711545555634096277524666203220579433170238037546574087668114734602867680396249635870322833469424800681564642743837599302641243232875955851007886228087459302195337081526354236973038175774701441726742783360751946396003799544272110709078497107084238009855276082360678232453790030219544958114587105448506245953531465875265918793620511886554337039802157353787108437919097131207931756823567575871430167235038862927822348444063324864155000593387507952703754768803376469184937160604002617786710789268030036809290055828820339955652408899986838578370430227706333259783474762620383445616207706247850215176591493762809214029625255541358668519137514062454787743057262166806949487742270289861199219121983359579346487664830558602753376443461377173326173891405891111811512715818335911275540914479323391130155185264632591515352394412760772774351492410278638679625937080695991805120059318885553351810623627096385072996994066786384547521331725252787845222127286879622608859143312569062555157372006078545952506797299180890967387580976393490915989008219842444430559269820614722825768445018186550471982030475849805042697720663738774643364731700207059557669713694753940285142789894143975835100159393494020572686348091882784783879704847956573518051839025942533108441002186308728394529734672485933235348963466122007429454391727745044938102098391872745596317745875150623651591269303286332643259293550939268120488325726100470815446173274742503293876724083612641260823763420954908604734171884003590501859611501559123817783208366903737411164104563832019194733170891063895525450755022047757434845939189011122077444720603448756345704900850605894670214532764026933378187786188999878454509535601296054065112044511015953978828190423666971878241466271170819647424424694001557493958984446085424735237242974384403713944509736816984763580733908376222535146202146743084462509553007722003736583960466594548470059832197580421398257605467522854422468667521067034124251419854126856684802301376924944876453887250105924272604986221756474947658301331252101195877734534889114610545526048523270948157192789709011894485265428939698109645507020613797836249403589171223701357014056636547256461847217314557473417859180063011025754908951103796198605765572367987086312345112188676055575709622754290437796978781251259616688742061751902472316665158421740772913593983791184435986679352976929271872965270070354839395411405465406798243546318273519874291906057378133744765192220167744584560282598876112621523445511901119588700600167938225879297494235120967093734390351810449193477766698888283060133374914858395177445215226189355720750575566425109011962899118066676507067090842757336013466516822205074225131355186151919387328350009407343027341175008644586065687238674219109274169877388204819266859271896846768085962862697132635600494283455666534915711320980025846841173280311903304569290614036559468259595043906321699974232863889847902070394585059927130183128090867227158919516821357308684618539552083429430597341459717953704108714732685102476343685512212277286946942565937891234033058600351474546536274890209382310330304257262288316693238581556260929869239813474908306835216560162339879344598732848071660595112494420242640232524244508934888910277813889286487775237084354088246278469582339569056148535889353601100309443570211292266746025934050323846821444694330667480613081075334492754530624907732409750259845631309913096603918721047888345940487528809761023076204042715519899136487383352780444708651781200967660286741359960669972820983312654548607754263513355835001782933966561991055302274265626438003423733905504220576451709883705073014616668739847233974241910242942681684844109658895670982174352800182919045616910577081425854157728671506722493122671463347698176407191852760190165895008982938244297618629399188951653769718925353813246630491119713611819035015693008752575744610734015112122676434751516629689336820400409425019995000002889131962739785055339707880173115239607929989081773218595538131983465986498152849289350582141168539101155796488077931118233311382323538894755640283065183792858704698518030655735247362620600035102290334466002742112377532499270145251227136409698347275881864842648927263220605455367415768584747311078896503431096870518807619680530195738366422369975955230207674007608810504416735278087935463661191151355216614360971061502651944653267367311207589529411634892944776511594605782641819159144035107471691619205603257049849591946442254626076888906964203140009743606184834080288956981023004027438376604584470481182254966488479819527793555331503114892625735060914973747799309509415999391915655289520196356218121222759607358752612269053149575526532396826443384830304019680850888926619296343449496801802804749459863597166751618788130086204445668045694408395191917062606885183552079506288612645560016225940601689261156017683401079546615620684318353896646738266377713418524721046254079140781810631336182391712549356427052394360828679030729796661839570880322801361192100492026475335762204912953708695524530830666615659159413305586546011903474702985821084069340881761723568752922003029400113822230456968423750468850575999293331577575295037949433408290936142521903976848184565256655560219760469212452310166767880658041265217443196214193658275077591712813856204805228778754417942329562974432879551992475082739597034181804618304630863790900804487919948705882444636761707970154522060379915738235248304615898757049196045296563861413891034578942905989052173821616906771540414305139477206820906142211232021723905042715985718255179908088289636966360481683624889499844203054655005254946681804050375773798067017500068260454635876962041784418056923036172712749009446723322645946483216305741434945277064221488622037007335754549792717049976359049514321565050941951477722087902706817133974541922043616750428023022251089240813997624114907500337328870309377099510749347808647371963701727569861108517263629797209723282485981139089785084789892838996919264529048014511212365092821371021704916014322624893970362824854164087287058487670436805586146800058895573072395355955630286360394292669157647844702321237061691346611967452271471526573030694072101417264376022736589421484480365934109587307279403215944131548218482276644049154600578829307011229385831255434463193022267122178648090587384362013245421457167937324986893117096291921800719941616365362152496301870871475850572511009745577176952093030730472339809200796104361180481962053207104439418347790890477121088213518632813079325933573006568399493409719177025759805160241927338450219711210087218246016886356009432059901702878381550170871302306317445993590692050002691634404221174769930522989617249266244852047732188142462264289159369968272796026910978028057937672754772377177981709997497662785084467918409737801594256663815105999685158637149072421193864307852930403510007991003059063889013003124356244293698767212415108705923578916536902868170459974433570363116923407363646502341239244010706679702468167222911359884225160793462383135313559231561967061379734808311728521662962513884951982556937238171813619147878783549438004354984269736152020086414655274822220981892439965725605861712730267533264123410782939561235697852014535296728729980330293771746531396868448825064213772545288718787407292429261310556237228001033951991045306348849457836501968250307097735038459023209393203531925212553241505877546791455928993291646715190117328152059705037170719934447828873240433814471388667173689904865367291938705470143974073476548980480804492322681027025622089969699691162705576933907437828106719375131722828557264500407812526695429390127140814351277651884824041573751385900398445394392926153858928666617311624843178753493291949247262673504830140285834640603300426153007578512761521732192430539970573802222896563264558990612653561842634829941607422187821033888650290014082042811898415875437603622877845905818466331696251454243981075235372658295041638723283883490794239783918225831964510852139756144509717772998473877024072285470788450799047141777973384945887197555269542308586870416829825873088885926007790419452142491688614805096405426199902465880537105295568069121316646729938857639074434987790992121474970504135463891518790959737296579529744304807659198065123676422175210993994404054663366075445482719184044473472137063549049338670914592524543393674327199589221994671812381951198116573329394141875119098812930060255877041511608300620553995431429657010996360855722166588105062385049245998045608216843643131797284382122272804441142885701474935890428716631786349304085854696094624699861025016177846279765045256811134846135090839909516311070862629364666340381782008728810817122985809156921703444083360483866645808904326946278885806836495577415408840668188401739318565223912759716509917064876731017187924735603696175291270746531239840355889079984336776027280510716723922579248132412412444749568668328249990016647270854374955519770945796634486534198576165059044010557589313752111866808893548794174536001524307518563569626391808430430861319692281019732660556824954285028417448808873760765598265259783524713470621739256732365054609487688005449624204589102477924524299686179862291135307425995141175433080588539401920522261053061197999665760628971326768498811366222989847296079035315783109551388821414602177177766748467936223406481579914334247329541701209839920234296752353505066840180455125421766386087369398862100283078619001731926935619655806819638593502617931103856916591375923473121764686464988614687941366530985301623633261483223999135280184038975045368556734670165209900368954468620237882317495030422317578371438053079545634476803059057374241518298635965766724165172828348025623548719844783745410044852837210042485176286411552744288864503125114726313091014597819539016579340439557215263776223862876511338046692302695414868172452403436221192903573105717421918349427608176346049188001798694797626043862960633003503348714648547210704827384824518421963434749116783326549563702402084178829586505622111136421041734617711361006944160843256032434129704524541736535071109731235556793820212436955964369501810068109200581231406898818289794776219178220626844913245966829549023826694414149235043637368728140158442114813614841061262312411975911265326014738358598298515262890201889114144040069791305913290759756608518796071069984930073766887593188403505476042531220064308969626411854219364592130404927990228546359732376720309095806039241280147239727213427965421567297722283886488076970998533082353575750940279338632051249944536105269786303106829558584562283086827911567989698070843003599296900381753073859924262473072595110974026884910328869183977858391559114073524362768645552843762506468499268584441663684337524077405541914359189918274558535445199233708405293717104419166693651634174751422897733016841023108310753697018640915881864373776417924094287194195374496812619961154593081587728665770629406191834196745057880290432464791837558815099641602508428712448959200766026724494413336084404240527680544076840810072381923078268102781228898230367199259851318857157799659687602699800129652472973720675818177092764025207991229506026100434392705918744182575935169044429918105330497317305516144312282304807311037477288688697778766491473166533030712197183551700043308454058632323509306893311086297649574877300860775425372765182441255700493444028151060593437323045516428043891154518942301075272519839443589981709061939654941817409979034810750132248579642805572580949633194334186462470489717222129896903630753610336507016065970186116680550464380153140062567281023989284427970692605532493748552521231730018691283943757147510274044276462323094540408296802557447472092029917901186424036780388786186718235500704202067167468399897043455859516237652924213753140509098768220805124381887389359060115704643784543857311121423932783012460219057762839133395521815772815643006445144010944308751699396429882441758724321598021320269893075323448410348531515369155552068336492337044778704157996054382778138523915332278634627367781751953321067527780373049050493023500775590536859544683506031035144352198189200708344143047274906773718557116100871872356699053816943109117973261009554522148865479565156802203083409751839940022450527503380057967087783020329385869365880323813427770477526559852263913915047571374379357516721727851459691348035532337536200441310664651882126849426916026454413722389418638529220214884971214397872002059295849673163513985590664982649168511248245750005324889837844008565901295682649451844989585410668080530783074001850400311358421786585852142160110515887709938307405856456098775136464821988227838435516806672263347026357396000740594334903163262961914642382999440523901264012907661744621029695448836132664198023472946042001586634091557185372209068735486444652767060553601713226751856978983305807387813123065603487792060552526869515550203782847747536717865980111653518565871188348896923898024235796861089404685113453797461705860417686012070898317312777901033098940770129450901460618609500934694922248248165937141001838891847742890384105929827709870498559340975378869648410177045396698292245025838831265857346072008248082727790564203091741255918008884302472227011630085781209646636366671480089859461163543610917752998957775831214245947919738153035813872441729771635075256708139845725569134032545785086021042193465537990695222230803710044980073693544530539028157632040277768883981936569493138178199510816235874059213565928393217731755794896289254889375005160254104108142548557179881746124278303631481886458588214228230047435051507297528179114624947129975387319365027020333874178846916732379585270854488234483021592283028530247055711603201128492622916700990542374357763313865079070383068996809360627570401483629534716091022756795967621767981656237040293282828101701993837136801444292580167588994252075054775764677863016684007706211994486435528681641729614821873874740311981902191942061345019718875165700919833265975668208712485308088127501993265983830261439423730086398703876343742379052188415310014660540628367040365613343605223346913147108558732620153758952053252597355144445348804311485811071579166500266243417039969152563547283288034572796293740004314388719995275678981045171718432157053259288802234773405536136652801286217895312950610555748590136103275205644152511807765113166383770615907462585953611249468945988801204588993631412770382081113197746844464048135905043248350702696433744371809543875103353728150059009338331765889686408695943365687640999322965258322265697864833231850418330796200181688048048037158622061684713512477053600007362833260311546564522120798972242323500606792229897325239443809395813735684785813135042556268156814931587126292617692655806505908850617528105153405706138104153455373267728481641162163189288012445880843357503647374473505465254806212852796662988298385593745078176473823973706127720948156965250573635282257491255050240564221074658208379008024494393939365077525110397871835005064479575246582062098213093981400937864422327913745492569934459906226039065143467498732154847958513219481558417745485204323335689165525120187163247068238964550137126558853125462545461237719043412748548794979929418186016356044408738992961432720150753755387826081236695497056149323225236473758160866981569301675956329385004226434342700237957917320971809416575546900406860677695676436887705404801836871020952488564625078067220364717794717100318541714114218553068435806019808036407394284773395429884169791015528286485054986380933572080642861636650527361678601288013690634529008611987312519739668017521625409946878625152426141750579566188953586244865786112695397639119064187762994538737811385554597016301336945369610635947696837762075693511086925482489565696833074188643967442293621324186266724178004014263236709451530069020636711560377496496174097113455184861869444040253968660968346674210068416665448826934500579524559896983074160236595579285074311875019314430041587119421610601217567682530298746933001714318348366413266261272852642623344002684753065579178909390504393242241358223073743114593653124864824935374882507143135231520522032968490564207247828032207693411389834025557028055405529404879444159752551953984902240331447916473858733347964087314979275539187367815081842072362469496592171541386828222538706039125722496956322090588395848584552047764002349826079386268682491103899370242413520111262569161069761628153956554315957377855133865852058138728816164029902706195225146191296971308940206108345123540782976165227522837812190700006348041910910297327771754257742513883202515125530597836018897815499216415957429860357442324523788608383172313868774004672914909328060418099558762453889450237458412134557871748999205412267035969774395846143533776736321905355312836600840180104891206404106251832293847382986446510759861983892310283781543404777820244297761546741347946725998577991375029758334617135309426732774308297763815495353375111219325721402924498121549126217997045823131339597367337012617983485347998013228595024111748526365658488002650938536131571188019499170824999045808728838684449792380174747341501418105805447047298780067116420982996742306325522466266776093459061931835317972641256240522626987172760114012437621693640259439327342219733468005456007019731548255531879805444415848440745720994463428297535036863717275342018386991829819880866582029217931564419158971375255444154207776549019970129910610284366210156311376697488068344162183485566770824266191694097766795371341530679364883787852349339176760813869036687066707764464297823679844895379733000767479234678807599119372273743734453414060434591902583581999817225290277461227737109439878299465858499242045053771457663213136592399170612280111277775918508615223760603345011403061537168058256209806455262939696026104097771053535624338937901081017352405270000518240646137055697405448341387505026817751931777883349485179624982032146629742955090153432888375846821271527281889247023971828258714137768408208301158320022771653816613746853572922104645114645415516797880437107650061539045467097428682152590268307340139252884524769660437598520691216724156865891454977116801612366518212860253235645064560567417812749353379872387944608499126348785192406199324742291865410954807713064086815145764749338378991088348248071967914624762475233725045889397705187349209463586702465375064447627621849941953435963454458189744531905187281965023549627782071948367980606973873402365825284139950216975002452726453509174381663202660757384898211151131404295237459807829565235365967866145049383397218496745394268763941949819278467988154447640423205318584420780244014426367864113220745496034230168246377990249660972432298429679683502318442952569731819932908689608019654163152625427958154566334584286567398419476892980988600255700837764599641340337692068827335313243734036987794669998613829724053790473089795250205253168956422798677772604004221941625728289854888598441216372471118702406090470553689578956667734357876888364679588078332855927358375708758036405176627449151985139069873981407485029163150711136072022581941172809151065009910953299651027373541292542103683645294241106705594842966607695762257081833414382527797796949920336379039342030589516890019088471470035607192874401965279732149214313744438761898341759735884709555396676599201471594236980828844612614463253988344155280853815035974531714258633256345932484120145158815619159426898531868152023254258950337506581758171929697892106021476580009235160686133824710309010590470838268678750960682382538315936434712527311858085586622651517402855292878838007169165965582837667788547766094412038864495586130933978400028600373558755107287306004761661960786152808789746871092870498966539942789477922362483184601099995486225096081646643559921857402819854427845587721863069753965645812494802905631817441755564947798151963433787228422457912584033344410987361348235524113628539405675303071150477526934578464887401920583134957343201547783460124177628673097237592806888140079767601915505457330720956288764339311919662705640763578699345476296600626228617708912017964218426647709452685478243757607470655966749114725224743215575237450906747987079303118017445322830143622761772377877229767559271935331755745497929620597461332255019373195390766456414081611409263330602653295345049321749283459220439628324576010844221288334530031882942713475107465745376614299078417998564584051997728790549432203685015671123905010231614236836751789199297504682081831835138626221586215102850290700309337087775736153740488052540339950751148807984040344785589112618566768298240424908337474169338798316258902474688906321255971538159589342232421377444069082170950598510491609013159222544488317369458172454066677743451641343691000633676123826626386081526283003636679668892708382595106974250070411064885188300849046581488416078620368389678058906735216823173821792668438268111193583683687229653250380423309682502169655375187183791356490654307682369996069143990106876868610098968304821905781169972448177480532848064805952732456761467737668504042458484936544035279782934019935802457170806649020831540803464593844467584310779444856175257414690676846311991252934003909441644720547993198449852687153203096102671913064536782367702794885881719095043749650309815321075078166737195280468710858047567058748855206341456029646331612110226596322086337195325192107518973667911270215910599070326844464200630372837726136499429167711446443237085148136680871218933459328480112145296718831316784942490426938761438892991657587015184529285313877128593941553253032821539434417278785612039833018682272496887078661727470556594146158951651707295726999499725471337018789825492851404423811454173591110702119993730908955208118741465544077426171270002124504373454801921455389455428943777934915900564650466682649861431745915898247184696537819999220935713391977171392734359558218542738592622774932906244121450071910677609820058648012025825568747368302791630368578444595289118476959125615530121579694375257578295592712824162227644787835342715837162007970526769578263940786595507009089482581456240649215129003901482679995739879610739497690249377282116549446182133109315109823919222644469422657311414742295352983169284884741919639703314577517879483142247255273698810602437071327021581425596867040969620986503051910576845558192516217678498610614098086213671816098018919025375319485115251250539699669781769077098801221524156740263096565685951064100183781279363350027332334508516152518011347465495450477613548892812449456141831478621999740248108951040875768802052048689010586974435723079477892317084227300473495840066030977191602367614040901975282670003818547480243866058183817879773008905489019986115778786489991509217132656230417596143947121257796902045071439647571230440421589506695344222951174715545943566680613160357651391555360900410925896616009809218136264766084105000079940420998478985933301581929301313186929955978500042559896571143911190761751288047029244849115919846625206723128833505815786191262192360985353618741745963000362938656420447154386503249156359593008393417736108564446659726906433958851157058424518271541156876494477120549155666431720522781202064550136257514061871381157208997832073391834052223399093945042913105682712674189542951768969118114711058121621364904799159354105625361066977651785041866558389018962291539887982601728213424524229330666184057866687727743069785535760855530599058412649175178536287025261499543185974706898307491591751680464171499631882854817356497585887969383261450427332073542796903287825507569287565872497226050987161138851459570342980541071250832715269206183786499248820563293780461984054984736782205364200467478470739367752038115731143762785335770399761700548871817719739011294133660107089546145094666471672490773101301105060075647621326815724606085101073486764919151401629229706175793405335667857273392043216328562849740755446609113462433369515259586371834465489397869908889068599673696352223502945235827004197005941291017298162898784095018613094035264530255004310178699652316646682010871605826214011812541243368656650421827962597567809684105633711310471603854748636866611529927998832854634176279894625793306795017844375165986969737785062335322756339163245829175869287483133372132203794021360817792981658738621005659090615664378027279557581737148267849191645902893901140503917526395590064817792353064981112075591240142755480978465206460105515975109954196223030495301765711184851226434746362357522424295022565467295141965473736583717391378506222321251717314062299466063682651837806688967386053815158744672376131950834517373775753581965761284738021830922860080945083675460215530677938534105280956049999951877537461714429867548766730677452487571435695002325748195257455004087873144978646489470992145322354037321060861865379233622763637592234546098460939084390760218777927280259236463828530452095598243689865373758572871882322723487685576638339186529259443882109963681770821113797360226808103198552024583588529475170991858500367755042149595434393182836267120155410523164784925072529923646415003061321311756464317541270401530811510243400279669543597769457092245888962442828389387427597650985623949465890639074114161819323655880872102278219735505903994377840595458366683918793882010691900177895900265468219090863646737416373923646800008391200096017947471157326219594277696240080232325720535795643618411160266599586327117230046342841101603548601695836979738657619492469622257794759113819704448037693140741044170311502396478272623489188953896845947435334872271487840986337944768519986166936457508228467348455486857063784224723110029782746270429331671787037094862127057918706805770147832710504777750048066641672534339196156087469393535750487436247443513352262592835124669629871649751484907711057338213004396997623779168549004003105701129116236201472249985336795876862422570634378459664400551428731946491220381777234944278951353943126373219441608993514454275760339345860237025979060968655755292179096578097317494547340812970923488168970016784094204727949017219883951937957367964161695617397889995372656545341824518417624539053321006884555682835374302657693657207897452552559795523282833178734968351842240483940889293793701413307507363118937304631823022471253243322633135810556343072913811767102037897750159583187502040852126075714255441495638506685148975220376395627955500164336032303422952943998646225036277269799521653552477142761406908517242902106920604024271924392343880241346619424853066105833562794207026249886675503941444291828843032133477866198322244986431676801297759246301835187321657799859640266436018647530934546946218288282505271419624458506976232658506426417325035428040488898483934440881184784623825321484648728119565809883194641501254906958654299773796816011551639000679091900950385258744024809864719315041393439112403510960853710918876160711549593860489768644271020262483759177210117528282442059890600853073162494894637301175330641784615360104474324051786533240963907968979588575030282885681608108217196369482932539535270180029881265450514582149405762089524998057253877940398258912232588300382068736705852863511899228092494565471881161541406453259247761320202246547611886015992464378397951908822525641222489331700199982036495954070597851705850867615874382618819300138252815456425902255030854229386644955520226132485569959010579178341205601186335463355914845828412877333801318795723158471624752442091207576533402397817246705595288948679127612793204195083394806724145244770293464148649851262342531144147375215008738548156804980800398670481306234436040395958037766875946706708375849374554815973099604470318325414669095532954132309385967330992024911182171773796712000003562179503289654324416727162161483090374556697795087844254076445830118447424520834208512981177630741797705073741422535338531159410524029691600818556864349168992664847587202976899635589840237780486085590892264464747640499895124120249241069571375597894175823767898015595231255591932670343699585265802744341732141968563756249569852348790783369850717710414610200666970915982202883281144401103952532245592306082093847471840218981722859670556347623627629661097360877630099700245790011104134483388885349648538593942515866584276616821327178258213648356702420728177174024881851934779763288069013574621392946177566006021240237435798527772005345833854341661845059746102905061177265783595626311911871698208953187145708342601153147633014255030386351635908320056274910081379272878705532061904899293991177313064495680690991837580906012601763131326553291229992671289475706468203843457994943222407311008002021300081336462736756594796481165567095702719005309186337600990154761129506180315063625091060763666318304841442252488364678016058097512850937627803985308589820406453468866907138701436495840859982562627708851417229649804811628654077496571993343415058651253317086086244647401446493398604744906937721065466549427522082801485303700533885413419517911296782746155842554634823695784143137443859652398869953315531064173935398143015299115230054845495902309119381821870881322946319559755218817349065330721211366383369153106629735962276039284604296572489994328843387732517913477109054371119026949727251760331869470074162522908473476819951587565834118637518782539150825618943990684267178492718039870813995532386804236898708168489982259430698284181751045361893347311903719113095872115664663407410750904033642607451597760858683221020837707195452774974413362437329964398478164227640114758345141747295090074862460447483011248897804880372106103071220378176377919057774436612851779416365551824219586803097304495415271960350330665707864212397061348208026860619809421258265960972888727237106545469774255835024869482223606525274493233667457840605590039020747308169113863151673564091490563265371535566166424891707762938429676284659597095878780923685808531427022153438207721688385927513316232960664648582860169034251823757202429207295421319921048767543093985317911364278187564295885861825670580947493626281537049707667523238412864701731544265267602294235143108348225240124864381274242908991284898501487097611919848916711620797533626028077779214087076831050355843371091070128170872014677095870811335576339738041518513728821368064895183285231360079044307585931229339815854167719354004261141885524156984356585014217050808889564605835660127005098289440305638702542847968794779626700926574035029922917939710533050845706098053813646335298104112831751109109917079567566052777338603527649611295855020405017169672252716114501330673240241717381261975576324894085276421166185870489337413607592277135588424935491446449078038763145691797483335782903826443301142923525354191662431845333754970771148178888563432148891198885681207985342953891709834577969921267155392639203321135786819008749849919498357720459617155222525163164089489527330982078393631565593598015141714500292018777318608100048800984093077237823629090406846011128465580771628288733008069954993161779558969399253984670925917139504855097340963475714903735062751953161954080434044655314103054793041762100096078169532675513430203606094696349628400719867599862127457996171842092444686144804511440612280847971867745105355801598022379562254049875740194867867384220967037459449682692460817299227469651608103659056594102761058273228376736512841673273538431308237648019001027096130068228062551957693635110795454008078836561797878780443467785027622252685736723144541286017396479585000261011114699272170238217250012358403055851292424744100918416041853177771605603579381142995101103120505599203491390979572447910141551928452140979116608868380002360696472141994647564230570123773720012429381109246551789785029148775986480779212049859139128494343595856547005073680959402052502372776000187439519757324913925938508604986572461728435184270197115933682048235584154584254176246130829757432758187519542789804008022751854026689873892637037485930520291733910420185226916013293615511353289563990620316140940440316683959449930464972634692576887589466772547396051237182927519059958159242521909911058088378456060041946762408399610361628923307197238055738136056162131041609129070342118130963541873622306613120594842203213879453471453503872378884941230459428138476314965563481079135083772612635248716963724723820854011383501914490810789344898220426296511691591775684126404669724643672858749464685843446364156623544469278389502119361477953407925448292956433393527694743477749065104460380446576700870467994985875574410438629971382846213018211901367673693147848060621665466881010962681133794034569540941826863008366781809520089668129839453715888350007473220277301089199904268795912071721331929425920853590802434283818407137760379948654627116624090932128349553643805723157136321471281284360028993086278965591266391162221035048938802775558837540549263649788708426213612574148334980939551046574034919930949886815568447252637163169663844540504436249491273122574845059286486270875694681896413248244576792986909439490377720618081591778339563010976949597736716667664884598118347898050773761299908422979709180028214428706672263925305217697800082761859190356929890716763929714726470659190111823933301908581965463416201981566077645579010241145097633487524821673991265051185219746848549807388902838785817014691517177112624961957534590440326913571463075554183183633027108929091922703064452982971858799664214654741300481748002108375711369823231102206080411179872489066951825875214195479956632269066531730215839901530147636990967514925651142268678219732040396292406260011662393096142832816405827644448219348564853899106011364643483338883724105385947938245049224813794139064904626709395911304222090729072724498098632830156697998099457152935754333360057379280472358470793856218081621199759549450062168084853485415335014907919018024896349272507840485355103184129320590027215958017609536788416379745292188189319382813943834912903553533663255000726276317805718507726509364513136794999133871251593560769192338150139434782803956694419183658782957272396572529788255260571330284414052266884011320111680473347542488330050836547164746434610835699351457188768117134592391181930198516120428506568997699031139336715453620559076382309909339026651104758752881368318950572122282121063337668816210082551704400235679484077028980302613221573957116676386450831849282568816597759713377695382971900139217460290840467536469566677656674676468318720621509357853957700877006227357885114880068115690518090505467329213934898914950025290857905420214944521137164699408182135676929596871048687168396526513388537821875846399400769740719808888623114449228038898104352773943875896847071065675507333989412180973824808182653881007513061230547058077064176994783388564737868108057004702978091187682686587451201023829314242306042531093190678046965958445302261051987686748864398563894635900303870297876997841895089310661467150311027000655070129742568866321024468305599989099824527782141793405858410160975771325409265391505325627804188888155671613854704198792661856093046744322532753117698193497298484688024594291798319699855438609473766185073413032605730070257014416289180732779407722192968645079269477190121021530026101204830418442482985197643824975716441487396898755557676351259349142581184266703708032290227438595712483813528370684282900458226400856217627459221934770153175575865619735623723429140140700254633275018840292722527931475436146844814121576487685553037481245567106272711410296157387482689413091783070351842831829583555415899497327330483464379007871204714397536846721736675379652575100719127165666743876520716669541666609896038189410999512725267305693111950199881685969931706821533433763823739663042960274293940431915522353198135175597661758073748752329550094814138677970608415100932635419048187470195741277353518491893828818730143257246309265980399280994674357209419682512217372195845254545579870169726172799651343123486889556050381266925538214095979801281484621201401814567181527502627628859398369227480459931306378425013557999277700812574737983053573381143003213230441917933311707532551071914510604592064958352842494033048127712446211671051815420969964685569860795140432324630943603102614949499422432053758001662800442184020547778664015526481799271710238471705142269315559710550894556577439371917555678592773910718536241427962914715104200609107789947751695803593958076795523931231851087159543837860256895205621677167013888236476365395490984779780637168507180152401364661859765643355669435892133074658210301967054544298356803360996964929922806547605860074596811506606150381292426897334655754282038508565837708884610232834540314700003729581165375752180658649026451346814290314524848258244078264980472655474249577710762976868614070932462823819642904129071533964103868283917283602000948418059417047958922400777583165847821277046991336001810094741145381026210862044731690513911415043481515927773914112811335782250753620386355828049419872449467445168334680812974743543453345605251360242659729395394560881853408065492655701323789031504743180051877244773031137815396281090985213934236197549592597088703412762107891893759816161587383070731306446822575965401392792213153810104580525672118137573528312060837783180319661804170045254334508504302196029776528357126891057772770813384136963607580237227033069710353953681068137382591744170960554590220050292426017196369520153525197908861094606433103197308221373434087191621509268880898875251576648329474870882393917878487788267750169327915823871531164961958906633224736842379665593192973468240716802421995274439326852941250107226330324483104308268447911555547998071009502971959578271815157784001557765387557972497776655887257047077952184988487224917926385926274207452835404152360260050559459277312429262925949517256369931322497627681275708426046781451290059645381822364554965523463332470362284008680532048199088078146967944923543107221197887224613464281667708000488353060157927504188098590129300409000464503040784912034173174646845352111188836311012951402569375605100004218559624457900674059793194955579818610824672050741430463690411762193625302983399887318757434143570206183127178476141672271051577207535843815850084883165523676465488830098678520883008962451690528149980638982248489795876704189843959561807068957104423382283050089027309676120335549932173476471285857944343390524139218091120683747045292278591841710400901268791881731594163289885856662772079253713407937426209355682929094950791066070617838564529703398038934857095283809030762587153298068407360612869413615009244662566430786496545452646063095246618737919226416807859086805180001302469835599803124373453984088326417516617800066378472363383964947634678367721850009719036980020917454238188556433598853376876428119575231487423417998197950729450075700648967671962245586829727810189368047936105610079799749823901385631913454231932047674843604321071460457569528645964785341547199727374122718531228584446992545299770907884197534358889840663027359540381986438274254163984346434177457210202947550771156016243659584657259701841699124034034635965098668693832432658017743859002603301268933771660580413299824339686697590989626194807897728612921564075088521025457884226272543874352568349243657415447618550050820338380757156556398553318416688036961968082288086250446357218158792140138053825808062613546719708957306752104614102346182521128446799399066273070784215269057697720837242030716325538152638961560816282599388308780306979287449439550100009287505651172990302146320786355209265592422481550474447651134686559187649076305677076859821335239397992045861086064673963979124352094110997642757287057428512589499415796810885264243626753326309944257790319871229944206504256155586053359620656881566979889736927014088571527132646902264339734884067041233099634323305248644327411547405025414098242344341231686797203426391138055667346333026439593546635742048797334440036608284907883245697144276501868863883001155439291640736403717392406825486074714779198996058410072130601894431204374015063700319098597665072642933437645029285546169336399869250591230664110142218185026442281160715867967655001224932905141599072941371222352272536218964176431442290414027865010688065272156195683057576410668827352411603411861069346635753973109227283207570104143832356869714814289567030872957729244026202936286460977812887000728931422393325394071468257505281069997602611887763094246336013381442271122857035747601853023841365747826637466366116922177446872241703871910359228391859226368273044415705331094422440266497993684967979893718452953625731439583867502520488677684897206186397457491126466817553586059910074524897020840313668637375182881821261026360991050115544295060874956985540518926957776529131294830075158878427862588351083455026429924151534755522022257349810093756875404313776681114910970025536257263624790698262105482608203469447780572163846297615837864457964440732478835254922319671068023906859219786432723350214064009514711700222984255378871655576884289285872579293088878188511524351054548682774943189944671106936942707723078945900240257708455646002233532671256635762150586937286449122173955127604168360866650173178799135146274661198216906497540767820581426802430909654541990277741308995413061315595948058556831060287549991077695883247796970294979763302637144931582415289874331075184724303725339035100769318693488520284747708309335183433162504905059882729622394939296600528803754082991253426485343701575645321520749469235790125707513616376948123376969810721029273294905080878920430954413279146123428150293331663330019737140583033576434770069638874767429957057849498709713537945571821545274021166522485134487568109520368298706950103904283535849498933285743698116674962945737266041592799393852645784567658566634706357901694171333920550337040251867080464543736939793927887677606683636396646961274720779720910989933225828623882910931857200375398405922205739171658834503281189708224978262244758143961895712735353695566487891652378568315289419416224068038839486167283036800380628796795660332374745044376022909840605205920093834465703978511443173762415713052686100598515099937389259384009311383523022899840244694647139329820994370743217545552044673334521671593191021380502620888480127749525469179295776203713624478729504846521900818061747094805188630616842994845294926838587072949302604435645639326970196633052884743504916079553875090798564765078559149670594614674457864734456713407094410426275931733739800985274296113939068609040846427322895428159851522081685363834677275192246759254780060318702805926450307522366429851809547664353745950701275608257005800225058664949366462938694983854346634684627881920484258690941075854527312066064734546823703020470731286751826265199781632483222543761138708773801503829033083340972286630462657265685006565481293045175520972656783692497704195806512753925017404116497532873440335708726690793645721409794382934207174845836821350264495754747196207176534968370190609987051195895227259144347601142019805180166013563538963626084291517365917803749764476817551953061096709181352273816963453162762307812051424841817862278994352179259925860645688270956936865905454073060030726053364209415424144222055267797829942419436665434889635009440253728015652537990003492317216684416382269513699332121901535510541246812381322185259809159851010785500184097150090230352560425615258865242461538831836095826310089568922309140187600558199902562955506439143161374659152639024247905774083457303375097844754423616056255936748871014558762338453488526925622527677541855354426579932087935049014774830136804814100192231203613998894396289593967903127404731083790262325671967745493250271408380593035434998337553580735512188427232578749655588304034917680194634414083368349182114901060757167766040328303918145053502916055538327173879081593855438281275345330110305635099118551061199495059486326625302594527125008100130879011828742064447116786137351111351120064082589523914825489493547526940495130876709817002685692142158784513438185699354399216004332001757566679772196030638355023921578730444680467980053155216723984577051715500969521983675131278916506635991691110634824423990492214676154792398415988983089087679682750433893844411749215391393275512441171717842063567019695103018794725769869546689444016151038231661423867324426064952471534917254694730688358744951640708602008832019603879381796305486939890610804231823040336475554788796340951617425706789657444615335502281275325840546048488280172336971843112537924383619180351833077085842246673996522125814016240017738146558462575691994491944254309422302093734251774097491827755747049337536418231649691785046693498705394355630156865834471680135982832053021528662358465472086772250950835091647226696103755666260224969406748912466212308594788758354266887425784981980198153538124042433390193528632214714227022049994986733094312225132219905030310779875985365128976242660800995864090266082489325957008446078648471360276423486620930286588692321310435128388658608757976303530342917020074044650596096151530981314070248715981377318178334063054356976815569866911355455008158974708644939177354765366809306481671591573158494349254231287196162814248811829009801694800862180371368314964937065921675058789097165478828921544091965125492013033227072251118329933124688406518819692385200165105336491184188428039105762962249656474903910794069668965980650911138870671727168963273245775649827879780662760026634814438663311713213307329448563277858382168866481796258037123713929019397336556029966110262773974785828564770540167445986710577391486961575807571751601808455269185733369488733051788471591430088459313543891943242222478606989275827271401544109865673083029715600829128609407193975269030705708616425904580217348519423739412631082046935536497577576937519861203591027973775718058730570263381400359936780469270957375001461191150527078434336583200219542110569563658930328483908816293142932435668865968204455756746828012512181516730309684026093488997951471308962665733410442322977396847337148961598820402085331340030674881888658408401185042294323701383276668314017827349569508829415544680617840738968145366244837644609199833041955909847595811333480911089208428473385579566238173696926432303064740427013899474586019701591456591913112500229483192811953291177241963364029919720491977226137925439602260375524588963766172693466998137276538106196584666664907575329379532459238422638949517888368296736833257448085388130280331088953309379697269142295599082255393538374462904098590142303406006920735763720492720409493947745310995574897696323739282014227814191618748727864945097204598987342625230230564355403583968144940316084796940186806999926543685738231814260510949376459929829571547233163746423737096770817350137718521080967892589828342024954425564256393204297131461224190317343062632830909338003835591241420371353380995435469783493243579695141594618444135011303727073806184791635572776033258235823152285534335675866737103140817099005984541210681810586259250927443618278728593233809084576075943313982777998323792803326535511939408344133618526276762185362189897825811314399751916806376793925943011407240450593937084179969332258187224045066298867581784922138012910369901206567721697508056123229842315729314040875011597442073632801282015847129138417407528074025022542692230935483001928087872247998301044936677393036276806398594995255146957873142764020334502984216272752123916215824937987230628194492242512554904698723843150508276667170950143363914808640995049360496801903512911461458651634651382037348834531227090109189944330423307923888690012224729828449687909973873400930842458026150257391520590873892043556192085615515101664300400510254652304503934496587926513255623283157104575044324373950209085489029196978594935513190510060684980793985736318548649246595737747981352340785485894642725082693548371073817601136749500552477011255673206359957962237588859804332017440912824295134354736337144037735188992892061749399217775420513600978986216170815125101940167837114360834527527354932087201291514539074252403842350112937508783510859358805803697611892288223900436606734608917806121133355881886609363727999991249524759185444200935338297915080480586205193721883345846545624964178187423884464135387044368349757316389779153192357958266686579399642241989461007464163089368956292071963814228478377372992715296836749389928830096422169846416117445390982786688571880077374670993243006116008192241942150286926714552604008730605882753907492455659533321532907825219479463447693996652326319744379867860944987434298883797878443888293829800330035229360703513896934825082733258807302816617826863261019514645149354620936766570734045822664232751231231396943310808455546645049956333698672777257531672433344047784939586158490253430402581367024973272657104777782165208197603805511246738044029193082329008150651224609306955697254802322072993663679099578479354671073210831806694375651816314276889928247936165067671361086303364199944729345394352868004918306397216514474619875454579804900288840460260740680396443057136064612035674168141921683468034929397741303447866813121664167832191192556036537347627498403213209395558706609715857150594551553838863134051795294918324840535346700308726182323436945094545763290892939598357659468023643596140332863072692542194080729737914747757322078876064363596822026630759089154813323448868904030523832870260732772727796990383362645642614172549761812861771498574879978129978591604339926507454872964337362876968010081180990051091766700733143568636857383418983505318208390747452824011243779309497977616482255678150818620853823892124778378386463259649774115992383480335052980727131341026575536545217565517323647417945248978036870962331434854323856914123308295013643863590445102994178831545893848064636933712459522063896668484784230729710999955225927656328052824880522142461719921986244512938424899104942699674698215784149597739384759397223839440995076330389264980775917067583075798836123030759617820457929920018922425488656095972824410411070498474374318539413796705759755522253489716294971053563342307201985654742772631720725186972393185364472148592799716554035710747470299289109349027743054173189235759108128973307919603487848684020268272115741830447235056163074177175474156662885696372351405026592640860062139269935153135807936661912504052189342769357166618151703291578069595932953237502086051818087905978579254041647270737062794232120044489651959509489412395430837133823000330545958446835731750019060515274318218369555082538473164738307270321469136674134124590600013502981097889931364779769637452842504959947344119173879664986718563199866586767889251127934307441852477169471835318088819654814650328729296703220876996002567735328470430941314419608797590013874856350341264122683270188387784430270346685181457850906254209922473939851231043723787471139984306899048949824181237226377220128786346849368448673458706823427151471072336537014513465648853717606674777842638846956857255921877694070070094029234195489263557569687941709302251496028606862369644991719639075676992262713114746935456539021675029666421112514344688213348523808310495899681723963762308736464736243234932649027717462571621811904588875225561256067559846599963685874773286395652766408415104965011204149340438618734081467516624062344851489650631992944840168902697163348661978672844275146648038629857555923253932548216546144391223631173443500915270191658044450810468769871393371223455065560586991140128124432339208811835705251925349908405062114616532541339907752267677015528607396476138282360485011237222927637550569029426873337551064631819769582975459000837825470750884031667276131848207929990174577347874339791906567491082283746558962526804300231806234360643305424234759578884427033494619663685403878552729195480768367967722888334393085856338166231554507367122077468526383237898344330644616650106026553899772832772923944188478732762792759360056036930289210487737276506162015716169557806257835665035455077077622650092218381857102459393645484868188731145546557804072420662653994324571577855605152942928816728700598461453763598313128408924751768388808931930866004869139689971888169403103163513087462477311132201418924044787847645583357368058025108710101149385052700058173229201081324321509844811895134071040114005101787668905495411731114100453845543516193446214319871070692628320622900473719160563239083514239996085825161809382937710113793864848958279340112933032477074957629650945464459340566920819733731632073718938759018343530690229033349998607924458846369381146781371521476748797137453406955076612990901249415010179813056398966831956450403153245844814759305813029634232053870396795307706231208537392301486274704899298881066487776881267050582772377912616254420432425657648327829924205560572317587686902634720803684578219163436213501145191124263782189772491481662093855011797894566383739839816806426393524805012743421514677545481483671883219349118641856766866052740200007479439953374675713861131151323237698612852065549907884795595312620103846299161929300270037183983015465191625715878110375535843075568990557658616270356287696094241275638882203947689353259545927296862341461964082647020677733502694762156792865629781577900459761020010961790385121440701899825288749656041395096089218919212732597763154895957081012256478141140634190601072505607878621638604565587170571765350830452346261404214587903442652062274188926134173779364211793720657890853783528654513958225511036474612049605994949790691894682075332097246669268067937486746065776295043844162911137011384729791259600261975514900468854916272958463545549717709148023598024301911325210919276416233792629146823266637538981272254043595464315177438658870882196484204182629815170710109083715170498056910469086298019547051859893893192838412059090497496208254690053349225672942673829982230914121701655977574352831914883350177079798582801921647009515509658482155242950526585391558811224214975274497104990044229600504962356833677058738467189568929645471753425416601046131092986836575581056301189733565603410380381241347904085931644848923490844848427203899502581966447768757806307310983454411769197615204020833121395728818218312946977447624618501714616841567202786434967940395664064317368828806163843612753687226556721182867113935423472283902767343010089301324829724214063462507203340776753234687136632392971767266705810035590800359323850566120220487067808354366583165868982821290457284667723643039157792864074672974949806660014428986753183778474555107543977239900270480663217976017789460695851468972666636017323206649753125025315530826482544650255914288536604640773477381632859735886349585140111906063612429779792756290864377053100923640631788947711921293336176631606366992698777713192536101092723311169611512946444872318246227225834444480032951917629179980907480095414580202614650707637915915570093029412532723389693088007336061808074418657172561354721142462987828276271972122230115882169467279387935955906844132927864958830201125676277538315037207497008739902151187456481289969953135845217107905114180529198480896139496825473836968778569342510002980077791980066793967307074583020010092660705392047684668182409960908442542693041630361192922913313883878102213748114296825998297187090278339837422029197840872663809258989427756216887434290883727016420199513494798927599361513831515124323231632354053336180800906532176237352986768251464588101665804570567483929929601957231264673725972569130271838608915654846839809405955504520155682883218797139682605400055583912584359223246368418748967140380705937256637524468869827665761183629721065598446502012417255050260615084867959083442186685828098772446181286535636280234642233259141183295645740926300232226889099106880631162513581395703970666605295800528756360431857360985556971748879379366568939366586989361051890377403780309833889532963711112730412929493034086332138810353883147776127740013068621355354580595027302722475649207034560860759416696925216750315577441321334896343314182474292992855998849876236899688470003316675295491778150551648720619997977744456099815716952067876040008023014739050779952307627388465889158802932272947765965822097265057912993335896852546749696547876125770837906569494793558069007117237047164394134756971258355905186876887240326221841500730393218642070520864859481547246817726783766363762296242982551082560749303430892213403929631695386703798082503238832495222488321709923426435951894664103119419429001823394088842611797191498167157307932377007381989878447328280425131569979089918142853427146395447240128876460773512483098941393429770389071493419718066286710593421966350682114827817627774469391340686806089271758112034861732885849393503353873000329945697358811754245021126932924861304268764981982740685965642977369345527926774469068470406840274102416115957274132514860826485461716143035699939857325888804152628820942285015675964242180391477895141197218084518532375866957998558183288187320747735203413423665991034677316920250263531996415255643094499464166840918659266468543321042780269782315788607866618442279283122648764521194611723509533439406507441806341911449406508667294412566350704943500231264176783599512808353305659387819398378182828765740859483881100091573863285753127260222371665206935092576927335648329012314127030148630456560274844567129932771901250102353624028453080460453806757746583045205228519310184490998897321583720499432273344457279750392212498021678067903333132023548774710606303706125116425964366808981194063039288655171476431219233479178748763453264252321425074080880462412250423155427617068264513289864532072062631282865243964452631342252051927163565845137559228848978553130506210264247104488507428735018491628814979313548632859448042523843420482410733370915182994945001512831069470845291448297728310446095263383579937492629729627347162002357183981171877110112064551403012661141580736854579804892112908877691286935220779382199836059551932977167364944426564278459348943215266478931949538536771091911485642529376735360103274055114913428029277743216661715183955999183397619182497931879818617633214768279505828565961722724657640715708534718644390370033423162310279472882318650688552072394001898792215990332148335960724485880798980393243273580409870849195993289946961222052239493360837894828141270110530121272109092014085156485918565726559118481205808864216511350716004937487640127748594216333993550205612356127953291714388093975061161345917633282002246644823417210215344563348499038442122734736131935315122222019262844233551038802458074362084934845794965407635242293921761367131753446855163956161091133379966688545883284918285055398824466831013969681294319335104292840168641311643479147528140899600701368971890875643738592179101340761982833258554590069366484552435665115592879928134569441867796388453599363319949927762725335808773213007299494953325142950891209285505188742805798537434111260291124637387738574659212221781294326691390138014494118034892006300031144880515573308405565028047958708371631711439606987907096212860058329842408550972836156639115683177546153674025405756553734127830442298174810464919822836674079702051269208266488481279208504286339595255123876155585094696828958343615469574923671264242663171406876113396250229021025079890748782007521878113710870016605916218175661202055893285729771165911483587082026207342575830212343906477101553483813480595094114555500870924701659899938920006609815364160964349655575982183057303403547244104827063744502521581761223854828597683107940947274634002488600602777213358276370455099092357535030075687883187605970335012375957261037385750153024663661785644495767316961142276381570700147401641000326758433626646255448755387400233188862688036685382919546684618732469003442170564357791166848143851564992368007641310166501223094471673523602068398205083307256296627076606963254897294308535144120087453138070744713559776001656790080009955208756450032752580582199299905260007000636605672689430643019272923999429230429092533018985222472666956844802640394795998621666902213870047876200193409667597873530642943205531543944710711340343319947883212921483723850638052290212443466562615709683865608296659462407876916390302832865115761480259159565423155795267893674030262156569720103776723639764450082206799539079949752960342101921270805196428166263915298692139301226664784107980536772276747995645537974058983000482305101206976032718970103321929202594027796164830583292366032804585166083844624495164409521170889406662714924586290717743458889545505283309870291936537164650086657448615920133286391375875828757268087991182947687729908603792819620986992533625596455983177080015890851520122228271953169579203634852578096158501436686337807988133690405386657550162541125538569561794979990281557676362374972282081212555008792807447139211034009854028447860180299383578143178722360978518894693975647073521176252196285389608924068771449138910296223703844929688133858326214177279305689030591139378681430420622404940263984243132270991840084995360080492266030721248094051118075539472139716886993619722188314164561310346056168980175670267506741649502396208503783868128433001908136765599431237685780385965230379645904158814793598585034793428893758223552049755700166870130462519121435157176196243093255597574572525905345512555005970161672673521556034296075083920943960555463122590452062233907159349907432770672744396896512487906444613690918612007090081003235705911942819844260867809549029529187529022113405005303020114649883107288840249010512763718385197507217963365185074352661476736202707416024625312850538511389903145321635191500545471201649521282842535827416169630294427911743349033866089047787156424072112937232831072913182162820845797856445187027414456118738070275732427490282860517275502710638757922958213155431266045869025518247120452093475235453061994364894532111859348821968080047926612114148094347824119877447348571077953505941199942453771804969471189256656815806430931276793280868439219775905479790085827196895024592105613808242388931411108093942891443053450525735710977410469025140560776217703226243050794632746227948706231786796653744878572140445363115182238851169486191228597999769693997039373347912428616958018887312687293233837020220698431714681247246245951263932459228647638769083562525925644634145421465486179986103696775210922794613928832054720770665828605357955872502789244057140071530379440251986056423832772094301177176409408271788172274697887082309359673448487922480005823446030057716859707702488705208940974648425424841187063021243513137675303003254291368818163977185907581272869529518249111266546432692374558324872949563153472192129572597279583796617156253761939309111069374052035853133590131464808501609519453325092859641368951885486856952545865103935451501033926851969476616608153457070268034998193275821014020846607135902070168142359818631077369301085896642786162530591722818339863621787231234588284434242804399183965408911838252633892425714361591395809287306668232988292990933927653440218885541468990766704321937743467013172498348149344221493350489623926443573901357747699582870296509714066574662724989082270141666326368907844802712279880166517659152787100432071299903262089335448398680147175231032686962076713240420471368465376199977841318437916103484084048476801790907490416863726474546309406445260735700615084987150355942582366934490110662709936174547266403135566256643417984127266373712369740867128350377243017175275232551616069912788856824520199784768533966113925311455301673814249359440421203974332620977817930617221602238899074922719421669372579264777700133258220690295922442941433499615554563979333340016571189910881762048283573539586174847829976801853634075022622226639791252077224380771702376996811080921283457929611182381546543991404562738523444645308921052251379058120374284299707427405797989171781578327037591340255839903625964547536811972991059460776773368039433976051955863884761454573134884975457237662535320112828018512019928043620761552343771690839041771504857982962561311026312921457478475744218984547164406707462837978477441814322272893743337319929919673611911338882328799865709910408062929396707240991759848536250276475082782559347307935485544012479686397563325048029540806018221783586371636149215396607198319049814526233569275861986257952390473963521986561768024621140529085135690890890666002744738559541540492293646536489630792849051939984841963050682048235588069114131641912592504526373900192334918037495132596556554910647537185885635154625147323904093596663568016650672542350040018896879863532697406305290168412104662254975613359829782187978044527720860021538263814857360434174536568006035214826401152086915634031275004424182354208377421792170981251238553714492610243844882025856522659500834737149293942289156129299752032559410108751365067596714127199716821232033175878540682622212558175329820656489145938589537666733039391889774866150122493077437221141272972805118743905334175371439583293108313837393434803685349417872904348839563986026165338543906214210827165161003602740330533465482601566493997964208850268913115761265485949204765700413971228877851419286368595481645617925050521498664070084716431282529910067805967923420585620028938126888579840498263752714618163428159361938807705889108735792197200134420701524232233504526990823797738104017239537621148140190668556968531955537219215056668365524387797996498710956688427938531365879906947812416520997064071014183457037294659909576177520672679508590125899579886864638278687295144262214334638830761487245893317598917835321511763136761075660270863361524964452007250251198917126454148017881889812244324336327289276771546221354649666847310057488969794555371396981497275727769586044764190547600060381286366350442933959970059795920390480514406418942831060686769455131960689338068659764988264339962589900289713873737916215873836219724478469107588578205396532877431142553646792004180087249872122587891534589827892581050975670544595312402925285754775637011688587026714728843433875196829261502639369353851903904300080645328954582963776433470339736169304220110434318086105570296502801202176034144162569442648167919519153933338269253952406646661953689685956192451866308594133335726368560794521340165490819895414911223962890851926941298490184921296897127820776035372334067542031230898181800244232792959064654632305829674083465022781471728119328705401666987265820995795064398314413970779525263691535581203291732304130168144905325457672899606609916469943278764924297972980791983804439459513732866616059673496414154624992318660811328860115180438408746823939229776684070283332700755787035953924690959984010025704904398878161523162466373071420221526611490083390997701036703765731003698403063580270981153330270442660412674023048534320803417957685487604458126630430362230545196061240306361104311480921512282892598674966630134888957983433670307674578917457214121094947008750691231171001308630683541684122800557929019362938166829580004776049036315098255617664689441437787030043006301009132527404306443877507353483774403445581993802732967620277725239254458408134474147214583303927404410367012926043060545917849025566971208638972401847326180687120132478307277797936133333226796958548500689286623178525056942761310840994504703100369972328367868347677031815703691775847006890950974117206226790067349745104413865117094432106401744880984046773774521804886615028169112738651479380127085533649636111167189445966601883415044174819149738666617971069004856471544815394005785991955374035160796646613859708886132588342677615319289303318088501106006346560025185740706720113673635686356678497092478187194675004677611751790451851278972463853242294152971808823867177871669882781824862460429410216324977596575156584957713433716575534174981618051119437524944182304235884209823825266241796639855217348603477956425006739857187739716778104812546468410971348695218477374312265123820257690053573218024701102144772254813327524624195385965839395053593401670271143025520967426810062064283949627152432722732684859240345812822455621123172318634059952011095709151487498198366108427130341978907400086656865324950885990937101729892025881130129454637230588617090009126515209407030388060605151158058464944102114384308583116966526053791297248362000789785411486656334896696885707850586534129188764363713399667852526822335268490035428728789773030730725369132311347052562679315770732554393599736869833724589837822519681626368598284467622201138216866912545148722060246519139486324676598619382939167722695965072460760460993640757108102943103709302214791320579538852002689374661790839997088759978751890520481578317029072425040540939673971881592932728298543412957072970244105541645753893042774411386642183054335957863789476236920916055775590587594424219447282563056006596763170494380822085210735802270104086372586319902436132887702666418422180277707751550410282178847195844680437441708027725847857324762261332425191838844805505286972067289943384868448926467545935463309083812599383465547287567383059641248461026912442275041854876433525178603517629225204179863159552495151451448401944903981612495965622885806578209735846378402301735254372253422838457680338270372871114411553445195531499730522990401104106051043459850874340538553282606455176284579748796742212103178345214706078615230843813270020950642247852105329396945852276560121899823842855924228596598497096947929168859642107553454656980123548991089233036589643408117491368162491371911293721395513090317077839598343785262878301751234418071558907054911934783182166506288181669762688067281636002460648852990966277081587378485882764575217997372344603689419492169458657721515470268082958284891413003420908602071209676685173163609062529200983572551095583804000427021107555560559131369074182822085452046145658782738227009350508833401300709857636670560765963586295467911844547713278345908824355992350579139389730812484630895096673257682621730005659113147959068963013059837151324482017660980900337634109817304940860388818826552671947396599758118474411311744394976385429860409173302579995223557092144077985817447054932038399058695740169414257624599413260201406000064884689554886640414521034651434797382322248883920274388147600123780811925650531137923066655963784531402292492164414293296734604800072979120315421182676375894546396749150380058298537521738490366611287103692064354073381531004062621865536811370599694571762205717307328879501102686707301096505028697795755649883129539245933365694646430585686007289805025893423924728748516730284339915473784453405991913017628956289920920375957482063592159214123584621259280020411752939871191683223091909453777504826919466349424556238117826628838043465750617799127659551086561484834882562862630449400723070543750471964465805265160705259849170342198210441393495432420578036419141336065334005432609722352036910379435949416911260418069909441602605396929083980664701567406328747396865353656531524764463801349083684655579396987976579811221927915047173809867472723934193020430161227403041817988916123025516961039618994430196375796812411630946458501918547812301346776876513212654891483793171687649170794861962023191467803192741820966238019318036191244182324848016948554435958390316992906072084971417660596449626176120622824742948118900548937490863787668781611307802854754884557805204500016585612350412896403127053775075014188686371367072393990354207642010677125987696862194535238622993454886708942214425281014628810971050540269001344756191018019394552991995827111318662382281823082385741295301934796835257938132796913399199183608541999774398059871794115891904987163940905234221185143458993896475961314769582527727427118410969361710827739351500946405014597863157002857193899336602077512871893727061394418585740868246983320868419468308233809221026592076855144683478316770746236206364117098327195300916987282708961170127081052987217061028469993397605467440474316465831489329909132726387591128151793999236900910078634268378343444999844893768225207688493903477753936048848311611288496654623818605320108667177959162674864787582240743672946093763416296007346349328436680569282698725090821043042071017057390250766055705730478674277667781386490220147978732835845882394595194762813157857456288489735961205946774606614553895564857597911663991172795969762504180144318536920327446065495030246410645672687871087116700757486315884537431037436065019249926207916396697682209226356174035680942220845802314054324783814901484646856715251214187449945156382137620278184944309969545007806114173379063980985678146173754200544936279445385950043442459310672078679470416248448288877481928803029262660017192782026712402383855485498942282848116665321703547903385255518965914889966454359807781612744586117673440546538331399049035777055996419343996679605973061179356764797988406736408914751260123046055390218017268815497210129327009480110132146013216851523209620937288737803879485141976560645989820753632359540893185778671174217241323889074990247160648522704946929109268522868517153778616841872344409735920770369063168272792326998608958081860148946429818426161158754289139956368734926588555353602311992722384163837199066659144617577916274217044923951484154135589174274577143614580963315059508847075769243958063282733216455004312913745725863348110760042602499541963013388495669714431539480687673627156263739951896886970897103781995591446737119331667725366346230297484323951851366855421169077270110228832015746189051475336123142603514433737456139736283208808725485218299369636496221349191603762990106919848623898412186779043605470097802172145361349281103792502344628038618924637187178347218306995615789693357760236129129128317146308152270547684900169598314609226696516114832588750641236686907891944488910014786093178287824146681651413617909770044713967005731448892592464619295805404669459010236289957940918159820440018973795348951521007665646371902806438807418571028863708833277948927198239619613438778270661678862591585407133289202132867981789560984132815814161700633283228937585024591921289520698006014822541434903386561788457631559711036710302709956388877654529101981906334859286445310491815691371244478008279159469020494177289844854570929828715312414648216924068141108184431742803357573803749882201497562989331563277722858306565770610521365482513557314843366052521378169069355170849542093021433342585704227901521063007474202792907987212806134719872141872790275465273986661038007104959608862281415695530696922320091980769075747640285543097879270850152118587751257509708389199645874579482172355411628763572955715196276580282899744110303877934944805829979576304392062140544827464463171726580027431566138974904954888847861742488811011994551540415095228837614715120860962425852507780537374776261992931427884782435439092758671616799874812962515230421108039621826617031219899431771504422250037961220540160960771334155761023144336532982660594521042959861055687701850235021420374643336118200226434951336702551263903447540529186270737024299160253639418816548434811550334877869005045705515753445810778009180151392393289052570405281363868612287911762626728332825578024589734256441806909642720159286420994835339800562305110101763469367301240258159004578774331325159565028198556918646393738756711971329547695425425862973631446189685659757920665104899142098497808233050193122549028136848888999643334805117468740530374737371744642334057924899315317158682392898317396491984140471251303445256391937924795447460223504392931029606737378770233200268826203117814548371667466059414483712411351649478877562551788463850809598649137926360170209597192791359894228300439875807541036828921657470779491259192915599978143283144776974377694396477032805211340843704578843012999254977559471707234544864564441868538501272682610718088968152032994594163488084318298027426749185988764231077676630146607494437884856090146279828747825802197676915552941138487329238695662818755175078104753396813531556721086717863668025486346104957813255163329197108787578801721131832572329806319251807886225539334417911930508387377961301726356167900019721969785499422873671156771368384218647633221956011332044871979259415373799347030281045641172729494619426110796944475339964963927915134795721758293906531324566939497599513325745491234324084199801669222523891782553888383131196519624216650406802052717193447708447648541504090758297650953684631676691029867803910311693940717601635127697081896742139842867832019690032958617209450708491281032992090686335282618155291072698502711249247942945050934312404943243385821313643677784262898868988066476677956870918391021794177031981843438703892027267144674163727363342442439748907790659112206284129880569730541749648420580515241728315730391482704409878825316590833046427964928795289474723388893724750113940561402363492191940801223309158410189708364256733115911089185733792089542811396802083757628891719692153193925775632386301294628131384957801929137958694096377224587230191869003235636008185042853625232265523318360100317184480176908773113349245163142170323673291025721461130245815654996750204612211911725468039144607039622785012253179446863945265132332962423243402759701115474247651824937708735307024879520193634063880047871320026031498558846100783593280613715087525290929449291137268760929697851799031369865630027423895136524429125879802569409189380771993712763893736598370234355691735038496032303595223080548521892576232423513972870966372968739459061581846556859578933303251591764787911130488986616022385070831420437410908833552702983567784593913057901875685675510123879435821226188102269231975200915913417785472369171926958224020239069993551142620833124415752653908330828273706869955304399754660710075402188143187785633203774935638050397053563735798734980659024189885935120259033233037760400528837531152747307749979232988523109490256243290382202301502385901496730570381368205556838769479769297930506448798785700843787631907767785074482166055058635248622190247221354736088666179625714665596645666384819270433134262369720759245619379096647852204255856953915014912017634623025692617819661328741693181810763659900223422896901454116414890813716554374722214268360103949509715877447468955370450479906557890592704266447229544767083137402390581485773745803428248646731788230730047477576884035456488740135931617719080471281591689610660295541246938996686895948015211571803488553408529125883614117369092061744195309879830459750115313636276687079191569216878295245167582799719554385037703732688295690607420119519535983569104508300529049978576174052627739877551268600082081652948363124990107404583395447426028361266092447810023816057519979762884862667318378756649160113877234542722218060493429415243757513473211555650882389148243337733854242588066843613131730560060134976432036005320491615369728833018576474458491052633868482506923094658775551147643663513849056451058628218006625909672404180984410111789698213126542999540562410770275066371691572146161422875491287012329990809790505371842534514175166864267381674222359840905130313550505117660640369459068854910983896042933967480023320506623297355340877661772418575528822903126831537270226634108624035817406947449719881890425145491643789992098920986702406496511202311370483847957737649910572498014775791436345240275143950421921641852239633945414493826838467031900160625706659893370927984960208183642132956184757349837758619919411887153817964173130167828276773452960406969806525833582852795538614795424179786951685922654086247059143676681977510270861466544337900541297145863954255642058231542953599542288289179531441327699113826013383333298146445952360265337262077116014331433843070111044823285157696869953574152677038783417979467827393741793032653051752475222946212788874297010109404821451215704872820942466060271411137905161204870745033468901678160710139253793823832533930887869780919195820890526790940657697818146483064681776718249023092551485139234283145730090682071238796034049636760736825589365936358819864164608319396680331791959189541158292302247853260112092131113678267518547790871573964504496917236236398805388743643582630139052180344354266880650224088280629967380657009565542908097684328587033058182205146900435728803776236106310251403982940749525396585843891853440782726118271695990989834758591409817963385484641654710088041397589021321957510210394160880977354718984895508091687038029578106953381117958967636739661706987157276939340412847168236341694839051999651193114526454629776237008132362509703067998630780193098204729032660099097101052996712056747626162594296326896464024537872986121961011222909114005270242944237130342198880737566576879341342204113720991941889111346080550089343520273191765608160509381158159557272129882437649283579003099313251103381323270854646819845107843346178116674940490727982219599327997248610886332039205204544358669651420960139236727859533408977179606368605182013200575070497139420539140692832541454534338214892352447659564323590768336585626450935193945578955707805666527397818498341324740546085401414838508625188194860645541765606794146264071404683258408332164573634930191305388573007764112828708454645852759887309442773802036456464029046503606188115648323462878678307795883430266628393618243207920158950770475692641345740966055947351563219055024190117247598232263861104367431374421472763964249464719401824435676015434915198257912280412013456145486658048875868393174505248656827663440149654384582282274911301261611158873610543945114121691080413883322545039347570250129434392969760128994879276191081648481427865236030585582860217760791960606077123799242216548642666408964266043090283357177538859324826732250396277044077820009680930104851783666936777386129706715628536207057891642314346440391922077093006357621350207418619074805381498925561176520025917644921402484004584493994436481898484849790256642568044117191922298420087356174451041336496839165709304555937547669741476421126338093100139873403303307535380953440622023847651127262097018783139837375406045547824346248235531299474788328923865454268372479568412064837481375147055388183376023579341839243004801653505612866841598314604912773838307871411472516254190483543492591872123585720012955662088300104725459202869491694525680298607468914683004570499662641086679779668691755263084118129947343608261957542179279003199723760963347931172869283589980683259810836090083588007475217247858949354048148968076124870566744360199894410538110866318401918046791566261480576984181051974499165853241625872103986363237391936594703263221182221061365450623463030410592795640765065924714232802179140932896211919038126681328940806829285705811617162208040245580620867188345411803969719426918498449646297353765221229986718249784819105915545790631633673062344546115202943626675326975743064351570268848886150665398339250189841147099178133595241435011526424746558839942863766168758428533957306686812431140446525963963362905886851301424021406607321515109743478435417704518137721963436487786078466795418226566158620552621640024246055242407847498319697575018727012464313994063541113934234639603842559102972852831286799296943632282334410376632130072427141488232439531107316610161690585547521692645966516165665808532391750412698492731558996647793689865354184821597109387991424033122499270332064389678378392779149004848721355657448605836923350428364412887897837305077943810192884444058501996966058256040767322885284631251163116834379363451304014210617669698890260793525740664242914370520961516254428320313157595734122306594311049210098909585893233856184086262914630495308616927860880523120531455426114948362362291409374119705204166062639084860819864959857213702537002735762885836136190174161030493150153043510340023892971288876521722683814959646002335624835003194379077773518844881329295670872978322437802486876939806912947090319996866208955673780619558369862461752433931819970599665016154191339086196288951512926362169398172472171011228050484620584530196017141878090889045401331374684946904115208285359916364228926214896190560433099925052340742631425959737489721240209379528976912750369015000914797215537441147013360068522795548233596443296491432436803792279196200056574517056726563981646410117074330331228497459690622525004089995399726203210807324536533747524981599666885511019152599232520619534895515544823495284687074339129698882557475542622214186851722640971407491506633465595919911827054293937482974120242038005679659375751758602147032948649940270917423986283482125971761715309096695362053272929453097540362359832445666368774003703580863243985218303926820525440469954779619653200216807991680790974230252837873942851832447944377749701552607745147634431988554403988330277194692648862042513804738022744099415441965549682084810396912776784073445824892049119784604936752468979957741974475515820468636057789570468081560496312730579440997259610267566257487438205797683103266605633195093833630572073686201627751435299233479893011094789924162217249108801160207596768166369050211366184150047132487765733205546460030061173033620191928020549172402393350886905695241211997164570425236553515263136881452493749837609386036372012495355042203065630824306279060549716249937025820952066025246917804572843033561954044873890494666681425935293028536743237160514535760308759728582594669847051438537911963505133214953514963691781791849796440767075316899832629781534141140976473764250946949867940462112622667080361716616030843007329567525277445078461014316267941653636412807659415662304116665856063209487053138665004100604730683395869242978545293446681322061578730856734269945625351899188171289811712050196603555494925121666002227826686100447214744052191909682658274656775625581255705096515925404938493895746194763365722307783872431893520085686190948285173092988274736156806771845508856445279658835302923721582969604498069728613028365293446221740828744986107084435422908099629357919848792813543685112637060490143610634705852487694773575544939163435872090985883165691538018866383760656767423288453676099251227431217494083975290094053840475080376254785981746275228580248634635149907279255005040104646694034475417120219578245528098485846242157022751892840871214207578066576581890677187067700700027999267138102856071991764038794539830013003667040034720813368782891506031885697112519691746170796314760793188757523041709176886397936258831525492306671890156126658088379472892398028529381681001605676241678875938400670585729188916432127807936803456518565592664370500511213819078423721482138476256649728068285021274682411848823338046030026282665135326738581868442065959037470304822764459064383688880983902631543212908255353755124282178722503327733362308831533773035421339523724547371291532656976554972689318979050514735647150372594981444641428658728921933592675667261037161360801152277241831113321406735360098904547498602769540462868414746993391567607705882594392507704895403738466697222161364425210512121798609902524260019588158737572874604192395360608293453039568644514573394962090790099429190782283838800881043227371250184110670395659754084642119400194557720310228873983808111686466171855079845497969031224245514864329483307504790852133084612655650283428768979215599509746820126570462566778978073199642995299979084668386905949261003978252107410857326489288956013459283348365419952686703489659974377106375968543839384418901245028155928944553001727377092589274883522077723144291278633938031245918819270515116299680592535776511976938249951787125215901218812157794689585783878307497559495055344381669073925795448364557357670860347304984713053965751444158431505543277648629617397429733863293748851865486487914313351007379681398095559286487724512608206840259995099059694074814404769999019328156576110625952907860940895738480530366790495837855650601500461493611445639538129547013407042982496642369319446359136959737356979606374673530208080922191338506054999186083418803465029009545279962110085057462182834855326937732261014113892246834227667073454520296479424008474368280617639517942366880579305851619842302359318740121197889315171479981234571100226534706896671641585129284269294473276784952161309119146964581113161830065457404433014316530233017854689366480532403564080564343089081599549693639417150575179572509753024682094242961278023691916548004644448231713728814982276824744490212813314158477776920096442992711506826218495935419319110524838315197899495714272526283809536683948582258359808919584574835777539999334064197131797678337801427015631875233102741165969193060522882759181762884300857364300314521809212587890390963906188718925968402777856082646729367373476870142351791906724626453808256380255004390043437276872140713293013387074156736299730220921342831237049752111687563877689893448407771800064514107615500976353730679223110278216185265540081295801360935460912637093792885616871258845128433436039535753687513181712167318526007527006059819615611608120236147921054121943986229785851425383201774450710793014397401510614247856125204544221948996459607738503860014201620026361550061088699265237374683000627771041659430982884574672501189706533382981536908849883289792109740938734430346280777858436842007253342302617819583063442030878152805928410363884483335488890050394922181838917540790491028065432014412169881891868474237808273518700550045491025181667292012585522340987397606977671426213502038464040166039265742064571443177844110888422609918237391455496821163039108931934147686222807560300234689356019121084084760373525165508724362301895794140908011813018607553343973650498116902253823992784067676838256017225754770211823315721338186816692211157343914764846185124667409078631823375949669845467139594988095902735981440935918716851031520319004278192054046119066605312243537241786293807232445327128700621664305165559931106833652742184727077349582842326853982041757189091883708458420244053466709755802285141918593609993553174673080102304227678525216494100197853686797760412737722739344943144288198301296595371764168482253358169181572426339978267368225248431449018480587878060012471720694866225633115370375265467238429482807425575634548634115045999687459262164135404798012166718495250645726254064009640598867717664220800343219632387395315908110228020777134574293256220861314485603751039160741764852284336349973840729206659238862316155961990199698339556493187542842742722905875907571546059649799692006111334045482289898030782833105887090894967804117401159512908997861479097939450710028728978631412929817073390943406459369285947946525528991437883553671716889417580877656584302903083650039079577877466708788840346483936120477481094200013811095367978670318320192458847320110486337127099753961632512462822213449963599054587733136186994805454306822945454192911193269242052389432247822329945398999758989012728194102804385263781985773162173820009068609562170270728835981899448699540225533474531575154174961834412009213641541616377190802643251549830508309877033023939352462187923429512268731859923969858601584953928339552668543826275256672248342036631953827808886490521509883016363188054909556689171592988876655476264561101187079843600650301756273236525339236957708667170446191051505092537217182296763566116945811798313904917695955650911908379016503569241317979707676948707778521135887203332259918204587931618637805456060948331187479445627661446896314561588483944820914583520071828286929095590772417264993715445895567771028156456802712983755858067791272849357035145741726449754254766795819139273350011315106418821883791673736262984629117383868441683667830863633525281807776629297229240997690647595835861232183264392856251630396669565410319091744304753246667475729710643529193780333356349210313626693301365896112508265326866914773150204602936340292985552983921097212716652977481815190857207884449627453844269694893882828009189918065511030365858146596833053089688705181584471673275905472312092728101880813897117967202324040264726815579130411119532461985440135635215486382792524485729374699151685761016611390639877423829131875745956154535526100153016498212700509111758738457385097553058718360776729430588069520742511162921915157421378860283134794609576578945714996912293650636444756285807038703621172696251363969306068606433931343504715357041897324127903949071869697039774081641789711609832601343022322420621664999082646892977892580808027917609780493508999640449186607661420212911062089246752497423300236817430542755612869619259228120402478959968517599653314306299154736775967695729141801961568402835965541414310113876911715737281240177576300536973408444984106742203100472865936777948284555849315774771021190450637591055307893890875499738059446230675851684167408731305968078973706774053309066283185415950322784947865741206100571153216961348817749205179372870749790430998292263238343681012638088602352391406224192392071862288539590349434716837403264036937233662729556840942287897945186543009079217248858194959013904827727069015135530510365928262284312470966664797540689987600424781246511081160368362209816213196554410227543687708243443196128689631576390375916324669424665560636867417204331249213829961798966470404422166120607718545494240241255184529799939015492200271224894613051877246999143270381539803611796992163290284177039820934817968834821945468230012103616771404517113378821848413082025761781318685722217944696325747164920717718316419107120938164991725446442245453671559326275341676838939617879531544727748229862612500095990896150942175371089373713048159733482316977103007540839239477802895243413211713823206711800251419682387756499895746906148580234873396705935851194467870524431472881456239231717244936713792780244225218835596465602413975612323660201264686057305577807030518312899655210675839064544669004037113244208031503342448516304858494883876921987626264731955483547776094885074185585563781988671506454323601271389145887454023604826942886991798444523429743247781677735900245393365361886132898693197583682052070450547088767577145925345802517664841853914057301545954101192760705449167364622601394983125722360387739573247355213308937444939615938294571491420670024102620527128743215681881260387713920992194371396054489907794867812150085828641740734885285616718839300976360032700370540516081541921786773299610095479815538745565169213277529892870714520283503502786219067426628228668040071642167422753117263005007172474823686088545871158882681278582742282797340313731887175673478858486371251296637774338328931828618819135714704427328605220879823677607656602264993309111286077842362347740852422119026056603699797617254731563293672314747894320316866738083166876934147618434082259545577628196042763836523993067075965616419564401552854075463003141582630370839416449553045529156560832115089598296447384851551413888763621360132249678785564489590435869663983988227504701112407941511155353822905056446231137581747164973817583434583859126763213424362464423599250301702598104365356694619917682756989625543415309693526032721811178924374522726926865297513010119117739832586790402431625496519740440462205896525679617546839784629328333806009376641085371390894597557379114541058440843729998810923568576346613857165161865714621647550368560147485169516577779112000450941085332246937722873543508318993747379144462329532753610553604420713958538606550065510899372662959232424426856399288969129542900940647820851563303458797866130135179367870768546950401080752199722577641737325910083027545829082324240844378898255957448060707605116988797131128497464791399087357116918802186453101074099272374827695433915024991277924148600019937563525263029771181420579692559298836885205507679270569798152046896617845659158512985790419800074655839712795313568225569710451603108988906464756115167236543825587515405997457299877297282614063185380097686016271910498949844358498426076493477999738951932736725149715964139466088139002688746478110151431363935603591283556166613856499183300852418889994334768600066149977591140752208750510148357238512689614982182792691561854300570233190388781864434268755462714212174758152286849640809803928179205579655179030295477948618868520522774721640992778286610506481204145009378752275147984893945284941886968736948602934897193758359931043677691929863641858114831949031736877533727228294817107920980687915716300739363820433817492722996878484704438712915252086793939726200893487985516831159022979306597076371500959158159455987592344623458551265604576834076531465585308626259766496862826946514640362166630960026327283645956741319390738049657615343317641101855369163611487314918201039430040871222044281997654364270022625800291218655654980997538656546846154304741791083471793174079481444321972312580445184915863600462720538796876674556399671520507810177292949000630743714349987352821784892047618331147840185587707942537456285925600465191264112876919972076673395424883078744027735117654229876984111025194445828563395117497432006802956550917969456734608682748832864064820840642910111941069909405617587867267798845580158934250686100999647967567872881180688616259353844561925738255547018511043783827132872801509518177828960364791653529085221063097973822209943843901171779554055507096141101848530515364885637468446547705671179187366188141495741050662525956663350465345730509065212821154175598512450531371075498941673320171128430822541435080534642315625283463613610340155561918271865257361976588200213433624575544882391988512498412916179836086099447955527098443462640022538839779035765309112979432924870250081395571476044044119140947807677724580236096519327496260829043193358450489601909404208804979667235881736180380462666799903375963872974166023241378693689627201902766901491662879087725038235351749684568778051031170252839077276070826596676442520328021645474636900760528312123203973974887211286682646865443639368474187763757607077486527650051701851388067545989513027436182886200421113058625333971552946325124031973318198916255409077588532839881616744806590760687678455252609723698058439890835972278281817108844156669672091048504736305151350940251953380173097290792444833201734457558133585882850506375206890814810085060214517773607266068487045039903206926144686023443944296418156907107629402406945508100184475049714826111705393819131499651233853602699722564378100046378157074921126669161972257348100810882809291295602810196954686034870632828366550107306048512967815604976072471974053417801839906672150902640121780929248055355815959220791898968221300683687835227204761671175355097278127551030630080518421835737786883381268815207590205220190539153568572343537026293610680019622212551699935235586003430920620356698946420920138979565049707509020779415591131145028630002897206297568666556887007726947252425251866023724247083413507192769151496894116365023592663109793508030929561294402392520174655714096740725570131530106035258967510756150979269080839379415573223107851148101639792743000235336328709846056676885824854260909337403860850638929202409248745790156527142379049365398547997945796557695431721128412160846528615472291211646327166977076658623014878442046879994624343966651676991614603260785150569628206453172493310622470768426822325222098679257674486664856015397670844088054379680344249199201819946487629587728650879376181248054530757245867979000756268356240569830114683077965022948079204003300746167301232482616621356201832779562130462421251096941503629994341477401583842946412384885181553669598527656763675204070150560050032735380752674915185244897626022589516242817787003841098634479303502879158012471391704460871679946551916003018482554954058578184462374131979436210647241295564048976870536556359410891596585876447211107428730867499438864024495767094390949782214381912588977055262799017798594900242916212299586119200743289640690986268684704669279393683809775418952893119427444232223249480848148031236933661916387097478148925976402982175388033023602313875203884790754733074589033545756570258366841896158367503457504168330405308260301658844884111178499859745065117600828357787176881531953974110982726104976740459229504240598824227563879709780873342912216238586369116256270346626512189386909804264836710914635548319431212842486408725911139212682317345245854670740321001275023883357398186285073054832319398948492122124818779320753014702043642318976384961828419911673811523778996315436967222752025989357864830394629367219891270801305351531182179447019339584512241219504290769517539239428515793359428978726434200330343314626449603977907901876005142681529684254888089926470026119841962967305012426723367483708351611310219129160380115202358255191194858413668935682643423791496904276576549175899913750799186226773786126904664228224754225751446944235341413001658963013633190060349346629423129979042028716273272233698472935174659642525377053407554633999429994941185352096595714934774281816017956955287311912402995500777995171481934231832227602586722381827876619372219932246806356872580050284730848167404143163158656844009598030863822991032736147403804615380541885387780813326262587296023249703998456246050872690174227349733651673578373226621358195168004204189971212429735726004023071304174642209523719931039442112024033064494743967563479069270703609322327739523066813037848092424440858003549101557345978088536885420917195514799530290216200350650574566664449753153882244287377963639340818110266331819788444959298794203768768321309081799822905167367575188867206705652310761532405863414487701679968281981669227852223838105714723640764264673645998620475998379359757500715615351363019667621005157352567474196934929267196750376746891167920626904420816476325086636307017618549213883168186379484396811078375578858554699671752730150971522451270244099429342274160575746598162411633023221668413716084645859897474260649425057939580915815344187538660092972178458159132491249440463283626504566851788451363513542440908476492446059797889566153985797055839799766746596774280361017729772872159805522020644652244340341932077307549121503203652991307177729464640979060052964123199860539947483627766921355592701004290280559166260942375358606095361451377099557994686715824812484139697390774705508887662136536186548894678394757580486777626325876755088369634044081950493791643139357441542976900805000300889598377619571414520425030272503796723123549201389782850280862979138578978773179192083386181888086382213736046512869785001407999818412329252304899480260072540421351859941217812689929656578854368277344551133135929816160497534039990277707304680500562112614892042552729585936125493604436901270662138480792182273803260444990669930363086227406807627266355766146935426634235268462093197041755927369827857993622065209931999060998972013907410601778417491083952377202179236396794373952147345225449793728663858762260696869017850334090823902687475781195461706117870049753757801603859182229401970522258470766597637092623421828475200907874079845589708139393498151283536815731349087874396167745267252487680051833155226662383273334232278541812641275276669699251366083612926922624087694460339645792465294282616142341457118587022759338838602573752142013544001933958525948951132836247720243637136542991054248011817000759959142480737580687269058195528408536565403277632923767617364362178329651073226528569453197976558383262245027153385064394828446828447441357377670108842323999751853597525325133759370079436983535756482412663582264533304246884438666336374136465041049446934865457584889209282762189510676830504823085610136021327738027568540114403602445728032791539309945425147814428031083197011537441043577622670616506725430629750874801948490055499293254001606443752907443071807172799201068081605683441210095574190064489745001558444178368393948590403291744644334953927897742242942222665741239063896301130956255567666070838791979171588716707687241041635083976701095842030381189133023611085136196923727108258554815984830366606240167819337027372452408683202989229037388221371520508316473099727158063797362695060615597404838929520458819975866475353210392093086301043702507403570611844754853737492473926111598968831647875850046815071518438923838838259469241260939890727218747790668312016181105085312815262704514141855117736688604555536420079833328395079560021435700731140711776738288593762033286517230682345414323852939655438441043919607355024582330404358269023525159205219073529196930053487782097146236737321533569293691432242961537379354054928571997487623982102582106607197946016028782705022265083448035375032306264294341456212468432446755728729581635889935311416842295827267355379599704519500259175429374488315393566967344199191311943822062216262998718118628049051731567677419530719853453432407370376965093329390116309919571945366401377988692865482707680476988031258303950827241053790688316225807387376574579317467213511338138510389717421732114573033810257624691500659814363543543646566028715129328178227081264790167306993835090051118259660859201813020372462473328085821691593631345748725082835010968823605547214307941577253504251582721458871059944258258862097372279501149345082702148025870809278569229839765973978298698882842984949184291928221960743998378239149419518552710857540093852139180600624479847961071500896067773898294158584814929525014551337322267028758592294555249036188179266462439168942035800041382527433256681206319935789574228053523906951778702142285646488904948214233758941022824424311419751217752430943915510368258469308891959932250203196162994391482219728822209821215361336510090044202464065100191557578019933794607753098066034269288143392321064910090062495828234959732411581129369481951058564015215618535136967109811116812474453227899106525746630292186010531149835205449812679650855049524785051861328540908419787720883805472498419833486882903247068470370033560417050498195390263672179240012077295883049198116563142041285194196705412525156503647137632166799195072706225712166606101294409882028790793075949803752621361427362641144093117767526291243855727874825031666705440986673194993882635196154662716443665522198164584379164094973971185206615076145837585982772591285930333398430605470609167133049014185088439616608578019520059279702622325950031931885201725910617194518697273327448675007607589805926652749295565582151793984679981020427187611249535548656707933045057612372892309823534469972772058293087056934064139377903015122519686832031224558865957444455471960138837434075497333332226485785305767086963677568668034166398870294649054450499248771867538088784869290167907289499382918466096720011378615912000671018348213213392178321407417455482672617942823938930666590386189390143382749068758014642090254179384328091809631327585331102427925928108065188586671939079515893041841906725352245620090854609710672758184184935299839129325812295638221962303450068796110476196045115898632643124193579497074358638180764397998416812732685028859235619191861783226736850491735997107986271128579538608884293227553698621334570706095655715695116738643205301641474987118663693345796026311917027126103658974301759198927271514329961168056889272137090668844132568401699600097474118477230957928294679887672790292116839847315037262232127226829886398022126749235356852407680064823184489842734143932930981713098145112899867242201599620578311876704478831801828606423606754201187632383794576603439953716420466600149260809891941636612311749369261490352890782673361315858893415959046734610789169494848473642541748910557263741310809193611726793845255600533142842179094642348140653735832769178230661518877274698629848163203503828933159755548783582953592545210774798375642788714089052143611853465033144524523694117998153362924522701893991502470248907062599581814993353542458297470729435166569536215029749173361995304980062940580523976665281437870975572727574621775549291848873232379881203498236911694110114291405115595701032186062743916125112043455336928598502370218223718728023444865650322351562844071353216396292981959831429595113745080867125893167945010535415587166422101032127024278326781727224019410635784149929648883560632008693316040460646870857459762871902423723526966775626234254561682479579947818649232978405505791326212952823100959029500436603488912626774279058777577721660518743637011949625788517695618504594289021727372188426472238460430458302689642195820510291834521901149365767415008940243189273332374766526329352733771694887464823779110236207105991351902744912713957048540429997852290325417329392214908961629365893304033657777932756591705111900698539523410096022525836551254085623070930316346173863427113231532519973600455896590637442275287662815670628097643745155743739613910087362656577940176529053769980050656820900519694563809783205834827857616340773579371543576790677445443838328735947908266269152603303646967991589011066435647686111525119048412193662992114868061372416442704136284022452202134052611636131689615697820645034746821729785321192255311851790744217428576763285048629497352206084269733552166213375432184225918490429715094249135394909775377361021865054745904814734408307180285276888276506527796927079294765965137078610916600871882887889204768384429823646063594583556598488825647756398888236600922887974767393537635176889271925921809900854083374916480597010648542089148932614873971595268620951550401105911603190873426612178216800060380511056906088272225821402446758582766425064119014166564340940275582347089798292024765884531826913044268400991684913521265307414259528374186976302225482155852023562456742014083289713939536609916732899009375919451529092269829837709563312636782628393882626590715614316970505659613299993072057827448079496786918081260722621568022712981500092239382609846417768801103290073368344718086738305784936516269365051165358497875502979933326955279966719236191160632125348555930510734705144073587530564196899757925212456315096603127938975871002322730116548616942695779666845431280988610065940875747469978648768732094125016046350632456596036146409650167857635457378877809283257692931902123329449286465918004308990723504779678569559029540849062408855937144423750500147845299564625697977408033471149638219436515177266617594957414649162248647124505348257669246831222451482389306432940464088293941150092853503879068591851002245218639338724194946882981486863166421594990924283821317905920651076345597535261753407131351723054232040288710005454894167438777800143255742932614058619531817134629545372755213658158025459730569527088146387007386253167821996536801566470880106817948432641648251300059266217858201104768025014591749354676558249954229469143760840153951213626282530941722451145464047706580691591196159339989776365527262294962901634038847625467781696368755872096595523644043084658650885817729923845878072695207276601661844337974638490525600128378609699905269050297119594314648948788203540884139601338947673706364702943941465765669190175554008315337595056888535111884510774784954920808369036847691199268546479482072590190259766297663492298070683579313117185768203477579374233209445313591835791415556035408741388280201647017494934723779387918386739673694195870870355518562282286613284615836725586169191816115971343437340212891277814228942749233703537678450161240908594908752199298113178000995649819065638122135664453810959591102919723032679573334068773338353203528432257046195904482600890168797934944031262421082502467855330197929211345422963900284490602286136217145518354347403404969216887381669609193722005336860802394349507731629052862886926818399053948632141507280931247536567376834778730149289536183057314565063782585053990249848761798459889507950614875845618344275227762442918993414282023210605591870517495201785024748948495165550082105630688625604640455461725266761861068313033977082213460666445404972403314394507728488119938879427066501549235889794662811164610859170767864383403245678389163834026632322463006428619590982551866139021038906384938387642758745081693508341124667273143940843560526556846176008669852538594240118821331140964666506981073601015448412702540238462055915395518108774056255364995946768916322917328641403115080876165663502294295336618405779728496442641774563812774318584921447895306383153868128521664149130918398055541935610913141028991077777437781226377980986296849834043975442586880391640265734918024355970089626343800281523826935065373748060907304380271099818023284395278697330246499761754391233929631092553241452834703476054124183684826962029484947461845683678100007530526822608178236214014586313060165704658831115767306252890950196379179875389566572652756359000309321534451782250239645028302087612546009224605132445430065534063732783595324490125555647514807069829886849187551936780096507295210390947724334686099694125834635680725761327947162523438064732205378760504021139714542015142489127217181146688113807577363766163315068857179354824855262374879520288458824485747575361500765328758094794641252548465690353845506215777950018945367549872668640337916837771474281304344153648488100000295893195166025679873289517029338144412738775824065996718990033486054553034750037278571256995236967885446897967342351217272280704450724102329100462636378904633189451776621691931290891275580822006002756556596389531009905508330454973051039125953772952391005044772776224086906131880204507276727920889502364494868226924164584951693606709347198444002558575572092181863656286041044371351279789724051537995969238031022035026694045612552370894630935977255743258102240352785598324803417174260902694833812193202063174690412898250965214590586070542674082824360321872896858953253133229925023626886895922382144847850437593221022345919767865881023501140580421948971911212149033708661729475854375142831032390452799078446128543312268727911874287369032806147208642754269304162529298258243671488761856754727077408955738843422212251288994152708537555741342695568217382506458341678778709342087903384835050699454000913425246369380471008476396411824215861564592153283517953225107782924850486977440880030861438897991740590417312078293644660638075130096022779892196175421071701754528140943601296846554892357824740478854106641374088847160175995828223947738494036785853130072631997024222612654573399451135129406573314807381017667238235158411487567976521437488488786417110888517728490050457160169665425904006810290528790054069244397820641776343708162122453366905112492294434972904972677331827898701312682267986517388021877320646128846500521317915607114132419561814227585762065867587499709076397627489870439751961175184614884387580041059739957378909194711864428764901980645538390099241661120968807421343340470108743216552000283988609429669730552786686152755729558719150776587633404754944665744996692331283455288970271882221177904486897780182982244117865511041261980635723794672902715904067199763491781457675465567531924720270962469813638127299471793385384955530677553117040999973111177345491055356272208336816566372259871634694801646424919141872856538289686620215224835604892577782763658070809374370388536082396365622107443328852844137690120471789836004126472380608020387447456082966834347555993942538719716157188717905248630817137036298286126745503418571086281622897167416685955854611517420270175834437795951353366512271849844373988961989718762692026760383729446599741143178879235567334879859493457402118321851540181921636259010876549059501184236840900859781326761981914447942637240616706017776111360965863790068454531545723324199804012656638364504817569252034579988709220481162806573517114963237771960937099965031178304265537949400781445050258950027953476953494122059483029773561959922092718193815884584384487454894036574948576501301106690691937497137385978938706251119468984569755678855170964059147375794287510638781145709084026329964845928068668536367829584641019351031396449103908014356783063533672208490603268830375293829942320159749862490276734902863922193604639571970880309727460037783182112495607530700828965581965275092979985176665865931601066691454733660099579231083345107171149949806664836865085819385076975939019824722411754078610432542976675813120268185894283944483094556621240825520761373077609366124452063352403734536501223397314659553820374030807917449460007769922178097290042242024652960646844493143543823396609624719924786454427084725668087233101110985929647098487290807845037665578424748548965966253541835155784201740394012115307976996133053486899949156663525111359716990330909025571373968221304962267683350774934989751330638654864881119632589773426346267206066112441418539074894656407916920748921868494319364723624725675731894094237992954809860252623567573605436310863385907296070678255256262081007179913366049863787447555647489619942038602771292926883225094270863121299250294782167072274459876176243270136484881911626815826868211276304979475224265056464895182978207532892169458965204367922770301825723546433083846452436998930461688412192034437148796077987882969509071952600719741256148911128219606802332824480950332426615192018041339156159790872856142856699945769886636580244523885987274092271858399083483036687188793782317750747557800010940969541979407385099244286713243367424263517961016376212877316888502391408360510549116614481149693266506749107929697001770961960985720618018846116164365679360717545996398797880132325528369213835808671857728354500290766751073373635110185160082523280363773967800788425859405493541940991040315045937899973693271978090505735819025466399542714539760643262312551225120143682080901797287177653108318925672435853381921524712026342513326902648017708063524954241007165112835233432502144436655047947344470674064917361326905931101113785224236779199779279352002387863255198263776790375382864173142845510081268042506192431947175651278718797524297423867523495744745982613316687605398306268487039241967810163168066647755288226623107732199915565550540815216631214629403366972861816035861336267761592183491088047338693745466613098979181440388982682572383034562368947258727203509385457896067384476964705267742605084896776471918780676835008410413209738669581478080884934361592344480026670179759386553482973230221731921655580168425071497259252633068925000506009323823898456825551085700384390869126908294278669184565321898077854531144802512282853100227993714874268826012747747434661303856224942051219113973977931368324794125577389178746448659177742296803612719971303348665637913833301931893943725336046452238871749007333009650123333507719732438432254030285505810399911908472798314733385847868365141652125879403963575934887502487184085920342563422881926947966716205079135548396109932923763296861154636330881439160700420062224701264498924126865083250138112675611434743425706533499629492749140742836501274755787452431606652851755951237822925137988860443278100488224979012126983181389621863325343687318231407815289171534772179878133938843484988120741243263931110767761404869805528099156818678344397811320729518807489927465881440319880193123752328431395108425499249908346841834446561306443339872346511895412519702234407538167123278928270404762680687519832558015386089042924238673079217983248052263133268573091464390739351109132652204920185943567998631187060695010394143609853603057799933530964560506355722725418039528670774937002574196661594552924330791619777033363119106355375400753387038964591697984710071354727004074653877893091243351016934044036703105580905429943357697283081372436145541019738458139412508672611607065482445869233290104159884083149452757771430083809675300278897742361085174099852773484610232175903570275461201731660462287618581299335677723775971863410692198804217471747177404027000172585214763554267221572895069677455065672774772739614333362192055002548267720766000618515327473766436523642581660235231825570237440909731353388875402891547801568073547672820211661208712819754888343311233671975757900215184639562105580535782150340696435181061534473408126291430994982360836276696928922383657162128057171521674296164178496587779249451208628696157856927560340424904711935856780468506303813589589232214007242601964620612946915047908108560473686861538949915315468705950674515313588402765327533507020292999062910629307914736423991779976135199372514044912773363137463480108919661094318421590364034082278979644665860159898780450352429500752926404350230897957797267520848703349385762081499522162086415549262673445772793593573915973386179132743342276937610448759448360423310145283831797462159905356127258254266398550070654270426679902402327966645308597975949455367958646427775131676572950137312118099323097029935230613948045978560539571850751249642944458419714405789553662910816989158434272348512070312794699856424411221452977091820347902847799613247701148980627231152386393150790943254794297393845792128946615182969353518714327644068804445213815753127319252094075175840683089999832922421716627348329559368580318751881262352550946975241852908650372038216131026957898376921447334482547248951076910281999916769561734238879663066115835506952431959216251256598029585153126996926568718440583130325825886892362824084231716335277591763884837761427960985275328800754576895797976684203261441572449829267911419903668503088823710230317261859364240961962108384932307410181788732566990428055948435747179107208527442677284437005615527069455228934233811829844671207737761047358545502164246440233293389797271572345288585426208903123768923355887070849513602241264673049682468225835389263236816958531027731439257835220919041321300260586718738883285187826976915458737513296065256492980240873370095244628040606625224015975735445967855940159686278165646165981665821141353681320780334241129974501915476859191689557656769652286959958358763596512241054231641152262264857712002779975301941642429391795319571134986661051707120668990661466100082820871092185537328737891031713399846730905779621588971729667844852613484361537109238655141661380560553046540279751129561230878690093973124063641345418098974980666551181503977055793984473835691813615639969337061699685553802444139906298778191483829878969065196448774766644123109193320635122698869010795200018871288848063031699735922046992548243882320632120926361513363544419242630582093493134751633105682590123779578306423141194426765044892573290565270607219204231948992795343137583539449713600947991965739324465795257485607828777798768255501277751427247083433869968525454474904611992308937487842819174416473296493812182505761425778590200780984617658850346624090061368180452554565145576670170207312196362706027478840637751721175479805074000543164716031141557892433716849085661748530283707450466684096755415991662556218501935470607543045169528672882556492671532893758459694463440707931356291322724653064369672405072019718884084662820760382892156603370947707091769780738062451539467306767440314795539650222909444924624613026103727836739316700798581573199576354727358173524045986852184052550936228809317180050326322043029815456094312151710273015038466747808028140282744803432563901417075682597167881681464704788074066649583741934565841253190939219617004982369052883183681445602039920929565130222567165550383078428076018180075487517567542363630334261434473147856486098346375859032882864214552191730154344325458347569289244500018894996416461389737244111288788786413163923469932640370607027807650397091217927633891166799418812045428982899838044837334656334041440805347042218265728207887424911921260881620304746560341625277375771320628558004911672202599511826042492547494578173994247790703618138751255771366081702963347770439821578155864301393641441836202718841479247983913027610791626302063424706792515452303950767380918968833715498468676984139599593019855926081351740668473485122445790934778751100143685658527255574420026152870166403089082470665972318132258296311049884725402058900460353198855769564620118199180811804240607384498833367951598769775751622868031770233270950425804460531893529960104922416316600041849889725568095478967617783835856701282168010577742291148947166005878027627378651855352117872781746974362572178705152047843479934507246643653459983528149735231148274362634688421201546165146212918394282206947949976106004833280553362499568963242191836436485446743753450227704090464838867178947437491819712532698691274105701522557839946248600699411837727945684759492047574489078177003027267100478238862158250197085882901015411229841149414192669355823903915647010686583853689185938923668243639609059589887641786391946468812352173496792026554963385492517927057294565492327845434063528365424154958424277492321324496870951449442280138860065054768866790779244112887053800150111160145211265358780075721535012385649126158158367487574800929206187662166476598958535643857159542539190709553750473559981051071918606401457331599622507950010149397092335669861831242225011981501918575187653095872962890503903809889772582007337353415661438340919643745888787157933100052633623461712156274826670907172907753807826913389841471587609205949513422226660354424419246738288404725032612521903144320375973853493950252355856748668750936761809157982746521349334114622492805634464368459469911162673488970629825960103777797395484412023959785077417127100638945203321011438941546513845017857629826048152476174631256803009143097083212164974349835647836242167098113556189980965775162816377725390055863712350075805370270492957583928493503764876151345017125697463912500701663394029818205799709923744606230053380754583016720119203243910075453799691618244782186622874517528813581085647626071708422068250780303132325431272834606333049939428136743132353542130439873081044895944764850959650260838511838577421086657657948603476938025741698122029279238866294316242138207552149997556825197133031810471652426073410203370294368261975441368969499314055429987135365998216607803609374769463337505342803327403404427495583283472424096578889193174190072897987705376567674952200151072656606919695968702564842723902633223323527466575325175438469344403852032495934614102920405344883569737331333910232135618593439218692846013127849991842771885397227166273154803063159755043872449152917933353944708292557306699976133243503388115320975791103359395207332351033159633988837558614861640154203555963017710585719259450723098907437185927801522418593956058853862298078324873447394835516730593208067089767399865195394982708077161979878442253973278573935722930558507832028394042534190852544197815104117394649473067232393276517108224072028942735926736254784028555014077688072659228250334691645566140811351644958011640325666065655535129075423778800037165391291549693055358054381049448692199369411705712225099198242054803830406675623467127709328686777605224296167644856991891151119750031880824513576818071379615123537501489037218527280427138182771001649792129227107119135658817664701495579542354540414095758033328938028234595442715780320278018578979465045890333713591581108123442183592263149321612049800789767406925313421790906992324282406268074362197440098296515308919422125895373494068917167567672719716097396469047810336151407743282912177575719814727534415383797603228639145050846977547087873052812724924095877789597647649825063164709488993910728905062556653776625140308617180587104607839282904562398822685530093742061558688376195629612115539582188127759109918121383817856682294016505498871445156157516110799874227368745447669210929455839442004296236347858595049860154054496841135862959165177608293583124659997488120931929709457281920874372086857868630682532011686040929042456828235907143114759927085506268404769289407180586839887040183764121735756101229248603657874458478288651621828938257631451149491020044173662027778464364846053711579971482345096545953978408529649289590690542253423896710956070464801878664679955498517187540011577436890562691003010820024990970967238033414024535091360966229171567075244800930748603274750410954174591363425637025708037800176746663789952558853746583997877032111333945302426413281978506812792891220477337790384014906634276939521284742963344478463804820710017861726616496125469034097270805867217168888549903275325207578512664421731908474992354680663795090252611801327181304016726103337242397105521292240362455750991249921094374568096727431971944495427291725341467931811470903283660709530061140846121188280158774711861810041786177724021181316320768272740505219657714086372562546534054855685358894747016062537645184229750241382306210844729742218032828491531045985146364500286882985931523881760905518988479508122088040604344066516055671602688094634414190207347890250914549081752929367749467312887964970586241519315736157488148906278625667677809034806913230930046015083603573972309115996461752846601413614070474989429344139137640733014738771389609431490735786003176712822696442405638892765460760757067416264871784864158839048855933622822712143550810683933443554228355645735647080405550259063366992497601242781244322066875918151152270674410642896030794459033553302715074860763340458350293167021875002361593797807588390552335402979810181719986643631482743398460107196690061360297055640124826997235837574318020171546550253149234496447517423357485091769381217274349655372758178291464626373673156806646420228530196370207979266062452956972486234414653046219060074104949342575119468086157108645619350757448739417522085579851593017949724368184309056409921714443244056576549110906642441198660404687815938017177951919924485462954271626281551547885322941082459700308899401318256687233333723949242167946724800901283561019492292441352608838984390311462429977075130133346020159901388552192412702338001689357224528339287505322474392756226766866597478902526038420425726849092726599517680672559090227190896405542312774964028521288267555386658685074497834087830473125413116734313723322547312798608168764619089723352800070213329112901640750087889833381610097573955656256040201146373425010853308318281153420884458989818206440563183555594377736884889317609584509369560585666903058111210758737203216252173786274260138645409356319466621649330687382727414756400003323102294708825708676028953788946627121822194562635084236607975263008315752995731788213302220370880580369620810868401432226345825994377728292432129565609370861042164256582541072114174893910681833046721720702839605491174933408479581050580599568119817072838467000515544607810903346417747311438745824669298697093823790413191639957605044693001452183460759215012675364554846613054177853208652900746328489647961701115896377721423455567830162966883625992258844936133618899544602833290466799973971297563218169595377816772159905898365784399759569632388799139538221276428305509141586731735133422941919052166934529179504134915231541113097387020441433278042489141378240925622535098183142240611169720302811637769241607805558150038018880104334353158097027176992377675718210817477905897935724229318485301226755392428917382926897605954366372275572821738705814677057218631969436345507036408259371862071118366388842485269831961228623546278317995319596724009460975049141598386333226829235943401521867807181905226112495264216776078955917335333830287271529531456808093191830913942132051687054125067002610705878687042534387531343420023219200918448303210394522216643338928323700856335270773540978622748778949960706017034920574498640700254952924374475090834771652224937929733258293946784168136285184405271249732960591399087831779530020058371635603432103351031656496127875216553030526982877015648376326215974275764715556167197793306076020882627066038042840448168562047262948551519642683957577618916767543563767408630156111689573284574084628310387307264922815129998149852230299377112593367720003768628322670691047239220997003675305197941719410638584551052293529085851650502947684001045776623813384509113717380852663815439077295954044352601489050974499719781382505105559177698964472541080443928189485512286922030250239654329840278440578757725287064071829859614334297405030780535381625689180845771681725450091530331740275862385929449581054979274763126963862200601974976129468106123638446769626846170880543662026545156915168681606556710112005092688260329286902105659244669499660634882523883048364578947707189065857539603442997519054319484683020715797454404800074888442244811502882640866390640774388497307959138195618102111605169999613959511026803358132639554701281242427450247636138416253487416763947050977575948680743179323292061952822168563962156434899379268080031147614101685501165698973847340430858234631988415735010321861139857426740309492930061029515909384258846730903806305403070522805184863424542892684777849327102321392791572895582946540162576877421106627188373799909574760628331590202651685442618713482752468620237137676204990570941504748951227866129823625763789225898617166385991201518886144983298612612517459486684532528779864656387754317356170197543601289300186329430695717731359874765712882544199412000493056065368203736994221223976631135210439406498624288272276444730294796355056270940807048723561533994685990210363462074611879218997541007382839925115798566933261244273010978089591329657634270688038230077419668111485338702177689481742915161537938868314308716720890932291851657960402282737153381149384902741078446107799073476697826769751269702486405691357964383908366300067784814847198431393695015860496170909844316934154050748403404197270551621588267417277079338560891535792839531727722436658757125512740869789905495091259376004546657051879847610822628888003536870103325493544702283067518381160126529205622185755764091557580011501217572065574114121407535280502988207316661678274711456135576148290525246947121550495223344902310690406128325402574311633579619319287476353478329356847850581857033647809480195015829802101664095556609713950578562616149938033241098689476216402970961851325120217396171765879932947363787454879062037471884551002205929239510835032085368293714804585692947727912415694622450887783910513217598596870129063738652856156102300431462082622951314189197682321882448377057670088553434740588079451693036561542558027276020845246078635734737998041538289974311056880662371825520818601822189281189439918576768515357962201293996684983026769745824276074954559372705258790103834047772110625504886707475111800996661240071788063252648003992381856200664175475846906806964627228844377359179696193130860046231546313593163520726486452717544289817270832733417793722606661419567851011758311671052939857019466377535535172151482914268050062592972840737157996214568322792449173180018487439331513088403050385664259292874644235120843222723250830232638913998163874786096091870244701254589437066939395095487452879300399879527034406031965353817367518661058457762842117637075773201159596653964174043034832971898152163584459658862465471012999812844481799240977159671894992520412012310680199156597875068446463342501307024613189042818972397080434945925804215622108652083198488212695955577634876744107794118978378070406712592341851619613778395739485528141053012454235877710343120364770563730174879834642915819539908334170788368562646901575208135205608230127508112345064971091296760034564358919897639560644070652215462606821674965908276286190820001475718153258530922097429167910646794209135557208466981280716233593658060232121611811593406550397936333411954023411620121726740579391473306474219369940127165816035334414816246170875892469953964987755305574279431994974831666060259515779519783387567322700054441574715232510726559309098978801916656281718406602973372846803125760604943984663948211545480391693462242460016942779884711111744161070588127037494188644586414790222739442262855160030547258934630189214508832451255477979442458867254322123046512304696470094020021044810777144498784922596648237749000550422740081930005405758381141334263558945257710312711239109933949678811764471647011610233056780879844370658921448757755600849545349970315849684255515013085180897426644181767721055895730567813213525380198105761475274208687687488830727129112383764898054430465044830818976829714745325106815528637898675741597688956643123478369589316939000405641616332584156731601105175552470509456075928924626571606803226313788629765282150941147303179976871206679351492443739971227365298819341276961839364598914785707298969222335715109353143263231943272345895504366384704209807915913328911148699674695134444206981576888028730926369450275808311123448487641389602049820905821134310290301766583344251270346379111907003604458812049050264484529162256542865808262002229287082552677272578715176280546001461758577585516496124722147529052574786137440252402199691728047465939008190643026531167641612224769635705376864794722903896016794357870639726253897990481621448242135727764751913034374802316904447262350880383557368480406962623840413446802955846123950426481677335302504931170298328555100323171990758992475522611019484062564946176812037957440976770492179991740913842875041226752527373651605751988616877559330712177812693935886811902882118194814911358163327201720459621057978179716161309584087425418745905863963825954358104240325788940356386023108872071355515110709424897541035069894269620799955456011732311456895307616624301924960316052061469053442227224201703489203236286948916254183393391321537564877048636573133545176637140506681202020430822980536279648653226456026643533542599337772518602533438025265687245794077380671682656059171895078699742210663726981438646497802442468639686677897859982312807248840621355626755511550170206442927344404900625621337665029726094387798384906157607607159464145080892624497896268481254916449080811531125757986761337035719915908634075761998961147447320514286392210314587140767215152981323621196022597904714801966388195062770515126326488819340365030700930620683851926793220791696857563844890173773254894522267247491347625472068928767134558607872229489780245675137016472557195980996512956713338503916401746804745443000224324417956215506643942086233784765340879280493346035430399722006714860439496510343020726313386802515577996521850294472015450927707912544739603632757456503340997098048898836208353644928381738038218066961064951765428508728962294906160500619280498988684592398596511278533021886328679175765691283842236407403057946225022751297159115542856562276008607825348681489056233377002066717533682354436263237289350110369161416661675500119815936568340295852883077998637128756924753781462152534996195156179622207395634700120338426244203567152056517016928987752295984784565293419750275828347581956625360566875772491900021089894277907018506528769257471387615954751611730162511372837665215611052063561868432060790477332420273506922936382456469202182561752730908484134159925811071014042630712200271057957833054821594601844607671751792732802115575518638511598725434334061461481785570288020837077868704524875748089370285435018121639227171001589295735797276585444632810371900425691153094258779183620052939549330551582953153232116060860713904856982551175696244472494790603986146518395295540332273213941153241709815422027250427196691590639839435142575110578439683213381283497736903745928800053784941976440684916934451976250747152713490714890348193383284845571862400008573251298796407784559146261803883814032743023000740478531116951308676652953172360483126670823746976420639443487679989740839349402400333826722549660616053982952842240437631106980377369525678971403833079944215327032158418425618068790372872131255708843619749705824269068324774525656442468411199034607649484169014910446414056860827065560127024522716140501887794531552253654447025796837492245329574461843011160873552830585355586678411006263571220710113731962526860257255274558785784756068010650876690090962025829338373476458416111088001539221256809292594161992773135981435468816997124778819455459588465863887255274585782364940727549863158035840276366621138278980498602837010906458592806510455401752660531299870395988072327347903613325055097486438831756447247495044148648590180220543328278323503880703924675054613109224416714256959739050452400316718930841190706686470002035458601526438553769025491637801364243130618390507863730760244783017282446915649247545915161977664980975593883558022192390037258368277826324705728740473629235548879814432908073117435382653297852049304557750449608054160260354574600964583773563671684620698136555422122761353985382575617827232842716927871749401346334603303380357684893425382895041374386111382747868006530575509744987786993520332512205673939107259726385552133628445068043911498805510328042813638788280046185835190169746405084058293908754829354052414462813108758629018526194625036469874729741723179422806898109614766796376627062859146162191989779641791118203921382745595622407505297404714759605196087667186281064645813237393573449774838167198377107824062592358566006315451946566980080004731019840701292583128259213328312492221772784461035706637819697892243981270848349453262430384588180900355126903668773692714140503919561352638021393418382769580992538783177708113700172491534405749352408622689840196643320903131968999357050514004553579933988000882181809271620200667622110822112514843373242831815134008636312938156664968656018912286814447585819370275954552634583326157911008057951839168782144467487002699711875524921275134814630130337393346159579162576114834974790736263517026708310885953579056604100353373532604344294232242566152375626350481082005939800425372659743178293338675834561982376057566415695308915276366828840380642946175835688435614449442782709819369574029624335058220236614336875668749590823561998919184577001236223577254992418329868824478599920232426882078269675989718631635355521292461098425523073517011666723917514669650325433560412830837797514829012962137674421699350462922503706390493227369693530539365292682317893107063593334184134449229851505306095496468180381409800087304787171626797467023252684255378664378200616147947438468952226103219994802014471899730535634334022905914591139857335767230060927818009001633810251620434900534804631312268065275306929086904987912193349824791745390497427303381099629712832443802476042297952005166658552227633988214192779744524271782457447607990198061800143709772231703144173940675953010205148946631851713002984372481618571411119517558297677681889045465305412097116409838690838894783506909035275825167657152078041395560703877759565459826227707254291869394186441689440408944827787976603528018722612462313393818505113500414023259425573712006396011879138809806373298220905164629301806613003448825558682020209907683158588692741720576916542857501541913293945785571398670680991334064647686717002113209952391256152607562507961874191209582968054616303521775608960989533349406287045889413671268158898052842231241209860929571375870617113347135116425032990971234574237491196421982659270497238002955593200136062901130759268493169823650360995078740835346945003854606794094142745390921686354458930499853316885756538160341261568887268791675625164896966069746800530846200293127063605986884337387322490344986689851109964321082815096049195848062412615017214083520023615740660059333461523609718340619133821155434969199438209521916353636070952529851711858134821753331313807120267789420720761801616785936877856194976512673088372653696682885804321420871095709736974665432829040153824549481427766336058176959779089175886821771708510792753974770823001719005756172280773062802897034254130948361175764259290304694793230751832205136012991969646193276038952460170887322146762533466691689274548181113907171985247637656923408975405705365801143410356274396645348804940202145882958202994735631173361869648859232919340599439292482520644739822357940036441885649090699573077089856094894528293622989647602471209813550335703939118810613027820355086030383903795155056039639724389059010985749428845944471944354780124008920542034896706822799026322219519489680281379944503908451274601783346672800999218685082131908906471249423222976972182114686907656416669295016978608915813702205758690598568874929101391274647473821747029210731630608312190316625329841641456333433779838169556130892228425752393875895517270128153507521320031829859941922060803057677455005735500454498832745519437079795964064690515370639148343294516655159908661263112680814283149170401581218566676676402424726044288594600411630317710093074127426308856278348671321585794407286842961885830989128908764545503134701755704859037401200633297133682644641378129455136420993672589078221260659753350691935604187394434599482114447566501256897189232926778634363650192794308726132823052325617082932187382644558630310851637350401696802769309840663726969389380330850185727412063289857523827736617016721879648970541890746703442205831251457291656478946174794816067202590414144870585266819987913663168551349389416323284243296931085136803644293926220836550506585200148340145344415055720754916556180814876011323192269057381318577948823297278554573610328230205894457935564221469091224556994753364129430382624376971688624313937925074429788631953223271872570669121350599795837241250236714507457105136009655538113172648362216509905887985152459558439893511601826576885705513091586739166520298098984116124399906208769596499874176636342338784361302426158013001693165017954648363205578832521537808499304255391796796160941567141082014211419934818207646863927160821763736806609766222747860204360348783969385139717158725568430045750351369054157746972818039648395488668085322193748353982816471067925964707690635290899820110081604551801784340328042429349630252769297885405743148819396807613676685949153937856030855266945542025865466350644948148376253467497798200533869301606547028309353094593828590832532245510087495477879372146731672269199845606599825105315723740949194303087558078403500589981397686979181009257652626950642139645099236831809850757719743462631550859762704019382039247015934359538432876391778619094065837049174943295488207108494381291546668958037588337048445335264086708156420032770224550043455235409867026374882525375699957453246556209689138956291702259446981445395151703812865832115987553134702573570506696554251163090637130168988197699045275004565832697321322079900742656290100159314796570095250918700034735111202180356491853887491492679642277142972596599805388007929310870728757247130485931473963073293507939555203754202597428233583588103686282762929811864514098198820274239078878814763449289480018247791982960932109680850620716318302565073309117874833738209104176914129531908864603222557453087001300171284666807543952193944799114432449180684177005157863330769033917752354265017532563756534159722978246499683365210206195308588825383274518244224019650897152006033582828113271136414622079890826831064457426199878063537101985780249663767153318481212975479339657304301751801614094942883606308442655312212809432895017827055060055458605029017330796102251447152839096324981094046934224570314276811021438156884331662807294702913321409403572320914073610740717281976433915936525398731622971157582072977391483463770285563474424960456040146445687546273053520109009153867245451485252595997717685310860135253924851341236472022428626954762026322301256921343074073835461190708596531699522715300676204267381717384985248206206621155346016608344496774693619330202265362770737091677255992901388305710499860388966677187113883334075338165916237690690150750184380560017720171688369424421087085369465421626451191860350504643663697055881413183807304259327160291448795897817580915096055056312261924060299583589391756691269100949378745249174870504650815772664799284110568799134975442028583814683007699993623257442648480002065380130382114496868292912608037634465781615171693888357649069260767099904167380033027235226721123549803879880621907813215045402967826112397009728434978968005115428794141586122309474011529703508048942469328523704943405005872659141554474050701304932962962334565197208904568407468934312513101935427628086468081466827716698948762319771246670709601978083712754190563333950838620963614475011520701193539066845982435561124778460667133443921517658785785400821715957345115789166571443958456379634858473219745174574496269325902577559169795918116545105622490617209937175140885351269279604359272420138466132917332784562261803244484975035651776709262368108880407304324282472143419247929932966186167108438641138976031555022115254250691310418949083536746341470711293073385306267107323484212485314737343831370635233500338410449498285433523124891731072951427151172840754689134607575004857835086693857143215576046513164227834645495809591852584909689760779480844416034065509293747215643955559895042911776359133422757310548845211420243383668222955295908178328203931668802832021907789661208105324106005877055518886778484988407844172812817669488059051348290417948149069544336202924013203187713579174769950835058399527052967885393308921319650206308840538734616923409930196185233515147875073969213679189292417297323063024982824975887228335961460165394318932649741328480358044452903897747804439893625717159092924412635416457614210286370922394264237273848356835748505145454063973256431586831323361015999281412339208322394319646909032326474410980979459756814695071721830987315409252971377342346060990953954093177171716497360440280479161504986731054373934224313851924633689529842141658225483949850514489410310948172320224010135864760002475891429658495475653087438731188811058045495390914914233304456253561472202013366666586057059887659645654026505489584654532881734819911429660443543006349317217095592513031222294454825162558637158532531370296955956052842288868606739870911269711511836012920012874587621725947199859092894957823302926877694345057531361438259985282572796165321954784003671847709835644002775852922397046210907825796381808667517023811549484867024214439102620610397414637405508991667782955335649964505036267115816711141242476408525843258302059811135742834964772127418961667386079449652989258377347380684396837434453591071326513165811071192988387187454403832038468564349303048955616625321226026590584197949874157778591702241755704893451030470756526333373864196828314429729322774055756143421629176352810574023417230695112790465585686262754898956938358289670607354446862843774621331413538183931058809764883442215094846880456098664902928353669419184307720201994880664003461854936101758518246634708496995031821032126023828548088451721379625817471656925811394162078846616633078910346692160099944489219503540539470361450452736997510881283099491261677004445928166701546832619885499060713536687872005732305163375406766281605211495905975594325766034692636725029064939529181761729817534020765662229516983492420956783342396071075555888691705921921073865900404460156999893460262177626172871821865409078049516739011022052461434315933633690546045097234644188241276055403739056170449846528909889338965813705697490092089186025523039276881513637943471458373607425501103172216880815442608595292767140682994116510903589358981335482406638660214690499435853391354964814056776633903123251919272373339262774607810148457527671273658607400479957610368531848940099799095496688130732914186996525482385807080415837971050628265949529322393103997362435859511431821918743814753078152694959989822377946883011818049451235224591146267809546539446859303867316726948011333878151408465693411217437491536845869919694698422679071368574138196812670203984894435396804570839154454707799330685358378047005553265968194586359053485867320703968358373671954100391230797005479196762461120266589974841222456534126693272205119534033990828846302888713916746409299244078037947556638628949125970961511388002509452006389759380201495751784327455409382627756660967301781233342209666017426130651574501661825173521959795746049428350414806145137907996719740386698099606921010463907263432965017923481021686275106271980643271607920694959700217586910942892962985533138741679964252926487886612074633310517875455014919122949790648939816439260811281593228932350338616644252562714204526033155733440789018473268305748640757084511902556144480220624785154949275167365465686545766779087100277621370201585567726510304449270630265253983264360990643635064945402599865616103095943233294701467827111043237246422078681530484715564894842030773960494326768648669274415154630561537430292331550380952667213305562597289846407179903728468396132919091224433538056490068356276490866381869055049212330564054839441868604747721687529763314505523111725813050151421941055821564268437780775373035625241859677348447081751820830439671374719352707193174725263991263386850729065731115615363639422254471999747355430950292493748768090385111351901991187001770321433161679004336818432635767799560707264314912638069723999425467257290712968658732440542639848095530248325938599149976235306915907201441434594378723575626873497192124153365981305815585608986546079653921737808016149328266899169297331019534861595190343465631017706170577891649533511359638422719927526115379463564601089673972693991552343023210093993991560800915473815858436809984967489378994824702556291486365369594883296572160277987645075865144461594440550079177790185400164443423456088805338018303226904827221048311188699626524658528491857127463101050020160574026456495000303601522210207955368810444240948368645090632684394230832470921283051235095040730425053846511965549567713153934923215126213606936629703208712892815833172437030029258319876370418238663882065422936253099986470532122506417404403052562668571651321040943205931344590665102445560042532171635469048405288864312010838474939536045322724269657438268308779191121667988173680004231298274844389594107626574709065160192179935027937429035733213543035759970410237432722602187770473293385783009722675871900975758107262939901645080816659640642045408112993809098326698049686247314981714147608969464085644319910396552245367374262464956342733736152719809618001959204519529254057848263914518765211565555308658495783141103578523563888435667271539008983685620571336579951747732306178657821058176056373114264115325346293799318171140258347962714434017103653832568000717432317147125464703476683644371802996722416088847672824169480608947524691575010580891363517884250814655959051963176900528536139931827409289578098334739414182146189938316154697427310993565596360491516667077808868174149802297974963089679911583199781069336276974629687614774276357005805878390801326333197311124952159387725646130964106383769927291017174518953089445278072721040464722354856394659760452689195275217383642429223016867477897912682234650228962183187969611013473288424564952008226429289599659892435072142362839674312256499581463794578277191831170403211650554204553590216407977880653898875358267506050683903818266210366603515383676128311394564266925172486809846720960471316515831933468359296575059547680144541420664749198562034324318368174025369300454181531188556899670279426277855765404141836944442176141289065802416414364606915123923208475191480047651425513367565094976855203293525811199315137808950306968616767136906896627025947793336561325589822998960794651778248111081008830600270773691553407103351116673522748097627769223899521249938604858611211019473907785133597147109038083686439533828403088921443116880549814393815481277119586817641720019492220418927901122204268038658853519556721083589477618996968107242593710623315266293671325258375544193385273674277966052237826856595344008970224725086730226774331456066031068809024698185006601632890202464538655478564184429845702027769122367115754492371940586566743154205405180787455426906383878433297872294096641393750480773551258654448374264466180996133483230455455875136714654872215285708601089059202939209083320699105914473639819288409681211117581080531131484584733764880793124491600720692021758151099939977048417193737455097011845207157628774601488411951695766074169126922828750746858903992278841605248252759143104841991545286468353308968639355000839383913283274232539463551523290011684442940794527828615614442644010266467124220373936137016567458621164208619694996318517085544380713120745002076797349382339193784118705849208495912311648814544756414873848693365854626434046039056457561154423523027980014870571800254703149066543659910879601964992243920031511753002876285469893832428039133854889249835721823816406747939789381762195795817855025111321772239256222835627707539051341963739972587481723243470403759672533482126157413965335868706058530035267033434249462077759555863985084742434161657025827237951851759583038804533330482476357648113669569053020691722409033077348193953509488291942740350455942306735554890702969873095370408948718717357636427475621173117674761153594007305021849129394527216452653635224457949795273038416042521996816639688636132324866359225690924157638129924452210694758266307894390590669477631178798559173603106027195407520744236164539523634828531113921454793972131747738889939731841097022110810173292820518295222068217366572524024703988952389665769605118835704804581858866847250918943469156765817269150185525287995976270804166725199612952567325862462382652873087041887377487088295823355189923339996556969441281284011596910425928751412588424503891382109819251002202522776829393047359055410108101370203101801812812027088333163098052652477361605829922632537969112998610771134662988462780299622775946677998437293761781437880445221699070066346685089166996729615587854539213244417975641021150832026026789109075555949355924661809448159331522827827026419152140604677208525941455890219730038028097453020866893094158799985346930918253854846272011934373985347444190699002619885426968299779734250628340528775514781117358280830404466019261371872320515311614175893110555900759067600597538135789838506665965192075675208172031941592824187088825329682002132785168882737229309757723169748856399274522825483642240043132207909905708971537624744060197910424776731500645466855427089175955193797337861800963340058478712572815027669396488289967405424157693746276449261116685193385829419262942152053364922178847670436991358451277601992721706819754931186135453326548216882448597629747175237804560762873566686718568152660367636902914930394168082673825880935053405238215391701415542174087465360797230509595964579872792654337628325102893776579421744929192655006330753653628732692505118910442429683492510484356480919536386034840142105678176757499710671441268505113678279160635884100200643252147954747822673968803466725311951589393886882137089391007679118508008579357757672058470590895012653612951332469360991275111824491382528356808760898094627535669864205341437395815459637639043156430542865418285040903293166257294367510207796558936720389279973533980799172760791915825569925915174825294426338985593787538927962506240653664995214040558612378117847555522167517087051730739485878233674468212464534643543829936963320346396901701808888849281747087308164687527024943638636942134459904772103449105617679825056464837201925083971857661363554596844771031808712987772929959321320906052904438227498113665408210882513964481895589756505562365443925358449247620880064153679138731640180614120886306197360898368022910110555537589058441603727894380003193167048057655331999067599376434885107879382571766249288304291238900704857393246975222201141667724154744924244890291453084845512923988916123961611943157009667495167770815006352285930434105019171640568291613548354476157263058747122407401607705517073505417425131698455361655112768595439562173394508308514654944960825479447137390419839226354578794766040192708962352126813153677986844690152735174562416735904548113093786614994355824364147820611288498134788344638279220120846796330157874893261652295947524690225560240861732614933571710098054067569010168091370486974051113908938571338057328791350234667065389361929430320682395680686042142893552923697298523444238830191321011138288777563067579433511386533242836080112664430997609284632321481086231627590866283290974291603059129380042120616125775019454892773134903180347968652970896371118783398738735321165825011303430701761013804611105063870366940802101379197066502193622224679811449398996121457682985947802634937565561136841894308972332682046403107934092584409935327169522953488396610136478157581033005742261081747261207036297004140400349408494265174065007842405114322217466675046713979517200439934809204929819419101235094881641974515750647080549980462354370599722268635408582901183411018959415906126405200220971702238890348915668169616827904341405327526691347111962237637442642468712314816487490045848804324391986541632964132419596596846696015144390800511408057818329806556226915992583398589157049709661830853256006310821724904801542230605904911379872022366996777788426654705498855941745274455321305105860684695632851999128565240746215407690745411652762446586282188138465243998601805936851415386665186029302449332401534926752896516236271004694577896465778914582699243915491525506847120881178166305248875038326979106464720900432778280796990886148087622438141696385998825509871581405158116865187031229775519429899905636359869420494884598809886018723384249467819357008744000709913131617845666566143996676718681266541346169176017571038057955198272731394424871148542166764090259173115117660061252160009677601843545292246447153487599462851583000246786515125735045651829795432251195968329599727594596436528327727156219035181485726290203707303429236596587967714401234601022295043584110966712140276910501218599061956431265829318337912009662997866718410887713534313900412999953296040654645245394649975387161409369422163688348792079303177014015113870321460724512620968239013888278836108950213036607168007774233437089868012838839899208495833585764223638544914600975190392237972782306122519548553498725861025039752755570010067005173166442733275196766022664925354337217499402403116232168977288265261392324279661602413345185720877834312651085454909052715430096964386070904505487260931714056531879189242726186467546586221161542248570448610152860719851778959954961783653552450407198901256666422243470399635255217044664937363666041995600349190704417805378402077969711808727649486195407412268562182581155349368995387496066732983416911598681143621961780848960422575933342043946499960143453178676931834418880048084880100441731842714587995057272917579068818217306330945803118756865267834936022751571586843368418005913099352650920231136341853475958880886533208976923637663902923049067317987723869058083810845799450494247848526113130418156015995001891037992207870568079811008885563736607510007466624528329033999193971496088433579160917797976513824162317440955301914323318089322064406054269572612907620555864582415492492529329191557338835644526702161718786128374741107314748976999122338546701876066737804986130185349531756033889146728400768015860970523170835216669695825801802032102253049872927603690033868415329799094042724774689673553778258829914307427289184208273426431422929150934894601333373410525299491831712326845843576347465630070096281214121100254897190458288448758317249013091323530937316381222442211566845899266376886228921436326372671547970383299255033091822697329734080924758837828340146536428591984588110855826001383196376905064906255783980807971616602524251612370259262580741604511778867355192623186947675400883817067302177021334216469706018866102870984745430407024656403713050429175816548428819608469936143447059762268934529892066840673550147106741949392650181285236449505947535270454898364953456464676480173395263080047248351026371159025529803308165802330156022165104564341730489276393407539345769932835624949409299167944359754717437152376681632438548244079244574936904005472585752000637262474422416627414969823023401775573729998774204028812530926449301411764992274033886794055179796133134198126270548199564106849805436194791312577683265057221207587675658453770747882544666800248865618048589667084809876056988927614725532492829422558158518016513029658045745319226179154092472205059474806321813973123489082622775409978728172341433256571998053948313071048409272358711280498142671928633561883303218003363488370211176624349994094840281888379368933865152560931231130465955983417008000419426915058894216149640635807948423186468053495162007062947401428717877002640115249018041543605611604279194559511548824530385854146986925108993491361574495755671291693117442716855628619888141558734217984118120430833322571510601336534771202092608787029546473825170484851177374290483116032191699189210591109291037433727480330727991984051397911509296353924708539634587263220605463269133679007480376709385808462802981470450941269704351984497323037098684681981625098963380332756293282683164056685787323037181610798429480921512273246996577708091928917326660897171329953016941817888809387600354416801191711475936730700288119097119315431697169944128040623096428629034287304035071048705371523810033686915928749322490317016105541621649303160699173166509013723794065488756248334417022856343750037789880575532424570855172191324032295243470435631741051107461798313580145742450714741257568217216949895664768567671221136524228524851912366269632179304145528717836740646473206501372555643601604124420009940154425002375984882489686371223975758164325369216655217336080337004193804922565057459292067523759419909885180389762640694781635136017108650092291687623683488415968986919155017162064525368511774050915311942184512059609670527903868925224956254484954239461002408656210187144445958391100691758830416167151932352985284880389444776232083735402478381787990995816335878653540100421229747457143803521494036464278368832328227518056157716615243489747652308834514535700045948981927354522758256546754191503007102065094715738460999399854055778471875768315239735841703477371432609721264515297996482729045894928914141470759932016606078438531510534858627780218302301340671518609118547991500943673745409472425869276827510318157952075653305933122641057656796492656674965008660110864129782090304388887951628438127779995977842370301050634625507319422022421677371831707525991720977297293978571003934190019025698059147745664131211276329377049854000614839156585538739694889724092292261047023153220567928622333059216423317498998756134170435731825400370880735821456855809321770548853915827756666692246166892278592663333920889930470878661144696149971743208148222044556963702548308610759838107065326550017091973474165141167242228597943736676713410907846002665568101780681456721051043187029242056280647918452383691564148059603615134748661987763919712209044470475889709557267713614706796785564289501475382668925739163413499398556364245280378420107072860328799498397057541999255509431172366458105208407903654430238266022114845076440735539145859088466997996599798026324205109421782374184434562875517450449080224860479592466904591585896571256167799581576973241947624865798113302784192451374014165399355670217765976600464524401998949586917417362326375694748296093335629486637423202353198335131958751360358537155961759870234924634410876420474404912452782541294136496536813896604849061503032704732790024787631281327798523993363734019466651395280178520637571060840361993607209832273110016022005894360634787615218537288808138420074220654433330190550555905847456290108705894689000634875867485120081043271252443276830517011449281119607798294582343736106885341964646520496997864355757482630820743683787592435631670568369095456880307044792071991196901250988330706701668685216372387144854361562083199481462098393696427271001844020990116862565664977107958013493708997611935540767744659044441847075884325590839576885514780584177547061211716694034422305251867667974390607044319077614703211565785627440644852897981425226746023263402257476767551598157643563658206055181766945088291207953427782661515850735978698226707004067684039224007936871079488728910840045841198912473351425407408843874525499004006464619042288889135344401377745845176603592593495211787828469404614769392626198280971543424949321406097434991234267396017727556328755114601356415968582500336841486611006313441955361204398797842023346209575442553662468000813476373060567239766391790463673469037040667049685869179418624250415124929887355415326879637583343186420827652305207038436819912931008776113264246847087944564477470746980811075971584581495842670661637209446082854075701213375080136690634040417869893405789471874831386602383987345321647051603093173603611265765882419517025156497631106832617428309488997153940523626014827310346991931695187329142204083142904493753984100095424428039325603256093619199970163321050190481897806930403050265945406783373726147330735128098177794668343984588165060716079819319788511855955732994667660004594370235426851431203857424240402657802702790827077710302482111132180071418668944028227108641052413545894793728686584673880061058343827713337827495715260790411630684924931890569421150104518676925951111824496659617728289036382090590938103303764619080229945567135170615133274389660943476824494050779377420865105036613622712985808641775798432715045968709837896257689244665763300878101781571742912987393556294362081212205727068036940147872883359683255983232263071589030752056621254738790101259141857556816431415960988397279259629194942354936758183693551299499711962483890876907551041410083068589684190362691017983681375339428628759349664162238962915695887311967946866217960158866811282511306117016699519954644198602369345291203083756742641245118415147306493011595078001476236130074827594730699252309267514751472078358665474498760605467575171639505607122738360221266993465288153401749622310998432088912323207184161404899136714487242368799055124508579246797705564850701717248480761886111187589372936691287838529380583423567032677395576520410399642731327989238750483283463405527166286355936883480496037789940751073588858852927642144899708622610173965884247710351404127493970858071811111691777404962203071706605716510010503688159755505396477948233730113097969347241532691191438124876728865740718300269713422209304004537340389767853035746251813874313802586428140030250736990940636862946608227767960416946661267332160279698458102716031005008797158352743691607920611047223850723823927498870365817039578175065566375419837069186415981457280228200390087193046877319491187467581502168006864749528801105036003361804293408143524026911005509341822619503312816535512880149715385439908525108396691936930376122386113978945328079664260481890955058397232780677688759053398967591340185299713480509063355139680905404132287511214722069799959006169755477013639044573173429239739615259955169745001689176459915662714119340629335863459033990978306913348662163845456280780675660338067886413121519316511238514746206179076153568255481194852928639620173323490697336577920457278259392065227116210093702823101146650971276700976637631550547876606378071123987664030629465169831535140771019197545991751759445149392272618735238580241624220663453940045728127568290543919955960855998605677616262892986679832483994408111481520916933683199817344232190263660731252967111178466655079765325986477081988761174713442773675379239077650713094246284032685489337520011273602614361515824382033645569992599529072240284119539455901820081692991377904094920640568493782193352534112449135723047959118677082951897885996318683473777579642977561882651429803212609015199594670431261198134046734893523215658514405793461472332118151570673977465460176171621307009413432679796486805271753996088501706382240520236930100543857712174068386605418906092734487315374297218131081503583355405284463018351604391456073501953525333539573079055102418840681299047628900399598158972506735351475316845795822935709718395032682815133960770617243773089282127320542763385588027983572300494765843661690319504303126892073572400056387010409703412331854029742059970417764368138033297684834961533876706637326174458194231550433579955208445264475192571492720033459340322635304718754461473946793755054877242223919096057025458088939196891532291070849625717575234476871268771321750610337645986472172540175910248070828952244655504657712677949648776352638859364474893347103106428470566705866727834637736488295805930841771562708937573171625740800462234222439748787447794832868820120674779873327828285287508312939656113526026383007344470128071306420948776509619945179240828359239236043374802651193129949450814766324842246217232591360195987600415084037140071114910353717907396483838108974404453909656703591463833033687892151695791234747536929402584539658390186312475081247100730858169129633157918033114584309398422014912440563311173113209721813328192159445481601501304429802858182012203514003860762214565716786920597031978530981082503810780341649435715826297142024815129219587659643089186525331231331760819083720783639619554255675654703155775201306369808398780003255944876785278902207682411948063367896044886135349069605936366272895017618314906609230818475459256050053206770886133859332505188621126368110127958540179010172782136111056295060408661612244029850405419389343038455220465203805429249192135994081766031895193575746929923724624499375664186306775348788589704362000915682659474983784036229701700062310461294472694203850908993342260623415114021046537370440374424951052098636434977728444860067980117897441151037621766527339640051464381536494908411543866128015079543331708397057025580004220000114925776558289774373962486595037001616401663610977726671304253345803273967153002102074216588218850995118507243468304818547787423419154093697256193770505363962780640830339180306447263447016723979167607289508394252892000309657536249648695719114661865450620543333288713364992807511279601092615929382837733588178120578313849135074929352130944928907070863263515653625395172209210380117851082031295062994244020886803421687376354057652778348525481786463683008726259826079685867359851445639716435595088548307318750073837901818233538759810662528585134026534016551304928198505849459971930026404237464627305718416287997130509237155619879030419323583073823546053809764752789012435010376219952181320274852706849916264705588134550325931108718615610995350594146101849466398307646157560954213753598886273855167387320361532983729865288721517857253864817796867563424448191332521584904915405928050253482630528406619298730042236846633371041936227672350174242184271853588452583951091626507939741236898354999856166869994145477891537252516620063208063655101581441618042322459497619885787596945023536549256808357062461762994526401785554637918150855874702946530867691945521943353532287315882686776272494776854025513389425028252715634548660421575563327189873586926952943813507660248806739864852659457965564508376792187722991198991401790679068434240901834388701458868970923056219978995521919446451323736167007210722079683589785761813887498380712411798899840013358260201625315462136698572415601168264297503422730085302102253299134362845977618596530115030782251310315899003075261452576717986453352714280942027888417332703063257828451112329005432254861639339418608290077345268478317297730012010098511716737522967496036156947599826743433283881998561902239431043623864317422374236940838757901649229133818537028128793955070107428214486925693998159725806844960319748003621296255166147857883231339026882884188829312274237560473958611083151202451389127824661315123673476526830127905616668064025055246375734323199500927278815432276414595240392939561716371866276435033086977604592951836069348601755598452135258328841066957689119068505101296980876739595734992873481116066085562014283775314098800873113408716077642252573780904278576575909394953200413088934807622753229379157694166741392062889602708755090498953357501597532931731658456505184129001191460209459574432850358109511724510526475828375883612987287535673204458141687126651746172523970522587024374321238691303495874760919911243054809947658545683923256442342046864415703577529122274831010217095617702609487784934064151790170352541885971822227249897226397501189565601488107394572304306275186710325239092054959791525539105529958014620580592207767017711181766389682676392961548114555296537614384808553217265531579436594537112365730836815533940326714961032463331875216051123091104088906344899260314744441884680351709927007699624706571027663928830252963613691007307061216787133875033654097647785322924105329504193392832340660006379251391189671739703246589675278135559859269234633817449181050714045535663245916130968104695048822840716296935253223227306293636076623233942509240860129457441179445184052360878627328945269231451327526864183495789366841092981972622013745391674137654183070839218467947924428637342583373280472974382592861487307455579248182304900062225456227434848274659966339299615811570820682215349507029488189073220742275726833213662568487712100350091185952013775791467992545216644155609663321602935421140628916513286378621517343982482909531620108520505442263701101073220940556435979970299235791549959393131261723281353261624302777578887573064118456720652394212908769439063835412675766431254400063006344558164616356116721637737844726177265125304345744691178377619911065872630920817115183101099163736461988192663366818924516560447108725913646574428090273212595662338033280038177532977066935428685462920301307969502720909897569069246170915567499303048226661728285882074027109379678861722872699024676060512384668419441191376057793642347729233777690239182696858723672158630558475773213801952982354878272204428508246508000533475308377961077511377150414133475915552192383958423436598699252733281259958007706956019248474886428785802733212999333520773082620219992360545996168217129810862063617233733592865414373292603012488035956219888751773859080749631103969399873100506377173082017488210671384969783575559386957401502727063738817909836365282664677427487169343730558818120943776580786613055854366521164215692018906072222777397675331106596727995118455859961528111184365383931223588408974510588916277081307452537108892636293369723358131589648423183789416900168355967211534245019693162408060712213085773159100038075329238094675779009252801521657131047774604921564994906683921891052624027562153477149156050677938150175218727893785798895380328887814470906357194959058801324973521824713055049105698607699062332553378713037897644330767490246205855161237024244787704985673067142840713998276988280078274780860682021304619576930591825713418525055696002172069074583141729386573868494070776178409887553738674041938435073367519178550663383600565890564579131086843797277371232302209120343975872920425038389490904839604077895124384099771957171153749627292439597990850038562746519376597957417530197960728031854282389824929426335388081769739245613542634527652198931967159666040206838148208215970278475951871744772188738396227361201899783869703111015570422354163198807175930035442779365382926522829995029153228015151627103940395917639570384072252831047014571667858444529195399168529823294583557908347535105223018998914291005173513813738264133840311303609842213022325404086406950176200476111794009158267961120081806561562369198185368524654215282594246229108689466703605043049326741144017337303291225763236955437710356618466536570179513116999018158932295701433918814515082362082459243163837818292263052848625158645081586013911892258566836748103370732419134371870103975260219857355554941715076225104523895645585141565262533874762155390382452930997563724887254657050106809201967598361451799817846650535980175854496300917905646925007713792243750053263086945858092873799785084256474669373457358601194068585364247936699010955470437555865729507588426750651785215320544385870078607340140212181998967039709915330532530921444241416577486557258502066616092859784227850851719391434925043885182610955938264514505438882974866523772633639745468795875459334325555400172970183799534651422611651962500763915341055163560811648478368955208325521896438112405991157822608924603065671082776874928082788643258100856965629597069040970303513275040298365177514823458033796074183892661066346736469291795916156190818167328476032608724744787439397858898467718806270740983697159601496208219153641934911486974588892392715714232730597928152868022622377158562551220646577466317451705257369076672373846153857941861865323202109354181254563250069142346515355503539385301082439448356226108669179009146098080175648101320632331701870976884226231403602940396528198910739183842783839911612714082291982986405227912465548831670901428793943395290882336811490435646837875554455267040838470920425080175256361063011135775570353597196550726886647581099942970024528113115681944404770454877462235568659333538698534261889999465308060997299097797159492687222489176589166279422813343898019961150645817090165285909606885921422509316571057185972858362309321862485003569206448370817081409696286489412854025164081340418161360569716385777566357432451339114801466523494883064049947469166927437084867678246585765904633864455811418992055108916282245810379683519806373008022258230222280855485345714004557494120931585060013332557094072684201711184920890363198906818580842508780059857351294525870146194941648804436595659567266962693580899358832978052197763563581110282720157705717617167016221431561066611091122860968966935757796858277212586135129906645225011831157493832145914559099618152847738570128997054668025240091988559460084484226340531063268046669564545141583604254407089843758465990790130571894448552238531005864069736350595310663594946708699536451484086907085792790858557393734093365282445688317451388001141757729187317557902690558955725827410918436766122036509967882690370359392887286906709526297293267386995374493881019542658263797918821703774244846628577660631685660842015244879576681116536303144134006939754324622488982456842843184185554140424158214774194337023211123057752662869131649392156216335055354377837493799356560179639437459405976585791570228349254171481553336331800218135642572873709993445646062648060561053958044700734660142563523153890312424764945751313015987770555525193859153293119530659623162521116935930845759116185282255300382539961869542019702235291471756258306835628119315263653748352933408289450107161197150609119143414479329301903303563788358880003970220230970371491174608626291587433586620218280521047676483855626506891416350455415715865820741865453375025825869989385396365711546707924971413181148643046678307931407547377629715619107978758410538283698558963026576304297867331224873478191810786673008497854706872836802316438938017525392265616035187889370897425034577576247848518884917449179140340273518099900856943294826251065857149405262794908965396979809070116459800866143455531060344563683920944568361959121400872732791045275983926699038333895168891385559773814059882112921651873159611497884990650993837587013425350764251957278583578927955865741869287697035621905432077180178216980587806376888389863704286464248044856983900841703739337641387130515933624101418014213661044974958615402414282233088647658784575949062647581342625374442364665099796309030251984410365046481501316591112260768269592200902865195785548003829816742068963229497239351277577006182583187190538865458943395584228265283345073622905011041719879541729374462869813564887024322068620924972837380032548935049986701165152077809132666093583364431140857476245206816594949273392882980667747924753236161804693756820831878270577657380290039216887769576400404262180207029659151964890540079644598110952009298754372568861654883279917574846028426537820790376616639737712754196716113842633785940548150732236964262941938729443200436362770085604924409435464334097899881889751245182025251638083646225555039727005745794065417306095997213175026247798111603180552859280743075053683122791606700152426667656882647433431247351325859095278527583116206098601050507710326292546957699853554917206887438200116736730891351237819477294626702566050791048311484636217723893573947244286819148795248866349533757124199693373092869172847395172912991259743951414500195674694457387409245389162145352494635776790207989486405905327994824570079834976245293779311932037175291237025580315437054295414252634034794259132541937348403134640578139929956596572667861888598559469995492264005937961448045857740380206713958553200089984248272148623353722471261596926031438168084671581845957790782976374243388348932923069548229894989678158403433271801405109047283274660175776770199998657855574718364924508775991130785791649681311277507606181589955110987052619596638442586717433475082349348980915398376583097069258487117910691926231394525196727086350382376163567697573263700295072145876912807189951292548722814985274639668475826805526297628541343039449443306638012644997177322132400369268204063938788534725845338959900832631844453823792382355564502456156957526990232686156610823464323051975868788908160893241058896780573761229839509571193522116615941197139359685939687202784479707289254268365538656336749362282178362341685947378502075769288845584722114805375297378527835751620817353102569512029803312181385688271697546642672662201030461036140445848620422479616120032888192455460259829819038718099199443648166656361942393481914890445717563322678554294206871958017733220817056469413932025110979592250304699864589554529610126541038570490928068243126785718890202794954619959349360230274307191314383946398004480292411586283289252150349476269550873094635207135131654052101439104693710725446375896728875586028817457170350303230260001522237679943725321314944572149447730628446016102882471168507766625862228626243521898222993491448550315516553716403298459152918987371214487336107312482582173612798280681366049523796954153483436313250627968436436374358417540083871446223298582421283394470166441624819957697739053230772005266182942779315703328571917836025437187203805993124560854666508512857230536023504809443168484893914472282487934364011741593296840850405514302775808064867643052198637278644159885611938021673563025513283175379390914905252948191631045749444638195142974041112110458539167881539847054569152285113287323086911867773802562219975459166801773711893782814413501298181078700220144341645367595063082427459397383856638969451715958789977699107659931736991818317026924429003101804354012136281622051566439375245158510397736058858373770141800813004048809501845776758805869250327797887937393870915305866278519304191429307779610750886328378676339325040582965246824461331855097281786780528579104973992517343340689423359570117185523592783580247098568192407116938099194414233781894181222730894785360865662957941698667268843917384467787908043059731253159357611677554595972985039092272550870273409469838256621084885476870871902794421954725454255421183074397331734559470166825988712592855788599124960404580153177403460312393990543050379967985959215373398631001174741575992438115049260584594482695552877634033395275019208323552182688376326757577804397545132273785081135274228921910605858987769315934930474753516750023032311108751089334064668519990568474544095862944696946777677873867998181250897312552374622739115394461669901480677087311299599226736723225033173654442600786943723799383167569907433609849416251579884890821383042026346783456114869948788201615822735470075816348981167843237103955560793104316588687830250264573024380120365001775425996384085117944602196263649955949422811104950406591848489819571191451607294180014477300602194643121289981761318427178507661506478039741211949560198184142579644129547701119080140631577689819108374331075586100838153215856247565109494613568449469101445566696388795819137567443754588151610475561400732043032520510766562481081722422459779335847131713854234776785047003696127657135904088051197731676680124688054949585915781700536380540331385898912474042137373021995146745516896628405685435413696692935492249568905544534484518590994640270217858931525264883387896444562706499133873320930544596241657326586993641801742479228706886797839344840786110460118617131452568225764762578984310050988689351709357027534169282242314425333599505703166181794908039567870168682257736219656008105511808153170261270285998552059849220519290713209711315128254846162608156230956168220737374840403431430842049196493508392004616111182436582150137872843799113899387766689507371750456286592775201573792981520057286192799634172617815006117265059892895112522931397298000585691870280732686231012859974453614915699294231528922154980103493093487048253459505792327526391318003715689435777038203757317166980129952197654523291598019927009662389477709789375150777235624369465077739049052796648186323940302220985931248141280511536142107994477814920464077836481526648851013526393103256863495755021540147157848668363867470375671012816702931587357889161821703394668228702981829024054461805299005583710354703520087729754476328795901612662424377332289734628637384772457743637865144507650505380149071163204144244262364545671852735696397988692298018585486837608593766378608016094877183142219617105714185317849644208285788328588058443197084309444385456967879471597500360805966459090814683119064247001262190303483361463995589965293576579056136029046840272850834504319053976305372399343386389400213700278165661319260802256202974415084795738919555628516699781856639362032021709287246534563114073168461347651287092561274392835788157005496355943825958470254171234707820800519240814682942790069320907330412430170395945885167458278845951663624973858410552387564527268066205588827053159396053089519681679853985872497760324294539713368606011529002324873189498361932557761669646152858908170238463200265730452497675791055155703986754351615980586177437826719820162202330749698610564984990678169047409920422651456348562008323272340564063574020136143360183143691779115306022768644229155179571922946158487222621421783030669406591305777442303137768115239341377684543261782243325177049277173219943747017987234971547115621578496450009491160769394050971420904174137852544740616556405007234804633948312079694697581195259096841233149042791287310130052492555798565795017286447036230533774638431842089173468748393718154447345286225405468597844089959499062502623985246083629320027098862026600736875075910940116105136969941525810041930222476168654439710383644096469233957155911653228152993206993358253346962793486094502559961890966773003975136316654568383587606641960560358249249647140249104332963304625787665036872375925922656998195591292098572998678888868263611395022173184760613465880112890602416917632777062897640425953887651698396198978800757495207993811542726465400959423765756765350081174083615339280914570317060241353343239769123434820298569400752107121904215680574907549376006106024860194759707206876397023338455190713558448294484909576120843607410095032129012668153181429127236840938971301250192050674991802124607229557838674575518018704509491302293511026223670621897947833331715214801527866093765977741915680402011940891617796532332505896013713127993749950710515592306849502547679949212384085987140900847158014902884551050927802277862261217412238858045483469821943756497253174292433897167486424920668131040219353145392748625974978999474837588890796420241894580705860782609083672661643659627803167258393475178291082276019830907713029015300427665967250938026474459954373371615460880149901567575367870327353857880845471156194482492541256232029270858864113254601992130512747733795354798407743860822510210467271405710350827443684800036008944012507415478752228888683025321185249373133375451591050097470818566093884496493729672366276713349323695455960106235476661784089196824727421285516092250216772132068430606969667902391308504884629174031764189860233633309017871815027372925883481106531938359141348210934685519544720616902663153387196252486761171802208463211892842215693955191916044958395261114493577656463722671141280058408350502744959903172116736965766464747321991715648958768683797556657054166102122183286220084085213566887305497556482316070608295949733575090166489496256955485193232849197441864304197161686858037658355230443982978227610985519229780260875696744364693583328724909442727612760742273620116462350949462713161817844534312383564955169455291838317963541230314887173545102405013673648157912499045923009930868885744043387120231366704196729905262115366978196688193714247690817897494127623512828585706353706606793618183172596409652589600394559180035755497003529873453191337169182414641803982188551528555106251476352737546276184449363352939702069563494823896956061846225678361307574012482497951523910532459122308031101612193455522171096446448945609908748423753986623721671862089198604955805912813041018583715982971521943693531818399995051004381896253255411287484781370527041608869913041870636269285738991957329815668364819671060773803133644909201357504364636221395454281429144254576844386109206037951973476099227053401264950318913984589846220125334170480750169934169953615103959709572690412133298154884852929674411226042626100920482095347711884620205929134923084889834462524442192683508978501666210605800840419344156162750609114528074998371310883158251414936915667751046760846465327209247709381200946961096229398722491651575680885048149598866206958378985947721361317198728364582098134939408976348301744782677816002353690872562386991150450452205181598054407891320073932776119875507578665112845502809570370612578461121681732370975781611463403785781558298585666700849305995926605865086363569810089891652371673623389550737489711236567286821631033616523133850059601505448960264990585094484556292821894622883201449283438340045468866149359232767568693085823002553665137174938855519569322482118836311130435956703348670408935888221414513044101591920661731165359859500465713742269407435160942671788010159503716418085356039749467242496022907785183380002249088718979147405493753862551739309967285327999975328437271693377249863962847366374407944831629095751601499518667358265848598355678212739660748736334156692046357867413755340240637845763455408945882594808573250482858861067572714292847139186999572502796232671514922682516763336032896246533683447963934632599816476120433494796437788235938365695100575700655926417077018265996384730424928214134861196656931894823287218802883137247567853918026512144129307646980784612505485911392069131080279762819301584309524644564700381604432716095443486177830755104361901424820682863282568303931945792829217891059984937683743632092102957092385543035653466234040447149336459404551179512453589895584920965393801608124681908116289461875546902795175179503697163070854256584950544617887868697260003355381624905379938118140778258095822636479579015238381438720353676716176188797012672450940332297214359591481641546025174172484616402735073649372833184167855041996887365002041106253849289915804097499504120555780951626855105990466332970421333340478882333446362588285332786880854170056834924018688590273933412152373529663344780328160556190139778900433356638967044692227175919215747351431083829571439551202367249094809395383849377845640204669788394642713443744813908678001412900705474355054772756519481482407024725372268606637993567907224779256526609633631911697758277790863699564714170880327667205728600644975646222197133879116310875159235373871943155826108815744652395518474311570055699238319261293748337723817223055095325107923710022651165888333236425071066709050512111655244454203612817714244587812417093729546351864126425131411680328888979305206099793955740155612908284086374443145836552382872488311439272721504440935215669632763444747468992415719753504311137859376272652590073369439085799755218904969269647700224161011188723818806583320312693952211311790432509418072351351588416930017326931807158982525655116475222422927408406678594881447456242043574359713078642135758511821627192488275700905251277924316064763599931165607650859724764453717483602077811203833988670720911787490347565191238546574284742292272178039187148744091496811132994676738897967750322159417649925631200615695751403421609793155084537141822075351600806635399260714023168928593916783220722213250406550328067419649251318038952238560838835216060496046397784952771429360616220585334213268602165541119377237026314274415813794800842942039254397488370030755515368250689146061959265740966096164891578924939703587543001734761931887389098036282161559583023468449616648254739382682587575612144520633309494039983715756839573447143674319469956497459107593754450187931349548411595060350463436793706360875820985901000508556869770690138757189937577917590430720873423356828515265821267746193283372668653187457328391875663523823561084927576109345300153362603930663503105193890770137933275077547215317996197120773769079849908015454422841638315795832298414036198141917722960641858024884395694727597681682430127028803509090595745879380584108353115544150510324522505890417611480671935593923841334395646049576787706998924470335872834963818507228473026754499781251391469470099449393509472623963890557861023978857002303980746226836224660571977749490208270188191848268089733747697960681712162434647739940903537605193370091143927305586946105928682752630378950094673102532288439434985056585750465764818717462704837674487119362188706897717592594880590381529205788056035237399316504376226022846808578609065447789789808532928643790169523167060998421700973826772006696077350601264341857774847983434691842807135911880980087061871941889220922082753152545882106835992333047482512287023733469693789954064712521132495064392605222975144299326851626818045867531217885222136999810841876166703898246629671370506411781888928896119962680560748014404254427684271358452111272944434390581087679358446276569503834490544150160777303864280825113104438342901568225770395968440883388028231379335460668551263812204608934894935116048408627909994206440920537527003211959333079854510400074428333630692137630821246992973983807962094126975749392178244047444563022104030678143639045292985087264814502924826810318665898807488124147713096861624375128953055761445283646831644460124608319805031714167663725000822898345042232634418124481561355047506440429884937828807569760734485003779420042662868407424562048396864905787701543791671934151580332242351558489045995254008577818955527835112383121494934216000004716053595758530171617218508293281439147516976193057151606592724990692901164505679385133241546865418182642902756459942915600004725290176894142924123361319113827944798632142089138243763635719880779614119072862458365967486053677088826127836384737992810950692809553342270290649943624284750667026297778838595740875965407169562748869369701878620111547354939666693907297307413751152035604700908528865934717475821466136850391214710414437739825168532922782804918063098593290454730040920014540710576982875318417272982555690505997386087024624643967398859639804382429804571584278859891550735151861636072465663166195779805271709151723632937152671604216709510845463220680490725203157130936411536048306180943350388936893805463373582709867699903466740588185713666855485514604705097179411017744175885901859659518522555437421260390768514609540093521216775444045478312237899646822463048727111082116651901402612969078433225250025801576784450936126356134072969515860825432045829645911894483118738010112406573269563969621641447920837568161057860544501200988387799907960893127568740075616622201177871529753952886388806157490376671095558061506773233925318702436924922733761061345635775905597498564463400654922970534511828512792636699810565153731466488475162003091668981743191760445938069123332661987126741114685414972948008261966924729150854205836119622116619821791834895460383071796949056568417728932965843280130868256566817014686262564388229919969725447676906465043139753691748730432156357776859949317762616091027833951699737932095293625797223066986887247576864113352543018835154189591349074791479480199259115552926427799569722979080284593005068970002495048584997165857264471221129113178916873164454180681872309099685627296953722517669540946951422876232513004677714413887974952947773103026189208285731421883756510415983127046897984529676866742885396966279593529172377926619498246474527039324937104550222271781432397664383107422611239356447274903346652591576795829711956327458158360848214847507765896921220744917361662438754003213501582398561716895266777580815979772831975235654444966551022175974954814448141114166377579925658691765655521981695892578321916347132852265983801303796216356323221206946460733182963491153250941635691028614434387365315533611724718806702943386417023425341662324223607602344844887363558474178045964559789450214279817956749649061084355477331258395110167501856603163187102813987616563589405949313882795657688306041966161741762393582421151827042297646600937051281055413872472135446961394773446623338346243081442803263396027552492764266546248629984938797881074861544779877436321632165463781038162425716297893772065903419065838579715332020317743356913039481459185865022475006886736550194174612310703547003751402748037331982278361016466786345531493877458287608284216252339894762329070611920037722812472476250898863934399343485026357365949756966390426678220180758883131885276909118563642979253509332047508261930705589892295724959739956370453474129239457027163165101525759364478848173609742654033343295647414315931839063198558918715082658860814884075511759426821816278720124762953005722037464842416530859537440141105137567132632522874959763238221460390275761437364153254033895292482456461098123876526407156397804580131705299998110304753230368628551564436476532053325200094558539743313606443147164486122285147623010465684346746901588329548019936006968073764995155803763839214828376408988710570342057058692051305260684580536448221616790808821190305098572943136657511778964497711660380794988450925764819795234135544446134995911593552502383673327633472403218684703915979749345786528325637279286675904410458925384108861618785018302204088785031734912616387704197725660303445149904694696572683472385390449806775803945654163547475963598290600831125543258832538431311124809933515270318980995167133813533216288899193635532247739746734318754431225903478938421482129926200700494634381837681411989893002574047088062513921650642284549598800716576630795056656910022919379504387507819957737802001406395153858292789716479832261935388440826157580256114621695248211715350041746347317420258409567701103566737475160579305182785591528401190905036267757717241975921831786002392614255870602752722469859893140465475716174943967571594701553049487791000284581710523127669952227926997013909710401307883113244109711027791586709134954991749319345597269341662035257819607525305220538518165489993211009282018391090583225593860257300315933111398105780738005645980168215008584675927927028220433781625331522572053150775442141654252162721081967011184424185259929401393651895270412520203684102794013509280400002242949931698100482729850959175400615969382128833303481700748806021834097329593789880457784510453724933167346770275063680854908312732014420353369243197001961795248083520151968031237878788488487076506863499249500431890754856530553431774876687380289810629696221630568668691399409731702301203842503201424051558310247042342697525188862567916829112135567141215750539388492733138968546025291901412352574104647868744492472075250210591755699053366973513972056816436402997650157908674406856431039710163603868832336034782813338884290233617634819298592587230258648201608029934890775165934042274965338256657935370915138369136661231946565016781658917135997986134205281832356732494179298994490388400799946454209906416197479057150127249443821758575611380501351224292642716121211426639220825667649316509331555539992044601113706806968478033971342484912820801816427151127389239389275338178406382397490033051361311732471725496373022284360982503687224595525938964557419136155304529664454411322878539657018406579005306568228868228911262603917856637063090452994882321541297208207731970211427795662673575161759495950658493180549675676987680712645629699404166397666778050240178286192285393762141979273386278235357830332236459629295026493408552699800460497233774368096077519756060116159764101126265901391501869891934071796728186177991885599924948383623780892843425626731011298119657175307800474691134243390952338088921643724116913094247640623526393826933612170542335942421478366582779505921197411613897645372455745811930506943875896419995568654642428846542163431829252018173032541724109387770561597455783362182262984817899060266370360356255701860755078474771991052463958543256586390788881307500937105035746919937873394495168940061050159019473166467848003577078739920509548225996484624556064965017111459288310627565670801889273771342586763693287498167657481375241397821946638247212294887645897640476755385367406198682147077598291622639393703810539421441443754305082126692129686026851553030930776052814039161678148854737148363056868766104922617677916173614818373776714515727779492778768173725081526935709180281139308791560925050211978237345062653510443338250680374689021985382742300794057457278820432147923070838976139019954632983285844363489633611535544836334121714717624306798827257210810198617414655394537206679091486401334539498372515687908539192078601244334636020765693044234311392140276706521687069598876778234666814151843597029769558409349239394743526622902617675528903023691710749229397350588805353363690304075698601276642745942183218155001546867886026837251086905816658239052192212776718176347677949623822033168393392566181752019476662758581884037393036601676322607822488817367858641747037046184327156881149324693774343415026276615498690040220514923566760617260107297207748366266328120978554520296723947503489186388650623837884095016241931304787361967139606753084009956577502020465405749207243993552907586947810133826395731294469219756959520598686186014900529792054722703949373932702020479150963585201502670506214527699688736682128304035290519487900039018050136561399375232160408124920913411805667562964625612725292579496657501926152256220916078783157098712005010426010329949205687771405826095903269633448831918439320068645652139126724181779857938951782620267888058574248880672047387296505345620794311702882660617405097254380120783190873169539226993688176066161363056303316906586040501909609769539249246356775513139258605070862379946607012697544720161246622436068849540196319702444033938660176271159858967453574391068389218662873212820866738159668413294268624968427205108277751223612142083889498833647426425616884023404210758181574924285518526589045687964781488399298537956328217920108036201407489948406363734789284327606100577023614697537608189805401533891403952805777169624414714806769817015965296347389522553730005920532611417530400280954325354847871915313482433183965888223046771568398662559107751488658461357346686964390942001458376048433253490111400648827389627727500824006677757793239145338239138724171665960643740067801884563462535493958334611298500748040272776510562271933833096794272336961718265172653258777125774264022514186109177260104609313698740776809213689203277497119403132683913163937235017405587145638799282959913618157054109385077151984260742981946631952641696289512117691128877064918498832941351274961182503397408639924447093606170848347402158286252296654413837114991165810719654278750766257598291110262731024656473562240069433916693165714046241098137774106406565598026630940191448957939369004178817421666474318995372816479768800170375875160150428170097690737848571353022407877211238203262907450728667565298086617086603790399131513798284438161123007018023847511446769461077456398347512210440722371997833470360724090756068432137604727628442811295285922912185483299564419804448895576957499140141994112655648898984190128985969178084527707349896524176180867936188896813262592363215780522715314154015577402367610446756516490307225868372192549537765714894636532150155571685234361810883211351598536578639178543019149621042057253390581376288619745943271691060536092832885531692467889578770024015819825710928776875424456119174011136698337724244182139515883789578697945485937306306969854369413948539659308448293762984214818900040126132651585284311193088776217095552295399486619260930779473983994449535752331521683300007313365213360763426035911531849362724971253036917689985788918008517799011698675336537811526793705994122605055657622139417530939559211621088779107444636921049688680456102196850843416340632668919439344795665964317932217471613826423578625500143327722038971860302270620780036804839489065776946362697232011022922212237970990032393433417935540733056652704451572409191913263583946015680386896134280036149643967201983309761278722778772667063145865315546543092692691830167640405327929874810916642663673215424782354213685671061140868394114865979220572013888208964773482532566979260279217967100915436873569817346444811223971378109178396762419972119469513196673877312735816925936723125204506837155824712845448339258531838087106478667059549246154505325631064333509062856113677858762618491099869735878572525084797828045397242406201478067298405673898973066449040455562577308985423004434800746148734314620865063378788013260214516636224145236454250999252981222201284177509125639945652989279230564983151654112782402636343083295284040855332114703290479194708980955873857056654862433038385401933289519760054931184035020318836287541791105659023141302435766247861795491740277682910129980628910744742628965667995049012898899661017632082696059401152644751916926027355420252588091561865621242605844196711478031201036312381742268231173023654204115692373351407368454225487307472379868925696234198303358454636706604118339252814176696136429327662737867434926129155829188806175953559975992553141848211325760691933029598555468407313457490617826208328916581475171605013614638069122937717955360469594619733393859214794568006081572913999603851256528695643771928815224726710286822537858155027141296397910759131407358413778973463300028105936173271761575763408319900953423020547720313940984568930571414685338364072107992622991436523443859011744952611878556891214285987153717346379167336471100948536045607079797623388889061986746104356063209812210221285397307128915796291155493756079487462553040029704602098965737647028862115471878818035267155886292254229883016521206547813358109787149622570424761737992521707521751529410337550908490259820076417451768092902643677055509148349114670904740824526999288434921271504793150518757754698259888279774207743269528680791928306349322584112182062798492694501477208400255447795140965620830281194545862114452249216616942668379169222795806774616473960971086100745795500578718039717872876229524512944115420767487313959034750533265198386374428812445194802089243165029859346329107370499843430983848561949887525548695051555885375898119810463694194728682310306684010089834390732819812460775510665716315971331753097405700657239925665519829796933801509682696485781622951817039282622498282926724584318869325482847048335166213668913502623248361904315594086124985412006753965872183803918573151792164949129120919008112112501218904070265056934381926850501090535581463860382824098705475815257961068734178954076056809474986672426742062651730343335242160051242130436983123144090435674785365262721489689057074968083585126493071974345993834951371836813645572051463917067097237487835173489234411401948476664058087717075169843282376704560583505765409807951798622362911595822646361203611884103483932615514358927586569733299240207646333117701082690575516871809019509104342186935179127622927423231918182883457546756844385082184165368206186942732913147322906628325817931531443090009547794690378760421210817130464674348356776589839413806502067842557760006081927203661756698518662147402801384632851830036688910502405194313248966552821045966420826788102050862473525025326784446723746455826918163612398057822915463145109747627467691473472858543953444833899738646325499067143922484367618880323901665635940805770945606513340519242501300421778189206538596442572910765518986939137227378721813375125700501146673902940067303067416892628964428323209749004390917863752262085641982363835502264060256895597047659355061750227201026712068630899323191262193339147352262023499912431575230922630210058604895593799283682682885125189380116697277588123991133877368656802723553277688798025622975555830883106031999131909620106188876558325539787690446636696699648605167634109802422734427678523202141573970425311838536180681941738212526710343742385472462177020420818159047508141684052721806133631357223600628194290897093448479700840221977809841872659055075546005254015999337827538026711666496596934248281696106624385412321445359370344498948219859858374006352646105692181598432255722591089901975137205105541673530760121566880323906980424742006313330780659270170234224797321103501582269140051003334133435584387819822347609285404709098345562658046355035408242619007165636382744173913485659856990816563200000291041924258140882207170094419645900962069348745109543044698020362600634427940946885685006772684407657140825500685191890433969139169976076051243305939507041117182390535497798336781879471172704573816969285693451281699736340362720634945017638443777986305090245021508490686439116781817992491499334360018007716462544906228964811374840434968068238351936608342381612196186193986581908529639007799293859931773776478762405591407131656367850202802402372383029493003661121852745681141255103533516538111808175422845876511637790721920934694038461582914192703898271592838026756760392199442703180200443664574282346881436265023776108119630712992280671938091371530962009632279764861505318093237293709516011852608371299787136397937731678766765614381621697374874123686123261560830923680181103861958417597349055257353524135672228850633760215987979243200624789191720626313924358454798133031546418468648096754073900412722363914938304984355674531097886804738187005220190688647026008879698256158155960786727453029436528946217580897138003057891660987143329234116418920103640253054465766986614296311732459226477256244797487972154139684986196487503938323149135811869967464528007624888683722510150471972570906914917819000746280094850225457445751086251872523551639242994591069348688241942335793268465813216844803718880801382144047357900755298366678426895507469798758488725519113128644987677478276861310463284506060571962194819222199999518946188810205069362274249943897762573084593949685875141771834577908131607457251108101821502518336155570237485739886851653545461757781674211781371360915155764915454322517302609541457558607691294832302509891823873076831637172109979599028223665993153753115072744255443286677149209185873781648808665129949971804154136348179323359026762100536530940042389530577558238131710247852500966576199899079311784901848105079447831517162805718751417731809328743231988253512511142024914490815795798475324373802134598808232544220619894074165471861851054163468984274093159706638639091294771179969161761407058786694013631438567631412132734247523718830386397763904782395065199664870554779635098508190690692218715670662424690408915103900903301279026017966627199657027875824786980041383201505049970155641076949767635327930472149252821829405949771243894500461414803901385248831221425709561713948271538607929154916777709055286394537355518998762400851079232587645894015745870007935351349538518679943049250054399806384661250085374463810303053486518435773368936482879626351150079851292425074766605889714818447700295353105792237572979220088210257646777551730700816426811937822932888641404951272127439932600494652897158939180367800533376011125742823985832166384595064321358194783184074853470346518832514778101427598295603790223088389303698359093670798168920870846684941914810464232525705307754941946821586836007732926541748730782557951135905804000098274979671766555063275678352815577125406435975739656202385778367706934893643480398415101867089522157928077073790503847007214435674549806524937918645891444193030110280649011379366825457059146689444125281771177417735901229225784792033401409800291441474178986809669018131195204111714484158023163915498544978882453589514349870253610291135657709307456486312835665183067913921654224208673017792615525485714950236701478130322927619140075073437363769691756032130080187967551812005608681737411939538402690548943084486752153532012092387617910734677247034093471312510735648555583991156920338738528580144581677032884920548092156579199054166068797773360400179588135433702658120135033631101639391279112864636056506178245135105034518012827612466235996116319534146996698610095245203345303430814747832350364731784172698779504465831818504618877358298047069593811059487808771749753146000452861617069706204285378067379824210294396020069911252404226983132639064483472467577082781364061098344704473944889520837396526689374409788739323774313256869018289539714048340414505874908507985664814979774806520044748281426668232452238877468488963348461077324772998943151837780381789692350467440817610846878622384412521534427401579952826625026735929740211701094425863121297826520252141011113580066672623886895649343076144691093385880300865209026534273127301532536800118383677982491418345618626121505026629276029835677590987307437845823381414594153067400592692909745817127832569561764714464814725219500135263587729870279566114344914859988795716584711149532175620212487962572977994907185219615991182969013656953046540617176832725024649655369617568006051450830625170755721787358194278068179151116565124546574109309912414142533916617606381476324331753189470271640751120100137438527795121229363416965222538839492422753228902241932876022216091417750202638391924785005463620006369603404956833562269889341208711144876456762848072397695802214377130859896986461307764245117700569363968835060491114659919073163678700363387653294456287217680926117598882446394438165209893079194206837802841685058810190001737746526092355014429077709548707021380320910051036064436347153120396863874990678718806278007261784278881389321799982697001236749324053481247551319782688841155313518081508048306243897427853725923229578750718002367316091555587500957735571559436469992926074866956169931085195567039498159640752541878402336363695393369825025350400934008128550570004744075012906462296410292136983827228033234921410485497822422678576567655845835932314881711586755283719205366739298150048472415642586492238213790685424373105215888512239997563926795729409984317483889012193121371098519621299852103070047758611291617907763493513179214239993788608176660387348224073991339753540817552085662671978673879704652595156647207150320879913779036741486003128421634266163497041181754042518793340377703296933687075027036366295482368487058166214811894217332566795514864039164138144745809791533529221923232371385093887034831763553995380828744128189756501058619481355717323810230017357260605173452645152792528828850879762149589045945565455120645641872751122431057309989085912873854491841173032347126048658800141009454704786851013303183211367214171150606313078436122128503810790766107472323335271132628412380555768738562407397067914619868949739511086884921734883175880248822473062893761110323476162773378218006431068417888434557890198252325504134050280492682232690377342218072564371832629579099664929754697809364835577538989524761997473989030693323251005340550415900768800491909460469103600672835663779044209938434996131352248904712751397546800125785322169529716310652255320435477867976180267656043937624785241470382919357157612475867539149901929788159545300601995533504477965246919115293754956033454509995466474823479028551696611243594658400643523218987740006714303650602562503198425212597781344919751949714227619017370086105519119699623616179967814729644019589721346510732617279246486362780520004121240763844810840185173963788690761280862667270020987951178042553347388546290089857341158441017476100428821555550758193518591497135624710874177609655200396131885898866774243179134045757131992756680073961645431935089580870689912248155857898532560089244225727628320890596592181779883045607798008490970570245911930725054740544627178373909273283895070160883012171042977953194788077302032085600449286085562100252410645313364113564149528381730533995439348417636517758670793283074303344471857688118119617447208624889133531496835675324471857832471564929520925772618103841483278476283667905390099162997017534895615705041238619728757377669619434460340167510239980403428969722651222891814390973945852784343904421147974811070924212892687360191734929094641700839808297763354717592193661969602963740296479800566465283123321494298256672280931394614540679664457032144622846124322781636170288903538822808245386913690075738960869459282254162728833102160054759922771619472727283741724297323747236036340038472220571341314181769006956194752240896909326977071554469630510047557524548571841189761726107391088976965856150183560744278186726970612853350439632539188615849433497740738873784928147651048213256781359099845942441634408711825376521188083951648787532618929627819390640055780131562740034859470979949220537619365907555448933316097883066235425823259398976120504756102951742082359075234689715128020854179286194521155814860190631492657297281477101234680594544834278894369684954067899706908339132653224182368485171243116771611625447722804863767373757225270773173379016386324051702340957109379442927699849499472629345488531654672851026139806548622939714696861555507708656180262896235988207852499485523329384092049310864522060332019748008643890220303856600418744653315514726555851794845845283535109970669179791036890203179714858018401962217658961907056768092045033206825838406716449516956716807523223776567655079237684767279166318070336005595298601252494999829654546972227031606397104819948040869031682126931562723418800960544260921356008261477606485841751481008473947967036092343498879499158423507993539357596270055214196807251783602751460987342161465848967441453414030289608873838658750368064093048302380475605222633001243572782823880739037692553991105267504690665257922087132242805198965950433612883718547914155788242136302237227692486612021511233791486802493528901569737901981674632529831547364506978386073539006045230250166968925580943199698660779351723049533924616162023955129451071909765229825188704827095251935292628032127162251847573793909677364665889839798864377220960413076144999291954175783141869887538163674837830168865228755201503588276645029050030967648236817997524991097361045704976400331754281242179885271505592027491169104149080990239494493292252771238033597086118015976325316703190001217180055557119916208349480699163452850712660298310615768177514845990094319720905901365730807751548842913407583785947855519428067879353139867870064254944058857740787991310387834532070180268912662767076601729287462353396981299079126204343356488663039787563876472303833141918546697214464732935006604572012803096445481982701019493061573120012306278243023404211065838534741214136851184636317712024276667425975773743205325322575698349691766965062329565211388832632990009678693638075958295630766041040219185812102850575501707071354128822609689913855670782986740292878401453778565607331463116458911602998087324926468174252778545611041605074113463289649901848096437113350414839083705187643892185655061284799682216285560752121767809284014332580478808289325526030616546901779968127076480109108720332828804096359279629686047565239041040351230394934101753604432951414525765630126363739970545822036227219278970973982006257187863392379647393661363139125935240693888767913301494338443245020692333350058197495191011152439561156400717081388030506970149019514913324011395001470861348669026336883956318248890077674748395712172401434831184467504602033249745362903689390685311460408116094721455926667594780105892769895717356053295364687143606955935224373461204569371984342607523814123944657041481790570518172663934652439107300539064042597987922401991563755174525929724935535594332317571341592149636778508805067079039872590403211397008535598948394094610082129138188500439395742561683855695938472252185944276479017226178596348059127498358144064836438508582836937055559307648389372651469729209670206478704485351178945620608454772775751767338253978779215846657231488177101152295005855632185838830854251493637048287956983174094879712482624699125252687620480653743193434478944186019892194178633336305058660281490595518057831724704059581053439227488644843860429289325752167256876518883217804644687077650235309842642520532452925326304196707366422911090507993714884556696613311877437722524753864704639203778803848753817072985000404387989938967565394933722123597271580468599201988213424117403409783881581962242273302124915280167769112067082188744237194652515162834604521369739269766341759099198976159410008149769645216163841492820455330238549376501386849918744407672264953679637610791157322694763569008771624558553761872452102422161648786803895477880968388554022825231647936968586693078363421587580200348619541137376433585923064608070284744273513510088558303902631698684776393353924996710154742418810182720012297008558028686248640128921078463984768036081983611396247736600734722595136173529768223074862128296575093343189707610672631717795564799812530024237502980774968272874152970128129865908477101394462481246365525845815308046135877931205125524789501372760961625311606233370590991026952883571811557298187698816752514328171707769798913636907587033103527110316857309208059256143705051524604472926196702282855524579495568946028153847355195474564270047229357301073606474032375665577482384427432429697359393063177331027918783386172496801463723555383163378520247913889478659725261940675254354465674893119589198179959349298519802895086038210357180523738780129083003770426381802998601010318259757058325757986619173338298439304318694100704787199895684164366476701286703206701051332214551116153088306416614421002354599888272837932929018581194421402671670537287122926279895975216584606281081936065246966933543157960782981751602828080256809312222672598057360775557670392627209596463979711281310073758989924155944312448117935348200198652779471213827497713761610545360598311170514146885408895728914505168903654959132548776629305439717215029350955004890459224095452569831304420436209980522311611742397628292587640652356900065129815449881963589990824869299806662469799488611580485199240762218912711712210790686931488277502496411309524206001502148331473694963211981293757821307693595018955326536567076793082270463968511716284445030802611696911448628753945560223809070693677666199880634998592323690475065849076992285187309813438890264104737807081530058773290882138011406094056639450837399425758381020509064032150078840894536933903982385528807158066485973333652968527058532687664663113295037132856100586470323452516036082023852584984862362853208318074111261578643657039093775147373714433208864323399983871287450737713718604184179442744316178757857479859032728159475005174687618121700522282477473272020966214532442623055924283812473300059494994704838625719826096597329612409732340269096543814487173702336516234675581121614073676423936643989172291273743178765509626006413522264272637392883231897612890334033013700130744323781695497315242996653076064891439413707158743733844724079828912281883868254852114721274618869862928109361785919116347758797413491814526478657929488832430214824656589561207657869436884635670250294000614409483104304449678859798715470275263458536347477022714310512801523437382062755224615103966810946256463761151898509448234015217331123772128097036533107327902685316015176765495116130391337114729131710623485270942827731781521409083883365566789342038792278488226516177421337543618660185707221305886881449431561735268167358872181404590118288780488854086611978768297559213458282499023417893955323054443843152670927091946841265771142777996004963881653999562882078302655073321846589300705406184479003687104009920606066621575123492448270477287725805487154941994648968069211468275900384385135816394449621320442461579506053607616934225459955675888970349394348426378662123335451487416469520377625302750417596036357236720650312149836748058366835358346851718164126948989106901816236303653860600310400368823192091782296527901384770434806700148073223310335386719616478298389627603817081910598988627231093491834781952451192574061197192503402538850463282534962468429733483991388528609307433020064688827029970499740038106947608988372997223777964470766140746524860214560860469938021581878491977618900239139030115525018913301362890450884388353658982743962927480731993404387644239052928967226956760795389190614416542652223989797386910566752650530945035832207911582999462620440470182539739278572220381952743676758855912292050478703431210244744861902419733124143379589772514565370144100861205607623860422455263169506606930977834415249266171564121556845724179761516293178980751176091913513871304589458010119504335873546999867161868780631638996640992793797593485121579635582953041519337794293387145713785169921919657774640110515644033979725748840511122362438725303854109318296397406074135826755927982761236770656630977008042373751566871189420801988550759842457388639746288717721663392339536535246840872327118515967202843491484316987945314158877033825011695817464679526164080680464408327155457626931281348860349941595508662499799620701352974587004521178394945588261015490091811661948493955997155009902211172821156529627008376007616406314543106511370924726948679807784708761355600133076473348003200500434287372569003710990291194874228682491231198561378699835718567790429300334640954297592792591181644454112888164611790323812523907184275721469302998839729546555509760144043225287911068555983501457143055171790267798562845948188044517407522803868228168760984215864237056437658231378927115888855508778413986650756305618621950953313332832671403271179024428253839597001539558653452653739416605339977030059900509787049122197901829965996037522718970928487700173648894627469183261349882537835055780014303299040784798926912542808867094368564117212864063698773964036506304702004536383113941308190225041171125693782887745618478843079779074770078718161615665132329338834780782441535399259449956168180603031349266590305138033937188819298888198725892750619097256590444432936355460707375721642909465370630869998818586006439983146283458652703493874254618465469995606678036114897278742585198015537647545371631706959570314509250827711782233088109563204857640003513333207690134676242269648693615065307496955035160253214983305537097008057666794334009342311394514618760475530245725448633058616282294816526577881310941046574294496745971661519316879054002965394585694102480621818469656799933477076254402087751901789659990812333400341390787389418161701639311686779243748392853281098327838998270364899291339652975528386268254750427945125073802257286266577254437346382006929490417600812578244153421939622326463784796529596243888583817394750867119465147907049847788968915341298424867912365034803593346604607837616493526462169103692800489581950044505398065969901574377860546507894678408721706148951612224173367617858917865225632091791141043090508172660596153839863079086887944138414863528902916594647522471952360389535254478901551094606812350693273429764991095393135636801708842513984412187035096942338548632149516566253175862482763141379410535622228439608189861002296773491914534570645581208466816902783450552515366132084380070197264913340513238656844698544845185379801054013475983998470709661301194779773204376785430334375918337643036495564899163605138121896097517774290691061727977340733463153455607855571154605582028223610871665446074629038314998088335011672166825412833181323068522720486482051298006467915615903443295911313681395422977855257101032671110668368280779574199673172998413690116617564664839386875129913660356737070779197176879855573866028273885944681661961565455031979137241807325579114686655253964752966304503478937906947810742267919486043659412493150280604659667221068315204588981387954262267160168285088788039777538690320151188351596482462997997192740965088622304659874345438351058730544439073366951710060202893207506770572437784325121226793440262947698292192297283714829375176110058067398511785670434974073184973014802913983556143776146300581244758379104865791773811090514590241336155524976783940741084998799934032564274538571211661036632192082328853622624566666921411893966718401474284819034025452933794969197116784839225506125708205266943289159964776907369024848141091562106616719488987553451120155433468312073321536617595664155482010803438481672387770366889178499926437573944458066591083452505617274886904401789459584301033478937970519710418016824057065812050286444534068411846486215395860685274457636626035187082034265558045079730464261132348783250646793270515929201921016812962211644425503236879209573557799088964107306896303985204969462714286939385781727793703674888335555648501954721893824929574123271884209983639587881871497320513606315638010648956468378283215460222769358481268303643350892056292233133673677651950250807665167046221863350759296263182748863592743503960536808860431002075186018337485337772033853473174738274304708726189973101878757850020271303337895723298312189741586565112109732997088305382162296542911712876942263251297778468022505350552814352221220602852561699199742759595296250698833998666427810394883850687800280320037645110996270712429533911539628848802758086738754200959485205287061916752170146294136310411174383752573074084327069479824374646983089979890329222458241105324449850103071898228904690888076084856743521589198171603845272640386866136128702917007316228288615156251972949767111680617698424902974939209046889274132164758314099291854056770318801348581922091734747653899489868433402534547084873664822534064956603536831558877666859089922872753305912988301084012363453334455847043692045947003372860251263805740272414272846003845121990537193077569731171508920926723038039600184386972720523432715001762416574365827896284858784310727044929638607976594380251930044555718542567000030964811385868914519261812324713938139346090288554517238271020527841768667794222247523412968381769135832588019235364084093204838703457785306484113530859044087203264933572550638616770531183175521619524007418385223880893259190175945985561644068042675187738592207158700694018150451296212729474340833931686471627082389985100486400600415150158753366219571683239687110776514821479414508948614843635036461224652409781310065226730332659162089290302151183126638171016580954875636187883694868166928934828888387151751265517692540423231030830863593908084984235733435219322669530991332948019469245908331998538546146517583021780093035855831460032570229596003689489510358465741872558329952885222985798849982088980003773128133694764856887036721155375762152658259509103770559379300914750461659038835411916029288721703669358820530379694918220124616644453389287126889532488638071955681661887860514242428350824774284519879889888592567454113446411541218703362043632332586664436589286569826274018944308204347887975343898240281268566500847026667767632327817792341981552566235261362145835689297497451227008754575664706841461126078333631827797260212934211405847092022145685139199412644693115448168479229634217628462766586071979005218731098048911287329036577004457050891279193047464878530800693906924527806209595743615418578864599184226622135866772582960499247841250874772167882276633536158861791316221026268179362807896253527071493345486240612919323080032342694872937661582472768971135153965524733706301362779406237480063101334096332103497395513036258682770917653283238364638449247811954569159491901446996563085075284064358618671526455798914769579509432330783655972083590367052052251116589731114127242053407487363375605049075451748689001955260899950031547051795591818699629387477539670081049168250900955421593941370268640354226135492687996856798526978092249717726192470834549530806442599802852393253296694206636977605594120106469049194394733143444218909706527661026927932499309583548521366135182252881955011445609532868672093958246050939279375420179789355631245094752083973567902393198093471384741736512435372142886602957206865897683948629829688834717994397398192268401673106555324116068253449350999030022197972969550698536616290605969711104383320167262448804171527400899202628566777294268357545440458815765864654915416606190120038816895864245520852543204362732814596020883859721342150688299085493911855688374033360289706073707962379108814905697079436573852705440786314483549229256146907854067470817295146414723343737700876779686642653000086563332655654125137049192571838020614237471840196956905736833676372589754094254761847439581429721580835583315360960098040730966493825789665756414767398285215926832343844149559462819110233523983872366175113518172745241931809647241446668005618833038038377172192674334622434660993993206198525468134168930181329910867976514297438847741537984380509425158839246983029923114143556664699299576306254406333644547454538058456195300412617306216119350107154183186716678193147496617378194693322325148960810663222591135254277261289651404292448771231336451082555639483281541422242373206389642742373626880257765380918159186065005370532014489516228662742413222381126250089998220317973385614977711973990183313675194032058408326995651226151100259091737406103250445952490700296977096935295277351688109671737149216567617490909074970849149386347970478599957428446247489823190724199153349707784500369255549970966996480802959466863704955659711710851778872939047481566983980071952038678294255276622024439165958018767122478235835150772449063860939150115136598936365734085932135720518989980660770435865415274962890312121318624322791487437250278663073546062393824387624990309258218939697396823638346000485687088381998729980250290801561807220704299120192484424593683217539981856621715531266602649645551643196392812040273842451366361040957736389867728260025935343180468073639924926136447073257403523777716432813598160252975312862908468667088499536827336514649278928197466880463358911351235552210509057572673039290443695335113987890434397786095836199757951005840159590474263403547102196561123772318389871617437466408684835814474326238459036981461263036019642794273374636935547676242613517972784314580502885148496924776965351149200966103805621825312837277644685633978534506946029124719091609625831972721020201429663142297647516703822384987611916057519504618937342099136177829676149434337848080653267480143225375478081791081133538256584766403055704940313535990764671982201507494638430708502487557543055256544079827717655265574310475839670217250471215030829332938536302492178095082433293751962551005780685594349569844128563385716441292691434638863921683687572046299982400029504637779757700920912902985253422479388123418966236821747011693933896288065544163152647026914254666674662001024179215604294758291222019851041284462926093537248820034619474655083126409196400717977986626446976784836155989364331758460307216271655502554499818003301980612885923579458837475860677959996333982975210318396958814059378470925167383334919216180077988376526893422916595087079688801307356424160984376668080735626839502255616298241415223251612511739463044237821913539956474994007602872165233995070512741152352145581162949831111469008758547216666820167457677503743364602267646073349092385708307282166535846293282738976887280081451885191298083028226824388242716348612408817992894607324346091208560443407811369507138668045589949012147198645883339830417466310701802494466615802613128390433598820876840326674016828430894310988602221668775546470491722995883254255086705168211309941918098442602030428313626232238110084059205354594170785049447398087755314401271794675204424692066321477108616738798805174131163462833398522178759585449626505994578108038008912452297533617168312537157209268812271165907614327885411264461873998195542416723476963072830175068566316978132407511355990637398669930103187551519643565305270414833539701565739211444972991859459945806721769383434695026151626110710853767571799966774334947542400985440344054992632047987742167402167934100120816299970116443319905251202573840411874438769652787757443740339647775343097434715097611420297951507546968328333516600784905529526074196653404144085701101763023822520526665978548346316729250096144920564023154907744325743546184249656116406849147316321251607473319186398292077676073436983505320496295583617322737394325921229754599272151235816048760543215614817045459344719470723579136178461251118097713010324911319256016820418086078698263298978428690053883329823688390842677095102973137914158994196358692761764554744630238892138269229946269954245915666375511367250705890868212514071865192021000090188561457221051905838068049509465861443562160321034670705197278013296294241742601465783793640376604511151662182775332358057879941016939840568878360256105030380025065062218298538491910596479888230753937352682449144556344508172510820283130697148399022023268033702179676240736550308839965521894445181410061946320069755283751205176617632191010439015230180050385369023910291314358481287398019655146067354659501739680957142030140870724790497072728912884556995583090170288058261305286265745499601849507703337502110306140797769893945796886501102258509510331103380450104100426311654612677132039940269880303819784111949831205191838012622343782837651970968354813103503945983661097897598461469283917089457466200369613660408519689812051390353026570659542389362804178103954869919500271686503920315188472641839606121524524930601108451151489217404544081453367074196335517040723157435720916588233164268311445611223801975224436981917405659089530554725554715605337669616835154711365142856338060653391221800767020278677159808191785166679744933953573881013671584171331985322080597812838521725076628253532008388051543292658653963871842409351776171759353700629342930130967273053101529536966876457011200600062467027933318426336188337562528624637859011637044125243038488811605437485010744163690029589370100408341030529313896174150067253700657799194428576061403894282470829693319854013138206666898270890625850588536295979775787845140782834895266120819618486063408742061076475855988631260662858652732894876072882730269836064123143873113332372065679288911100039099223946706360153821274326466680920854868511694234232828204304546453598208758006338298316683187885651309428695329146058387902796128414769962385668334972831413477309628303872191377746248442217682387119443802445404639091216982817041698136594225446599313415200628581551225215146500797715002011588453703028855813361302405105213244476908787318053990017057069454875496942954556177494639704719242884082844713556695655033714765166534471089562579013232594558539385744103406220514294837287816170230518971045274197869234941549251813092298482274735553874874200069964311872369997754921898116503556716724120547169521547129578979079920807407813543929333383190198476572701920276183313065471274073211647758107570052380099846150400692932262687087577211391295871816732880724522304171392814440650922051878805633762587344577755549005518449482400136223324504268177994717634250360797950976040102070652732386889001667430802559148031879511569564185379117929062794631031357100377401560780436073881237114262286319877725432405218164373721816126837795302061304446816890325557136755408541965240711917240890113919743492559175398734123767561695179000324082342897742228717113323396449337118743164923781196224468446527249022164668150616016599513689000148082500433050443810249105894873715088571010153260653477343697551681308145938193031170416790937223524907910127225083901411858292001701970859910505811747626528850336182881525803736264132813504907920078251299609040889825551620855311375666278703392325485404738269700119524121275197554778000787078593567569366062728634236955362265905750352208021639319126036599362410402429488187250830068500043531848387258398230975220774188736809327620096824601212401130278248868371551181832974570984730027000952941000255238863159982437538890351387878510105166930302888402386859197123645664149727296723822296306515222116963330221786896109093675442844720027196961082628728942039769026708597146054438612895468400010340240775772766289494551503193924387011234723828740882704089478121857186436441224031130979050993873947351609495586268094706594373464055444872595894004482314009967869142347566800389675193691882404641477677610034609175336932457530367480006716985133044674997428698173890415288294056071988515689210713295132833197084749924471728260862262747080212326454261427238690472470435581131312474346283579825437790158721601501115920815340587215907374405311277111932981138120600052342656832984546296468928290580494534684678741143610313876680777441751575488961904216440725121681390930057230843513018484736869241890496462773471843194364077382017779459714816306489759862640521935277648499803358387460993015508149457650427107792752283555391195199833435344739407641245961966338279073172891874630510896417226397640466175362675651165977054926993193332804610804055267562394417962853495479293405628825523466261466585304927470209828880726090799611151208346874940830206647618883800150050432682153092087180982559407911017486955529421063897281189871650419692929794005341294241716305986976471516594589427102685929436246615079397733649872520383805285079623607195134528866043363422068403123924874072476077949269851855410535143242141692765774672100327758511344361443576789244964024743649322442046313719393393321821965923694160170234004488139852378804056114888975472290563778091542039320019235846964625697479913793840337412718732072028804204066191987906182953845667393943446948121857825920670222692839980831697362373890757299555966826160951725540181253664377362146772684552254740521961822296908689059026627992742122471310165560456065547569598679062534275433564059579893780266924087530710509048782984108146237140357006854385115228254162076791742763451164245563476542894288372658196321931072932015002217860348392765360855032775763302553245501196354228702999952485597064311931745593291523554972255565712004457436829822666106882792988533842251787710588936100124951976303347868252932520032695568694903201400246560352102717168294901074442971386669752589803499916887145339686464150950655734299756139131369011386276765571231260279096663539516483201911710160844130400889465282215541722762719760713365760024435028239623820000493158805998304086054930827308506155268584335551780414493818710921165480179532555859420560970208052683140479449144209838114538728509290224480548433995579917471591394487174819372907262886168220263057096579494302686971959790047573674810141908456049482900453466693598494472133232522344677950458684333724726773459711880481768437827705446551228010956482640451670340138469385304255194024961018524886802586083058395864511141483695667568951675750823967403857337554516055649746761864713511469239891129799720271039080281303880846675082510912783707857347930383476204127270294508959895446019363997313537822526751568867792257421684385649402021690287910916346909656361081364755687214470139980523815227232820592778323505301979560355692208946103854322639067253168817918971583950719818410629218500272393478520054143021444452645483414731860481349343783676126877488046906222783122491221509838435858810743890572056929219102493964503708876320512619831836491094526485921015075046024928972165324521364626602445774193974928989000646995828251064706892825812333088383199946305984109598151013023039390263349291206106281250005751516925759153691252538411602371497984205282153860326782847890991696839160342571029318678225122522893086956958719135390773034556568694798668776156066145878202741292038809236893221549840297210702156400749874879908220877028782655718935615893595735300827419458234746819221808807818093118971160252206767876871596294817104825990922028200956575764247291806068931011477135871899267737432985461857144858470384094556673219467080294389257802414241989303995632314131143524315838112340264083990932523162051026590763767264896934758350117753308290506243473945347684824136392429353759188753211330817332091878231059384309861179231697897262107205156374918046427984732187175911631155646834548402560716848799821467577714544393531620672689449973798107052583426678000389014734992139029350124257352955485462413742683581745473573503466607594796048158092577316424143418231926857436753879648428143696664973125672471759810044155882460247823470114667873953425459616380804410495065445364367614571789673519699249519006113338606154412045649930424933974858635947700016859376465895784212090194932984447806889034598172570042194826995757848989889807619599923454401672568785973705634611233021617214984510527611348181882425686787917149095408099473874250618599192956285881543214301855528171058510174096166427630549580287415254308708257257614099164238416286579766389544441609147710645115250584858940801403021821702808713677548454490112885518552444050937250902592949064850337146068180463437441547424716921527229925364807359374869720051849821505186438528643423116421310082704249230231828121896812337847924443032847394142365054410914809583945763480620875245724453018073784471885775825872689077751035061047850684244009314721348205031267287622836508009577675568640141253776199977860057842382468231091127301519874886219631850437210778921802048934014068461910189038450189403367579771805082308459385840514176895904533827016293835523844764229838687018906054324632925519168369145414191384100722811271220590202092022388412863960034131101938401650036204512484743108314463136848695941838931639952741215732222023419505306469014613809789453279186975473182308613153381523630892748739671118588540202317887404831957730070050849862996158236131580637773780457601000595196367026837727092696817550379036756104754846223406420929337768030461461411828752606988603187669010799275523071460004059809948534527469020545998192650667451236886669364863202777385709882871657168637782558556544306423976639488794073169057989030966691708322437576842042127773231155642213559365477425785191518969282691029363256221476836503964781130667991697912824678995505075178733499182411696849974061461907499934769031304854411436755736603307508051125462208261255682144396107828729344231089692662327333523958126544779775932822516166737962019430874787318530998664605727286232095790779436678954062532012211623451973345138333500661065158592829102474466455970653736683375843143635692123951626001789152791253309931389442622657627900002401299345574533387130273945040740595791629761962644383310678786221257635006878026308748632247906443886205912429387618902520048045029283876341979504522391973945965896191477955754057172812742018974790276418860011279275661364882720392884335174072088521994864391764237757716576597041525546607032561941578590273016432762928596686751032073563369484305658901878733949159535054572973205068109521161422447469057185572076133436118575108442484293749954178392557872945969474260072066023459038622357991886582567645956524408504963129951304493988603402848620188369717558457155789265208151073846040961508961143526143067919478046148997788005665508314540804542461836319714973875227846516950268152544440429710133657232055602440899569531137940995918945404866827287029436026834943940004640576951392470547216732812625503494179075532647114934302180749516480196443399865345717972174796755939397084011992648544054016561896290020845557745368724378501926806765135865527065593458548043134023468133191932694347568501119251773852019089041947414852127509742492311993904116403887868244150886252554078659687851337659040697166165264692341409080452540090046987171859394891697693334325538438270208957260727628799563196078457114462720829135508241945286466979390067838038307912278990480521694087925022452857427378093747638377478538033528762482499712529234740707394749359985608868056861467279258062840296814616285889527205160100560053425211495422630231537220712955846108709585959667886531051009798777703515903604860767127986416353033226309071167356228958587564597771838154518417215955342725618189644490240853061134912952486952341957981071369653486859471599076758443421067687422544904626571799247104724448175525052996289033859488498181110643837185456088722009649187452162385107791218433952030572517537156077292797951315179439667886258870350294611097212996648378388002768241116522103036568479302622318978773919247740095666306653954873455441157509089181602907022204425554809670096269376022305469158514780510472995752716547726817749520835127795546094655409907879242421100139359580281783777093952116933645260782321768380956807898495129309871249940639979074203351549793292611931516189605333203536406049464425332282163272651576649922804612948154348858277739878328324103061313352371085092885955899259629834551645560309873330004709963660667790950202443481416787429798331576134754590557971525096487125364214292948383514285505079080775972034958864609664345299047421265131213446552510280586948186883184770183906480226370857798800802214675456922753412348930357766227592146197001622295376645726516667290692812336274317701261005155076131987642662161345397752203138723104910417502119986878619970544793868121798700591024553153659906424481732424557261405496012677657542688915107348753263400628057068607985193035968190993138743843714100154159520459010334284610269905496194209020774957170095508973477770851949563725165998449272221730597889530459840662127386738897185072600190303651922070022699865085746658382774735824336035427777082465947735766128728646862224863599536810545125944088112408090147434973269553722965629187538992119361392259120247194895936819800494290405949973964345606619536629913177711176898062469292152841818945965115428979821433945098068890665810858073702841205085782518861754833410300667304632558430985118004159378102312224628483446635747038126251491810592329944241377227862031364607303298354625050466511152939567970320040287093380221627670444832606113321195840814047285484562919940789587230373858597891569709915197523902519266297281426617267216338193887414057524259457670818066843001759769679724488036944751984969972049510196692356807526240371936852310352058129776404687389367374251812384845327018860878263976730721091971461638843607176283207488131124301705912264016345078741567995895640102937680676927880655977520693418379433744115456647995824270268334877662700518050199238081522769151869471284455679343363711292617796661037073749876538420838893642180225902165833203520576820830841557375338306693906255969528532186448886688121077920982045711906682226186416681312116454492275293576941670518752888101698639084905238818606594077488836139218223243379984588233656507733069453910915624432203940219969872320761128712201046673272684504885286176416895431209008590240649969114868331948625117080617781643735143834187151226996991705819649492211284656958998037242947653086077993244787528721331529371766090642578480497803889445109136061787393189587310595510463648332057543194558098474649195639437928040589389524114753821116493902461866184853476465593355243350771411709994882659758780622377603203353750422739373871946905959513367274019954114925070438665373610188215709666851071287629530198346895600045540849930009617206617614674702894095306199830731958113272754154060101157916641330409269991074470327734442971738036815232224171461966201833473441641221043671086217483385600952476317161574777450854408977779803829668083527686164160466394694058256547319506476430215635754494083129630264496272148871635406012188880203534895720479092667120064662441824373507134899719077967602996477532843237982233720336685176962797111834267726868203763247571105807678028973716512192513727182175240821807601676046184492555683758733259058520975434309287984673835155092813029215997036296457455030078252975034015001636421616997694140933084755488448570257632973743307049385349774168602070058510883800683716293966489834931623547651479805154304709192057697503150776520188099728412464751206715802926952409543721512086894721269678029078260123817760873382606093266617145871762772599572590955637827791641974193548584445581658762324903536023995445417269787714466605539341631935856501012091855504454845933573358783253714225593921773163446735100502093131842055230491775065593223803029697244398077911347256151144986502591589108359477145947661635796011078233462135959846951815296339570731898491582518158410159147664325637011942467735871577621058739546359023756336109130557587210241934555347293507178264767790233372908912285866498264978282718881327825719339683361371832930692544793401864801612047782069182431048080891792402978130945713483256561645158655364067294516430440093273677966448653287250245688698956730641568916137669571542099922780467658719935701445481590767082749647335886115613369218070698641750265239887881063031617116959074807541539849373733042792080695997117963961999291731655757458698781307100773872394181169402788060993305270994756866355330780244626198156699539594651159951621458292157307815909000377019384858784370240357625559234515388430300877358421104405257104282478087109767840566787884847689289415703876993741855755725650679635350689846395278440153268455580468666145892537725470032758090504922613729839725116167037611958379820307945171349429982381476909006847759189387845087230735185604882048815904519241562787047710793665701452728674986925061113628851584726698400435749863122264192601549008226097711395775989418224836404252946406847914519542136626138210418674875715666324608027855041676977268411765908682195287201258396816071683119590107340675022746228894721092265749422728760068243105738165449583651057398683564265041047008639826329615027839283693137239226017500475233752262981640052769202251445633199446048206847937257316144334452059990952699494530796933022563453119740988127430434717701040291819403233744814411585161898121650526423237845071460011548100134343827854334256658261904324878827901255554853617258098701138908612224930882996962642995905518974821697194517757128122650543718786114214172467666131717043659075360030728209320198059875500401438095536860661958672193693704236509826138119327090185265961384786135764024725031862318082669341163682492694866314773623330543970405043859146091559368984089836037178907294896044099814267115143157887748873702492997911804707876421316552629430230412463432674845459432850656096096682437141536816698502511606986002241428947043830303871801328474716821466446623287782758230971943996598318370954591105532483294274128904135333660371724469144960445960987268408653821675735588683077014454445281230184467391567349392122463948633374401916795243701333831690587425357392704305286204557157800360339951844217396176587168949951227023921296143426157750352984064111338155912856213299621145908949873683696047273494770676186480387179087535838690355517560002131813559954989332300360980133247234269250393588013214627097843012246833696541297696167111749911107833862059754225054477537464588879617006111365190337942947012143182983822636684321518113025954370163220328505014438897928447842936349090168985942507211503513738065821194592771135229056482742416392976669400009580093565466786605011011552983793909554840185795953724910720285559426664520325896465683974440554677800032001380221822412353534400244928481881436671298135252905434521321121293365876915453076912224125145961172126667027364065580133475183601915036191901506382340857839375367542336141549900381366024010514030112712067561716169712194953595752247154049442942588194113917581451625668911531984461875180916488887875142594725866734178567606075980099047434674511450546430113871679139011296419248315470376950398142677587792083673909705743234710473296269006779063539442113757358773595348979003226814713281136464472931600423714993460640590729916188347801840254070379389218214734846758406825737373548857123832512002395436665914142636523986073259222414928053395788552345817453322998209903575386621585756942394575130844105034088619374577741884066092011146859729015998318625293397494120394497667075411868275386035032461033140452049900744388420976827018360201474420171384455294277590992970767708416179766566991478461632812241274969360776086045060072808216978904131448658932513247635890228607212078073807127991103975386566122125321921265585869137781048565603366596669410688864671648985576241014230568186386643020702341191802489182856177608927534997077605295128523291607215993775616398744050314869165185966790248678506429480895605441050472203298351590558251091227932837115622073603918336982532062951631394082695942988903773756045124917926908523480159251402094542127035975503597824061812156679226629234818459609558567577902237932038759267582501555940765250226647140570994327074937581541030797993055474289412284111902038113871918784648497866220692617482467806443545644957035812353755711068375414256764696157633117720845722599535461021577853083569948769781659022950736249345768023083780040138699621933683399994912438508240460435599409137154868000924672998043731025275089637802111746083118027052743659772021596751412021892209016352583718074036901886682451527586510845631838917636376272027373425402354674432942906372132334017995567076353785381042515024762589509170681142025636455564660137622240636253994785313523872532260354368549135111861601133873736326364257373144708093528479189448394431431703052716302736611341120024307424621765352612265669459356702385058389241822248664609321673751953193400136664450031824029390164783821340633749168789285268642561731678769953753407659391175496665055287441519053526189880700297414876039128994562336310140161874660377394837543761145855165303321202602234860360128514160643834305210349866277242116468566688432247092610936629682263952221775637287521201741606047368073546080075041802664823387616588557429779183892390537137628972301211599427385905778272421608573008284295168795701416645157523315805182022136674384024781389384371453035275802722481926349013405389604667682852745897862097098250960317256514833885088035106622652694222115917800806850753119348779796624243835410990495148001740274113281412251963571941204721310823550657281172857251396529831086948435852436025982990281997132730955384281326684733463544763067913636250505713220819663999217283300256107466440110571143767903374548332058992439672312693821826792684644132301071875734952879487750383235473254046712056968796712791055323425444726686718001127176846450673448623833178005645383351542840333125249919194652857101829964665259577774372690753946404774788441146023972426738471739901459350126052931456060141137321756535333054230090845280558511579699861334329866528982322082920985158007048956173694995414581337465071648347206840411612453406063124824602277428038349681559877456125205208388741036186241558327591805749170031602412811332640180482732947144899520772362463109432806856283566664938476660624114583097132921089556154934991260003939933075196925847959084584349253697655205748723524467713563127730431504708820563517812648843383973318122073747681520904559244562637019423258003020046183288357198569596616924261509431042698869826742240966508213940326720256083843081709515461795929163273504516175303142976924031343983299373557716947748181692561407262505275420379261227893126542250434277980255728838174454465810412768688425094175596710208312746287334180156723713866579566860035000226315787318854970316734654342048138573409158628971229035802730717682312818174382067792298204144855730895532871887624674666038991840326489562118797587974535011406848717600964499172515673782665083600764456532525106142055120878258146404460669480570926584044468232944569121577435412417516466522923891545449887910641277074576452044490034224303944435214407934935656382475386481988529965202372827544019369884388607112070748479273723768654900249472732938090572124656429569515522139435724167533073192819673819694169120177831965290537592394503743121290431642411498798693910531953478644430053028465929873681755882382923822921527419473977048930965072108837224926515741393359512384470336995538579925289979892465751089918955960989804069419753821764034033279976649004063690068685683632077504643520371961125566528661318641446022572392350893492691448365441881979701649461009478494560046256092083920591976085880706971367635335213299751566032010486159908741594649941105249197458800520772188302335172796591631918810695482792910713138713868529920468799122444009431408214911794258126915781399974146020470504419674084422073476141701844722920930062366192079415588420456116076664042844161297091625538410677738403792772821759206416085140512656368410141486891027660690353031570859861854182894918531557659880342951363052031183519525951365553277606019068389655282846737562086656268621246090060189590397759843776630012427879105347856576441628547117455704952756222622135695878748772199994203850153711459227327726742195913047922438445472412146916556049211138755433575354268543513911596682423430905084867722557802283965549729916849505538021373213591451499813266975510858121520872522877748356948596362270926567187897418723438619871104696535630811732845066604784687531714891815467169741058005551711480201026270482375241796779297509663383489028139728465898870401440725555819699140560065538011443452771855775255635275113106755337436207088846951924454558310839119807550716969217952654114073304758844485278550096541474915240712752588006651788385719921176904710153123023476844353660920749690416623939448600400283456439688769558515116778748035432216533639871886493280031353098467519786693688890715541452795052970591722295267994747061750653468733557217616190505999466458182492602241160660038143806271708397110669428367179099039991671378449740671610398408617025446777028109839512462775908867161080176456561581836276343986419685001274240418864137833330470842341494783961558764534614051196925668449520103932005370400283512239473527943715171556866661524389233170460116452873880179244993565811909522076111059552862661184936864760930216119638569899026819704472526081175805633838243852829467263467722071273269512320908936187726735345438173006898576913922066921878384227658203170430309184918075021963678372550107216958177293634455556130318389311442426691159167907023597206672280936509390416236041129375267262206577898459266606786056536212438033923463206982654229345015667929615104334552254250451003546879025896502607122060243564433868519848306500783454867032582535809936638461813157356991322552421187294807960921997075677196928946081923057926518158365565100392042872945591923787209184924661104410296767640102055940803389484978713259585815148414835694152188926635602888867927228382665098868829606403493305882113591712508682643211140107062273557607340467571705164635650272117720046278110383394842678886956845573857536319248424468266512367332303681629945123339274683033754611138429380608527167207852840269307740018637922354825821424287530592197188875316072761180912756739797878906861471438660357246246206171203983289493250419358217356869229251911284895940558071904686910741891694162515796196632821654356082267291509661566872085272589359252442991643127238994135876514205564485947126919779889645776537221061476881578393042164870698781692021739032193977032555582041556230814258582970479076242184527438983401773057576197426589558097374528772770510958789989202226426923333150192190732536414160017010340071302092985075240497385131361351666951613303624880307701982506041851279866804782117263789076213974830796342282810098278842425721788026542698832573326492459018139153801802038092303291006657406584056609288579661699704774605044014151507773031541584290248069907397788022737040810720166020760366145720667070200068999631865584656166024974675509979885656522692323701341000692929180424389618021734021746604727163994424321547361899336326336269077723057275904615566803656233298151224651948974711690047258189637792387551614456667414656477460440048507228073186118255208925511532684130183929661858195916782921066523814181810582353591794717400152158751999103221576847278805747965823453023723079850366788649199980309791482655896942323480470995233991670575884855004957474513095773239363951901246859595737081358471852697364109739900634504618024456874998525232643653242639492201593674651100628093145620142748097028894615547127972975157234856196476559037442119509945821665943364381510204599571879864982119189949117956299122268592407548572893682488855058321351069253378712231245884352178715031358118787756108647733566472497494884527040858941482174191584243189751623849659832668642688126450465965629996889582276828298311237402644114175711993342990886921082281984866083924968590457318456954643028349497166494188580674123602034569475751993492894658424282680311431146854879704485910771543470397570772895278455606787003784732901199589017301399370496959991640948510502250932242020015585885294915555268462714422506548668877269668482493680012621830612927932656563061678331050199590423670371421961561755512219691300705500771351919778143381959114243317057378922491503232557744505489145320578438592984668160886380292960212069640507126539402612564108766029892955394550341812749441703032445584093880879944496047719680937381778830819689228501055278313600577096740112360300797088878559986671710144268543896066211065383844328982870211078368688157945410975234992481833244027294551627460373785706692786693213974764892517151815692581903733734979106607259542485324771801946133355395395259028952676087369946300839444690925480596636715616795261487056794799400495305470475866243484643135170246106125275792953485073060501211890693540997624661910447829371579007681087013237701428952304505072258001682604383861248892950271571487358317432784097988503867163029004257748431896821947956781760391838240550832565768818151377157000344130508849191710717416857154798338370935215159761647245353917539720814828765300408121698909817997114424330013930033175983524254856492100568411468521022958456089261090530928358332773453337959623914931562286327121955162713047123670541553251333965682917955522788690431367725886115283343973876147728079150255990293737879774112884117590388077963093917480106513332126688663300552246640005840612495584058727588327882856789127353642813337217889467500661207532863572688458382953774985832623311221196266536588143270285034377911947718267686136649685883758720521802671234561923264127395657029826037991498485904377870579793465367541828585373078247068951351934869988987604756539168586908075809338133369162054613476057143060155374925757052186184215193603045460089064368951382717424985944923533570569853666653043564734972514390118538302497457168097041004225479013066980894550716518422215089546489868055865656860835377012059258422186970848987805559332257016004316186033844957431943632245023647088879213921902996336068827624793721087202641163236305095436238524789409442091220913742349142988198469441777328429086484376027445485323528552908850622371084715483806342723725095217034363429511463276737362756732012235739316819006692724962615174087551191315187768420617131377143807088545355679930540509791169661719595263719859325893247160956557661313035062627284134239399740433620724928665274890608993732854358517043201467123318263551200971282584773060392483692412493933777949575349869933564947369131507055926679548747374909090064692963947908825099060079559500296111078757016546501058455642378091776247283714499920325611137607093503212325868521058888672406461036349345052420621652570441107636762251189147716252856514789797104848317452089460794860729510960530048855791536096111250247029252949879831275694770259356220292974448534337939534085080843684450139834602478317858663322717493252266577259235494568908787460833806995377102758645368160872798642553735273490454609475718828228988263799368110039716299770736883727300095683767882378600200755236276196429858263681954451854480346764300074008272286702925549230567227791867539425453013851424075341592758672034944983778813526546076971034115551092427333695043392314019713750732275559295750133903724936609007643154009422501240827210566498465309654012837589240360586532343395229367120547914729983384464587930324887771759627595175948042117652883359896759079588755998284649247598276421812548339159522742556394141572006750027355748217369810391071687165942241713013566080720228509049433404774221684619912617531592142216320399105280566893503325630764525605804065925327572289716488218579063445997852712144484266409529090016590971943010140789554593761567607654715730576233502651848830016705268855832974130264027163999855734092982803450596397015436605497536544793039423543099410998943267710921542391045187510510736290174044522427401031971190848026929525220901951741819911415726928063162721853946891645852757534103920431369912870477948049919977507608691487734981963389854429222850010425024856218395165248526206768421665552234740735499170360817009807915564024785494274684978005383539208184499802237461383890619252871844634221710219839466684495675501370700132301226656521166763688664765299493092195052828897927153949539168158057150952895687195759728333213329695381453016118513400874581010135349640294743463607557330350515964449216763946894820664818813533830186800344151832369982941222678333793965757917874027972728365477849704984359089526521912000548602260358366562553921185096738644585675183327708944449593990696620249050262652640192550215954136829670690934706398192688679620360716054928980374353867718520468656923624510796643989688368686798877623013879106984349274078806117953047966371945499748200822137510720949568626527330310885644329368896781785600193321767849660618432098283051147759577549069866600623503266973553687503918075917900689602144698522030802818181949086983453700429843244004143359426048499322796570116818765252815210651999614370602853884451220120130213475890252967382358903941630113118717995844897152373689268262242818971170769938216480947212398062301779308072211771615159154757210099482847667949578927824896286032225625947832212842568470056477019360684978275978505439737553545818948330879540289694640598376714375759089837567821107190076733259399976649304061554936484981252322546172315200522284197060025784116000135772219998182155482950712083984849447565396339492490305472639938780033489460381820681931498292795283967322810319852922554882920638164454769318403457444741876701109366359927441430217489564713317775558867886336798023533068103653136778975466129104762677872794859949743056329670688858245717044126483084981069339350337881301256649820868850426736978319190142767158795034293142048989909695541099781642458533344261133039466337999413956093414931239653658718375683207896102270013932256711797244740612795083409294245762123820647273695436437404797638393125407828376100031782581929251744646495876132229493540860406243330806384690716483008207807471197419247448258846320640664452996354800844985495202783517629141788935744319513135132913914541658152409188813341442435129907850772550070723796715988673805738151672637908659128647599094077272733516730741705215097932369745023517462380400886963611024405089045706820581996153397342379904467675396127259171601908911936452024295457520837217968282288092158928371652253241289515087449294500434788749402807477527975092103849133589302842225746722868090599990448809473203480906720691068282118321919333538136163188772621530363558538891275027705435688269992578929815797247150396691472545672741417049577535632093534572071969658131243885526541297951615161108916632610786302887011114542701989780079476094805277153313146853912382636310136243617314532968529941273152027182159699934262416140563718341776518988513326412920265645998564568394908414728839416747830003900283329077292058507250914566097578921376392330672718192203878354378389948340126621106950925907609759657234802444891734147374584957041116596018933097103938422159819094051070921595437453744690382485171093775549833025902973363295473983990195754255618168194858804331475018589687924190071071808229622618850640852441737804226761439565497688227979747662685660433325419969465132254470921402554220115729221208988898662319219079804787130668537785360751448938008962463255869100356792897027579806829477324291203059194464294064650592737073691595282441804973178422428277851688573789224391803202132506271139919268646016277581523218205674706899551549656976610913783359053059319679428641664153792466019022004357477265056687989635386284770502533001934219899697433539788525554562742238209391084602047080234779536824927356915436889416829426708014902924837899323651980629232241934346540934805820245396837377461200309761190753723789221183254746513612267284007329965075246376099719787456312788440187699446856561555068422157877239484445787413199672786112009795410711436287939212954153410374185940951643551093955158302060291430778008172603386476124792145730251473377744513889860413801553696202018074623793099775795390428656014931446527859175100864393233247859049119426895813754933292591777908334061623914939978102476614541037072598475088721581002554471426394935631783484350702971709370139851862816655786247397037671643503486053359634688047982917852688946004068297149656676344345565234299368620308582582113883507518394275599167767282402655896365249030273793698944377046013120641995120522750218135593606884411259383646725856576325910232102046784329666483786700703930604821184293167206012390817310101996747747406084754548271940847316922113405021888999089602642110909902283174475411703302621000836069911070971571847901668935388569906401814337947011061792442028592897403813192968891218787637151417269489935396805320056256762319160180634243554656808347310418845163241611049572238487319721929373983181805392676555646765292914421164034772261388220272558435740591628176672054116559050614632191755037863793498576919958908539566391298614593556199500038584987668290398544430957696844369454529895168708997999628393299164966141216034377877359797947311496047366865733551478043757094385586868623271654672047694954908142002826977580624913966943836870345270034007769581497844141980155451533075377704865022952276999653308512264998654407291280215900146149104735565888967962184005743714079135685942691526729741692894132986451734905566090879506384110085908274012217572362556477686091870998563181035397216891808414398645601828918471472852008837062705979028681547150008823863673268628899767294409597382457998159749669576391755462335669258609699640528480459318083413028642023722038161670526422127504071502803427118839680138248786561607491591901517233270584011158469888355951974786754655418429565812450020210212692732838544672670499768039842341020861476137665331691698206267402465613878854265411193346740613150440330639250408908422957662934812514847289582381440970332557379554409909617142336997020515330328126195778040706017650045564731249174356128112446382295440793936815152975809065395800057452129330283541611010872834499537078647566427222461722265809809234799174858806017682041518296240241395809510075662262126762661886271908131662169211575067920622467600129996477257591416844428654047276370582119644531460787815498492524648644289139079559635452628795980223033874937326797845581960721717373114687167788601713761712046620997796366570680998574956955954767703297758150520244716466845484562737363952093611646309867549755694970950312190128318611031103185158777404572012388094783520605275558534835820773081372182649470085746422501441803872604133584916988017601071633973474792742516421979222233968925229784052089327618511175432970890084812975398716577717064527744070950249608152776829573346382744945625357395717237368071599206983081228419690026413982738892932252994744626748170850546450644600128352463135289233460441164199418641212033039240132210547176866875838588434117510274265806440579365136155103881939252499528270762690805788649129331415307612493719540006880415023612237708447140275224153799641154242750671082494183356701072168419671244379659091754272636836950401544895654329950280323148272517975956729880860095963235729439949777086408890786633277957283030813410934897082756464642488918322238643363900645036450026847948073604742984938175106529461092320746382735311821699919985785133257269660047870539919432533719002810859303850194041668420108864344928153073523733189883723947263856023652395698109822685213520277762525751898217790473476786319110404551808135233937334361875579721497168753234480008795754398747133720623325683945226946088970955280774966457609608637445823558663264443313738285948962138992748883931189213606572067340740076087503562731359149381998657148408247723615834571676940312090424810344930541154343515284525258316029547922994661353256800325347364380217415141669878733557630359813330278218107875251067124652928235869194033952552269305778362403812119586615275224387195900936350366472636539993729580473084582713861592311565681474115162298583243052228902774206644416337914221740387606491845688016416671869364951116387236380239959231786022896312410031911139146370752204455206776815497188914384004268376535062415407913352697771165885880357060832709957891292849802984044278809428854712905430481248226383899728966958574143312628225119609065830041458128363304147772811340739417987767130813044152345607453850972863617498894861712644730280146624280064240957842804683761013447756714909665773907985255699591116050194103630894540892926898740621370474344236384526373471098859019561067362627370210173159778146057110639415418204893171592185846788991615549962865814008052294719266681171117030309492137030794762454578320581233295917260523279537894184316430311843627472989638028346913710581611175623272661088197551987711518738356999499668584527741789012952998278614289649513288693201420887702396157414876131966570649536090226884421456718209728566469986609521689982530292441508053581977603772362640482585359379242182360293005963502612775294394044532929353557920278955150443385610592965587861309387873385020827245635514392045762926073812223855020887864218238600875204455355422502256540454526765955478794485002607155124694074544141523634929158150460001926318392170221710377850698990719961109438014739924319317773330857279152711690297413418061143946774811924502671330981870357037904460854498506907634588085934257087118902074183571250418146162635514952893611677280823497301096866949106711437574283352565807864367137952117057573185810726125982200579669853912381636548119770441672405013263239113669178120340967977325618663670573948734548093098081731965078338283150819486529901089764108046221283210631094406077962225958887995109402804769191716693008464169428213589958192040833972265853628573774569267173272810491914424174609212630298240760101918861638455391212070492457461007044377234393234393070578685901482346873988449638274572572083189782226639193030796516142922558135554521593740600111603780730327025843485023706397363540835409781462517333038685517448279067021729294499787932251693697007881636642951257464140595598646509532099581302396350741188002113529875167155212016328877922648861165728645567037134794615546970944665242723247005155849226145024672480585769108520449571562854882737378528454234898036746368720525922688425179601627898872894082649075565008931080622326892879446104786269694461655053314974287392634997023084751374673217101014320523128551141712468559163687981843630534385036811693907956515863068435319702307647934999769779518242553159711215739141245309827258005585900585313589617412939551939179445261356922019325111016815665718101373293204614703223823329571467965648812075065081490505789544532689472050243623846871997765039111239642697164981635703241705876315397530902567813585804932937436868517267434950510761656880562666596306457614535251890855637325524464953602324075476636215100516438079158973221955952656468951024387332708521378243506611131735354847319623035430500005571251569096291232552183848021617896467458140948312443354598035065668566591093769826782450562190749205499266193016096812561199872492111076569932009155310759528506732841663463470798201334423450899805134967321765428764883495225787324793961711636549508871353570439727036655412629785623569712744349554967367727356655609144654602572459675482895593714960710144907258100145252180563067837274485564584743612281191201309020737156902607609693372039326369017894137832121441779199628877476796206813982729269331066757381487139060805094120142765803976877660554947180486471819414824672836264483667493319178288710042868774015677492493445759278077551863286844294605755485358861436649747660008421504909300687114853720921549030481905963212466689036556928230775238650756527650463608803279965746111055674682662422153712384284045978425081319570807985436889050899626026138186586222899906947944466298777954089162184059173915290395778175396111061438605660854330374067774847005540684036669079263648392030847921679888048617473371046728146943668921396508557381130563974962141683395658286475111330610155568722266793493355834511958145651538721456187204930561971569576508243723033394804042344411352795559510079497475122009532016053329454703332362710678934798400441166806606256415021065011977682799365680121899434347666208080406199768416543493756564350327026689735937158818503487934946055810248381338859233473019826112295156427309471214890851393707550889809898179394977674921545978214681620891266056695878696431659126824231602926196479393752629325158356726541725587824019339821147520634744962939533736249119128420338673130771502209249143251467721141353931173424299767404366645795955704852533579649854967709365665983573888484917613172809273487485121647078406354051328259188714326098760578602861537403658240613789119185386366962701726992352558607844935275474896882120811665646323070404161146541944509327197844598582257779093258828770578852153247946355731143769203926537471852768219014856682355911079592083407221927646189106330916829951835013206934941580515023309758642238449056696331126522564673720478871527977851975288254800317006355669058799605775661508574239329535261059103993312115110765736077553105169947294382006276244652985744437727095332885187294891959179601629718436157259038687429916990074664077747620854876994158064166595618418595092884736092779079068631921953530830122402894766689499950706776031599795546452321254477522825978848651758489912794071441046131285430022812121757998458394477714138721229413193480843129168393793962343132834229748193257201489910478915205861449013729153457852874973191657234168809401511380218407699507803517106907230768989997312589386547956824496135024025067949084347055467118684936859201833832823170787237847164855135884857406340521574163628993888273955075150305771805924086267976280125004586981033634598465589997076754034762478260918443410760817757029710902757160341278669372234527842458588351192832156856823572374685814179635429898886102384445504193087761600364725174719942773105465846985456939097559294358133144417530237880187481734514084988991914713116575093873379351563218818551791914203249571521063115583922555548717619949431083963840084816793737261855452800722763758517880519247627634881283608905696248459914439113079156482086031703008976345489661413440725541404570456313905093859669006075638809249806123145048446992045119843214428199997937616866492986283404346066044516706717981402201948868547745940156454092695028031082449519696297203358469425595588904983159332903954762436796009294621992881036471223287103475823644416017219377011605735416974677028681040211064804157814095868905003113367216786856539010945592452542899449487553865222486194034450412610927256071356765630530588964147910998525922198253206842357259381308875153871476423047919756719906789101919215590357580014611033470254829293669195681035321227591374710899859510961941565364683615967433077400419350508756007987102108706146631218313131293582728804905354581044335781641632017964161414233487651695792621167054863460861024313380861306230760713590546343049377574732101395604635373773335075198737549876480522681279967029668574686006604663391482796191038202359555713010694523217780320455975901079223863177117768642487844664890728145238310586826005820359392060891658511811424523950938208064637803697948543895673399367961792498797777469790840383928293882759386624790381313412336492150238320821173366385439541759740776743025113446274362795738937282082132117974785172000682561640076194980776210291183659835100606307542720979249127861070678977597416633969537932271751067756859461169307589385544739741861046282626861356566388683715497974279805083865736994407034526650341449293274229691126598313890097634998252493941853603137416891782758531767956510014173093446068056521865538259571777688927136350008259685736715719618659597575706491605001708843440401044937047078375128869925533227201948818178102467296603060764485520761368316344881786059134397457116937492725053794734592212547027980407694675780862696370379668348418217881388403858267011794576175232077963730582395854857230233294595442652263157908256950614563900226428904817476902591305021528395743997599723012506332931133088951649177059905450288999924861879200900763994395974058277698385717199850154066708867957384188476283984145100233123597611812691230872886344296414644056179722508447984341734667917109267957694048865052120951859348391792282612490189543132401501191765099836176579331072150246140671396643007219683386540315673463698017455737380894378103881357730356020553336512611375616981401940776638294495033443386634905695614132393046134319678320452183867800106573411709032563967661394620715759798121399286228356757561156415677555163156622273986549331755795094693562938422600827066744898036607345607101797705775572557186232962491214701307150234644512083261421504194777013973622019197757369552430886945812598331060773410949935206660572122427818718608845053344300233208981503627763626901990638551918426665568350153071690911398511030035568975386893241928299431673533396969877043628393339030979280134237478185807285457981095898649093126880703569853143082112618842865022658116805655691845978546396197827574185633791120804234855622609774663217819431503517984289213116657921141729507072116297624375772377530639931156024192715628851048585869126298660989899328054090560426237197701649020237486313307158610742952529707776315065190692076431302530298076755632448353045673609107810253674672523417681705119246455488949911085725369117768404241055890176708971285848966168199017081371515897492307165704055747087095072508359733017231163367244240971033202825838906658882943503604871403235599795339583292700073217793897975897001010896992656891433809611564670514982490192174503458539862494438045758917553910273338063562056173569820831170198271521497499802892698392545982947341398132736647555658586913638366053465958085191256228408550680569591681531829710833510053192343437892459711584385500071954816456903927066997047872078871240056614428163094300778328495856160603841097865376599684212171449846702092657632691920823986287408443342118861436566170985328720891408724951050985152733433596932655433850113751133041983409784796557474077360879775910304600180721264395109540580002492975967473637689820610324496852408954444258804981225250323166490161493571676882209084124799709985390010311477701284979898136578344631554466620339494401791082363257631073172985935932625951697611206102132618731646023789596805436002164143008409845868489669644327326637698860594523011567515244947634493297633531302237670286853104443108657195439594409676961537429692752379706802030569394092018384881018536454741214179816086639041842664616329108002646239142563320584434446042932950946745272626377950229734737651552197876623846926605531189625723935325092101915677822508506671731202674320106001655922995666544620299349016553374333389576799167886509272539115496972100038192993214304071680560696612203572137754342950683519086459727249323352696262032175684763424592408264742533740025336491588089522485537828236047610214684920078856977328898002653467046502652742829852450647625014734489556419103574046468151021963957236208014267355300192166798844695637119347477351477673044984264655430662436686014665411991617757555160904554418941115070905660059445515484354786391751812847827074741823424524445870535791106332209318039741028881261647616915459491713533563195340753108713131171789607437467643637553215352291772030873696069215707046698395927301174652632255145388876792726086456776832672931122985903256521249516602512032779342982811450463858703101496039348325336000394952057774680445692687638557939650292501549550252088914639696028016317449985102123036339967560423919249908326182094220311219157527281325195175293858603026180110755331327836150179104093441493215291252779487604278332774497848914553462406906782596472559544802625635990527494972566171392278001024491704799470609524762720211078808043252580919323725750511068235940609162725701954766728978421490661525736902138659607280930897123419325950479269641761224954505809685854612336169131224031942267671405673373104690150941306630594318960601169690783446172088902396714919356017324913480484712507652713179094996182888588119748755697782032965212566330015828820509592935207067862259991971540457098284423601794019679327005338163406347314549832159946218563834841060709408639329459047283508272658862194984416858257335971036630239854241275141961835528923452019553009473863943471797141023831823450449918653937392692217154002263766780299494398443017159647066840329586058072141058990417369127723671286152440257882270589733265856638104115162680896606526495534656470120378791821346326391770664300132379351136217706357256610276843746180985217184049382527529534091204962069601656964766825789172118296122062967327904808591617688665635864031364976206676264443173559321800615038753186228743735259597042509196567057949499281808003991531926502995032636519299065923531502698889068053740295846484120846019793977070916773084736359358957617177351062209132983240973979591800568452516982884465468520394535502224217285213825000973902256800525510585946622702016956452349921352503242254653681283843083040325278191933655242124777532093638902360417108616727017975337715968664839372285039579492604514918347868670092676350339554474847656648970957675823767235104482996297896301242547469662278870876964367488218713897309649499341889006908174293926540460509057282725891961996380938635224609755928352544232589486497859344492608021256823083603783223205187858963207984171153357995485844513662984065170049786712914159295178979140229401851931046183636664578519679551294005771716848290900723498248757060591991728351934224343196539690779479839838469251034623134390227487390019949569462154359075587999615111846779260607306858835310919249480395745917142344886886095483296701396405938255397876935654552967139667713974278868427473662499334559765358499142191474911203735064492409152095497116960803197874531006269674703301870452479023374959366402404299880559116454099683319866982851210091503025593327694560715972104708777038112291973151346436719334973503582226280488729267015098342419083097172938972954444724412855913451173595295004336854575246829427445559550190988144114681181444544617117762871286006175968542340154211093313929600911630885371938466317037552356654734292863312522559052036253493227222271269226194999150394678596120448891159708921143364846389611924875524774174902956100627197104561220221363415504376432087810809993819473022433507210407218719497922564046813770223385212074461347135254067247793223331759651502404159862461427210232742719854542656905340290697673869173284618816499008740462457471298203519567060514707300969230454610175945643520640089453339998929192517546988445033813633402268851492278912744393577774054837108666361228630746855685025046361305355233675708983585594562884296409520212665781617497833264553108725037968011140281073024579741098850168505026472887521029530722211351535900818579049411620039324627099533818750990595496210558913415293124764752207620671634692148359263302402600302507649671249952928093115271554253071720742377142750015892552277530783831093970483240706225641121605703991852279593831347945409513312989193665082898310762892680369171416883910372934458643905508329549819133229887823444615332064256730200377129842908960300994401381811758958880361174901926177751505557456674294156113372389001882752643151613780726484634717673211064537018482377732301040541111399646840712730975991364645951061859613513913692560582010441905795801746628467591963459433893366700726457956340210028619772266965423215457425152174182979434464481659158682081310433570737484424309899444296594559696010262194373524127270123863068581491222540010498933829771712229676696838671635237374151856325772963678560585041018679790394663201715455394889668709068945155653329456706749011959370218653068724211979738830131269424406366518559993641211405867539147673115371351793088538527824294236900878819788415173853431901419215023413738594771689001908931533346541657252045431933269508665845284577485623794216434350606233497786108543359034222631753277484892332411915939851806698655795428118452095336659997927665207288467054603725152567703176137957501981678405250315117921007549734267522729272253112339668793265232419193863459360338352535576781363238216765117568803499412123928394131425819961472143678188176854186658680266419570433886262529220643983887418774928559914275286821084245429172850425009686984209873733671570356656667209017851260248206920284000692029020718563642243202139005087505267728479143782074739802433421949885384887809240122591485405264660302919634225543716991736580467228614916295018427615962569105009472871398931914816665609360940112267987399392588235146972280069700137450641346711205038994088369107892641480258443579622489107273963851721834944098481237441958235544892472861804827020706275467355672017408191651790267146056162739027170275041903056652208419607636235978356352317488739915456997247503230128471360077891293916758243479389996074780802605777530353907166229536909429780529229996721107106701377401133116054545685364339725708471584114211374317252214271316229128408287823090080640044454153493671068044215539237796640441448084034423488123555289377485046660679266619268806388434266070234066839493564374432458589670449233478005655732895453586933210830904951277603549868010024544944350636150457830203423787973951809566729416050746072033253623541957291150446963923707687343502536125785537957212885841556587761988308681190069492065173282700282969486689499258088947247467386327799330479170529718642471691067399610114977377175893487277472824976882084632825891991810875554171558746535997306085146476578290868922658263571422177557857889263770708871316802714514350704892558327441403964107134029560836724329144690525295440644459178966821546709847714776613034286155634842017650505132808096093032478603474636711203445573827014341239401635979635248082998715809397499297288780602565386354124378731565689063890896983714510557140208076971686568703519982087836670933470678593470534222146454500155909691159662304548189711640028138898135651586467436950588347388148469819314708096936714638143172874632185744972464734144163753082089824665897756710679917587118703040121387251919681422483754091260905950359408077172051848015095559518365839239320170407635200387477720692044750223073079828383847673557483480461499804505490573773760363350083561501762248224720523172763886090086634899708800114776024929632581477957124717434628215770095971686553861872825464327976494562608425589946613023604197054256290983368232963038200054458442629361815838140358410297026018895362762303818947178427476165742931377797869931679897872702755636298831551334883784604794809793709106194858876751879139451803656167960061013012009697826444904658532906175313191431781620959415511680338816829012632369527974522684698095738329402646257301869327831818291313862046704460762745749675260118354162605181463187228769247437066219894826180926431762672242573510992214126535201368851076560502140397456413248797913600691679426257320346910330356551206961816436656377291138261109598712137384920684118040652265377216010980297833909428758880802069579770686297770175951659202023361458542755751371850568268865964062514514005468462582053984232000654577660612835143683522865598914998266488207710959524319632162163659711166268882225344962062414078532339503455913595978746913797891571996563873177016259367239684410758302554415626875608190576868848017609619895834224742493160781418817191673022473492173022874052999136167687006307222825977498194578156635979411467341560578892514525555985981768933151194250929493778150843025582392105685827469125901600868993253587534650348621883464760491294681378432162878488534253379334860971234829895853868566241497339696624960246169461917889626367530923630321565140694245674552184874404887532977611700483540342494471678885118748228198658102675826123750464094448247780693027262943172853404179975942613416283469486167791764240944309739257351832659140852557702951659538344322800711599800377151840210708596159460444609739226371262701487587171440115159849634375427606073902692515639309084781037311169386425547264510769747220717405470585588891479693428141759734485120393817607634210704712926275775300161946244884934867303268523338930305830455885049909519292908261887188972744289645354180655480474270593886640114077394170620110353424219395842540581079701455426012219492618553131943053100530165765206311829063130783537992943755360419561151458662868449896741340718336803197636977998370307546187203154657000369223106479349018846104941135920087127848316288601749425643065259981189621686398312743310362559477236334725830850731430839511044400091453579770774804989107970625213147905567528096414934597679524296478342471921664501498555912017750340226226631951899941957252543697039334086827292311475618536709368230037681821704261219821412264082836780365141724872677273052869820762505011587200767782025259824742403403324217924654541281665379029912466093198583123866024408348535384678659580197948664838615285501957459704519271368800073842286593146502519015474727574583023905473007868120196089353893265620744610075281906082365759673448317954957399526479987330613558323828337013088271509072510425533774343619098518452765901547143137258577423588960333467707288705299344520508288519430619904478847979108878214124415766749261138720055720591671456080747015472771285475189737670475355650705280728763098774303403138990873800183589979948329153588055559260064381552484212223974810743400667079253906455404925026960650832649915360534433129526959891266546911843740288104039600678988783312300802253451819338872856633069835280163540919014397974348595665026319765644764618423998410484505237326672056709886801300392403454524820670425902753615474189251687431942823443230602383992803676864097205623241860922396192860108159603029305563897056711336252978506224174846693679613622038445205261979755056220689087694126099390465787401921610052488397893134677244435590323485667696737859432527546824824133526820320903216362260951480354157504367136386774274833739794453347165677125556421390108113965528235219660179256022475696350722794475311964287608443726572255777793512050352102118150090724263676286483523798611190841230899218696347081998252732233504177346540905456102397517140296395727828537991172341430391474055343403699937157322508265738893200367139447393822818662719313691602567957031633154221938992988295338753669383423360142059646698453415238327550658084744261612914625180474977120334402480372602721331800773294986344865615686505627346253369735369311467454739515154709879401495591801023033557578694246133144706261490736702058205452277333620154877679225053437498356489282981621612509761394510448747200176455733789274192767890604011243271383512857610220542554978242759159594450067312096075859624674597532731686473620138977835704063506181218881051991296347595740039956128782770321592778104408254895087843963956260177861959355277430879487955743293868280354352405423201209044953831720647786884800124686493219055067052683298065667973617329428259206004320832652243505760996766152653747441793063466739390433531818472229470064871063502999188654242542196295880385524273467744386980007630195107244290933084428312283089645047322918728495548756534888559869456616533150668154309635086790614747773347801314433524023123482038026309052376358558793295795237263694179343689593588785504574700502585545362409522485675670492583495846703358515009446923641300750104963770017579421760086709018578777225487514607121882143153801765002528882342139436509562657733350365454036484515263645521932412544629677075946820711355580523807750355699939333458392839552756519171663417206608194491723786560783543438038678096684549792767115790809143256934972883171863038046372069846565288158606217751091620143890580293106133774474021682586060201772005573298024867708178744631982238989944785796325555839880288702960249821041540147608550830083073718764241037177506864798363245669828405352213315439107288092142556014678559563239062447947160365633528841593489077795502173523172957236361799653925866567445700496988752448974342981155074444298653108673561053940621917059065353437916734050246776296099362611483374162597807237450645389133775649367197500143869130755538240447816586674632030056695902756497489089478229325662529346111903864292689465001830170101647210379337412879425477170658855451320476457452128521814473566625252416677466856558212281081046870289411675551538391116503063139860822621425576565765882267573211340700563594021291749478355339272299726904283209871850580649835468981456331674525535082630877387408513682875126902371004035750053818743370557216435584575312525456376772570343771939546832047382381017366911022800567203817143501201637398441039773993847160115219638194281909006254920638387371033860229017604089821935424695718295327267071774646401933111439115502749941970626923693255664190607039185810151859036462450068094056589552298139255356436682877880452027155787454502157947740998032754519108022666895230641042103036295606978550193636490551743776249739938931698533406021890033338478847155939284133440447382918267364609052062675499990390361069319448293654881555801124422630005973386821895368668838174133404076464201889309846238030011013298661295021734087230634924594895416529031576672168044500170652326124161823818448164180157341244130880910139575472097319751980919069684385337460480878102278692957665961559626710967656695170354556846372645853751898100209085305066132492401834052642480263351966808703299703084796910688166238370683981680715247842075258220127480590209308145954274326644628361172156524039418516014186346082344618492239819787512742890294803320301426026815120619534521511200750679106878552645528920182040996567566031576438789197568996911663821517535721452233528453294829204791813080000843044788744034209203760828154155574559661111330400130245621459861868867616493095529952159456546560668775558320684821809019392981708631760280820130378087102954903095361402076818245133904295453011658035557799305232006285977198729424071193074526102479480920212658574157316958036441588024208600156997658920244189785335549046247898399058927494327926783095582495745439481091346597620488150164225418796740585902377938327875503398977036673650249162424074661732955295492605704539207111388526822620801045263222541003292941631552808136493771874766257887734332210729445662353723765842477819268484260470964919597630994811969840500607774660990793362658176276475590685994781534279155758893636482394365438192442845496444750637439334272035113273931631294421045008378911765367283046064294866496688781452786646920361794200972770739985640564788200859656247172474042756529120922616816813146350527708672208213737987842677453460934910784096872672948839453236531506209904048301913553646815822771872935273213271590857866329354597567486810840010313494158251360913455911820877526498659569341159943997112613242718429981230002601415072293740252572746481934944054696778241017893227913111041963086491611678961873383928961728501934171881204189025785570713724461447114920923452803821749850675981214019461580162252553411685607978424127633967150168920200118816281744706669368785091500638135189588192296035609600119090296313262043028219612163348965268052828462269856255015572512505960153508208784570160727318888895836046180566511934095907710378811060106105215701358830000583366824121085288688263859310955134967487043658149064953994937845241360254603443488884269313854020918087560792406006894193368871168364405092580060341606537402918649202211503919028405485136332637495400138169062542779404028734194697925823763414203992385992919085070993753561566248553951475475043135226836926092874380685122244053127067748214518002609414088128411324279228031586420122545214770653830088214770406470517966950187849278827741511280500142551805420026763157495237910420190704811491624075732860364300750424564691847983728704112719634588458433367498195139989937081123990264397126527572022993288509246219828769689025375822172480709877392713440751420246124260063144404605763389898446931073105860082460932029553805887144623840070602311117474366747623235559836221855107360736363365380026600796776756854632758497456253653689207844049730028902811506459156562646782444328866301476873260657388720410869718352235598087258723261505698854916196150720003064253020476906761671515371341393458482490731990340004186925020965485030254081110396220762463131364932257222895017935162023249470112657588577691848120637273950374724469880527584343968005993923394510568761696966541512826011087820496755937012714187523425604393531569390848106127494562549191343407472954573921116198448066855531932718960027213702736683972765632415359006357276870142234204066826040443168853373391044907351360253821851694438533472363437183836865687662601405511854662669716232232231586401454784558385744480172098632208402341265924634433301904738536327094846592296397184331973274969744454845843073195771394546349809938237836259648584124220860991017775873591905620288529791197422827195089137222958808617049973781203511930337096868224483674610593056422845640688877862250218225192429631397605233789408245234600875374077010345550169310156636356785673779933751211943088247377036383499501693272268453157275035283382159353330912917641019737245270425774148083734492004379588459831344840516772188474472880743740061353143926872056150881475525092042046294607016156620135680657028384679479902820961454590987031003137545948726931948262466412256836417605573691407975420044183013181793924300019318780111446268679502348688277010607605183945391870261302746845560867413642617755315862780133899081322392052953084570860356889184300424736116754063334693515794349350787585136256033781046270700102991195061207597707377719398936516237616529491981137459724463967589320112188919828750665755814008059998328952673259488384961658529580224658006518040540484792390290815974492548801209524110994844317718603180336314540506855281721360529104558864434150091830808444953708902340853850429605530129812059576307372293938538548299105907963442827707352365798249168675318900605572618952785550931797177166161121348202864739633929672547279877483691797526099229299177400700043556358482041015773872810688500127234572325561252798775102708203890745074960254995478048383394951636671125814117484689805571221191110020508843651281374227893570496100710430176817536723569330117081639826449820929131956965677693084580169721641690895850916731904437729713312534211038867928256965781296724256490697523663667018232231463478569983007779957894298218304047342589780260542264425323227593326148958851727330242334881231288945756262439368534069106602102872582979808129057525531289230161024648272347342193216236229113608129694921902640407526038040066402789216639533769381401886832382059112518149989855340331712408081900645339663955212476877147078334175538815184500612700649284913370052384260810414484580282745722108780720718472308230782485347475487581793047694415580048034216310162203342608117318126065221614600397670893400667615315708800373883921512977952271409482587177372006874958806436912917072596815273120169134727483323355101702629053052805838064889481459179717255580387618992599466334286314054399483675953788383892602491429776953307134013883297606233175252061319825906007988033580063715065343977504809716101091712268601356701897222377857799367864119042272330633415430317252368259441704856387071879030301230642203619757417019994635273229090129831451789369329714594265679497450978759199286490994810801818706766026538251177773853662444833956254598445453912799665874519015323377476269496595174659361686474925331144371044722691164737089076280695956438166598496219515706991991923540312111252366670096608199610666513809540152832640065650461261016628308873285125812222181141260280120150642272485863111076976870772889624599112493929892282340772308151570385095201818665103106451388648263532221379719665266160777813269033582243452427008178171171222862255599177897159226083888396470391967520546825152057523596761282977440970136628193325080327903873484289579550965789377470967473170537349217448588436084860617855512683380347301445547937518518272415667703687303636307448892010204258272328361578431884180558109578662751960582917008641648493285259865928562055708248712095299390089749978888315855659824246395782048880799875614113517238696531779968497673906847105939405521544613420401507115704133099516987572516008551495131210938191364425654752969142574747310257558093311448788602114620911847467624917416520347330669178280723295796403627901220076465014169894834597381543403548234920517689870419764300251715033772721454374006445875818990755420589631571052194029518808235459878983566738633047655677961685472969763854627058689289707223224809699623033207343792738197281150876195075683020732068011958138904820127880944579101483319337565144726766591263300811767751821865046056255401392046163250359742262969186826887439024141425542184631619994583631578944280074965968741639458985214883117107461112542653570600869973660734183538809216243190707733806203472589866618369033267369255690210912781389908082768480138614394737608221875721472283884228355724396833430807127352971379852918008554993014147075343361299289815945503045658378709808699468443767384564850617285617144377777189488273665666795903875225801024122359594404824843878026801174032999322465537735016591117098814915771212272723493834882737831436926556322155035416227019319836865305105728683502700598749365121382895113187600239231466524657958244723013656901166477554023988225363125418754883810777839225065293943981170328319544085581252985551625210710123154462577605605204818987441405555965802048173589644127851301658778192492102421528837695389260439769492318354014498575742499510330166886451171828750351938533359099123991271630824467860569309187927141103919493436282552740640077603220504746115871941435387476627468719475809745934909380062523655261470981383872967879526155269280207052492658199334377023831305692671413307567963827985823995362606611359908445380490851504669294013526073997412743517800360128028087094383731864774727822941110972308424886801550142485693952606862335500794180218384337350181307775008911835146059149735308287608827547581673457136139943488086005478112882299092955015838577347869996335925517644552656386648710249901415166599608621415864004219447723593900325665550863552797787561636252312861968101416340303969062394465105633606422844152498924396719098983659484590964039712323879632736448328490390173707170008448120198301205548645940210364016672820123418691508575410037308716662650945118130873377671958793846584281215882061944971016291379373384506377469145110405530660384864930679746076168717627684720328225163697399783229466581523446729238201151833888518578020963526847399995840974139991681197212486098371530977902306537148999769486386423087176256031917728563460056412740832047556478737896020686220271220400473670274930907823515135743514771639529224471950483484198925546060848938568914968001464261154509618629616907163076376993683266755769135148851683091580728678698335423740210458257793152062864091814171119785246546921711026774413002150702234095600583433115535928526865402385355484460754030925407297466298944410668930839346070416005342790741831796616828323735804642487379467110842167560365763535110422769886611164975112161317767556078816785205314665024883574604187180323760888835319946225886405673747724975577806044067684802233744942263645911125801902685145790462877795154812192157925980835507275592503688090904514425541707924344855052867764864509449291990518480617609395976519217443653898055091717731385424626061248886038401602926679810557288383755463974697430495678807177188760457755458484401024835891725039255497299499335338431186001634651489549893759458846380479800477134412732077276341955423722540104388379399578146247467458828581504208843658682954417880288757425946406269448769530648002986512039125511548797183286625106441113872263896330901185488760324433259026125223858728664645609250866671635716052316072985366959395278460344951739107083834625385231244092225316026988230120225593001237573231867507286573838723079071564647513999710343219131744185570365725468931092316220889698277537333964208135880889752093819166440185138573530855386617610877201835103724609034879871587282047282650147979710531819871000832389023827114413322404293436070491588741668559771079547790687044417147598792851368274869332284233614508522829049891896732846619542016669732172052824290768105640636457539958868264517570858716993619852678639540537148749035787434790969552670424642486958283272521310446215399516507867504199040958142363325379768111072378987962279430003126079708648948537322919528149358775499587728410226002633613795910163873749750900623284171728596116039210595528906242157591822652649877270155137735852140808761179271092697265625346658390793619699377898925129152387071476872925083257371280254993823544916146379336265681523442764545759318045576871870225394283340842487101951625306570717569741940578228709806669204792864203911601972566569786629103309165362672318324579615484917440609730798517942292897180212714812831374650234342028482058102108327088637640198639707059357486928820830797706928290066993929732684560541381664378504252484417019086483354074445929044185205040216562175286839862923319791384136190618284208772665641450247232259859881377738891994682956377930246708226336792676265193546021165774819751952574393949708846933472432271321846508512341094224227044645496111394886737625221065852047090748439737630475873748274120119569439974559191834590529410883458057079006259581058168961619373796957842721945299093895132227966445979820277248251572369529307572966602524913880495621399616671741802602757176090632206100425101408341368932353495192472486419563795663832975191182689489817563480232223970585571564380182324017747586356297803347387562965859179594666286654450176491457491775901616759257561766729281774754267191775938126160175390490046724682522258035448050467357908030994309216060087398091346727872392618268365273591153046820004218303050895413450717084709601673737318875588771798150696882664198856793369799483949313960644962565624540407248309850926831092756079690921616665875917907284740731214864257382976885173114228074070415590423484678467894010829156911405736161807975617175259290332319355171434915047667816409036247954403241009303268484248784534098695830346823876170947132032784274506247458239064752822559431442252171061028254224814795496033704716935131252097617460826949631287398968156694095724008994651486256893408869974552865020020731983266344007006280250304146558034380014854328051134119039385961554975995561354911239084156594195331205323046671364979768929230144700284018948283566890881733467615325682882372241876476755235480380388212742610373208003696870582617674271808373580105412007320275310741355931989390708920915797508349376829772239426056053591349834974316886368530766700921623514262018653739981486156454914330949390168290527609155169994904514579104203013832515721995017329804204718074354880087539877262392608823940426219030570231969616052429372735066151777218028609629787623324225546566058525295236009750554175128334436992241125509854841098200655822694969378195816885364899826692039195762376723483208929069298536860789919931741321800237702823162380262254192073863537715042547763699931007121645745459903350941020500625489703935534368254907793301895075255879299253302465597520460283356553209613159317097119305945375474452675360092429254175221214203839681308884259566208765053600674587251025223441823493082065957016134605048010902100601512217009513656692074211951130374336832493659524099305439101306294868340691837671175164069847055331826207363545010296724664276966291399582832120114301126119578152432822461700809356162525694905976536415311654674478248485893422984035926532800595155903287372722264198509917785385972455307633756653479669544983419360115869012964882218808319045614143757885589591725636586550180948537285081254560868924340022942474204778551572677336466969934057144942859254567646834968696024195461147225252559783602257650284149079485928139887773629697974431465193465032406697897804625678057320672837213026287471997404794713720510280994227390843441878149803331336026621523921307291550384296841610173923559046231355101865370151414789007718246750362863798584897708543047159611242417353156485163297698641373268528321604707241150639751979539463557792068902327714341822037170857405100544348964365056977874120637447709034945156799954073118335052201216585657949668014726751006897184230651370482772335211744508973824390896478661739232599556482081691735810702344868661830469208167233017371489891377716296002043202420873900225994930997720130394753341331215125183661017759272909398511133874102097978665412953684194429245558517273292187403235661558721271908974881704728351669906552623870908747173162523328352077665326744117973377189614144150526999845364371427161403968801860318558011282273536781163182644672003266645340167687929199696690298423645178374661892909235990781875335409206618078240690349422442726306493722511365653470213969879565736654947063084900858574704698134283457034177043063514036884342425797023245052824645155566798583178841584294629155218530146778525167484303112851593203981850656371899582750294812576526955268194786652106528307290527123371111154790695766518469767932391499624668874330269747963497166239645658148114078434421605610831616658720454528697333059563700525240277183890730330759971296165635268156164115959463901049198992176804978307153538835523562935611274761980017934925574406881982129878263151574934939701534473050761360522332308080498979378847571090987256360601996566416231261630240258528584724524963483982822159040713361544970662391614514714088714457600804107092188587413262809979602930133912462888015158552952147891351432499057863630099808255134890614127212071305634444259816768779418936450472332475937756486988856576953670931148849858459935749661303057210640954995965809669121059187454883438852152611090365808741535484012143665280658805251554160707084130233272274780799732353731882048386868753929410557520446044308897863747270240758682743696568954052807798091283136948211996293463558809853826846960151249709042879420952857890258702009257891785146357974442843770238441810529109801721926600248314155614142612186094272130418705854144923453370552566621165367226452763226756444054807823072553369783095074613565318703200972876134729866685917433134973249221233402147719460419071021419362312995323361384711697592018352659230679633271359081993702402681455022317616165975922773546943765644539886744575023704122133633024870542690043076254886611665440573710673364320845798461719756165519090701783059042453554754021410108412216684025720912451164636068336586467720735977841556482095136362487262348129417198719594621299806089478595804292525916264001458815642965332548695373921129149305474510001616082127364971306890731848305744944777502411499288464208761419636980496564485845470898521447476350200149838653273784310693795886547906571714031195980422918075626432653159924846851195384954133427356741014942701659119766341871267884831885896777284524375731513752101834520908489897789404155907327285235237001049314590248815627993388766167165040146526463067475099282000368100907638336729163276799132063851069930897747112271050928785101981393818450415157982947238680408279106169208486460866281804131486802952337392057115172570160470688992966223507372352840640611846963064088938868020705130752719061435568465761589759024590817502462734036092373664949046892445828198777901071993291873216580677344126029589143053797026402488414642056158650953599772311136110545087604144453702554531666813914655706807294167340520669948810144408392847022871673487172526419852223533386711746835812325904670218688617111099766854720456177000790791649396803102035660649194428885801931875131153061435661263289060909025789423151502579882755101559736925936416361222176887876947988555611962661027072845076262089367008512922466580118893391467218009494280433207765860870794911599337396929656438513111677003505043626110729341442439484826372151906217826267420712534336518746757565481770357830790701488232064581585509740501669847689836238759484849173056650993007805949659332953132346365268545028397602109730476490342075159405663915619426022599105507077272616539341019780863929813836635283633060288586079061928646488578567225861462363235891950828231258936929689030966226864158207712423744949518619517177437711185749200164730053665356388841404071427307476919656525772495033559987189331954136488118360021279997036399157455957281017789360758661420865681317653353391920719684350684013943081592928235979909638370666735123893002459222191667539586894682845211513966120366131871485262788560511545554927783539984165636447325423558623349819437491705161685554118962251186187074838392861046355827640567288023429528924872844030386579858604365842488334905840326920764605590326218545072933786326932098038168929521844393984381232225539915665772190892707201143450761768788159973683196165546888773006625426254131706433584902938651052562504329220450087515657251058627092167664049014059182992186894903537007960202586778536294316795118486409274103160641554853134973951746909388183766320359336561375663965050752760886630918446428038499647628292187924892653941957580028266437177127583114238274467598071436769061265857335912297979020703676780235030117530121799524710675940364006855627811029677252990838664411316589343298824439408459259980859312969298869404465741182616329018661323700760078213902146641563385764239403909932559992037292249499655007962932754657780759324301734362490444590876100494679673869686838236950846742822414050178155692755260116150362903030605334815346108298141529333616553843203701357428875529011108918696704328911754660009757183188558376816504043613592335723185863445098614356146755912598220342235025049265580879973414905028127581842991203987681034654684878632353362609084577526757142104166531476023766101949491627000508277900874487605110471227427522429335106756883362812102690121396406037121154921718012215806251199535020661802516321872603100844402749752039159373170082656585944676844576358416858104446345755324707411769331152801841256316441418198993834986162175336832257208292113868553298824300556795854123538452133035644923494552716875867251226449506054110103283940019013602298778952883407403191362797218116924072026567727913714432536684583131044373331632279873024778910363584657641845103047795203968784303204172685217352528613953604118455818453497431905170772200437595144790464587284069939019896112445131256339073015766333538209630468511176892871878129272607529159818808135979516672819344418369721659100468501672349962501597403811567499162373305802637323297788514710921989331636197734620302697293498752168875844530153447958026609648679716965284127008703363224281032301643564105696685921874014334142237076869978230235018891338846346227589682206885525435517719703347128754480539887647042905742072305687188209138584030739409087079948626008271207290285817459789154263336731541038432210606052250577272344757823938629600471563280060506988844456419530957735487278211975832429403391087730575606533824005085229963082664749310288732871852166599612378494376514283964504245828897280306480044760309142113827405001529484983631714071718170168183501805946974208496355004415889634514194096697448946693677830039379139991342290456810095606264550093265012781727142478723187133084275093873044236685757768791957983679801183610906071076922019798074553368967575806755739569059637655998398428895652983096301875948752323009794819902080455925915281546970350677261375130378450090715509475021373252746148877856604206560611044172315785888958911056526875634688193168424815974004897346928639349737382476491759266054864037382972235278788630792141158028965294393890170700037483205926299560752342090234144959091846702271719481976016163055442582290185372789011495719557659383760558057614753336938481878146204448878892837550149544419822845576331678556797179404782280640496610366707703502881760488438282113888782521180897589868253115035751812675576623996394851034981077713067506934026590942032170555666023609684155356492301457915056076834664331180018179471385200641650686682271293908876362700461323972276718619442755900964114272501593032337825681829756772957168356637397794482915991120717376763603921527725475449801631074127119683838588381343762491984097465651914512723150738664633083683144362254103564574204460870632230189677193665443544684044634653295048960129195465055417336737362880210833645860049994562872224729373930167510303495273151280481569085742386314592992459329374783959836063364350253233136668373149692695267954197399190254770110475323207054116565837786767415585954421736586382403484843675771798674490381905637284217437209251455162915042893870244739217568077680792621134071684054543415160998818445384673645800629688201262865138598362661192897230972531131424675555916707131896290186957896101069144884410788381858649063663670231815915525613363665855715390567329917332437985601460899092742927697998786760984555799168173570140608343026375637086535019610544892879385294654254282363347520991607647000429727542641634697935109697262368964503051316387982408288588576710333780056909231711621436537410603893536385433149037105834526534367736891756676165850085069008059950084014672606432182786604319890945106941145156775728881387647886477731551857382385462744071934513014472192875160975860356669143473629606449141651351855880029790964663004314688966557507430123848528688815178581322234062155892207242140260660409391897779277677635903110524877511183126939317988682243068379610406643028393350230100481136155485095938054196025877149396718026683322137394067731915374578355269833635295433725848096056172634466551161693499467417591175550653465116537674389494241981983531631615562354241604095945613936893210903215760299754368525184813232733729596339054828710497198185749205339758421194512450602595096829100897943316747920449443967677801941542764485288382365850519515671640577043783433703046755440274446251685463883292041734511000106089988515062450103858716910110208746470073531887140780621174170956070524286928811416012562410422574632939178686444989008327604937784145283156369816250306574434445596412150498512308322090909646870251528678670950356404587259195330376082173957426935196268107051366298629790008278536131159117580409647699964851902980502129754897644276433338150065422615236685700338153845231594326866408068961153786294524039621680490753228267033525670879812712539044943819339290643532636311856687194905061979873055317868504631159591034952092901859878261956297711943593448721600505501844676574046010641641627752265629395421259115982921902019910361017894150190984121426634492848926999209698176186867213686310787565381057852909055568648684346001132901015953611537512498003174086783765959902278616095320066276689678980710145627778759151921945881059609421686124307759656449059822017790134805938756509248797918233790286096017245815788497981820712439884741238601745258427604536861634202429243700303295975283631309787986996870006834553795078140424073312434756803035221251645160318249655999671512804806469311302005043260365405088643973350199274989822276528964886336879092002810124606972733199038484710739898853695219619864292501719374348597567665350416405567361049714914910361445109683762572710741269461714160984551213160220235170714338183325419511892677201426935429696746125165003958361753463668844578743318191603569714875141290552193959319957840525220540644340417865708539952699205467525813534292752858743097523064682632151902560009132877310229138690063639820759273643228500438185205177240447436989913539575687505209784034148868316587323768915967777770026038446830054217820405950781691865255956962698531447361855893795700403809758853318197939965087506292332306681169677616525144347589868462422481626064778345563691360682923101795798087890425150138986397934559774436837215099532803157136447057095253260702776167440790548981424859368433736388673984909609927300425412174403957926346960263080264634888374210210042544123509301648898681566263586350874568023576649523003188882614310338662189989159569407476885243931722272475730054894609216280960870706092460336242300639600547021140632298713597814627500559895318842899718325274298413382937295636170380134141075441055495847227993009707778921945243621370181532384687456963007969392240329227811750033990859427470089794791491040487432702638697513833158702651699644506515180410980353322686634636168710080297909942378935859146491529801402630948973835806865471702435432214917701066568257735473166257396789915459253785341959132371532185401164783393543481150609635705455121335257155843735444193144947621886741669462899707203117937537353173164605828222499825793538922462622880241515191455764505585550015539076215164198025776210429498317467302851868010039341977815378194943817571826544230707892463140511280478508254447544302616625748375219144641770916222819229980596412623833761689893532371865520016152827130422029345664667869843723489121931718512591333296059052742061512237416235629075159608565063571628232549000071095879740737112859439773283638185894343924144786678678762707454573836987459270826440338240962239942645744504078292663082788473627123429806351673845171720667372804625401945467726828772667423966668442571752274571967298848175776126134342424919791696128590293143728806860189306394429068792239379960805594804653826932942537763064870377067878362569398230972838892502189220809850341697082527452240820362741182069158535485793450907637219475943735474677096164051108878693407205469874837079278969379157110537659707753561835906759950620537510770920372309266679767678568847208924000072650045379476357915884482878279566997452940962160351769570259933791090041656941762508832028178926970766994315263194306057858599486367249530444575641784982559532609961100662138704239024035877996387105542723390931269849696143013763898538172351651069846643944510733504322025630678268692218152988441112306242207542288809259133151250164635398754617491330388846580125457782823712926923201684388761435085601264917335230102672570548726137752741967951221650405723648661219663055067523556680160591475856357576050963586885588901774954849490176004927387481929583781189974391092903460080861894184558638479387518559513959173488585590440052849405904227333901324155826210750817859808402505622068469454702141218521882807644028918636151640272203764989167433379403646353919024004676810299682508937409574690034832381417201701542377767513258307654564695427136923419060805669594726900955098162612264659289025458883645581318701850170503906489878163408186972281947831775642293278082923437013500093075200000937424426224944458977102514081444418709476850771032869369359711952690422384404755882954115499051581764083336667885522814945567284259433590495303932753664420740086455933309106926770618198264197020702275473380565412105183628347573434797344047492875890512148450946001300213379877051799508813581133197483818529604534829825713489063146118959373817921197383253834217251554846271939846353986950288998691316340201306386566933034171080155633437078795598285948778533676207084064289867510436674236343437608704230580197155119561184255502568472739303330735345377353930101480812278533516401332088865910564629005983496276323319708238507400234505061524453935701358747437474929020016313958415587944326549439913450053609385415950497954280687890979411495486425697760379640864377766309456836893239562144453066898306083272230665319946221196791593391489672001500255357301473014883376922785028691284720382038587267105748122297252388961516329782819917509026467925007019428089431157320190747869499889456464074756966481030519989207419609928320032894910586147583639090204635307959252332869018383241252494495331259743787789398997457015757738663545401886849583969346478092257589687065567929782984080920659487593510580128780537805779007052008443224960113571602084616389383170285515508979074975584097346731071359731858272436080317909159111909638698591121251745325231659068445598921412446841364688635744959542576227789677135255906344073570137775697716251368628808307075998827495413557592945221892559498356812015242330139432280019930450295420024555954938777597241222063423449167563866411587429280172600446006765376780925463384718892434214348896968215561066696959060172657620481354121222292615130551049215709062993798596040731676465001447579983090357309313951390174608829544947674765166755314350223705144901295883706549538150523843320182935192229201249938534954859235218672798054596784954708728389376497114301008277353989239309705249605507953102486631064469862393039398825975930400276620058449514510470840783992964996228291920718975178987567890398299787200552186088239546492907370510639471233141622146951131683252928593224713964228554625041306060109036710424118061781284830757251724362861994233504389507878058781907046357309110248966765419185630971606771903637287683716958758334055547919689126751806560717072573516202402060555813651287565170806217762804851732761140107719078307896464710618908756061047484858104430386345568686210679524247795561200785234345150954123927016873891911210584079801734205000758772639543353950676169919318189957853835112344675261317364831125320361634116691010825476864917105700791418305449307593420577881284788452135593452945562313799017832347369072493607182758731829784895911208264751298721374253993857010438113134034208387470591290621658042031239150883746599036631827560500569248471226332725839424323588873556944422497204934406000484893954274599736297013220566758535847755198211225674417719957092324563530935086557419011720125704496690568179408567831167026701941649445852437347026983069934005648471879866180841013146827758709062896668378338734921512543212399079717477744428365505876823891652256162462769813851646118189411062409095657924821584783464215715792868881601524182333021264002532447760411203418900565454583144742560883645938398855032727095050691204832211278534932403472539547623819765219143465915575077875036805279913840712069312500190621419591532798878560199409976349878682663216194931440524133710759549902967499892888919618751653723890836415154364901964283661273120152418012776231779076069502009276428590525376360715781812960620950094278090933846740283987385458233983065175365815569350668580302451085114386777934414821745554863017541021490072953904553055785348506764307161937589095976180542749509690896465765751617278517758973084019624255972805870806281742858341259310092720578186650987385650616333860491098696772349327560927854918415567921859305476719910178540347800741658809702872801176721770853222486868987782862696265163748474878511942600360045289145652323782685730162781561696791335183086061335518024335147596143295774486987364342119242916039257256544546604789562814312000409824290197818178637394609891251946182848752185476471797948854807874323865326918749311734588762013249695841322206671401244948453833975492280932100993280335063707295632923922528681724114351645101890694268784531816644289458602226035924372991073177283572051291136790315642000589040330709881341460373929313627944539659646429183047988158598531539096838877247353774321475538564587614632012734758111671584477345787542100967028228421504971179351953140838822606492455621660134448663386270300751935566319825802702564653692107827667358870048547104253085874359744007991849346362707191970178635470423103714983318964169500261718377392648083738233618372581621719313585784829735277654617588926935691869980257513766419406339410152669942409199015873000732279924942248521207662449041202639148884570507863848776549954706232139939543924664211370009383246163237209661575517754891868702867687105717688936152786556098476042963806979195628982152741310479594978442637256128647694343302644921618227724516850105077219905578709013083157349454559645838265529136615078680930384811504006097677558023928534292930859127316029651498848825407412321410088261821024654808108949953479637058745101105072034028529336261271169741884830423599639935409399835178338398258336421113356785108665286442552531014472801478177322001619106982629336205907019305847473935137014537375718479351901230378524185131406189462629657464655512415012139228744227819312362264113901663147520826469726616128757388511684224343732973829982001621925223014909329365759563877616885242276988310917415743720754023891493350634811916996970792287332063129102670810611298890048220177841421638253708789743216814698508503497833989877300104041067774227890909590933651542282667248057812643098823837886757639426552539627222751668068330151867286292573027158731020778091134531674467195652701027287137710281078937471113463605592382990515130775837816915346342587689265238264574982443098902806767530577640755422507317617584871978769731378695680128214852743328605767415615594128348412312833566960888272598826267240893156079143230415776060966803605715497976032943879072296861786549909134584666028713075125244914643213886578336050121804507557373222163823067406920211669138935764432387045845782277328713056916162484557583982440904715899672317929628480108760694326718383143437625981399742730956259901838691212607146722739128463087880779701844116149248205981075805737478568306646863923793831287130912171466350769210267315533643026633683090088283672639624853749180303064166685430350863652415454232136208639315201091525591372586756700830583871800840896298626482805351471750569314603190787167745379353423744619509449546769451105132997284876880789165263240306997431432143748166197566084942034598613636331365719545883530216149465720685700773615995588462453955048848460396694740600708122950609558578513569250265733502478956353304448424512002189457221678934515960626477103392089708381450072080642612506935523010876941100105162302214231884058704457088015008633857209773146853131640581192764314753681654681261403506756761968816267355854712572546788707386986836620703168465363583245497439234502447552397602519357854801215754515978445368204245412719319884514054031445222809590733862408342306523524632069099701788701055649390491241417042902517691417274525774032294124477076432507548382829816002651487300356044959396116997337002699304157853754245997058302520717174082176403237320877497971982066027857687198231129824391820057753436122412971460534245813969579681000335969461272032150337430511241529973670115042827495184572984318640196352776824984528465668528389751979391655481213115147439428881041692048644526125541027445406949192057174708795969128829383572520960229929166227724161324634050004910000536673017362350361234263334161005548284700996478253263005164991826400018498419681053474368624174956955324834654664003539974244000309952178260507114256918453876347605581874640807817006110207075253951134832330245489430231934951677412134516052174771727157302878811077057779012654368645645320543074383698083340625657556467160681326383390341891157822082079544030174931874192032192685459467021600387926090975414592600014806777511929452221707858297744547408244430958750600972197165841162673725284689544232615425658906473530418047561897309550880345308662391338677410127714756109677763961381103675810496465225150042525580648306951869828211738099313463628741857257830354460829404720863967469762287355610384602514145464109999087719237718220287323314229275482475688394472013948146099546854724995776349119098313170667402760077715879995687014995050442778788487734958534288170385459004806650264223693312869683269587443585959947861605597140122633009764198590431198963261346776014514573476588009858196226850942496059990491792263419842761743648331320253395394466320059961746224915007875977506425195204913447980348595361330897566964790361724570002449124378658672803509528609811055750221678100340727069447693102874111862650436261933354063124263736825002467364928461287124306028577153077276643597413595958676838503617721509135234417657511626511216016613652130424631688154439586677154176361785223353758135665359930145202523529662375454697779403199060927680512412228619770663690293849007536789149074387972294469351658882868264777449704691621115151818837675440064545684498712980904550138924831483584824437543373269130992499455268337647864607969776533027482914842495196337536455422646549753653688199290360237685121624833961254689359456192289027718496243311847061389051876988416358861523402184598137468671799759951570223161727474503358685238711180885124426694904774217579906521216357779795230049344417974704432734441168056688398618429302681913801638262586640299948284922645505046279265695058517987659751925183438969820585259790454437502465715538331238353810320262747347307531962648644010602059947940115044570638957641002269382762695840138995278807318299208209045418610498651640477143271185753283339745076585785061320609285842342420633758032164863406995803066320000929123747824346949995470464141364769483376258525742149832975873621347640543272114315229680948764128454884563765619807394777820288378995436928641024110589741612391075900058980284541205952145512320716511944269656839209953193079194301003905181818645743313370754668274627718171144588630483039996987751761987307586644116452341942255140931643266723277986299181419925424783156290499709018468130407591138225827937376635765821078988413229023722612504273815599663078883270727632762466622449310415079445344886670043726349428048427666042575627050794844108307299718703255723683437321360434620251718756567404433310736656737823473312329971781965238974991701656174268317577300449834663482119056751829268550876854054708071874107775532704338546313096147944562065793987239776660064620669724886207780659103181929424187308841821488779447406213485459333703643854691470702832563933647714217811106975337398771805419153190695436664378628657971515530005811531861518364485201809353891885191489520914514660450469377423157771295974127449475639086305963050408391940228287605886153964458626342748807387700296331116693317614989116963375926147616383774829925672568359294490920860118578254203013286041675743894781730249034236443479745570942280507866306041510844303060432424160606365616326230324171143454244191636468884450637097060165131327015992873517255260270176723782536401781155091512315234652450346214626952245184400032842555840798091239071811029894250515715268058791314280743370096761972182292141424815720876605798847133087663369988455508988575364259031750767889803338428171441187785286759891288661859861408439952454127426928147773115231789254112332075484758900122226501085071880407214672256167837536461682415079244262038818802136939097985862619597743226958580787657042410092093074849593359279783376327352348344567080689144413087275752151849245357751706745548239971640101474810425870591063769062413946480764199570786646480384576122537429382981115420644264260367477027503942608223290283460586330749701673879592629890237404356274753952507802536875445428804956481239625188702276218762833441511021940009256082954788971562034975394311741615569235199902112959769700395928820989560146743086684306931172718156098532283314727527913372034525350042018047752922730595307037079153016978646567899292343714484465751957241096948650800917223595824685228191850037342428605146888953479397844647748037162854591441400967946972197425063983508341052011146748013500100357002203360631221578201434929278226650529376823182935571729178417201958158449538053721012341375880956560239088327814859150863796936712932383611271189206994848645383548735350517568384577279857149833841208229114432447618617591729645498016806820556478060921648446888147406086365237149548972154687712888629881334461626976079168153694902436875726578267317167161641339010358882756529529539709853634261733430200259475135315388750174090458099174751990785092743083911640432738630765607805963923593342925592293156754603370414809724389686311413110959195852176452141893561606050022896881702296552859292070663605536106468216551699049933097286831496679788851313284036406872844301052727574267572116682859301190398877382949907347466248435740350867907252331728032693181368287377607983763203952474454092253320328984307847542750935091095989740091848865961226468530314004005514305079911995236291214327493061944231503382257391661378520483044426435648323422824742804192632614831460686022248974915474151014479453094397373450817532660303482826450560763774946303945764799423407580368345030655401783668916255960777054729937317829216354991661480254369561482145386282344703964488101716018315254739214262609171011472827407098806492805181794875001574960487465928871403225438201142302280101011466998406106599420676153277077620871600862186802103962293619731699162180568378605532621740347587047269230724180180603022287097311921381838635576831169971809819167502120720988814746820651216012693360695174977193304627846297453459228782708702734917444007360284863066927990474571174158253228312711380797566786325346386722377088526110958152587689630237924056894807327361709488136827834889547131635086879397458540420689205073099833320422623493407869767600740187470073516312750383291019135421327139239939568350260714863073955861444949492133256734838891648795159577314704396043812666009086796651955973519095543826317243962259865355882909818164786318155829877352550515959130997541105828647965489795715034194894272825984430054577726794579463716419226159775460673616859355935024559315547549085674330893408145201078662313218850817559573952733037812992980793166789646421622194265086034823847362311510660705903758715758654373450131632554594449733464466416568802497520682740352525079824499625403453497863700257091641929087365359937662500044240639559678335757993597869354328695691154492984997580383162763314172022743297971218233170617731188004807223653759519738860927116215417215011119340316006279541274135062547962875138779443698022687788289478518847020114739299632790472453151634009813283752567021456061731490386919297947471830822542703231597857585363456890790250417661635918832389313893133946520826729375391084678680036219768051911733364112447384952149737019788960344085910401584741305337050751461231310062282184418875019453087109926998986211729439674694185408616947599951855505034885590573065734167843524233368101880890395679814994540118762344695290339109959044595697432528699388665273698946501211511344979816212337733006919699641508873523523822237060443631807098909411950495883135406074003007320168269717736433071864896161874944057338105522535080562870303195670013362588072181815950323867209213668305921357800839645443482132603641483408998717364500945162626244007851918641377584919127581290169487772388016046865272984158068547290229007036676202547453976957985900476092633177300240783740889487092902715467911477328975005013517643502172119926381655732026114367743986942959328184220561280605391589840019233843229500803050707499025191819416678085196841129069274049307128794208483912601197020075476264700833280458288821871999191076169253590797873968094205915921716635093465016386483495404573420945851815020801871592896351811855409429910541910094066187768229254551989769416434062417537517281614414869740068808413265721620212439773543127000266111338869836029339327360089933160151426092019169307901543789301892008243717581166208533790944144366820420952547359444480867887802004281276854141480350039729749790775899846278522941201943228808269161446312298603902880227855069993900982192585464889876373946754576505692758867386090090478276489281462063376012433807999101317189466251706857975139677752491260233405142994193383510468358609038270915779530121849854287259137499719789018601527326588609183284552128788600044682668670401474509719196624485292377135029221660215542414818874092396399993474946717316617036154875063620095743780301734634917763979560077131165930105778796139869428509318124558809358161077664477065172630677017707402888879691728420000743906066062800342689185490935221701094187511373294766398447097318348412572767527260457173377619626215177243886720701628570413817066934420871305257314336199476946400385673882629915505247512080094624554413274949772474607193991544142193811140660112706470426661124858589859371410061200112538252329598406541736390328977090809537929446404879471397922034726145993684119297579476354814138216745620833552935598044718395312415351284977218155277065140834925789022888604725683683888230955291649615434700364209364985508978636155875833256010507040523484770313222120442002379567309809263218418253568732393576939281373234950305149058567328423295712736285568836817355081221452126736487519336172705912324092025669864727816451374885830831072877470101343862523568270921556104730242793557191692267006736543390293574991442410607580132474706508053043425428620418226340179525425247417322730650508138195410794910419192783387993744727842129745813093467998864946182679110976014158933627709371492146940333104506407382690350964327067230842528790272997542441237525533948683534330786410812356327360905686060837100505036713254987315887153480114654300803398559741232556055055678915163162361018741752493142530698626398531751477258737916113643866231403822525657038226350143211368994880891518527048034179351017570601167922498313567684371682092019285673671386341531657980580734357288711396854801415850869452942043555181696429837864497286736182199603823096772334829887061402887688333333780203270232955537371639355876153927181435421518617660975196809984043478529089329672531255870277668073804686230016748291391987591125882544205848580174162171428831813483903800962342905450268362225065262028267869102178437110756340014136117991266685884357319765486979176737670828437553421760492914820018019507016851264054357287652992062682865180332736382188081988240148747017724623187399882475561302905082382392826279057333577691424056857510745535171326448357757982126382958129331137538943717814390269443566981340879657303160900817356244744467479451934656219511004718078725810600679454961881037951354404039238928337015547404961356989135907012526538321772476951037201336513597604697606384333348938685922426513003810255996636805873885853094499021554034132606742282853718621526318486141578004638531668326896208866475749916172192308354333612836108576448809015549565169562229200971266881438452601772602037634393053866544478385181867149028917293687759595862258317097093060954051434514721134047455429475747375285020918912793817119600151309312115085114371362248585244616798732923532362918666941392285384580425790333845905747209032878145936499092960640667887557615519277326783289738606917967215991612718283656762772409655933709539737276885156373047215181293594638808449779542244331572064704376706852131170088592661223753988918262005321380944899744107758489289715985214672860049162953828374625537196272380530713509699890990722866337890043217942249322702972573514070903673178962793911708900814137647656404626373349017985415469088616431998343110853755099640233355144072054889385764770883449648010278636076446215854983555043120668925350225194613131056929398255252066976314004407875536426849702396039871145329454521183576440104532491859452017170967806619113230385253840417310475376844480435533354354835694302471580814952338978836815998616087667471102228180327680166582076983305462524222203224046345889355221180913723976757556954144892899630697264382251415801260051447970041424194841780588436342524162737798824185502819282394933836546055997322004690565069157434921515854198402892951168791633012157766645134265796104855768618029862143976977796843600033015176825714542028019908703100328552078119773839869201547136102790807481843636843707191288624972768242605714676225513620543000813850685946875384388055592632548991137884732766687035025612694982528843259786568908476264320049750670846249930752863382044439162285666485409807273498935239734675483528759880473270393904286124777722856073785315768865424177381402926886983160383882306197117618115143481468545075867400240985002517697610308966543108279905363630460031516598611238192059258967582678309359330687745404810625281958152652086941074954165890323300760088184659986604911825083439112256450369843661133508731343282447955916314780663571078274788837886132267954056635757430769797525353245983224980868175120490610775577534546938554707845400143871793874296142303058852282896693432429060029529106312987925363324644602254402662999921686216980600437172804128452338389182844495355333109061729646185223477098644633776966083253346760400691664491282526345468375495019470723947891121376394416524768427689227488276907083426889152798868491334036843514173245230484372062699687352530222546632437788542510122733230249047780852153947608716207876913169925052283563136366053303724673597977427783370136714858695751679489707111713550988702980160941552710776980288052047764488163085865933885878928229349158191805179510546299323619185066124303049834616481985033884731980912628661485116456949087973191336547075770632179207965208395527551998346643010950830627577013064778289625525161990769308715280701942910653512743121992741430897963410612873306717423113541871431716813294242932633973609505683510901380710724092166750944210612862256694721003258162427637416932193832933096810894535530694455224356314134507618364822254868181080957830102010952765503371157917609349388024139909800090058678859221135145443760167787498822266212309409779353563392008718531041629901550725541951134071270307413876049701986771969495790709620608028017559535536191446750852995153416543428026158411201020451326315114004465702273473344860996142764032922679030625462866648130603364201788157630957717617764031069912187637043389106411434855884928884509196681103819855537674776989329518360817072242022649029521914971473767178894720956492647088469581126830746070815093604643023137884716367271445524815242678592808651274481614383066960715420526056200475920901227986415754578135964132375927098438261560180022048724190205048704412626304316544578153638299298027397488297498343792921876619749785190599642385199298700355228680042687754496519080545737824764573084474990116880403089695731092573116271667225119011869559466581478428082578138408212132036712989206422093968937790141070117367327197204687662225085771825666400148116121769693967752270775753957011618705774914744409406285222119326914035271382254849507059609637943486996952198354133266689153633203626229013085497306489737740141481527605752591833637662377539428468424988314941243839281003321874692949259062268491647282810697448861747192520282633106963182888021214204739387220633213025499135770493091240006255300682433669870588749687269772421687256374198125932753653814055149987189471195716864074376782664882959722450851881113248718881444196151035224041787433239781327741285008380877161263219114816873212012944020934274844777581939876513430035235674444343628099011415577416848572119326517483012973210314506969761908241502951789928588218874303197397136666922961892895716183237818007915329623890357340023387980973087297014092741071117299556675510895832476305732966361159222246384191172443852633220964484315655555101430743859852933580508761282278630640853089931908098482568992007519957679005493583502039496560451068142190394098856849083838450089331027232605549722437859901728978066855487951640689887991944982205347958363971004116264425119203059128836538129408551206593766801410852166034080021639544261012823732733553177031206927238158902497268596644504053381110977117629921641164518641777941872774988387452666891325694122828581753182362450164753914852415918590745564782082664078451767548700720014904740419438085994304546687784173191122584626963044312293293122257972855735792733134544385459953640114862697953571601594268088129175343415026965663976936225552092800602732727198341059639788065346960237569659465361878482953879267958638844294166891984198283272976550428204413648171007331729150624869750825353225241008536568408998493628414505138479912763929299895417703800613597690682016296667490622283185120468917175593411658714305246528161831010942346842455207299154200999573572590453145928513739445977576305117941636911559914164594811662906212069247222652601608235259976031028601033954012296555895208953831449585822274184248216260582594401616359304808885108828057040444022978201612356977930332553775550123289318217176190357209899437270096275597826066507767877558560777095433573387438047771256757120592906499074986474283529400763919566255506977700889470112113042250949410181766832021532414905396287635359188318240987198428083653435854640272648892878224326652813580478506490208427311825374125789426173103434876877371117936853780648811585436530233634972987752081907605324669226818041506517705933030741819026831468607260083072107429320063499248939080971990991302040485556684721959889525048318400267908108117558455862579280511572843690102908576036378382304191832528983243374053986429173202242453325551311036809176093780414774995020535501972786431684466631384104265546186856968764561277948533210616769244721594273975344633377151193214227325266672413760205291621186029841003522155874790488346848623359514762950399392649498969474856625716612246032718418047045721992833641482391553386766256549782070730846121330622430122885174376487946695372545444056604852402908353137108550581713795306118261918641167244937006924770485393118146207360001973628687289951151030363164257624987761601417094390405096188302910004184807430418512321006997382822860561367727893477109206132815286171158334584550720716416652792561950493503593716832748569356254253756172042679363729526698398650800437163810218930996332833611400227012400757311643495825669339964255446754846523875012260803749409539800296041342217234678676077039360950857112459233777833240029623169916371363247616215774644676540283309864837119292275910434945630088217746005984325056043358549543124421172875813669749669151373442275962045298630294786502308400345332371828119189793412955576087873044137734356439354030625069369208093068166474131520807577175939796250833112976980929944189173882912881380423824472017169794461282157255071268047267532459358811008449092855611355999998098528202616649101263379170823322477262108499920134398459410630083979598524436312527188285059720878940678345614774007997078659542615958236355645322042080378819380603251959564995932559752730073066266337501506932529152924203661291470110063031872822238783310463595125508393006602592217345168749314461871855766389888632252155686647804170747211161994983262350637570785063569061719081276054096293765780245725771294744303680785639346481952393485111871525030506705816141158289255015610671183593488666989442732115354902242358223723959123578390996516749016885099008447501922086035567268372999269914867519454929996966014146751287120194166932997076465846811643458265910260913874812841416096628494960262882533123795769866385580607979284436364838115437461025100367792934584690815872420076193496371123557455309614454591715443086454283820869028554870726490581711036698362887095916353747446819928834161376166682170356117696537000879423960887159468187515299817247700876085484630569613787950727480960326777867000653924424845468072994192479063757202135592376515661254605193821685971727938257065805351144692874022827683716551634410925019296148204205479648203864916391895093258562150543799542357418835247938209482277756827979042831296022005006033261524779652291195050491673941825842984830577644779744230233899471825380564054643657041204943272173169369100738995414317625688004986037190190476428742529343838187393346988981374843131841961736210090146464319918400261694951717186428454048283561076265572439137457177441605838377683847076161574047821842591240322366655303520251078119037224224557717390926634767566421856101103051165324328373949910668430199389498061245933913287909687634373524089424415427256681859470527652180787205531888179786722555915049525689622519123371669365133176954750399690747379359397947050789320863724665811499872463899381479770142420967786178769321509342302862828054264011276873842738963811913029330610899501737231870948458021965465886410660312507468345675377304187763270393297074558588590539720954425435865852788223042021217111385324063681339386430058403543375825645014591414090890543748390811209108797430640645090268992452698645020867034950357704566523471853421135975803102284977847710295664451003215592590666075139717843090035682146778137705523016400076187722954132470513546194972682560617481291720693610307849148069908101367385181251343534937176301774597639990471061854307168420484599087849141100600378445875392611526967428901377214905346093349232634142476302483592263091257197934909393245922475782626351026076634035940590167674068343678128760587071766457451544343113539670679674925232095710936945168695091369004133888915987595313608485315147460321800171023045022733834428291984507951345842893564102495098401826427689006114109033483480170840036156493691102698812427311167834063115199297305401480483297952093974049539464026499514424701731552667651975084560592438315970289820538490649976977621064625371810546273661153322256945304802534351168593496362878651750349774179785191376242512766462432859780997801810172320041945652738206231001024356224244894236724709491238396469939856281061291311385860798845252949250998967471258227856186405549510882011148312689689513322527118623204896418587718712484332152441477792225683069857058009065268959640592041517629374318106390032823609094078902452725967547306875501406302820539889542434284152465857075630236973343293658459210257519067085404487194011257559697737539036544746601590834832036637570456899221225100019793676715654140920322014308787319663007787291405357137822293437823106822836595665060861442639950293667665944296059585649470778999936305391102340890549429269618510322248329021688030109704984929154434546136662602817650915145792900495289104296725130987588824878934348892164317530206075988050938228112263461344440794800568024789438985348270323518048836338575556078229230693347707697812732062542543356069621997918164488453729494422294891822586813794328771726136590492107405444488564085598963637178556730277151316305744304522220120806612490951173257520349557874376529128553234205246875178205684882756480271016995235503151482900605178081335450066527413244862667991416752614790668918817574432109986793803087239938054920612670047586610978037892155716188380985607996146330790359680656227218825301249829920969258620319598597393090398101743663522492387393114275986543258254968719236283939508740620321934222344956653860026474172183164852616075170287709725692956555717907915635067000719551733587505191713864746581955972201705660348574530383132722692192190300732745159173816004464407226203601968666254608773643970635572712477503505243035860556611672146973238507812706717887742631186188144271436807554529544276630866094263974691462184358706497085044141278244611379070628209940891043651998609483167068756541941517302678954847715486024456773585315399127145909227434507197659058061883277018853912639120138060153537324425609992346163375275661937941467685881611921279705566937397595751886340537470184064251230042691049487180896014274478526721738914430765716772589762681355418394785636672341122918501581249482569227656665546345351792792153600811160769975893346456207339506312189435284530571536959031823959028806382771975982838714369700954684939969010621486677685799255322067373952306415735251355125237270418427570840405570314889498158874880737462942291572922572515173586806107016293704968509261676087921358589318032973648301262865400634044306466525590134297053489487649239401763044164957298496563666069561612336852269984226910398060394721629163854189797961628837342592821353442884645335712811509593620387128785436519789411803515072827886487333791552939383023291791664048029235923751930798160439550811540034145215521880614059979225131894141955331717022471454838371852672959678318582252256371627875744779834084537486012388954281605443400043530410102950969669043688857080523107809408106353147286516993774085748424534568026062936385536513723114391572944432128195908217976273386855521296144273264824730908024466301156344457557622632791114794922791121679235911933184479076564507514704030667187365834376405693493486525354403426447176826580229784783771381167630962153393419720061768599761309274986121068012608262977719652388249174663852146327689478207224210085297935139597364333427211795728018580910614128849466945980395391760765387864889781601649270345750825671715172862698173904525065439659744766462253329722731588658397890667325354532552443160002483088846884425442464513549927575926753944920757825139787307805915842638888456266036576110563200389733335392298643453282582697806351731738116444332070714828159479063221391461498561867424684147589021246722652689915510710900535711864857567066537185309964588470210633142918483959427192475194201421258452862108449402876283933562560705772828792286401096179303307607094126900455561239131857193505581979835731102379054559768580022660445056441261865316161611129003999241947098034303743623970492344961117498140670259931603290664073366276565460116602779625920276574395572467544932960140386655320126609392213792520546660631292469491743217667034780404855266518952800435734384246781996346150479682488354467120236800894489029696875660068616974140788865419525461246643992957401744395920797159798614370816415677027116350215795101775794321672343230020344109318721066784147278455253104753378574665148835379954809783270508822363996409095624681608097781926629587187972927027574974853777033399182439107352366812100144045142857144085541433419709178105874389761259274721256688868349124988228176545447624433048594785323929837191157460257834153006046238906372224349532994998424744864042833999567391313492011039731765892849885296011065772258632048643217487878471789263835191584984280488397173334418265833730146884431100386110651015376107128811892977526930990762858351733541039237231423372590485681039159816990121290679481632678723656267180675906690206960497490231245936377094831134836872970910595385640091961147999365729605020265261633062316565827083791279053774076450471110831686541121806480920513607006422907469589395908411641250319871420439848936029744110390260262296693162897004059794524297674695107773262372530558566577984970924287054560576986786402611467323422056278579724376260658323166948584079328807293714076999373506618500344857889332356966336482231319392189679564774061166664125360712666423852888699238432078076159241526238949767189501682111322182192187686384202578595470533658601436601706678000542870569593096427768746748788843078513646427407427684793843387717412154237179648196941768157300449875702596871357110962357383057813558487370172586109807009569956438523180453021935262542384590107549941935196483577263469122724059383160469119499694040952115675891751959885828734672499606342221530106216970287076560156459750973769269819752193778162528857364758386025914960036203065203441725089844088996662988037137869990444163052993497354875473221565744427925877597197627764270013193146126275588891250013080304817209685390497225092572422526438521378502373414375668159698803409561747316886376110729388847056775050504911693822393322970754762593962925770366613729132827115799834206423234409333419209897596538420138628829056405523992836053189088011860296961700996454770017682437084175551078989080717125618026783872156051734414744203070817844761181186890267065798532256541673890613097184680154721413241902857671044762463777450253751943671474005565645111884274576739507258507343896770415224573379155475539389616011120349360013693337134986838517487589833210757735400015483050821400584758494620934419306287250744951156420449831732342372205469141503335152692098687707824442489355959354786022002234159363412091004747318803402535922665482126588318865319047646059791245646420964864298391233760884783323280965488039565414419444776851478428294752159903882980111530903245860012682542672769637825805211347086776508527091209792693757824529159991810591387911185856762261291072826307278793635211209290101258485294586977504217706207245363090356731823881545037449760041964731740328622751611332130395281211212841815263120359965833727836187874751219036272060393244414418813040074987207048689371158528578838334505321077994675779896744113402773584970105974432734990823528558930737677733960294872737968019123994968561547131066102802975580733738503329807936834188981300524163246899186771346986168340574858395467595289016519841421682623343011578569477045459473763406997120781394665224490906199154471765238665470334113868186858847035795781661294316327886515004501761231071010292099258791320707350606945920803481563175125362205316704466796490986626722037399991126976280245761970794967618521975441090954841073461705906056243044537999147303379193481535323048950478477970333742415908647704608348171280561078462876826246407893804630547747490800819932184817046322630454399671615899501502682861737762021315258432490602475144198818064779832000437540104745642621373807857537437109204923214047602027779477688877392786595434392100679215668825941113088053326624038565767019379719645908052895546588935735112247577438574683471472348922667678684270047534949866352107534814730499900474804399091803180471842605911847522641729717995708622815392417077184836235800341277568405038204877895440642355468094652251835149745882434169566200977611070437656918404656160766930899810849251732046039445294926951951465044908634179092216104699304579896953137775864692637211490095405975126308345469914056693073325047426005053936892128316136340427750804867926533544342119008861840756652754536013242836898479149793835161443763220663312859843565404632748984833460471655253595248171072647269151825080669052923116720450634294697943933593404617598722262282511407996256801876545159458910173114743767712358983562565513165964714723341197919913843681013835959061550815407831429801224887903970794148638967454209213293083379205167333707530213411238674463601492769107362257764836712152139914224683542270224024720486175554374063047957415821744918349692053222569441097713495225095481605835562100842309344153442185710157904346132759866240454927842758624664510293505437496463919980202270468190676289335700957119174520571889804677366630704390353090533529487423411895484995926515235512174582689328241824330859172505931478323740283849601931389172794201148852375679324760125250494805453029047714007649488638887980916923689054414037067179046595255050907317635829366502111772410021605816720457262289563869456965402211295744710550371755658748428347402597352487034516596078877419647634155870956178649488858680069204898438196704879069987940243969196521231236772718751998847700134583532707068266508971191340917823696255874072843858213778597650125149962746830826935158959173435358231039629245744941246450432311668284589547690509099877854032807749982485136479636379991647221017506380940103247236108200724733320239951341617462790355171367156966434589570199852055854614228758100756005049064140411148201467952311291471803795773119170470954307305089597801134638486935357789636674719995584438784966566978313578461868544924803514666548387340443175973226903149205860679290381206747729568405112844515352151462132412549028356686460492756496713936702553117281387829211815317643475210776321844082035897448824161225538460403019489473306999231071849414155150136546539703694544979105319881235284295843396575279201638255721556222651894619547327525490969871473973126416576156052378695412326382493946332757032554663473053748782960977215695342019280832887252923593386781539953924863303136779955999212173710912276912507041292789192813814956699379251918971341566347809462090374099310818859442518304907992538376579573679248113764976238056544080473460625096452552951733423546800242355127690389688313983148091143474531550359933573455846185866861110025852963377123385931817708497913941555458910132857280025260187237349476044178705744358101496721822842829808223767200509750930682831050406438332944569481072340038339332732948003855539164759279827083870180770307409205787393558288449909215877697852312765344001874123195405875229286072685719571936366914938299854294148337801342817441245539235496376397696323516273869822008014428001688754151756085333397538972231205568150236420098621098849161817118050136421481947054601388053290896276886354890988340957292671334018206220102405292042677090385987650259945605796426625219429342466424639177143698001545751568679799310115444210716258783761835290766717593661825506670932497991972879111109030314210378943185048338447430208159319723638328829321610608620421867434976085714044693755252576983459945108932556915198451319626273080784549226539392305722754919490433044435855466020710638828471416825508075197881100710540582966186388760612991316257240640426010882472238955162024317635570238383590494721104769674177250429436057132823308952224212723896499933992159631490917887159025398065782039715669593366145337279776273610315078639231127132444728699826621276512130948073748980674760869548531430205860475391756058781075817111625712754982169687617678927309728192916645835579181290747564682005555703890617986028262444794358908924082678485414863907925638930808907402874536434597982118680930285983001697099914704848519816819166060374513321266661165148792951692716483463230135184641473329644076527143771009651855230461613509577325108035737173840753150484075328839019200428218375455861837767495506688164126457126774409627184630665307326562712659760166457794135200058429719562771054459872427070885161211697129595003552895213035216557297408438451788359322325355152276169669296339458000604568728745910838100360699963884546343961331867399145473521227982146094559628579039981819376261407450623265727604423888558740474109294390837128107702199610460732354292918818103141193124972331790274420157505815938452916856278077766631660144788538858947132855735369015424173239998753035931112419379200060110206247767713950813620037705269884151376338894294608321453758571224399611619588672880970095691023558616206785741606119517294419388688421762953237360713020029460154270383686556883125172037730156790304676292328392322101386639605597272978196431803765320103785128878498161051426966555820242701955298015288499806828382850944302326599182246398519782595320482469055951539882992100010514750119290628749772861519354227117871197739755885087594093592319062605235167828208058277587876445428694079886231447210290932621622263773869761133336385192801305091975253414042669639383311211564655574365850625029260433909176718537606450271935152004461889128775082364506511163175528463806377230760354931227245630247175313923768869584990973326520811081140062199170478545090276178775364801531652173503990741916959357113650652546021958392381852208227175765298568347494895706331580004237637358815865593657422555018815202031275865566839005328881362189675878834088691585975836726296174565308442635531213520820056062794372411955735007123387292000376241355446857343787897269936579454432853842335393870326313523104274623738208793513329114458587674947874449740651886249240687039723137922827415817047551807173939532499282410263596438522154080958145145020279745629049301773742254570512183933627531787713135879319005832397970814689988751818182523607005664723046848341172632096295302611687915407628363075505968658151197173207713624975686094810239044269590517352659519744520603207715315875211125019035493291903848303299606557131112735929115658411949775332229623777449448948277522253753597045051970973732204824534996964534810986841709371710714216031344452679022061820567836784798061643594273519647850665477210922037824180192243528901261131253893999921207789370860357014273701163326126160150544152709127230490650166399726070333677642430412179115637734264148817866190578638955028576783288469294527114602129678763169218950181912773551330647403789515271391081151940020372219388598304715459314118711484107879405451337696793320977762105774614186407680105133362682655446814910279526474501031188500460211352568335430376916385087736690903494673640734673177084402378342668260245576766890772660373712639809471411562614723615480324410573335450526769430340675858837226544224479566219921842950518876647687964912260606347351427415931888275907857365566836896942848640599474944780506282379137191059251020131455184187939459967230607871592210850598063087466605389329574565817667426209473382165784633061986734662663831129670062776652659876163405209763249370366896405359484213481585981234482981976948505381590622837832029175840874397685159185634417337252772660271639564503690446768560046113282849667576934905432077626435040864508111114298752046620880515291051530981824135304798836324370565488744978039211863706091124652062635780287380081031975840545671823411052530356954195385423022715743281977294767423183065227033440994237823417739659683174769556265138288822709265898000073367605291326438443445883070350291006132039025108200502843876534307291499888711602575402453737927748816506670157594362454526917289906109079977091783829971029431085256760202603387777116255144447254876188286937801334329764359032882853388197017680890728421446478815361024475281316716475909258274954817120943260996680726811037047528138133293647927783839190618721117938439701460806505330845873018060882117189301105632008259576715400005971963485426157424409767083489987887672669041611305530453562455960273915399816771355237594358631594031548948043079933066364348493603137553080527327438730750700878573354741731618128174120270412132606590545628808315497549468478820776969085493348771580425640251391468302949836321468270569508018142254612623242732810578996918722261760417843199453630851735773427722935641324332493700863239810606596468733450400805790255983389612948796961634697446278579523576201504745099092693158311800172523185039629914790682604805748574753849590323716547194899866386922644793131412818977563370365970330939388475561803161272031064801706925506423143153429577514215929833892607219314724689028722285582541495376893224221761958334122675084260667385295398575061582866487071523113694752834138761575780341413487910969554991876009546251079396205829164378807861983652494099124530281270296815474895382451830034554169878962542927465778438052522924860776221495345337550042093119281920909590292182549790564213210161897874043830011308230266697765933410159872479814314140098391275089471513784376414532949818417576980241692342069672416845492430463182196592948120223692286943287586223754844244796371308567417012648466404781645635787894057808345548334129965142943047726408779339445672882762354242687494298649199501795978686184607493836079878993970761192523260518370122194113557589120222888468638654960316317001615539010242939358795873543708903772259509530237524268636207695427152964938518182079625742270164590203291663490021102487193006288895324391625997062334782351597386463507118408615452121898723200200301767043346673809740850874706025760302873645488189139660581764537095543028229533723520584083068844551746601971762541802442396199800793042996292988331731593689051667717395402480040495918773645259376461585221166219499739512514177108267955205408054995450647617460437646033236157931119613052979049847346194197891824067227676030406701341078883909317118131889596179963063320113479889523355679199229150415207434220383221910356708047559760565736333637648938093032640160353677705900423078518020645782666602254728906753619023403251796176070331056437287820066706337171460780445542342349157034596705165663614023280200947635380065061782866712356253706151594580684623853939300696915826664705072037297664780153504655064320219421550266634043682686854548180698223204457217998429564712034886077693436794758713329245537287583436662614833028791815564552091017508626734878029444616464011629980845046695359466865350125569500071404615991358471782009401376475969019394722807842987505508510147780939192530612469347780170206036626266482747185836611542753507433002277613239116806149044160435973493337818104465725421135982612407060996426177233674476471374461600563758359008392298806542018761064893782762846459510176534599844252966771813460667448906186789761041270719457828834099225622914463598730704512980900605732538993565620390317276602225303850181698215517433012785959023834423779836984094745705834666020742966029532750488180070207870557168764784461516933139683368964515094127983771826724429207608740017036913432632953388107239948456782724479523230044065518681581371153589390728781992996000257112571036383134297885935707083711773955195566109052621194021651108087673799732820602839319686917194065494086901447848231605484496611257764081538385250006977939188706332185126974003121415440405268380006500862895331294537854782868403109813927372579316999170369426523915844742290981385641198342106872098494968924886850336031118756037711737542466539246543283362224888686203614725531555133378446482660382516818671788945622647015671482505241682356747963181768230511847869746917840020792320629262262953561451796003868890732320671415411535183265389980091129784594332032016577771113806892113006853782546470668529437434255156792654194459051044651012822577208033319471635745624966858620516901268444867312043064479818628374074203372755014388918910121401925835958534895640043193369009329045237165952536245340449414005677079173825774225205139918974562631076635607987279658788535048664931148581107903092769181630786118013600351472007881333267572880483267314423395140225371286306826338164095152038114360788900083534517668429312962516479176885446022256759116861263262099459482321688505224969015831105839464149274225602282136230099768406891122504535713773079655477417441833907410110509304510572091399029239382882273330932622340551694183573611622654932652554388103681284118754359256104148681507693326682434509534765167800402109829325317031713736579362230623361603414797426952302838487293126200427959808240748146146031642265863259744617496429408589965902166594256157802803175928635761524527926839017164914580123667112511499076312716390972798851938501201719174320454467546586790286088680107824073146335588687325000305396372287908416794374180623969936474593820380944999212527235021548948389951596754227788856896166864706699309631454490406939255621356904797664893002967436574839870648269277656097407531444881579524588091944863047422299024768548819310272205311403627250996191163297452033067280059554480005954043519087092409528073337004378685102022934992885889153445445098084062139762340594379344998656596632723902407011894614332088666587711718501026583193851241140350434200093120405450700135856455054288424856713944002181258931707926343102906337439630597756318188305557268071662726295468044256806952462574256022947177379189399829520820674235081235031477599198446379193691781886648229346046464946650310764042694467877642717297771681319068283052611355233732687166125680280131879205327610233036583809490230566078369646256218892617705885623135474596673913857019592960091782546561695467566031190430297507471065653436915423862396288878607009185336509401549096006250851669469153781084505310523455521250902870786429924738684300215156193091408522241328371416514236459490571224236796289091631633161918271313517270969352589943351868601701356372899596149336596668438289560664617408189679178247974675185717411002400023612831226718470723934971993274667448967099085859523681295625214008095532374504531757200528052317432891862382158453673694256081163940805025503969594972555342983402113695300402392426833805615938392819432159170070969497429500468880261524136111283123446109471581670444972890971934043898219143811688703720472471014648918442538503892069281310615592329326722384271919388984514596054437800138961600662462822713179660887928794246477380062483890480321014040828204428200320883335288759797102995812936710873425592731071847661343014043995035933384511274255380713616102151338310883604825075674414234991108633611758931571102902885410614463024619076296917171621184642969816688074371268382965435269304246211364205356916283187198282180482940777817832906973190540225332399429449458057550604881743075647900465164102927309283913290968226128171048819007432968784832497609052918673477760392160836591314702298981206216120396978131123908661584300620147283422758461900730126346714962401394362328927788718436000448251240586076268786263304663104032463202726030199892703582710894743956310886668336461510264111941713259593877538362381525149270449421304961003036138994276242364333999988767680534237077497316878548401047822697813720515064855314372684793336291575932025810164529668396130790206223947075426425613179564763824703781113621652145705165801666355877777221261244360500321294286337056596390492496626364147714189335968368743768450623024883448150448584325585525305997133443807667492079592290155098394001244655261350487365074427364365926248513253554234404153635898507616110229164285806305191521413749992187061040273174174452937569692352635193396297961754222162240021338318817451693888960972819065042912933042694979081887218045626833962965397253652971277700983244633675041174894559753924779560522555349323810415939476791540895047414656981445072886036772605326864031986938954681629963464103940470918033008305908751800040605161766540585090795210624305057857792468884984483928359177166393194932674562537922461243901468939580805458516548409235547518562070331765003619873198356974370954943126429377570082789728304612745531588315911224503726543599192126161340701671610526155707538428281882539999657766428473834086701636055724673587222373534019486476477604365810526184441466942125161398636075811706115324851628480634493007837576622740007559289712122284113960484233511710279692720017241757473010593900367973328492977509309176677202843498906942732825215004471840213482381186336576155719266128834866441539583911857474896772769689729324484489246708823967653875614345684690508651692064083212644446278156105994694653610939069466777327541643970323383922571418078258971435041708394934717948370390595405100773798530554216166540919680169514263268806529579170593642922653490900682274774338207781435673544590422844934292507174016792521373984374136693415513491690771799000805973762162989285081917315580479340359151592500916566438088489870105763529111423375278717434003183154317006893745705852691712709091589691931955605190973146331557351139823751629454382645143686632692899358153225375334371626482224604914607091003155769737727984605986322072141800493447244731529047184251961696328576877855233098998634719787152339448864004069718494498498209483542191262406240960574506573945615285255600217231930937716870021113287283209762721279761706552493321577799727099944847221992626570145276904895293111138533972350170719311986809646631474885017263767331129248906001199379108404633884382437500931370219896671387814097707344347273539990901726096491290170953041577877874918685226638675043365599466520621463392504953788027256879358399911114072620714321419121495870743253845486465999771131774963234941313940409473257509097290261814850886587782499125619406435342133767255484808956743055703798224766050065055019333178976681929121319011871457805612548368529486139908012118416016656611119376238513995197857212384309493199625811593733862519821008538208518399921444105126298145064484434532412527387466683395634852763224917431440580311330423424866480572311890378454716191121426123818263102132523197519807086847005166653889736785869126537207073323636517061813958494567222320024472957767239905121005390076277614619534100782496479097474829077208462641153299862833510292594155005200096568327798390545240474532832951656248743770932520262842221826288136729792197593378551250341800089345658843691976234728750950236226908236725201412376132897473518345081698921953721784970529168802758425439998588909324870094979538567940674607567622840246000815737645139223950565410244484180634163894441054987993872325572841501506329761885383937414943791323198401850040128740864461309262088390833592514475814625607108042498076197078057265553131632372294810014506600286143242118495337797525130977702454962225464992761305080428985259055365753049817359427993810711397293968739659594011150203264460702467104204682388869369169142849390674546445913926172380677508133973588948354990199488124468027250113464213988588785215412753242305090119148166872952070507170946579963138321700458528846929892748940617067472001599634370689275411155245900566369374458716860581135096572413973324907063105699121135885418194012682610838906621513779223719726490573087672881021660992620058706446355461964851282016290816594005700284521790458837395241867493636334370880201653539573020698522026678110066893285755705028235242489041082276138958822626793395335285320683492990496955224935079640404296219040563380423938014940596439354063131757438904972938474505005325743816723171683441301039335860332000267924749342114689320318125100741382571694123883342168807154979199545679529790258272510641361391383775749230483494691992338910190839155893800764409121439420055533703592427038246168220453674338614089675914643991197711595859668784335603121484014217945126952786795810239158042505965333582781276418805432072577906404519109840739074688619324951212217252650796640766958515938556330100094244252899539036299685276755717429950673258151297575812360993113510204047121810897615380245828944525042081777383926003126687142233448001732195590999180445802594364482241043712215990222959209469174289619109185306929774208908810691790741303890833863397406965459384314736891011440745408925658269173741890222608254601360186673299068767434593585163507560310676938339663243148320442284054234081184389039105158487032854527800594620022102224163707712849084818164768367364373575233022039224922207802549613854424829725833144266311883809351665502425922223202193588614728722549890245308472635441642610121544316905856013313076001038478112649804244252723031181174376098392666104279215541060751047148865255455033600651130709238518638420520597028721949499334418189997957727917771194977130001932447134274288553954798328098083125505399644831212412872526070000233313096258742039909114440036762570715676095795872720944335357955668056260096308044120577515202694949447913079572427794141334417442986438210744962894025168543711952482868508151825103727075268755537399139401508031188641931164148319719950561600313408339775866327103646555045186159608226007796817949212297644312416487475526121616079724725736441019674968618162694871635750280902439539246312255914371413460689889729573614036482110996917737597763327875897283014794921920462677591780157903709748198695531583177032771110038551902653056614927651293525440021864223289952824737975444193552057386093637676064322762651338144527328438238006038161407672921631328265615054978507746050212856554633920904245147004223531699932856861098290140112395560313363163023663897928484733908296473244539652621577013386653195087268617513265749704917843596908044902886162905210541371485640588630201052082207978424842760829241202728078096880918470889738374404623083511595490801677055903862688823459217116092850907204858549014504624781707792344929424166134548127119090163320653774090739546072049273300013519582713850858817855988037131070720592093978424652831088977923984841708098895246147047605583545944301616306014875636711961602516276468836505188646552073850634392282683033471416928685763648311741110135366980460429069948032145439132679806866851189111851177702886865450651982101486371104421416517370356473837992263146776753447771184161418531806511984873506688044184571291676710231703814580883543928742531051460805627023903939076076331329081878165053866232262133578974324585617165567266300306271860745917209293472569889102048685378667494332539804292934057166701515810150786130628111370839769187430420033596070074262413417154914615778944595994934679159745885187871986309255686455697002906191769909558754301047358160539196858641365562372647741008282866952520247445120046959914589791119906338683361326790583677830923238868933569733819962551650990539740070234113136553983961229744942336183587518582976981956451607839760638364430381847519236920849166783681935288175658927320492514239082316781920111832922332653062070573643692288744568681935326428536120036328038062226145457398087257169171778590829663043233818384022616456367695913799896356481966722136474289250193123544803086283831921242222400382925022388862674845250539444061604304544604673043942238435999594101029727557570839729583522530001934121199803065827247402416497273427645576429123403520846753840701623226572869289771064834446080151097117778173131621366155391479826602956561917600382815508855754653489219360111969945740999594635353864209575724338002392955236170194402257850277243504303110452017123925079281670198456906416082785021050556622940323949261475467414535353590071512724975063114585440631378884171072623144168003560080052224938450866874144529027492919902631886267443250017391910520157881602159433816790837425765464102881641254587876956301009698344244617499113686334881530877343731997088839483470065981304910671531571648655489408557708962942296892519754477334877123889190019216845751543365699298721004037493893557029008428308033133759620740081498166144323872245626168292366351032879476076820300435918590308671912534198224625246250516945807489722341442335122287968845603826908089342958210673641578893292165820630898436574319533340052377953313776136355193399229486509979579446902551712348261154215241089818840577825619783758628346775406355476172829010685470325312796651266782083225539847948159609684354315671434617728026664225252466844407929296481827885215853998080145979580051151882699583535580322506456253928534566118666033288611738033632178218678044755890668375824026016598000116605971330557005608395452976513450459784728838214492309924012771046632234165793773588810378354709640337524019369873801890281102261911809190783912205680221167376666006781104834651057041877091550194308206009905739340287989802678276103283466380089127536205806779050590306544501617685154378493098287600164613389623632344357725946910636091043757065641836932248796613912450282327965629846730788011059998172716415700856003396060698240268545174890760225370468519536723917873274418940226288698637872290046765353691094746982622214522396605999109721839950162432068484985652927141574469392880631968422467444856232293878642316516100022207198672274707243875286848764999304294662956621197075083871152106383112506041799698094264054228783394313795001192590351407250317587853531798776082053589390376262041382286705378848825542571067843895177477861593324997343984527392985992954634105930932944834688328224949554170788361392832752844386418845427272684862899409005405061863923093112817674329980005848194170194924278408384110696620442626356308455158643420287906557165439666732953245246156273270260274706880790647752079574933604250358938054040061934825573222307535046594972505644204908290429275676332404815269164915398559716599395455608227956146825894374145311312074873906743034679797169342206735479269332429667624556551037944177428356796138640994688921034478947928700289092370364017140080468903075411472996062135884762823821001446676717912817237730577115326499695097423871814574045685842340110762951688461834518311362937888584311668845345640136643592249148276158358161979809862143519464824577261864648543890306158738089409752123095175116033104085931535398522098635782505465110055608642250676157667274926710983226373721296481779813920846837468438060157111841043341522687240120896688778835381199418553941195331489696589123394902258595336965148041158735162905048428692617375900493100494006451888210643225109364251289250338482091747811195765126797235126981778569954647690887415001316851485831275869126512626023521478415916345854876364775931840490578501741760388807251075175675298778338442459420136902200413348509382108001330730970039106341581606048725305739025091530238116657526878253261370007795009681649942820884974899992405102239765275186913390632317818756839269111448488417212519173439368620955532099927447338742803878015933613028673411749527893888203325388322457329077466519988333526779655962275010990647186470177536790159627000950157576101387142372023116849580257450504623801231042877341710171339707143656459965195426715339370721060105941449286315966334390326332708365286419663364832837117669301123442138095501580505465576583848337184424281123124716477179196578489934259477656289485177890508471248937597310493530040361919895813579316301869652344705368117863701619821194665999131201833550609739552343635298612486975871966549432436071069926409002251992565678612997824790298614212757538636854988898771027484600127161833189601094948240895379160808268896197408824039401901019505944083992221073037119913940755736629521822087653122216892311969537416880034323571115666362525914370688438865392227450707012581977406943739465481836127534248249207857749821829103068984766585658667785581103060805167904018697298011596640978833921820394153765418104949550880992509499987077053387872576316815996250693135643047145367259715489054903931691466245538698782056635072849892835235829432935932711172600436821524407462411157181061808184322544276249934030009858923753716767744298787839929757874518393992748950362935188684305865618837446643449883120191713857996634149694629035119467419941798773767976919944592926704526077148038113505416384158796664113820727856613543590287357970756638017131918781291438655533477550425807913237173213149067953134894877590173157661791894585260932572836556771010307929051787396581290099108345741238214202894810340642771274852561124921182879020674413816651988827617839808310133556347871689395072408743593039768534829648935199235287094901032354207544153688948280830921276052439196993050821901197637445394910105364223401437589929084056467404751717846323585833719912879107281160342216459439093903787110734666516392660762661027662565129416833982201377398411434849790487192337957584595761526502673033029191845101217655238439390030704225738602181840335476250445420113069888517221943505843690103277299516044085886273017857361485710110441654080988270414042591718185846424822621360078273842964744533546716903152349464874663966848416406073376098454702726595073032329286998878542750317325749157611472441862487646130797037718350081660394990838891654896309641123956083165169253793590237035081137029201951656813642456042468352215666367517740425356797059387975390331640636886137152994835288015386053212342519909303283051721479599731554981986203081532456155596783562221203730496983147139116166286093763694356761194655634191604116556672828861637025699717431921233268801904708759461378849230826769648883542047657367266471399223127545028541700763314590195726454373461301092687445063347544779788048650254555375760232644134145168601949373541872461660247507712219857778226496672776098178071836249407623850337672723804207516572981099489476781551433603294681344255607706336483416338368590495262401891129786969660041652537152632550328924241932536502827040034997464630818164579583224851488417823474917610927393876895970102362913581555087225440078014880893144398631632264796063682216359239607128394596033819480571201827484917883142499323513583720904721101798275283479893818649616400963746900006617762923021890223162832405978859089929490189247563597581480433333827314639129574873197904880345731578130561393861771924137273915938696183541677793246405886778337765108932892686184393665329388825731770284373528115367375337506657698942596384952864683366632781657396879914883019422705534344982447725365867304325544740702557924341560084101616925937340469631208605686298164575124352734185144666427829428202628803263695057526208507243568510384433397187061515225928721614676709932461406831363021286279817856573327469864353129723613443853647923067802966225201360207834832383124251446121698978013905227850515589561931236925746912454491910947708458559245816611984008363188562096234270814829827730450224407911468579425982388314336049009851547024726672250054458297898013004458771731127834039628271546192384572381044978504831681679927193391997097155969139335932974063469564062280642242471087772746668760721503390776329112729203788644099049781495725682616653427647391377609811494344661169909783668801502519633392212658760742086882003541999938886878043086631060860635458990062496993455967531477890797412511242690809224585740511426904047582767694197395260407325683060459391362225157795199087427937908508359291470016044062819414581556675655397076315777426225691456535111380858617618094450579896412651212020214840533270950642141884090354591967147289466712219137354527004409140544406491490332506958973571638073944674810178144582313846493365139577001007390056335810922056135699200698177958513453388568894170826823549434916358643889352935414376271731559920549679728446712093116850511295686392727894743618951313906113238721801316159402260411168321662775186136172885324348458883010215154446948640326306187054060207877974120607269151975339516255115145977783003918317151981193500587517923561123406420863500412847857835748350198083884115603213556991708872617526388064561178853290103881226339575362725945234505738128874860446433734789451283750112701813065050497246402274042874102226454154922343637922325645478069445592802053228879086726151970178592216714605690986240230007808197524256767323604233210037818533259505781577933528732466889845830221223060618947441327422729584328851238036324783699890629602569727944181333986752948873517106538366827125621229815824191081420442611671135628431976058848557473778557934864350899203994237533733127698668442995107815986848820101456958674540839542101713734995628934653039486821946812238858910031522857683426751798706866923999754566209602893440931497596944137804257453273927767376394672032717990262898525402686864017604372209678325910536329573291641663874630395413086989212146224988805210894451531491539770827946029140051490342647400048205306095301292692353936339648835803082867445255087679602658388969778389620583956470201893765466689900186404895587416627431881057577577225616966978512341700858789518165673786880853177522057017210105776236209777092420983223823300602822054095595156548619582324100062255007693650889226428131928596413885593750341024484992615613980430307003129655851520895578123140721032375269616851516868128170281257247159325771569626570795921189709795260452497382348174291888836509975545092816741319624405470633210209658085071223759955995120476816339802055632045246458737054169421074404212360169871485664675785389245017897436936423708608915947438486376900435571900687860522333527092054620856808874852599664441918486895838344111055933757622163927711503126869979767099403405944792813183289092818828646134254694622302845184119662449218796481471302607570410109491451381071521961689179873347864974121210960429942421717849957057034268952721087514789177762546280532245216125083845548651631010982565090322555884967387812823837696458992607877970143665779696546825669688227436008719447589088050432419256871562772076823888868787851775473603471879359513823601225764367585876804285643327842324089544810649060138152629378470035517393427112424257149056264557100020711415310112686602387999166610120722599394149866630372576718920252268393235452611870470859758278061089059949366156730293753108515929782284594625046720501636714359306121245575619784264169974287384640558347627778781216547710787819784039217896268056370166731361348369136631621298635839545339115559403434979639661836402541240745739980915078430391515419228255864301118554254199144526319396409556536218175865589396198130147644372492250124371612899255498047588552223893831715093230952466373986405308779962149755473779364408213454254334620986997618586870567331486391666410664438060386684060138813594143831231249521749017035117110890929327148811675131509715630835893349536369342171830719572759318378564494604649669572231372291983006357963116060810322407763754691880410025786020600291253773948093309065936880630800709608652109431355227791857664424473805885529038779422876958458191193535791523924403706190980970628464615198599038611174535466558235682753611992775281026185797138963177724926495213159070499069852070742742336575677363955272920694714581618709018765805121218694307287077815580427129098766520512988750536639087313823642282640035249469183065349242501932893307235322303284166908036530922466757224623817636859693314831836054284566663783218247294088206320229456168636212797578460403029046267437392881225436969499739389445947817592885632052956748058312156759080694714551239873289124074222100134684335372321972515206776568160809021922276003143707870370035945983154695522333582196511635699593088134436219257084684052129561760971659526634257192009474641519107820843953500107512328429305484428641306020077852038295238765627928219002055419661840675779672201859176629976159999851942820970121665651199544374183591142114430885437564327720110469203272024599585676627302002985759060044690773695095644873201695548436440784281652538409096069442921811371316606382433215634080258855299884170281752278085279813668123378796623703883201668242245688838068679468916069942655667008358366819290569493889700792120546794045952516525697519295241853012154665320971204739505728505695697823644158381654446248615072376548402639962591583911967299863806995177598874616999557558175652060446539752928865279558040682003415303268709035294547922700793787839825619794544677752407599886853608407139431576268110887295662724636020893729335032593227023245003568358493768363546836773881580928013935904320638168284680329555156781899257405755355551021980020188096959332564265073506402124779775781275462164378341674637278951268347455693057693769714788267526458643230069990991905355769538765075784552976640450403930145670634277765523749447804026560235501996752481707053468799530807317183382451457302108839018560870631892299439803314377990842895239242047693391553298678237001276308766151455225869771360137129741003328961685306220276536413282229289290650754482003966295616228507603408896056509355998624356002384444531104508952174854711816858039429408003746677206505158620416656906513727953759332379270194941712564440468582159719155336753351986782070617279626831537458636883172607689664926519708990419886522502336361151397563185770709233993340175520961057149822777258624291166848956124265466470330407782000988559493467977965413051991191912777198124972999657034664474747985593524198475827825561739830274261382063232374574577968654337813262953184399448407336602969974178827183234908739929199354883620017503587251683178558776355150887038436357858392082541718506731104587467580759832498056379686593447130521537904892362645011752779153775172674642478420085420828474210007441733399555228142776860966818402649919634376116622446886188111045914586625399693405789424745350493996205317814002004501407927295533760787923301197428353564004098951899543367373600167183946017243200066177946874397749819039913734232919318602786943306285588005730818609665896635255810901542419696517690964625326529755932478992259211658103750018310290107690480468065516837835571350349691769847835396209120350684151026118413888195467669477272683783550845480757469874377818542704508449368875183668053122798699520030775107914865370600519156918413616174117364936482407939018682577521380949712819942410260606832501202062659094238311741249493374156812837862662870736596900996167102921985371688379641527958372988856327356008573054808767258557171203454847701931040837642292600368153345849838521440782288907545373544738472807478591185895509464984164704749896118347445119722620527810629795925194866386528696241115615224568253241892363096262111758940572069621900822106522909610289692525333134594527844020871389704169322390045892861080929521863810575586666692863897705940023052551697734323816392896298391394517292644280888701113081860892830750972211647460437220976433873320941155818864439632507285574810942712074753689274267086916497205569157952514007746369109554824988063832507158654135774826624183646192069844529942530866678237992155468832239904256626039992445506097994962337659741306903429451113515335757816621200413112665711973507513661009750983079068150977708595641096190681333419805430907140455758236613985047639655801555122415108814838218289803819661570617343791527241295279686600724459233773700023420492694564982965703512925098873988142920246381323773548309937196380277633364634235483795652331180540245474662270424902414301466416781580385628156858339481188120284921393717341033884084390438669991228914771243797490331699928471514550610398775555061546808248333777637400661561512540473590435831603245297442988153282542057602684548242912750684446879782042733067353795295718980360699353651708221282267123118735603046490116300546658159307084814593820006397656369394338887336282763100909999871341559360608906876446662930537006762345257348976981285141942062167199425496341886081437070365004231733015780702399334849296953005098811389472830653705304120244851944624371604196674340232690298580262721824978868235134967467978600915154313643650479610916036385341231410416740069256899426485480827980659217270544886063548953808648750196568701877534997174336462243756658589501847112856221208462774580943789956182627066908563098667914398797185549400401514122216571348898020041871795318942215586934521093836310349090354955650910273067013393484769041134262084794289546371538822727838371799665749159564047123866654801424964210538828915332791601564725926456046217855470469722041643639628389838787020984580023260766598807386995545317508793893537715867352647111891924189767125736609509830230263925328573098287557873203108791049994386958585348742751633361996222871684123915167419104178656515893552944854234640946811251791781608412088509893309086992088766895375590854857743961129263328799363532656682685913427509145388411576591758870908346129056747420569187715948571676046153122239891682378837112324717592118281018148869270587945666623398269526077957916913122327897351622514503320835003280425926957547333320641805675274603691689642375377046546402387980360389356337697410187771478798233527942953881479958311986629081497606467423059584907696617057583457507685476446489772570757556803937368013095581103365175606833554196622561760303843611085013323734671315574796563057423296593306178303903503259595637921905237595833928376933485836445781090674140867671754075697939054062636143768035519051083004015182374346730153202550585993074631888192067414375595954486738977012631090887709107120275333868002374067190770228576254347638026357210041667176668912814004807952186832871252555257191169872476045482034039483070182471303216555718844198540941349568591039168396489955694398406271204679882458255379343387028065687981633749759434713252641966992061610000543818995663974770330346520791422272795467598418282718900968729743260069975870039246730908787733821091801343782238238922335416765894927065506492652924305159588721625189484703050661546715112429116405562354400123668872827491508530988087758891389481228431176661060019947961923771811003704664068634307085079459092498644272302870638915508982446152019084629182866413592466424104182076241750413206260857398259602050110256977191246130623205665770707120257833353268450222948106103114459805313214031001270300444195421586697395347719413212138819800250528745250264508703645055175388186036542891261702022474228586832847619110613297569986919366782119783390875812364478500826154257042400435603591030439946944650219627320733346696633331783453551596536860397389854495003325446582248912122051023614885262657134648965145157403663090401839529347457375659207785389817831260089798668870198606254829580298618892548073737873675100123939796868098416598470449556378514702681500541398840314023658014385108025018160148552684280522131247103183484064199489797651189176852916999185590419031936830882747790062411295470211328908532654763556141782840638864101234554013979143843253000579483627430978044112314567611513993283913063017336534234253983418321022196947861925419872080664161864476138320079523611756183984491905506428528495807193637684422654640232729197905699764930887540507608725418872671215472170617842504192673401958153562632296786899692482164480569704042289295187807419512948712564828630646564437442165074566510267222947922688796116224522500718410762426920363442841259759772261318782303461312794309417056720614555643369809860895206972507502521576787172663465820743683120297607869569732882766543231841330980219283712629621851843398180343919888151933351372882285310630871308242471050764047073170234662773833060148692937569149606586728646444036732299823850027867053734623455696666594400571174535076077621445597356960675756457004123857166685657744228952881788631919706851271881987342898117567639268959330791482675293733314201145339792372726756092983915833597380801958147670627088798807175439565621786700482855414166154290219898289708721245737706000179693768825680113405945300183772197601986337352868219788655133418149077777801771326157742786998405609608057997192892909803269167039983504833144025942750743965196627325560415216808826654774006693936865677349131866024703592396134523814447093629654957834313360784905376346418874649583337934367321189833614451534903673528292645731579911495173433758982814497233162825038956759121063044596376766663605661343945202205077396858115916420813358743130360524395812096178703372325396756878235437777453376503584128984264288029042642396032546584603721280315933353058635030293334360510651165742002321859105722422909457190156014721248048344451084750826071071744924925984087662460383447515291202268134508212967845380274250999817131574169644654972549481225817864458067179904649177770449681985456936385726231866871161292294222416386736012114123562986070603516625201461548250910426040176105522537742783484699935513657279345964333239936128882870292366397410884063460803519974218779316974705172195229155125919155658530238671906591123290863057475152478295265022619890756470805770107752399276904305243034868015982512367547845189678644476333801404550269014605741240512427157399430150653443045804177690650230184514537977108569181501963831162891632482876272099750781702075887289006217071977007819204590958941346608207459423562849449158051474928450972847729162944651352791358748539676892120315941700652362661988983318134238846907474261296977382480102290993503806826162389774942233174802595473352032034409439547139480988797853442941576617720675969915081808199591610673694010940771825126833134552796774041246179568594228387878655915126444969932494886570383817052094338239736481199896093694910482411462126487764204271242370057244606783338836693930999075848366078418717863198340785765972104676065369058445862604567789514240052447608418547253560812445565737823412474545022158682397535587292201382266117388390142523255212587810151095917845088116950102694137317147753104029769092791631711809594588815993286529302888745478296595363678545588496482960844579282308141609086641017115055390571361814936211290731392081210914848601025978306082999048946763184691473255998785839311306606511263253581371870120674693072799488012339631952647812171986711336329382731024697391291232223071486296230825057173849386810707091621476643053236194961873499000350797564171884268611637257928759113530158919691683278545953653112429521022217966846083601357107601777413610956599175777784007332025750107193387173415306415863487184653193701564188596698384221940441185492113974937340825024865439771824523940783851568171326496860878335066640559768781248792527788248866253223824629471879807849749248393926525323908230114626563777402150657159799076890974726394896831181848422120135425222715989615725129313753482315738584814398972342099478673223306386371443649831102078726981955613681689603482498911056047824253857757966111548102584389877625519511932062009474224614304104391377486310065214412743786408042659262664593812958132881400563610006617104934583369199220127815016886046232110945132495685969917997679850556936058142006005315769672758608390428610620446280983195520552500798059847752563414270042940015266734732433490568062004494920762916495748249095358808315378888514951290051725589957071936219585797770436112189734568665053316542807826286873726329761530078061673229484323044969822704147535160355006864868957104721782102850212759627174017508990191086068622657690406734040036550865868548107855570005902215901327615295642578929027116606839740574364471425253176930049047506636493975555904359213852860609112276656707401003411565428316325530892811711090769396948270374784053181716740436936639651035308709348749995400512715589067961101672388342200669833467036732990065039586649013055095305662008489036076153709038662732306503150296996676887590008431366280548970894195140052153891579065912101715270628545143404296422516768601451838741983779804605461960281137033609155986082402254658163946315873046232662741748258326041842004729900195506488361659386674404258265731817072665977738851447903422953563300198223647293865549186175611198189613795806203729984612955180067866837596332402214102799952659091024065781601119866551131177569932362423342746989685284824934280149860138997588133562062363872382034574792125310347203844873626501152340718499632548696275992569188035647117619703876996289062309736142585773588839313486043718063140797880174000103305540080465657028920930702102767952736382709265711966782347213681970919169770482140208233239288685594949993309444751767870983085488668736037365122167071026746436693440976860106580852764324301140568386279987644745376036299442000405334694242062836702662241288789870862681274493579702506539894262898373410436579647084021392855889602346120864021719804747997399100307933667615649014124516263102137390260031083346936694122326331295426730147505654911622489424616946652991839376244858144346431027200374816824276762557119163479237041851746874653747305287395779139551272329657083104280186231235250854237476453096022218668018194231392440230187563366132757129690451710049380131646724831410786638528873708422125911969347712891278989079652813045002325571374881978198774059050045784304654915294604845397886111882654906123486348380616139175171703165872865251847372412523309865954681747396384820322515201921444462838638704550507660811423516891509784030082621631720978919040029712639284400067669352960033515165183277384916796244605048583431108234671614628976671778358349254697020745230646055707216175173317404069693662663735978915411252955696014601312119301792630991044105546556565928870783650406689627722359731647772540187484323203460512788882276322394856243331393149516415304841253219135987940650718092848738609663192126292520554389820355102846848999951914671659091675525499046714935545997530149720838465367510982503514062842863005187983875376336867291519729055766714322794827787201152602339523962507100669113948908171548893489212528546820015792016299833635457782646432937724546971164339608866278038657034976643589865160614451957658468504778139453316184398943563840323861644600130710158005214561609725351123054875050436855961576620794757059295970915096092111904072148933325100505221657255073213576665216782120387000387032179115641450890012272069922920480634166189212420158105819621927392964177670460105476863614785946502010055588124029986729225268046881444811425328732300134779877427015444802312845305291162259479917610239571748725458714731400077652824778578219969946615558429237599495166248653196881499152253005484457324302577312058195978293506144503440748402399233383016489813885392345668184543536910479463790108583714123435820074964065017052145630680895828736581423736998871466049455377969091438023724929658823272090229701554775934451018786573696160625264705768290714131805889314332313159921935232601565730128747348877025017922834456962792417012858179463892244994470501604864811859841253515737268035974546619833010448573852615501553717980037567061960342261500660704748297472769198391224519895222039126571502952730388063265243841188825546783346285464632173025248996531457100080208678123322063113181049375867763079408212554111699533476781801970534617707711301128417169420980061966349568999173384850104208208189085540289279636113627673757052625562840682946276439721872095436946202604410940291388286073563617789343824957843122699999315756092160852622554348566153786138505637883536709211679912752698001889913530829866875253056570192343574005640356198909507893446948759479765020469140628938150995022923058083512698589778009834439324231362574668145129843825519593057116734677446277590734446794659528255756256905534491641691901899779287230800300753342403015683677286822281333412424314454210991355048329984532327728869676164858123174139240315610805507610887875000699680185839121468418124122623355712112850182510286699345458251770222219512004057655629498560264490191368171266171167057039872724799482116933427136919002741186415379309691132302811878574043071845838239330094990799885624252366078385618620375137756345784173546399595167454034241864742362473344503757889419535433717432164069169989917232753171924621487443904292837584652027998257625789978071053345753095062462223274354136937644208695859049511785246917664339067409387449972238249317558866547612023514015830347384985960799681461871341290260557268812519428371202408426039063847855358142298067639464307175248473355233721814687656848694616205363310070092442223092121699577072567787600373793210523650903066521062834767113923190040402260833654177776580351769250070609473289708484619233421186344719232597103706972298861976836833620638487104775470659072580206658879359164249449918303643005348308805263270246857798956871858484801912026696142838664901189213544755989869606014111632908311927487888408508413736162778627240560814108738363011164924540860712861771757532236139139245411435116983336827095682115195685772547572401438599025998706789703171630999646784580017654322880311431611168599081856975995244305142275036259599375410079511959254882639304427539738699040888083439030827398429563684153488092616583536831678430858283361902100885919863488217470009047897992535943512982817568916192854826879714261223809022989231977018629351817779016568934573272869115782538328039239304532674386634599265261197028539458710679149660714180563709976292840956545044236918207399434942477026001384392416457034342902620451835199805780973232073269111989472811449271544829365300701823911473551678462598055078825365371417737761809574792877017753715588108575258610136372743982912587137793935985919998232903648597422833414623289781372706497561199395586223158203448125991431398224237239724290726435494627506315724326366316201316719224671931713650609563582935624209173477100429050823530102164014939544135372493810386606041857586870041852019135659903411294341487146030118224851684574288503993094480372293807378853352045019653216946805889834264790980142252818787186909435915759613684781194832775646887787062433824266958176720345149828236716785436975379819062582442954816389995760175173287097380535043293377140772300458510215033757152777772933981743449766786178470264833604946296926964796347713219346222747066359594881308315528645356260831594807702846510963495757990287838545834467691845590369265922331700793580241317396454579392557420291912332749099362677903184109793082713304857809078313098788381513317417430985587495705266404964959830849882180807656392607660773404161685385947783716338833744181023865938473688096304119054755685977662027165140116894417153272898126570852602477328829903944895919456163836163577403479843474760034368925927810822417038855625940410327424028843570524099725041562310152686823163968698105257437843361050341307834537948754446344310499207632416766974714459818542776552446285038024171103465948739875436964409246272982352123374233410422819894991242819128551870459076628301128097039785518298565633695984862184992322187900739728832507840786488033327331764750034987981906522158210442882955842058822751014793383907712963565254109769933410297612474770049743668571326908947280105295971185888841750493752091771865262274056273795650386792329253638097722374322533547231529738341210131143976618253784098280542562921858980344441187283149939382694998286898804931463776141811363416520858465548915620461931318795060796446836912128400432932653753146336003726351692706441483282086554350243324416753518678794045820969820107685415706011063670353492652497467337195281825869615417727696356152114343252169163359889160685406039560876235064318433965920516282332137501320282956744698487846424007518188963831777174635899893915598153866811490343087514351698300218985920376621994629650423982610645773751267504322114714487474274546125808173460982482287448762650811191836458147315987693975947303639823228367028822422846674733429859397287273910146217847859228933112636985552883811880902267493341310531728507211984362323291680017512138869295135774628886764227734361891940015637658400958626589301531757129764782651119368802657839244041301827914916792827177891923848794088014928498901719469135237342248022228990858323191979708862335843778354582255957718248224665534235564084022455125305286103653540011895832203255179722980453119167680895667211991763045925146102588198638404004424369351732207433150320098576448776408083226439192134542096319501140671551419840218537751110071262360892807472816515044848981350208992857919682860645842645553617291237421681181925442214955018199799486210007684362627919971492961425717328019351980040844025598915589981055597827862870959044067345420989197568229381384775602727150361771955148366033910963933686130142055266020990378805263455925289176561100505030486853434716689902229656149763915082605252908144139521013736118463149362838547784047635938112758226494182005632276742070951333505054029420215779251834257951097017045146498853779409300699314772871500059625671998803278039620237835992685269310023145366067186627575062353100762783357791821307011624408269280212040529843422087056995122705853637854295573996046295763515219064624125586771238928117767315557563728106749846774048849630809922641082641492086015790826944306353694762823473451843901598227856304946323453090919244368456227429950954323328734576394419047917952536699300216892146278337046225774021924744444329265770084011673726495833340892693328247166823327023143744426524727651070373570788343473019383574079596641723856026832848252055897399498635930792088957481414864344505243998784121723620942852733301036946373729666858871008938986558650665845959987354978697392101197610954921451736556151945078385470091641968735530892266478817914624627735996569372092840755656663233852638882538218437725969765645964451811337818385499534714204548139948048500017924139811710887162418000145879749741011032911729578257378406979096219635747724314025907222166147545147505645453876913478246928767394177307563617306561274305134763721288023472657895974682739786871265747069366879121210322270081470105964871703072186708312862455867850592023726743054030958556560132704579094332161238343000395601029396371285412498172629886102323960068035102262776376857345962826606704195967341732849411828065453660229770556830952093217486400155426255174242159380247159933231208318845794030179555384843887346111475908204041904540892702715006674527158047195948137527554026300886417749323801359826495939780510959061534321227682560136406600279926288919421893390346994343554467944651923608490769175118175166811524054645821385515571929653009228550121388938080098170517062920986243432373638170744076937939714213610814056565952568868137685485552807409865561962553375055072403578806034810197963960825734109032880688611186303190771004238654933242837795591729388799827571471985374327594846691873609850698525035239422055095165871941094387243717710741132206860993622071420794334545539558191932553067490331725938451709907448743147062136343615689468611778352562911149154938426541544066520698885269695721620028348681289250441796864309686193172737886536169538068154084556379687803416268061430285295315582538957373072620696478330244323243292635658534954017702172415805952438487612382274562447809109527389932543298036907361931313199738339966526471779390267003558925135994197500891882605483781872781158714481411948898103376419511793470719433883415472975644200285419152310684625904520356177693817022996597751538053717769519376409628187226322124696231334182373805885304422894624509065051277139689155034599110567923979221587527440657116997311399077255153531813830544612133659713157442959968442874100681408031724493427108849413770310736179334192800207085264916379461244752687271429182307835867324940367499096680326144867987351907813839352750806400564752578088685065202846749976431596760542016998867980598408798362324638950501131630976831087066543619620004543000945887069611175075103076391319349974608963918462598515442987067117458549486826900424685433321885797370667474979184052309715194407046170582419774808892353732634145477506735480506510667734296418765471857429516169765294123880417891473150013774687026317451673988749394782003936716441736371492797597471464052347023833560717989106998875988501193026948004138986080070093834816691482206217655390809324535150915772697606259363651894067716656609085057975945149099338902155302488349041633288354243103511909171526725502719084007848549411625941787892170285465490662954284426456903149372001397561565195620874556505002393666656584285545318833068487032295206300919318026658081737712007456339632792539107172131069775624299516459029462341012955839210022936374114583168318818876689929213149521672905473860753743146109692106723009998729599455091827929225223792561854808706494789026515505453359327710141568523766044127863917127389792628377768246486385204148848686887740492635458048727398328970004942637545120266565711468538448646230960911656115183369807659088796174158877497595725505086766615673571437440950922378404106827112957463278152542219763259515780844006970385543577996337847496752797110804980583894284338205292370847404851467260366853152881839638880450075553716446383134503353927203990703098780966262564132421940469934748400763665770059648842157021734832509810653869520864990530143971828156308217533229664230881152473506786487907441048360290907114411191612353454794127236958434079685964672526124516516372054221339997289425463109011105063459477813725095032468400686423206097031760758768937130717664111260976324526983854078044700234415067219822126876809418078740111202903786135226012069449080326968075191405314088917604521364241645415056727021164764312039626215730316271435835982086926741729528317426772637979790421157289498014935797531009908730282233588386961201656886724342419219457272248731028486118000381742931425020348737428290672758922778633581586380373170114646915942267838064893002589008445234563955664857619957361394678612182193768523360134356438506828885537802894844682962824472513758261077262474209754925770638519410515522426646368690488262716789220203855166100811278130326125096542457216382324133659623792830082100803833854736360111782591621807185966024782213850293542410505732309784456171221531967441117415883622501953909747631078217332749599956687907032394980485363484562416657440348188709864755092039097631825275585459322807996407639833808380668654118202330992964347948646373848758702145819442028660296988576405961329457647148098966135836934302053888746085922846140057394591051891941426007735878822168194536222780331010378943937975502270352478847076920190924612568041070454227563984889112903205275536226894431962393755658059546600352869249531431939064909719792791567369333014003872922984936466194329862442890970891943608970094407070396478350466327754518823656268349038414937097648287570148916929324567673145231717512475612353058385539044780262061752103663760290872348286299852178795088921434257153489293404354111822730407309935812969089870961491915665037355354503701339495803274576680106112352963506900156910599788074826500773875042208284284775629358726726762579769963778766874775506795809531898349160972941713969017550193093927972506702030428017900668092430016962097566149749770969415002606189503496561561925744468816190758926519442753896926482143876297444897951128463081458532594038473204769254787372476397968654530002294742927988515476592178987121442518840606856447030645664431585667417211439924354713317231640473269042606561933610019604070942521409800359388518562090648124850277995770843954136696544765699450960874547475530991836181987555590776146115564312452085608209095598916714757559621111110980071107854623662971456059514645299038905116074885362549016599149104181924656255806773392429006567255831235088827389498497229257453935095060867674064960589368526041317673226954444508723079652788759315916772644424079805599958529266061286169305674840572639610070552786697877414311835483060426562399788373629717609854435990746891117944293713027268839205936335709344415974590333691016944999363989261910589341663560327303169299998078391634651142197882309366469398543726013460128017205431794810233142684704472556979082484825430789313816906336670664767742636448760616737288651646767335512767587454763864614478853041724423445226168091938922236816276810795110567799859137551543459128139826916430634222735748594303209149470791196546288628390992819868074218768638318860652619756881210758892590853746118301192825667877767891725901592779755656027709678583315879776352801978282035835563747741960297492817951233934804394830715400509925446802791121519635831892447046245563111314378371158069303062235108159820318871582059813423998529301504416049276533643113538883952657522925487380914511783295789267187137103052762778055737692347390416752639740148188388772152983115086123485563021933567243011323556735844842103772599371518613367284320006705998190025246515298639335190520834225844111370926128256229923255381139973842504411103131219955812126136524170219404166821007320915596829833294039305761691141745172213772989599134739142307766210129428638560352915299567546574649890087644402915732293103831488648583629424053854445864219792340190373209225756092772728664426040609156860644812419765122027280111559105583087052088837375473848084047764137960204213948465940337160593303154927193959726657820456490480865561887136088854177024567418137407513730356715036327229167015402445623929677688378091728836969179899373757142644380209561220117831300983686586315572014567806918646046374274091635821353884475233078999470441838625413471760169256997589653175065774778627263377824126354244456988640408983107350779336008190402160439611462921352403505336414781510813877070891062018758583852900552020255445340519197063992362575229617945919385292415479306397982551360147184651101997999917629502952848281008653511337025570352881140027653330230669865623403871643520447614444042515613426043236322137590884973019193792461202650095429797693336880995491118731650064004703291602265829288207530205813788701084165921206570153142980698170710758018335373031865073926086468783435582076845908555608624840278455135431305787899563813919516071000876153929791441429441792731498913961398725166357087844389267043093459666601860124051316962418985264595802345816147438407993748587729184557450117524562707374450539699270378161654242288629038767725318962623207305327378350281245778690548509976429033685795996902432715303113681688421480567079274171092573107616852484539950186389856493558372811336836130278752067683948440830196453233916323060502573959920682295284673645009245899003423623435504941592283827454068337940671062501755447373772806243096546689392272869303218786272431188127680662194444095045161619247293248411767723416231932862000185676504733403827263743560165198367547694043484732660394603984462745944873361017193899240650521386419955065356831211179083728374925533541967008221825769360378551741928293765653130327931321393846673365671393869007109882158011203277875767355334495411750834581946358630593822830793552770214658827606786101714515337099584276498657106351994273628150090314439521282273765500779800979127795519412620262067008658956565277038669152991615684766252585897109113137600974184746832813605317477025437814181834276515395460829346833362542023604653749300848546668727683593821365491180774607524426993097551310359104681075252791535244920793355476094784039157243921469802824814711100356335442550409637010696087953838035307768423384772851544466751890316351218665008163346515029468682671511796407557225170519585823382128072114125649463297612897454527214738508090400522537026158316262297982445406737649689499470997762765453963974685007932143544939451601608663172191367766798068791091137154146838140560874541129729888711249815748486774349505614329518380408186094461045177249350935952484757109926166406731940785426062691529177541428337147681285726915921622893218864912217986159416454353595173829290663062684430398790876990407610049637398763879316006093334198944007061436066932856121175343024387885593718138019080484647661125170284599018632671362188146426407381965706594915950746324205855985861281495934282482828829647939123015650707104474325294405023765588945706911431861678828618923315542763456924947586728305561160433613886182687856483548017890843414624798814177046496005818124682364275152859088260111581789725227390741371798627228784168388959258643706632962614538400817368383857076105309952289299176785052474700955930232265797012150492588181868508242958548914108099724289813704063148282861526382269908138823888654713074341579720437845096555595030539890833833318330199615331080806666173686007340320007436137742349720372598999114104907656703916724271352200616626773372417042316015741226351282415087436390115385104386364809603804792064989500358141968128862053892461208678913613514545009842654277663666763443677866875763267854146667587424185742458292330296946456024868622903335274302195591721836523819443771007800181373402073270801358352003169405323027491192357884966000050035057673062904811345295263491762918878652650786943703125563170711885713295563865170672532523846589421234061936485560996609388580811705660231336920215155503654387375282891085295025357584108952743955387028741582266795749633340169230105293038163902183968507561428069011602662587507520560954907201611879002796215322920902318783933981767984411185528495353666454613947559994032543413446324447984305859834576250941715468928895244943761413196078655933048890524605274601779941605295042291698417892603393616762552826546415684962106342635714039155395357371878605239262866033080924427721571454628422408994188882701663561328202020057023902188283177038989003103285824415638334413034528795457427111229317112857273131484332432270210916344237473597073571615830984510071006409218571039785880988281974979766797398911549440982664144310214233259042208974678984073320194728749660237008582736146620376594851962219770660571713840498249751747971021274471120079830116309076801672904302563716093427806969390872326067461443011437434784157607462793550826078595221570416933431267931848486751760207680669649735134187634828176217494578202545556030861071867765120398779742991553659368714713118832208481462286708165295291807083992607644271771371311219616132157377976255097825689781405120278149019696468109390187806950194662087208748981182314958298055626881371169617078145999619813200057567914785495088602757880870765868443561632798570890192233269406429529559719964569271557927865239639250981500125922264386886227906307882521586080009558460839685354438724459953241143892983238134631696263985342488756599992176212713545539867544644232927829532208247220060653414400370666879907646056822381036661225557762715735613082696737488947508546494976903718270985489604717437435647321473379366284066183896178970989962132287646870089455693058418704144724411131636777552606651707643042229786141412948113301295033863922963227773738503186335428132078118703252881590843710923987149087574576690454846157336534917052160756904103293718794078910886379617211715636123081903810407914516860131362863007977619557262894197445785979480412822245147096219318116231512702102027986997616700839869078697843631492569623173415036123153975890466174937383382307764352050147083998860799159845268799147270015042438906110204423791781087834932196836710549879128535803682132452832556687294643263683306145281715038517509267735758388902113287607066688089678833696230675323991297914353256088290078113297803815434655003684421884549891214025543783745093241491314102504217704416704540105546227351391498983836709214462833754419313445800503738742016137022653262966914850701569536263771592718161383279390104825640434766126612849933496250911565581560356611753912054511594120524783877217409144638611791318389636484412898537342281444675750228608096799344688787789167487095478522110191113069306537158557333053037026211186035999102755735020054634342485330209969563611953598566890740696436813172232020172194442899860653840318589522228644172632071440207338807213535665721726157801064277953062960425174957858289612046333233738178826873169623798040546103013017332542560279867364301655248497936179368255756756112806923200488620039075004708535155747141370446764400003844982205654555145571516259123655914828405843217512844616981149951233732710962254446170603006742819388380679950397715420131250955562299256148772396499698219542146760821881909975458842159450594429856427486326489183750767024781160973376663845735435028655655456165943611372797248679279733406067053070698941967754068393064503372578977683806091706367167080548269922105617583030234977122225527910681997151676314670312351562081206761382868491498233956868535056031195760380073594398841302864639076060289267700775032353425699808681555962248362146315905483921318661838199034262748122040717801388414469880351072384824739038267702171444294944949341533342738023213663235105871986743930778594686771665590915597517415811247541703195763376435768374330786631044548682636074214024687375565518310614491154385078800402878656312840993946696930217128209375451385646199163793613778593178109098107336991308406897256193983643158081316106988169725381368836697285567979730798196873841306925635463541939287517564802550793484686456072994217320071438431551256839839913455715451893820480226408308243095884754900136161730162246694124721992692817612091879843433583890241845005870037938889029105108612806925055479358433238343563909293021830203692786517077984914693975782655189114212122748753419110620526510709108389349572452209550507047617535078817552833290790448401190015148249683644052156820423983440495073290958191747206834062278421032280990238557108077973408024980899376916620594934395540656201838270293883735620905268014660647750351282364996868009421127775795786634183407798338961868752202953727850573369738789156509046023682459615586657111538722758802361792313341492401581900257346347164880836755382950852942004336585595054573157538942931244883446498202811509097880131373544892650433004594178789468751296409852656307033033367446505586157708438537088581275144386539911166325497917990819589074333897123616969993930642070625055413035943718266131264695131873333024340141169010997648548397879700342658550586677198365220495423224984347685082887509801215935029332518144536357979103401814474826453443157784883009486458426509597376204894695261217858554465616378726899945969471648899491979997467549266747908991523209333369717401653786067659162645865691054350978025047756196640914443281978350697831742967972189061474273390245090059516285599851261614554288473938593260226883056089990036270523444569712686382743994264048244017381503233451881457398489363983346065226626430356215630528965091800517613777751941328429149957647369882369883064483210495030113389838660109193597553118244262312733656591834668052700295568910082502435500341467567992258646379368708293893369261400492425934835176724756539733072946216342630874622334410036477507637968251308882712097422544030634633886043593943873154753066077097775491080542649640718093288400376603010946520618547023052584290511008536901437706553717282074954756311352350293183241516725770545291338847805237425044680313819151894544768928509662752916877161185599817098245877199489276724981892521966124462779070567999638604786450497324355294714837467182109561330518544156461015006878872199393876138762993578937105018784814230634592249608811295732271778410324455325144933061757939849301533989660742496593632623768422473712706835666839882363810224595524359865519162299672157149960477199999426014335542474662743265568219252118349959087681229933760545754485133356208677917760392431343394617390847846940406192784175924560368030006374807479359601879175291314086663631575411079035988660552085551352822679118843219454164503792011519813914702163343485872011352130487651299024814477111157721408446885027379411783811420173499554693380687835565612967727471421363082886642502726831367458647494329941333372528875341801789686100467440017338894472993752349772914650161700620399830126601550234051075020547613972200133909488297859764392537527642147338053975003522567695885761820020102086247407069397110285452766667097058203184129092558783075931940898417379001095648230455274665329267111693613594729137962569966802830787205093771263681456099658977195122333805814464254473431621152188379471238533639310090671032665050389391523628110883956205996608777423247552800547222088762946487536612400393317884374541732068744780319367671097931164687031128595035904419050123395092638931685234063028961847706114696629178041090716343139578816716437283693053194215462225662579933676640420522752552682741513005094496949721321763397966842857739397835392131980476742743722229508996866908742793562290336379920776036227002065932537702948865287800291968211231917477550862915802934812379928738766963820806364862435378316258171479442891014868446535550763957236718062657045123153812566642676203819253525070699043821269553482223055689865545392435843887712453683393447091219392047112806629956976394880534789189721413997375844732010293377441698715565725966332384065203263134725385631056586333287009939099861060913355128747377741426501123644431850028477699222381251783643440890549997056875683901385922579248230836796593551942788479416808795769586902163939437965398348295996993571947749563829983394747330751505432451605589250505269097520951884118324624192699473423701341790212332517950946435846902461573109687469993350662748540288626234623664088005694218321043285723620037940307295413989836360389603505573189732801211304072420742520558749511245680863492371394723249478925880706921177884121117400515377989150261234209471313549562187316855991893042651338212509166628766107991984957576816266849348415503750641148302543805307471976905688542900799494838722633147860065714881827533887300660190704436363295322894409105259917586531921337752667277000203010715856731893956128272940960076732100571133072064914766681721216105103803217965009014363035288446613512738828427346414544872164366225220709525584661482300368030892043648897441235761408598478191517631297594242357362787905286586847503051814033327460255050101537047000321007594369552151204880872474430979570727674673029496431046891873946564509930906319618812024024260445986639400105789841658024386977253947863806779922503571506153679125241729500073086408457771572453516005562392310486859435339532921104281509200332607823021088070599458270380247957498610038453191516727589311469684834641839859229689983264179083360851937961240865346325881829162072325423124164085209195263272253522113073603501490204519057771342391709258329492217322948159506063699228726368060845390832514690864820074056198394678368401913300785270086440705466039691028925881753296292457800692567978163268391859507977940699436399121957946105191517060404200662527489976852476670380149916222863783254712917958318784250251557355060509653756678576632805394494128709701489056577753542227514394231235136849966949381385534213306398967929944863757124055282569194479914508085114060845641212304500820375530773302789911903375617665938312575483671472391436981996165876930363137599664622688669594374546765873437080392202291300989741673571399947852062856518350484388288439831541893865991740309389175361829731084118950005253255008262672895039721440627315704346088458888488815329518864870688039051440326666676113018017679864934133145604402182376679807659500351903291256143136184664052243967960664245991519174653624676942634822321951949575600923846557017716417017371095711720264661328011945892822036158197304651039937738506717947886861902948301730906980417220353942833384307065492685888266674122436356294434327436614989162574438124923880040664969793352326431451255826594380412911006703640553232040110173625583492134248511387821080249854627092012005897983260450357686831581198068065633770989938739284301371224455628314225166992443349858791153317204505839726719952117560690425598432844070637911659167719908986996089107066679049541348158957046131174628666474997518811027658968012864051882103699819754429425730741530012452583446522598940455799558697443687886455240568481876995575603240436286337523256536527643566958711718030969005219074029847015618617443608851689637865459552863680869932631511114688550153459472993928811370286966777261318652369085973716800547457814817683657012256361093483780462355690111144848492833189156588711694087940776926437419803031337037290889516404688171188952535271207660498694764301252427413272730115771118945382480707129717444870155134436596581821775334909406572659261338014935563022687905246537511483827731674101482685591509278708303385071452136279019308185752309668129065269534768066489859019415534925556883779227269811675053706648843076777236608192395692461597235907773510036909126812305076801978951642948609577418681246055744560874213058586512097457071880740022200691059069182493137626059634760624505321525126424157059673234217580463939310282759801887310323083704423771991559767495381816926784946233582435174886045308024490948093064604974611193675927742351572128097100697792612195321058945981090722317138602244132548800888685429630619999168162192459350400826076097937091113357226533625539904685472795692065646670820541182810301890027844546648069376052796470537717617454440195490827160121230460462629208161073244692040176372411652428656645000118256020467209726493253811344602027359883183644557553907787387714693975007713244327067405450661429690251066168595556770594724447383884103895618580769342087967619302791208087914430804312241844782899862699446939963668373404693479448138086365005352264038348124872251052532574733224427600187095888614774126831084188949012628290565324202863065006536115751679365578222052765148304540871927609393179003030472283670807420241738295844892832450191592218349454945431791816058067218606885596803378508079841172529524782915751613843940104571439438132836093937765565212096107885609322658675201569221609785583269419642867851744388090784201907842382717757307639882618300171086036580419099040923448800950993235653538025735607541223077481907020383489361135181725621863624646517453680574842992745428910685276059754270774724574603876904564658015312130990941059461546437840879517444722252182404732954353287470512676868359646106779844225991251884037426478762741587303192182763295607059047180694504301368480642412830246876557186737088125337965322805876336696174968807190584346775717327830851720289363214059490338388170839288877388021676137481031505123457579028302299238002643473202714252664801218631051455250263971647084926332285490803501545662539414172489985976090993882736417680466475963284775061135037042690075222081083470643074143967008568098017251356753441310154225802553231609220926458458357779365316840431469314328065224745563837375036502634838417500700832990133628852501877226300199908127508130954245849000268963877741225151549449068713901385850195839962445859378668446343010158166858376096939643667148138984065585306871159000320460724373321589821641391165869799920989316579098480271855571355526603157855686724003370545442474052775143725619510224318658714251513224158758270957779540719991259076437162539246814354020013798451688281889619751711226325482990934648602574772952543662506161821427835939449538275345309482038954155449939826504182870949223914331061174997736706445422808955528197019825737261849504306346941855127566537900291986784001393024043913006979717358106493945053816368595051969563912793557457289306124418157005146323944293886604017653151404725775958392023545447358065892930742074164476756823512048060035958736666166562875301263952711622539063742822894254496725957866049448899055572209610701095030552064267456336744668702978361330007066110438961432028898784651679471578934861489669954832432959713990586989366950732512582096621515838722193467257097661273687928864076316584683850256247573738768752071307296319661722447582535211641865813321080792188580159733039945351676502998014350795931574492834651450243090068942585405528031625409117541851346372846800618644090108659880049343561551962511788454190574102999906803331710083161005543941993398693084134302197937093252753542747924261250181167297284921914076954475449437245338379179413736044934718023592323062747953262558874502075934708386615684850637415530763187759876696433021193549304684381248275498114398689098969232346351158689944767878084256429208826254396958000992143845987342392476949699073335838956041826101115597159606216876779876264727158371134624372067289526511263905957346248004158982376611712398769927909169552697026863701163983566190481945115148480768774050953777149998995359364356554599344171060757491252214531211531857525851446834037452871324746874825905762600450888902411472017212436528308343916667381700346405204166762030230243486696872203877142645587820665282100627847463602012031258704058292362643154452080083334697509591066994727344945738083895647326399598146203346744235172816702415515254980405661861807378220106210649260904663936738208379907812787674495091443391735484828871243097605847084642835866916619914841836174683460676564235581291140964993481325975856595905827812897922974256656922560504170057951651257796836008339063269266853153977727178416416158558748852781820127208332868787147502490693814744278448881057966159153735637483743883601195287330979994655292798108573001599245471957900863454208131358915547920244887653000468736924583398383015746295534816674515825921026536292929527219067524314999132334407667457004566493709874457864518445854528824275185407141595742859756764615246484741408037695683046484802267220646906333120653076484958852593656607243338711965037964653747614645638940440220115756306863353455500428650579646492444779045673441034914241798531981669755257347637284783440172820941281529210054129627679564185908916977077567800285790276969028450119444319577074311156125175274706745230590149891215843971044312636588292568150755733743357788546668949381661705718806419638964668485815264603779829396065596397861293896630951504297470796033255808619931992466612850255495346835833440189708492710486079552108499256162872370026304632315977068491773657369171701794981007043909578581852207812005856526618687918321726425149246721523711289381043255257200800402642809891581320940029442839669909470760244081856791886773495533068945291151508675877061728387644377796940956382322521212740149575368263317352450251264899746143962726025821707526919980032578167235621804976421468061378141907595003281542659263656907290438681060717669782639597466958634218493498075063035745344523021746136956295706465314142443588962259384877911766770300306928874404754906776002552729915793271121020676979830052777086489143348836068310558767549082167409877757560594451307056805136766225804221611346513843110986429303124932748989582915817010045809407076244376226917198072103186884394792691214428705171572409429314955602980016021418383176900006675582628986351015789212890954217582857849148070864170653472908719131767635247263807414638894071539637893688686014608915919677676982872499614536876090055005720124308404712218707690395240545708155264039491914145459663043831106924026026121694794749906055266676243584799019461757057242242583516341750744452055528440554953080848911961279691964546200793044653088109140152386646420955596090020285274293682103497411930594223523936239064537595884854846595928408027060579023340640008903827422957125571471391637371617460493002372525545157544648544220257709388929721984250914306044016443178182647758040609910834164425388026148685273194042034586954944307584949530114149705757087271647870882545302400376419256083895018627352687212033662042029119389645382038969408287736272323837912307032648697387860280361934532264581396295551008486612439699960477788155709548428877816153944113698900712042010968791518405577179574860253425946482801393239636976375573334725013000559931313582485440406342021683591700381366545472208547039577900579821294199454490262105503056233279432950020318366628558080673882431922913313563444817950224681306418812667204424074623289270048173548315489964129121180255420235291941022180149696714155741387765769506779460188670990729341341904293071313793856741483288685982947719911245173489642710211809031769218844145991754216765483318709768335650245260344880633084662050680357870122233211062016261831780609203386694582931784924073415358110477693154665955708149155801826478950212514157730074822294182206455762692819995237171762451755911771872964548663238312965686486066373568861526522844549385402485727023838873554721371691763738726722908742546256483897569109132829481582955418978413518818937911479580403561863811453276611287009056981521091165024776404069339535386700054400751559942889616915445596533442695653963620239688962501866363586797130901600494432346932043899997967457748472809210711554110389181257775222170624600030210067450247517236796204698988812671583991479714816047954911502474533357673119796299708291705844359233157304215045602532423665917078017011787840653176715220248527699573421461423923778388324391847961672485213428002956357027535913827270541767683199883732133488209267598540509594496821357666169055933972752038358600620084811982779600612920401224676963075549244696907386777629077352142333846357163979677528308790870607285979409116738809074275434190030734576862617049640585381699251044801675293828831101480031878644488161323192256812078931888342870845934577877519698168466631685371732014784352041349113103664675187551755924105724840629949803203868817393394045694247440684602385429679868956561672952817205739845700929420437791363477848833086521972145533368374722188064110815634988586528529339067125196151274577864043518410814188811636730241596087930305291109727485281765009215018680939633611941232296547775420885590890206735110145930834346048460960275933042814369914937715946534039583145561783701209263813818048616488308060100344829043197114476595115801103151319686651969488838010017118796835259199203488360409804306536715015704806397389434085102793442267436677380718577781536029995273455871300664901335317677305051307564989319801620793254758014369448726775995893173120611420997134466098776334468313152281797088825077257895992312221994833751571265712190324860744501789287164416988371346685280804403822309597075321063447539858506635811510027721641617846985863727326240405072623680686768685813005757226561569620054028064330453420085668097513336284982752213844626855677831867779953819960490774910483891092704858785322766313224746451696067469309696229483367390054372314717718721925710607408330038337830482633920999719203154184102107775619132326645844099065139464523455249089538434463116542377761549965055915184697093630887083102211875040134859324971078281192968996611965461812166298552416000392321711407019174914617286429751944605629350966261525310850565700199989831244328801849336338532276403463106981447870588406550447580714359812239244980857587076570765603054774692156805561983756569016195160610320644745303025092441219051592201807153385336735511347745755054992505867563242684395565780503140450405126918741880799426053773727679490500102879227373058701794075292001568814708400385236836518667928649196259306390054714396632956974651172154433812685866057749281062195911832611919952437152920644315776175384653989726026429814264694142625687253919150794690327253335936021042634666662690193087618654171734680395816227904303467671553809536186958934096460873905908107417166292383188704596144704426382168566707029730913882833997866792790304951523841168749934117224036901101007910244669554100167892735818640690314203055509067150802515960582077687278476415401032712198976928378023740293244856757897824266798678355225527012573726859709530399318934213341623163613450189212977453911401280306867241458761038116080336238799277275342936749319734570014157442273237854344577706840687553226048224166643260815831334919789263131102061731933652967891809193811838894674528249678823283811962090901729504629913742110421181086208592739830812001716873243957257785324655115799420846488600755376437882077973825013008643041062313624389146327735748098719235095967486183696058241265227645909714225622281572386747786825940021482096415539387200626492409000327020896001584649215750319758112718756781095870150766751987147279837627110957012615497667859698778846871106972189102860372887505628984429849184514519226104827355496938469137590191902545903570783120943381421096479350307673715573948584214710936237669080974539804936962665329611941675666314317248102536323057968352966962119980530125855038190678445925495361743059602589376116688951484964590101687158474769744656362084335499162581810413688997004753072521584498498520021425586323587387517280707271632434363650113098235502609147584471955800692843807488390583483725663986301014832517335341262822457150548639580624812612536356681622648844073296190975156940598188072183380283381420524000436843347649149188262677172771300915113376225544385160980445724814113343381733380079489071684028118378292027657606715449582848461960973325938977467120287020965165163966966095586333858362478572506069751070687483181730400347557760648996897660852382452587577438042500801586501384075897968436382717280731267310746005492321909505161178117409211026398401006159520138619625227365817232522533124435036911800152233905342075348509968581453974172935237916908394096601743206992920716637422421134267083553435053068368590682028425882242877723249469852664791428893470619161547103666722944062802296285339119379370035407094269449760753939761692416048689280961753131487710918746452357337312370673790332599307155987097903075684323865505840846327182002696123858814587911267436850354809202486589424076236439503944295195349061365783088830824876359485285126322918469989777362924545051428532944655875587736534597917031975704074576532644656058053662761996856472096442914903529871418586955475443210520830770989253619818511582725115292900619516136924241353671037356536547845819323631384035898584976891734401532401424648008641063887764091757837535702703143538789438306014090938572659437921342065015733721462118234310285124829753129260616566636814682940197885936573526923685145436886597126736576082940454902808253696814935681073861543271476712528328430047961560425607170713737777140655575765058417616612322345815403949299100862526167728281371311472153330105487388664066627780995228823648156073045506732932022777558684423501369076179112682292863046392127673583645426866259597529944522764070248487539868537457865295865393100594081459598241608861546203714624505561351243266622041599119978306881511758921749578971168098926893048162005889709645741740720170736930644480136497446540839799034341453656734108539747639988548194284358099140737281556015284797886273311492839993533437137007325306496524661521216334004972678791881141016930952238560384175737288496708162927523176555626332591891512403142683718452224310360608159816910588382980022746192110658340476595939264053031615072591097022072736503528978816026864865614084735457936636252614306637297983605601124533133395079462096720605727883261210212020208336401961158021400427531479982654787433485285256841381093199659352393835411989762549344175831353273884655926097488215316070876405996889893891933952734454755623933065612249089403573336134181346775887650140312998539264571172382818757532970636351951488645553448236171334909830443782465062182437716915908565106644330394710372176953959074917835921877635044527453443204882459913490629030193735417285819101680128191245539709778299751869006241172399185675811874810723430942096674318036513796518390794261043880084792390201426761180375082664799689487348119070762877579389831370359077511530495350772345466723737743394169788613377306708679113587859041435001961805819965554764843521090180294790250618326533460052842858714454446355622966266113015287200239513509655173719435744167558534651128876779037266024008355297418227606790845324633976706073156982961735939772481193421362662618774516885586317444519610888352181157244411830578719198822458650525294522906940638638067516394753346643014555159946353781609054144623836215698397181869842364659878839189045096949566010955616454282209072218390760821980713990886752241351474325163923852580238920779155635777545756320474349217222264464669412383629043405132878350689596152780935807905209541247420447180734543076857410870479998869544481782877986575176061812585645011456215887239906380020134397733055637963245378843870661983717722481646998293150942575680600691832091421806784512506004186581895779390713145767820137153125067129639389038971561290194893335448670870381914120894006007899263549713641131128662496573378113721420428588140706225584458691805361467342091096791912154251413147418309950295333310644171069632823933652170340322028576532199682094682454647150483185121732477408169419965050513513263789234309352149976661144979985556950724719853548062055789429201037861707749841637126009256935226786448836976867494927778031475454826012035665709170277173225204140900403992776915181673257199917348830323989936494285838881437797784192201830843516184943914734000628195676115069577914444580521852381058436718588111665581605870494354165330174672126179671075974724794558159348356475998196058582240635243585664690603733397255385096928935784294061478168593578924875300717432759700194121142561314151919130825487591509238481081467065174743835130156359761469532592675180006630430425469779267958820814734056886698473611537029293936261999283965376022009367504650020350523210666577539747121544279301725939452404205037122425010079334438868340610187547745512441017692500650304308147599389834269492337881890865365178973441735847087634697689840850111926618108954322759865462241039058369471025416871194024183727117856665371170827274094153132746116833796050564976311144593474894447310819364804538080886865722724116280299125262655691467202178322249827180933540929786923012444009826721826284960072549287167789897421579176763809272568176427843474723012026442316224061598243332101080980428103354297112574642516465287948828874560420263132706222705245088920474101413002918167649555002667608877973854051723058010840186287766615405567579523614179731408622310367128304147777997800179118674413124194159036402687166934657628936238882815559298664706460940812648169889703910160928923867212733910399037773089417061168299386125268564337063619704167339450652947998333381061290032399169800772256791010252288053368531729152685926486757115407519600843168541808491818574126585767984806778873146749090733298999389611559918188112526502905162269290615360564647287578019395046828830049391969986452065021418463239724849296855778214651794880194894473396431739563060259831965210380475134362776841651496933885269795976865499096825002680612350887860364538517295564711236480582113470908988571105626025685972167792271406310253102490732472531094978444089321908908682995451229133316116292175278503159393552950202874676409563352852172476223821321310171790509006531837503955603122748369572937711369566738412050853905945796633689297893714759321912999146920068584557526032522675441770699751151890362744327090961064661617731103936005651208381711570282918191926467195691384278472692631479992228728334269022568735422385273130501328608507276504751303641453952301827171470505048963114088340024099860314457129280822999127499189109377303197925630279727936531164513045827420884007808880720957294003466254888654480514258556555747190497243715142942821540555351239233135202121347923970371716566518814893035496850137852361103385279990821441191403263904372382149330699381895217842351609259988823712478124864435661568709167719694481777794780437008988623643671747212877961224866435827211247742274278204597024134847980364789474515446974178825195166728089260919193256358826984399816210255057958128558907535368839564192937205910257484503106908190215300291529221474008250388004155740967551718982896533891413502917976113988014055025807704057829357775039229299078850148101952112343402875573542354882501647834740851993649434888310622061202718836470221318725510251446437670885871606546750744805323789213123496810363179067964174898790762588546681446355061537236475561982806440123369182000731678960574377379763617366684248642242513352894155660892471128497604195233671416590831804063095687677458616390285220274482674111530992785445304972461895284932083432448671889460450552046891439621458832522080721130500778521175252031376686242323398948538568784370589192813944914579495191641275949769597872054124810740282096792132029591300570774646260808117894313925306058552472064522763412225942062646931583549168810046104572152948129226994954425744929678943878741231020823305109029550150381850520990309038895448004972718400632188701263809348154129699953908315776893221295075367905946700495032932517159688476455489300722285429690671982985792529078604193164507242715867969316845963480925577845512596150330200991330757592538897871126026383852558418003582760950904005891334654343101046692932729037493999223655592324676724198991525138449340073333943270820571968983023327852557243728484225943425414660615067806372038915862549842364843283645173619772461985821773254001686227621280985666794886007553240501895828891471035220166496902222032334874926457707734532610227237071409759973425665632884952397676385406312311227274090273027000370395912967543139985240204658601517979733181242471936511914902314148413869626659717032259491651082434061634973027068858987762020335676247867195273133424598021225664730626194950723318478285223259216169702036328978921967565572854530102695582584139360221306317560232671888992676786311315515450701779023771818659377326189438476351838705323648366997764402573778743244352307613491661239332907510636537266110864393760859783493390391385455307440707397020019004031734695545759117931670753942973162327664767965181619348936289330095258090906685042626476092246835646839212242093093812769968747043140973215815244087673617253039860430273865417431017046149953786785059977786160965172084115606071453417534940262774978362020538459728574151974024233784584626466963028848958237980105524074645630213104054701618940106530781778151861743372846036253964697933149180625590291613192549432607859976317475999213103891736900252448247792582407126398552070213562263077800183829410243734936902910658313758629166202567176587785297865978975389029761910959220533703597844526418436407357467641351802473287931591489479155038870547427788854948402043649642925579513722653596617441253772058742089690221437352397884161765455684367869433830917817265503919787307138146072749388442152813944579015698192921012058578260793935610502080847760464470003343265875431141826411831460575273580195402099015798083678016469569711700169811676127062796860680078429995169349283244634723673163311577819674951904045469776995845632806115966750158686800330322023029928300428844141359498627126658466578399018087472762080913945931004106232798918639860264769257730457967691868469904632412191175340251298877021728818877314678583820907882152950831889836170324488584407518154231232453453827456892283610347853134224811232296942371970511462700778802229333336343671635376580070911681795779729201644459374699438233038856973430798182822320807679245055953501185597078940464269705383721858750430598784474460960101476866985126296851696830133179502021769462081948168272910223205555920559637404175116788015110347185602709809180731580971590549262799068039512235751819193443629190782765283009693016436860501092580227259134783523592411365443794740266070837326256667102331669038848091620300417222250336137247286774873099911320500859121874059049192535552381894978845806412469035044582693091107058547221527195940131167864671310889073423428701137567167160801832076398402948546199895502498754445427309899824785026919574813923465796895104419965512423082715953025867264578192661791745170752414438770852655609627669485099977051795059314918624537211140507324660006428257198686012840612877526319836901712568132419823255814049756661833144637991648890637178727467951709265907230752856145835072335400456916198184111386711635890647343880267340433949647992879185967427237291318685461674672885705271250399576000544682641534752180765527017054306201758324656538635682462361768036743517682497441317814967863739685209287662635990844355849873532409927539585528861153212776790811125467490334503228443197869862250064475695600864568137646699167866280286157676685810974277012184961216620220115633396149485043817791770654663660385808975531084813617471706690341860427127268290474259862017599601041150632759049530328209444313749940296082737134785415427618533229600001199274544220454823204919564458054584042902321593955658056552473922461086142418730098158968325924644259571011242125604227210895022333239365733350183886973486101358784052350718740858864697963041127804254407580921154010159143316850401187605386505707521160595822428658217907588547944843240767393802151702918962911986509357454866451768593197113228545394198156591964367626576237729745544269390152201602311106840311126720362099312740157084694736612337143207478335912183479021245889819407371091523743462406307198230631322512985314842409013085731807314107238684429147131507990352781410711996658932800703743438186586451563096942262432074242333464881866452500232392888080272040419062039066507826905443603551007584611902026548750378109054570754573457002735505586078692477462714469111577873688812672231829753517052608753970170338384589284832832188649774489411091614938649312419790285933189281173571335358330580162121516273817680404622190559205060855008142469665220651019554789102792924640107889952304070620512535035062665472296509441654564930510216459780815337530007003632614756719837111853103778445474323897111318425949938245849415182717236933485779449093617453515293387494572619957832780100445800444694033388923345709361365008772069649238075305103933254209626280657965195586330580235559575147611129480107258789706850110463401964156255192643749371886968152669805258783997157174534850109692930514523158911512177915185036418854420417805021591843724698859512095595277417041850243822563195663561001578372465900344245029646251740447766387224657503754085082388645323431840634424372311587274749264185993734219509356623789941775661126036194342782582040720203023565902406502577987000727959073429610663473933682428341232521761098301359452734402886844078828409932423706455217064513998266949341146258280911206938160291110979851537893795267882056293737392607821652403191618585477600314585522761445997419509013628083026104924851832722004061179719932913037565916541928318523700961448318932188889553585967608696862384927085115794063699354171557368228368295469822565639826773836570689952102945990092062459953359240044645319006563650734719393282838070578133233906305076313593180398246881219310531677816974294032023894806290071835790725674040661865668999080124791515227152169145036686004643557866712204047545151638111467268818418230504117251075684317825114229347101149709485754666100074293901066926823630373467499518006953896921977317121152540126326605435670435421264126362119403271309208034108938270265600132692461265201542598206444756946448206673512115181846290905234211223814862528000913779757427140682371192293969967309685184563745169833235577696510179440361210095766785039636953238090733194319521108960372581923850323347685116516666830284603051027904575474968958906120543415177861848846989598405690009225061855744835579794524257738561616691614977251675256616058949262232230710933219470314856978162983060585012997102213059756828996761719419288072715148850684346137793539612030480901008594761745420108743149604004008570688118720111504773151363797906526993184835566162993243654489754072855549183989705836058619225981695182216768785876404828986565307147665335084239714429137242708263857819979540156337553433515076353940565181327890063896009213444820053760586389210278894743447687960366121893507986678613421327920729209420772792744898989748856032872742671849006586093813737165561650837902306631239158504205715237863159070548303630650046207233849821990557437718494836494627786201178372070636851257665762012993786765958284277079131644522345800679241057127934138186980637295905375383282172640196425034050733403421354216550412430307075409338149176829488795104467256915964758635982227364364767091311429517017086372937608396604412897706433179940699329590525361977270052206529835775585226608450292491469596318318293840882911398140192580664851532453134858416076313992658146825991817845362254457174332016331988511516910440132189534073961323055786919131934396625939589841596849404523521264496970925977746589143805122991522464147251013447603741677966115164582793234897249390874111809896340493651482481782340691475209952542559206428829248721630815142205837105526569956740815544553612192307944762399667248959700428144845230326553028056252303705010476291037095500536434519994151519841331802611914207144382021711598009442241930760557207318243886165283660138145368412220637308954349500158477797694034913637498739236031890363976119608505263848418236032248122724958651818756431075740160980961134480314929703956400730234133887369420383422087868408749676922909501424256647852419868570470144882627809838545872993139443853964683987463059301959722102422924083034180732639152810201349462764514474292530683981077362204108655192137918992403611624823933161511212559367327472827879610306647008172584629862491836203680343348867418036842837753419224255289039064680132397666867196753801235914619185835173610144667539335082513442472158314750600790969720546903650703721254024139699100109779547974616107486875138701395212652928556765803827016928707766835761436164289861796931201292766754442582095909286131095023878338261020367974677714922573993813849291152624612383061047743201431782870483676723623873510989574820542204655311782585163585946513016141836226181800329045322858482946892756592927443805605873489106017243214263557560911949570300823471925622636741576598723831531992017246414516460113483048156754696472101528280446405513196802657673707406531304072128094148261314472584152046357437991196791886748130801591197637523124410512253661688340326966559551670990333008778691547518365571418238123869100895465440235980143004692459250843208372655157746701959208812848894429264984133190197960280251359193761441861472073810700003581039837015039635499850600391730644049095669592834525539408656210690888989323355675959308902196094709304696255967130761533566724264212183024562437862644867574016199742649802227425817116352245279119173640569569015731432881573790611325179180886728251687113835411135623596917941289640273480846476255560834309505405356561742414569283278804230385811136257883279965960009039867355753218337885712395328417082115436757360211777247581412753825698251566401834998760530285606765602269823979104451700014906121095871940876776085992077039521287133623760817738048915328278248236352233132921329105491274296009989480624203394428673521903284773525314798533389030142882456747960585394293562383333231835418923484305054861041325699078838422150814674867982259667550024990148148722212395001388981225797380436461890225609804244962827352885563277643619878961243381593224471924602368935413990576507588513099555990595357134643781650804725380589331706340359481545180111264472703627648345159086742433002770214300935969056827136739794287286679025317462471562616946229158124840997003057192179630799329252857203618987125865013942726575551958500101647623620713635319044664643990010820138214473621927732083165215845801832090807710053125598714054414029290144254048951961298286261926536788726365977718110514607255955903568436178318330126729831250571554137745549690576395753618901857482850497624397291745170432381423257412695933128787274692839223258964730196400591665264543206437478602792622647890387241168797991349735015873834658484805734409925515524398724237009040604507022717614553019499819148561367342594982850059230467311483956853313757932638889575498240003864022237911038443877456243695548838063617958017452397076662006587644107939888418448174335104452916112679979232238499217654867003569606522492473111376654834392157954605721271616583894841057735953864124679190335349614594839741311488670870759118804038084062083798593015565783820064057655247994335004226244198918615212993356267876196601365442213101252780342928897864959357951353925881648364315162715306517613944165210254783039656673418544294211913078958483841617867626762148923133341956667307231677303229226294193735448750859123874790816992678045305464297790764776668798421199778067123754176375100798724488165866516946265203013828072413861723200897976876533828631283214847715551488738825309540405438448746424214443425250958524863149172416761281670913272729913776489543769564437372204989063411945206014314496927433595395595497451313790760016439975774910654087266703237870350000242975621105461737732514883758596878785776647395057555485655845418258347883443456491592006077093297812473538303733450198302765551141904307153461908302268786839890947613013127511307354296386919075308485930678253247126909800369232241150785618051145357796469014984377298640830298521794319823178781062949804951370235951457293363807945090520635877849004041882536335847066840058005010335758413077404602645795756927018646431145996372191361571178239878612791649837883575505394604420023337135771687173653743488366328646864594735126751175766981220747121118419766406569947989804454543173410139978723659243120188345804266467144889776026484979309039664036700833078708791752660081500145007966659959849951090412994724280897567292964001642179819890517876014481811429356967807513796178589192935202911749755315553444165008685272254883230835086750562821781412145242947883144462242486282829268760606116882747164255485698897473489423441299074040608533253715984086223610634646410653916775648764086526966397696884819295462506296843842427511364248175362588900430900580919754652256495152380483253327475159169666342550746586899905475368280948063638131079956843947423750020713746369379934106039479305833092564429260019460388780492734367997790139951711888856014220695958335019068201743834039928386015811378931737447205504848913439885126472535428662955744040114752901673239804754417145459574387718654853289588862827172463518060645060501563145263276404152123113894426204769642091470835436181291756005742548450553869979371987482463399252308145814750991318023586080748196453524009475989908115713581841014314369368329874129260082241854739701424788535594985408253230109252575958938806795580058388860416748703085836691703959427788809436414114925632358897005309744309140706868697409068303469974102953917253808963599347282627169898080424042875396602279325983834874422612033144686418913111884068860296505887110021318031302636615985817840238698628874374679838862538444284358557783541123411356166420317893951334295702680488749134326736311958079824141340071455033133457697469838757869064844631478338851885717921656850910896927488998020326667090337204740305130047291453966195414103990113272164331495777344394520189507841412143314736541169638840388390834421640280458775845348157977535860977779294621339034538559835805215710038964987434464104891392227293819393472842094364656482860406940349618791618215563246443370396051730778454205650779663289748769319009282698126744923848107405203593978730254202427947552597434807252536150519769230032348709708392040648627334256394928729835407363690285986983332020646735810642943508577118131679669387297561427068964119488712044303068301613556439258285226569288977945030191035302486200534535012955263628447837328116417847885118983577885506095986309791626509753981644038551124700454356806190341619171824801290151563427809001552584989055523743802457696069220713149867992753288007254972447688768548274654364915551266590133847980951046141966182632984693344449176245987119131154765147597628272727446477863898539554789879148012276674798761665154073816250133266540395107171375753943577882776847028815599313135502521492884213494112768949846002111863536366667457546989726718032490954502066693744752335555245583112407075093385463419873159115138892786505615973374951180354691077468274102963656973680390739671425122339054670119316875226096496298236766313571275167277528823598228568039516903928689255298609811971722125638432331785657755354071541796443823314011755427521883576390310483994676047061165547280723638666633589716497988313660901944998138381181291112270112709689117993042111388172508811000974380180848431186784675697898132831670346837861910065570573908842696224282988029613889006020033701628473429338189752172013196648254914855461004597892778909424799146462324540892544883109524290253194505508474130567890974753762822769843441566958469473491473141958943496722389306755626589404597737669221907449780340851827679515983304810734779582052817809797977085522569377047032192854356265541728982437686743886928686789599947521687494822025071319306478567111791413718768354621359248009689859682971634082776496619606369531371184703284751029321768534384943959878640726009876289100878088378984819758336535518094534403631430221156482912164797261794929284581967916403479015791609989399888381131384351880397851306507014165071444850112028137198886840695929380498337594693966210308417203645642255435919065509206435848601677754515982822564134226612726205973133725489521438864589399347065173384133218904795780626176265763256527582647687249245426798329655973912604253454444296830011576625924447570197441006432707578595561661180815296393116628561850654424843466567081771580527920916511075590337117538481402534580527263497345389332184210861870220529845924036934417095538518527364480988868164284240515066322344074822862473910723208883118502618568206959151108424621908006848818404861473381584774571108717514933794919320101926602449611912066790537974123931632195249281123870408809411784076300274490326186512482063864363053347668953055341843006011430303347507759701085268944502664787225410623916742141296870160420143816703824607186328909203501418010104190857947935475225194414130161121742956965129317292194051806425952034509118169632309721544816616906273608034032406254833917964733735703191986290211623890313202860205557237454307963776868101376337182710665301056953896272614484145835300483572064321035508050975821618814224718600302507558986060374464248263720902586645703974269303433457907742981090751130624660840278109024866214215776055988650868160771273070922039552522162683005382815127333816721798988253645878886294227052382386661028613853208133693295147967790214522226487771326852242949660827804170366404329600942377836412896570646945773542195784927338917695649166898581545547146533907795992096440511584213710417266996371397033523129692438278688122775739212732089625608121937220718611869395827472239681617396060785370880619557444516785044412982321255787537193126363065785135131392652606122026047313520945484126381347775209776662814002526430180536711057775401355218330565195339866732029688602867813438491807313973087093612866673811373973364713508826751767403655292721514029086414477459798863282776040379029329353562246078044253881883331403584347445861174519278039558952306979041248539432847480041876063512014853074102147680837526913648457571234332907429901182326718011582707734424251348931148936470740027095233439174435230509639324829330049995555271996331681396329241747136249770954814473036594203934764036382335127692360698237676400717207060475340176700633822586728894544668325709732077353879511826081065190334672731103954803687075386422775497740746949537802230225731558307853504566611326038128546591767119894420460814223540227197906289001295144290888962366465459033469823213479599331145517168120904772886173095238586514041129768964905718002429787183394771896065272330316204027056369706766930159444955048363400917429042373508508738149539297408546489685235302553944664574444607864500909872832573389049562630331475301110896665297391898355894587499588669763925884683347759328733448158854747414081944521264384940083082819871243178824743920717483574801684964343064148722384774901168737233505771496308870348395334819342827674564901411891818049472373031859131303323683735190170011753953637252650568391438757933216303381789091939657754053108400785376024466957580860755403534366180709763294307276074738301596471504652537320312796368262619069277943630625748848349390130935426125497565177546619600523375360541848202195849425026677215141390971922870843931266731746533712754307178509074917849093075808482268427527220964303681987260438458644356927435873333557199331558611832358333548257861458727279620625773521661725071163643513680452829060552194672537577757089906696545957481842081968207066533740719933349572990517823972247449604671144207007928308295778284553475008225833647917815885764524030739568992090634011905881680945755976655586250012401347606965676308328048579669762967310836033476169612071681690550039359790717992945280801080490515051010911276750446851937764177339716885189258067208453123248442731830825920865644187230225047265898486825329948981731360114984091277153376463441621012133710401357447830229719684100359386241032526047699907408388587491737796673872755218755294660940900336114648700148379474878798535172789130005986654038605064476763620047706851946450105507006782809640033883950282980878105731097619478240908273606590690055563587543037590962199027687637593963004057496279577231991114773282252225042617563486874671367060149472318769985307279522994260053048666922812678630938770529297027144325357380682395158884072584760215005964393834422718001302560477743694396541302505595367928865139898093393236451707957431560980483408475431958427996397456532629493516859291558341327785606551526164075200273150383735475940533069011995443078571842896039670025085929185860937937060199922036252535136388659791261665996400888437525549604392831768098650022065174779192796666479842723291959632174204891260438633940208818134151090255527668964782329853560016428086664867512468367021757175165270379046850891344257129810995423641382953340456490993439452580390795720923430609809544321151444905284614784171763790112038414749627821869191472028764134215993562596690286211988443794504410089393791344428288046723441857974255976528599473927809164191317645332418197644026959337152148115300079436241006458241132375709127287557504666667097241468298945891535061639104714038334120108931769163954021628183197937516127192645703240296524649770375078150404290806149152945027310415678939810513791718379086293745266553706992436817119382024778252141374649319116625061383172991936084321902170384664723394726776835064254946252405790327014467954728910695476083725976496307687461549494518728783538653268146438888763365148753117583452350993598666601202531488795903813969909594760839184563412855881993604225727902829299915509796900174106953684661038263170188199439268523686756172508309614390150192068315543884184631640337199492496818722462228895561850334975703664562798140011619984553733339390210636016455808512763787442298659925061819259051080126431639138288655589183898938409533723662336204159790942254782577491112776873834304704588482903480832747828884876079691556336556571482544346480044875618643093637625717672580758153011092332363856343265713523073369531072514726297220463473894275747370211529689152344674608289366671001533188672153458536386308153643209756697078596693536830788880106096884499198545659217065759319362121810830440701656437820756972038916806054350462240340679086634315885755580351591655465803076376837256878272444343915233184680071687800350743902886635422306513814800566178570401711581924678966507254819456983059207301138408345838342598910589530165701648903854213521179038180620403341149800432221217094090459305011596642574652023774923964401412765664330267734873516699715382679139273536901277673134560256067015853786097857121495947673961594678926995924901391236267358572995747049932896799838356707843205200218301760940019557730030181627841257087657640725563399744246147379369285146837525289037054202600597828290574652358324202562061658122354470746619603200716845045753321599751514342579731810791517632857536953350712435184097440559138766979237087503403729565179285601509330327124627440541797061390505071135820775852726537576502773733526311202576768211331386636713372064243110393943099427870879031254318854176423439134320182883891775922431707794602773243714714509934922073349813131580807806742631051658360141238062267766786839962543727175483056444258163551818808624897840388709107437981735354506254147234484531538349364215746755405057861129621891274149096436413219683145459785459399014575196493792868993246649418537059192932487748187641252685316712064005189679345500698895657226765156943980786690856634359154325327179813456592132054326864807363105119505295611861849461320778890265189629625157037004119988597783626764479495392216970677522994726954676497067460988084697878503608739253751780671023030406805920236933647010793610069915471111875078890902535992630267847121060371853840092803467964061345249199745983122221113019707985777836106038464385403322478113514713681965080512161057296141944258744720711975631926133844319084559366601905313948859253740504063450051654800770624187806581901463672420729121683385218618641175199145093227409253469640469710797854215288784035802426832955208330137990247539427967223351038914585389952303259601016726669612283540407166665164406346847047708089845739483491524566379840945522410749280793467917173353068236418563225494094633148364875670677321891507173331830413984255278185548695583374914364573847611832961628897654586599862893356242239949040981494615836705442494221634963077552085539455165207122476661546919124318847829337422970228373025484295263844725557878096517172517432078440397906925722633497779805367701050189293067616724347593080616030507163644581771531071190220234956696936931305271215174659040477958035918716879086771724594176828092880153595266419485076493949853964973847148207975443683172981147834381056159976843631620862848049271627405616666555213298786606818230888064117534978246339172271297476889146263949016222409975494870614847037590548526105778001462566717348601882352408778242817453681130421195372130581654787632748194797968471917759074254656591879085794628959979148153451679056565981141013440642424558091417599034245777285668217201471064660679916512147036697741184040899733196984547708151031575642869666340652987729213974909535738848854592704404759407995395639954289132040016092726336382788480625306826801473925966752330289308905616200011714242314496851706964812927224715321041925699592080310478162079831058722903848418928572402156952099339326037527102754829043025744410854060176652813200902572251226003458229487417148753895625843727825464148890010576162861525720557117870388397529195592244942405808418975907760488109550740184648758510948518874714829749777784996740016097779667929645312578456197743773617717564834622498751387459633467200852206804924515594551257764206284056709360077006220988495631325632997177758972237198661079732959919923626811836867605999381880285832034922277268230215608746320570166877122055432304868078901058800252178622778386550065115959294559701440364932784581644357309059142070747179477133052062576405974394555811761518758993196521686060167332791038325972263937758172249192904924905827061777663946251347429378701604977376843646319514359514575407566822078244146896566023494321771617121869700582183109581775654988148090042451073075075394557526699435656032898463068575106293531692722045456464667607622808639531871769324366485383869902518797087122850287348435655388108677702625632821864065806075115400756835191887444018096797575667580577086638496454953532748935568963501363799547989430548418275395784166752831800836494142504466566128146306232115954149789092120627906408133477556816170095883571385929343543439883154043960077983735931531051747058878167576932367448560227115159196043396674537635844193350459190541470115543688439403483921601243446346364178607586472563341812976808426551522332495878236234342413317947140855008415362859227460853342777351847341192907612392790781151860733576776556727541065294211623045221833897985045651447589044391479913054662648446132170644311972816516810698140127031537579607492866486202983075676215479174717238669473570896350112241337723584603779076800381204336138911055197874522800044414669069790284130105845932491848890725708597875451140414238718493028982230860475735907210480592934181301871924922808365134253808672061055142589011108247519062397452669106538827037693804681616683944875720640452077484573460143754189079666356418692772536180342362868649852988140496953355530370938772766548365825524029974552415147020060304672078124420515525845338293456432717779337093146838445465698717996043708321997824930394598374442876309233086368787762475014805474719619134014404804061468526643278685303824268921228657150110103073093030783945817925563467540426929977240414933343296046065198728821129163183206823514476553068230280660301197240096227180550680305991375848925399641554835521655970235004702336718582731754859912355985471737371248297076147376180792963710200762034666164933720500186271246341682989827170080131387576392509370994294530147973869666159595449450232660833251795076101561559090474219453967112125040294619785284339966787102638196049394784709842233467742413111631097597686893059482470012021680883484354960951811532911545578915235628977436532111424698507844924353559782982203882465056475369216450487202072010798647905486133947947367300768531491143677062332663010149001353297617526242871041635903050222023508657569186738419405389182630172805303560856879474090702843170369967148443936977856787064112447119591426674443122368758474979828020041926289748350124100155456396484589838642554238274180242850689126919942517615228243268300880306164548420421854663691485907916858833633519082456646121668495611919999232233318792166668089600823351394370610784949550246277867725969553985558005348616682877672638014123693866818468267512755079226716093349647044629888561990963189752964015692448869928116748903826762292219454656973573454357937817062532992928817193854386931248481140744919456361917477344011804892057909583504971191151915827494175582382901684670142665919914760777713959462960880532346462072482128429128695419712877478801836800548635567955678921692716465029055612571353465824841597179153658070765469936614958426649723009464203739759963278538897255399565612346718254336991767853279300520383517559874934644665296569712637933466864578895993936792731230445497671276303704243523978845837160423603597377175239271260846583784034166130791114869535968254169825214767194167094385769993459428341096631861566563621332292303707943614849438213684743143076682934770894944268016797150018895008909574362640258194320190324710822894140390061392913353036285092735981677782879288474297351160133975416378212209584851556612687949024571198960413433249146678590017497909085828556384780531162764064846342464935350525840207096258753981248180628445362469080728241978746197433581687939543277035506784305671370448625018397860859920554678590960267845017687253385824477492148353779927644609474115774381633060744533133603555818434752129554446067794261725904484798781921924515893804680351989814579035155924490871215684836258902773254507805782072394324733355850053282282850663090313235946464148629316555590531065734179857578390682684922668250608572982633234037502945773634407981095904854337812846758687788578006951358124076023301696398878419300283685989748234950848736408254899778336429357433243762642248835868221903182036258032836271046273259812470091037099637477433766222428111589864877420293518312630000503473837879911582477479358428974002836175050436360423832391442169498040843958057509488080676442066550692253700550622972254092794460454548572795179418028735059387161542679425062245135498187154191437727892230503363072646922907808882926577573763259181758741241048716473741801099089954261152796685717005518469913350693639558724104340620525267232602065084117850267735332934988833487893970483573671439615571075218053952573975546797185421536390677803857901553507713557626978956374365798391955312786109120755443919486935862372396184489148094313563210914405588167851138320833723522298874346248893102478580227586981206338807170837376703990421750552026884259988107623446404117946817659927021551179220450769932876545593827529271240090691662086685282176295486868149851421996893839414820402613613341941446992046210344752477308110831699672809749149103310100571329255624741270535530235291953866609689845330252927477898969332320085243877270745231432133945711768754598930480309168455568742232049999901596739216453923284162970792523736739318739448917364351178676316236858442986780460630005667451713433995368900753309881629569848010748677443057222057353351709581663228035391348054096298927030102802648492971523289976738072417648875746436731294956710647522564576399823436661212868256062167903548426955227349527765094926162219278046277762743313188804194855555333072840756612842637898813497199811471394207824742818855844623405639241036453581509835102501019379314437769858877003677219439790420235859387020065639156452329636062142677105473713608271750595817644215213268808642473388562894440871574268983036926525695887158011941177975422111609429954195179859263239534996380967602002691198168808700563599536800529445200561349845898231927365236739697087096209878742436464264088208697515570756913154326969614174632205037976656333725196061361325969298896277877613447153594199087648110596859974739352038751102427271222472560360116735145006180523593618724960606067815520556186862791328796572666329619305035165211558433124578612597886827238401278052899373037437748804781336433535043158630678635079685234240845731666584738117058572897401118207438524453812499826907129030738322680122702897747872484687979612344224228681643963163642638098001999424103197355624491717080795470871144177739400697854330031301937797140867485385014423812636552270823490648940026040415932361033036795260494449496712430600444356156550361240636411986240383992438139026080548142603371168284749254587529485289386528655908160924624384706382493517968329812981636978190118438400393893698701921623469918527173902367098827325714684938154468420889153078263922976783643296601550136960699147160963885197769382326521391625813382155879035981838054798466117690255056490682373614774679248306370504745504120582959950599488583029083887986761599595485384620927848485424561713930027655889752146079494513045150408922320451597524086079503905458894871302436043187636185108545734518053254589440265575262415106374642087457968121957721455761243579907772949006137441641301376479280006469797836922411193948181846211088513108646331668227850869181015173907667016138312046605362136846712110424797903719869178019429981270004342575881231405275907987876515577764983342468971568516921966378254080397267839126756430195652731120410949307818942891507964097116127620015039940465752753121402972943428082675480101016823513117382071453322599151621172418293652647617236223329852849940432977789924278365143179034143763856922763930272973005297180236185762872193910646237620837486623907865282684502036806251035966949728490196996632443085328495068677403874536797585134511770531422700674413441408117803814654310285998784283259410615964586753848667076580481184966409645450225912242742870756775955202753576603403500859330959006976942363032074212301435335413132965933272360052965444941548582913691772487946576864949561365493850882302609406460379876421279720289548803909295920164083587446650282012261812467409034020152255269631648452292382711075675954305689136291040085620783191069422017064141043090651729725978788255884594300092861979678324105932902304571245948797183199048584911169876314819900481439132102433125942979017852516843860828141697003746948270424152581750029040926874437182174916586041758417960709281433376834039256525295749309574827012894423323818442054791442151425999043114092793500922012205853700198076878535035202474160733374727780751487013900917142720374844285500867254668766838327880225750992685635040883650970890616844168460604490589989315114216456046230848043261919239428695369753335945109722987822556523602287556650735665438579196237459260943333397412569327082246078342136622280566123569457961910538121285838696254565470255147635806788998593604823678868922805422053329342835747915442803508067051031728013943566894093182683276427329951651132525355535415821509126393092431649725431725278805266906809108544177130351778004175167509616115343178288699106300074874058709912445673531228352882737055831213406018398578916626631997884459132865398686351145050918802429007037280378270554602880722125659740244918965681873270463492566993859612386982964066442994069943096267179752825516263171620093976938676954791118343175302803091925119828031358086426884201338112249863971744239351595006135290041117536885433383595444855841408584794464346352760212645988134260999039335891872159209303965509074658371972679476000391559891558172013705283666190103377642793379010660972875083112966655210141074486197353699710738302417007420655905974065456388211899191126622404253440528436814728554524879310930822851061239746247696379253276484189771006224020170245945549710653772024416439953538958011409978364252919186141469167262576795076610476068264262705880071163604641105231885314235753640911935857792944716483045946093710143311996411078706441234361540744792315162655929056321642021636589419046826053200035008725630309315020452270383865711245543768904989174259537470884440247257418068377904571524808879562602258652188031545623088341976964880559057340800071129855563136266928745430328088254691501673571873575173887780999847908781423808000402487491168176361754164841780345085284081208412191291649774293487338622643837420647522789495177901644861657667089618708272279866360439784445297265167446152534917079406714371533226109858746816827480013064474123773533894689329801127252656004316070801255091558523278311591665311575262277732834931266354716367934780194882099435864614806164366664588377448672077450264093616941519327426579393659692061699397546999559572252182543756915900725680098614245987897458903058980044468497958575455535350928965408301712729258441793005828295719873931029687177491171553440544039063992652975437449851908581864349647627615807431707683679876528654956608312537785764951981568297925560337091245705989046150029278742581095767344785933234693395785053835950306844898211474046010216002052008890591245619971072421165103801296751572952393663878052350856343976230629315045559601952596696200553978560702936377584181582128899352177577567469797043661084331881041428064630544716821935316339692680245629915955117040775531905527202315078534806832269885135653519373073386518950233667477183998455895877348210084328221408231683983827033234766174914367436616509637903753611630833341969102611662767424172975876203887327540457557932382367058674926900791180015380964892845638281211744865049197020862470621494101331609126221449940380622258022664090812688786903533315418301096845427008193370587328668036572547442081726434026243789378132091165193583334814210789534571422465347536389868096380598530420317688540591348841214593658524416271890516973280210285373948553915398892000073534875061169956035958406145143277687509317161497999250493536412869173177823557202622445822789261842723473845897367184872099000564540839425593386259814620725028329553370251451403874413733356278947270970198308088760165300650243080998611313540209786343010293914756435767779215109076508361302741142728143434453188752099220820853773873847799437996226349570404085249245156163330530899689745839531390408127281759247699817422891557425535864714836317764320713026270198526428433259220057954727514623584753957424410741963892228273537054262775577126113278864535218204384896790592126802125033588318890196125541833387713217398794869441410484562680998048384292400921275177992810226583652287322202187606234636191828272365865313480850029141440633732969615892236262666257602148484972761111336812705574707808492651124678227488257505783148597171792396313595957441852280303291766902172346682916851017838995509823961554939623887142483625646180529276632471532674191406168094665640116533696377853886317632006572792258389380484328019814707618555345662016573525581510484763783693160303406919913665605659124847319695668825783639161013823454582345253997300941216207439017452292917375962200552411728612775674759903707387369253638764715100686642833174201818235854643504048549989044589240326375590460254903666343460603588677162914061477630957578217093299481527710061023037262262560705539816260076064150462343612071263110291967121147224493034853214211449769975605913213507018889270877197464312851222175920695617874351907678292604510426881848198341629669989568729974765868895829874913051195637458742077422520554123057213128648521912336436319593277795396988203782769048567175864768149221936647178558459647010593430766683150209022624291062346658546289001254665518054290198061377239311434843450309628940184764135426603811950827932209081267530382481658858211063052480258604889675989717817507383576247037962606300158799339512582397616513839230288869133949806870334366109365876499820107651406918002161316009014903639177967140126800042630385751800562306671123757706440942352259375562256818385897628862121457713970356933853521626180680041862489760317833710574554629639768970274047252143401052603889780192011871946391780996109794476979088739075910270309694371488347218216034937312160350933839810782087799074220607857391878635917780181668799657306018517968197478640074187971070291575516549346213096272462311748257989432750048441173946416920985708866536400855057098310188443490120216827019981649312009657656878837442903742235602713349576964042698854486928954157178502296256657498516228668486682936795436858173960498857182268089220101165894338973717202077375067473771867485750564234255513860164017975645794627374840768289380136712660305403782207483182759306707956558774647824705294897822423486485076290745024941799694919770404256908660977301370539520795524173266745416929363782957629781807852501306193918584346322833254031244690292201186039708365759786482345260820366709755756954139581472505432522623981774846261841699908040349715549571664174039835442397228138725690771432746861523266167085561583392397417188687106760916400310584731859224893473740447622562063224391711884773744328335088888609581153188578796910576915027926355082280372905691552782477239564237426066935719348744659675713228989873509277117866121261321336425696745809516868518500429280331501658927464539535455651772597211938601854763409688208567828114132813419684301175671080920030567573751185388280054083721886572924217011778651972646781534643097927837263325321870257738039260712449815547010788651612025394334780698175902967707093774016792409135648749260192321188465602998698505913127522339294142619967803952428395730086743594241410817778592020763608593836548899141993754289096953270706896996807807396825509962747092100692639968221221826219493918292271734775760395826207025031277034084770771666609279908753149889642579080690734043194775600192943542144538984326372479150684220393982340621891223614683625924052618594636455042598787233149843629903138638415967361407228957359612370360058434065420514992160372062452040462649621847145393316418068763894880221203428135671834535254588860507350483305329739656113425504901485014089916135334464986978658607836914152334542986262187217996408469125848435014760008894186026729065018844056201252925088477348437777384136244898949170101634148572892594722467877194842578188135702234691156785053268949152267748306789871975725351170445125395729660311345903099050836419432659848165178577841366997309099360542683738593059522922592921971044617796150686927208762680732830429516554535048424494817621554547766530375004630612501884770273002650582685722199046167251173790682978140925993032138987386871916412558088392795408578021502954806948980433292544396222357071540617721366213591312507728984259319204490040276435707598640222614532193564297756241564700699894741766234820508792810866658116535656360627635732329487815521129456873477049920385862035347714453634340742741718029893027970776986207355749556032505458049521681569689395049759379754213166765602857980967163945700365829737395995791466538040665780020204603868578748691191976101060383962036683297234534202761783124473846747564364616858743585396270213639649108674342637460130574348514745616264938813324364750416283210905023950372353585690729105858510426164899320965970636748479040977094511874512165738754067558569754042011337025506255072712491132122299014683020491219338920551904026668772476702189666105845983549607994244522459329931123746623056962803701162410742330927427746291635343023066406178323786375215968277772418040261936395652062356922926063664993119410594369873688486399303869399222658911636124867205571514033011502037924031658937675291162290126824513851300030095759757938517025871408578701616869839194264045988168996733369735598394559322624270380757216301912668828600496436906003854854531881088219149538030279911996188266735824976705642518526084854705004217480339350959521051050050826555443476423519147071817254395725247329069207942648278198808200550416091427475781030154827103391729767062199431342518422937015440753592987523690268987843537258738777345557843660904424639115952058469059497278974661025870373143948815419188379670613434480585139782060597989392118816044070522976830236608056932504957345302270683840662399820329920808777691456290332501060616941053072052358892493145653933621934943647266104277720030794959073641854126906760364038813376922368878855568829161576770646570418818410032096605261925054071096289996641915024884774475568827793496027690529297438563129279858238491909614718751291274908310772811220053130366462162750396761708909804997139328677570012355073859247032947639787541180744276682027821304015363421439853312182681375726170966272486350990141227802809187019362011324311779406830255410889406929829914791363870159153478628039586469026875663375568369025929781063928540645403607538765534243017076038854102617750512133096031748812580662237406818221390533591825326456586935186126418079355589022227070723521020695909217173608044688040870945979075893570208538195364597609296994897857350703400840230994041117030404730267232907993753003785034349194133663115333074364897762057500460589794827696373750993906395174057410955879410599117132710908005156804537238715879986969113884870846503301328492599689744559491958975774754336345050997220360774225881961712560257071719633784606599419541221198318832748203323996472447408059230231894934351524607042297535404342150334240580662867548646338648644466822214565399448405191635739353761611451109911610779506053644308434572069462507562440957613494433354129940607130125957637574134101070867008540654767445395499887469321298002040000488453040367362692545212562943939376458950581250263258964029746965692644801028825027443734821946693201457778525338306144120950266500944189329382705862925733441950450706231105700739705115268745722367620836862028936153358047001538780212499190433540820408581522440998356096807224787547631784325379853656800480888784858227220208174495027676781412823426901861897117523045218974542971807771996234286428566486542415438239617300834133759005618511077972425495260679097097431738862066919227641674515064766328358278896419108729831486780018016099477590812753013636716576741523024181605524241159446396116728225352939419096734430921045528762157102473859975899240709000285573686594063026117610926995735887608640084638039191047772267054148674551170677357750155652041555383207233910768225822589928348720305388753958982452223836117000971345341102420362961484430257838892718146738405026002593072153422392259537989192197018089794972359792304129646314939464663062172804966245063424261642128702653846436333401945776617987835537121434151374846246317674465939748386295263377106094548553793796874112818587875454789148049100321536852145222163616118443588354171840888948160887555328431198323800937905119182496536448614102149263032414715500901424851937929764123328603111562619461592285697521550708178117872006231676282836168895160654026982049700725919124192510145686335830558665546864323563227342935722463051878349178672197420334064208828686337078846893065606493723257723621789816512319408074368035391367168328239790042940741736026250629291026847314019433196059240816657824043243042180592767120580039090333574860902869333826200177390770484293237577911593991770338638552839455880961384573034691762815498728003616791298967678452656005588363966096207353092149971048383775786621211703889356249232890514105305308793821671128334279571377876591488638172333392044094787819206238739989710280156330967956029426270973440853768320137409901334375867066799039690402676791286263618029519672416765268890547491932739948335243011352653139825242174509933897899177458929785598842550074669386736995659149006768481994952542916200775170005527967704339183375098086745744311841786872533009162459838269225941025966513939162207497177451566179060447519322863852295514658873479398806125390110892593470513036139761488939719468850906941933079337062296557500986350420293847157504518769313816976048165989711782221850467098591275919467402061586610771189461014758787025333786747512065744602000314112437431096238568960993105132354006653017787506853021678650792903202699701167437292756790831284139985627754594634384580225415511346076135045370372096799037009169792077167265225737744279971610461274336640673410916160555447528766388150647023058652514031890644437412959395762803318240639259962502093595857111154338212046531681345683047803618949007984407171751374709540638224041243706605039498485141444378407182124800024602538227760269706510372072664725798477307642084196611471987247842214978787127253687906577708619160208998696531191741762595382535920399683568496119220603377899759372265494555823746919332459619231764232344512826353962984306490017980098855296974974415672771402821934381374710974196371962259647055952341328941898867099121951119358454552183532636257314931615152793065845656664337099507840586487536578947187735059587432077363365422014056366408391391841320025445531280536214060656904254502882444804706000903082410552776048943981088902321424762535343447742516381688794984103891101897904697684340057999264359026544160479473134051335108949215820711567637945413103837326179042938281232640578680389648841632542612957083679409373294577852299507781525915825566310187022180169684291327234220176659377043565435249461700983198945347161186723360572667716434860246161814956157418255094619359741767638264745265206804652127349962582498992064712070336944039141701764406553699611805605378754298828099978553605439106899091397652047557075655995725422777651404717389748111082401735896840091054211343593985881090330389081413200012042991110726355813556656823773100999682595546484656335119651477778987244148169171018186126068661930729489792594930682455025791702011995826088660630267318522721855213079243531331646513157507428179607662652862001210844988607885893362553087319967545869758435157851588613103409965616327775091723613673432364851746086881390422344188544854510413012881148547283548912694287127047896598551158006225062217028664732308264301350210167205489561502409843111630857807328683297684806271807215601000202921908520166115245906271701295658475498044201576913455872738526748634746020577539908968584424057521991896142742820360080396958086143593319639119751118616520970362009305173256635113526907510129347580528507100048217765648693430491130131181051598928445074807918080871248566775169606805017642894165892221811757916934340824113385045014457775326047418879515246054394020669568546253924360015728209770271234784130447189445612606720754029214174211714180710096774349840895781495011449334732690941423498967134947740166639799842856743769507323647479853583788495055205082457114749555695017900153045465209042052265579027880731144890815481854253162619379505123664233518461711341012158171460385913211354747533358293602391488460770440712494423468065433969561930358102727833069557917793060304716187474643483354607986044667546848010819017968936126748697793705491942792810356505792391592453323674163141211400819364783896762068175269116306461689412525454121374542457916441250802271109264803987397827286615851102252503226937762224112016846826711748071744556706215209259310547008095905281526034589542034422918007595234899518719723792558391598156689025807119491235295022273558069851494292139629154370452378493459031565970090505418773186496566651102326875897506148469775557954685067315255683647658241544109088482900706001379474923033301323161927040367735488271143438780225912593271208968214789087843866616441902601625169517792549160695942832370814739764391962731442057772798474207997116750826466499206085189472165667319858709374307980761089882337928196433096636798050598310999955058033649190049339399297576535379021790593884635614883150085049480366080260986647498338412920939688676064884656249222595647008443288735156091954228219194547331925749137589509063801554041232845593928318931175186716971646393380043507548131876842774252562588186858069300742341585849447726536186470341049880730783150056148745472485431048538327061497616395604922892961031391143708727515998095995288522427886911695112856738694705735380992018459452558945926458935166625005151208886526792895598149602458210292665359920690544762407402504904460552757483905492544392458732031892943030999138428287906083783940429093041913434734366914556730773097540326633635908256362894710893261057279959178460724164258692795400166368724111292924800973919168441651207504944891071822584129328404655900872557425177241858509775216078873064150684989901107627674470018524296502655541979863064807795847546706233787971040925793391236172864168306655797958621743156789276341097466928957862616807785355120127182911815248268894374064011219082216388217761478111836273300842210312550590808452442200257568914300037274844448908468775038471793006255350983628350122718471790116041128829957494799907951284241701683082335601336019145967502692057304664993683454767892137574501507352964282680863076644883962835430849551166980271465331540716124497298831176825458906122447518153327375393044505468236819680120022766307659195178425463714185835990833322742197544630879399880529831208464877619219710553108456444659186711513876054139110353405158777043322787808340613426434406303022776015745721014669580799578421723580749980740638595702745768392240760593571982669509147675277399659111194029454275345187826881761736707441557390083043590822907099477759398997797812523260247082270901246618983456813490933965936480616531425977064989868092108827866394470270564802130940675025248691244656808031426650662233595444473370853505270971492374359957903230176633382862010913888462271804255702757263617477816824188166178848312749249128810648718992989055556483801656958752888546911683272413361506741020604989601670126169528865860383210714485377427409457189351406132501598989917656308166876248974374431779009068637519522494274075074189887654777309772298080362176588454702258066854440292093872860391321738175323764653827731619054630157415542632570056310844930647831503881150660777246288630152549120549833566800480378292412218070432596563397776597498190540023248841817478942203171143853563881082081533363975545899269322731770077368304554095211695735820471668921858608538683626349511104721810748137671770290638069831630024540021525962859641208894432715046707133634104126025544892972828289265804832357866308741071107494075349596931748980032368405968513784358362829634769148478656494187466481539700113202614150792859469886941313177444065995924018626340266978732591123866517975283439079171858725508019892165413022946098977453625090229842286577667986514093297788732322079023121726058469268380235892499924138879367166934829414900284988098856204225838142741825417625421425280021363826927432281848507785962415123853663987188927770052043484644997975237788477282298181472188935350632469218481977130034686338489106770536865979946363424973366169313681640400687009378196216525398450454059998592673586234490627743758804973648160548494188387555863258735774377175759713894391305875179663824792175816526757371929235239448983761411840594805140733616014818029075035738580489556822916306789413492231776698206818059094136157200938071796990301081761103770627306238848364525337047697098331325020569362048390403375160572368881479822109771010208680730564179025071366476784832243969908475441745462638543986928280437287577864693996571261694113687422426244716989039932587766972997864941984851819406810626237612432466103094681372837284736357602789707501068525593575897452603928515528621132027019954837766469607808399972237747022554964542160149689602303162468900090018619067899966968248358224135046707036375343203044538731523159052101804500609966275697862061570789723846733806274281621399163275389913641557808706178713680742975383174790588410635178046881256607244091789482391388560009024119195140931769990474606147599336011337284291691280490610137741804664447875586730690720886185798509482322783672763277423776374918142770170974258225759095849680963873766722746494421144225642911152067343787890041565356951917704602234785065150561318974717786921365833597460717152234156635590002509961774742866876424845093309405796048328761449668917446875317251961130763048026960909572977191102512300159937718568222927155282766014474767174443986549007755571127727665199568916150216879294463506202681103237477754366525357794515122473833672631757136078050888542903446381039842878468830105380890193523609326386888025440611084311380387813706403550988772844832817747223139212742129356520828857152065653010684406342368881335111104147423363951606769263018872650575361942348855502837792943923963349802323018508349473431562788422216225098050036553183327249341912338351326308595829707710947153308857423544196970117695739947416495524458090358053215839232011933357879733106269677934171303233937129414755870361481303746578432438696395260923169788268258061506713245931560587544835911508759188605328548486535103343707415720270382436281029169100502043109450636584270327026837195329819255695311740717734460855808760870652647641140199670442324180499375662964578454601843647730337045371603861643573719592660574246907587120813669936833709877588934473480270084179187733714004642454547934753462271635860045908397865247106948547364826109870750404923629158942423454510733418098645948488858891567452015497372651898971698485951831328177125963466243113567185316774874395262087582345878010212467574254778983754749967329480190921158320237406695202333425419961787802911114603812707039944315990767259349123485113363691888739807186916037305361157237524785619532073381731049397225457237987883302294319475577841631892874871345906351709956833959905602500940062863627852575709262465402205510275678544633716234323152788282004117735536421170133765105597319477178964743992558548435441618653698990195573726294431305434439410225480543627859310548771450493142373954030633038810211619975688704586468086286783971273959718815959328086679718065113728811360951870911268810763179405018511953923689515423914110559824864626618498631891001230693057700109495256587422487552918372307747286173308814997079545758541279503117295733494303293334662114254092163425320928514927286087067674182371461839579014713858980474723464060869511682519848076412044998754040215216661539751936981512221103252044424217222140204819489610738649934796560202968851830936028324596802015940787499900714666480815911105157383890579140681745804529319284306011502999974316243386513708466268965638213910583919973539963815659512875252076469785789873271887213377112951228394010636760366760583751625089405894295056305569531934546935311064189332011316272808383577420687337098682913261613390218842888489393166265562877075626795718958543155202745618371083706496777724212343332818995540036669682989822454981740930368867382853704569779794246970741642223975709233976233259806089889480584544324242194629088287749507894386329573596986125516904810112260112983529655710121610242464614876780060121023022022439665008354906049552967445036612487535277615841094986769263885665705301946878177882325754030400820246038771244887827455838775264896616479949000133921433587329017620609475058239753206832028598902119702523684259295303774053235088616089218653879712839173262900607825232523254794434808679509155577862499535665377656729596730507921828067584618355391029029124869468497221143388085943137903156644274169568332613224966939503407588938118581154268172936325302886737598245335435809936131867609364883685387832750144616576776877754559977041454286800439939449372243302269729866146843049688796403819795318626412253862559851723228718799241406028199886003773374246813644316722033300875925795290981943332049161915558900689976554885473267048741544623986076527982950623389111881071140158953084368681945025199213430818701906694185462712755539535853370916370044841636085059192609171476033509631735279798454500114891469078151290667382078400945231569285919325348192800096084911458117541320891529704324216005812613446689294990523089854014044272865775855670684035247520924136029052092519584912830117957677934595721580417666194593317062242186492498763989341138232309865754977300708937921846840806871158753185222703865255220202036837534530111971139760429686394497575044420982887415764033155288278173242512306352742163683483135527371899147179698904589272911041758553677889242368414978412076939286075124169810035509298760773991841544040845585474209351916841940674649938759491631758963759394365793539222372087699610102224416753238287889048697030488320816228220079847843144330265240087133820316363764615466182718626769186487858824102519132761761430089819002106493967325077242501613888246836678892590703476722308140483771082202640938607250374492270151374257995460213633554799464457309945450728449057769894832132631959946249356843642401477789848073869799378800219529567484082245966069839192679786064643699231095598276546575539402533801719027730353491769248562270672073729639144426180208933507129290648085418444642518756869213310106921382939403495600785831825661634905553789099467215065922204462927031647469531363577798725923072991239571700587905350558088286040492388988413186429488815426232189462061582768109984242018450677160657896338490429524166772842462575880041288383816180875797456081110238475111786605090460453930588984836177141584170096942841898833275587117059293680546109975966772165079084593762353092674852911436314922932432719766841215508542379231132925865436646633195819478495816489075576904761332306595673554871132381985808517588664500704158531231536990228403693318555908867737808979463498337498014417146871711264519102675779803977295507415994155447853202296349341739778659558525742769860590931395409627887514378287371701876378234096813170814633680254053006353575579323060376477160974938164859337638672160025464423243242298867360704438828076802010602851176528646743550378973034733809597545061272080850851913371329658002932699335010998213295181275788666266623532135792292231508459781597622603846950403713318802724301747366556486413390316774711638172443051363489199366314105679730742457459869054667660379732786981250706162543833066124559758854013149867560848282281931849295499727308489227596692641571054997201097736325383699592894729131484801670040857768921688565517129334016161775615188533599402811024566973304582484637521318273529286485296403119732765607418324410416896044255462927887939292777264821743794498225924851926076359413801337813701206384551121274341906271141858458389787377788391516455503420540408283371213900056250590515464989315437585520452926280300913438488644027122759485357769212809013858969227302331095801526064919267042033012108076761607438105454424014597471630492419880844216992507094264360396615102183401676899512399462625043928036562113024317226427396131423389403219181484819477782672569805324878065098997895882892014024510559947464856035659062334396050117561444608122070195419095939014557809515378297076470402369178367026942039927976349517769823405078614175150954279008334793832556139146104946424888625507154694410454853797788924841741183834737116225841314108565897072102806049681828617210065027744079012259951768339375270544228620526155504401440869215833016345706938071205206691599701288908633899371408113023522672962154579767287810157447582351506635803987762352606846248408101867879815102758640574933498648755279427897064378096008620765625888043160173374288831673646285211698971708874898828904009126128727658183987426197441858895547188803676329207320761704422374347413706370457226792868561764029213306704566434460386138806811012385269627697335426168830222562294776240739995302771447952593980279959924612790852691110880632830548194587625344654133197997736479056094060307882461873394220605081739176722085850917516525730700367168604390343837138903951068903071017888556207468729924563861871525485446068067972985228590023043715849850717633562529976196823407397359948147691829225001870472467190259199186548558508668855422643641747427802673783260615254196770162211515672306667467397703979761797406831403642987677274956572421740107990883283031425014462373912229288356917741472802827723238083121556245349557703131968229197193961306153088729663521384591838315804535264707405270642716254536100414206866643973419200068049097154615865511763942746762209511862405429460312934921015821608877617996434937937543028760032982246460618398124924493886424470080888696206016208855576526103682715798742310875339111836353200321717557378307624224348213382830384880259043893853735526793486634575610520584817535655304461654997940037544345131763367234461072403464210520754764768686511015354033883247712906199063424112641369161577549336196279487943801109889795576848465494920684517951995615646512966582638378510217767113960662404375802848220385148747582433772916094022395356297504603362228769228337285540636637377177688215902330708546401566775596349387012461127100487162669795738916014035178484764349369680058128448281030569505761718201515526005629747623346342626116725585587468529243537291225256051475166058686397196187591351556203791298668911953483698641660886439338136901689585462946550475327749160683168977655760025031488792709291846797814558702847017869862125130368062717741328886669205393904592384320042754054073276069936933156581363819550698614625112816995745127260964095352477152642103197692920162735501657858719550364903846122007243092080470665469778389815843047164425390805285996058568182115927375304449048965376650300765459108747729226838872196794220876149169795085449960958215040751450195086064086125518174952064219140712790385628964222152915710623474516663476071764441138406832184092607384268455819228182069472197749890142012874369579937072217800446237928965096515925386412045504129473503328704407348310826575733831100653024563039922078607012370157406731760297649046964124241809430491453434862589076486318799049739356690977411869013256160807935475121905421642384210089947013151006800249145678579541667777815404257981816830696054895904719640618190038966174114063733384755152630339198182356513924405757756601774750350167496202659431177905115873031720434376819860857827339127525025221897132411883414565337717697830109403084926949721211498155589122750934675928152529394233045622208990454058158671098040297082309502768934550643808202220601707378278596972379040029361819524203165933914920525889022501876572257048664272640035083847482818483087247746059201282264443083780647427694364292737203889563006275965679280191585196960751579006986287105310950464106256268489459251839470636888704030764567044371424837692926224781057050097698722469804073159545717463336163235440411337530091720854689414998434113291620269728845476288948672839702248496429333804218206635955673352556422082310093116425891014022466386971715956558770866596360276368338816420657421058785969145283727334242986476299094180785823050884970111069562748014868277716449324718497150489865412279890173899384904357539391430009037332426177030407562829926039911833876001481115037520920839784215251519628724934390521849030214764365223963985767005685434275404323017747795733180973217278400836545135926702368926784914367541612272843150797050197864975130124507963215723769523713088385755994066658722697165604077085663951929570646979942881743045942832320080398330465101474031667196840797990078276866159473795870401736671342596453790482203782615379473903495741881937016789223838547454663644937359586430270382718099862014644584789553567714125454297859960830436747285363184993110720864399980294093388775568611293613718674680996349058514363407060152560675912185497131527817196720898730376356292170679851613332328205759081302370878399791311701331257757854236161770804126497620494763215002675687794427349278975782051953211401169853758173930943012740999636222779262772718146738776618827033907601623400129997096591269198157880657746542641268654130389452417927259451785788955668116805524166381202042076185623872461997257253966197348815065335404740367367257231665660456359616343193260222829123018963586446248951228920354730024189888863129418576905148775041124368993817405202562616673110418255030209829712582796172694031736316788347351778241264233449421636812502020432817179342410820322932345042745994986642663823241322090490878509624486341820793533855728137516837794510065279361722444920527172990304532027235415940941926821384492679139241071097643594171088361805254434422177705660282050676947370837116985029740837693567874343345816806197947068893938713549671028738223368133740841970153923538727159218441975713042559414050594050702933312619322903845107418885519710729529863687275499778650677275910211593201399282152571001402597843711768045503810213707621748631868494375987098722932310222214390682527593967146078777591696731471545414161340178362831853777579615254965297562171194759697352439842880401293558967344584390045382431321401824164161384066468780254902963193278076125873605677760485532970908379906126046237389977872007317556822282218066687605600951989050391140191567959008928921887255563256621125831034472571231370711369766294124991554377568834885226118497519175507026829076972120348199169720190317300111069276871262663987524526122567702704143888439286489866392025785935472358327515524789339305093458120859588510041594945264685946682637310562610876332867869676048313224620533852596471084518235132241372062678600658759296578024283399736310879204124921515693145885091613145241295878753060432128256500961906805707285313664089744502395230943527931632005221668563037494322906423164331714203267941520878149745489595682764408123463071004824712140798483166634200673604995739495727296583199757667827863808538789103803155793100325685057930396519672229720332161685668203222186473878697899292716678279202479853240847155451235809815409634421557047427256752095876550118534481096566162374495413858968553815752404352651424912765121198631726772057746337529111728944464099988992689443090944885723235639397367328523014443363241087466904128857203371432187850885652612808681339832606217166428068954460032949010609592853104268418252763174237333199657961493145905408777094353062236575323700938402548834047881966878231156367986920770247366321560517105691673259092328742170851095705894333645767126022620129128398324431718740989454951305974887002347996268691658868191970042110124873451533958578581607418614892474904535384228805343668410073175800147446069336367594572701498213991001932624843894756967937281525203059092255184550926292728777250273991740603452783740241436563705764148980561696054368058153271207306642394284145936274580345221867381950737775552252273161211447144362537930134820044921966218170539105739487004848326382817595634602778817565406473740465881257434475163095370610789346449349754723236794277425475912160390859523133998489152770848771052907328463872193860270518083832527281767910217164569449423273917785062648998065912752143212620550146702758579002049582860562794024537386680430702345115975006718271504321953151818105282771684262053445362200837789681324304763467468000730403256160034774218651945469941240572036225393473748627747374628991343756434554919740255091416299844780429632528476744023492335749373751066277372224883185429576479073860602593124264309641910270248725079866064456844692808959392593079601164777912794907687160775691158655000874157300569227924688401685458644455293295684564045115952413025600465633738329232380079351346517564360400916457602657799852591888255915354683605239638516532323337132008441803967284708419362932116698650818173063612600781271622912844938624285895815919240712491372146418647962631402618556177362874954680626291626399889460584487190096351631927313567088422640879914024543533503813719743434160472247173459454653167704478246549567045153617289707857664612449171384379684864755161581202070305274426342470951582404453276210575755733433344248010130967213200727447703210312545073373233987371342425443115115275508431998890009439514637722851659036401572053800370106556736409345012044541503696427575661870902554534041040888637048614550074711596604961351988003625818968793177052089507982663494425749431297084829762131003897940385938334604957616743231961780531302875027629492916096915328009666534166984204632378436154456073643309072726217367012828513906524748403734450071140117440528025931803480369434716172806694613945554548615642302326360327607819428134250578180543307231447286157242029491851151805525914769091793524581160040093724189728422977583272258937439469858979724971018658952662279127878769027170836921105483136309589871259978125614190695588414799625380090097903518888051919027043028738400836583737399132701823272456408722521482870257287635713703356213120908557213527691540972816835298325589225404577050733170590793981700322726025301438215026799339540283381398878763636170227180774812691724561890249010106786738993738859206739150063099183675657609043829286600083589191197873277234830045540450659514272407533815973565088853552764948325354735168849425302429314786760090094782562778856425611429673425335388434687027684360018034777413107848654148666414296442884453509380373682794886309476485692434812542023379321160390191602397802497414197962648286636198823440322674839541478757520726341662643125444197853847505606862261333814937102463311933877868050451040986867638477868671559687893909787954785524729243031269455941264136831015498469154382212241371248960739824893264946748429917786159233579245661882029963121382720816469364415464339265545071142336734738690988949191693287930539726365709514191846201499963982941686821484911257827348627714091712835180368487626648996624212496486193089359229636808830767624523679652360274577488648231535536627857207702652971021480410557233633654110538005095337187147033347377219880425314180074185407253608635736824193109237686952616234207101350715128960922255820853649196205480686707210732441904355123130689263116528866328681324027777492390360292682875811097744040067254952527866201082514979696369008908441591018873343621952005406506121861935945328446674859228971219349824792773598375023606461252732373927983015734896193434954260089056427149462040114772033819728792347765927603161581472274290524685806678085608268854478249834068933669706258705149518013503505552163192883292216499343330687447042561462706947269698854225043847062232850012614278324878541379187486226943568679487039085166821494894607134106223141197239315136627464134187990223746067526047050230654560771564595971527419010484298843498363046058418283474227512808114914276488286109601915123669772084185105843484501573224467466176155014531454963698217574561193772124361771671502343036255043690543507416764016644463897963910274722214342154142892367158439279383934491665053909939410675972278740667318671610800939439267780505234031700897972726298539390115695965244521550449358572430863721437584289185600060735162626479981809573679022777757876947204626333187074868350102312830919928577585077839921235844674936534246629328339969555916806774758271903343015268687362699456799612070421826568099228598566851921974584663067834492225449794289930784954623670107477268184421517152290621299573335050488368821775330938169337697386898648566414577011021728757746067311394765341459774599505417383633770730657798268114742339593097608725068285391833306525944269620499769236190407710118069797154375469113395087803065570905146346540684956743671722161941071545103120355234788287010251024615564514029186280392637526747562577606631056175026990473197956234544998584572969779441387128966868444364851313645784087455520360636155315101282465929980587043882780459275801495650617395131099874456351105514124855901330469744016181986746497036539487626710966245046772141098015570545113083301675502547875123885565216775129535101635912752648858914470784616157286551347582527970641021632174711289806105543365308789198725738410246471122969826180980893023836382734045774090039432656858800807200120105945376114593731845079862901754671482424107215815593415945828122785118827871782607670033717157001681899586045536463635891146745512863230948968261438112816366811743561125110445950286024063336442289507226532861099029523789675100177989723920549658373728435920262847032734550492131310177949780459282168311166564659110585188582544913697529509751099363942572819041384694813218757420261513079073659101424516700467085742474106692297059171283139124098022587817398521813985652762175282967786928301193196546093075577507192244346008770440518044086086413708933351927087712493228659127398290331381127735716305023444407608103049882575188251158818247392860379031172315822653051396090450993809547116678544493397985211452684377850851780708112028115239421622817210624984032884570417316208893745904361529627182469211097139712564661647378436561493146576134165069637245262722898144563092017763242993729179965149430375581259624592741783251235525020264401308369810498283860770822429697090513670425403436702877210350825924800964333457358512865158351055654117847695824042780224523541518823703215871743705056411280114037026627658351169786874967453558314650322289629708974415281676711096842207355104469446156092221103056260657421464264886564720711197333260036913544166090132354302531337853103904784457135570879728542344481745142590435027213072742154607958513545243909119228359575972126150458207294257059214274979993665634007164581697294917394777145112752132889649884685882779714862053422976975294953679320158478200469912002119910811908178787725060917323654342519849236815896432372844724153689400613397058215351848761045553009389411710481553074204576155672446717587080359921811648854849313235860602346658938023050515287320996840182899481123359550260872244100786131685754325628478478602126864718221167161417053905608625445569143059112513724457241946592903268693161996661632443473593781772149295113776640243738254252212261874114901428751505902269417659959948560339457533425052117875344779059187375731070901506999926114720567775488406346917350492511780104514169981547462339499272222884080408849897951930909987564637482140226970178519138641315396881744836686641951316856847648453512619863219649195852381116011814901157824085344534267408771703289094633343990535794284034548512903979277280991904872873411337714013895155622600365363760796502271445738569884020732891990073705811159954047510805675604301174936568740100541777053801998431993256449521232978467557038119694700655673643531489795711129644933818521367909030535133040751004166949831949494292301722749176446879842317838751303804650418764664993634851539399916128363695742545339239001672239679847238520373034272967835289713660330291193542171207629257410815194135911945009958926793574881690070126638411525399596042005815756115494244720222467214603481009797680134797167298089578227303481267069425190443896217611806551259361638348164754393683848581333488596782921275535464402835539810308246815019537816124040394349931892680581575745567463736747266374426778262105459116301088292479843406660822739909588950692161447867424616074451903494531332402151522700205994433440250700316921228478118891961626068878441903030706806948513838086218242120962524195440448827967738388028985725880805734075186198019455890463209937903384427867725375041173158113317074494925510521114755320543773923146719030444512134867499526726087962876440770754793242779744293668726486557000736370742253706331208434483203223244364270970929757407783649412085905429870870813584119187293571430601291922912870239129976612014339165886616634157798007776097959909585212413668895892410652745331865584852006601602202868835332476668941741046588704278560036051439944961645604705547579789133900324529724060532711636867964687126191197726782854338706873858971967812473895477990047271141757036377326049906335613524832846974676654282148215675556235008248941370259763096003384836359351519137026728362465183570357809821680959644111089928710227755222967356718867735585662503197851246463046769545409122499225931219332454286010568492561130177611944063526383502494325284655019345908603965569662569171339458495339995534024453125011502320392965824259648156691199114242443039825874621692036293506131300405775919861585664272064965375071909824726697054948558887731887435160057209997841970606256118208909239980916549376914255324914193851648253247434314803696376023723034603326727882148761431438877869207106819696985139374249788541724303869353389125779166893775773631068202532562830163994054762354076389939150130788081903458360500190101103563612100940684252658429696692511927580464865848333435270868021671640196523269311156510834810151855857407674680534846143226096512707380713521412856325053227792001483927294237884444259965206940855978416868749932041782685579508895836401225801114333353177535705136387147378026472857842197888792072756201253310435268616277050804877059833336641643379413373354989711976195427357365116028605759234547397546858015378526673802191555902323220344157432349656327739433619402394085849519409084662861182993551843827209979105262137318319626013705348281388055267128314078034798443610015904482453145271819383482681207841740324803967014428015697781196658412476496848617435336599951229730656643124644141498121553832110117303933991006641641554779318051078451590938363640614427836509122060632469381035859582430187885332195894768393244427947268306361581979980518099779397396775810858065154376815966640642697386872106372014546077230828888530738049514109579874155297943195786482941631220589201836990603043944352924426474414326865360938613218490086514424293422625210864471276288605164945877056118276243343293196831648310530744738645870683494405308221418165309251859037713085472279116053682153215988064485989440761068082095317479757589576043488746945193365124218613400584705366825641101042645688745135370136350703357154243532246882436243132228193718344857762236230912772540944741356819689145954243416814978147244902957845720950697445059352683711439921289050367877908479035714851942437770674312903903179139434597202470363729690020636794760954079136957673570081711197866315531519493235081444202024440905171530709177814559113560433895161352365000492153164269877158768579540434758766775948179407360489441482341425163128396681001008153095164391535963868895385244321628406514725669131368339244342280426393964921853925426756157712294871135242469407033660998724041403171995838783323273061260951686060507448708121231104792996397579598142250988946450806910124971934415789223031441151799035022814401503552002635716979213025830725810568309382163731014489412790761941104075025808339868297487023687145869476024939574349309694558107726114872651292176681914122343345057726513104323689941013172040582399012528403776956293375419417297661062736874073894782768300026945674579517907726534176940735438123701291862605322129863723525363423342333152235226938277242627153173921285108198809017032888162330012514760774143147270205825917780741937390583649366664083631073381527878560890589451664474432891945513401271834105198367571075172349522675083387291536842021457882034552873061226004642920208690673217165477334186117413681077553946095527584603984787765522057269582060847797998242458234040252882010358906001778549238967063790985813868216835464995395417795793385330082004389593618057873235060425034160005089569675395696473000066749767956414505994624350841984695245913633942501350129616302368938007255533265869204167960886890338581850203494417216010865103064296441416425473149887937978570467441196471178440056652791857951973151099011890270422808760931905289735814991606730091542553337830765959173915767509925027853488690693074168369259301500891648386133482898903100357106443535953928355922785718005047875340006792301233786408636377325576378521990215727168630122086483270767156225719567999879573935321135103726716819437243169522040502325658796280047318209225332284313878628039932407268436100377340542409685009661422507614179163190195547342655418952981636377451548495483866214038363887742248378147055158472138991382709607964473623496114102109926007479639821937027491471275124604310214467104232609822048834854412731220991348589919809436348335269225013477333033842659153836396280221769278990714148369898991104882050853266667169894743492582683072143961473100408301892806941178584815330374252368831628181595560672568208846319768628525293346549912437907915394257776540405404242387917515241416406643909229807163860044356590338017474959598241232128550378959871189635708764231707995657046440190356241531656459219763105828803081699712516827881694024681864573914773859539937813323313018995642617960000722776181265500772112994141678406366519407230954308849840327388538763763468594201070422184240985518417590692570564166466421601468607850753658281474215457696551645800095939901323871584115199294862884344888961187265366417949190555247092504335808729804816117215997110200948413192320382903365217693563970213002798297302282993348575380419668722043939657364377885754662103612505720310647273054286420173929705174402934295244998821601649618056010915319919463255129354457484280885276888386654410713319140258170595620624792558928249250468048646996844534868740828629281252556330695301820608717532884009035520129349703270816418342438040144115892814528411516385398811802140643690947600107629002987976096362962637698388189397361375287624670348037760923814629214876611120315657478243650838505260785814082771072810804964381003986134464014956246770020058597633310041054296984244348475067687818238921238654673840269833264783001069831142154832784165177261219712192078057985612760920940108946131627156486423088680395550010091318280685389584824645442941763927085324346845802134055563789045310425693528047395729426049510476994427828572709628652092322837909770188791652765690400584100067586896160411076720058476984048115358120807187648671760906547741805576056630520332603943836975188372990972968019362287884693803726734340823436495629480847664176494807038748434948844771974649806814257021942992979902162555123298971002252009686863006370158867409979433307198851540728396014747512013548011798740089125365356191905215686788681434541734299547652977704653197026059913944973934581404106392886851120656442550910488901033916750077800243038749238806025684800407385604490353679722959584713861723397493227022826304422105465590795359580179202661688352176122659380489699390584244630793495413940416764170967581763636698460091990260985347004647762539303061435712954660506747834087777350517305884789291209370727949495800931639849370760379290520529114678743524261118344421234373912192204478164660396778262191481013579240412774361986093409483842504136357770031234411005140142531714707320319797025024343973116699015723862696254024976913422898738902556401787375421580760602490058946563650488649400520000117512906340013694062318389271586268794738885718268979239816445652732544277189441827132956891467908626915484145491342062410441521058927646511505366083518749411690247998661321913282950872424059109739609230363273347224155412828989187074522608031549832170092236437353373831232206842728811731799378328972681384687250456259568657543097050287062195041884309932107906760257419827055241757657146791639356745012641378252391146143171115380544665080149725825479553282457349724257911617675261300971304507174459810582442865969183084167138804095457137828395057339480913610353533006152561802066486167524026162003144907152988418719524670455214524372848928030758597266992035284171067876609978521069425017700798141642183812456024964397855200298558732788557433732096153597322064542065990604804758158364348136133374899365403485942277576371376307154421450617377031840812364628693405585522158455108977160783351673141891997050900768450101351399391174336621978626110645352340858542954577569757492546647998559905742604926653528556966211965843857853126406558709966450990551526473895946305513455180571933469939857273297603711201162206961777607961185251268164117545834588651483586161074829896280438907456809191776762322566003054348636364589447742918099749012825684819570198505277741564532794732910653319389042887374936423795414864919358620968747000113830695581540388892208085677154790859506137123289540087859656491590197965570736073697623789633676616916621573723054253112008360477876784336800855197481186381592893083338547548347407986711011840598164270781896390122718707301394408845995585757986308305771194382471667255790194759571001479626939627763450790396157552910418943901819872776559124065201807947086307584679368334858641227997930782144296086945952676754096455005054939061238443768741942338393280266290899838583808500353296414206419243741486863939267485306889324564163270783167392118451786779628174442017772490407515936131372108908626545476504155237601892232674011590376425172336165427800765359513485765275200264873782033209626577745112068029638194386595138021195696191738701743972104704806676240346341343267988503615277588263123170186188752169910307882107018821090072725357133948866840931842084363956636120550913684118181366720917497667833704146482808465366027879877449805036043198181789135426047847544770856370269533295728488761801060302854587112228833484198220120632958831289395242685817325613398068755002308626038914211941719939174101706142630475176206846956550179193453858993408177487005163608057938389863517453735137715411598511813710542832049929485244080830724436051206422239744149050108705871419817196020809535087808041452909728523023043884307177215534765199049317903930419404372650861689989185846213985279689766339849552853061263821135151938099328773836331612845493918656234438587676198865817910272331314246441976985362841907971910996333820554469420885534728151360702769965411594623584444206062110191639277467733769660895916401179487572709029110955718710949419573874123131990483634781997787443835797786204273757848106994296165660967392467002904205045088589314150130096642334383269876231322107885924781150132080056060069187477622210154556000648817501858953005212280058836268098102389174926044024196088630815770349493561120638844205336607660623547732203244768361058184617243513522209737399515011566522958781297857444378134745364223592304410297698422374642386993307411494958348921314951782707395403439635350443999901633447871337907644797945641944997806654068400060524732989950187557194012799115530300152946611437561566927849052136467090156354991271105080520698176801349938036327188135428944933082648004488160430168058629957018365906752990388754205149246939905322175215154674637134821785251704609910646704822445732854426305900625203702877639572215882739581680551765273425093678303455205174346832647493512939831989354595728984394659057021722725268932020539426633532182197246257605157340021968286258531025985065938571106000600604490210435756690378068400052323624234679370615399530203883878593133789709671921065600586277664549530731207015702423458216584356070479883891365931782061921716825625388193701617086142677164920766175781470247173101289716916571347487070829824361713858815877548749448218310586061604387018507136808881020842037466543000103279411784355741775964833362429495914030797451385588406432933159318574396693417061707518685685089211655768468775732119710725162463016069379923930890608828911929193487452061749975032209741092244063937223749566470536226854074072575899524319584219586272247229503198131667094177084813879613962032908760234995563724132432928538246045987939350856549455944479302233346690030289197955041384598688037039012858654627990977883851711295188068344341010539599679359951860908063353415508096968356914690379611177427805769464753849737035507375332039299980744243233200720648613892035800826562800216859232158534162031726589830184159993723853035191640477468185515834442160486828576297563025125276924036827218446627266048821166006124508745141607959008823927958837552477533238797424612135396254741261666100642220554296732385881203662004527221946158446970053017818442636316191767718239510087522870031668773094175872831349320569667999203688090255793776007847692907694362355702730120530851583029389764599939563064750661072644109867769578112062613947995879150131199179075714852086571725322441287612036823519176660852155650440872433570388459810750031383816448193489045890293422134933362956278678709693615781238376295530146729960924856380887916544282536533647308958196568873128661140062520874964442725456690428106351864019520947271338773375545029025095725153572117137602451742030896454183228892092473570399628674407928767445238972998317558576786670309408225769074161100454385929911668017318918276134482736950633658079002214447091203761425319651091848210225268117410044453782248405736471865747664511049764339082098602395215031714944249241499333691126960518029768478759867713666237652734062843811836590950378578393518626702838972327513416394303587952605703940807449049031877913667382617496743412470158745568007537245265781090530930897457451721208336782515535313939439193914279774592113640016544910216659254005721464256627301819614167730638112835701138050483457302261199112001634164332665247838133337408994510186053556146785167924746636608094711213529332339210432156976990529087010090036435281785663870077646112260601806421854512213962339929556454006365354655437373282159769013421319498282085068835431940718466350765037707719795873803718027976424829385185732194311204297218627030116872196416191188165948535477080398383027826332045237949515911114356840071049722200695946821298541331402040908534076433121447025060405812773802646599205021461710177001674921802306106552823256773703895271085928596083390213704081066386478615243243894571760873770171651299091981653049322468345324920952460220403841886591582709098488431595572998899972950500395124802378424983320326074523820215332976182059994655919907950412859173209454238242993125097337139566374049691663799383589501202504268859375577950428122153974648985127720334096186199146044019984028537036050098398362576566202313847814596106432718611469853171934608315807987918927706267522558904216045821429905257421870846454562876129044740186020464792771739697317450390222387849821144483712356664978672284782384468933551913805395557884636579184437194221118631530998860175679438529954960570424108310859693237128239952867504108221518242743090377670287557740476944157218817743404123908776361458906456901465552540429241881202060173641884507732938712497885045314469456762941145148982740987499543739821148095945100356342603933450211115995115868785523510622491469988945202133548574136491681650390166229729562814137064464035240254660029052744219891438526744405983518395214925475481943604248750840403907317201279999054379280131470846306576569262550276685787715295860943173268925525622354596209456392525977595698739826238149728924190164910121891739385574754170799070110859447730044045295014909421440598174512663698500142756192376291418176990023913258640751290488144920889720826482739894688859358816488499863441791989528247169303263642287037265564185337935850233297654908100378866957697908049157757600891632999970174671415454105157870675208730685114025650820490708402718726459486162393040064686471972274908496817824426955961913946837122069773356201417457892039590445024280459726532164075181883839175826289088114081392500171508121249828679935257590127865587824949498623720200261549228396765240094862218242665729638523647998954057935309398076123457107903915505609364654713824299241287805861500346074229474599107892203696773547135761822548667633904986563129232950723971931125594706962005510804848009059550726300300204621827016426940553741140089670723215968463229071098804598643121824492339080210726958982981194253213667979050434891744395182891379973433130310399233148683138838622111061751495742903429716766819097540135237569226121276138102972286668205742910468993955485305992583905786089299317587535178485165463343670150620426637928109807239073069380477238468352941878536104726270715957137006251407253823684584200392942871666472362796930322716942300743760315901566242103684732004094797405484243402842165615688015241945288113308660624459449215851925359551965408294559265788451375709435954853843559223556716175241587265637899815785560071178859496361131686041876339670925614362626100026537492056821432976078900279313948477420373174305051730078457636726770780403146425102002262268185053162541332503949917247097577931264610182010670885813690330091787256559549100059200539331869662337833613966886188436191517694118431874610328378769462436824609483933730286325679081200019077357946764194316057654501139665541821415969797259829098999648903807578712145286449802772885040530504973978392054923424946062700519493582619486346758185979685524889841325102666752123396423252140765660399271632271322023862055345236405704236751077451003284881264963065294731036482137049896173747055105413335568998912225854190057176337053491449447528021993559326199322934641495552894888475361358384627495958713035406363820632882460409371153459142826114869969402224925154280525732633580548350726894437638119610033614531254193740071868065293831783134952255121351853176010674301721494077274594275773826710596649222635112259797721639747378710991673900798567685599826028970684663245124008741498334161026118011775900801823700154225040324178126054035221169765277383697664482260686038043425809418469862375382696972320877375721978405112656526387140253463775480268174120784111611276526774763771982843211207865990506640877184141555664688846665456882292573631581083629840884085380520074531051861352943993981825554554344347657377539582759766356842017784625501119034918187456069315268649780062992235409585737460636361101075941415402100937171435561457308503059773935057401378816225607596772073020853447922952202099899040130875448474947670846872266799761885621677886858803102019962198748644389729487405154222438153912685012873704637463211133681683531327885389265265423633927080623937323063998967221864521738442431557438624474347220797114305445631117478259294593280629200050488950191305445435370931773357727482375493986623396099521833211447350844926563685862664026083441296243686338248079044473199497574631782103290949193014882423937147159939507426945880891477489782330286074915121327266196269664349048110874771889938069598107478301358896282394122339052118890462127205884456190609622267173482997813474028009464543781624352129349007475922323669619592043880289488123075971454454994418414396335826342239084807658467092216747463195882842078156901404515904438954332166405434646008249950384766775978878321771282213568961847275851918233217804100457196738183421456168465050560565155246117071115766174956421900075950264530798130967024395988473061024977918976067354618047883318496995673422947297668685874516021659275485954876901820466949973942673047739489872071624783634026578327653100208211378125527727307056066323495591088382310970019755540470642431958866257623041465427453784225719908952257229881831278211219736048840552973448708629857324471346289676234677751059088823553460363104880231389491561170404113964911287051927424618282852631558616085561054919055129796712579917588793233720685920654841960718577478429544523621976131268134960677097947188701457858799727432416423062410360164251596700147267434659408470041964156750004190216347468700604994836616663580574842727185687500884401797581677834234338670128353251376983179144531861909754090359196621185169557081914465492862594730980831439080363685114551358010098108533488297430846983984818638787893149004934874234757412729134558969006594828905942767390623928629788875842047339643560932354232463834578665868077186212498020767085505867153160376296277262524960131438839771277208119158439250755274926432151302729709101325433899666499401381947933828323650032655805152141215850862637594240835421819240995735560054219363734150541701855459233458959980995715233447617195912785917007260504590129370202159964141020935626257568505603593568975789728148604855169238493361924328368573264461639707399119637624229412437114754675466849800903661615948750810790253877391587235129747945476205148564769280659690467632671273031502192634214165638700834442813910670536708074815498439993078407558508428500383307275094357449408375845432917648676710596244901200237103191001616106499792658589543321672032080720190826917360548255298671417103129809367200456088007598058038461760851504440027633837861214551253022649890187961267017387528399444441764241849066323833024715871785886554678835413114478756363788166664374205402476929582980692232160747632258442347820452448995991702577016200914425736888874464487439337419633872528931684951478693106453941691031209680758584494819029764722784453308970004143310386482417819426965656998754991541119305378888751343549816277352355317238273960967637921892795150901262471104660625958468234279666521762672221039779531458213080882458353379017532294815876965426832130089961833296565460771482469607671420652385834757526295781797192597137739714366618053627390659110120491697315163088668427523719141474037556090917208262412508276207252012653960616827991007274710059717385444882289300530254868746420453737810166025322083982153119324926753251695476760753215072667867216616105131227550193573801098681886678598233285000307524157179900581909915997451488620089952544465286553170588001352072105181899754384198201341773513262498985094421638631133988418284277798553760604337126967712942108616883896793671087608222870140025919826974345632456038542364719638969377698950771166215500965552393359818330021921497741407460714365907201694256783164807082341805355153810356548501058418073634428969957284091747621488602604964054451285955693137146864628426480157292903904109966312571631168164656844734797411722958869632528172163132006954906495582607289826526252847407845970505002372051910459418837025478953215449175663879922269486001313055251867181543200161006919934799145330079553591086369602503453378105856472313755448359123262447281445825189969622885919293855494208080825086365553490305934720700867610322067156482936682689723846917829732230793894963669031119592329021544132759559392174399330309185338560923102643289359982938738102394023992769299755439202944496819125811586055571144300343912573978065286029941488373799697625254864866035357492234366851019570577172334267354685165465365023410883448490810599948916983072625910270351109161869937596227925670051227809411643432538682259642816805056805457233549522637672123131234074746603312349042357219866571101531740094328575129605988390544034230824138989522959398409754447185798957969210150933215004731164491579270605503952981077885517039872787798896413262563395125684627281117736233523447811362224021177062567269080805431162842520807667113465628425056682656733272462517247334725793422459848258460332680807691200507882670776106808217008827360082381823596837567117434884274338526724151669374679822337278709801179337081291329358703088082385429638949405832825085008527932123144069872200196994978366333459887091433132920606935068639670605797101471303751790543072919891983565870423492473881302258966045821163597391826951760117598068899604309364281204876026931212678410172642004849248722148472678429334536790943405020571024521257582027437796945512229631582468940346533146079504260635648325271110029077654990640488426996412814459161484831929865549629568706517173232952781531074286988944218258770721691909338507708123573034623938070342371355329205313225011608264060583270171442109273085103426969870973174605549076979953302397541375060271380530721648724010867943198363711836108178476900036251568575435262160630068824969458995021429654178782104944762320919509279504903726214023827235679680547182752459744377775257262970861329809435804783034521835127074710609739125440753149128262511521447991780976341351183803352792564650339190165877368751325546043252940308244836554199299117242399919758095750012286356511838059712455164462080208060826741941750573919797688887937610894314727655308850990188796400064221345600720663292099134365301877909031578337305087184402005500420130200440259414099051919232586846562978019749550061916404944315119195201139114283750442353353097936303228797330789327586858239480857440910071300246407988138813527000901519233396217872024427020481021271498211768392661183085041345805470170828574879383711128517642843014574016599496615416676199975843595458542764210069510928565216137764058058759680127521698225046676415694206569551211398541702447634436635331609810196153534697379239720405203948967196643882679400421106248951179514124711951340309421039368433124855726279402910394700033204755860036064196224931913621759239838801518772936795576294157679295076978360144793139857376878510879918884256608802464888873855163429569564500462455089455822965305923763243649798529756668233853038623794200981592999360601469442719019667320484891031597790809799492137654265772679203543061759508153767914020732324507510426344423217711189019880078634217227978830425509519044761098181106570123634912743119901298886471865372848828689671481415840642331379221112644398868809609212898018583195737419425630389323877668879160738391612180977549033393416666533695313284010975939674202403233771515923891704527456579755304554712133762234577763577994884683779393005581869403236788898083407958501889451361148367639557157263046699770322941567788212406887232172030718914708163290384225139072128867136470026596809542654726999825524475449092263681871660108649704426143821701170674006552582557546855457538637761083205595950075299548669157645969454633980759083107758994838520757907527805992160436233941125245900454227022678602276433492077261590936833135677991489673552014534013378820573583605835119006086504369935119417144456038651371968397991715090613582979065071809758097671365209460373561268283637540252519981116977505299801631160746304586550882690958381797905065584943038183616421463583973944564935641936734378249878390081304685614155371419103142658268717007811493677071665333162950673427748776015833216631893289648707370608264935637213899665338595113710631375443176601729210923530850620260541662661410832369886450341624811756676590806508738825057723450123771324705802207164798089432401036913338776740226547572927142287455385391203200188608782122105317574840970993966939273912873748279880764318585606295598416158998902151930875064610245823684281627971495623562670843141739356763918951629100662352823834087097868486035153020259645266462209302942067791108072860903385030183169657967274074170851875885309794661110685639617949707787480746849633541136847291889758602169459499474337522587785455955656784512494890925537308758431082081181039981344945561158931673319541904206601681578056919340317354045436938313525550811493896543101603172259352863006023974060560250003858922166095512612067094131017674298717930200834307392821818732095121609078523502188310114333022217594601673371031074178565727375914937269404037861316968062350698044818286165099120997204919096361020380120661239870767918493224717684716738766901337863815314189867990957012024822227410554891382116108609108744072493213968328455156906450859731503352108909511713531663597529214743859447443114061057150180711846149763105200970127996689484661220743609712574957985075397199896646814194000884531556236470766602943199402077491897167864274769467018953787250515027598479317668972885396384678782564417849751327122348739861686143079224253448542840768330237741360781208194258396015928051561136862844458325814033722693903664756440996601899884939894600924468834699513299408039460153962792785926502330462497198025232962118667135123044199997454523497962949585157402380109169031694160297284681834462043660272896821716437892732526191424201143787709108276742838229233069470984482980525492460711414747632018170722438308070765966882519232327713842142299819485150554033525912654385403147559448140784473829226576967790893993909866336414537160552261628346876320463649651326943279071268166535162387869535887388174059119397839637863721322105670301429850549795075336766124150992495621057159978472970309927236494979753871332396102679054409322590457974673429027455966939854515135423807930163368396077378638837913616896300286716908348519973387405024916081804260825924472536384405444199424477656865461335413236593067727613651149629425217681173072583946968117198217005985372914950092376697946319820110782136949601352343883288061330363188408302020493724806087503618081319982934193897287225286680417570622417821964773642418201333391597806742882788319771903202355609576540112717519759598578947308834195892976848236267961171570982701701480135347283266907156334563786749344838095079994877098499276505197494051670179166625437163168424296610508229443325302734710930602067567836275716633850322845435794580306207007862514917833338576320246616181375811525322510040405767546679506623668363012477530684346046818834031372027982881340563360796279994615401902416423361469030916711233860481814619056829938994609715207057883590911890553709777359589842996013512241675515928918344348879497902010762887972932222561456173682843496518791886783741343490649810590303168583572449193612174641716462303839109411625852657405687026533742783251530725863999697960377373297481140866569194500779130228672420427745584448961014268207979773056022136790457980334986976035266572555118217429183405855778402901871684196593977358445131973225183841137299289935221858438859094418576152549248489685323722389483865306156442806926818821847611250394432171236001027449293404345210928603304593172453638882988549533100911464808548980597593419483567568782027957344626930685820653098026611809181493951282756449283327286658472372906368709956898817279701898010239731859133623717336008005734500721755811888478587734937764715969424161219220596837246835135307095853868926142044071622200942104606997103582233435799565239045668411305626713281639953666573852716580803518724794342267159303517410930417408529161843767370441268094434668478089613918861781891346793259142775761733573863146527828885666860397214699771832459916647464905491676730536668683440481893072779509676819361936460014210502945482576883770489130722621084933516059227564027277948030724498972725899344981347704321004352853199852780639811024449581218591856343939973266905604213126387565473466941404087189779753965167862649611259886760409949435263928856260011956190021492822813742665376825207317417891471763957279137643991662774410669022339175967117498230800598052214757674920710620831471182826035927372099193752515857587296052077416156496843400909897226879553830024819937288956384810370456695200804480080301790188168958917903092908507089130858533175054837982882967737269287668846857396326787087336051409067669604819043506010509554086060289817624249689977947986105126992853604619842155004484373945419659408479564017733484581841250420967178722625655326013353211987858630888776613185938580130918897708494116511660957026846622632786848116760478045931013818372011415710829172255127793770424671678182830514157380195209460377360800117945770307153344006738373991523252720677755711114857881418074260150113369694341860043297803344659801945075627465694616409171155307353600048518276797002580282005979424585108682172039297986116285346417189757935404888501416487629514201813667177214823439193187166044843356281434565178883332434905835513340893164193102967150987897331519203954581859495224622419512499453636581875132423180763600803645461798468625923972419999162077932617668489472832132854915254860711338532896799520477563666605734677728596595099558928595810973646808765595727924495057313601945423748508594710320654626389178866311877396880888448513336327556369585388834678168006863765074198582325029038390220163457514488906816994452625989627045240904337857729923762925358776220984071849645883437869978356776746365599197816661841307351641126980384732257889248844219003656728639096335768635064092246539229290008819834118482635643683255727465702688128466513921949764669156772569218622750586791436645391329246511866132038846017454652009851083843391868662683589308235695090353518206799873084357020001405118433637403620856184787681959080486597991444222104015076986938197211625994356301854195327981064324133814285144649630451649379046227169020085216992697316925101462943916796558553997479118175356308270742554556630453608730122123108152669227392862096951560902332155364802827219548543771950297556295161553947496215695269711490768512825720453343383493878586169423609135452609606404417944733197358146008837405908961853845169909313185135766723640997818457325230357231652681866643790221122174958063600173473450051016040085221968426587647528500976248972152913992297893484254739250393530742513694424876148392795125119004248358888193275456185020747967808534558476734768874780441943581120040881602090587162617016332372974842253306547968699179254057795568673786724659073964997014536508595436919358947146840745607518753102338646942899383106348077452101187879637895119346494632448331272880597521818170691845442373188055174072713818336860908120587865460032293467373483071220758914972786236629781040858865263808254990366183280169786887540946504601932985565514325974689166026773324255877885019976114904996831539643636153660081977006913376986097064455485681803629958467089243040346600088750384671647862752344527071062139040547739520616291724647311705616702750050237094416027830272448091092936787172577338995628213079153690929872888748719559677529817934304190444922560209682958506436921917255657837145114481837961190098434735792027586412720764193665026220260770815665757255867001376109869214562780627769258516072061536237578102865710899334156089129027132725770596176425482634751860124508513869758732984873943471164696809025206383944355525100509041647885323454740638494088596565356546296498638841778472696988869245775861871173600080942863517138572001429868587841691831127736031955316497433826668665501290061830043628451548141698912331190932897594246884694897511348171710296028984677951486334224553652581001996777334801822576154569469293971107631116336849553149957254313338170984676861579534018128851931688591867121374564221868248216414292110885523368635591148248075742887837037885780845741858728668754671165038268829928701013622878209995159186512270146910435487707609528840122370389551691708960693155708791814538840891436563851229370645106846591075650337481844588221804893425169391506880740827807252945916163303906362384498769600576725096843405101058412264096462506342840237803400310368603358351636956572267722103818962098529840293171484035194371734900474904254270363370463409468690141104697303138480842471935066871239989623988449834729280661773608892163153535902312450270632911319117706608290361895828768191469169295705857782173556856989419229479618725284621638444505195960833083027344128989753227348768056781666027948049658171109956186731835479785973449593669750943762792674729557222378071670679975052802066748264793316581315519142616579724852603203778680993963481481334963222473864146947582703556445060117499596089051839077734930203158237651030591537665264545907623860478688907355145341522801574288960109570676706027823722579471694643091505209648882497899527960757801548195303281116099259565786333473080752438932094839294068763120608317636620141958139395146305244151889010134456772208157316348183169711001640736309518697634082553276873514623252472570035172646414148129750384258224523683457679725137273452284697500273777769396300678749441696207747471326964024809476712495635417691196713615046375215258632718104444654381170221151883493557078040746290523985670147158353717900817212928489609133505617007012853236788374971675399465320218751715198979578602943526748531202357927910526316382454993300957753879419085886490494452006255416038633677290898446690774862925926901249796307864131726038263507668125946368920490139237686580717347072242966560932044606205919196638224140995091824287175570326794469635168631607559165983289675043598482788063659478513626259370432356543621654933978141215399887343595163517349847307604532117565131683237397817145393377093087691745229919890906319737560154327521458424380479161498684809989844650451721224109845506335759091767642579596092861140765779592464166505778915556550134001263889372142289515767027176323561231991069185000831178421631518611862116825395560898159995082191377784937735276562369029772781491021794932591919702763018583391733040082009262777762900091323305424727749512719646004981066355564863048822901994054400734656722469365653946363767711030745487769851636475399563001049218202419753186582779189687010493282488022667440415749537009433830844558522158310182591270852589379711781120175996184028673909298064597888835320095671098327105217054368884552013517908666927739471905053176558276203904972207299884631061262220181291723592221998249963616960864231739593486681922713538884486944416369436822658051190765016990269543785662442372744580197389002512519023321072589340127262919247589282647431207353983823033599485179633687544583686360832776923684423787398308774822459761685446621447844256006617450616154460276777223989584806596409539565299642985064216925114408856999933258742944856386744793577485680362103212444308519535836706774536618296490161925513628033748662182155241486102984289251640045961254868522300211357452867282525099734518112525459401255528939879247664809865466593184147732512498450853608932338856531361012853989534267856567846020025238701259924342316326390037028442526253787321425430802577811950126762628152554704053965514977325388246186712424875197471844110224115924267762502717143069341503742133707262392246377498513202344692495710552192661597575999278965281159011670443199375139845397150778065024372759692678502064326327988235222052919897181713577374188101774241829876554681315134823253708292533265376772746239836081042052320251561544453000985989451026773571073306412032681425575040715654436328786573019567924179683004418632765736420185254377854538587917672066136994987942336360369538419648829786787981955857161039003776119982677651513728994185395135441846641171663711071261401427102798628273502556657111609728236418021901263339460854226145509865064489060407018137176413327618657070123811801374746078270192568750519832390130899090044157724576037426436840715523025044752190426344852565795747722196905836140137751803423188340256610516369508527751109012491938493887252672902400530834577955251754080956143916534868927964696264917107606059772732854728177698817783408053511391273994878997325390664664371150471533619770446915856663232122703114115894085504041100903758029596596265061737727599371789763060008009036220800337222674064506989122334045846563729740305944554811809988839773253641677624230486131354513797839472300915441728966594001606951596171698810547752236720315256777176004968295141527233558805425548173961416108745496305614486161860881292755126245527530555255593391697674441375010602758475976530537650830866111651789924054340392839911934405336820023532738029264459342878876571820286503856632732728711811753514300189873253837147914719496835015665062619969388379560528427881974523514560818835213550268633103711288989970841790237715756434097865902785055941040143004257569158331590384980575173742716162868007806559206536545637351151627333094210137928718909571978393467602539933674787468284108616820289023920705347410827858560815406317039005703661194547523279331688593502519362213958113810723626682319633908061046444480643626857684463289083995250846568333858067152342090152336380770764196268077598258926740233404046307301670730279344974217378634578188880919388808271765598028296940471085789148982910825737693105074957799787752333978280551845404610766184358716756357058746146669960279799484780289336966209309371442471138091616243407530654005625971791450584859277200148595950798601054675407493690858702040275628759694051551743591924331640491830718552166847853522245305995454478024786435893205482679104318228067573338667376473572453158581369888608625582580329692912941457543558552656312999567002639202694189660282676828630787329040024690958392765538955531076248937881659546609673869754356647883493980475187137817347627510200532870499976767331103701646376241265759879033864123488361678870608258944512605976356921527929129661357241879950323867267950384421350317892348687878603707751953219760443144060438156110215177215260234718693138333662076732907708586074410634002244374972862355526810049839082187841514483229164611828444738167017851248902453053338958494123144944887893934154008185552631617607333027775527050199586537921987850077005392152179620095142700717940350434767193149406750046427088719127833106790495594398097020163660816124904905186052827568291080769274298387632696803296045576709872441167900271102648908985631127739544314926434997850851143951821870440521057981993687497310913256763752775102236032397662606769554806830907242333441354346641331685564674946896118762086887590384682173696881174967867528645877378923573949571728702637380500538199275536874189109825983874954162180472418923997210752833492208199112189698481877681958191202101370751274583615993321286833928266982970686136616003262744511078528327853061109540034792798460899017049416884313895097403201709699071079748458494337523523126799788621353483040738950489491873032103263906085158638692236193318566625986798945893162586946551011257327692699942338837585701730208731013190561648799669079450745225949734006939481827587102313296374783790114989468877601021843186841094768768109678162643588595816933534142054146083461533688406239837471229446960583529499873621149498568389899407393012794879426973034095096566272328414486553415208237376729006061276675710258607874386117767792164833629514696680641255596195316377504011295981487893290591186534424459591554936825518642513439999721529474566626025541183915933594596829021024486865369737398953387280512986187259438420138807986774778693755482133449759539057097995475268236699640809615099646090193183345599733871225264097806663022671576400249884390121784217650004505804637901346989225324205196973718723556367281496297780803961049744490233623670705792086539144414592246439797819948423818239517370788717177205236086989290610678975871478775435387896904778332409232440776045774080172979724490483055491195303017732021526402354394112063233526690798591021100317120766891635797237497080750384674630229257473966520737804950927658520911108042348002556030951008017508881176875058315048518767867953525315566750375717343528031595159359732610168582158593745407538296127965276473219467086167370365355196851354673982847394995292479839321552011095311757708836612457474930398233923955410589473248557302988443445776546032960199031010170650877057920230732686434507761755642305479210593441600089527726529335450168542833243919033875899783660956996341147878880719096858245239291286002832899766803110964272235284920706493359516235855997392365132753905930421607021174156244116902038665303508719137319226153944150005529912627465474053944405196340164057145987361473202558258059857439412166888626107630850748430917204463454996529492487511905016505673720535139847419451583344951787017037994034205134695715759763845878906391259255293461090454782655693626703873689050339763882513962891735384233467605292000335298022518247842918435346550731175972345309095374467183235535139979326560113056698194592630768690832141343608747022112309358297420719999633303815204411260292270907145345395885166514270413540080241120676117271241367431916868732808531852190843315272690569794628019403755012702228144107576879777005386570985269740851173206994031996742056708896220182757264766349812281427323833435735117166545203715921188957387688473334636873270868965743095616187041507434599313565657387153510501767173517906566603303966380430155805238662754998242711109110661708087761345187347789045962748175191308669469872873898544250883890961396417757536027317283524033853199550454207447589673338505884510028643284616568623842104487682839245987919177091388287095299727543177586309261460509001296059173196527960418888937400062971829517838818319026368356012477334443686614137950275369110535440900308642791028863390651204186123556602089499087871771712732729215561538840218924610129295497342673320321830435346453724584341852797181020463128840615040931187672599226961977234456526062338924662069362761488655023785408199570400911225777530306483894576472494268322820126734524275635881303259412397896700746412243999264310793082396467171378869387486057651123940729462548668867975365896291465904676733375345843749409670535638041706921293545723286184869773378242677909866008328748451880697397062170255009266428525885471645486180880590001918839468584382488321052627109543240698160675291170242666712694976669329555173587780038471799200662105940843144462746489450567365392028211134494905366364251801151917336219214702926140282057340032020333744975914558770954361795511437347395141012839280592626863877216423931929577379716220142144959922037272423878506657771162645970094027354831184102240322829976699955471459361406488548886441649869521456698007373903252244144152946010497802456207171011906777976376705422236075543250287796130964242469780397502783382707597307201605914945874944768951067323168152640124067106928613671878628631330651789405122795210601208346396921496090986894097805726749080796931203141492337904119861211310153395756103769710965451738361318151841008731550513250317320686933112479380805149315590741674007156361395013627358160585572721067484427245625333832584807083793062593561584468179803391450477527976932574891890315242212269319960039925207250528015600511301271619556968717614640940466990946171257136964954958091688632304274426509971634830147864424768540703582833683182393777592348285357520979279615995747755037963162427419125801902783407720173352431820133535220277269304634134978190837519932844218610300279658919953883283276030319838855850122691284092601567502087975741552942060920086027277802040798134231617264078454648776256817662433119331463139290596540730667366395976869735646631772647324536706180693010499308095970709532944206818676667890239024693192832909512962533195706197190909215842311089975089519332871385040946139587986822457308286343031069627561014111952175304367516961016168013867986860618382447841201907303805107409187170328019753312057874391787403676013802811971788970561055044789440783145026843969394470763856244909537569015335408780169500348053812513327234617192041487850153657359439214097782164480534128691017366528615708741954373663269793055705466635148009867728981396672822148643498773645883368504780591830438752153676530271916143259444279528935718813035435486251562545261533290514231826867921854136273820389293540302927848861732305024377044762877391525032229446768575559119573450387023147522604576957069405125413996673645368450446720824754184784327922452332657752176695729109503501298269509039145884462718250857237643306287706965579880001667126002856239924566021809329767963326239169073548045217438229655669265793277294942786182342279538320158446985443037983454558342340784005751705230289605544010794811278765493554721567312296966677094382011066424574342160685407779235374773589317114256321019117640906966925385983353709490046808861038213092271605073401790112452255159618072445575937251983208119619844425643435861553237171235091721362102886070540493091190567182228373120395549966424183076857305464154004869351989679318583012432927378844528480139993304493922321944889831721760059505874214037914305166964506643526196259625215322170972817328684924435088296553924003580013976710332685232805687370339517031133142916929409789045682314998086113631597752620199367406241605623125590477254275502587709653763256480873169388548733789181757934139023199093136600687442039672201349638079978600223042564594631585717432026545099238600139709385591780564383518882751540549408862563474177946886167479255998192818589828220133370421784772931292371458015325024920048227263249916781801261030995747748695199358070717308648428376480890410614207442535048704276722589791427620611441060969138200794711330025812120452154453416691551495816223758798632418463385162339778357479023945571697973955502516355540393807427645583250078679501747381462191735707933830347459313631477338264242037193326353676296102470756367266181253407795463495775915117099630915059004710944375596769164515278301567272053433900025617740869442969438106930464779619515453366441793556990473195627041507052901218995190705791498672247145693251935701806043554144313503522100747656721637933954398464776166695736694341193358972615981279330878439832241860713901026714331552424100307445656552813517598227326617798437453525011223702959931219893060286594948452108839441319959574363745649230938741385845593058052782838951751886887331128619429958795665752984400874865057179953899530603930880739444200212916774471194516249967738183679949830502639485962487327912169295198198165876094222229458891999289490841288475346520116713433698713327785835434380102516188812884994441806041231692880068423656707843888586813721566717033481799667959947535917549140140552611209880687307624001027549150437669474281313496520540010717007086997621592520647811483392167457175548043104867218112218696041840227559035559368418095663657913627798543134361777503125966942208087858371863449682885273498708827844073640012904548037797885755778005211096716511134372096672960642123716302593103218731507839847368253451867037791365397241249711743817444006971423855374115623284621052391689661826475984343279790425127903313635241846987007595319439073279102992649873729290102421764672342570669577826183626906924498825956181290958507265936669937178682661998955039394218987997349494408877096159873261206190718870208496493702420168452802110005776699396542800260550546572096244695534643510260289583779631224301923678198737769825893655210141280035364215914057812289879479036214527440113488129449659996596295451161169878011432978506035162135877668760252279528880987841928561914926384134698039960599828833001211065159705441382442613065517593753287497222397729352162564500088148531703047716231764759922542019140282873431800735227277859977633816521272501614345917963576390975580750922396924511510628309311791397349518350881419853246075594699723051538351354699601013128220875558567864779127873203702721168458036894059532340049845458508663644104433729480547813472325188543657124951618555904974551492790781389828885774656285863231399828258321283250228971898988846447964893154388353616133561997340483121593579560684872781805760224473310393209759250967007500052148126682943585234631302635282464237764339531221098191760227358233327934994874569225251213102085832304151469332668090450192839017651491554821864777663640097200197374748790999624082492768788779643896788698731060105017355546662994541886538511781366342970252073635240685074225445478402267801163058282426975784733175811137395000990875284112060381531691569555163295571272744405507419059399819825816623807660405055244656804604763795480382497739767326143823707303366192295630161670227219814445739674450111804500584412834473432858416044549975260414419539259334909127379222995217922226746172641025909127666851484441181596936430107392490414914720452452348920563439281582689490519547171776801313213954307662747191306601925376483514771421837023314370129233047852698204978898146932089487832995430808528840540354029749350584804972009531502218012591672068147856538139088554266940151955508196701051052454731714794533142268411247574976655336488733140896570189251431056185459254350103566876059635942879301803129748884521708385680169289457005302263388082631834740236935377019844956225573308153002672371736779767840565767055264682453181668524910840479121889109105854757130634647561946986830479717613164020093354880533781305089711075406607568746210580694273370812151947282752349826175374988635934647369829002330280504627632561826505096515767925744691997547974426417789259225542568913630220354124653339346649913372772586402183526148408289171271168789197961303465683560643582155157102440417890587798508469949307201694515316547949956163835200964717624911657803061360576470597959708423705475865199688240735417047862508302579360047326043254301234910347804762978897531406990464801057123126717027317741032721575507195847535389407349002823200701839553386941837106068611205696266696317667791448995524120683166238566477855013192125349020774195586335023994913227336453418781265655475780983033982589779531350743017550507269911151143051994736725559083779816328934616541941314362033297374480381622795159211446390936580293608390381907688551698082977752279026248466291640289853007292750181697580903781080129569628491205977424986113314152651129986920208452458574800168620373504189581735383669861660198476140821502371778721414368861400323755456931472196913801273099454012777195636981225677295352931234654147284820996120491097960718252386030499802752105807895604737682999432317053620675157268054593716823388520168838531989075440978293641482810269395674444166679985235414613034359596095049778921686808856012522305800777569809940790487282084066811760881512020555545712983058677545885169071531548210494437580948589139632387482039220888626485302178265671924113703361717074312414164701606563158990709671481289617292410263082296194005262370130803052614788277497440639813428999055540695649232024682528064181412225609854823696582756954226440013553462930841408750220288062130724454505883281342791745632513895283712287246329483778180428938338282636056296706368724986935126226254874607377830315892769550137454989758547513615131775463756437232292290131703347655190888168866743786161777980424446730220594257286182016572862303252710873610502359569163909233688574822296947498954194953969409482662261114051075772528839647345605761635597299899535273937421564524003722741978574331532140733929951488939647345721457017281632663880154992195696303430566477383514934484852041609268230482992654073875561549156440389328401700838892098614575963845457734638395800105846488622135286051532559721178128223929129150495950790600808793749515819888792200912044008409456763944817709452176121365528968845179111587825883244276740426186617775057564919221857976481805969775073800851037498139437470885559260559132049124586828641585985126631997491416803259414455461472097095109302263598688254500333464166435117382387530413872918311095342663890882785120382688437381038463705777405176617913325777769230688331841783806478781253365590309760311849684236679702291499635358176769388614675155008398203491763187986674829294073762214383108023148151543466919728165242361025460826548792107047290081748743060312338213497548029015979180990581654160821767965784774899828626970099609669101677776783651262510474430790251532642832497262726203758568616315897728455316821341593156779398581555774865078972431663789514971343556364421130065208654568597899950618373626964453927582630632127434805500895739445951188075977926830021286266778687484831134724536542264608790447076880164313538113126248119939521744937364713669936212482185826091502081476360293705220105752420835712953235421760680591818158986919369905048524456075782118825538136559109053875332138578196882824761465202320497743125362254612245116337271859753019381729261637137664619400014213381725468798248000982078770693665455110180090535115024813048223977792414209834837426277950738643869282139108290242956272183917854836883376582543656638211789625674346541026397156345047103138517218108406488422271261815497961378122617981308829092156106258951192646047619686393929051632195000568773427243833260066087329749652278129848758789082382998471568017322758250371517306689808558794828543266946528550302568573559457105159514674265509036315536727948440129510794649427231474652542552830122084812622266306081678421046089961425573768579995860162600739095598513566378143877705055666719883305092811783239113733676801715036351115941290883232920512141547663304461250651366908386049947053624490963736430499337705122280571318002102389336185765304949139760785817590201088015625663374775305312791087687512027256206060715568628847782702334335307626116921937225553294900758356541403606224003231028872356005522838802639093930697458102310556222993368619522766988237754276021363253424131062614069662433810233332087350441072505384242845997668049096903610825629011911294462358480196960951871879047391393872347019015304398105062200905615451162555826321234474435467026500078884476909428875418864572076754132841028032324296051104443278383634889637246646658109914346299270743634299672785343996716831464735980496036089420722655401660257972039525695651139852898664044606425142065835752765179161848149332047320605220309999889366019079972845771743463214791459136464277327384413881002559539389438872593044778183827289631329817521113432170593073319920453154429048860492905498111241710383646263010250824737320326040933554705955560731163157408983804595060419335112597737933170120063675292145866271069081342894306654011366433306030756554222424029364413220997465803309369952810157290679145720602708792277200650033898781997932241677969537477129342624296717723068905549831418170679643979147401007404128987256885849079956684857246923530817672290552923060246181036077686481579199491983095003589198951037872712777725222594192218512741535920301858091870749232446297904206119703790885911000558292520234373181609973186212691971117127025632851417211112293520213880985964995387424329072155582091870671848762650661698541357531562474216558880706142247757590068382711804996058732077725713515313881038810220644877192544553962930054406766509742974819431022832913361056071012318678877712316580536168190154940038048367054455797674031024744145176496355597282194879981166559634705355755192401249757727151141782333639049155880463392866399394744162818767527173418444609681907492739042162080675828908621801751663540770185225207733930343933928796845875453787248058450049052186120825619664957158339404391359022994822187982529755832360140615127617640077097688401609817153573107936085743578728833544424852275365808371254111897145121042368859003493660005837222780260023537802048633431021981833419235806375278731894126454224504669992074759736663089379015405893114521891352499886295981213146123369465923707916240967521361868084874029609882425662910188630244374488896180679501864157571989507900186729348509741289861198454750368578768367856994867248002984951048666776129760893289157140054989573691811186207341237996829687892760724469167463082990039111927522578857192987063612911757214087671115047804506383625308142391187412459888847852169827365937523570307654045750941709369106164616408240208469189597816508413645686465170978043333370740773514436343001750178841383006572889805878104878178305925804938388759404251598751444189836225877120065546528163808432990461740794590575543454908013446648173682295323729872630466716192531774406472304846049393284978958558209585367999079246108509354263222001471577446112524513210229165826409913876874186360644111688576387884802551660509059300659427158128543379728729958093315531263220226663570034540078534306206066011623329512181836352025859388515753129805952819090800500375271377498280050470659604974569968544963554715400535718576503745257987080882145009668057178898018871042330822129272470557723982065099477221997948997202174198531670077251250118892149580119675724517961159272758931474046687088085425792757744353642998407508253885808594102994767764481640734349292651140976576051228968663291514363164096709121425190612365575122253804733910312492819217024036310058230642377087016280935484469451371629367536545110207389986071754142036553677767721409638785604864454200198812865110734127320654940261687199492213949710692655051227159757718368691644929340101200325277244571785712778966797181735198841736315055348726800924311692034490361549239814276393240436122681617982947420608440631442414232460859855343551047950191239372790154998195189790368740160129698427725489096599102949980730988757354765988536709623411408093540003811992531276319885128866086721671102526335393706261591622427554009209931168252372226862167635726638075573999298966528461749905875518957423659857732051651890811214017612934709596325358979492828165526899339903556926405328959257292559018692444790884636055385962979615393992838652460546219127270525429762133275628979747199172113151430738767112304833920807050947169256268599218242425252831441033382886627881427428885317234116115818713309044468066428887507246636260402245735229576376990113479914835081672522302854678310500383522179427559777519305492235928525274305839253912545437225727838073399091008210630342305540062928787177901830613261864154853117276803386253491837896297644411562094200001865631550572298467547823102579352660651919741608671796629488159574311061526575543178384358943066965259058023350748247925296177418928445356372429960285136720660875667196056022066379468232510051489626235301337277287497868821631764400775130562788177940713013504898417703163646434775412092917258989901298752155180308410820525753849121044398537022390117246116401072516333216461883549212510074888015542276543652596216989771067661165749869759985202414162325840242696732898292741566649437361050888118253643060369605290527313895076652661934691844308487097775256619635406877617031647542205347028389210853957301236986375996274114087657215629000580398090776176576828181021122060332996682354093375570361942559388431788817872335280818188124967032769593338900636553950613798621707658619997657110623292489116740649952062150566464894644998677897247217987631902046844420309199937297333015849330421296134726157075630314960539993513274826924190151944998039319263639011784042703933929489621081316440614528687222138421600619332773108609192417301569761945649771997431245272017526504782212288086356529669359053588322631201892622076780943224120862424718645129183407414343399154729150944653804201997207747827756415434485825092907112632829374360244248852400481666067192356727445158620172528967895386727387303271555726481105989992309378255694327210778938444500822107806042659322128642720859980010251908486666280056925395145132776086617804884894051582976957661175667593020475839761700599277358656689398507386340834746354980541143197479465261630968897256248449730518746186316413242965062681466779544402004283284298543298403851387171402660106237313751196518098890593608721197853928823329600778551329228248879743873230052426502120078795122807250431785726090853330319523542106771676617030129431870072487710020312688257492041653053732272762010655400279501856107749841495883857686068294698976683336985688474247099817789115356020464740013081287716755320346055681719273553438596654363194456564097291637238169417961676078854033453634413302689714643074095071514015430747585051596007436022910677702958309952809544119792006194843192215873821222948983504099457608000383606627856991599685875665719266203934842171756569999351078430696357583835230986103307097235945059095244996799935229031587476278911939069508415901075666661956432198977569125243610327140578602456862359278379286239911705914094166199118364075257190286277722008285656348558241647062819446891051012995514188691416430984262949357716199760050344641304282957645167475223646001922544771721028775629740128972269713764006564601959111759765671214448286708477396547326758967161421021881641424479468568601607048566903705661508156270494104575838530553089012549964390079371966188262773756277699525020812333551066756024130925418823277856294617873851117780225040029141474937803937908446265919358490655629579728486882831912377877491120818727124504716509535579119912831314956326315449933028120091736298203563459518865509496679202277624161928781194441059854964808015108316459572884140634681092000739797760746636817049186752405701543500441259802440194642446428337835412050355467306124011741099743817012699946435963661310050708334043186782163545316220597784628944375909318995598018584380893553278046568870830192856082978553551120486512576519579148246367566972337616956878089487957783520924026995392701789188814906009553309347082726236615371726448686016019263310055319458761747047836442586638836927888903203245909600536258600816899185524202344906773989491362548934934781053117697345048940638453959270799933613970883558894582315928539690857932818433119369626616818666109585922424929107804419813528152943044989691597850577644007105076151795606054004231721222558497118999426982008298001869371633454928866678174169045617568231070088876687164500952399570305759819757751374199536587765915333375318532192203617999490033073875746032162143947853942981355568358800929490398665337531045828972310993543377974404759783767201365115462518462837786376433487080469408573716791981032665755217886463551513684134423946805255666349216144202150539299881009363630253276746309172316100923527445594292288014481304810684925048669207296112661028174794868684518367538633712667532434992399522474168384145285201488105766988234779493856175212090576728454759405192118193672964067472349507451124198910461114343214208426656087156562169710114953657390662007944139680024809187293644788932228699751167772196689544087602220292444368073071390801461871901986235010494973621452025942376366765016536690787049180329774634264709213753241892640652967980967298518181648198402266633149614673861814806068426145621347178728253845358916760510124439987073956228514417472204537905054321757388386964142602006774332028053570701835201403853087896866907280563034223741070851983587002474913290229147842517761192300736412551130366013806068929948067311011295847401511214427971729566801778381836080784913486494037526560898466183204285399444443228146310648810450312988864010407436786810473328390859852526598551094489102774956512533610317446394023487246054946879986257412121247988367900250755526728571852973107290132897349848823148763211715531294844980781860122158054813056316454876517883460886471693785804066488695604717381845354918629764304665095257399208896669052049776681478228069896771984407760404175550728435161304349330359660367167105832775373325267569414027017985328253104446965011035596254635520064317593661066989626219064943090045227712800941877060594696316955419236340759072510333937100044813996371714167067845161748326015701389568213858398250762445993942953090987111211967754419926525893350654377261120007623433495769739745457603580334283460927121291821078737457635319013252840740948178040032620947013799814241826643722003535424504325958111662544925119978587800652945031935476570867322999964457059190847700476926656725801007815948159078044685636163244900716597404314377494217844176668554640185518804845483354914978698705452288613969189638369129088869762625628980385163327251450032534670701251127907719561290601423936624639539631969488403621376666757237328189498366842966660479257157425086954695420997534623039258483414524925073535325330451828574439058512551892268069095463574355492268138557967168113252593886138457369126841585546162313482147905141408631347016577819386505747775167055232619041315490324824923678589939791060007363745793058127221935453723806597295995796717856203838402103728420133473564472880876843946683483008125338262475796276744159864658739949191995432072319576053916885531526184490544391877349303634887776572991975543875402657095570578582642333255776298772190025658833002014423198830210727604666504278858322366007514343280511260067121757980321125796585005393487373692845262466220915546691745612737574961525659130365181181013499746892529317958553515770516452374758259451866521315957068560837297154855409381248408155320162344418173264228641522188636248223480917730011645615196357221999194613038106553178100087648881064481803081254943784894546513894035555068867622120670869990402501928908527606085747185792210534947061659204961467157241962878554165088317465870772438923597015301088518467614765956300321752556832688584624413310927288580053446717801581838172368608135457680581107490421021659629184685815681560720995990586240895655618839078701346651018892249685416879136123829100942650111715765134785568797321016365488572824435446130960108800358583598838096569480258940453292473220233658992135921022378988251902552025573551880536717213880025402425378999986476334297829713766922911251420990006064780623762576274584560499952208241007306165380339144932054389370370049299616948442641055235771114354802473039760829050871851447607621427451272897671759259587747077380573693023023383521474517601653486209960510916816205912600616913781102315389628374129020374269500036179129965551666803367728549234801144274392596147491706852273169296420657202538692847299831690180731640928830069656142772682296530067154400115231998781067740910932384457176427405503858087897215394967510133771325119973503875512925616984996847946101775036358892455522881811407986687728960944511838711480088159528067313091694386838923860143551349102239827531882650868645383393746274444997149085689954219682973758746648693969980826166005158462527775691138012102487422537844139596253086637031645718217517133497298401857213011592702135270851929020835808276755537594139145879527122870807069570701575281310470689754751572392372556348727970449267583480579049299393727791516877977782405592001884547764180175248795812046502706634976788533593379802739195035095503845496397277630835167278933815065686016653078336294745086917079341510854890817163110161557549047660461410422508856050027521788187269865119141469209795014040515685359785261726023524306604288056025438164939904402489311290112111313036916757045758848380265311531655897687767425350710727176801679118802274420426104589392297491534402389394003103431642342159859860137587991782783230172594144489788043428317744823667074447229461903419283845820651651438484434198621619699627329550336386112011022378105565454018936114868540083386162979303349174822514678286004263806383102293256370711406438478955924898179637916466400809117390544992343399467335529317152216312245850063531838202031979939080402546768333543498482121535723652232749914277022874978962219940102392183843130048078114133750913972040663039560220412737724921284888779183106049578069197214879996521447091440910422098354568649201099853929302423989164569725538677974950511333731088516510932632799827326872926729819174911791982836573978050405571924916580125466719935837662406568555310420952166869179852467167344439376885421348754389746958967487465892868358357634807165239932524181311818093245370282924849897227832368296476623855063085653676373479266031221185128806974832228894732053594686156484221011042090117655613173198724890854097495228484209128386817671490965102425000172064354362714565570933984359307264352777164080177694991825437661577164611465484237339398093179391293450843502255450797592040721409162916558964978412064365608333355604327756569246349920296168875841333264194879850476256935379420966902597827902270426957971474215067268239150388015849328706291383149607035680068624084076920542262819855852769872362821319334099049257759565434627670877391114306159418208236978595603479035665316473312468666846324724250901215491324281268866411955356324926343422224486377811418298168401015151114723042446189221309601937283498191802032717213723974784157087712338583166117715124252334072182996393558176327931507242851231433055748107897985650947125239676475738628731822388047288660308188358402727818207373611874814718387060584259518072374672374905574799716590324532681349268155646794715341932214505852937405142559961173638859825719946092503567347297944385296607084056248765572798704469482335629308605609769058294695834933932375133655761824002150157505111128328264527949798866393139002041773829037666942481590145965488218140329525962213281868985220243657775501100271333835050131092493663346250698764159876375723418742329335143159986480670801436216713198490600335229316227164344345735494797761566855201530285466797478169903614134363080221358585097794788183727678348830412536531248388998743921999148053683347505778242828757817103072463315450935195137339342633227146597676074309678881233039464283394167748296897355538443895904364519690525383251575598550128832951713689508012546168402857164513223971576913715957538649422162012613928162113644000142058287347666393029711964698316247387063769405402620924325311943150740119958834645416294214388910292309088678164370136771632906486514596437523601649064300028436208033948757912969710198560335476368004638708595698793012545120774943449737150649214719816681516010742727648673369743794988738149470282947189752626368112477469034293755786451172111012883786467684700845861774434466399510972608163916901181999329862070449222716976318091923823447372924162593758090321576218744299442093746613115594313573840939374395556144954766657809963827173897197039089552367905798073809960861088622484001064049716557807981093988228155829869762994857163928931941564372748979839010343830999253271030726701894957567248614857985771999085662053473349809179305523095089975033458701651118339481134805221877000712765069170959127634575894866198222827445247978539930554239086713958720236987051703631205427483064812038280229341572241482241906781324590254300249288839559029382987304743335427515805658460755337714172341884449164643532865880916199375936698723207483801970491309107653093499267156996565861121623133733270563350800472415638460012761036218269720275748101640691303972637580933024513196993268243144486219922581539203215612857569548720588035050792053370460326861789292950405874427051987221493046069584150122919470809258116263619642349657336498712027790888964795929792569630523961902296388375796085997290379129736436503655050815020899543428179115475147847067497128503064413507393203662822013392687887287836218132293091714600328220478601499270640622043041449758019948583880139811397833392674866205906318941923592200941791384099770576568177351384020532437758791831672467228789137874759168782224756951213403441379003381411036748761646132093380872971810539476203439496646055140731673738006259239229675822364735287971122883526513271719964067252798872614998381672923627119140509206916215002553607587509502142403963790239757471712102525504661606845595023968950748935388598465845658038837786651713963326017415514411136442545373107780362303079786249422420480179458718336042095269401076079148833230746654097808092964238977279876162348395644990385046231254944220867977731451791086256137713262378340394132843951590463989840223401327074199815164510328351612631514605176729556880244469389270164034402194245985420983304214553017154759084992763243020814908679701587365420121592892529613090018973285792444596231312550154302413167286279934697085039124404130040442636527455165979163380408804963962796703323912692498093080439475201919612181966938014545459740913158480861611177593106132540793431558858615755431372724520973574096478178101332831301287280788972776757848928207251400752948602056172352974763065750150931058808822387132973904513257504081428969135889835010087237294126390797894567267693137874602552780961192972030875182615307962371122476751991315521587132279070911485834308096799074372135824466860795750907471811872111793510697303433529054890216789353485937228944161119731823264281664188261171404593145864441190477447504650899864954295660189312033816745082877409935509813699946236795585501990067593954110792963241253856086357136467763342673397920617204994194678115027264925362435536235745704884056228914311346270662628536950053887857798053675301146449655899829289195467394311487889490207272851970997104406495002017867996486496124740376018309951930439649579208501249021092507966971885209576512408429592843456647218439312958387703818450039068271030871911984383023115065617878394077157904494638136404174836359141450008911664942596854509976164715144795772689890214281459640907679173775202091098655178281027004723785347000411413191880130108017849704925226497829391650789822268398192070931269167293778021184420073535540346675249091184675554505523008499482898780020139611186763799598652471394675582005935546756196368918750860330194573253543365516429466838139086749859946031948273651530581143109451932582696784270752728625439448426859396956807091479639671874819464767793850018835475819138495187497573301328966531790621044855336702845082162646162392998308852249293895428199462318614304496527410741714594497315702076237029827447406293925506317394585062432058720350998366033806998552041174004209115788118856447991077635432443261256384786928788576437879682002392196193452762679441239929939678737915048947120189357814285062822034646057605896301728753358266054814659184334176767303876892532672522201224970070866587690644958919137307077690510962603680500867635447886403365597221645623565950987689485073284984280116219022444832536560388761984575790001900377842247082196510228388173681924806958600911753128035464501685647380428125961614691942989461231064350627710986231889864238184061480167922649631024470630917432221038153830137868138631189443828732468529385275207519366451723619257265171203935808424041056279685907525990187792230209986236282538850581486194075580608617843883176252293168511637208510516659767714923875086234426125821108547985950973090967075089011455529465009325650003774522048189581060283578104301306829979853614974138613058520303962365431404651501239570003095563686455942757009103086151891004416186117850857064833733229184512162331261639661866339614413582399491616639569759359132853996228468563210513689228109813534635122516009704387843430656767571068993350537458516422559446865573049033402294701172669312087947898019910464700393035259271219060092956308945511454556623791425670563236888575874642492265664960693084132858625141874635664283096716587512271416202628736612310578026718889381562440495589497990153931294961095944586068846142168339598079822323762112099335467884005286512493843055431429444586022723381295624115982338942825129566950189717929986600401807290319594831240834116575468296414069356333133647318545582496494579028380648142335526962332893428031098885574052967261444961151459985736641436553505734557776586641363311776485499831023962520063745261725046327190562380635613119623771663010783291820056972576802979281504919145450941282867958839589819422895635200934224119186165565700370195494569042435347582334035422223523415117247707304740765656232912323246078259122992165276609792174071795095706249798921319951119457383737542434125683448911131517274803608411026509734311896618048248326767385118404854120782209126459815283947822248298913545457605802831799629613138270648530811422772414983052181677537007288435468105789097687831940960930873685997328078381984316633082400097767704888223420974475569990091646495722246769993933797667187321683724325366761222755933898059658515634804443546996181034173244562939948685832232494940194138641501985342269661711111351774680348708067222382023608321625871445589008572499889576572942460272767066368866301926491278510190804378429444839326152444179167646506513842010538102449357080212422742927819014200842712550651191037471678508421177057531875268718148859120293838461633048626556834897149221613897568528317060166986623892277062142072273495623482899463334009891141059271221380748890547823021514989223335535398005028657214559766997973985288776513878503414706349348876297621974213757007025649412156571321458895112208201651523390618215246556630768505893053562912460744565017396169345673365036588027252696976561940551434798773663508886108527531584061622020639707585727435523066406916332353940933321452505968904555305004313198918182957594449458655286287733138540646997169640713032556393308304690115329009574736342393480553480918965278240360643008097300572715121820098092609288633761735887445733471016324362012772326991049465569017762811005221370347794522475728221141102468658009777044669059236706766471953485479811651808030458399664362615192475695186193846249344394326951942981344857410325756994358091689544764121961231158746874443629059768552444003518419766802936631129839967914369267363590155318883967353460872170211804137558740479425098036765097097130376401003490760319972529314180274079115913541692157423751300103258274005563900233191506518054818444798763113163251240811061814596263537677174952477584433557827266009970689265056430185238118001741490180125217417539016598533169107810460227412781327225288716077161219112510615092447856914709413239850449545170053277492960078069240081670627805697288933950359450073617082294299540140613157990492259511855210429977836759427378699435399006185493407332968446937685593520316820771563054137034532893858259177024166338011039402307995363462828685171750448944892805176324157267121328392047899832457189721566159312734523096728375815309493444846597487237674890485267255221161148247728986299700749805551828779845120155805528321489451259768392322446526247523700584150239614727256226827973195823318635252929012591037879777770381068561929933048392030592522005138512574879763893818102652676261172010034829765174356748305205745959344201884078203479344269866522673850597043647548260586780828227266036211694165272325154225848064798366635387998864310965939202817056001561828751054247956369475640332837300763205650399964503065287066428694423773117903292566176349308701860673313847163824957987460282750218141445207251957636443236771631191867975166613229823181114683527935675531322599771679039771704725821391913362340522482566205947789394185376238089342815680605057123940189589154640248350476050957595694465722550799966143535415471824473728802323346976885667269064347746443653413343678140425394243426735412959196079386851282319237468051202820712320664583026613890866499238940519513191045531602852260919600830743100983387351162827534216573441508507161735238538085665677350696793420202930502239582835752173867172708715652178154947394909002749540183228993246114715581624342196058142608989583868510110837247032623521504461158102650854425060733250665773782789627458308711117418179623324431260411712280410145679706157837124990033536212144152851120967202740730317638738284141297186560776123894496724346295916241880311648497308627577764761299586441729920926881368619561627927222588483944216163291168296703918406972894627089431522205824612292349547022213755277040459223300305086963630119015506295531286501581585289346036940877811610296479287698431610475722486638527385937604255978909789218456803834680123499691641620645727113139912766936124014336989520062107718395779518585705499372227592513766269706912045077560379533731901775820922511047867839756503503599998906221159265901286914271629238376254788281364939211364809308653149352780629743849856054791829967423125012236981110060486747472271374080777471287299058890160673877612478850290058256242849864783922163645058583660272125849198835040875990326464998617328242860663336143812968347586258188698871671982637700135962826188546744307848713736385173101587479518492835364981966660601633799310612764471507356920122205856180618242947060618256969643181390902261070609315543343699534073219840023971185012387040375814395292018682363232926956856366855660449998245720204568908269470946361534887546957830198183006218476312459088517063044857073217739143741658983580284449813383260017082849345054122346174405856621831978929394547981467249156314045308167849966209051269793067021175509147399072554966919738777154726876269308923587494678170933686772939737754443736806048112402693313358283147183976202364357303779472900233046254368915907494239013851358613941354929484343657309317395326089570686541240253567638425412991295333542744234275218432038811294142473675111450740807441700401644253136441404783051793244338424757344760874303700604841733988980384920088762964829845319356801028078620407108908028307252497531347652319859778683225449343905549538752809811053679960534899259206314493951009718800690326357290226646970929886794676874062790062154510964343200140779478790049491469072478559785978808784806169951589739277328499288458365926142088449196899647332471416505149138313362851674782637518067924001304381479287657415789189066004914173498785481053889646152402090359508382838428939504349749739069201156785931013738885699612620633960215465406628675748564083630991713523979312614303047013433978933556235294535389342286938588704173061727103045512125321164550464774784569228320005131807478495046074719859038835439286486769957272650427865653526634691995512373862223241229411721620969936509557337095032680711689645853191429364021775176261886827615306785131218537521016257738789340503664145076021015252423462637786908932421361108635310893918399266731140341409840422433461642359661348357746390648256633774085731927663530769344361080841608796577388609504594085794073020919543177571527223429963260096943788337290156911303748464094537771663199605298293861316005323783525507772383312987533536143499647967229517609498076779566881425224245083335244653719791758536833364084865211144968096054576487938891632416581471151008525233329966711919316771441933113891334642507236927052253615916172827686770041338273816161452555115738302438316516181344735165423849970449365583501950390097988409503049510854801936773007455011659593725049033311711989944363432756730228311421941295477983988385983846114559356000821890123465819123332088030288910714829804735181589608995757749750270535463141217961455487572587787067670513114767157547828047980632928246237208640151619109344344774226647664371889218817342937090136595256233008588338275227614515373906119054677129838862711049706606222244919913015225349764152742880919940277251168539351926320839109786214421147321362085543382882135983919888362706726660273318831186854991325121937540834300321359206253786606877621014928546512838339504535431205967213152232856153686191585896677289666282835067064709813061950996915376723480183440053967416306895871676065129270663545665591936997605272789522256322561695687701440345284366871752752334478227897297039988318504848919479293639501593365886765885937738029673295801385523174981714012082359215292558561712933789534362990319859189913204691422632934811593169619776442331566771218471481573214311486759765061040034468763894748550760739035896426447776983179094087553438697825460906962343860236925269670811848994558598690772196085596244125611981990631928107532783937974580581998179543107314200294469263695384530036715947174839235392068766681873915711057239515255234149699615092303911570949418306967887503176498224076479120588252822411798134505965961004222216442467022772612794923281250976555025284281063029283992352996148569783250826781850012373527405666074552401446475860094763038785563787843039264774523138500045349797804637532283760844311152946007925774339841105305317857617895704870192235464626411035682710922078824436127249580997906743918378969606320017994410149287897368005511757675777830896516936942340579355498175788684815026848368010831844187673165836789871770155745257180666831571007862021416388184051466190098378953844128379261822141903217211262538758724245282089843014229128861622811804248030872028842918990201693933853772944859756233277772588260193863497715415253645018025515188836868786974266994961723674834132238753495200727650397658150914584846964753148350529965521880464938676327495246545065272052462794485883658583728768756095049958939845872640016662291285619782067715840571162076957848712607047181099415131659992708589859476408171881735341093382499402943022631292417016082815497596358864933701309276851870366167373072285704653416144931650157993977116715446481417103856113539166803356945462881570725495903871578234338183340494685850512355945127001121223322349369859537970738306341119320216211989552442087779387879737930800291245587674748939292041062490120503482882865700509215223266569913948802317019332298455170648778056825960897535239257009541964877331881713855179632171306527645508779193031330012552013161644192663305489245512955883181218770900222332161616309045286555997064052541394041409043150706627783071801399358440050399987359241515644163840770560963359207426009676028624995120488032536772446112929238236601843843707862259918279865087359316529432091961574526055074630937049415343820871612953873869327606170766564659325208123427712462897053012279856635379207445558482995164656982482119767331334791709276804890053389773689080843398794295077486636751412712500340592857645494644398501328928041533564459640929874140144709043881900063129394806325797883627578499647696471274369545848393588592607928422947166576706461552619999391294044319875797321576300807327406737372821557900376224612865972080453977219574442077477971221842005218070051022981566838475813478783219885441406229606941120801903769807301712703633805826077800847679594531178679273793547587235575385849190427246583515552925976188972631971935001682461234029683172069176891152719216022745614133355149977729560375392147792922236129095739115584538362829834797829969853934193691889446890128869797351188690601856424493390117497834687392611487568872173927233308456777331676027131694093023929066640876384746712469406298016115847325796893862029103457120700535556416353317176796702170490193804209939307987210851544739081226894719566609026353406222546728013090531133317260796292278882009934727804925985105984021906573282125565873044252753293554522407066851360072454701443567014376955007688078569443791450883032787532638421521442439373538325012753374999137878268138614936850462398167341123635417981318935448968911118786329697843746396895520465798924076974276781784014137519906629581357560075341215082658082722475447665680203296243976734980107303639279271372323419079834480508945477048654988778763161030148945980008562173531570294079333434762010897967698724086465371762309426637256165284885612715267357596963051140395612844495918940098006149648427839028879989425992364441019191758087334259198530728248336687568519247705385534460002159119413709740803394042200398328427320460259918469127524942385159688575544225594175788175280950720703342861626045934966723406394066607672354711197462147094852526496629451932791151060549869789936704751913574528345445736319910062559975857149409337136121880693189200866505549253668929425778150825585789154464767359803620591453068456315089875031853105400787266031854159981474950902412135510382005235713001368776311848819614923364872960184109784986436008854283669049973027807935185545812090292142786805448749142003280452102668672604398395178638790670087340850835601172550832024222069151390341087642853450602916236758410916955337224650694481501910853976677532142635075535225663320669204968167109364020558624731194134412563098548469907329963610068644751325504019028273892717381050853926272513528331098408451881270332119268133050475658209125726175260061512477625007347821095951882781525300198667571981571821394882714479023631475577857784310330461415036335790899437307973655415935232446321391473703223037488177685772057558316348909583272126455869125009847189284714832643052263200763131830882202739617315708096123556506731618766844147978252911493730125157555467638653241732983177177762175735671152198487260868504416939601327417177847243645659030505874209278698284296538195353506217428396058491560299602687445515201990913406298697460564670054171630527342311482107503320346623403794049503214024524410529451529892579018203138723999759571931300153954523175049525010334756588440636473585296678659011148244731667083705741128065391480078508922029147032075887477712326980150435426466308764738064822508084354734445695998863886517972869005238272816839738752672437043027544143122833278505706151289176819159540042300351313079531697402868300252680808594144944637511742675283241286354643237925020341460661814951532765414116485440701212219029764074457542363520144225075629786184742727389285616633651873656194763454111345124440020590503917224279657618817095250589036572854535538949845001120248181743378795203738257520473367372302873618545117628876128053873011291662474416072178316525921275207499471165786528522193289144547719856109978587869908611859020288722217714625099130096031404198702155485661023473075154193873345417547288653309267643884139758385550680695875044870696608400946428444877775375505259606911893204429940318036291073231138086456671775572278359615632903778358689174718076246212268589062759349770838267848641927737218566861888790041347537676750931119886038399605032153880992027259820954623211183647552307629534730002284900149725531759379756685622329474324122489001109565769314205393769146445607233921773213867108015076058513419179373178434506770311123700824205388748501979015119419101241402063216139138255898834280666100139122450938871924040466911183824584504025575321101078726816016671249690904795528311081318617326060064836814530809391475654069845050915069408211230879362708458011950937249999098912522653843743731517540491113332272794571793273820236362328633267645034097010138581796514667872355321521206578400290612923110295449963603746076404611353366719131797621747033979084349414866050580827908641600883243419591838878356711970106163132767952045601726525305958140665998741603009382240324926527993483049244784376282215272911086295554437645090926063803479369117057522229511718971810808671602697986176377105657385796414946612589465138318977750151246701062671136333672000412245888909126679389397431651185128964783718468472021908972631858204746970768556902825996941812117729882630648471368567289221232318331381065485220124780585055781219074537466029833435923211363958217259404302786993501536852158178446030285429610974361988971022708551444278511186228285993354213077541954375604638727020499209476782678748193893180906395960011410108648399363916200993285425203604998792947680986503509454071027057743430946293450630916763044903124806296160648042114190668188766914185858917783222124096815855953657882600959281196998759452090964026208367064861361724328429461950543442003159534762223504836796879351697974825664465339555505805976448473048198224240252047211291018814549797896862801224937116810860352948716047745206920426784854128172557502587323775251359424712808330336701276145171036929136474350389181019124440118198158624247075244216228288283619457536870760168707072569717158284322521440931083783206354883221092917233245038290495013135159597081619753529639869830448060093987577002246122617244261760001861558305648407320363013360675377703993758715253447973616066253262533705186992537421685529184899801109807246833433604161699137967040854331059198072921401881643388254077257184385309988091299662125216891729273467700803501960193905000660875351320322051616513159750312279510875889572745217028846441311114631207783114022261499487103340967546625287387409449667550891305806857119056090295671189687081844792285597329631893626042011832959593476390700387945955579167717906174405683947811340929305334433427960456971221508111568084222527166723280954601029457843253609415943301310203511635663516265513609345156770681504956062476519619841923438086025709733729561619496242898549239997756100393242262320962971619137724681097124775778984906071453180643030547444823230772798815559612683120416770101179030385910915685055731410802551135774851645558484781064575680338324590387835717900636795013391511321034838587397581618667151089035959899056814214672106539818076056326112241462745436451236698886448596093212282685867697252763016957510228449029123312996868419511429187286710462577953739584914275209670100410668098882518212978654804986478630157473214583591332058952535502919544585310829646125893985829082626300016114341816046960204060959204883921797842655525115900570152174512055957700825072191363678632634076877126351244740438507147537031474321894792098154670439701265277985921365466475055623347815167342420620023476027035700928019736510616520524145830826803100458477981779080847431680770219064294195141199010838587018139396110729025645877010067739692029362362341958196715239747853810908517586117254097671676003543732731637592705278826957890561219111401310294847489246008578752574299324120751581531410785062795907633432269564397577279427170000892487535947585418333939350149698692359639702756097388932172242461656114571974365010014050327925377366090860693059594052923689248376724930232945241188075011432354124476401138455611872472192815578338594550094531515625993703870166063374892715270722066090349197266798559462422112360508110675723288830223001100484651346767751942542543519834056592411731752547695029124627371379961429074055553515385701061617910097629334156400678843651915229917937268693843202137882202563472970051995049691788599910185949614741315391249055801865388841270959021094689923371084498537934099123925989259695813660708838981001398460515558179462509132903705825874850363521316152709803529810671970676405984180479206974437737995057563378702622802217602040492494915367844815965154198292097124755975677276686538290109755547782209283409321128779113175731858529574058488412429023173274305576442809555767843531793415376790852728580007449402433118498362997866344412452175090704786207044222114517226536111627709249368108032929251471668856978077042936673654055535576597606896345277090500490705073823276331734914928188744267396037343656717453593320843679076437553641623078519965979593157170572186519024509397538253983134441610930495200379130928343881280902350937813014551968323650921647733423900681254561416020249135636583313836622495938316847990170876075103084280501810227967754924651528289642991045084825454440562962522692107136541541873318575862465622586503244639046542435017055245955008456206880626564593778596917614998634627184157944627293887959170725527634547673154154125582382126007561569971939350692342868729578601205277558093769587508626426401807116864747236625648151896183687154810955895873177636856459001555130295814234748809089078721253249730352487048160141276837230467293201782033714573445360173148938249219213441467293639311431052557480658029789631445828581212614938384125406385471995958386583289445255080132518509853455402135901674682612195053382709815150619374642809443803241922432096292347058068710024696096790491293001946949430176236748388844350830497916856393904665325557805122427130904500852885008234843803791057828811416112926743811883758322286405026497688281669555696948235236041420788232546612632535433669019998775599767452761539483730293904588040416866670453761187653508205869423092803583914213683332756944487517577165821118086322699026030273235407129119468211250192249126697746063410423876270726997820003837222714304115102798063372856523701862691472912878096690553488618538538824735234438890357324774502703765175709172275820529745674915269706738633601124637350324484610942190021983895764038310991734828828504893375755855820031806303302509631921733359600388040331163374265405180074094550893986171066791699484540323951050302959716257232013273718046088855212933794168689032947764919323743938607102982586890600230410450047610009719679572358060542882134792495866517664629369124686487501376342171028421494883555423711180812033685017119303960488958153358680468884129288199273995530301993007562512949480216419645368896006381867948058972284944615898363536421131679719578217144293318796867221140238201618465829405418703728765000094611042638315886093167535387958116028479971281099154971375847836319545459952827224321213390080343033340370514991506879381212495029641326030592135505207123637341810855201035876068199831547748892662608271308382827617071468500562763773563736182038684357571344781463959028666341265076630073031733526778631985606560204564432595072640709298892200421402593198702495905192113163777107074185376518376589634631317026477454759897246512470906919421493881494084179888641119266322009744932331157682076249583604633607358215145793811301512469858127259558646347141038958197146633162664971730540765747059461761505968207151397192898686584312291784251306906228565314609896532246561861291400149354472356004260613517535882671472203703323446114740910700066157612473698881719632381292943321831025515834428185134539974145758995631357580134089039933740099846331218438453685320893756121012524291941152532932566871742472712552663284073225902533932943583735382379316969966617803587354542305037716857281258761960235833881758507255976779375332930870057900908786923723014415000563973245673628751234029849153678122841897356871530545524778889725034129469546813646240567286735272844900619894602575555290452724626617750163822952983436924313721282163960124720133851109717894797144807016647926227852911121593916596430493889676783433105441171565097158238492644634630917995166207645646176941760423517778808412596803044518263767150984972850226645448523240341036825764151399265836192919820390096534211245935715095376247752993929681348651103933508778762451331789920222112479696884019642070009308263985522672426441457205510013355725258989202984152822844467222964756952873615556102233600392031847568439162431963008803442204212129171002851509321338845789067869913352951714870105898923985097509303606819576534864408851967567189195300063866579442982998501745329674005482581543130273016355891900368392593216020614220881891007479154135574213816288553505427960572111090920215713804629458835484097540031874845460807981793463216439562926418461577282497311596608419983641123017994162805474240991971923373821165238176589981333065662797718394392306310605559573780759149443255357724481660982502119829420554668052256790462886216327631214890823021404315018729362438143142411255833964341041264466972735829560680890596042548041983460358086229312545475238459346188740011258227088561833322449891605199209568036839992630974994736102307274984074273471068622364504075062630823041139383111824173255528018517492622504034022339577040299612174602385385795632935831621930984297853752088261381385069559172015179491084269439378199798350110712231494206853565966887365829052428716690206339331508355221020628429923464686569476174835079811414866282905299864669622762575635814628237630716382526376374308017465354761842932337449786084980445368207644823491415712324214839169399189287094798275780961203231146150893848239584726444926441151383565079350430271972175489990192194564039875002407226295558916871455923228749440706866352836238545158815000717795996476467683736686673480206914795931219598361466105242527750187603526976109932798898745484683006245415011629347360305317957766005003741122370582756168674393711501589419196051288635524543357116542462127696487443340412051659625439461951094933888224839079380756368676150037935352646011142476525915605002690084717252523070607755999537202125341641047248098521448464625500911704150239660211526871340410748433060525148328777160849217909301122056294354646481123096869386456197647644498915358848376276356212282122090074532157288342597623717850527074539421916392184780372882423723568935631560320455881106412516572685074210852005015051419331359123104336356233296889566385062919296464977687901291872301054414256862897240341054007131682995687577703654703428134080860366172700572793306379206585463230333990014274630406029991796244446487327450777985951263739620449171606510543296039044907391428148214946324531971097439890799991275411054494607178841779115746317188189990480757673997362467824738967823546220443094010568308045347847292957163359690082694179749918098635857648279879142035673282270059627316486293993099896510066533627175925532093138242413461687446304070278581482103245460763018037394518113283406136434347596990833047234353632390379463471531519515224187063711343700718554374171392377499295621613480174197524788774173581900271953336394310672712642229625360090904906792481888471972870088915253449782284680631272568435771225115508974728724197192961821498087608323632596632845061664767232298307564208475817923555826545993004424448239671629249508498022248734549886759277980208609955636978654368057533969655034571116204394091224861465675611482246074442787279583959040117007799171623595032536013124848677709639730489052156289851010471998731110156759897529351965276583992481714395128005977780894434811355011988768476949766768967154167333489189280441452028656058976817498288699313690500449886245486841482594340638235276451419363187356222411230575148429077925697225196347959260914501912588702810185576468867086177384002944143953418463502034974138372809191274536670698966366408579083057118202012389507458343258213134919788311076153486385302026129300256566267034345095423731494866636991504237489878990455003668633791286816928136261478461782733096130400043214524795015598915402873564158903667050268703855192352285885120915950380960503463292319955491759402905089852529317679624531927883048225318710947198472016586503467607964089102755440011772470764292479679294781550161488596240473616585960761223975040923762901462542225831460997861302306057737691563793075005264541461206223275705580502797557023322875137479854114882132990315621118000560950166204048685949552504072548762327271377397774901378831065427402495540363393146175848643184852540135475955496674566523308020406778538062245030756800271002727455292832304859645638686613414619249726969145451528180734706614313540284639309304835461333779160868643624073715516573444443173694458155681820239037829759729671847233903910899425737465659710007506770087895611175154244630028798918616856568967087022528509820091949025121794271691333251586220644327320995465431060705634793603523609651904381455120407217452213119743502026313908664399871646354215076235666476413127106941080570571452755299827241691837895813501677118734796942761381575132624808777702850508214331058344914112309322999162673037871819325920434193914583327149826974080665870924462085131206391949790155216624120858725946154293387503510734090609002040421381266295918527891565587718120756901973206049746371055755151780417677529855988933457989554220409362840158783263002762374957441221180230933079321479551637260750428759173590148660102333145062545369031639359615014130988732203243922445486327567883639362139700753964084092364907148304065156308542182945585459985377231117193560056632110159083300897557891702201885724049759951107519938833739789516804246656060291674717572358502263400045341939128985910776294847432047790623715766613643743705330757498839837006592176984777667010291807193045424896371015313471718126975420168064328836682597454632704783735630898264647160536753903185369507708413951633815341516279390173052093544556856197158481626670103968021846558812031900537797399656817257987914877671836763313012635250647567616776766379637819362337525494738512273769063423930628219715871160085103371580712944706244624186313655942800430060024563665727977472548562552918016701651000556536393365641152619001639905770429528597953289065937535522962703590711425755446238842238831630468703154547466394095304135687375145810150469045440392163891040727592169190327535282858235847723344722976627410415384661232620033351781128604024007457159962488877274516362335096833439088888397854158432245085729803576529060526644811040865324883421318557754884609967165953896459998955107318114676352007653943000698900089931533594277405777316801965287146431778984975117383662593751427236419899727331874841605241333983454557353849170859105204027823663018702431854661101664381890907102116445972816298483720186085346738438296657786707190902792272566520844368547079782742978724725852512725141985370785742639379650235767512628832670206410743154944314884666976293400514552799363045455985447529572634449974922018885192550836377598692361415633681936049036179920145424745979785049912150262526544487521885402866848229505125414250423883330849435786611283866391715215617555932162391622103675102010212859233284249339527967233240967543022443190406026652529596341647688898235122919638321458573573542402733549628785070762362561135236589671312897621568731045581363882098923766064950944919231400648712412319942840767699623533560823948333801689297846909338311777368500123766343881163025402385379794365856988340913611411396769303024528448494969554140683950202166999599184094068947157655256807585719535863851079558428337964245363924669945101719202485498506279769071784039192025860682512508708535549905593769561796147435256082854843859828100040165702079485041741059350467467934552761542875135284129336931936942530381799691560576018319567437394130299999204753610084886580654561264920480186706899318187218572327251808875450055527270298727358181635770712076507159485812674316558253444891269124103087240196845765196716736782851989685776465049070962833905357324982487548534431801391617313487655225710422678261248568183775888057255463265265121259994912659225698405266019714598360740404376369341707320845367800915050113998373845233752856578818571522250575589733129377070144180780659572624399339820340627058807803083351042525942761931581844235020476370820113428126285753283944224950225089768491029279927102621793428106323846853696073804531183275153634295367884375465784025775003538331430243560089850590531360427788771621784027777555995129185062639101471624176668089131230317110773876038673692994719536488398833992044737084305548915971850212621587890688380888730732843573186689467088926147489767509168115673583536896290756277022256927072714273810765831845016371175119512642639893321050960282628467500787755693173838394577178822911925159795671610488572095990927355643104336300676689569991022497846057376223847502256402947870348739301372574890188045646752036363446391166430744741966586510023816171932541905754364311178071434966995326794465056669651448125619563892139794738873334678248973312958624309319608698551303942282634152108442011389658289761342723039011534501886042533917650516065638897273562833311830069206509397082452627332362803039847737439073231868187092799617234118735544022921153914976328524681296684580659785933015022096239792381841968593706201482622836393568315944909251603847571398783776096212815968959464402838254701916530915317095609119256858314520801803019359793480589100562430896398697018081407081985776713359294407147586903382018116849315871145704225717451880981167894468017886630082406598092192716443099549068582754849843601184607490799190122104538181007938806609363202551574802396082410510021222964850096828868558842885190382444283482620233005688092243880756785415613636382556794385607742757044531352743953689599963880819311915192460935064709873156021239565636605733202973476736609332050302278646828872425010432335703263515658476176145913201149642203565237190060150815589807238597102628944567819537846312710230069452749356547138696214338078435993607141965889950015486182513403201453687166439557844467677237939638882812225529737562187348793519731617570565523316910631764108433806140570806187371324352667713270630921633250121089688194157354572705131922981737885479984110907048719589781054490582493777004055573634115566626517765440246953438424893924812218940334539455183946686538710518346386613498176878872648212093317061152029009146420176762509130259885023973683635913187875320951289109793957099139653594832478808296491509640205586637386393474467415436264103955700478588492313059368802228648898976090146880185113278439683279274917524583182403331887755006386416091474954124492611025197052167010456236251279158380887539272341290791240052661208302529208269216163037990716205440285836478465333545233356786176762978359709463423258152012832638399550264414957285517815327644020901265042076320507771067829020185002081236656675770650671859062663914183391364729384682045661060773292952428630265199911433225288964343148765608368852704723721199994666735789203231907868396009332828312823961087847269611151289504626572455228937383332835086637419648899482758490165614494591453248486685326390740235826002750194023131193030761354752534688906521562103315110652552210546296426018177588753484978353611460661423048719937462732084121844602827009391672523792371564411185263326679744864030733551541660307059005867501267160644810788983696778517315463128342436959001467691673118813256437781718423828427536624586426362608784492885220649073795852397202976464125342739646213020709370888159052397941642614249761679887556219387400969155949314518001873760545401870559027115000670839632695217688341870417991800916961142888729682709383167151125138478392344535239301754531211719174329278149306185771002974183739231181096138279747689689198396461066505618915971045187169573236200455968605021208576910139038732842080769508291220564345793209844394032522937461545040687709379917418811531554677831343399199149208519376950825781142511117483473090518902937239145072215710620528308528773226440028991806254512080385640981957569903412829974274029793992012872907640074392134941934827392373405498799494022180663200873527337221502247780171862409812935352389589832129760688667174364731544809386556194705094699462632562824374784302497574635062403875667164527257367649225844340644545307817427750893352671105648658856653811974535318369823437894442937371519117491018455444046598054816320339285494838484997222124351541966875269917327957910379034084436587266251687596171726918452522980355180503207714718045563470917646303757840351460843872868469910942772406345892649925683562130115105409533714580719457611382534865663247073276994219533084834494769296256600137244042393547692357684847047583807641276930512466916455539952109388699685479747808570772149514543970711892323737032806335285200542494404999130133420350019977681087254816683816250769011741588137953850416242070614443149229137514623905295194974664791614180419195671067087186948229908511410289523645206784602462882410379808221960505527089232184992802702781803176198771443484413272529913997808328209748261772813421839719302460590989571943088969461358198319514794906216386824211362664958904184377772923841809668074517827723938300855518039891009999914549092169645374404997909230427368915985821269319508284022907161006386799549277797816458903942697284507149756262648562702279228308761935094266800099747166217444277928410643660791061340553295712343624699554903337794275449376336991284060259348621876612858378679739946201588947078249121394344484905821816498032176673721895150438367816825887446203831761342560976024883394410796134642661136674996070535087715057090137179936778240150867398985607181906785295152791036410791680940411456925781305326990883094795053131076588572058079196842403439468996462713560144864691658787469475058822994294814338252584981531123887250734531664426332349170305832712512300603277576970484487728385146379305548260283128265864210550034476592923555136580637915627056630198261413369912635163933559045679253031222018710620310134549805369234843881807673861599658379264556239622184602534711659917620757459241493411501452020263874722625968136726516701962433035848196229906139163260233212561099834846035936968972784939054922447266998499002454980373101225529848503050664550958179684699559741949095709417440391725185504225457718507646914475848469580131101940077889348226986142674509215578251700397567671151496266136257160798921675537073852766625974220699807922376019689380718484433605887539278403383794247766596958290410183715171809318752645438080927557942837440891160301706392287471365662318630039823974809502144117194086699759824662011788424929689447753376827706838990979561128671957225323794601426974047196193812070812101880212355904233880438504246999211328006131449025289972673407391769092365984919723697801166799116520514214020917134405569800631834159110429454533237645470954636705977750033774138281481030148112823756566315640486844004985252033628975058477041416944523972808683945096588984667513424710178455941510237801477122076456251372090516464655280757010032221229449981817481842215258826246930711179443647098691336782185174392904912502795046919883560167722598048067784955357581761688947085129870626231286929183965953717405524797932659336447366559084343960325101793698881598728234343986862289507277098767954060589343532026901951138589953103415782228663715910509092856765970200390136178628406804469651303776188411096252877932719893850514461132239498048446422202244665356419531297202030731410679610208689934190642752644342940912763726860319294948910222428120988139137691271685393052973164276948104659079380961138318603923769510018671588699872126279867467985107709601193973841336756673931976915070331820241784447001795493503948075951221815957669952199993850970145634921893050051270954237350520631222496426710427852797004523336229411427318026187128753656058039261792000607537743128323389953405457558455407957748668886101552908715372772203399742360974556510578774126281328774659182679524625884402443604422218433136243318511033599079563232458751995836944114774673003831451888803102866096993113007973892633547690334566453864250344231806932417799444347313439076880580955773997892330291675186222143164911116387352195160274430019339778572528526400512002587455860548324371894924869589820430345807848748668923854235157081701254413150230899867058576170903063025916256965190940663725332225138182973587542672999387848361144019883545384114144469171067244618475542851602359149799162078394595903421352250951824488626748915833743849495922365458369923268347769406428027834711372721198757580335863846818916826664062105437044055038897539300619389209290143161427631582566306543945917554304403289733563702140674975956554128246541890287823079822283645346161491414997409743857941408524178958251122395041295051934286453385120082404308869230929656386592884516908135902329310019870091155306841917808409221711507974475502511769892067178076579593273324243313898147142442765843680576009553444243899250740272057471908765254478239395087272190273108012034177925651200499324813285930753674264854869216263285289848709068629658281459529245365460216630147745760272284101132036594421366401628304556126127815933062275257414685596133341556062414078992898463130942928669744348330891967768732015077338770676888497245977312302453400224655322469212411951672094725001686209264649430741871529180475292471830285963171241978523515180746150606216094597491467694934702542083866023679299425507489001583456640298007565142004170143170834515796607535271663231158979645464631003166398902564057280070472028488833813078167418675069378624983178438740640237916281893394165124380441584330162765988051782004708025106130992334634261254366144837046642809141927259056103832637509728180338428713461152140419343672111906809028692949197638120445941235464333816294491106182150272621711882209135290736603900022853652326695869718561501904000069968913193641549069723430302458116312885311522101912066604356468929824233275828397330519079951486206754605437758465822975066347854704599650859607589292852927438539124301515158403344624841224852175539121629269883222920205426535410479954473487547538305372114540227472801866924139459108929521154561946679751151666445142201085290745266233022330203126626608103626102357517111542417777573368860542502548218182863506715603659947695945656222948441183218543007015263215968982814259682219856540594657104265906779910613913604961086988515612388976856302284456174510472611729872994177108227276618962414860463566517665642469181283126768337701296550151472206343456142920792515786822793722715861130868359896843088655300332013755874368665613778257385441646974724285365856847919356276954668840711659894476460147971251115207254673879168317936607306966622678950571691364919273593846310744441841520658613966882794922138784775542416119064372704986913174639423093349117600311453154362776500905663730862900420688285846242292443690896366407377783556020412165729484556760654134974980375220039050335724303739600364311526989808305308290119202944897305756673530263952360834620463633930736268461950140490153994489598037193967149452072609160273529057721670645912603497654231447267355602878212663815594753374103064742376674115520605488921759828540414146645228687083384154426120515544327000528283950555975569940612806890756274695662522229348848895547599216256020759455970628522934985874181362552863663769963596560860190418740099328705129087698829538484392539570562680295287593827512175790791140802268533185523897156670406849440216601054775236152733159838699867442700842962211171035736967720435091053727150973925111483109916039909449399966845442021716215854320147701128034823056179607635146042213139656331873779279574965612421430697723314740599773713533828828544884823468079217157464969367139066255553303804325788401391596064851381757649184004514086767469217351775752517163724955680047446335764247227163611460195895363062353646998777732669141136381217198046950114238667216322272442774054132252216911293799537249462667730239509592192879847184515248713750780747013219294864454311354020815229808538860903107915330711208874156337146468895792793694267636585850085106210049502194247876317786456915906960345793455517709001911282301881261397631188889737074369557745785239921572069721118108366069285491488986287348111490033043829502169046063778828336039437851720793605081713692415957459366449456976329638521823510528676925657381587513642961716777368157731728995422884304564210146803793457729700431847234198798259881815638858746261283056628667096254735206610586037216372970982227440316096418447161388471443582466284235139603392699831719401917978861890301197886731349481868968664910225453128771331642226426808444268570396906985581650392889324521213812453686066558735921180371677488722711362172038005882993316982692617424128412202980396036255052254853012132225328923249090335738661406005347926682577304881628394875042313012145747941104105780936421137283501149748510270875215363460181376058540743358127222733855785394156553013701619085146573466066972579559076075535773257001717261612476249553910705296809154181055082192600297159467234206301144131649453900151991633210163201072881908710529582655335900553652900378054645409956422652765636526764447651378850072683457779559601316912593415942975336861235519407387462331117975957570235792827091039081149240413466562995451391262250146950385901506992353657216558539643145199692304705517353939685356655163879643379373667191526130172976574509743354629592505727330568818982058612989071598011632476849768824490067571593294420310095730143019836878208850700811287508003956767803288525641454321853423213542833316495896837490388336932891407847257342665759237050391724539018001786753591293963114072386038065481397692872168806763349608340531053175792016121855542613116003518120194951039657086378770491293702765075412495378904015577547385631924559174366920137479647763138734935746122145228899395068097857055044165729940056716907182138605189128688571732815318701549865980707496374127469955061137185668014875708972645006304747709606455858792584509029058899774855068251659435380763401365134701869631387117859280138975277106953654958855683662948608799397943519142696436892570831662862656285185726936325130162257664002432935938804660508084302012194121150464790954844645321980319203440797386284678825352169391574300182405857249013752603443079988304756548707402946400561799589218958898447241496834077512666057480022795639544213701576446313498685560015330774672457518186633743985547509766720625924974861133275411754022382844621934593760266251380679100961945029422146796185889691149143386248282117409969921599814423626663086235020342881294296768973283800420867437656278143627959518952606125261956956003189269207755840515904654175884698674327361599899151916753900928876625681018745359580331410609595186362330408219326096529774927990055351086362245842510473059263035207518398318067388673906070427570141047059444689625685389369795376621944760897913274786604719416112456176013616187709434995278458015000401157827730831189620466929112633109824083697844081267288822941051254470276667324730820662260894823515227177315954016324737695605583309788306063672337362808556255942597545513902814313977470335931089734235117555883324862486532546580548211022823977897138661595965526776195769613649016879722222909831397579675688542433555989825499930832977043947585373944162138181346355820871038666214960671670047728808062780510747093305328897408228336063177796670615934190241891176587955320057009494433246123323202735281426158724638918475913609961243452981403175470313701679900069062576871861289261023258272009055028990410467648382645552739396823651520203000149243792085677765506383365116446167675402995551994098532744565980144323566487923092821227818431972719812197592995996379440970692995388316783632564905848987624996140443148998103885410991631171074006802033798434009006848534856212059491254754749729050946830409465057412162747189286380009308770785057601658294276293869386271268085032497827791207555606774516236372545038759866394942294321719729658159301032745470534624237159728776404184337995394384848913453208644997871596720859576134800122059320929570878103406404876764925001161576054046309893758461484866026150132125110075530287689881637727795434693981898873086607992749984295797859263265416797142589054836761247753484473009222087460817852780997786504104274112261824510905564374394590921522684719840755910618973448826833401882516626713857449664485380912341516958541752280215659111207320022886780645587396005554639881300938689119928121166242137602665334224073907689069481328492780228184539797884251510943451651990560323021942733617269391250211384010837681237853505885818556949728448004769789986594048133938767422761495931929382099314505220022844921499033332321398771177512858666288655281255119859321428591479235490537543022838773303659361137529416515221357098008245089718505328551634347918789069392443490662563754116552234620270069048384283634699547715699767709565185776987805168111973636897376790031874660344956787688165008336164375057968788511105165056942255016838561834959873267499265232072319724824160370857103226937491777690514833842681623729440590264243843689205977642411902288111124280825854940961212961371552090652186385489137174414197045642994580466581144317995254054860039229490370877940419723735559648000228471467413365107621363461194721479949639515774843890418209780634268777439620677815333309959191689746282685608763702860236059762918687739018874606569691404508852912643377452520368454636261157297978010604879043899420114336236355692860251276148426984373716809162195354650620846581708672467204368803780550575720132834154361254509253263373280713703494376539609277533834218715458965163551297017519427934413046944312601044212282428235981879292349207521380019064001648128367871134783672787280034160711739507769418281611980395541075429769637209961100171630221230669285093576315994606790121495819915175314873729879556718954942670632681850646987618351098216701288255594390120156113671782612275729941202715909669133616632524448238307482398441494983632699753700443214539372457235820764731847556475627700149431489485779589978625638903776386074028281024060112408290632944274806630754979640001292341488751245480652155691819996370736854038918224198944283954401697173305192760461058652078345802333635677707619624905944279240900036462094532739761240032438720942640567920601390072191207893788978737137785416302005964071535667716368402880904942017964484776630837725999901793553593753825598033899576129348869467479667382756543223451674871481130969174234963223896463913615413740094310560608764633295214491157961637591595522412573193569368664395057760728335194779844770601904872733237801456859371631128862655976890985162737860609099172063466207731283868088170575524920689722632121788709535122552129600344804498479018387066933862435778822665780103864010085122855845519444666695738590688849873141272051587675428118397767702229093076098173364746978781165177116938064030382876795772249061679014163966873803497125310149290921506623112757799872084694975535255942260013595054162432917101674420934709059894756902960722828522849463901046165492875828354448209739982563035457416615921578633342756595938827881583052911772998656276738579171729893827487273786779601649203178974637319635722477174578147086561197538244062157075968636587971246602905674421506774423184135329868988606540552380242140355508072022014784330729613469876648265018024457898172110442439043483132323572569381253507288189347681683743108823003779754727920252154019512180848991300801705399842313445911064951298472060882820971108146768404749485131105931047189117061397105634371367168168605976935118822083960085333151641127453880504798676700345385281395583043024847546166213603999899218085175375088932947329733387470669363244308839253527859912119913524163973296585777240804665454892837022090524537709490963515876402328738218346446882074886333099872027534480597032031166597751786942034541457449296035025830155948968335042562229637329421339904157264307746708288259447195175814355950893047975103212479314998505902472333774535529298203700475423499015881085322024317598627437720427677951235462997117377547186647862038035587821931825467177327685544079624061160139686118795295891721663506275839318089707988015545905681266682310186398126994154065969729807566605068478694878736111477824092853971285953292643813918096102964011878603969252072752276503338088921874605677174274510482866982903450229233712006997125509426887600156466909003104855484753456716932232000579594735008990377862443189583025014405502534995563023592259717762732520984847647401610124658041992952633317018265777518722601810002827129019523642207732835929258307775417815343526826855476162838807496706632709240872847507397017176066613342025616572217051196526779222132412851004654821552627456677627564405165094695150987956906716817755067419212822466080880046207661837469329769120728780656040783802385146910780325500598896241407517299212071879541686114890775605237699331253164292725100260923786609166083538491328571411458344842701044936373337230405130710424394375167201903065468134470683728344646239266840357893151786150733991672827561599117731223130059573920434599539409430970397467680702425223981657182348688997003609947669609801801824122002285237751205038519458191464605831101914492975907459166769700155100919840579869475737281010039630860328590273257354097470054190827642200223813254034136068205106485574688474853211202390689241211448483029533252579532267764450675305953138306524891918540834185937958698872285134081970525969796963207716462187200472014143741627703017103606192480727588227314166184679907702527593836601987306504281457309448321594049064790152133868952640982698286359593279421331625077716910206245273422668533532307008536669063016887975495598452483477001909272454454404685946832774941323757887273685133874002459597647237204046170645013921531054409765289846382660940054711793029784670729035324740530345689652470796679067538386659657515800716530044233914817706387902051217943055387658630710808997086507461619023457681752036088279145833564553523050796919388579647033776451976869901129334834777032738868620287226203113815398962116146516471738077296099394885711375273018575972264833078585394480433564911828089244838330129358328077516515866685059955578855954992678524924220433929566550812962430688874331706486204118657730480912049213899253639644219945826769095791154145736912445408952472670967857098368627202390842048885140113407788432528962572661361731664471244206133477461403071183157192522388034797920867192025668169209378390443266501338921252570631456801625231832775884851579268562767353004345839912090099534109665524217245802922325552013131301806087112673959495420660032861524413799333343725497782646233356716615701730787291184477481267508519569206307391925046544999320436434734875137241253824067577035525379402297129596227731400911226730658418241122713036275040594360255437852114196825046757132800710175052537420850910534802896482039733494721348728700203978775308515247001591584347031631124339075301435733052260929904428481865269882573297807788289960339159382562719777667572071743412588966626018763597407935706843756399669856893637735853965485186188837556668416705210972901494138450095439752837332100705789472813477589910770134032576923744693274172399503299006246971070609659958258304983367896826206968151417781227358559920684287418281743791626261702347162145539283142184047229425008146599533464143633914563355468350085045502587316360574191724014618942557434897860580392533130218466955432719166495995985841954509364925566032146131844792352115616334762066676515757194034489491250390572469508127484250347669687653716180677233140439701321667998449626240972052205639977062833655415515049074158373742148596827611984831534497453472790309612842019189992261646830947081003839507936772273327524865368709863136949501555412056331924151830971197301036463046751788786838811157101521424236631522542512533943706945049514514814101771804035503108187966621258346189819061418841621549182200115352947986316934929855259295179242005763739798855996423958329835961321086208979797318004520380966495783473409505804383923979515036486514696836140558389764324206290993423344679289434181905048455391982269450429607568825156318875754045617249326108251521310250623065704362467345865313134083275447734529193518896484949248201030046921677268697426030803452280281445062834354093953138493981900673220374810455891850040421959700046135594480335648661673315809734424732603996285315930805199122119324460227625170832466047230697595021782528341657637206726771973244524767777605692047565351573844060139089338798652066601899716337647072042966162343932167725063408944844631520014653346241828966837290850909217760739891766728815278840249338874678360533172798092089607785574451847767704907670480367733752934412481641773545082001419034665497399113012732993164240506205745832465733123470879824323597738749358034002514842064828943005435896991799706714166806487107451665886355854126263599361788018242572498563959695579250387668555843328181402272360270757783486363924056373330297797522062173827096750530673685779091609502151693064305472029892384817244899229486986414077449858001894054710918609674414659532084692870895569821913174566131450805035298172803156534370673769784563556428678389249645234502582179916147684995934137682099570357584578153768499865933991014908812550634592711666618552232185980970527323086540439783832373788588960376796949470901888729390686427714896109767243953490466185188775877590852172766016132249176027000186753864062783135558691034085459394407079223387645287676448025702427173978746525376679207014275109129319427841190672317593215079842718032875818080652099603570268570926039607062528423475657837231513337549699915199832999259423578234665241282742903340068624784663984484272891393116254799709630916997940292280234695603865107093160849158582300345776672580858314935828963584333879966538990634268690141059902810712929714059152207778303900470054106181802304039044836339273846468246321233396734456504394671604172714852098552678458821911416560749739508243060431066086337662883911452847232297722256304163887541216134755573325748355507141547200787032393530819731937584116523043191557750900900115789366842437742553609194542901968405554899309418412297114531485188076459432022578638925307113003655009454070342207717802325233095346510171336888365410680274622821310738924357315668622647717128731945214298798866138394423037430022057828868904393848816847627071961627310582312482663773526508404083515789376057652188332827767280482578510221982029901429188680583499440035450712554688623399173591736364562273689949022006842787489595049439881717875911415950531818364019366367544720616650407931403613448219644377807498312288360905278041811570899386671889614567511664831082954829607111294253389550458970127246154293776912157220933798427525102409233864649469356025935040932929203524038446262061750967572760081981984408749520431490985836985694320636472106369564656948783546416522231699466776577265675849739610791824271279402867349468743496422768619407579898651278653022642282989820442163788610790958997929828670684187478484956308501166497261881545151252281850499380432683021141496693592433369318645573096302408589322675076387306883589559618826409724597467903595830281164182346737646663903113839010672394499864755368688775927561926452825792716585152297478028339461454549218595955867865216183966599954488559874976979337116298098725871565192606220847406942397708367220221535024709345965521190053466392427830141958088541392057610015244941291263705750938609430175401775754390902908225494702197332083197784746113805466927125635010596908719836780080889107534434284175051533811856772943815099380195842181095556069566871258408063198698770582657911783358163208181626680451240097883761853620636880809240327506182892685782245402871212602287759020710315383046309042593481441379366375973632084524544697692340268025662439718005546990519412684229701152063623113709502258796725258045433646342180325744675434110163248482349834969256080524871546216603205338675559808710407315697016542939876064157158705342788510907660980814899220193006023493070154288132582369434584188874888403404231003662412123348588081399820648582409993631789027750267621445885786070022214773651619080187755234003388277012152686608273021481174893530682817640665701743973323106738456505910370015322098097477761481446797406938625116486384244355601807208706024158687765155247762072851657604943817172686682597881957283415188930912480093710065289620456651013107563582016930470461391457686464392459479418789303288021698042164309019004733229506247918523138214419029522686660043266493604639844200557071244373224908158512640760580024699655609131890314594643318463930315525897563520369296475905725560980722635467404961132497190183859411876021552872427609760474387117011085415665586653582570636597129698869598247522714686104520152933287991583147896547135155479734478437459007673134799311725884886282351195046513973322254032079703821852778742444372441790700164597443073175012390656434076315888930176016176790806369901124814827532570041766774878562387554067057570003460835167209147016568104601716702736260960320872450782466009341554009783556984869772247998430338987283905287674127925175448899956655671828795583262825911767602700008146147499783536778388706987354559212045420347736036063214582173208812292367602950763062374701184264313908533923872363213007160966906558749430060190908377696983411217862794112121683623809672619417768904173389883058198928345806833103860631754312701735577657939592960988688599062187811762546349717632844638496006276170050927923346189332650099643890641994840435515866161941561448808768323772463485729861776383734795696802717946341438833762803640742512104918553122282422548248087181712409419347668206305754569401425170026898164783874398173877897317455209237806145843628128361051162880655792997968634567610788598769939933644776429465024902394114056292432114701103533881692369032603332351570456403299686826104346234777846213503107050161441215278380453377258912116585615784091671997685338211729939167146977370038645877503243924480060826658414841804435426589263196449702812289452532685244835900337538763108524134297019110314862496006181298181221363965634742769395711784804898576229193514310278082677745616478111374660139603859581257761452282662517516364557303926875299268441844458884073476070856849583072597048525148992889163104259025600260790716936141700461930096465322361949663826577266566102183125021431708433149304382849714953424557644825792056618496917921774883004097164246431266830913680497289445264096917437690919673915337443708074975059395689162109662285760048557703823958428037453639006173046830524094166252752251380825457210862412875749542611120969916399570513895628683610856093331120169241169217388585510891655297027408999971837459723997461524237093951862261832635138551505782304606056323873902257753107274725119924645982891287717752646871073370288579499150684839122835734650472061699434569788460043400094393646815490413973467110198900840877172511735316745266121957252755621129657707494656673197421765595627981949034792536790572853359491516069495462603473210648346474382163842415297145010197687427931699137977433479962061333102463848791793183071168281223078178729971447569447821443729075639260502841499682128166753301716139826421454477593425007071875201777055436422998383544428398594786612686088789106661340746035811816128289425096099455757498340483778175103765485677671422593731258480184969986256913479402119217619800425703142328176814668970976959635981218662141251399178251434328731904338021749455206533617511525301064975651913874106586949436997074327899420322887799951518413232637822533451179703827640308230895098616743120588508015523032106399724424720223778731420774459322689133833593391369844000497495682951297889965441177492229759502735811529629911408264156531113992767849946448454360304490448626807413003579371128797906428425683607516984778496785566759958057499366429453875212698452537988788598931709744302206383350637592034553180287664716843595826741573179243705811108234394069741616918394353342294386429373115833415821949607157972289137134328101142038285486934726945141140911595575410421376667110810451337429027007578092844640162242569200502976014053000224331299336281684157790082742539403065615917266157550153689464989267823106569120088959683106405996660493716899457004785898015249012223221758136787126408946028211454035462284585226656500002218674985170932693112851946281643558199728935976706649926544855028789056086539474486952573597747479616441739041986908578577164595729103968146383039268689534734477949154695447641495300689049940021136658939190431391001372823268099727475960523227714023330956791213631877753086429755524445215928464458430992623852507535222976028095042191338524805390380355918783980654004387368371156099619959215814210893827316372651909411783127508131173297689283808232765432867305968730863958895175270496642936512590137375617642544156727104369321184712175532908628237935743147467725815618415020870074353843597475465296570286330105577312588261228214142525384433816858604470742340043972691420028047182526149689835799314714081034022632751628871633891991421913696409328460900571612315390114705773567759578380276734023896519964554747054765557841850731337208996935650213734163199883885190427784054455152625343372643945555026030071165340517200929495664215267487500574021979850283647785131996621314412394497091770345628143255889133615018664116383172122731007240566654705951840245927265693977860505382536245519282599937637809470461798915807996611215678261788463906867657724771629986725705473004915447641197768594441862776886650286107683562374643818024608599816293994417332624163124998483204393948549199225922504807260472948827569317289568546842104775498480609426345308676729044510139095519285856354942470378184205398097828133704732918368462006690415312636461814263938885723991000130572320912044528258836838066110745560684241359519247964670195064939232955770507486419894309612702042617087568359957046611328727504918708900589097658586440803049941342655641396233703144906469514671353120153787515817283972830634364988086412158000798008122164272186190461300388638862193612754418826096422131584590077249587853204758018085515104018752236336826164911307662948658664583198521685595187126970882305996924480067930748862087963711424537661747354284649698849168533967623845348370480718258771373981372904983233747470350339567820997097744995694840906257321770234179969488697346262012027267692739293587327388474205281290319210278709629415684254528355675689662724417785633373342474960154770626707483255563839546986479307478575211441747298177100459266562420747609185034007728679110370593655890184861171019493812282794791777516476433871276706342959012993917766215875020725124968609532034597974645699171739746179767364882952591076689102066630420651071300429009333128935408916467897367573241110939357529338240445440203118304427514921666273700028332794964719577871305344765516299228074949140742917469591332102911307835627340644844495314123440340333672114945837380776413119134577183691820740351359922944969089646472019971514830098074528658726587137338527034866050216005759916151633192593609481938997256304006131947705417389683230714944134802464590638350979547531338880038991793101561016744426224566743869333637313119340561720190991494677974045198551967313779188876635610854018318999569738918701120106851219263226926872638356904419381207144831094181122061023984162548056050745877560098023309061971118214105877059468833176585510323200793981110442565060790732793528106740198795622743142067701662280977515821960687310785142076398031561157936718959127294426680061176722569399239898187731782379394245529660407009897468262903515675732230888929644242079235295828453403217242796965915425643795909087666740930183135776303955180760608791176573236844395259963309178464833899978051627810877842562536445199550175681249189436617238653101638700060715496098455624707833723990734831555451189720675855242261090883673654747698448933166499255656456471658577987338459584551651794966126714473536263408404449845798543823135713642684931125912397286360710174378696577116071474859144481640063246735844950926525644513034210017774183081826202271375386960356747467583578441506090437397839366549688822956788971040983516239115266169351502942172175784247218777838170702630110664231174175052401716271817522547002108467054215368748759371070906314382991184382304113789498515257537456129606692714119385290791242010761047045808420118053938407767916627987824512426098633421453149576680885723139530613866154826786641916968904953140523460324931994953626959041144142702471990465689926187318408897838229174296941097751336216568553824323006218951820589012936736819947172687271524910463548025236936313054168209115318952356606194612615402012230054387370440393754843438461345645268006769218777232891736909216065805493793442926862844654805355063984804860218983134554711138540082354623167811583330041597648090315007376725184572366205142399682435636688650083747415566825656193933053776746023609611794154488243171569945156835441390036245406434108851090580637220849914486122478703481741071391408582583993360627237163744266824751004161828478733585147195127419294888722584338614374024176367037646704159667024739508433010539008216419719382286771916934045346630911906664994837666996622855948094828383025916856804686512532774399032002130437429963651610292078125118491609090158610655688144658301741202948370365834182746673041193632590710569142560921245009571573178297290660129433786276960949455677681485360636660416995550983142170516564540491278382074627104974044512555389846801439971935417833477727386096416572475825158922149941824087553290444594139442345376905058688165982086205521280750591023274474838564168544714794232850450506748868226617192010215846665581836866081715180859321676285663536760772973204561456026570540945024100052839143566258094680474260014463501181898079596101208156292860826309341219074343605820530561262929533848158561525399611691413288260560782742417417082355161206604676832317732564221508378204520474288794347023248417192014218335999874313556473786070499652865370374402866812232773934931191596754930361494249273894611616788243357026022937762070044803589029705189140745749248707499376396867977895121769574048216148390615862364128108287641845181197767162398319903504347652190386056858098312255232510914753414847430419242349534355588529533574751523457422614640031241526724075399944257425974453742874694984114578780320169798033244507323741393044724187688726630210879155016126619669516593004839580393892664461273221733029051344244064883649201069016795414617304999653554003581860106765051091191555753672782399732615450358682702236871390678988621825828221943591911983267856052751914457837427427440746434678957535857696336320700553479804663806260425302563616410927105582656224686590321727542546096075860361650183972546388117387286138474737365062176101974535938142540284709265754087204817925541417741248299100026340710816172435562982087917491836116416366460260820708692083760084829384487589936148834676248420194654373230483043882572365346024662980113697424402137940090337262020995782173636686814049219208149564456853022584782707371181327703720339228180425814851394743127663950308079219579634328005486443690761934294955480881115486741926890918042546977929604277001511436899514704237704103272065931405066596780876232302545221307347772765517412125841058312809387105611326124350835644850082731681771381895984990616101431333259943761055361146451180942297832366960313807899484327915500377825981137248017873988445811572071292237543743643852554396658108122968538306852629522733377224502411464036968975616598373892160022652240745976750136006472034088034422692059377789618245803071075337771593671471312861174964020004019714349698522463075554693764101914029433377157339201719641210463290590399559594529982981581031013625448358522948434779014020661268254369861239514513958165077653565521612769626924925029881002988128178903540928549781083177988351459742605317402553704833921224301933563611876527647915724749262121415803318187411594507392411657693485660081609681112735874760507541248010050718200311442209978298563259582691415300509582298232353206269748862289795569663136295442957004731264077654157648955646786223621731855550108106963601085191494237034533756966587011465353065671054516343748082025481436940489021812093551836402245082709479025966772559004995726840311826423034322689929580961356993693909054324500360967136677830712607598233692104776081824876287553385560300150897659532149512517500954206561138472428794026762341103986404414820894926749803110288265625637698676689631802964276621810812688263321155311497480916282038520227827843643401606593861100218419018003253215454563687508021367258769540689105720994843482099874612670076616956344415771065208821256324172078073455250725853582983963282004528470823554665447882588874362619643513864890160891395886863861235166082909553656494424166736359786753363556946758235571053564947885271598104171446755072944986837428937685420558051381558471121640294104992231252005597670719860226610164781999804022699759780340480548919812604468300150925740544785861624406098811919632264471032706013669122030335807295994187342764278522514307603730691659290043569125554812157578882347802162387638197831015606768842784752512720839581449361030920820093840100621806290483241201300739781801616727768534453417608529044928061923361182948942655447834381650871564563165078767837659946468902299732293860768648373975268363525111594627684066151926479929845742888312951441363037727783724026410350587308732678960962802422843148774470289771240877790327557228805935370300574047981812068848778200576161945935044457327146315817481523829064265817829353737882432867323127799017296815942000039326829515561234161676776060295332034686065542423233116353900287891195611570414229841360285579151948818930772196054340248174042199446068768259017148681037846783596417072164121894269007693014196228745488246127242838156999866390833705613392843932987238993635943715562115101063705886818165283681251794128316873137470602263617672065291130964359090796257784684639296347943168766795163488374918930685599730454501601145140391002115079907751945674028666413811548361950840929791636230069928731936441517451430892329728458749742637654838747650285089754090841486450674042167187882487937373487212574812359873842430817958554716471562940990064793171217751956101892149421127346321621258443235706857721567692818072131269406887960502123731968017561017516459848336711388687810666521619455808498598501309096127790047936928278932506399624748897448057868675459356555393784352514852553426548211486897468609066195667065101132764884248864813229070431271150455397668760816644282072091827240091361823030586025095652259261134196765085389596022924352540107208571293268256663841723159881068763972870717802581453477047449201922436659505808364440000313334184277539583213955517125307050088496575756344697775334292939815413349210527316381253965266857032161288816848294316857101139779162290064552388271877561524509353783159105898195141036064421947718070471685028818813237767356325320991759216620488523019557672257686610393466627988246247472692412438962570493313916347304267267462301768556200024691290442221318076866837465604550041981441264136425104014174809738069156333486129039117652143746483983607168558211256043700138730541324403671948782966474068173881025394739271352614652614474071090258435376459123294758033527849390791399217246176277540639209392855834580669518558295230719232641953557010436481863864462146398288254977314919576075027923027952152380779426107295031380298679138325314997806267663715968872503671302377321507967125576713587557182650091052892881158622798973448114693722267781925610796167203883448179372447753299465923828275261390467202481680604797243557743265170861858739033217052686082642647793356628178445566021155567966485075606878351444382906587771459749531675009345304734186589293889902830628178346182168476064387853481504730155513355095625754498797844127170878910625579294680906141945061854185389111213628598799213739641206085074679218904019908011317589550171376432939504959940876108036096665178671747610320724193057864911706109224333973715541833809483734823130310278201186837408113072935210908951860573692824169865515303007167397325773127720318122188351299386016220209701228143894254678559444828476967540504304676046120115345205736964859781328169148269508541889803352108253729814956061605051513400472201115871327496675478717610466455979571693193091857565638554308219993619261452277182341559174208606966665294766165791808723648716729916046953713383950873010903381684736143981401156395384915355771375310907080323120755200969442895237082171000011506473173003486681582746424293895854619305959392678621351485324173499373312026146030057372442989988460777992713627106186050324798678207273741548220467817556848492463489376244655627174524926043895854275267931547242392888660932020920748008369196719491805056290345652659189652847036323208648520475861254445907235159729262559822374876015327818912440797965473518811300498451419626403519337318692481655765468933208896012915476016180265128030254487431708644238056390970553957392600950292709777954570543113287922412777905542788200805798594296417308706587776345160339383685502304840048087130815453453630755836904924851007103813670084743172617313160452631000079768836302582430321758277518809814717276658728551872949605673926750155823815011714115030479671262749144221791332308445228730532649717877383617321431837626483984585231907961733408654944872317184523797309745902767400757796135667868266517095433541886857576696312426121827967337811901368348824697971011228434070399384969960130661195970448303608931087269323147120031729487714899367834580177213992792875189855314249825519878801820739354843192839053202309223229317074737725983553522760723342697833471829282776274998446666598434690535780389416714444480027025713764571112643900432475309227698643648087645278116198408294229290928910473775078819416073460432671184173294254967057265812473873557485787845882599612372923308081158215838837943755687243696715136713780507096129412806374376477391744181932795128954353875621948815159355357155042758388733919997807094294447999204219596560240232750616969372312408129191540054254876409969931215384396665382499344430778222492072918410188448090937948016493088132027049695196743746662925312792109602577219400850051729426621609101092374366974921092178019822139365819424578262654640588222011516113586935174605425157262790062733215586491493708732707228034193383513213191063991428327494090183631672099774743078884286697453429298364183093758106856163372902777852395046134956723093994974537047899040845993334987763443162047214747399872269211650227127958226707230494369070454309530228575207920178505608194405689805547850345970192768068000224625838207276787668114581598483217127172377647207311034583173944936003806433379403962689506237825655122297362873272797530464941174835593511362380023250832623991889702951044574577925155004745692228986567870348939725517764961507002853116169517770977888580061206548341896267596159987894933600922227814300170874910931738234435228331774463357955140840155625518138459382741546077588910155685484914545651250682134924812454416760104445393924700716313483124538032174887543323897714431125527491284735222674520091121442329592660394631533354600309600928706959836312814701898457341835110676529971995750792036536592431573908690879006544244699710704572572129634222650793171168264730616376892290418010024243106419615018621258112739866163300732670332243984905827950289591904755134072670527141497047488568649785589926689347326451144066469708930704240663945424228534652452722980113358502856783005337622482256231436436044739636829998723768976783082081017575474429195116880339844700943268329902033762160607906869632346790287957014685579502769031041147348947266989157900583163177199612511129121003536922465739039328641362719308135980901567921778535783071832837353799654415340773734469860872727700510017320366361535747005060880862405369199456041981356770351935510856047895678341290627139817123514438469201973987525808204394044134087707327345336632287875716559616353388153697841885881866285970187811447534425139130083298099095666787416810580089318597060730207998732031326586886442100096423077074166873385398696013970258735311238626279628864481706257101244473186697501259286873001578115412431336728697219648307141039699672880404813610796241065049243804973097880798265946337624045858905481431376675590659945188819101209810961495593819662508890415183269957954809396232416194206503090070807013992175311585104510046744633684325645258583478235500575966307513952354910260996439136865670359797157166143811717976238684734077988555914249936606884488119848698287992615018419533095623165824907690754577646839658993854126028586820563788738785436110148415561080352441191730020694533583307255698960322080973861856505900318251191167725646238483326738505194940100645099191124959602757963100267390844726109244162558275482106745810163387128821323300149300338406891608404689385236825107318006775479572920968604492214391366433307036239392784431242139596278266958571481279467946408588805596914812957470443707322178837679938644763768311315269983072640251175016775773363980800362316762711029169516595949130561410247673701529194987707537280787476293227551121244641965804986583180633438082655278651429930509719959483289934499210923582940388291663647515917333060374037296745180341776872908806080649369820788240626780806943143635077611175566861570690151011205697535582686764524968077802258687351100030312886658522902860594116941009735087722362706906658355765350448576286780546016783632670599795474252681323831869946043293019278225042972859594450461464689463722949963458938637682014977831260234442271133310263491532432942651642655134064440494153193692596873882507406851431925984442067221608595740519888459482621399010302202640340437510401865835001712957780890419904566934328377883123923028692285107331071507357697388877799368425264884438411376659850973710276398309107742413241495020184145059366381628823207467673237690514632742003980414536218446433485731231813874517724773413956549536294939063713164954930452512499927539574215011845728064803950250671661158932530114994078732851985334706445268153204621160946460504537043244915667413147479080726122349375362516069264846375729337777553233740139291462108111726665584202655704172614213854819519969433688996805753659431556441798292281167381258497189319865674626652561156924039714432846616922663816107883115116297689069681116807005905251778448942173974816254897420603853213718930027200644738900274228480688760620020046797964443095460426958388434644199612526788391486696254950461286154164935247114259806847630233312187411247592786942541372739651802599105974142714627648038123966439379877031190894601427715742463450768169632291010847832115536711753569396609797215721986902782457752486051192044583976658519329591235230839254163420085669929794296560751392131409312371734219059931218747361093706467500572806730573453537933627377438039338051361710901952087527271100774088227702949883817992743096979998375671948853622826844975291986765815203008974765616576807949773238773924433586147852452793028703763138222332483321389899557690462322752381129877972507898145728676462430077456387937835546308455045251139810236440330233586511017349431157794309961628685517845169656702108592018183811830953425304548625972368889263452374780736736906602653271614862253396390733649543066329601601005017080225338963764968084916977072436626704447944318441271433062939844714335257486594933345678000445715790010084548538072361334162848895284366476692830278785207240988634913601938357166206878623932161237156511516604391757262946115930481691544779229202823418482488245122882859005917080052789392476571446767644542812082585456759991583435238504992243324483051635539227104901661223396941499926456168422871366838434202573690583555401552949473127995793822342420487807772801788975045419954503191569909250670036342251084386136899699860917493187336311102255240497905039587818155809109135017643837839527292812769650292818684373252435997420169929498419689229518860748479491349243764890542592136507995422575203402906037065161995641804878412681161127182535015338849494223435836661492535427620955714893237236704942224482765106600565852354776420121041446352713658345412333009164198636194850316739979758594728036775085869314821010044157683659760740715623014082274667378827815532780675152284678128101238704617184834275859682852416647543344113984181948696655270459684512165923194675437058265756758935076378971063771297085846588141165625270135003708906378189122921900678832789827489692836685667674735290856541062800943771699359546604091314464020614508159642175344676554865957130827314862841163687806472534412299822214765248453390043666320430549586942241903108189906713544302080367867663342910897016247187329695677810377228646842948314634850925760429908970021210516860163288419179119313929947979880190991552948100834732456804165701847506975412799397582412457943995086489754979678012656090791420744035145754712593097781416002104390695609945187954480866315223825946817427807071445087590119267337388656560940398212817581833328449921022655566521799132703043608645149942238129491998580147014021348583346191214028004120070281645384995121600023333799423886926739254989335971072364187731144323115843336902573685596265234804840750127808070280610591594174478363185258088846471747333237887230077439334236985559813770617503288734726273469009689727905396460614392025393113675256037525908505630877442744932751857957880120339213320102273026764377133854678846233463746648366235731794930081801454981331776789348574957971893550648132273910384957363825881070713928282225585286172162774561835730565160715805003988076240572171098714510676585295508770592683605686729222168496810351588010922976629271839009412122957356908446301818520387471343630779561707400142822734410975521463935409759812512346375460415403834223972045612450428916261550803909591067736095052082198315573233583425510334387962137041720770241640418050824727148612412464347338280156548564868278848315030614145059216341579603334345018005964336385659381153830361601709616879638737512993847578217338199357013654872493654842634175416006611948294043254411939071054478280511699339576097611300480913728328755745425967680660506488586843860404332742394148777483029437058500511502106587596856503855268493029990714755866325984872215377877270627170141655442860999053349514512967055921804104103343088735242848180202077308909214304115423283175171700951585618122232924734377248511324815942639954717162036290438610042890280613446050697146814947429055479561831191846711783092494644353910085208530746349361336979893581373316067841250515941121097968323918662870559877347250509185192260542174246372482970042094883082043325976470930725638595391870857456643833231865369078941266911372002720571093973276326772350486840354158074647714087346789138628399988934260589158143926703186167965792776070836268286797379129191685106533364146913204370245901388636917785250818180914780243874875317039631683401832083562343857538471846047489676282572496949964423201085495603789119805572679478806829888220415962252403104777909006068465084156235723458499368658526526082359858303228169754898293243206384060065792745797367513752985836009553538395990770428950630593925787130670405007136768539486174287090322898225008341222502924063906043244800648328341127449877270491063973270594410249671523425797444084399307815638379652363717398438756198686863234085430981558487390727715198147983300606392983703494152714332046457197979228587074221076253555580805606150700552376899607762061384463963622368501527789052234166712654456909175685246012081725814965607016458989552258035611494900847944273869506251666504687151848833768852421819316291529423570426548996362748245999416823737044783132866816666693152080163134101777811552200088771566989838965167437960107286571279760951042656548317251019297720533391977829370919452215409611152717915709104409623798074386146099804006632748842599994237429237368907711160962794343672721652211853848878469203960694452840350551617598310506095809068601919305769183249769480642533443801749898407308246737615232502861207155823670056031241177973323460666300893533836691864757602799205106936450111188369801447908464101761375024189734376268241493021550911896505983581431908568630251768682149590653167611985680046874079898324313058362921335894329868468495514107216824434198142029731061511819745680146351918045929178588489102342017843590075820565208696309820338016288815212165968932880392952779535347348157660514202394409530773578679545871399874358332841338088998773187730864501955680827794431336557677187307849204135959916197649086315592252518541687390635903430910307969663004782795996223195318095810372932706349462341363707017645731399138629476132085632152696066631910179485571175952170693416907515796810590068161451726251707201417906046025729820099812631797105295696586567375120179280508546570446418771439154736257380958883841522686909508138345635861763738606836375450266185113754204608792767672422521118175899349749679118855514477331921002210661473549813820165113910357409540581870941569936634012017154492633192175151087821052505431766237148756807649744252382983781894075526408784559124732418247577802703537300494256320659246154388646096640570936240535280660718616629599334629897218110761146100806405250399769795081634101706604141654506434674014207621933113627964006505526947067168633014909196257339371408856469815551233459105568000054037107404043826654510077932420210842275645772263412694714354509874201616951834679145733514126531404657519884742421271710919049409409078918124355526344124166986426059723164351261085507287536924728473423211528420959144000329313788634298313763937903499498064750413770199328740968046495632995147590766396154628279212053080737920878421591968032775328723181584031863588608102905008597740519479139876825833047705267842850774381999090841591582699888281156643726386920628740450833055991176631501359381336361630903371874978413884404319698069189501108420376831073819694724767748505389484768658323970125084810330936124597704531412241548801086357935258956646671877998536962051598443886340391671228548514575832347410304258498919458279703147540425012125973819313519762206888268921147967336753813098210224438871989050193865953157055792068713557964326494081606303484351876931224194918336059481964897137505787250304335603485805058627090635126248822653222682516596750926035040543705876973799104800324873235034075823514821188726838698503128264301673649496372270141733340477367360376083195127962413896272743389698781605909412971849898308521928068522494110218017765366988494213566473723175839527550785165604861438224100003335505386400490956681023437131919184261146902261532462084172804043520823023296114775802117899113460094012346690214368478513426453896917344045605121172230623429266118386126111719451153298101138186107841520794433712559528053165275085273577519745521429874724043456485163128455533925357372882389273469139138917065128613743893989858605662019799962499363029185069422381891304409281458615764375504516614512841257728095444174572969409799667134552520182442217676178333120448646259133982954405750098389332799016997139714973713293898847218479293318797222888818017282771481494324721877148004562072160444198526929377940447389507704885362573455681570103222469496447402860878679149203045457560327518810207562232688540476643669249391452811743049958824216667937955310063687498347911857373134298143341596969119226591296045430596650942825404796163779012066726741805391777567918559766352921080220931866077893500384960115544275537407353074833846046994095895994241715491210952179512613162440048159872418090771455732469060915001988766051322498931433640117136091993151753263919678377294910452652329353604295201670993442872550516117438990235225058002631413148395588381052055838995478142456880963936038044764744670133469116161747429603940472505816906701606173486372184412193241891260089906619555657738688139456036187162813146792003518876629682196671488200479905288829530497210273090871482941318280937291601592144223558687156572345563723947990640158276574188424330038141826458601709806647522257402917289953602375900776546871490082541887935571652604058268578193860466482704770005459095080608078695716659286128503016346977884332917312276443289494076055502452588657961581463881133653918778660441868244167574166527257182484732991192659583959741977804852257874374318057977219632438322457470569256010118147138559868738653734106697924327170653563832336885413130330623285889978540303114140714618097550508786971540329002805136164652185775238089309085664991972797000434282652718969228397443756627708410211381819754023621303786400338973339244673440624352301653222254490453170116106311386001159988868862088015628841668256849301537031959420994040649017759472624445020203678304134496940971425370025449180701883782176353642191843155550208320329049457789120810338826362980799844648148540366465641482068682477764359689580458587003801945795756200976814897174659488526096177377955332390211907464798389625446780982646360735056131344235741254330323577264546824104855088237637506949849808754398264013638806251057655534306961465170742735713394295330605840372989170172804338200240338945781202304170946556003514644360124794202076166957587997856475474076906268340133046601521507813816650434556885028726553299992757658567140908735175364262038528855892866028051804539033095109652108591044971251536575534145187659822868784563291240135580081182880780826419863262890525738458913874416075015720760470471898700099316997075441241577296538627093246817834457250999358405484269818442895940035708475758126771761555564659817839352265807100293417108999619757456389886129230033349962440015945896439486822451457061383978819216358105886911552241260906837427134710174612186542265086237971103003407413967751587252868505768921193032984953600052990370614203678717501693489765742137601522243795609798137655015930612590602695682876091342668873592632819240212807986693892826723419148592972536494381010360671876009778705450043217844855034158292669349480737169589421504100814630122677213341080421590659227626736687811609548873211884162453915182997591551955514156110586655201129296136393934349465220028561467257942763761164645792232347291956167881894959182964484431592422166216674703958210191839408032589301848320055385200163000480066503581885792609709054776640183345593789676336130638286635660148525868204271136348765705719081021459805541631591686243779849159005468203022032516774344737511099225828772663673710981026818371167061826089169566668524893649712295664082470975462617022092642141341395041772821956045906490282913345107876738558868295822360653722434691729312059152403602497854294039156347800218070744123625693167893062943302424994490839349596384819631690071977735975120593726676029278005727517015597098547393868776355521943604300383925174066533563579185988009925537015422802062442420440610471413816723075568210827513725424266355597163747085576486921465275200580999060065073859857788683807154614750143562452791212161974115264936104424678592131642980021457243986776243591014273605372853927502848210888473050400784149492692612444745952992419914902104481366334958344288429040205032695637656459315968925545505475626215689386136161444267184124430865568251642267880586624331019723511160241106615449442221588231730626574930784688158917250146695923692894954219167172915535496936079291653230257922476620952297327764892010107280660225479367503144486349290165680291148370106129185877920614096810530676994010134858171613770839322830803882435102537796627608306919739560302982275640887181368602874201857101693417964156130859650808961832355044477662086896398564882584263353510353894714216822019373426722192072320540922382042759511650690169197257674115486929445208164955225841856636319923736658298883814742777442284255001856919929137322058840902705199811853231103570409370365242575614278166358159422083722459888454003773178593221246910844237165187529002130291164115790954616257250237218045917035561367502211222152818141293103628719209965350946444879937022380128594928740876844846433794771347977971498918972997102826241795529227836622328403563247999362943855582768736173162987252783634825526337114139182183426089187118935903217658684045759589748795422983361830727500865725947794930753967494844591094291484086930637846853178930799705910063572366421351183550126686743672536589844546719811291645761367333341038940839154506968793950323745778083264468846583360976526643538378247841695100727813599751736528842918399191685584203414347884502701319710029507942106023158268463472469592964775127750321501789423200528817760246933403233707304264942631177671620256085304928717945556914015469252598400895505893214467188833369135580110532685506581229931577984194617716434406362155356229473509564864378348074497266264894866217012536786150074624054745194349594487096660586979396729831792161674991763148307257765281291049847855060935700850229068461288045589541563422161990474128130165506138531691618509962742019353555023508680258026886899250603117683781079038245756705232587408000906767380391889023771398762077481569543809104590873371530769001263084387568103006253233619188587695652020449165629687254013959758880023619160344594702175463930272149574828489499887911751092874114918789523959331041750569667595139059346186024398551211096753644950612657328224815544598979731421673696923280153575711464939795128833063528928294970438643616911446171388025570840696692212155170599591480154953337304951666076040241279603542451480890739088014189553883282196516222500374506134052365539986888736795638715364248489128228261329346851834822585657504115446262157712973038085652289438720922699663247608507791357363632220187350185072154732548277166243516432893074514221722874084997287772886049235531512650266796562282528417318584424488510605420749197812969012084462888245753018070390679807976765451592958471499606186572012288294990667910519034660856293908620465558994858010957904263294310951984949404154185875596842568985654765527260831462029096365761393940200772150864398943332542619984219884953767760955129858327573058104614312911957251700475179784574354086584852610420072511804176267437340206713022817135381533076128903855760073863165054982436930917482697289432648218364514282625854495300350353350078669083959756898672460526701122449414519622440966140985095505872170036043889336200534090356035770513424348862147024087535498707713720670701588105887514121764118676618639454300651017125262843431385011342733228930422511359106768994818516694334656727719741385627010143450647639958104424937596884709918023398870137299072975529443064271895801947794189338969601655378406657372789357776404130400607655511058656267724146678575315555496723411370203403620421959958861824314225657361377669632458114324998082081265244843285542472677431232667465184715649392637644211218601716545546883544432456655050538341917710643763912382479888141858182063449076137154710204397618621800821561980418614318863544545486020730570603816359354593858145369757349542513467775437615058778868698611531922268011493190324250175085314044567200001492741531773213743501871777421398616855079188658712698867751199836928023912306298781726368229872169626175433338579463486274893947067932935189746345402074083655173354991787931002361499782737832984405634336101465100005914719784643554835859505657295491308260688033679974209715237117057381332438186593520789199975335155434859009865256572111616021829794507279537439388849007100192912225372660590856795107225865495256952023370830324785606515839396828135864921710617413495973122643234105074683136510460595924855016507549852189456398571902797976851357464716275038815755108709360907863008985636946458285622861932947519229420483089771452853757582859044046549144600866980608972376170364511816814243108669560123052785806709375803012072182012797309196068468797414149231330143834570067427116580814933196615837567556595673423485150749909976979461419300644454735592869260855970932886276246452834030855134472543257867040812485985876604331595705461060518249220176169361229036167639563196280329047214438515650935252724714998886819546300303795577927975247867771417208613728378892968185361666654481272098895603305285684741924437001498841122862688124830340232444544563446705180407508351715034697064248802436490018978711722471016584139519827596022007667907321902708549493155275686563279012845459721181593999594137460706700213034145151634693020868622165628491457193202567523924466790782801225122677459658603371552085728361368639217527904447461689782233452657424037995423382552606918952950605750902527474862131340721047521517830847054290920784112778750371278265869754982149533324962100670146983567470674451189894366719078440164353938430334867009405322900403346829328360163594945811403958105508301847961341203907730251233802830856364637242537854027003688537446047300912555968046162238765291510104852088846206551508974811626667604592389806429745836396807024025086432387518362699895517963117322140137454403881673775999491691317099895234563370011155554106477649044597667654903708210675934660776615977538218321724372272406943066051646354012037650358826436475240126054929824475281197972148766566751322447112094730513357119396834934833237872233347313352258799819153764885262182896840915859872355104594419773462935434579897640848369564194793017568604292349667318556204320092246902036476012220413204657258807580117078924564245601860459983923789064501858060353263786939621325656206347834399439476395396095482129954372665855503765159462021190032532658691342629512243462790266710950274937072539756809113882531327203014609956910538206946416115652055087182126771858857953130784856785011666853375733932187953423283077296272627653480088227000396235007042538515451200073878122162033624153837284375847573566574355161095712227440902158735332566422225066966649924629593648392144085491254221191439953776122969378580296527174338529469844833617100359386358688080232849021818171541578387885738130348588520609048027718158851849941488295250895858100421764751211887173605721881822868545746964093955243306219687832627020860914501986050105175049415282121854739115337998298048988887615183523870092768517466426957181983932148765960435693704012386242834152163669132947214841799584454267677684464533629172525612572360913335493557864428867486466547766247433226056738215698980251923470602946078660191148568265336367163342708821898675140994159800557817408312398458160342917150144878706596276967864507069977811931844660989360253958593079452296807340790901301950826052373508457531380104682408916604589049505579843272165158340862665783053339321109724797644130085066304480642659991501318185186092345792141163981475886719442485302537466572936920020573965287225281769011013338222308678683749290685447767952767954324301663112734949954438344977781898705084280213916321222106381510816034777310816007716164547635724124201869287310687429556162706647900881517285766833206366804933225331430489104239158526088122391489725728847496160377442279415593405073429250679788080768872791901474437878342726286338636171294032698478300697985710596711247719724822753942363439300470416773109252393838516380243601483446324488674249297542523051867963456061699843458383649403798630348262337796766866708574728605842523109045914814557351925693079508415635088268268371554397742290499386476998551147452777361774069521316361450604638494504856947954735890775863779084887217187749730499570004661616832559488511634208973150497853950211638116304242959317186873601458324338165439597372165762087611878971643071418040377208652059431641639483533555895842170741867386491769376434285724325452338419818846181520147936576912671136309952997984878062672983369921767886924861072445204358497148778554282180781610469638194649866510240920641242710700541345753282241149728449180857837688157894675602095736168778210765800270358375909322376283236331160160833485370011220464875385523585925774911271085031636619573433985304738688219995957454557069211236005109940517931368980366827591541552285820547711999027643419365547069427782118940359706555259288645943912709175593133525552031649012839860947088421176598425206337898887503957042871492981129831727906443170157921331656844304224917164583374623335506057814327270393341191631243119567696306372587967173344336862974199968764871264904884702485462236934595635605080836230023209732487318497047966672176025118791872379563856887407134434315713076932559962230314607583457251813518305540171989608395639648739343190828575407065980665753374286750536022902087745110465416592337614340556289960787914402755693828007909743319521538367074993624546806543689244091392690503044723943315829234269826319769557287256027279383409749788179887750735653270783959026486115103078923549417734707885310792368848538659407073588792307816402413348760592788600744779028604348726587657567797182565501770319403529375610403708593833667800378265797293506960852369878066588875494747114629502771696923624543408056284226476011047009593749025107660984641602821824955823240919211836990052877604144422421170599344907183131808968243749485048529171466597618043974988983877196376737654592215897643518844059199035920456503712435467301232404979291462087232837077382938125207284858665347264042031208693521451697641505839308017792086968508570925641855776604831943902378357339842669392153356808612778010403457514607754625752434251560744659304960499749546915269222098160846630517724391329060310267186807105035640108603329453856782286348887591639769507147611125623690209833703155109272532753902933944191218543930864170914365366627401059702008508454974788663220961507239296122481401556867944429042186777024369002189097305668743891924233361771426524448318533255087546919452486620153231045631627501443942509958228570407668456468912248629435484298085748618337389904185937419399055026814796961688206395212003313822062750671398541679024407689731606606546731135330125266093303865097120498078180425297042778251615234908882053895623921278109510108913840668765532161097241499967723733969439794477311087787509696388930545850926772601887508058654960217500056392850006735256071737035997793580041069086758963246687875031516306513440373917517730644996600378210640959223854958302604284978854714540547204287388450318976653349176968892079202000214789836509769908032156707566383244118685069914177609251160276052880451537830656784404252812874232747952297772240262372442329369530270106692704015563102237084875585618503114920699278272598208114472995423545050825236280864310394107474384070607463598200521198219791731525094736705702648871688767585871562410935413829911374094401756860036698594146387122417529171195226295055610499515198029232253440567253879665175314995024387823011771047052801005039096887367095685505300672832690664935767944649188702393227456422528519268256997750753753616673390232526242908631473020361573147378587567832649379470950727136913574821219733715366845939322190594773333696745272797055647326771728848477965160562676517938946073969100828346733150675575010731789999782980109180065735509463148687563683472451262916318745799253348270830759207852039650297930298261412716441487690274535951241546265693672190397291288435372465443143024873802205657648154490878773316735077210436794421294607258061979796441574720965233218156857082344996880539483528716625796809307042417079983229722373492414228360441981659137594278756945501836794610000715463735412323247050383719709793005052181139501201648739664412488502676537307032727576858745443235245953528702554097930400716131501020297575215829132648744285088284610251135375466984379243817416181451755036604995713208926596704029116267918398456529111044423938192138876357648618711316178040497165193673441057446629071489790880178460426147298221734673342315928207670234916752355148282437429140403461492816258445219018415763340428572864088450209621622759142291321891659582862466386463054953343984021439060694146547448731473969300237608386812226388196244812769492394621648931868755590126140417646771669168163770337281496138340502726166715324569059541338231679811366049841148727349941985061731936133583949387713705123862456586021443136821905596823341007672492192238822038565244081058279006369613235841771770947242198129673269402963838974177495524695903447711229650540605003485115789218122588602678794593784626246101890249379147876523673510896549740926203542704501524748369454616158837784555321151621716137167090261650005245242306070506897273371003997928685559982341856082232089485407377778501139111275850461274934086119846804220887213459611011516431811406678414068643637756565985410984830638241728914679248102436300313012491979893414031303132171499881587054296745022839268443693952129654324101231759868926780276140622089714311812969958260854027413081029807390969173588208017884764760908540980172782234229477019128826560197502554460844580509712584735746898547348418748348321677473039253481795959072179925905069304702195639136675954949552079960949353895776879713635410591034728350133585265229188787403719999423041346674201518596440736990623420435799712306745438924322747342204535699131374219522852071628385001007259368654358537589988924129322701095347162409536448265008080405158947002367287911790598913127913911615913618914064629434447215856410000706044420152505314807851752633366673829825856052127605973873674420907180456744930968174738341003719515822293552876560358188100850479257019370197857813663549973267641078987196727631853618411692178370474950833388422524739453495181889485458666859753086411433803955225772923870270132903584479294038038780030592096476830932060397171369519433651958942492122677680800487068903515809692632577704123263316712233512674858942493574067053713898298924708762576547021993756475229280408978845075858293185748725556209327603422682302594456747532603601906634723986852973910136624953185459576076758589891858296199671322532191017630965943732156744095918035177596527970980230858186656933876470032881039411561584840770858034669174451238614432867427537841359061181128941452983713418454807732866104206495397941393558842222757039047046852636761999416069277073697198727750376832680084303411864685525981778708471534285568106128792974756449724754458855026384743353211889322284773831979859357631744166687019901641334326413779432911737529873561366183585943441025689809069917987767244378657196658369130214576461984859089957731822694958737601062961496543051122173875000962542719952990825628337040794483148172413902271751782174378149307243636372668208020845576914619020777889657749213974461243401160703859742290967130965504857748395007251722308533538492151151306780287672343528333324961459473112112450088486199327484580356406802668566667903593410845571639880129045520613029469581272478085183970097570973628330540114213598511029714150351654466018993156744349838322493209598277001400814574948290387728548578786369883109884484435735079145121444867043344674977304192263711122885969961222198810176120809303445414287785577346690424881252220621795777926865984162985499998073502039503219285248765138809500289002704520196632024832282030707368170392161969916782319028925547034419036717457094333158377453215011876101551337679594092133466635576354217360700375271217975959377291786776753856703536803915303904955009743648305661260680715161541092750099744125037845909689044928469274979442823816869821986134122038245430784494172801656886352195337250889312544212364680211767513601172172623208231814838623763098261693722281465771799310061817367162095529554119289441472107308724313588463601898371844205313967926277527860862260459304695522904063942601518451087398469310437247396742418143999789439255912776765846379044580905112736587004991694989747995579020499690865503609710560878762131892963062466893581672712244780260714081018021856224088333763260176310337789198846112134290282272118889925449082679591007005087989398125665371278530888134940913152590375204833411310446921406131039122145857655230861060142550845514136732817953031483898897404828021222622207437601758483104170075439026604386374645896746723841456569814716236247342784568663440934341660940355988742149265205670588025095998406412158307240472478008792369899502639530814484587623684654921593344477239087469365914797190484505128370250385727683315778730318164428631299020878277996570426432992106391715140779412055422058037206632364107527310371322628477069670391004923741657594153366211602168183585737477440292885583354054158132372155089557438968181653054649490480396561679675017082963785821751026328304047967957452493675519729772385324222782361404435390581462042724052631255779457597240771583875937437200204917125914559679044765416160398946980668054141261263239613093384310661849564387073480496866073198195024056738816958506234173605970579160067501961263983481428447264327611179617716161558135117274279519540335952374158586788014637683115498939370974693248167830244798977790980501304034341084921159167152908535320670102551650573747256874800144009249755510273069729185702235979527069701861897043929416049405479021582665311092577212404107093291998424169107650890112093144313916932033453762623100679064055281000054561196002644569165273798677306577637342057531545050754676457224485169963366457228838650040518074270621198141603980640005701383491104820366049557958434236774201656228010295976209253282987628466824904681029989592573557668293639019775436125533986592378803926912037908575308856380137053256181328814069873673726571065517746139392442733192423707370491794158920891375841568014540667424243707436923703592861547567402122041516224961205072178309676275228068756358144028399243817449302034612307080244065581870966021022461714914613116779580660540032550398176596435871802960702665677103116634809518406063805767506412238325222236671634688173431634900851565065950364842912283064155231359311177667357675518393418226332852394166107960722230879137267573462829884068918158489017999981441339495681476551587229056288784148343153419889297375240976234222772706770009488877461853959929170180735794062483432577319962192721856231082534582228153336812746188966773895562228095708975343775316251463615415042399436965507109001202742192770309979929521879577119385203013353216390497349983792574472967490884039439223931233161677982253474084465774751411673398618100694941593379374481634513437446658309839970241908934302137875913055316528341815412669611950855350118922434887070873115493734882612998083180272472317421791439906519963347750876735136886201658950125147958805820189189433182801823034172642370099018028504166047596950811067424799730647132727763041657514626230127359251318064461009842963270682877980924840962228620907766707699354575396360462741228375188295628002507406251892803645590788864560204009931756685417480741742770973078665806292452739255584985389826311733327758612254026942672995831645400455027898642689184059380486744204283253227802897382659889876112874756982236059018569451119937263399873104264882221983870741044988734812039915373416688432118165096417531113078772376930017610848649010368751134968511437625740199305850666660140789601153283866453459972348688972089077394936172346718510247047211149489080966322853974426069582049387288548507091440167606207171244415939148036386255872361145683010881557588870177543428915628236896736866624767942408073363596230477539297556272664571767516950459555076771956213147377968202018480162110970248093170144636776796052137980865810322800506731794738008539278397814897155188549864406838325230712689370582116059920888336300012581581745274915431006326964558252925568747791193964044815680847642341221743502526122858625664590291452637375620033402141804635133223222678451462936180726312094557381381404587363499704179185589305617105261737873970197326527781979910960426898055915470418698092592842890846201572787601545815624219286452217881580852471916947859746431416895094694631742494407216986093885244105563172447283386023012420629986986672708619661994743055361016366085906783424421308018116101762330333861985082185551510791677859625143444620244043323167675216685185610889942653572693496870060702054315951640481886612072025741291435749161307645576929568538443350346833346969408961827910634972427894476214294044872963919390984429617425031803515231486968048608732699949995893190146268367800853306389109795264053673335497252055559903214264089231555095299219826121611088927670311904424412626520711326860042999399205130993938714055444188672752443205871634330090262841906375171836188424553304729374747517444285427615531885307771939663336725502378114146364476497115305289834070271335878864714435278714698121083823060445625383269339790910007266291295267760292654584172978056768430299342827519668105222456733272125064667221839731007900881014418457432161130435298331232239651414199874689079852341988196274940321463532475649676851797757086163515244675221142827241013493267345974686447176849982545143582159440561366604875153287966621611484249130358878115903722996187094543561305999117389308485477943796774550716649368893094602654288907848164223884374964581807501897851526982473569464844305642244539431232835905106432576262419407543295049242935277448925514293880617800520711149649333092493819031385324667299160276410811567260143266298180514882183602863797170487496643460394402805769772871038784680366839084848358270472810476830467624849880608965233234587139765534071814736267491441794304771365250331096748718872506854703290285291521436576658960090918323269659351533705327419302068021090605879165127293285913733574729035106024859196119289968793552286094428173034007151555841607964170877609508408305615019309198565076338957120877189491258892532103034684010991641120607699549037572216854696319133198743254734472218710878567651170325833606089704777409962809702101913865386921704034323610150396675393637248765592365379456480554435965412183222394058938049354188845704802848183296919818360004667838327421122896359139947852186526600922990408989283646354946141337847340536966156758313430701818734456243082751138774372772097517884363013620114281121477688329591136689210193261100305479300572921995881148426506788050234111474584004453413727030020727735789965388348647290641797476210155800102422863983883909259559386946151750335234457684469612151683434444563788379880368057016131647189067614186450717271881649824344514479264258148428689290938670067798645818238911161110581468073138037216612634995477069985726949538994913350092520320262391431260725559807769490137636631053560595385205011793843865524529765250625334103090848154752649424202655496094874398471923560886497118698760686378404268389056503314079350708470056751239407496582171876807964986632864915371979754082309381959705861855183627829061512011158941216615471301222995737954338780874043764115542000854227948756390413462688204469270196573336548153307182395888548569492935354311030288059415919591085187863060672431889503429883937380316651737061205999285928888458032064664271687384607023692333659554763285546110801353976499000324956478065027814318540084205085252911699659196688360541732568466291933756315565258026807974759809878641122452940861887393319566762241753173824795212640354961290195419865297843218703509911503535613140252023308024688460917494462304536967733707750709180693948572921373671650697692070445795462792011960670060592227652251833206968040944574927702935728860421790422744212345008179010540164498995015984674568413506378521202103562915459398264980468189233533707518781985203157751606271562036473875081215147201667054255792570290159902674154797439884767943496530518731870098981482301490675484451758950532325954759840865805355847737132888278095500581623084204959671915222398492267634066810514203886065589043698446432838716375844130208556522232855753399021790453859201534650440122954156262726796005534671841787443565852425610580351227872915556090053408714596606615886564562575475894304407035505741128290916178929800557443002334982461406602591234078463838943177522027565793746694238972144318400615868782249830516985970045035858307537425015233856828192083638733147059055511686522361430400535706331197262896843256464814741158842387358892818713669772795232023843273997091259661332920414231368816495889708599741701989944329629362131550142598134675887736608070448559789411391631037868426317791547224195861711785348075125566636689109310543810302365286309218399061749570806717548237854911589314293379399900772729098188006293256359956619371828795149477842554163797085805673785318024084415301416269554152108176568076718041469887521023871597222703202856485623064832116517658957200619395826684060749726034116869066033209421630899015397806234605659255084050635744383801410357719591928983699461317798296671180944712767740315833822761053559239781846089680055687745979445125762845900254897983952467184845613688060226355360131796095507406208153662585797667132653395181840761732661574936891216556094514253889173270465358051684865133957133852780878449168104111022586241028303182931699704968381495849368429103091774177544806318535672501837913993859211019296513342645612314358661235457550620115257807682424274640764828285427249783822500786175961204279222013839837873885962986415747821021603702398151231848600126700143421018822475442315931195961094068934456564533761651549925942860003792546993169557557580225982309184259698477545750870990171714618732141272803722230230036937711520403756922485542079943097777027272608198256415625969751759063668657959421195042779622676467279737053417516864252644957794825885335808201529552498624122739512663396775979516072355435284135975536522308092361590251322478104693920770232168961346975423905381370094430681190005476448556825045188706238469085914090517155433178567072077444585735298663341974527109802222123701763248301028826038751175096825842630937237674444491947210851973702531709143220758362072969385341447966245639430188831085735908087148516521410616184935189556335995698451041257080622590732091086251787615141777510121212501805206927349428144430595677207359673355802893033911947474715250821781063831486487840217861335723501922316893877447714850119174865585321443898024102355640991341714037553199756618612302051567827080946684632000024327755345184408104481330291550193436557619447220599969731884571333667712906495096946530224394902361964311557018801443052507680656242538217765184797066704381431963539588317123036478158775357072142252802905641566624398158317796691850704464432703409265951906695300869680519435106300768847054319867605667238479198851211653655201390015781773813994701704427025668977406066469581294086449462961824260820256916363882039130603465906382912936382640586727742058392686930845276831564177538443089465884615424382365732150478150656687665697334688662884085406746689646135722994335881615627886150493858074226996083648741363336356916966111190859264503941243310746156873613448915537887880192760687468045568134208348491660297514369729153160575196891527449074720899571816530097145439659349478174771332515307628053315936792557508147320150290282385272654576295959394877545185720621853748573202696397539340267364969837603180203608672980453698412153791327977162664818485096261462976121411337249490073326565816275366782629344694015284422271704737017550271840275675491731563664003282586519143413947412419412383857839107543979551762812068997112303372519606888049132355601817484553648131454652674122915507568566704175431019744097653567736045181496368266254385824777722726718392161110690873387637272009952354170689754185983841708430676219487831920414535872244671183945610392165675328247536341496095736438098476614903211542596328104859844876847094064855487507165151305363599737812217546792802074697262879127765050122580222920177342850384985203195123974735437593028054845357614472192172310586544833966117450785418163054941217233470575404596664660713732274069205373303182645758053164627866661132798373138436973877049883831570947892223463673311224122105173732547015377828646997369882763631680993914908849591438301805752565241788304814944398469966206538787157464612479504507460331765787785332413335735072453709735106754852282253850274075771223176321087581978541139656442858938458330446775466510873404299698938931551343311581803233133656038733873190769463076048784630980760934150543220616936310579109661154635234641053125618408715049044387749000466756574701680215613433731274147863302721380791631598658707671502224363183426073099681594364510000002870789981185451470681634107464628306228385754893751259851289390521498042374849756695755388936731472751588694256601079436198992337735966701825972409278598616359175295290736456108054295844754792049263564007696183467531586385890138654273401216912026317225354565013010742992332466041900720062730589799473664929978898473108800412271727572780946243636260955110261129151287559355435621836224824679864906518107974047759211583489897109957251056504695672499594117083336572048417828811778806313854981179411893965540279830561427469783186672756076212143166115024107014989039981556814747300532364588986138333357541732800514049847160246607555366511356623756071485312812173109254041879545173972103111190605693885611711142836370718171034110952347350708937196430192806482850694335554019279297747976888394181387280450658376453741613186636475964341309307028432602152028500294459740200344476017733870122694605887667758576928661421320365720739139664883295675185235862552221650560984235539478522429195869011260289450329984179134386911559840745367159858922883025486652011260523768906624322039308607429684465998757942256650143681532723899153044174902274991137728418816257696640109239554500610922453612304766231752345499180459019742739930732944444137237909962288905664807363416555400490380530891642960858430899903521343632078669508125413069664725129499121396587621199650237968732287580117161733427410335612475260353937311564504951733645747728097201198675478842605634571487187064148462207692977109149533511260058479937515355254275002168217222097965304412344300158755451726305408611624431036150185686958555025657405386699203220717356832559053231561997055597923611137694586961189074509368610064515580846984829261899615664143447926117231674115784241718343463956394879592985177783613835079623408820191888794302192648161111100145776641614987786939327622233708271540447848323610756299909152372857621868471722086110635434891415654843354152216559964916141972277501349601240853507806951093442765335249379212372239877633411473570789334515938295303886500507911455990553031563098493505393795816056851651430151009700076382770037466052589861128399335606304251706150759303436426610871498254404688096438623331253459811432573361466102763844813563137982213491552744304080050511087667711316593535207169937839268223182515494860058244133912884193495476169304931184443711070300576654960026678875586571633546231889469972492506378858949438773187864008667371866596948384239254168804782637010764912223488730921489661465346342951627371159708038151875517408821764873589993064932398411741354743663039993346990834697731796345451386867132835466066131840730933331532175751037583386769704622229648132054220539799128182236638296970822399228412303999276857552803081931665972328776398200611823976034077871604160982318519783064743094726901482356330296357366006874729863479919579259830098467338402196150741081907512070931737990438422097456085485624306842841063884842825166397734636528981160369325734501841729820075817682295867553099108711763856290260173644481520160863285265010248032266580184233297564054208127002069845245295382338309639275966886666160256595618690785537924573544087000823117901472513989987323404528949841779621341374641162916611251318729787487516506005571057928708677434649965031884203579130830894344930176318877970830905055862898596616087465481841922744829587313262491382616281410213739979967738830010962624634531264156115373204625172623801384664122685931358629253442181431450959134783668817971448502647300327466534394538098287414988174736253992783338746607045617632886765918628348806952105411943444918948659500432730569006596879770456941248371698659752439110280797311582997860680073999328072574165766378729720231944792552446686892207142035513705233862166270971449114068676592429574811228095953451850723742063118300212675218238767613655810430961898377716431137459821397126864514246505277360224528400837092408188525633176703666175125678080179272357479856454751386485317791784792907744104399793422259190821068554716364294305596508667264055466880583578651099294923753473335815640125459637105694815945300052007164760417865951667665289730210214977983863105328696286559656265803036818604914495305479802415837435577403051448198325639687513553178826350714480152304381081671372262016412555581231964917201037851023548168359651259971443543962338430996022021700721664660363056513333724179613093186097878938649575289073343960461203104503115648441885999759631405198322586266731365060405374855993107591218279567979911864455696522507034870263269630628833807516610043513635615682886549345250915671289232909246895316239823106878714047933870167278096460124183064655181311754993311540169809600728365178825400481916163555644615067070010999328497091219313041234682330242273662106719568244263538205928954293133864250099001858524599002616558112551300060054919027971102965125937216010135223544592468534278776733550618122280134371917039743919294228685475170282420981304577136034009615746212764162342428330947526286073998270032034337621292911038565355117484815933466234089560793331543625739197569393656547851115711655425060911789385192977878140598231811734193321519563172623570099435901681193209293283291894633127812096173033348305480480096628629905671080001707226497334201511951677784133843286265369105300038516028079290069938586327265067877218557459238402883786877451789185307365294270310840751836396864105268959143581050202589697240594157336185492773516582585052510294154620261569486290158184764237278572295523287614394857176795982984032475587690016298623841070420171554067170301665156501708815249637580814465202586806149831453584752132349130750394078916250720234878243258404027270127405637303928600958582875469806102142711046433988613017112330786206955380098276933041514632646407772812227567758909268617569440339303994022399949991903033212254907340357912296414204350564255605383722352678406067209625858306475925876470323010113590847421714016403224125572647758215135766297414968782453289373522421774243022195480254107083185593721945579346699108887333310619177452162598789086316322512781564520777812962183865011475367203947640192650236208906369723403996092958050815757981572645552411755343459187428737763902283569372959214180386008175699161029127152098048453838557454619158734685002362573565159025455084474422600077006611833602160936931847025576368867064586340339795553971634157784054393527812488471427530253297927865361130396719826968280264928726766588008387799648176983071929646561707709921111952892827009374352721738044727592023166774068813912726071147654740533815598488975406507417694476182070287699337195827172493088712161657828165257515243653286229406979623875518308113282454712451298434757955026666717390641376726632166205304415313282625708257847477407111956243242877815527446810106307036122560032692404424077070316784891028728544690878469686696674717840771389484227691181178629540261600859178367732764315478618205720285450093632864305078474353181483251726498569618712153498674193743944920226195525945078115605553129357008885926758889614734663143730952053930601569766575490974177790076522794730639885740461697541236517340219019389185514688920552943378807056326909636565179769944844881301831882818569493194485942964741772813812581046996403066487817462538547716393553182169562591701832826730282727833135567763499766675864497615594682863907825164942392568866212865677940034732022778610901194667490199268293565388092498974471426752676370318862087341270017582228802038298729233802547477054050560686843812463913804606049312741097812925295956455389771798389502266948655097506454687566922782927963239575267060106566069679962417339942827533524827299344559539769665648436023161791047768823282441046229285838165112841642197243585569314212588632631278300085086422145465618370522117036655734186030060526646372597716758204052993817756740533848997959937808130662544836603431364495533915658089451435494124170528942655267901627255452486333015570813896552127853791594741101799812492751406522858154949990459842190255548309152085320986483097440030580393250776779542406842115982908599337877327847562088683123993778266251822502007179033501481488420863344790238281779031119075137057601075644728377993095890835971876209640513877035208310625445762365018791949978861285402027335636306402395249120140099654164395638008706772960392673843606629901744587051791605610844507939055672317526089119547453395063881921857667460994464334224781922657717047745922249558142505012120545493270757678706729950110073801790109970173892100868156216163680237225668609587926027598736710778142082358182449144501370377864614513471870297603236312511420606586757347757308127114852962549139809639791791529083799320223240126713216102753009634386732009478432714869979115395269027741337355275531834512205060023475230829240311058787842408736502490915180094734784565753729481081248880129868886892742739973730306879678683554139655927831904227948536964150338917383925148781575031406834858988934845229581009174096772160783241751949657534149113933542655510369734662474052233455938302695429645570994837069805182800727278286334475129956552861753444790060154410828811931222356139596092608142766875023774757436088413017213365198051512618481400205769088988563921917939852709123278457596454667648092150411764509187459863924047470113577643424409802312060200395416255077460897238369449653792442913931116688320628062547623110781896483755177277074572327441431662612443805063994048575028756390803240032051825215627401583875436849754730195987369449201322798864606576734353102635394228330996069235207159551569466190370129535818973148846655967461499691297289797738635815953195977814362955204778704099586959560665775126553114468247512367639397145982305538106042009927690215135777968362294536760056296990101559069490757573446561201836865009011564219176049197798727660678806912575457648487668778752371665011741773217025149280199633543793486227007160707779635537573742888940797719851797326891357674690576349004620735214031615620996322615101818244096121765508572880889457443837993873608865945222112501208599740523159655614373788896215608367978304711074599520505851243655537411311038133614128616736264752318668571169735749049587539607759936819421684532267319620901465574856702489908412952832695662666600935201977795636723314643870670228671674961339687279925459064085295106620951911194478106581727329404024207599207448770804560533422882816241173795044363927503865794913920829531660231123010660626706046791260901788432299350207689393553106555527957510628939751473192403168236901017709837983125837715444744419643781918992731606493204261868339071474548143294567027797552449368754460411883156090718251755316004608262631313273367239383396302557466918861006948283036162917162640641594392495438766269890094453489787844171751974951071699479454898538343023323596704877990569080728224829698784397753607249037892573506688316872028622860552627501830201905853662671273459935074957642527593995120773833608738060797256993472834229824438775148417875092232989980774798507178473027645619422244704690884788422769501198392698774332250395273163366280375408673823739377720987605932040289928175652430412876609750742421263157439690265891073641906023207308377652489361775428171782971848868746991931619415398205703500324412422840168375850727339900078302170837115181628003566881390451870158374658635949580606750044131078786923695403143147604933812485245205594188069991925885680815836310015179232070570480010413262261469579283179403983308078585506918045462535823163301678152550915961828423433812575456873315889264384442149691989154443367251014410845753177389954630565925527855571887499735428327851255488055138318736745144079499849491099717515017519459219102803751437204681401963470551099521975158540681823573330548017257464438965861340811613654521942933901684251556787074748664618701490608383668323284609286050203092330444133196584007777627831337422654380747060420911392520439909342309018354926035689793890684365019099338147054425027147207470511926475972109048929652757879435026939183805682865639400079372758347396897032531015107088679149528864330589117179037551497739465366232964512357100457356424182428397931055297089586250575420078125999356046631812858819379270732533759074834896218364065140906018841611360785406886013865341110620366615391133617446236699740629845468901215777411899146312961253126585346986545892297253724634834161631263991509516193559821172644963214078999215909775808223679228786089042899148476590992593001170757498885644583519677955808212878733191302085115933872993153067416052888931411289155329667680595064209489589218497568098609145921789322021521161843541375867520256175158436535187944463624861132469370313235710329441874753080122534087551883374627744040957914369611910166535258306189434977610467762956917962592666833357615596119950699241006366221573839748250046968131543690106702192743882760337518297734400059073674835613519228314296733479180669575487403071277352172455042142724593021229950219391871249680108798720019275904854971265575130998398457056838990247718188287360387763254607579389409186359467772303633074815472184368636508181557783507283558225105494267563942549388210847209186604905998394371646349034625841429037515401405386294356334907883783990280795543117569367593261101345359406677027895178983321722945705329005479571854318763041049892430766665316099349175722248380902700491483802701659293109501613287401803982822672727135662429235227504651430126532408799063477716538526447408059089862075256033114037522869625505800184621732517845317389195900467968074620748372773685897210630503042108555949609173190206418714773144657395468655802320297390666768164672740324174040650733867552117729296118531026327013435378007019946253708696919709849806315099273327963283309113245512330444907105991666995953060087705695820198055191980845515609408602960831699730875353303921084342366608637340819612233924553770710011409678711849846296746396765880533052882854767339288566348965313793554879259437769420101323837877525732741021219657881936021224068428168702746453302143576442665264909956358491094408531721974101248908235191323501271805633886071304646591265087881019008143935508424278816371531583114081322884776922211865527893594882686647503660784708048054104160499553648524187543975224005578214787992971537862819109782190061795141445813652266780985288010287587073079402413204213922526542967191349508058288729688180679872407592611575358634978006543709662524587447559322342721783640720898784086239540975844669082884057565691036785848045296877361101473583272735017129094693767825120505947787511666410242005855184002086566545712331575406748388871698004722277769867730274177454237698893419466591789886199584131353653545507371442851241611307838815208222743679291739281365755800237515720541580213726001644628391365292288551708193917189290278954117800945958136131864152114548669078600782646216697169594076436641419255601122686006481983862901291075177929428965872701110813242295718051048986941874236163156665774194745684804514609900456160563194394038429995054227551461702849560521086106107936709507911714129494451916271645464949538353459107057615589762963683915767564322069405736586761377444433503551793916718021865201175106143444495273585025275854328166044573855243121965524053214573568925580171592068410817672152842673618543671570700947417427595828565032750086935882966012393748369295017051824755402578696864791471879685108857708321069799182704301430393535608234471793145067783032437574198439919314819679261940937507627954837705372437432960641219141280150294836252663065484364630564171585522681138486606253871931153998252341259794554693758094267119270733190916656449208008656370309365549881887763182191449661541131156841639470902338179935364964364962100192680233487175916259231080107314852972295554726493528530126662640389201984077022700558470346350447181178630705828523370056844677583415365801918855308660571155082403531766762069469760659025278124300335950497735529997948379763727911144740302593639660109603554099867119143317523434271160509307756419731414369760184293206837073371795043109822995629766739081227154030787319596555179303613256796161846168033031649676134202750464153007117126123107191234871088461035081572775412823401927606838941940442394950237943887335730798215840777073457143884227508266977009490778567647379461898067647477510094682868059320059409865624332074506051727933480817742716659436443317528823148477213294265619405858835089748579327816601672399855271189921289239975310424232621862093921778810112189061502213774724046317461904357447747544134624016496045252638662987161552483858294444548773832081907029872024163067898183335822438420410480940018593233429021074311302120747969096490967420884628870705442074621782249150789136295697879646038280834691042271388174804062713825035288497201677475465615447909955309106622058746058777633881492930782054727118699396641268478139428825312486688752393210279173306380720469388268966306088687106805787547701504336947517115563318519979980948662346564936837928049715147101921252551267141626007489285481610212419970856838091752620225426967752540276147853981300995406286076892178067349194005269306685212721011721277518563203104394487480767804403608770218354720981089374875741036994387998867628661580456346868818220902626652844349102211447379815056613350233798974127318649677998850376590044059163611860435851352490285822138871121807371510357940371517493947546681157901036396725205054187609395737715005876192523276791081808396364813488408988717680910569682271101387160398164900048499468212105590826891359477101816526464218870398913058305590796507785623176341501961600227976273595785225361515281021519352441535487038970308286399248746519219268409607996144829310103889006829032375680718157425676872653160638447994687274272216370735939633768072286486744083478965666723881637255224110813580204024358720644964868026046048054978863605860070198862898143276951536150525915184075258078477943815695085689728665051340473151915155239958589720632363857435312343366449592844783912129975233664637481844570453923089230549535388174275926252309390720873992226758774069340322732268245783264322537077362557961860716268839807979294487926408099245968812780666702068343480448990542709422078823018878773186861394251322947137347675023510336954732687708001295299823187574559936955434697313063311592845836793204458013909569582318265475516414817738860330916361742682568501520551643706820678719064759636610942041980334350781874614638139859053281037780546308686808704754957833745476457811593489645861352117740572883045353034901031382176694369491032941639188127634910035568033236017854151297826901742767458805001530227953478815769805685388709602605058300866934937940049226111969248942877182429791214552268381765095086368889913251957339588206010428814949609648976085247497571402132974389161790768881412320187974813318734074321453648553884179366276399733163966168838339009456565024367872794287627464595822142233956187985277425241129397722209484699858098380635564844461445064655422796513700970592977393273284886830304285015356403729578886124573499934712356605016953519903208629303103289779749204488928880875139525662290985598279879980482426416137485846486425096769674213840338793645937558835026543434068055995559115002780040820109928486894679414602551199545898145614529683572072691701911056786175384386401985456215444990106694573095082413228881634243975328699631819296847951989972304036826096262215675901671824696662002279027406801403418681074811184244559706024719309492629903541019179854571565085214232411947880253474122744508405592426259141139468835451954695031535314046560848687297871673886605296881556393239692495039622810589040041559346714031798049648373576659406769655931889044430791328786994684158536707185120294183444049944856970923934022213555135558892931608810821716470355629659216656813755552717002275851530054596789479619917999262630309839184351330853693875417627303334639634087885649352980174705190855373304994936736994571387191542333460437724063712498772526858351480661805389127123570987169208161305327101546123834947523370484844084632568722058588096401340590045352947939895332127043539617068606314144536576031599407127955416929297615330201769123504693620752939188139985425806831060774270479516384615491818736258871240641667085632186265517749057709143581950768334773277472114449930786048220589815727414103982061034876932414268975863570753610499205728903412136537454970426032639934308732849783564781778513090524156990524383600424249351085815449809138183935164047222528246606150775973861536368363930252921778611392341066549802170551987562685724448959899088547263939126962165022245463285854868388371044354795111709187224570300534171570326825960974562486185600393573006531465883543287209505598196294319590165453581810651841393725982031699641141670318353516156711655344336624852368388585499789076487663767970008073978711972062582625760420008116468587005687685417224074678569502925216346018937746745062764909300272698014555155073097052110103403679777189798139091734637819818864867248777987595512746331443655013956381992313004169206833140229950695433787982399171930069034200821582476211135628094639497393825136049363015533232878549682586911314517252613033390858555471201452605833956630683859913224510550224557126412720077934001589720883072075431455327778231596101097054413413929856105526842517013748293005522161614707277502489194489284848538897531027618652175532633184888038354982881704854930908162034289454754898586666038081779981670562413256226968433474223461215584036415354914265354097690925670827583783755099199726084295030090187825373197090044047007933650241308135289743741754150111585546015722555616854482752842526839735051882731661174127575506757866263201994555835716376807424821845120364687546302082566485308381211564065124201251832857066800223579748100278575312621689479827416746641025817684355694397916734237699586092957061919379773846822964010245907853788697581251710487883046593418840436070888685046242640154281871424788369633104939490389581186476637365322703204966249702648951143038557390560983521630181547377079956298489321620155579010864996886991439542523383822255611824333872278843785773809879481321611801028916661185181927738015029551905961290929347916403306505951798554949076018460865760651386564595059015035864865958971684239769670622571735450200026597660206837434398664757696486044582685998660820936024766439771620127364386001238083074489651586374399245677240230373371512484248424831792382703218907688154544163067211084545952526013851049972309403509805078243198586983302263312344729079704901176872045012981215511536254012292421986346051387719187718349161203693692062278786940622346268102071162083309169913769494975902402836004617407770165785046521302463454784456668612534646350316213283309110455394549440665958403437807604551620414600343797136362331805576110531857783217087236351394753868751298004055245037367118121108510518773335502056801113568074422989337631901582812460832146230994630538997691588559862495012112435646158895833486732649664284384604574997571816230058119941880149619178218940758023354108930012458342765239568668161435715978734014344364435032125614728545840169970448650686546612244834824237592730335811117263853095503875266315738318339817957366186607667068955751019542062099944482683631260577996160010743811186187846920925891162784036861775137311727230406884930527882045879197726567238586844496514833669490009919344443411105833454662695394391335326063531413074699726574907748661870369830033384712095049292291435774626318187927504423051278574996633980044403009182715633682437221849127444379821888173422568843172518186978385317663933516174790439698091239325597533561138808324499058558011665950048694905635399987496562843895714930798380233186694126497561615283081357164295273742591811559489197725619604065177056495582807556578653920522747472160033642990482998463698019254798619260586388718900380727829101611714197301264884359840628939627343672585105209797182552163634570841444264294352367368017487086831740044642783933954123744055718406601568083629375584706031941688047052113611100271779627483451316792092071187444566224797748218325497387259665353793029872768562847060196863581364613545884433122648709554433563767626414932313642258489192049612466178900005499064693593777876630469245942584308055907530929404801545274817991994270913563394291394900485747854120789094242092080154548164390945253304561678521457780442299184191486443013463654130003984226015008373428515204089814466835240910024889741523890125712667636897377497132980280608451724251860974489979544392370557685219175780213200925840387223636542602041335079422116213726694570452741497555241305044273302017562736478657052106562239417334204367297537030415773834590317308422194186408643880788628648177512181528602165623319845364000885033544882604914677869600223721549394291283727572185434037265886061137804809782714290180874507189299995707312217951822116073652960435558323793212566306832122791096454247696309545221374703984569416750969690829355849103453282053145324075486201224283301841731096152735764634658411139991291050856620744344143012812988245236612612578754885082831526179410110702437020130680007526121366710316233807652788265663887954852069542819072865478958780088268443361592995804971850629962095837392792909891949080006657008612306453893300295157801160760411890232919690764194970840921163582046538088774329579783989466980339469636399264484435771136519827135569480480913719264276650355404214738147325539478071555229275929662310718779269925082698312447542391968874351048433641560450885536405259613137451179412901750745861996512740002302882006295488218562825757507388532540744810164238444844277527103295213174762789365317901447033718647314392552336298939802742233948644623610023507621325241476051045890343745289935368352523470872372403268506379664906489913428223913927222085757130833743408250345762998013774303142303854852563474965441850747808101428938156306575992826048575874483324665274830636819159279273560949470304462766776475570098476231727921140079433118866205035902978274647363324639595825128750269590610209708116254914057896612337729615176257966446228771181442291659144790624472040305094031424100089833190863608604914399483544042584152885156044091452520726566586234165734319602511834512735312171227311329413799643095671709304050891444268245901735935817528714418427139276898469667183125469574169397098377218532245061491837587127449775361028277740496881451347856451666946565282186767247097029129948731693001577253497351011005118941866635854842316816604331299328856660362530960755370550139170239249759913034074015569567481625734357877927230785737738576103481733276822943900501342770058945364428441967279361074575810347205014996801456006218624032639333127021268460341363505465553177620489263591173797771447028583008080261378473115926000851800152670360247731965842428170631440565157184618628347724506269169448689614017696740765086188054187664196636791103642114988087083608105436170437189807660700639996962928650358491399449754933796689306532050434047810956357828299669057883389851439955319207997782257259668199135545003483112593586521515029741149453458037151424754461947258769923772397521112297744644075565677213041057669249489015995847047608469273793839909611896061357196607523476131519544042758260340736569756369928715662729813629138417283504176645233552159529327558485969957920950201038345352416655735012191071948341048479195863983253991166631008070132729779509673731827887688907533400327677942033824949235330995787358895425575597173498934030742082657399853296904987931556240530384195560410604988868039278657283261785893717447461692415647201038899566167021730178948056965822816037416330959130095171767144337752677104083742150178200516434859887309827131850477851886280018716396093988515305780147558406996190313708161159895960203148242472298830214322298686976368789598465826623440396986411765701661283604552188228149762430964529816756935900594980328513119036647608108857818141304201834925975380213552898972096372019821149489287076037473716122903285465238158243008357932264330684835662971313650354020069451283828574357557534606462111851516326604853505380492983808395267810092415163654855406724741220973765730534811973630231307321595323680765955591533984927581153180903775330283949073516520621275958741126718436523538350223803100141387989013419527905720477761970964799169160226307510640314301531569022652740776436293602571408758387042018691901323425338989747155964348813582654981109077604275829341746941407837721758039533549824758820793009747446870544296204436784533977291496691292849891272227199043370863768736269046858599739652469491034949898675899870181620085566487389934150038096035228907850142812206153257033319830691342389886652342471223093951503797704097444986249570453853075444128060592863006950878377163603347449626921826582883306701974023598930325537625590166354549751728379073203596106526280619504652498593835033308813372853074886382482468464212820981517792381336104522612936628705027607195972513455258033959956087838957735046084115911622462641700852675199327083781933380810233139779860919111659467389843054874462840306735939087221498532346513527816557587651505269856746959332430937788274989988751189961868735977021672291544906908823241567682755296823934341867272818927909379672196979777642166658439169531160144382839110702183092285133455912171661842712041625044575559853023136607576198827914200657282752262557372331234866670684014984119793060081367333408262177058896914965820584724318045545848035402947948114895015588305083869113254284572134839703666098245561787971310067396193327801381781539618548972461189960419697599133598826668962298044660118396658230937840175754683466665040125778721439102963123013967710182908634248501316523237862999848559116086313992495016984836759743612964255119181144550946893870253929077422616662707169890997833200531664122564224863842093023460414483655108489891709961328805887989375919912558814607681922995432494384393972524648623395491814702516190425432130925550496279091912863665120445588021103361221558938320337576978798956218940203696812073827522611830704353787643819340662327736484166090866670041192738314047655141333766139400770946974851297202698983495496807501331414905909642170563526497154571132498990374447796929359865044376207687102210264633978952148791632647222141626768992727696159412350802711167050414531516177017397511475019681258194681096310816317172985778429964144940640223703482177157221700259315990303791969499768504646616839462205774014070132988880692667882432171469522843089398614001901962812151997809613602104846773435557322004810808335212582670769470307950394778813007577798391263530143880854733651203016976495098463087675076361678917250067637687680941505830763911881950931318836069748957437170956450194345908502283641008508779754353876533528772730569981680226380619472961920709464047491835785720514733109185738964466235778707002662149995948293214989668551412952339177400137310323718468795859022127855225042964248740630495860832747184677235927138709264684054150776289740996273930609100029644279733964574174030832408689926956792057030017805921309932815260591811191520833063207916051866547654912186497354538307172730796616398836794412046166001825937195771403783690273552643500581004886241559700927845850064597373965820294868415441654853756634329996891792896895608965297726974841230932769769853289050376893997117534971808533442469074079114772283961911999449164866783864778132621251865717374065164526272387294659831830813441197295011209699659477769566401194014322905283972299672155104642328521354316903811823342931979000540790494662555039599523056823173805859433997934403490018088705926787048842409663876784143368551110725376194366290556582782282574431574645951514348899053460492343234004007813882850794160950939546122588448091412132679166121917943477252155751285267178949201164585442839871603471906752842690312014398447239517421172521007389819570150575795753560711331081163788474830314095013471759965726964281504597883841208398865228011986292156084854083634140642914248874187362383385209319283591747316239139662534517511918277299322389719927156169142237225769502643182285564591016197925149598720210572740699858757856121341971217681503568468579489021721865788289548207365794111566462378602108294279491661690515117502697348931823351269697887960860033326126939362716221183787515873158008426733589822370655829681814521246718671681494328086860954502468207809401425962578993204358267556977516863487648809442512765719289588149984224357051410019930123381428253103820351742405443419656769746978137891196363817039291430580338248552127050934677465210135854849577483814284707200156445478777293173420437437894156335935053010000716014349720906770719231017554424292500006053161045886979266161018568951122591792629322817552468526239334836409823052356597584222801418371807775596186575523240769851296585451957675518310288233697554956002651941795024409991278487148834764601213413445722026326721488992844533862621210728899577022568542484982190529989639275830793852134620540721140747182573101830593622914303317646699886561648621779263635208497557172723516965564576461922973387558307630359406918649296103756521334626994227687300992955098897629950507765614508090355766253190285112120501764818442677198001781446016223080503670896867714629004970912020187095903655333921444755217404603503555791294213709595261345430110407298611483261916465115907538523151406408845928881786033721560072304674134106434962814956311670855459917427055675159364462587282204419988544419353838626260599818949015688308867527070140237507381846553019447730281763092197581249725417834684437079422508603659892782626194921953997587071319252017245187606625072915570585741517183945107620962112978253176666259124504824014172151781101244916516973431342558095659657846864329934232574566845998957562810234521411740847705366837323167826482375017628720877164546872250618420591147302379692185825829500245575926207921273337924235232261510559291592009404243552197274165726706492992487522105001863851088908364596079271531148057722083369419416718560183364871874213309698365633745643888503190276726106255126759481318845416094644931739458619964392989144818674380242649674817030594914258585081932633896526652431966261814527848864856218847720335279572990448052485976844258766580971889906375933517583798187537124270593026563876794666865103281352119197672009364590191298713315288930054643203015418937052159523750263225858524256537946244989700978105449119474282780667299239165328404883223207812552906210788219077027386506791366960295486272238513903643509839043861160339375115274448719592090149797043288067982533802322229175779697733496744681224944587146697502724662212695216435583300554362300510950397950526700307440367900176006425641330634188214544618944572675416377482442809552876496053794363019183767534113707064705989164938314514985190981231274970506672544832230030920688756290404627989953363932278808296031766891396417656413039643214060857278781018422164662580018389695353356515905880878362594974479569343375932689136887084299952925341454108370935162613559869025307866413336557198024224830933537132070694961897378790103046547077748648272337158863441190881997612867471059959380650898720327235085996415243664999803159645461691394811163252742893359989809683786870935183051765151851015938157182384574848996271732413769284998542030176476220637748037975457222523471873144603935491135642607735688292866441276570873263329996720717856214090509374112931632573323614220768868731694584136943982566281367583289845637193300528086940654499166471154595115822231599474967069580084503037649031348662170731546000555787410747357706978354332666067756355858300619431753483603545107956373187920655858218328605899039922786057999900587036761605964091831847221008789181807606195892684144011914900828125291637008253883522124640483187416370567687781686931278400887232132120286223041266182500730541830483606544197269421600729413172125446057751403455505691589515018173150427182754665050350405735615161871349001457829668359438577881797340493279281995094684058801876413409869556146626718384271960937155725320907503120912373788764405684025428144407602772591495696773458353297721959217793465979927977463447856066233477966474433807083384078842703468894749904134766962952461660662751414857469740366712764774286859408578924900167998738663523286358793617101429137040563370992770894537371659158050859584763879880953210112335561773838963538137541905759524649629293169665009716683080893233124608576437361062577886192098050725935779796081903015571538285328204398558468419718063991099431751384529794838734202748907617375354849916120816100102579130088509598824260022345112399835944060866965049702158975435131709559254556331132768958727260183299638066877667907607279406598741428885953644770683922143551741423666835198294934573930997859887286458157838571730109848290826044579263682123925908330662243211090706812744067183488755516435943340370729444914957296321551703188157335903202221266961357147657375292341075217960767834806730719061089759712327163499308397969624523409366421458097461877026662002588055432834228388372991826819555232367544270820396798527186719310660524570765072428106488503382727577251717868477404832855073420055820617752233500268883838787435830679501208801407195159028238134231562000705179756448022573927038952412068514295580010291142603976561769261410316796468974964586105886548477416471521459445698021893963801718290389823475607201617808127307080913121074151950335209924775665781377714587977600359588639633604406318334523590937018649887597011137826988247650997220608954589249062722021605270503920132166552214437187177348546448535606378212368938561925496485617531199659888288089542241309875278597675505871468289449624868278639480304086059110646812639994483899042953287536967334023890436852961898252073808025621365486290921284261785979646866867702948775396611570716659199754866532220027263522245293425769035233581213964559161277240196035652782792030905567650820807515360073655125996001887131503791895693155946861223676500363196891176461959506723191116180528325659341282806446461774711719480030065734887475845891641529313366828942330531635047292785939308369952962038137066918156485212561279850774015903690077499050041220341765720885563974953692505636539774365294158662958934985622415582941274572437070771894243495931821662801135314059799859548377495953223335069682896196978424615057589858268735674267776422831744208030612042214166791518636524556854654315824909690193053288794456719993849015918521433040282231193469324161854499942438535630151073457150582066422479700859229337923724036653139823770932952789055859211493384974735538270646632311586163125687596739219235699208814210548189989483195769571314924342676872700687079562359508792737083970583479375740102594852029920492411296893289930628697203071669397379198362970946626734114350442348934657432790803430194093174941591460361654114431909994209503213175644749691451274001803588869693337955713446459921785253348146995855788143350300365261051774057882769129177944604303297778328326451391326419204117016316198462101570467437301484735730882098966472270810996481096863259253896589303973593397201745260299533027413846043600909251230758226001656137216061223893305421630592235319725816480579501052753371353617101246091905553151050146341695485947179839608037414008601507641053071925621209004175972963466701328154161196189573876971533250272433116879806860298826780041251004153000030486134747143384509361510753103134113280274616057307836993170150733250330064750961373988397213030412389963203059084423138119781436556652191767932114194920142265303721956432998453018550836026156172250958863479776061758177989842463514071112729561800407673753436332230526938728080678248284942304982097515924096861095390747546781370379224335060976520895011679471817297539319053813847286027795702242768582249486117730930630595959705270551034438308175671411270358013035600282553860001974214530845397806969509392224063176233056881158015465207177395188841301361847789504836369447943948592092801366640333471865410272489818567563383397912364333947343200610568733419353242554453277028250336657909827344283573327633247066010988242604236618139151461098325613928439699588937983099778920754634653607138089313595429932174904251385770601202767112086194422675784793697794325310168917206523303499071150673206550561802878682449609738606213218397871450370690665770580513279989235220566243679580937384169817235140304364380103736999124672973322881345479923254329924485414960547994387297701755289135512035113925824700345639451876467625680733376823105388325102903871151711062042407050243036453794607375244983947796945679627811792689451097482177188740700422862837924499638076423815865584062038285282937996728636567733670763923730269411424597099193443391353674405314047632792630492763094988879693862427991922944258326870137790984969581821188824472581665086233324309919911012247740259269508228149273164285687947451639698174035655176452474353613970359927587758115406662140198891345313788796700845882067959135163255015055343876599702882576116531773090976616319716238867300050666555798872432415892540164822222229724364685526001202357202685009500234764271614516723173171647020509980947122568822122534872267759638379715742587496214818818406185803848076846012088316794466502319596705497868216536329658352392782564861343322650546317862560636395290487288658094635450527225789996764374494728116686947807141109496777713193782235258462933470748461194992416326818350548239019717136932984688784100241809306484650220116969226427379216046881479961898526416044619836246704898201992852824182405818597879687809933507193268810568080299329027826611433698074323063248387444787771176902168982391430276735366076709756268886628738400912475198864546178675289488592518996404923130275644373749848706306873674402816307279670037580996300595645984659184011917659642891970616132789541407870790348176904752071881476455549763233973217338670112761936485509292038515026554276370300693866900980775618757220230633445550674480794146442480304196202307862783681304968827055515129157516661604032987336874878468836011702630047925379761300096710091250758501193390850515358662302656401795446930837453844415905541014377447686043975589187065574165725246652722653100314928954151756184242258912355596458549026082022115934756588878641725587136438992867751507696709007080870496996554109521856462028954672935671024572874747913413527745803682138538372722572426458662303763220479597266491089496132725348242942618348058455143892384677639376808182684043732927119889212692485664698356434227200809989508672857190073430661725991760989794242024536019327051716570258343329323068621011569408091453764698649807914488891338407471697360085956844498430002928512886028698791369992083196735784635717435456983296108055551135040130441031856189232499538405055908747788171462758961907703911301780680083611029574110871686346719402091697772415343985886631561454556474512215628386235211780732075063890919075015310317725353894301470306085368305717185571084645318891598344498112480864103214700918138960839967847462508690370363334896494395661743142940032784898279731747775424418592979319447190371551147875705823833943970928145479622756681165835316442324259560825096548290703247780825488110813136611940307196107626700771576671204400943116390180908683996597067396909872704074656474977609255065472446348439031569461535994276566814898835113365664995996539738515297042883446622203490754995384489574313522804731484181719538177299029550655970007318258672928332236310503410924416354934356426348305223102854257168398995396094752355302809776061353620381178214652526899847137566729431740443404853265233004413504804332269064836343055122098570971020807119795183162848280440305886974496767688090020961497709392534459100245823918173450840096010150078927900889939505534333729544269578418890234923532879085200885616334530262569055468365913962372279341640206130734799272272840289770611915912657498144031258309154231608383290168181000677107014585478789608685018341876169679272884713784033761216531508967764821392499090970129634562304727561204925239077047948442050419050137780975857092513307741884587955320549608670991751222710685510946635836395366915965620704364958063316454478095075586259809276577013992568740946510200446534760229044755906937422135755125131194085276272716495265428970539996030495107306236016691145486626717987183293286067455461904895186510422130314604812256104244309579583388635395967738153912106122854283062184665880984621745709689689290303169965453236264599739717825807313150787632544494013955957294208821284988364102364256165046897350953428165629806546172805929709203231552214945284096370124097864203562207135598447755900498166042172025018905065739766899217261690096846629079371072412088542009932525952313260930045447526978251807570322781076514184238864532710143202019925543080255991878379778957077911272735512893747534958122707556895670024435814335853646799777624643041386473422619613907395400652510287323593353313652097206980058239229008991155236546966604632340420758723243505283679062653314049240493294128691875623509107220028303475820430923215151890516662476004786894020351329879786517957399804362907353683526762466982265798624832766363960610726062773791452921338556752934141338827036373243574306263676392700633541984702148565974420328270072278146899408405670095846183620665096136606646730063667315320789831887474177771048336445940918122522897191428472934672082915113796539847021883893447008662652719229843342291174660911412902057931085291380667274084266734802619076295273621283475504021008177989157530705251574441978610372762357740878145780967091176380698893979709268415021463357358573175497360723086139774897749835832769382376233157572021026195893076848379055913242622598724458955604435476503303179266228586320325734115241749477548135790249978459430651943398101592094365254683376726229860269464220746208398536100984046532341799078622649690049864446725595754338751386609498068153145292023211082299881833309826385846475567592542507015004194587910269731423051757662190546410196556338665268651982791432112165485770495039994165816857455515072902287789128904353436085519774968555975617067580800137141366068867318896989269489587761890203784154700432922645551957391574178655665287366707165429736096124143813399123096568095654559164973514623698615413307842898118566050830762887322281881429619393250694597325750040133620264232808855314215545429524957606647168338587699882875361028078448853342387785804004236684619342743978909132149366573992826567360443105143592073352094572289086196170937209417460365952842472409700499631731740541647216615467679832064706315311450375521201120397491091858904375617747857145633184121450563242201223539583213707860384251509362529715788740692185246037941085937318609991006756099229041258037826481008805048607803898174649583762272644216566453729207166960376194199516192785420855891116627533694778947284427393788237698052922077938675197784603142991286376101659746489791339639548047698080395537768160497774107914685398036163502476209091497521430939577619605587337844636784890532591110803317368329512150073985792974013574872450672090450498948336408982391374954091171694603399989924548360613421512254652543581850291460872132974020448215253553410476980213934725290121427703483175764845938854441368511847818283528886408107094079655374706890811462351546223709980593508041456283652526443173793584939721862790315349782401532752472960995505044261645575659888000484763860833791626910864971093214394589899806819305976642042671659928944017325780390961587396762663884362504522150936974737064475151982285976792366816518424134103183222916558559788577540762351668019101706178271185860590385161053172663106154780202031713721292451088063258998206216008843417850156857245689806363902276966286413827135760993299857324125964883736054628607246268611111047100234749215747278285644866417796348107941048604014025359086114323710446898660747950065818090022017877548513842331313896094004279216657992539904749373245190442390696509520949643097072282449104174473774652186139575508967041449164842887581352868478509083617075950161296304130968211399851960996534523561857949456173336849070582514177056869457728893278175384467716009970096893402799923853877106646590494569327694554292391386616407014809973630255475063078799205656790968443364394220346722605938474572599275094758940724128168239789307953291179812000642164996103588697670353427883271374709037963472920820522623705063314495811425921387766376497586999284208051072134333657028808646162148282304885995636733829899678479788494068115385529395065333969520740390235917988624352410981021657287715595357349733037646099996141677784859597577235479783635317553291261903223166893459923800879767430246323446461003503752790186194560159528533561174788415058956689475404414240973221549206959593118035483339892829877677522158209106055735739633812029655146627851323630327821614337208143815774523421301944540706534334484847941665275266227906936548191910612776718839019384114733158031699602647646255640228889214246961896043779001123257528525446177621122318833922210100137499950809407617690586957728697122023988456024269915294116694165841277066653847519773289193049982845678443671988326616897428881531660681164145877328875280087997781211297307280427341511390029934618846905390396935845122291526333093561168448316037465837531419961984874976379166107975287206977818214849700299395434787151628321314325082074877667898873282205148986905144302545026406651759317685855377810818602379661248775081965114226935407936072169072717823864390235204837928043762088734162660480449988990053314509491149631651127896213679240688763940372560717281937540110990023486845957828474183552988321931735197298568300330845573820341502470944885036570409738608604448870710694056456992707322480535240411574864584464848189342665579826188366206498190281398936962522455661143172357628284341690304403126559259309013880083842442348285033079252016062284568274508510598602108720227638691573283359289334355276174233182055882690908366883684530300046336975458838461747906145133967732438104016067902082930437552194040483880541445007770991505426542368330018526949600688309842658186632797658884334886460370990390384770147430395812085414661649732676130245602858467602522206826090050948269204418148553205047903730788494807651375573726181381152870409264739648376519793470357735284219941124960367778795715420915398668582231816055378785798429173845567965478584229771963724429852596726131871550695598010552172775810068186736764277264518717007731600479138475142844201484138898057548435675803350404450432771957985282427852368691110953244765821612068780624146459221914155314705387550467944604887556180022580329123692779953253549463309685910805568438972361095571167389220762419424586210680838901544605210057644515412107895336908965060121496773997491064555070517279439840772064969999957589011572761950614572472635820098325523443710158510167057567321272204358473358839099304191476977899305846738435739522717188329459787036967211433129783633672204336282775725406428026549804051198925722670143139061322560440297036872999298395411400348710927548050949538850253181135234496941174076081669197079625172327845619775805517922664902086140496194317045957913453108222775983160974380060437334788554483404246086772097037678841878589334807298444336189096336256438774885091382967041989355739285773708969547457126800943936587805837581181870181200848889443114878770278725184864277065323056522114753101311901555057033940862992406846393008748371185307681558824697306522276850402043253536454155929121515623016617517587286073615240437872475896402895461163203426541481433399592983966416368922660157812995033420897942710171086685227804711201964531229133243364125164449579598621456026595591987118182100235617247115287785887946305403004298054191527213002298324124118132303254495154413122871784594544547393424743473718374328097982955491480893230700275918966934569036688380156631844289975337024405952776444981859892408417531933064481587126702410750907563764352890745254621416135145024214270538260588989866989094893854426312175496430162445814604682711932018569322833280573710380697793957113659555873283498362070383753377789614062566941383221378305583458818675735040513764742140538003888934262863710863094155119364579207593945821330645943397930516136529370486381732322045877490639350349737432213148606623762145354099865028750329531966088600979820422128679103051364480969882458932068020017299976057410687322091945761702762923062488215650105374632166436542978305517466031415924013260351527952031791782003176663189215375288719020703773066026999372035469072918183051097421037854344798612127079557160516725700671711119219606044978910770205542918260945054330497448533683912186963203342757017735989325877239472564866436971681879788434764014515217973310790715476306674126354150301193061411003071468873597302520841032481175472581128773378177163605713177863788901792638679815484541701632962913422833020780304257336034101352642190756979960155338542862987789467892255111311574580541591528413315062490576959526747768746078036800909857160282642052106889349155980902411987553811838664425950345071168456547730866443570090720686491549327209162424406148924556900865229766098775699659064451030141791434303679366901011927038407839897902219342485275087535372662526514877767926438426814182614197827025318050771632904567734724352330376688323862275611604803329160220277116898966058292801842150074602864101800337830559644814185635723191891507577339569869144739696245786180535120864543416090078457204981336654362531490823527725815615750555509563328497280725143071404459549617988641407725650951051294683410510766896723108579903679102066314561603677476172112460420793822612494162273604163612376218151828213840621073340800550951146268237405649350495153423002397014828375310729348312677211830242069096482523477199500308697253712678370685614230802018307746490861531784031605576533145638984662149926034871951423279880603763429220370360844520114644379237887648427258681680812957328677199716309362362620700824105243935290579790126473096881951841721727348388250228088813814371822460323956484741898546135674573973438435756118193640446024770509544768227673226187140293823917289136300508432029647299017704364053854291596122057285955697184744145139519941211569331045771853717501819728487059778861793990221731036982897464378952937823485485859327507581276004770282243878230670262895857005194011497924667922144465896196756066036012680265516463194441257387697833186817528738208743693019163136611037546664851873858999466572705151850926936592199823564985216226913737178038876002999426682093165495833217631548372042960109488280464445319536439424642479870400106400161607697963299042323433811114141166915733657888922076762501855972509985712545248169464370787749129449822720461105154482358320099461829675756271222887799679689387443792469136576047397972098238787279835391749927066786142746893502569149747423975941771018242398539907831517629571620384355173390467826659143289238399211970849676202625547705391321483406387206268800160428926714649031739918556868788391194561428544453888032387801418959990178471360202927921905893521389287554467149533701195988390613556546596812617826902098734718040501780842378449314020228307929945573271617035509914400849860780073050407073212902354654352682272876825898391589147531113067075487660777947793531885191720798044093309494514065350610876282568202170328389053264473720412194955411117639531625905219711876762810265719699936702483148732689604842495192348772231260488571478129257650405465540523383148489946074464933795625635613688481249392851629810644315311676989335944775889389654656023144244188897104478173784961299051139369793891800723882133512715703685073234461981035953835162592251844153905657761764968304617496596651328557760051865323763090859959199855461874524325487268625825258752602971499012148929886727473353345103926990469757783859892905918817502044694737848972316753395416894998582935911227542115835432459360264656605238695142258784937115544845352765954227012999868857006232566754960847238536874776718883632332455819403204050223630791300257659854458419929602913867832233742306971031913097720933829961726774592102376743983365602766693055375149986366506641615021075640554577594957240290108370501368407066748313168475156049401041224785472968138795478367693027435513674058031351757128581230524960510443399985734019506363507265370070971964817922788400871150955063217702777311720204617391291995779088823421997934276010166314298123978708531292043495150458262569835343861983399669782665964110833675183909508665001548361038102887606152476945740336424969505947406511764899821805579592984523808508820073914731889504763741739624035667742548061468629219769944516410220957288208254019266649609413100785463392800506732577807847001629638498868689896137429858407345653023204886699804553807502322506952704154148701946589308013010644959772156729378679709776800465976670079768106527979820320136888581355831275330162612268444013500525636859718493594676346741575047631830351087135205340776886788206675375782177471926365156335344207039774845706167519968321029563618132628276781570977764833358351199287537850627406458874844489560687029402797404851015323504246317678976502905477951035511477446734278572426726172216374140553939754816880930541808128699939405741645596855151234734168380402674502675121478715363316621715135420894506349516910470477313014509331120864571665366136533235384016634985309155088226021715576035749964168428245463004031445405618265223418592090626463769672598835731546915553830700335046145851949396880630832026583716525665609017065346118583638099427650655988168727599849427829522024127171474165696241575467544298608271372732977422904427499260749188478001855967445702502259191980134460390958326942967461905281864908187456673269403644358419285699956194862418775964866071073159987514529296697308594565157658026495212547262754951661313546152921500794578274243734739481037010638506155654601014758881820386869786739457362243174609447878030312324227373798245846911703514070979278066843369339368414029726397152587993605543186588393927727971151429669145601956282726767790277006819247142734804659738892362479595112153514274566630570357731730054865065421766542827457240814614837757297821709712725938067767304509896271237652920472465731011148197758598735913471190906401720563355695771686380427434812131244832840305810043617506535890504109708497932650718813316489746571052837924761471376546975449180826197356282054839263367680507734228767295746366158817378552602400153094013037831813467643844866516494550263437636155244556982299074444638498731972549723376684227573791398199230727101526958956318716268175735226525075782135698300856899730227091773493282298856253961590904784446070139260600671723752668390178808650377356119318833707089774697959703638132636793123565450093832450823789120117373758490711595413679267088018941349092287347622348241209075152152925182075344465189209354414101320970477962302235890062091800872147496265180416699098640782167329271888482944127917912450589540544805415825491677233689918997762672853358706875439505211335739445570617067040964219478129778161794739754236554628944062448647302457001610010404212875086528752413158338545723417237587303327046722284060710787345177824471841951791559340707702241248528325388181492754374577764363305118339780968059303751466980428434130263342377963271861136116661122491655842560318677375724946661921234036903282016361580852118451633675696263902669899568331518350524893989252491202511836185979423548512208474191168724564102730371325623863326351370794193814885035485748946155771596995833761599656464612725983816222162099785355463193147678557296508825380744471625952208595117264061344608551785126705923403980395994832827923308900366363356558040576546266958482610064514411731865663408583203073831516438878677066523637761006121587425203273873157390116877147843370916924657912913678787370353707954167213246634867668213892735693382736214986516666852588199840645712060382941066650842961391262827516360449330033043473849341442441284443436675393236817847338909134668666274427739110930915915961568932417217175098200555265786923330633681645193471379886465245278237514574846593128516510995135753922380112812886204364919707544998971508419128533484254677158547237902125580030472170639138354536125141785524356004291548988797465542862757129646689965140526155567394892538943453235407138210098598298384791088950423337941544252461690094437932839234457601791143548042146668675316608903354433319386414670045069381127526274795359885995132361315516615373406985629207806239999993578153667661863526368728111987973041854294074071598794560895731376049523071273718006795641751856098587077442778653976457869258813511644928060070097561167968843927548191339870543034466387980490165239920022682610417514881587189684578231246630273880209735280301806986840332468176688101193924477983796616067692929824004159183243239996812868523535776170734789762473886471773878968017410429034106109926779953447443341821807477615223750902470300424546186268255787035703304088892013980526239322438899299522216698771760452267204874175920784069393625038051206948578157910363929834483199420181134537154883929544240545402093098166165634817219047697081019867202409632586312299489961362631836830971903241238304482760627518832927426170150787090019436382574038742301375263203365015603483047214460392359736554327495603852025440350403303306011255557185831594921939695474616242666161721386742676817867553649965495631868554871963948338123082276068250806957520128980111384136382543961225940527512886522704781723521440877237592976279234512681615690117653004983831826755001189783538407684209112444591599925849469533052461905764546743792990631656226815904310205100038136043413577838725811562188965772638438008537641828866378587246970504802775883822589844002361994267392846813349961005277169485616454907806839196173063270136846928896806356193890889836440583824954662744890454375284637532902401559842705073993603918692818758973224821132872957898768582338580967792370314105049444044699774650531683263171311440620757776944995586472072084328010727069608728795487835584584673925505069038318417091413438994390582553539727888181925546410271233850768175466058346035981803077251998868622324020120870923470256595341097891414542435801894136852392023936778077288161994422043852380238181907967339554372867463773724469111785840163566758019670001140993420868385381465792850389673186166820432732137895732379002823396187517685938969388389237475684364315223570522320619240952766687922461991931983244609618278639763341667582494254876487467597185211766544393803849121879518503515644824758300115857297054532470684724594439051591793505816399856986378611768435929580228193644698437469723978042583910954424702418379441579797991567324180386018786543416078140338374980831281007891559374818249241195122306992324588199298533086351416212409358310386078270668776288688312417308162968241403679729399783713041356663366896435412041683522530029248409556926128541461283562977573109079897831748297363114940943607333318385169382783140390197503216091410177382222843340189227778799755653616279672230074679662106202440755892072804029530232747746467998811347754037504140834889179169647892118321202303332136373437397578146277572674416142565980866873192105395725539650300305022751257082576229846635637475242774830165461184480143106369466912704522617446730563979375815835325872315117651815100688453640492637483785449766321118003145569826227341517029549669632550261870588352047918686248011889790549288766199715392419086179293039995521247867744282291455943467954084926362380790531197370443699217153473990383341880960082400268200088593754553771303344187790957846034114123657650008393543788183864332063144626426203516434539875910040192287228464344604128347116198898466141743974454240439458313455286215475831378462503116869680840231312411540355171105685637139516026451344873156837308381979035458096324957371980626255232543384906792853556692104349887356210982293901127751601988882012317282639324301944053054736048457817476037239781261528649986042743411962939327756391719830731667417415723403871411109295010265396052958457763727389210687884213493060795170529616242740122825378518817548739339117752020508771071719596724750059866421664990856989197108493089325001131857016887269369093523778434594479863340783539137896977509399565857302720172074837343202103858704302322614147174711265842610719745810776707515260132829001804982909116933933947423431709003381531512912568648686696201654702080902551571845873188273637302567398125078822806324341284898701383058528665893416604113099217739208589321130451223154910239588525071734110885792680436011780203053442981856953262743471935498571091523720553607833581480942618987451658658127229986376689866951965195951220075357230142296415889363685912914819968889671100081783644735851338489021128147867764255850208591896742782061848173978442252571311751120568150073701633572761249024886892488324193132535146892953112100728009665566040893535897084971542507690562295056227379166709773115854966205122504351625649168831588961579850563920099148799434466980372607172318988608688972026274112423237657928008400033383342556917673888822487637904609640318080314712464344821720943119021786455566374704710143600622692555602098267693448631108624861148053591246307474023020068958455780472314339906198511663290805924099846031545560829226000689945509159577685137638920567412143444875595871599522882866668356942774754635998362880845967632058857438749229334243976744529747384540828169763226460699370575331816240013869348347040467794633915729327151904271498084033446690351014645754334153697334865039388608759599341235483991085118746399158638372124624835369284115895128081669322472223455377575340154171750374925906401004350935552664400111104267480174373290364643798613332696740148038819403340115482664328914064210082247471981820663774728521962114768898322889424754660132540786416670512400307923347264184475156364536730749740385322788856351975257542922106166232211202137828756170729366576565212617180759132052941752656014323768094763298257730260123269281887333194647365770344513970086934430165379848903964452953342293409859417065942264182810964958894140709840214822553940768006460938506079672025770216069059131159534433728028273343688946718340321771681539986883996102337340666964447315941087849657110773770241510738628737253171295566027431636546583918117170429277440014181281237235679423188574450881801321842360013384309378714984640651496291161361956874071059159061694832765659666404909265591225094789943301228216830723915857723704090598447340968341314479901650059436303717505084396034835126412910825199977987718207671835754763853305209375450704385389446164456388434847473754415209545468452242967975629754505067522933583941137077159332521623012171587534206595287410401201042094614379338977807560004833631565089583323260433602136348767817677115566973374216995431271793785481289543644294793009850200941188776712337358419222532018826944237508298120121530928569482430087361838125667080104271822872147625251042345367265554665356131328441677181390526559114206720641063935756516665176537172319320639174425507927763460852581709750498204839041020993115621209303262349444302418863488280818395391866603654478603917285360830155469520975259878171784691662037939124162154759100719565873427849250127054445186485391621583923327304245178635844536949329825043074276362592199724729648208098189213938521151810048326476048412467025942155739870466678077804715531576981482005386442194689175806632429176282357451580316776132235121009042820290297334725687652514896364981942905236046343235854794262582457994735645168349728073674179272554326697614576559152979345926780115276832426277940803770437825514417095049880867935865274091865295145970317464551492710808216517928034098689526212959288736625587826833808918979977963791337479120956352369267913522042672627726544294051005180845712854029242129932365652944849606666948938171766706943313555394536122471448540042141354300343656292634835642395214114038260828794177893862852876657260818108557726871959207611559803691496208412235006218737354196987197010484764294648033871134169612596250480535323660689879272050188507052612698436498883497270219393634358262103447356332229870918434475863209522134986357274224473931875585510863507285027922613808252907225441773711307955460965378296971791305805833033491575466438284183914660766564937303494984388040838656473004090086045652059432708247761490830824807296351552027919678527321021302553080843286894189639985541279317408174048992439670854377484889620066608448414698649697944586824812161982951249121233062773075607900495179510817189881494055427163394036242324069841405663569572950393573637332072732543215559369313690394963009101546549820796578980009220671206813397060795300265508024396799952946469229557968619468376847405359074766229563006096206925412788499533702982525468641166420725113484298732864627349662474801193799234074571480574858275713329536141509483793000524811929143946733965454526884508681257219760512963209376811527709026485825341614196821936822453727693621384358533012883881081146693491964158509724184565876331503000875116109423976144499573235615619995728985449590351728295487247782631789934242491035921416015094956047895603784970637540177349668325897221027127296884567166254212615697965481801324523067807847280018611664013596197687403851282212619248294094182989209859836511867981147807115418017265019407019212019056990930085122238414310611586448598078992515341238890983191127029374585378939131203428065157395897428745452307730123440222634418576958995963494659104769394147903289533966515937079856491245078306416010788430108014405399355552106221250825961983462038419082369226384012400046261900912827997933604351820443460527674801901867924708783958040520408847476629329702134584494227373832062694457684362227757262412871168211458584800590097963282176476011092103541691659175947580890082303115635842117051687973703505767520668360291878707577057277655177951284856581637127507994205757363235793407986538143237999827506581478186529493074056226317401622663058074815090342703391426690473893634460110664478613130188402763804543233405256392760714970948792452142694105042683034092240552552239873659053487541937521767787002033457310790442291867898470618654759932385883509931855679882648973014882433945318076569348705104354760469953264403389363282506018059480957256480054766743415592718190240722841094597239855546596739535453072843047304350045763905806465745724186932509656062035002918124839211759258118018244598491132316336925235074620257015353375861670115621129825742154188497121710320053863412398401341462499566643892751526456689355548065974380372934115611001176786901207900000171083447811907382019449263603939465552419044896629505747739330841827675918866515190941253574723551583588740728405996052627750975682939496713226827966349180432862337248863866103751350553021585231654882587036779371096512844396502162614960160166958599736126164937655355906903609309273102563265648772211274607302309580445529660594307128482715499181590556497430047241839528433978493831558757999766839597851329154222617983357828346766445560064110392274706266330995960638828101604475880690370885221476890629238615763592084172920083469490119482965336017651583944288849637267629941255015657224104995296604170644839658144435380955300885061700548958707540993649369468423901679573775761950109359310664952624365121646556566084533917576748893860246008337923377069062316312473437526316992250286608269458721216341245045162415200982928634117536128409803393164637560372087180089899302314918795194364421376222780484565725044062200536147510521237943638148021133545521080860472420675759328642958822723098781894374048189322284228803835182448954946304298739135924884917054249628954029535004007235348086394378987277447891072297863804164728594883483548299124236181664647953117229864730049457993289676415318763122915392308554407271421413923423021764805623600153998380871958648128706584541508073240107199767819699153692695076452256780505250608172740618996110822113020897627942923435089496872981377955920689699030520856748001268295741522140124205072700920421445332924270501639894155217176285015458729630737201108184565845253052661803543975752566594733598218166875658788114664406544433499801195818246894308573562803323749406605334546888809903611268922808542158010306956389333569910706871529784371539071871338669583674043309649550254334594060160991442972411492438273064627551618024660216182736844941753450145415446883621113856142217523897381682464643873906353815205146595654262816225719921565718847869242591909897525475074940455024692989579211675328468922990913927653223707945220684365929910784705113552150866782662213599587098671836442747652157908847038183430231323719915900889476221424704487878744396581035810160928166626641464014522036973639650406810433305296072810727936882406744536036666281459765317235492306657049404792646186740770942274161578178793696566067754930796137144709418893644595492647902382609494139668008653085869875758617626598079075811363608444224035220520597010484339877172234557711404997674761151613888404727810821191902462871120363052169079088321666775618367287481043301775296108704835235022376009675482179806574329432407000301823573534547394806507467426824249731670780478170337864186870288280726665055625881881100017560768267559270942675338747522661480760995396845602662588852139264420792018177759049251910717796974482377302833865653058841543552829164436976178434634360027056013373120200381084220969162789321409167881499726490592282328057855135906324785785514279395287605863703741954171869886251820652944247092767855972968962619746425844780469919143330831457500140889854465620072718977642669414758127504846944283284121708333518652631073923364590358044432963279074303665719602852579897719616241696813307570468377043220545264103716588508692666596990194620469211092161783082835566942615659317514274449535525921406166202150193655578500255251656660984561353262017882849280641357900342952306840168067925132708628157031776214504224174634352342748035360805374391681946030480617057830903569098467362014239284103767988616760577874416030511344048915744794045189208608389052286209253088360399442592770065341247411855999427852167495868956596780996070435953359865033843669133839283742362373484541640165445455675762262446900067626622137557198429572817541077718218611216050282753356079563753179403543478360823902709843272242651719321354242672372633134361968710093716137031076993879037826130107776890658348716098651387064207578651216062978084112727074396791577240395876230520787924279788079606360392857952792503821656223469410528829476299650118378894023184624129164172405889059864552866147803056325936777355724953224764973059233405264054681991908194446399462890235265311538924554267193332758252039014708420797511678412426181031603809693935683805185891597345210910881603762204275009587340082216839207486481471231940760915786792146820692491180721770037823352201750140172985663146360657644552882476144499880798984435461475215122643566103394678722958453900473850084547447010021504505663486369190749498259590373797736232531718108953293627594299183795806357602441565830373339014863860530110180078933092568346130768240155715099121741925735457976624597849921816746328013955721683314347316470816552962352904694205536778390646302720491524855121781401383892667430691223704644368791098912176972855263482973543300826690708511093554503196839904214412636143548010635406184659377743451569792136731091458390427301125734877013948236353445333525857376465738569834514844700929094745358593476894345210507060016635635082499632142237599666050312086209717459319531955155514138133215883428973901301700175232111171159562064564921059338335723417132069754301992986973860786075581972745342779217877661927604250966380911056299910202969045997943749164068070060556266775582384691963931960069989621606471558365752502257621153908005675655158229083365811113188677356913810083097324201464719684455428912980726626813888567559998930794207999496412216683535438740793190234288705418997042010707845573000919468062406317859504754553165773265703442056433592035373789207539481588780227798581859090822151349114686289167520441981112417629021038494877667087304217141500686659226489262466610146020760369901482749275155235027988769376391928183731446807664541794199843167970409089723502366294176699185996835091016994937866146397275444286884330958128948911658332831682178725061071688990791092259408241029976064232508924373855486159336680924594456952839219685635117715028316624726997946598805632447204828517764362673499584880557956064313321676879782626662411070149290039700465717514089819803435484401592164810108798188291793424454682087345473915411992611158126370499715857914631894116584859410108012808095268507188974165652146224467516911216099545765175344864778872602199349540873483662075437489458188346567762173140160136296518077926039001710802032911106332412128279456823495780472466809648034862452434806601086593957849595530647211754645085893082861494546830483030605535499484975818657631916634050962879216268308036859797993580103265903912435201139584266606821685757196162629883491250100767332914850183222593048231517602354894615865347672748261134242942689567302941749720225600978107508048762671869971335886003696722067800415712584614689825530708375686480953142891784669656174490466040429045218466855463249970255085352401738671682161472601508099528129871580092704567984299273819699191510499431829512195274844991739806868937255672585027780743047396270919761517396501839816906152753510706263433767061581598151076766497761044041529026898795398103132750712065288242565148957729780050377628383005952757762970546788791818681633505275677248912431144947799788152468881543159029850968915123797354122801188071909270443626015208071022510345003076808079716446786544872736578458317215005190011631033637006994533263128714853923662697457846737661498630028457396804654215420899049299806470862777308272292788770605743479085445184982776421870163340817540627134177808498936180201385098487359222050840501183171211997504305973671538655921483078159523068135033700747524128018334360454152699772233110368004077702594626538956280925793506155786706380046312819335620730719567670875458357775890786700695604198958282464617858275432540780853560742481261033871074819595447339612817396126523704883308615432573480526794771430593008454787658187265435606792833339206177964267752823414591137665016759541051174262732503475705805375276150171028749933823050765663214640403690150730439909157116150904311990461247758857080231196214113159750362444996499465707608872785304028986387979095451465922191421570635558438226737856109822109818858784751469526071544411210234518668163066517162821004711035856827409518829932287805274579708661282321671448838631162811301518097827632198459892654746095769192944795608155029688246495310690633221486245698372983610093592834998220720981203173570969666792268401234343654070468030663825186058924379395585704724045326074873386831422957603429783106602577571747327710872484045789895791024282660875352203062391954170253637177375337070796656989904392157741813225679007670220923675381826422582877886354844960389116217265877903399593629948876531492165530551064638057904043630596449645584046882395107207624286239266190612616867978600378003270618885439536047164370933988987106188684943422958333899608933730568391301440515180800407137543521609548589698261719562617441763967075267667553188601987981174386680502124420266047441856992956997143344513244395817264895598144856791902709964355900351850246418498781547684500470008595849042255254506499940152825867223448293836711912870100827478501773324787667862151193758388754534066981830313116336471224564549860578758850011524124157436561679433622123654683224462429802089762352357063196556905016259168735975233820963870279856945929076935417263504519236967557769621826956907465666400374518020071816472123759212004657162269112008928911733716856103158730854833873557164063531728944196922625440933056101469225942835744209769888943452878757035083593010944131300817578621356946493070552633577242200244627402282859650563511385086338491405035507120533557528564317970908179022989772223930647909816851804179964397304267799471071742509782388970277693707097209938560632908523968295939496187621791745219005149259422199105630718485082192003671701724372667235226034616950120937323646533617384305008616645083279342346156055726371423214882522139166332506647804277571851256641121335648551081251550529242254418807690558954834648263261415502221615290746021298631766668674414954159355902810515343039211899526698261587004888021337279613531285947773542125818786993880830353250970244221791430814828008774365525472345348744418353722736999680481247551300682841170869181788637667197802369943668274304875444286031050027833972257384724071376618355383379603465005342960366316882285047875946019253277334607850120313880372824152015596205548100952784433449162725608613161474670941601163683289976246771485383882661543008173582483667462779448204185342939688617213063724782909445961049124116916506228632580221855460745660094132242608339084816719340305949748740916173844888203472805222859152116756496490207253322311610902898336551627115992869388874116590776816785928999825112566590921106401373900789591060734055818556573734230104954405154694939477524759695745812417096275168479920029313135706165697148098200433044353099485394442940947676014793427584851820639351700927634217951590315275479550649251322109773835343750676073194074446617649573625168366743777593770125231369960760141294450145392170915857526420220155948419116532207546319587287027437593975536657179935432512030135436843577063097542481450686065753054290814521729912386262229318324607706968643738527219801758939024546075490691489235911811853855985590739547779030473981180570440271264032268193083183076990825278861202168508515690126135068961114624843905965398876863362270174166955791801373324981486851617285742805329517565794429834675291337855331042022085924299249172448364597291350852496577381788647745731761441315793227799382324813943595906211627302303166254704850196018391954905124748912400557139385488815391124647948331547803287259601749322281585363319130944216169481820384128951855898447828260147783229993013935763528678591714128901602907357211951569353631855158285874144834045671501260155310666208497913764398268966861499373928755539060970733911799335943392846801482542324650858023574360113268468126664977594694964746873553824019821091161046733817932440208697809193613710480761183233798778481474067075498596732561390355197309781675000782921480340099128055067953160536571019194217830923783355602717648831373818087529772631955451744686133068880018066574365703191254693482730642894548550071150910719436564610001182061475059189573449551469860158256285260946657348096599241640910673402497425499195027518483650178874923851884225319150088690325221175099708109580908899567517266641237952763910394476229104771063723963312274080960845612407243742622998853381385916664916074789974382673313457335709827447702983030826886235803335360938683070168346059253064891254234452393290707571974506973428413129528491213476456158308259952771376660648692268282090624445969948768466928438098888447014806992630916214098193147078128770834907211251263914568957749907059928803135475590305586929890216646176061117459017560271155096003137329702098741340528187800026669035489364665164283324170645379794106937112324691758088367390025415472196914404671403719450973417003856647308266575817107691325385285754333038031755445735092689037615178262369290212910417142007047502439258095028401181927766479543815895658408894077565948315254849918898585356120162800287613685886234928509280863702338977322200170364079114527374098890617537442816408467877321491364539797902401994628198242104244113334397128320610173203622946465011818893051125206656351851180296806921516887321062682308743823143394492648780131312422372330045311287926369873463448819045037251690748703174871255300989246137813850302704813767400467768368614520415127588519861327665656381749948763560641352854823491287856279414735855141028063834118565669169483087185365818246717847063440567113726251012196710302453941948829943003789212722315422463212582035092391042869328733343060988149113081325332692691742121451103396325376291926762122895062762070239222241770056757449881250275140907621897425162997015026751815556431150782677017237455622023012679589607935348773789196064545320248287602953568336661424262692613872236724220044249278242170985437887671527601922022423677343817332317727570308134625073874702418136222821569610683783853673358216679929040828653820322164887048816842258464225509922276558480430446702562837176791030922215493466780524073800485354064430212167218907434980181592324364280739084730919612515970804638644325720615419040249932561180836273728771631601327880087009237525428876446615570808050071093170323758463002974642839127610125015399195807461152371479251934362615500164884962684936048693977157907274045919368387885632999901606686596433327594653228540162589865173397853087852264414553410659449827954140697795498159704293839083287552922416934108962587672265746142406268512161195955671559613184659859318860011596633783091207389512986920687285080229758842588582203490367708472959173664070643919372583394748355140761634580735247244380649440914790021009457035460413157056934282909989164173693123453057072554436613244508576154737800519663335347766441110285711557567491951391050719529668486555011496927945014093009930858237146022233364148728998984755885123184830533113823390287908380369195428509740545286530801672430888818164464276526023391051277376995332964058394349628166898605205759222674768232683086778746175278426980718488934466395233276980344608908679186243775278349967636700432396060439536092269318032780701338598030800798640131379110585551208134965116486251119467918238517572631735867360281242729038810655554771411100891360458531822076054737495682347529096425085418961720866774052851291610317170631211919314698619443590038566122338991423945304358178791188082029609612983112064476068934499987676025991702248946345910390653637738277402426270836425824442339483979779229514347916638348974282259767964903332847088097577586162055491859706373772237236148058207805178173434073401752489849746505479349830854620449315897230365194250786789871822903770928789308761439130945208151493067185391567217873161262795072706843223747858883521577051329340226838433164346021255370875034498937435835764947681182367714441211612660888737654342580208623673377173830452197436073427306312825417660762664350097546949976885893194492082854524057535107710577071553404003688610698446989006508950844386714028207571571603688240231621175109595145968759933202110212293354211314555482833938568247252696580206641148713776240000054436494821200114970547055434289508406323301208493418831869641291528581439984043771840916787963840115969469148606134159408867427544330776218338249044539034402532942667638402358549981930722780463021137082038268983498921448256868824231358763937915981874959900555776406632285431267219976983210150729283353573560645044110528511565560167671450623252274577538823082467567778894109450804381800529352447169698943723814025682782720042827350379085546460905841707118298286201516304421331300486849370867152731675104004179675940228880899236143073989265791847883442858934608157112985809810980860963889113120560557127573466142165795953229737971498156305341520597873092507350019393481855085373929046981616359065321122151321812701778484247556745890971697381063275150390141639947049069982379552737147650612618940251242257834414053337744147989735606452216218142072579891507640449490569241212054654998748177902639100026343390447376616192632014693267172296421246310737849030148566643870143379165588074719233128487486765120628936178164044156972101578760329899906066468374706188607589672689781023869939288456628391993476749157276118495764748300325678560924164177027819660673029624590162582415499377088522020747810918900659093732635277417270070294854965801913137258874959054033238046503221127159477100886491305436340636783914462936040948550406087579609128735157169792573221906757364887249811167562950483371084451696555495647218804558510122367351355398245362862732243503891549658055431786227984991406798336392242270576982070499661219012875826942873270485045958343827127787385512882981959056704687971509355753540499992026894099039564798837574916851161216297411188124897411595990260910377049022705766636759373968518198938075378594261341219557425247740382381137213776835175350236006635100456577714076398843595202292611705418768987886583524343387577988533104834138585361685540140195436026609166922405123138970474179925263590986363858057298396780241143903756424588861396877831881256010392994974574446118589891766102436681947687387986279637233494882112622403237469171032991470886300147308744277741622232292784319001473734661188822967659916184887018152921627876078257914559513240900366446591798679661012607947836502671083845138615486775571801800086966497839503761033643016203856475318808826643349489781745229813508344074832782243036809626996003001013496640768277191477375485396938101841409038799316970585060526394846041007378790478236564281610481678306284266693110249667061771729853259872922290052741127792599106000974470512111038102386237968904898258130481672430454249628455113511001906940079800580097804898028099983625675043782221817379348527619592534551735968731252671258904620997731700691115930199808175558722013732443049521165170973181173054370159871399848780848457881042602978947451978197267112544006174934420803832834548062643275921428294611751160725573654775700246598802263545659130510204219846027643353653019223736621777476102139725732328342774300941262581457704471883129629941793891571730457643855633405927450827557619830786393509666239296192949918677274518533569033038073836919052679755702148702595946018614465991721413866078744664473844347041338606165055295632321807937292079833603163127974578447639453079828682127264041349589467271359163433608550158954009005104877544869199185504718749319611919163206188740612120794710744713486396904145853057429261675450262317089973684665847218520413033057762844515114710916122235442068731697538248963038185457740196122042602372652836340424270311156934837175511654160216972161238393860796098155898449914419381404872042921074667753339917770016963487562142508363580790455860016600263254636593334441260981169613780852456368949445086785076284855142024796192772779918649062459712322284267001103874129972195423239594608472549815609660330394539427217178389544333633427935718859131615289331141648501955396158415205991733586563223351467574709774077000117672430302911095988962063575668203731471112778907824791722890287059307145172940568280835857044101400942065918123062999045250176505912133819713934908098293537971743964188401267472999028250243675627701055521227618015681404854340873096258849664220825700896784112221664889637470070080143114087967488746675597983378119452669405283512022603183032127128302109472958747484741782637733017195270372931871047347328393522395811957819939783560467034517845031685385730282028020611866255273254413897895945095165488654951688070467410154035453360479615196036706273386580451656078103705370607220642742721246338622059370290467957753922845347796818245027184626120215633261311457382760838556489486334694943417055061513281325641976441008760232710381837979208719487365792435339720811266188523568870642406837259516692505655232822994159152171145489335205224593941549770906133313108559451141949557892322788440308207572588622010778560518655513928124311839879730202940302299261221428953577937076728698843616373884411880076195756803914793427906191464893216866331774503528927745035877580557641370688443938821834376391441211178188708823395709158113814189591700728939389006677611161878904137701535648028468774690508477205690051020584447821405305020163591896052377869155517572019556864466443644772256184784052946239191641312976546551314284917736853342936368405700867834932436999763123697292711279702270043903151406051293069460397463285121889586920052185979036604593114527804948419178997514620833263076371500042959679458048946816997915161744653575266601775750781927645217490032265067328214918747849893437989168545752335226581076457704369535105487414359353210365097378537685017125564305201010282852416082786836369895068559505660391438923849039020617994918350458502884562034596690320889926695567574921659324271967152650294660712791723579075660262410156283009844060698522609199647042551316609733120487301772324074157075764526169352069864163862000330313465176945506888724365308383785972463356207494715397525723986654810126453065843377480992210342526819067369703489447003911961953720442341488052420123294747804482032544609459610891169108854645867996061369988919665768570688788887507082475581346809379180557328674203306315795538025108727457266698729307215261398449149792603136580004461514433575134579831606127923820878865519729113470103162140775464338405155545064057464697021231119003632577992603121872429579445739004298415185519699437630342722027624836550590559568673851200359564291862480419188038586733132676278272617141921947007015686480468106731652954494107503346348438832748322195685595923905157276470043987940160254071119081990761112226895407479800275413247522149301642337489430833331049660516500451200952005781886171077635374555004065529733116249132942520462898609066533746451960722609813378742226618309090884779156728195796291104093722827658445952507525110852534731052777922484911638700160956109990914809435027464453878467824145382829126475058620175942170852159670979947316946016561705325199624850642517719246939843120294570179181092850687837347844692724430482754466561937947268632415018554131807364565950777416678452417997341013790999533144615745213646740156805188326878911372160578394967552140882120927272571145733962723681704862370241676753431874592257971969702824819492319090740981977665385816734864243673333925074837230958650129771553688348107768630773214787912956866204259598499979541009989759010864762906927813508200456495786069606208558747491966331131800815902949102290709463644052055671769428538096051558008270692837271220892640425635531899972865044774067978316480042700720990533820269128817288188688971049523728899973597626237015792990556220132939282037819023318396690659194548971578687213671902472830776609888272803523671785826105524961520908096149947495850348139371529889194981270805365223401559179051426281781757471678508485195482116615067005741552608723554563644183120463780242872085484761515355146645015262528902346725861869152082501912896104205177214133597230933116388322404245978356970805584738595067938347577824988017889263495126579817305109310882644464660383144062902926893206521277639826532039345443776848389978399189251909954490840099002245546283653808018859611396137709134036408627583119460161656228658526090618470601656157871821924680124246261758409133179558034327222131052385582826107320047746097691462768846546957177919783948592501413314800893089994034690944498743911532295349723098896861704274826726315935777634178875415343887170634571394612033044982659548510945989793299788578647642302718450450244999160479749320769196325502353879286687383670806774806968197092135667575633363250752740317620183120502308301028541288322891095728484192085965997477665368131355357777704666973367244496300313353208373094662744755733793155658145531397371434208944847176456568562764194101864795792375579519926809785528814013457160942426736212974397500444014988731374829202642710580584849479417613958171089583690808590999877514842957743694329547162901297200463893982645388904521662516394299302707858051705217612480222035841086645458304779225190880390324313973522354649985802108281445934245120621419625003480539184628082200799642958082759902739582803865187440686216740263286245713538675584843429864454158793867058062623217079063186832400912811264424972154615143883876330499504579818124323911394229084953298602841170323284990478029298471444379906764863613243165463545179958407518127869122617792547845598805652094045177065280688880525313083631722224481655007139761496742563470231606011481710103019411222414536066337165869762983901773002375257931860937345750094975048355191770754374460648332620529915631061120417759496346640898660947399748549726374604076277248226192865853254271116326865362457124397329287094270482059669071482463868060352861641316623270076108118793073683484458033496499280224628962989168743660934632120719655801002526563405991895873509738566094065308325924857064363824345346547643976818617574483199138144984056346580136506480830582858997805301085110669268567770277157274787914922055746619312810348478858430651147358650811788017887991539979215571384798929925770145732182690928259284145585857279376042801780611780462016560227562280654441529291457447691200921144196018473196641112598943880722010277836560156558369748296919769482269961594993570235513769236694155438787068954882852662946794024442666639115827815436679176295514027782529580347222998784936584861864681232559877906155847620278390164385012317838359214794571273597731881312832178912843839662775635539780677022644235888409953473555425343167519951383099685330009210334672076949212341302156324580208142202454550354238563334519272205314295261250294666051483102554538133691719364496232930925519914488457832264469923611572960184534267029016515455034013152686290492916282269839410721487942530736043419918296872908248732351831908444955994698750531902637717213171755018761830679230842454385964758841907483120302049753324276775110212740471916747836064409777427180942361205658271174957222516872477040794021154239385328043503571575478535659020555466308992841273113840962002546729914128345380882715172101488791610478426454402119962666815190031888819261303240304225644722373427823107215635579334169738516762923944953882277650230826999424089548547317176996416673111218634741891698911415735771845258361078903445123565283015076989542637874895993290751703552458790674522394909201013717544271369701692946271502523146311643345095258615745844580251438436166836601789167531079889938579349234091961335736329425484626445060148560536278614821695190268709869914850359131733305349746769672045001343382464979439341080759993356789330476997920616769963994566737047909246290410558317950204860967837512767647090637968496241663589552015004398606715488192705106966625543512633390853916848354174209810042800451562872344989528407344028623779459638767067279806673553005593540287857085942183290719622750427822296659530047936223696508776738494518448278733311715670275600441490465519145179225433710815943185426702391207466432421230959123643357997042353605190070526169486857622967366635388022510269356933514056180811929733485308568493281980519834364380275555773275766585186935432694297572801422611964024239773245647875836050084618973240654644085701285977443007565629090236545910930030466362821907122625274783220252714839301237829540351846015693921565367616076199293872564606756746198241095228029839574876033232188484331272389023598952512165193635021186543527391884376005165414245791846789246047860019036833307513235330805172338694596659365939819103766033567503400389922236030265395474689024391208782864008727490662228332315014021244499060176971700051126980202727626809574903456494843040648089307078532774119650013546540352333619762424930531271702431900697924907072995427772099279584279059595996931273851729303129348554144749882256605254805042995136983693902216404802200649529245760671355533930992736400623070275667578881840684508652367177159968730030001996148621638789429193643039889403189358694332851196437314128566941775225770560767684187774846829643015671032378408417910529398635822904690209206748802082004666459373982923774907730882201851326649793467199780347588883566246203600271777848146925904035840433198355356229057070978151200342014535492477413148280121235454312256296023997577151135318901372211114263464646977083811995336440518426030763918155079671298806061082212654573883388140849919298705825144338045579675202438167691491141145218218621797235396953311917155831662553118099620061672274355179445818044455293629602279045540853927879834402008971461442089440827077282580119468735204982630819356111855843551761879169431289849886660397623889241043888067203490398218190298213337864935799316219995732821331133050900955937166052923553495521586053265763740900948500343621233079186497024925016525646085680623049633901589500253166546025043937252621641081898818232204575893762893871521379581462574579196565215734009941636767780427027932289739217428721773064132960336679956216101454280118295265187079156723852763316848561007054969798573129986697039220411808019324402283295799314479562589980990784822270153892320315888392682492319696279597585979933528285169622640915157100118510061289994722704306580337066855585269917048703817350186696875832664002180205423306785429983186654196923058256353838403856266137339593676207092223309838676667453206007760181032838617220284148243379020916430148433562047278494956004965784774405894237203098431046761430431560756566167859189238622223404760581452093890956382570019054039221539166614187947990848552314215267589447634180843359130004747694034190070888436634367251669219062146170308564098296781404236061529030971130743179457081622830353936199322391073805467254066608517313412742726751981811584109357790572390198215749743875900567446580752296628751152754935159402224170169553437454687404217026715211605484642814761710254123451714805149242857099106231944560989275033351026459011380655988732657614674144964003230693713491333121030345799974388094271130235601389000784254774359485912893848576678779141259165434164928661941344201334262935599752819009268961099246167643683309635168911876124167743364225535495645383847962269325655441570607595350255009723664177406858808893807027322320315140269320462706140607479530182266612435937402027879635157932692898433268766660599041774386350632549991835816109678723706645204350142764262509752832118973885841384432848048316135374935008683726580174853535031576682059912361796044721300216110427539393657240949990530549888802711673378589858029472494376924543947002303629263903913485073870689468473281404015309792776972949856825262205650624334403622220643026086473895396664369110397881879195147153300054884805967560071394657447111728112554385593458723640465159648795475095328898711099583139944758684357905612150189349143492829386308006336383574675137282987649884789582886541633608369026989716354193041295851270268520319397479880109140834923933590084095636578008511072091662690910280041474619884331113524170167125561824622993815492257941748802078250939080617349043793392242175734731898159357404922589650740420652659328181778606860880523719859348191614196531281252512256613114078989824049641722203209346475049783968398398764589391134290963314599609054236480638882704519126537486177081749648521221650111406274055282956955307817599291412746512381978940690418983693928217090238327284375860480914588164730244653753403630590543281924732210049840860233874705035410661063930569678520131369750977001504928394669466710502615384903318687114422772238912922241964035821740035575315536295387172411087917488273319415059507155622861522248264436656245013626068161166095030133997783762053970134229603034439905382230553482760799220585186149844638138821545124354167473766258107815191128985441698379344029825341085902012226042569426677181814314493797242112239387399068429271025047086310303978112607577367340339608420832144895755182642749104384697747946695889002180872031950089502568788609815427002386309100073944676148845877869866197569206482478881487254585054023711439181801512175003022041954513736944038323380973579459652378356502551240180529136993655910703616282296790642169328806526147998129263634275568311603975677134428916746128463326995017798018644402994267672579093883343827162226823984747832574241668468390067421048598059270561172228317708592610609662025625858752730995768375960264454193053113706791069336814787525044791436351387883869905551978541695162135741364383108119982546191538234720345298962877960842194929050936081748925687886854816107220994505818079406264034993993446245203855469024951744828835438693265947294354132959437528133780308418159022423841301449497854274425868081875955421676503447304911542768463057689593256182956123952528251412713918767517384538325932877343145741937228895001697909646077325609149646991748057029853571767488750205675631658437485835918921872084968762897243927583124911077359959595670958398515996032756284340247986544595551507633545225989397701287193752977864094914153083772268066424741351588758784787069252005739653742202502991614669915967918277110866251351665075221448856712215836532632921477152859649404370091433270128060456491464456124110601407116069810023014562045091664876678994761539564104654901112928857843193430766946821103190458996916290805006467006434750751044555173644075015160599729689684463573968004117169873600722871454411984556897495708486716781995975954454738063291718820494441850993826237605057179500852599884655626946926281935635512265411168239107500593320717893304172908737586220197551674679212043507839062281844127022882268382400513057646609006474483681365905565501754475518977216385785539989326086369861492474925775571712873986129437131464137442940320084295412083356707402201375754102428374348519148785255765843151453043271476348586849828922104890409060722655494196038237730081350900031442609977012672255857668004955686408599753050051583910705922288959579668363707616047366136247881237352437230152607441270128641570392398744748857800421875539305612779045250529775749792603322817321376875983205511388038299314844148711742675308116247360751623183974453533778861876466696886882439335669768609658776754643552114152494706474415480272892567453242718754883717607128871024070885657598337471205410242704794734402045165938688626008111241097787659815476895133632533137330703516888040534476300401738532611283987191374285841873876590443656456902127082721098856651343603769781669089973980023032083999841215395107128110412961525137694620378353782194565601356596165476306440852318996736801941176797143653032455707183102995983361810766498585830407998305356869502832589374502387438502223827613488118800091970595887313731372036304511100963099202548046502237699784875241542744891782887770503899893683075401497713438794031222052225086116917741434900035222594135742988807279496731373115220740280898967592468890293257561931530004339946450057316541618441367516391927865423086774625599216704590270461395669669882486298222355012149971989467853400790194472853150843088442569314670343780499662920965539191281538608913031942007549329152041543946244311163536697823622090011337978362128052525034338615220461877087664486575714875056535209795048920175777143761750866036474363426700821316821706279758217656499822635295817862352568988750831638400487209448671094830639474894701926520653955074402946265646525782333021525213294991251411233652181477439957310765893683818951472212185132114783986180997471613582826568363395987769490410074821506267989244967567794343059866160267489962359601835307731917452200633775576335189282044198839240215118804234984253740661084442310345013770425430518828635900716413786923540152082252277906641214407090334408320614407122649557472285897540482682534431307443424168409567975390564289141050496046889844695781553288559900309278950911263975135938644646503994031896805757519321791608587242086250656665732642126055213634489205024771492322956603027829863993488247738976724021337727211425499947641392326294336064273154848445627948385218132074232755059724791216521698588362461642082267849512613216215640080361003557321107961885558145085056043987480681007262405810084922108316320215775029885662120367696376953536543886596207244949245005279521431927224920453894478236288028226542920015435889253801459282215193917355947628858260801231543582560313643119787989561212562504792592945040389262398963281098996883747696223622322775325760462287505575682369832262944158386687186620010826259547052855032027507785585168176276879909046233409503082556922439617181040990063053995229980365845162769049135044485927451949623489156535707998085412165966019301209208353642477693050830808016207526023682295914494080138770095875223317701730401375393045717065507684787811930366839482998560744257953027522240492551955201364231167711944461149902410203595907209059239469153437915718926023879413978910493459769182200372670442596142598160319971843880993756608849442326797961239275989940494235562170098421497292375380407572795390801327254773210517102517205326264992450353564773416535890243312819019484515059767975788723296063813586813167589919417136841284753899946663815673999067296748311001487655756879240492754232515218787809024701498537858142342257258991495995972399341510144169349394318059621697326087458707035682874683028956622258945779298684512183384659173849046382433839485475457265882648567536730840986699801202463061621957107564687547770679441988831994854527949646545760532224248431603778752084557185747664768926045230937211260443138910819470801043713422087258652677705863888419188803252505083548371251307824020964575767648632338625535481273069350617661630827336951023715808388981342288426095349930251351821225470138484947652947692516169122486500159758870187365074264555605847675897789221888995241234242192147539198102922647455979107257623765362430135532815149042965729729556933907799007071100402200493755103446391606641942847756255471355191474171993625278731784646783002417114002241682858082008945558505439690481496318185361604010907838664904812533840145555800556767302091080081475349067127375035022750779943093745535156895736371515403083126585334116949002500435718552460769659697252476667422345344940898930472596090705926217225254632710245506019563965969934525844324426430360094606883142969299836563675339195177843022275281601552379419242238065007367037170854278174344487315990143735858634360501404489284780706486727730419732946930001529639119587410010063860024246786351760988166653634103407898361119794373713260742803234198483042704815476878776210934375413219505250738293548415511878160484363795992884505924421882639968331846927725925073991292822824217911164253059233713209404279832475479759669262650401331352302734333648800275183725632960790485839072460484966675465899984869484827360772851530795970060899636602701481825444829996847238796677369936950969306365073471729973510985331682744906664634354891993077396445746521542066753567263172578590707486486606101515229321668605973063206910416967700465394982633768472058345057845395411070739429792081471674624238355738753474746253809389136615301370717877381943837025685839979395630709425391104063265670437908958139182808434275969479148933625413532738595406473307798139406737922527834749328283165679536172890583228440556038309598917379673410480506834932085530718227267046837110261190125312754760466074807833409951517190802717786002088812986986775443142271031179778006006924899337992478692171389797910503752809728183506627486855381750806386779943833404726381355254981150955563597243945513846083843817213158218903602474590060105816061021784900750446715587955447696399390059846106735862972004805296187404224206806400499043059999743944651002324287735423660530226564041406647285016052544961544612139504171675331172028973827034981435401169775847419671279849057670818098901560757154902123807504835199731350591763433462178191290736294023345361620374899285455242455440196302570335822533619418419336139796111431194503710817139636115070248337857742051058231447422171523708849446849195191639498665251465512895224036124734475868152292373672898294951562576585396994971897297852454403288005409275432887872655072646844263374281133121225583989307799377543275265455271649981974629105799288178757606771638491325825642380541889722873019367397353284156097071736100817712352827082692098545387050260580054665561525337509164234333993409549818374653824649126428939242183398974736486659329539664773341298011718482194853729733840927811258570030774820838601923858632899729426131193414941396676235718708945785468334603315909833883850178912991616794158026772344307781651396504003427789714613078134309505144977526402362987453808381094344728395821721676192685378665509405822405197495426846623661086722796994849298448139122076459001972871672795675627881563162891538633545921685389004024368490767157624333506361998824460418209057480174156652750952956904539465196273556642108537691537786842261049661614636752338349120591082696332009105629849909507590189072540392629200901250010426427312625892103946364051202027446886993075281318439153672822614758644511066887146106660252266107657855538786305239997931322343290043709139857547088367471568036426416685458328922058520297925892392534316406683318581064237045668160095357631845024229304576564162924717977778717315092878907255018128011299775341249755138920326379937885828584417029178816567555247520412748370226928120849112274014455657581822123228005271140422277620709414697633267228200830934328425333019246495138596535378388041521698849851930214523550654393726491405312912338667203042209240996009158574938290720332772999570242446414968028406603118261311616295648293189334573144862151490778164958526717918811620001391806325475910432044371027172829819310835024747777199698078133600473449991176113960254104313230291919054514865643205084360274155292747663389086570132964461394688225952071592241557579656564385230925548875099552424394141006008051540815970144317040686883737626905662266295446857044395324111167527460254377089151803793289247275503600181226000451559633432706166585070601416276572798802172852698280612024356041106230511730732456894721753953214313754729958663828637063044833141262102374049416845415092613341909532043397006739273116880925192708865746629339169250244019078260418494399772139146840453377378650880184518738306491769622588751288375860190974865962735187214418082903438960843109632725244282255128457790008511907921176429321221753688452653999579130378656133105234019314191784115664004095695226946018252761365025917750007367994960501485144809707972941200723589616848451095313905127082543765561527874103744341191055272761049976163238980496904566497420306346249261416802421251925994118964478785712406989670722340151437865276213576548565221299425650018388270804805263987512116776896914172332870961985717032075264459653601407093431212113083682906117581339187145795578741583360977114696409248137124035665925770072448420725984583974720648850407473090228730999495375169607596957178726057298921334348768579042041099641456418996162737889347228119377397726884902388440646699758651228676167648760186724534370566735709431942734649305815760025783615143403742252874085371679900194463532522010735826026352482234912512457003165663417125025375309770190750569228559872235586791527168104900411002777277277848564519317633175320244971232054145304727326536844405998032631049414524047365212853858983990216030985836906319464470647296867617787649393520143999192410547925365749664412699564200772744122997357400383709767657914099837019547127992022271740962745311247706898497561110797783539025727216227920170939513241307785863168818793921641389413896345000956517871665032110909131700580186420331744931306801975814176364697107433846527901446880461286822255434936997722576891932707562354598696491644106417984009642622488651371519120854128195032564213413376282658324821754411850764143655421152134849392399672564447958799048827800202073638957677774799913789350928331775985683600847050629676906922141384487993473889563452881908773650752512148860308467105608977635077556140969186791021898824727452715367297336996431475290491730587101347251465056508744091448195881911228273533832195499492714246149709414246193577942395030407145693556472484019935766150212368429932794840555457761958019297450282750100277942552888444806645108357676343016691076071860069412696966799831430208290888174463842697862949773732520723952821842485012072304517785005009254820457380315450100727498836148344401352151128577644899819950081403162909145761070526430320894334625805279820387942846865019670274525582882418768236765481110221621242794512050601580704274060342443579167104058704182253028907489663413278482978532886380241901156545877148592826518308228503665486773024109593872270816175362321781433548227672965068676790893886375480592379471266738512104062963341439031943108859482442219655784391851582492897665676938432709486020237431031781346548752428048645611130324791840747489231304087512556539953937835788043487713764542509931563679843417311833810041718697393225118020540885990652800345288096081539681084755282592903239442605777088508170334736820523622993070818646491782120550039635561377409321346308052446694788148119780952384228263360684605105614324120157869112406871132895597773745823929814369779052347985862508171050003408694615453502299019069657131398459436789860685475287462492533907468741992033984773093063655999123210334790061679270221654684282540169728608061909090893284677142179033676146689509859575302077540370123119147683441333565101814419926934648438456796763161591545098233156673291831074159300626388488693626491679064614437849213639026121847766770416182323890301047558697546851227216369203980184148555800710329297726473172354245150141202584235089784693273926326774850038515759220937872547757273459333865639099108225760229438991939042361739425748266486826694430734821099381212068009466317605537664875490601102729416065253750146179461059854320590279661997514791457437977907065276689852596970196504240720353323697531180638635594232351409959156946478398903642261817209052898002850039136174338740407835810063392446671279674267983364758751085028355490376190178398198678444822257929584607450668769650296853367842654082564328741112854824223534640315241066431861754320743582648585843529078973144409826010799321070431116838332708618658412404761721922166494242453935102041963331235035686889721520081987366701095426175596414210966163446995972664522635132374835994088218089837537220708220756391954787786500924005554087354824824434728473272382940777491977651680713514414496499610676830056641326915689838502688057744571683916214489446246304620724680215364621800687124591625701526882412857964665833292449186752261553489285618007377595205784004901169187911127616269380659355324558732364435143563443838282118413963980812149633074783806368575293229813629888286109697185947326779311769736815232794300398285203626317649932582778781627663773082751997158585438887778663871197445865417853005358094441141943098858764665925556502512378815770199163447589357998162889949951986003832532490576600984902772356379021151680349158829205360894797159426433163342898291886930625665577050563251523291005973462786466817448846076472715918387815578786149639462007500650306779778544021642234866170734730623920474325866550198626049426384560459056769073042619105514406011726431169732423536874406952307766610477269284987328380612190413425105495294766304135255785080402101988982044519506704047040942043347707429919831190134873229395396665712360292887551416874012853217774939472094605641705707116923036500800033519196206637124188932857068636702742480896320783791678550123212716564568401360434581632359279205682139410176120898064937412435984631602008999406899532460809732893540888994950014668666800946399178873742036100687630079254896860302894413236643997519285540999398757918376683193456056865760771027297042557561459409028541811272046302971437583464929613606097721487974484201963735599274431073812007002617692459217489078133830997095598591782840113375514404572429595409207178138812115161176244939841226312468836187151126305031925430268857583712749432690544886959950144926446674649484402438523380491527423394531859771724476318411305259261308849214802479453698881984091374666423163605474101527766333866567200401518057972040876757199451198058382116636532990808822715143232882329814537452389265293237679233233910252466112884192718348593351741406593681425388670233345151232073725777630211799154383445700084118512531346286814793307752928822695449059523834198591398300067148665310450901082218731071674065327771435526567062460355029406422102112286196319291499787155732353494107733793278623511801472074709131252557130046742574166314994917162519134134860980767579186843368764830772126884120641018565740970685735272148196065992687563084995494598874493413385685777576131225042613277429313854679721658791245586234550403818765571651050902058279002376959591302103312700879391742847420380973829747275488658857449951319899598503387967382824064131481961581333542281035475684076236447430277201397193618251626891320723032333399095255835038201167858179302890212050383405633253628090999135316907869094394744802272013364195012931325342383583862389732875881226290980027488901717781118163936037699088965040650917067324428765672602753673889334064506438892802376661720699684908338181934474354222294389082133908843344627146804752316568682141331943453305224353639273743405363327159295741822211116943454405376060552808828257772500552124800958730955874060882362730436411198241628234783510855202523842322957570809972824326907919320815889760472044795376794756951808546024105618641525705497893949508891835633491266333679479326599232959926695561306215504039524259526821555407340999959166529252780271537790849384635704822505515311015008971005880043800801429853706880832396167063870503185124544705986377083679025193327542570164909642329351275469737916142998415330433139864972734625849433719014157636193419639684734865195753559802750089376490043628312159754147061986788841160391995754327605514295505673530035776555371518541041239508738295425825920828264811231894767821091106124406167275198461727712541577121172362506993604840518568355467539212215327401741444899617296186424494348173722231051745309010668160017631013122794929030341870884842834765991019710533166533472566380449753533125532642724841824769314546240074390696511144475933101032474116547607230787951134710577371291943171095075990151260969908541975299977452682825402363186239912053103115384329903424945250127398361224796629062912649289837313777742738070138325867594177913436889525180805016913704491023195050897881480611503791735748702535447443791949889589687448149094611333897896359310254379952965061436604234848697605873070385947863343246792013171725498742190694309017826588322459315257370924702225371668496840058260421091532965806813769484360960468092136349975592301311096996021112612165954604592212475548828836056439780019732986607321568809186362490574179974318158533085005015274172784155903981183042270198547144158634528890285715047477611355508413820718832001682833779151511413315709144877920204787358742853093747108864182857840781065579416162962396602511752113313036040061266757960401524759925948264605549118510688787761674352402613775555322355278183363803621585510656531251598935206974612234918908948285581723692830046657841337805743041437806578415587545302021003334323279324717150522955964487888525565059478767699312563246214125358639565178850762818963498678887482743217700435130718661019734062475438305417224611622336507063515575025738507695285050061252103965171031227798432004924331251781320409139981819572067217681378194687684480130408659605715601134885088709006615770188765852845443303486764299584742873799541622188743968418575372185295734248161369967314825259333002788782440806910672662914496726972736257506220569648959929893730042791980473610233861696251255289859768121034853765303591654449953730055442514240556009442943594424329897255807684840837627246663525903710749728597182181803586830002414271285845896321640083636082129255041213637336748610053170454884783025428689179372616494369625327583153167745585628392671720935584173795262630353329327246478190816818918436570134824267985229876191959775153173348890828403965458352982860708368418996598844448444698668367127759502711799209307087369349219459269254585818861237201452067411099482450752681760137258027235229363453613308761142814612198702554301514900012594495081035919305760457535385681416705451155255642182375592147278154839519025410356007866901874701787497189755615726850111055379975165030952037937546961653332370273627582177884222102605357786484557877507579973532288695289812184219642851236268558862669672677066272224750253601329763456557454473839390658829699627006972952521799790745723371304464474479141776465008668734454668645846625409584347846174549271668772795791167857660973866576224137600358553771235399690282788685421537406351576201119064089928328499043763655063453331629539097262239952277474492269179853810772462036285532608862108714686553699141903153544712148732954141626684896278785907722916150713049160014704675746402682394454020608983972711470562178861512526123682863621214019488811471599919822652844132959039095148151884902160308014629730367732802515950894624374759917888746619897744143651896711646196883699284191056961690688998849662164237458242918561031228131718680551111498861706239555024342636021584074690297983011091830034085922118901387290292769849603176612094225716720682651290911521110112937200086566084263502621880063394343265122151455881773037122423299434422852774908234558138617870708259717821270173811491108912628327762636199189494028672329227766229307987115427612295127044252564469792876580174254466256869112299185609507201176019926661167009443086192546752158344849184540466295708205648565389144174885731835495065827168108833223659916872692839630692120732552504833782132702515645744475205979597456943576469035254414435159109745592717910049395645418566629694036811073942706951965786335457555261417115550246263894277212706208534544600989784461647954897961740102003245171032173477090980900098973232741102235912626376726349569854024112751042980723682432444713027750929522893290098328661691828977093110493193807624272665958149780298757228941679424196091770368626787145120646080934234206763519710749326597689381489312148154832504214185864932454121240734306257186690109390428072293376582910911013868169864082134451864746202345160821256030540859969835279522556877658887713191677563735557815249333353338401774118676105738876075078461648472548741532164703802006391620498055802506847012044119832985875850961373460214634401710283047680253361063738492446930493797310615629088265714881690531661152556206865916528957699744716209953558902371119994080252117318192789473913368399238351878497186365157259819752479368093630252347610790719699426392906271268040387666779869733214808798062855177947118332079864094913992354434422844702865180221665358610111497110781724535730002748492329885716412541747642339415832127928101419512857372658558644355560672614004546863274805814480475295312214945232378148303660928266110581077728124152565832808959344901380067775015156363285297614124979918074128117852540644147659417604788243454829672406132958453852316020627076597787376531606142055323792229394941842747668733382256707140198345285130298770708493725477346324676590056717870195799178252481420286346720587972512641832228296498380262132133381533754470096222665172195898810234418680206705295596526011389381871130409172478909056640837881846205874829411059173377717050665453323994104001043714152944674066783789249140489288392870276643962579382712169281066784227990196792128127633491001459753230616189303822588735998063450168011433824225205027076957659257476618082733819907515359333163153374311431477138740849914109458112449591508048580660626594405791906912633973998671110502760321611348092979687198820290697222716482593140016910007880014394903368959795225679372262574725821353770289240805169326642966107706788657272447735878188438813406809474717741996380725742240901530802470751738193468040397277810683875788762155582320350860338083213115074598007255051099695694718271399272764709952122978917404671280951486194390864578317182550380656032137959544916917955977045238498354855201459185617687408796209105380327455579472777207198253503850068490407109164827304425114756818045684265009701942086183531836979602429265332981326978375648172705191943589823795695711160781406758576583000334413074119478977755888028434651744796670389196664037989365472214927986458280044312031948565454456068345367289508702218380058170748073104884773683574033739722015539988297634565712323507767516020968889125705749445369189351095319111210935351784117393333512996130573371671805957287634440206189836850407736553540179859397894689821731498127315585554062683761354193439510415750003330012536738864778949225750039233437134032271105546465864886970719731043706033933214700562082689771166337056198894151530416959529933512907243071801816161169468099476658009382062969701937322847906044954147852903126185689597587959300434297229794047138326171834922212304902414484546525011761722658353855383217930405073411133060583280553784262000833574031823931142719537002585574134172927425989048139871902493498056868402907344641353150766660595269245057046379898603203564328217571276075585468399851589211142924581655254069059700621843580323920693657749932651018457965471488464168545489449983561317035528114265610756060251318458226295697868236933165178234601020154105646606745834659538878645664229262243744640636636305954535126208620904156677024472479889040510245898138461878325159762564825969930823845120066960722305400587376539660358153780288786926981449429495740347851477621677089789476970838859810543692275683129251452417719845354468551035089434122688754703948053790061735286624531287723661223999446031357253885309222196336748115867773153562790095671370273397030204307171476532813265375472382456774817813518282808616576686941573253079701977733839684746846497540745328834848834271249681372517761280072607499133495522262749691358937703185142196358516360742150094408905454440457598928650626755310805307439402837934383845943550227683545413897601898218355533299387391974699852321329370353484787840668021439566041423144385368956966809448102947761262319469558123664105338612287800922629878309924205708984976502990193196364135624170779951440610889318464609385021123370752721391683576953734946997616693253852673402887535685452731862891021759429376233334187994097685361359132561729959928129890375012757917657805164218284646086208373423467620112917209911603115452401769566560593011624098155192916640726017121388163446365093084782425345513998444719913418516815577472917087536955039520657536847289125060877575574247176528859133397970408717820876991641570477347016591136126284857108470641218855226742604751801768526779982991328548901831802310172260100132214952274665572845333262204372932223776771549180097680136475776753025140358478468464368199387084340500749334268761778093553904575370752489135644400685982149208328421010009005844626908583241620059055510891932760982946442097997914487853213922661678951335537058654222199139874537939157105164085435375912492931245894806141989594693492023081837648241134790324783376024105706433690133907471470737657666158521767143186719534553977794632926507588170654116986578399811289486792319937966467020420307949359893169883831654797353499406995431871720197773527526691618287706805914641535087849414928505684918419939375634876056457579367352228206257800130948523737640885462998776878360825420575315817627607510999605624510210937818916264080335671578985204927560675720100654032421131920262409446537878639558302494447996844485676039757137656637037578764508015108499029761655986536019581991996843034315063173399996598075450415719141990960738954433837884195036654042656332994854756040409988424248544507885817235301558371728994780327763497590546002499773273949409310000716913221199028622110007126577469325739264355274385331644879417423808279152883402098529911938677131984090672746158537568714718360080484474338461966282073443289567361384700716034978805168380253529231813653939380566741223453079191540026576232329169718350172796694047358703990562518394757027339751171615143037551915812220698421209592940363499389710220436439479863911577938171971610148198317251637489467168658106344830936058018482777753332175639682427510163912975338602573297036449028751705329778642512763341065115818651666885507610472983953487983128318088279765595027694068282813197206831350041766407935657777855492720262724706174962400365112659876176183653983380685458238372272874845840518672674356097155211173229441176600233437022996951608414340339259414327230109091374660140462617887428142264068563457150878786549072045124230234103515756155688123295972237729426140022749689017250548864193013059155703324670379664679359587747854179249413931385606583588516323762789498305666176975316226663716598719700350032998036145661948585922339267809573577490175760570576000894238609150093291496389595177793716235413373157060606351904672042951064872075123975751302789483964753760548961591718783414094530466221764324508567469427468255837068600717032884845586300669557880637984773878529640809879094437506321187350499817034747920243234369798377240002453496750316180281958666495525887464559758314659068118769974762253756807924343220627980794332159691916731766926639398861676472985702726983472054365435799224634832161111137843579268210213075496994051959715679225874957210431839892494415812457683699620028365376640036183561628320669018373502223626410272048207718950134811734607439504410205434721688473125254812618209238472529576052319199833326699276198312843621929065389017079529718497120817505797413456542468796213002686808617649803072778693714441846725854783306629378242868838230492852453572277396204069558095801082028326023790686008584288186044924533627432000167673547431818939870750602525248820428263288154756653312238290832334197537654017715086145370170600879446442933824844483043663430938811480702439586133599956660061246250309665602184602370816734570779146695800672363734914080753449688276006462896769997518872202860559702834545644005931738250188079625402025178048097911305126494264915917451974112287548257301593207665018689222595748027204992261416429491527044606893125174358997025545527207244594614245501562650661656032242888276310993540300814672646623924675609659151633897215600574358231591036725364623637702853950157650770465611855766197512206287122260625853722130994615269598891502058323914150248739954968208635994093204654565741904675243690253472549240541576629241835522967635707744357339554920304323466440251160705446501085193622665740963441659225296073615639059988178358539405566650962973575263644499098118127338431258965445491120723654666287226455531446463865712600329471763402749567257893878021689126436131632590236502458009903486139148328287980562648977560168014629400742144886319688250940672405046292462531070323914913498395733753728282329947537441925063423713933984289874728925401191609320184405780612243695897650432658393502583537089389222544607287733090325943442525763991072965973564085149787567316747237699105492514917832228303757041186658931604936676380641314578143035515146643733036526517899988161689498128889802714352081507879296538522710911273171046363860070898940105548029946508609117092636681000209758757431027326192263238704039440440078122294353432303376844186032675948718734534415664938950266803865840505461212736649650681190335808442549939952169378010088208506658421447216946793657623929595378882495586777039811639501305267186796205638996008067746384028473044454865906708982696464790965266484123903921366371375627639552026475845215847291852975098033365176954173605465340775557623398788541496030256584904658782007071178389501876414896367728164830357353195394484221755103069544169525800115438417275581147649097937332197853372345632708969951527355853194915137479954194117252380867495767941457350459368214837932953735582568262647355651976637124150584295744965676263348891259334991521972096971726898217544892721711967103619511614723492233551037185178324530908098253680897460605969421487651106716111248240076650425309687783951978964009311403074073262015547656378354572546077812000729981440807821333894460458540341385873857830620021132325238702706575959952690494420984810557833050536034754711569928830851381573076272472203550809016465280593205524222018671909294626910423941037982238880731641252151843956410783040640430286084210651031926990484936028363803761503204387257345821144048687635233980544165036391470944756743112193790370468635355749735332415202622843768394374476042574124370742456605563686208837669507902285239504697912244583900138739294841221622799609034165642342882094103134763559556910801561905363606093577863428842561313783944304158266535987390766117003791466595238376239119149562171561957277656697542513532289697307587923391237365753175969198039749660322268220006334810025216739781211557289543063585732948591700413110174692774163102753103425281960087158126774103691048879869989661007578050600684867767445555239125082616381555419388528366992532194640835209630052174109879631379295370493157491980432716449036336421683538986657670784378511664674629968124858704553964438798322421018779449451572323558848742785731311504562050465277248555447582918700062698196846351119491838500721287914977801977978697368518563961227257181109766339608372023256462501411524801878149304061212705659652208337946515903632383196283092031136714377693339437111925238315953455561297074788699422947034087486066344194159855727217389163733508854350341988096226856419107577175824295961660542851091245293444964711836428071823881000170575011438241206971186107812739794366193160487307375362256086141884607316184683525481837881944099358277192762148149245587878189720168614574257882518459135863079727734974358411750767906679919975388045634520799938611709106551653947744693730494533509772679346138733252224572216839728435303716055910341241411111977611876360091138977703423535730353274466541099583519481486105229060279144829904571921489264574611008567129263512692180966472978904791520764483424012519865080230344470329917158651799671724781369132133809826281950550687996556534449750950601077024464098858622731760404834975535090652122651117275275281043971815259877826309633431167636642787438399249579597506394036718202304911176179702866637213670671725807575552145178767740652181636346806417292894411996017777551551541007689049081530032959758617286358983164606730248344997481656642359273796206170943570865672064046884095672923128481443476883615940651149953027153215456217633622217927225001622488052963716576409656525861798319852667799056331063601830381866453163490718916757976029864107885930787397229519604773615354735693734251088847124297771864835387573588158461688784147486605254373526911354313124281342556632049977699936745741770539275663104341162436633513197803413458463114256861464449262970396009902260165856412879256996063284042836410204359879915639341069518124594818261437733657733425505686418096590236015989023163406025175837632739992092557132099052540458094902237060460884884941991900063561029437479960746718934740121699889067211765711092217920287737869359438762722386727117502526584581550737746917558737415860175410552910330207100915043632625384148400708496354332358738931411336402020501527633620436908855222885152179088441000676377782903600761435028410782390780511402936549931039065902920647898509512827919736429226629130372837082623786649503095967635666838929224185327227175046166179475855079239414997447138168014129810422544241807044254294688976740796428070607836776010480481697170396232604300686090948421423139433362262465580002814549825795061393302196731955495520804443345538194730529043571616863224394343661498965510843299586015662846041320216756555229748316199186841989806999149420393927929779074513800187577514440165302470812628283874183159979089943275224555821872296741261728491902545994510887118538018377903246756141151734058116566296797945637498829159040604137130524448801536241747711369453831451607800640388408724908957309027651380054256957644312088271117373269834348810433288276753105752234615662397999265199174512324979605953458589834888801462808702675227986172205005793711091604998919680482564691596308627789763004901856927053698141378884679098525179303478413191852263542225585033467053946018915683408035683239939132860219008344414732481569191120451496276987342736890864379326911456321477021962330354274965831023070238196573965649355941833775259219230808925251131058831501022706846496065594895481000709263316294680431902386028033219409587379511196798437223005732147340236995017045375659380256987276210899147404231363219426810780574699749917685870559228696013179149942982167103563254590165989945342745386751470139850048364811093760511911612100104695296064057250103464580253335632219297747414159573005812307693888560847566061293980256736250777873092017182554509658348570945776023322148480522150511083870835060518362317352410679710956513868101666395613154393786538240285663458202351587927010289703628048521194472028631728315177841376476670422663394205960442892212206760523380932484253191828883932071443024978039124200301278617890513213438347381336115767588220019058075105497876637966677129947223030062803087483580390668720364924923284237040883846045939369827334613181972092097782663267080594595848235896795477740194951989824970520366966677778829532940315235937940328488915197441775088935711726900044271346292942875606859849640659458552512307570583219276014734173064801339912184999716353144437370296403028137072898445377186071366096461652937668090857995444016787530427599982771113802065129456494842524847610496985361381945694519682467895539365062817214868478377318885604845707170973214168981301527613421789628207734173171295683758619002850776526408791931952818321054833625660481107074153863815981462902443182880890444985899333655644374386183217607116971775190980055245107941430883381252327141741604094815756786188185745916191270756834597112011287767080869068641848749675122133164658458455540393677236783292037605255958900533618993261578595558602169023336073917446905153170380459666323557292631896620241066534033972256376640717281073953317783681652374638636505131724364642764877429397990356403616123394599226183615531449551853796417736927899411283382155551969710149539937054184449517384585097622687313187137253395410135443793798658270728005104516863110765783829150294879444361386510858898904981558491582927227648031262832567728258525021758292744458030268638683117679372752961694948737344719580765554936570940638821566127065615181400591040424784186888849773796774552356567314329673978905185288344298608679142446499863745141522334969653938986791188404261630084370137673761101314027515989005520589697330297474398928910850649431296647513297115556228371292644902662254509519963832265321452779696701696145589751087258457615801966619621773258846354406869451647248964921670177359068260415357850933602204971868706958213024687341492105679751659229970215529135118518529381378854040255805830292059973094673197374418042920519430400054501976816303791984924234811766502340808961382580028642383778916312474379981096185666452430029729600690393016840387158680425053903491663511276658653266725325674741017976614732321831353970207673168418897756134825069981334014337604669577939833583737780962443332154668832099162084896074938324135535624991410023758938915603276314768510549101425001378301656427662052101930268877694681451687095479564166372071681212952446645388993949377118781683095904407163511783991125895190045801444333318411124427636544718433836900760890912432746647160681698037124177198259937496054782955347391379946032723997481913189764563733694288138194083118187213729602532361124886094967102569628756295954233027323268358298904314495378404222046602102769237879426516914079530943346460168237873040067690737849267598370320297388795626903294307316556892585935708775154835507010432156362567345284073272099071701496514832792726552909281206521638408417066335621917487685108319866881650145922724148367735379704873897874076573784183976642180350337268563989844136008634333075699399267744048728857154108605952913300122161077399455561921023699417864994466636005428034450584641112349107961206045506940715861139262036769193458323138547650135619091909856761748423894485112797862838662219735981233500994913048290512971319275387051619825490504254608608286336401693036918766421363467986764211937885107666360165824596164728208457457073370294427698943970384537858574320342284642277630454699968948279505077663676762805733115744414129146905473338359566851276443748049951482378741585498559551898073953163925089163140270974422334515034978820757884400499295716999399786436798400532913223678300487777719822027420937516153482559344623633819238424662948431868858279937783165148657564047118657069752120384181089070375209327415267784026651753423477646457820564268507267634612483115289681815177623035003032782961494486183688008690055054492725927765768566379207250714031624480861716147478834487311784281501837974484926852632532093136115740806957271960968995414273449642419729179733850756214414589459681165408843011412413892332160680583826495632630148307350308442256162234940181807350218021119385769502708324326446397201234240831457088652764533470698509008046151759635043509072821984652548421621935293212908543891969333247041623886308940617063791692479971745476193340455629646911024959451810927169071551820578133049948657136689990143366603745965152139421209369178821647536727591961570905187870826335270613672557007864866845010641669930192057390417797750750762931460950101724269154321376967714443280814454450575264489350962671911860836696319920848875019923352694803695165842448644776323004776427146907780142888591669232340995072016567271834123298566989933292096694592466867745147912945275371027773889339579317781677137178740259536768948846342904506712689661768840129800912729143221950839614101891565783368273506726252468811234171824174247099940224678493541077254889549591313767423516726284148235826438776940281436542570412330777324004086653719295999963227293351106218175080600129576484252059442629753256057241249819760275553337673751977942697385492248125510512497583762307421906003389517666281704108479453583046624952721200583368000397345392091434879193605790076775999018291800067338219536729875112608364669474887222889301885872828495358510209698089788002535440425282964480821046568080882413477011114249687063378663433417310052399601262369149523016442211267769136431817387473018566502593235325525351786560803208207957198647678491096662814042097392877057040876260713829871338677301895395831538356430003144005855413789254020986411407597029455692068683705310395480851493445392415019873253552384802057640845273218672600283513462279157088390211729621347460378822194375173902070856217185804556499926649415546488057744215526940538129295801278923758706123398679911042412882472101908232739086994013218357575574753978573837987817475736555789920568329896492405469622252847213250871402432572340469120034568170325209494608912019929665612619351628363280636766019024679167138290142484301835449538709487515544293737852732784447319091494091684037567473096308804724852329909064920537532844422935912354160566460916089414350485638791786175430277123446269119760134380416999345351182893503064791710506047973917465694143027601771978938006648975705892898275284452459617890376308049645002004348952276234621290019687271651998553422028967010722936616140396813538243139754197536037379204767081844250186319996028189948610104393301195761034207617674408935765449411401201083444601859119674062859093782490148056518383115310394852525049110351155922519359697725036073247716007740993487964955297248257830798406154596055472321323010590375874645999549785649667262802023669226660294743579747108768411733577992442793727725622291565672059547199615083182662329089424744994680026341135986891169760609588712707023216190471809539344725946901801910965090241070069101292008050152649875484648036641110823867162078557378526603345222393100357279985229940291434940310482416809367693647812002566751189346669336031060605662593096146156273680056796774958071205427392116239017486784367035559666962651291119488780994349904381560421180086762534844345445883950528898808476261758394147263564930855497061430583584238338157469110522633852288419614710875376212215349564486634170131760721747612967397360460107483592215796155732170142269843975494538942439915962159056931703811993161208591994924446061838715745500432962079414132309977305352006716596880880610223751944330660517335852863273303054656103000678802190498647903185191301028486202556280383764342228162607793617838749129104806860048588041834060874541597852152364008336367253343074024192712194330566301423714579370520631611396147939961004636522222884844070786669179505040395454260293139296354060454855923035798901831461356879160178981605790084449874739307869135910927950313323163280722116522116163406149337145574417277836792037443064060296928841518174733338583180551910030611277915247568256978396886754182269893060519221860876724217264321687935260688534764626178446865380635943972458217281978876654155278047926180221149109291451829598922316097649262739435491296875665378550392948097770706069188365105601380037743324581661490631885260085037389881728220520913667638253614518940030794045852389752688440839679492140116941769414255255013694927771771939604657321525184856557720364947876441739059622292823282956347630190634264098187316631696635741162208231066589907385070912141837766008419467173561890280293575545665236728220729318786096298505178673721612530783830754917589296285996680999706021375696143029567244077269167201982370759530426631988928032468543991480918172281106787859559712957078677111347535870164929589497461912763248766378533547360939638002079780956577249032655778996003769788349912016481227733550244681914120018802125971790610723766189476131979017057273588734184913130367469204920851171214107646723937720312687609486064668509889040598356304411850654105622596025717976720509152194091764553734032586495311661965977577334761141135041340697234221751277193160792838248342271314542413252438167280565142117308804944295783566267999702639659439882461455842824726446527671090150599860619592493295305375880013580998514016593178113370015372342217331522004820818244973104436687476460819936968893014254133890482115899649074458371743439033858005851539098741433466682325690344925134895092865226406569475457609592648396585982989083753176797953473218516789172502858226133623299877992502240514059295809239521935717181144337382546742115370580333744940620743112489083718920855008011843231875663314630659074653513373104867367376658714125529972807856923586640891679293303932411238912137760305958508650776426004424994453906207701454757944021964713953672396987275771014886666234950478371070833000283794531416280754287543889692038223751115245871589447534405416288098157751689197396756456996659915619383164194834415490431564691679918105199865257171131507470080365330783254948035989689363291073799433721574275673947388057582975596676680755577787713706257252834491540188279859941730378775561101681065850330665784495801480971191329692068603219451938905849272294375317488329273844072828416110292976348806886470021809239020394640546318952334089320116365860467515740940127309737677250537239455944853109654000712031681041880731943997051604615594883928709449242173572614812527293240180977657964007981647577591678157827084560770609784348594383214473755121411468537688096315815305610687128735100075525294411200118850522239138650849191213045275744717588497889122335964584189192562099658685831328497903697000923804157178340389223522175406447056126025250519592828669988704487914157012186142562579982906329911883956098575855530610530715241745582896165016501318934614107521718012216784347197420122874009731956633933796014005562918518177810855189594131434936333151471770550170949254036777764749996874394129152784967921085472924049391098727112288160249006804088644336040698771682762030172298095548412368115322088440565199935661543711171473033299381282552053119916853117373715893824963775983949037760704485633775918075337453786107037153397244565907937839269423893204414344012446860554319312371279646684587017458312779146471322098711400797306213428685169826788005195087094918009686384958654639788492907883008562216132199095278422941490177874094029800859789145501417501969292024111032536293171248256947635387452793284522466555091628913477097045891517339934814742480174876049150381557759877739218253259091837782219900853712678049022269904542515775607653438629769416994635718448596639382373465128518215714888514323111057320196021928208922395396424766322138561930255902868324766194745041975354990373598224385837888162582663941888657521611616083510124898724239185171310490311555725449787117322970512642645590755659892841919268012256252679020756405566285658266447136480819778596148160556921642750565169466202758569635437462674331449141033386680088444973967039948793211822381394599621430214940629997366312881769487144014698665416873761039560956234944917195595245473101045544418712445578315675146442560296210387164753060038394115290244288348310321067332853969004824431116064158889330596765355975286917057726838811677276332590536820827451918851668317434458451430512707685682768325009893381672139411475342210438567095499844509928872289211082446034184058216755025099390771385364875521492797971362115828819639343044797203137267878084442513757166531279170721801790273015576442544760290405877106411196704650859578091805524331997043683454052698836260024653008826793392925132206906134983060416631162834838486534254518499828085890980047411944027231276905659512473869044701045525373878885914608331876417392365170090443203429025615187551816353408829457565903566870192431053566390570144887401582248918473529476499013016291900885451394983654446106906897043587414167642138839792092924335372658408672280172171719753801620642514618009755233675593178239610986626206016435077261463647719426245705913047788637518036108280636827366490939091087025504369193130125360738892247502280288092861233542381292321387193225318118178843819030765978761089631827536087703785135175903399256405197379560894419911301488956811095941769046061169814195638051476037648877613789410962525634548726290049038808121992234557382643395436761141704953455527233850242793389122333696896936552073855838792751409096534841662041264640566427887725030212099323093936319737042601508299440459260741596666208660985503304476582212066180901690668593289897893140852259285578051413833375209504027300197701075752586312125665313400185205695441290146424607300730861716356938622204156422448750657115923416105016865071718589808762417178354965573366283146903915768102461676700601443850663928495710307775335806061403813051774577811119832643396171978821075553193635161493556293909577665655418501582090056698931856018877693616628461315365363307847972651233402682808019923470295863072097365671057507150333893780262948669263096861336033652559727581575136458026768591762958576173908131399375956899583030624482961020414219291957047141301945561549220233409095619257344398941884525862624604701911358819761349121490908892561247186440677928459451294461885601943574569499000913878001638125534416220818841140260155843047112716825117001725506032091330098612854546165444936285486440181243544242245134471839647834542087444107645626185664912647897214592544366472881153704837421565667409664805528990541781638599973591810338428847212142317034244836775424933038667831595840221097461896198768819858706777784739049983311005793829121923550077204262766837561891581497670422863683863077999632230627818362758225788683316340236302152408112091248873234270488146659250355831827490791434380076165147546577672508721789637785691178279510860982873239280147876537835258832931633268655211346563984660851406993013101461486052179003095371102738701206835394775773437965899636338396787673649529887686184731103192129078725260393889961174747424234498900688011988871609198974403376255305072575867440079835211492386200809035842927969232957434434093241761170348406931546598051633399529544480157980154212312968334043399499481737643497392273292520301348024453413482211272385957955231778559637522738122558288440619787553458805787188906236258463896224478245865096598030004368946225403085914026149805135806902916955395476789435334931300209472661513143026605434201146058791623849001331511890247892514275700281993687282843466718071328922045447892619345077273029190307972225459240739195900975144549220319894103087155191125958539536964561429780066246322041066118882169531263797014004575272281619218221841842717661950511373175499266365340448905186932183761556781147737903553959988885194220130608260982194367855170782318728811182069591046519252399999601257475457952348947839034094058011265363285502324014701392376300353812299375822615186692621026955013236610782168192286177637889658495649062746965351334354496554810457480688670327927301502589352308443461197101833482796586088308735678324220470683554221161402864574153393117267219339467223221202948628936343745952692120507578920835343711671841406828794426581983413626274202311785218687153946295270201613488232141114118423114777221243605978627799321259244415827693565369519151010586060826236192113821424907407762616306774461167081751647336822442014730134049046845973704579899032590739940255094576177944973887215464736474474163992830561502938297485767154916776613082262296756120391219822059289758583388971493984255300790120700830183141037687879467952872034213096332804139224524237924425510487618341605900973991150335404722601065375915568200167688847404161747825191240959764440251905524668486252675670004433829686138509912488523404130896635059281279978459484045052570235516951476632498815694656141552306647196109622228177627017847292646407402449548804313244984661672705812624106515022074637913969029494416578568206181446164690811403244816691658943709724724291389834176049531000004961597323107681437585087290729880758804241105401229215828254306628179170783624102409630472798415694623194698253753014517280153086816832732198105508134159880287794856533141436662328604176625135950504773398881559062405297542334291234458755577281213969037745493984178581003811933367592223808778732865372793340473583640962185964586617708235374536299997592875733779536311350923358744402505741092811143439530811713198826069262024669539956347735013804701440306985941000698527406657142796988355025166909678301786442699626750948858144460127947810854652664236289096151677190385652205495607312122778765328458545049714371672894675310943300910170750230961724627113512865455076895183976902153479084434714522564730269600284307231972201387147685968677135917981531437104443844214887815896845433483311157000160803093934437900873246257553972497466270477595461694536053620488065441925143766500247880502966373728185151468378987882609665959789412424177381303003778907529621220373119989029272362447238231185716488980804044714372917452033967972573130534281809652471817905155051028333620529074299292369107408037250659758824972841622176700848214324273214368712813702886440103996476657991733343765885797773572326535574204028634390153254909882974570212098415839666133024350548502575517823203120059460273768449127567938442452339639571263116033792299600926453087245432021195137049020709046292676594327763362645148080182068591205929741312458092210184081795544523207259126657942390437748430663708963578610890176735089486199127229057019786409124258891980980202157944130781334403422494758759400917253112392304084824222923443330221208111284411045432108894446875742467244013873879370524830496224004681100115496932488202599230583083402817179407284354894673150298502337433097765577858089404217302475466092043362609663907433356745554132939864116078514562051644095874709200375992662798095251511285391820574786308435449827587963994979299188646912443640328895837007805785006781169429082079550464556646697224423648306723857188050647943682139886534660138419688316633656068079620256459307014867693159478307496682129042839930734507441585253968024074458105734549505665302965847575217250571289864538348428655327495180487514247075781272880496999223379739829174467947912416284022070096078963811696706110124518851508480026639204815408278579783636986968976465386270675537392679654261156271159318247860108390121049322824949296013667572242011110078023976659639793697325484462714416623776095365929887771669212348261944463348308699134010711163760660588448104614721134573687782618808782660566757859906578215569619762532270950304458774299867318099779854057693673900511986258854984694714379026867230285539239944744447730743238095837495805347557289154432641555389863912632083057342345649830035707453492867437198848281816512636862061567598236054489641706197199838339544663119216805916631770073238070358211288855123111750004384978919060934062647887634100863676833682238785845885160101639781891514443350231938239355154647031618321912226595880991899653631204700311086958514475488822814927542294944978009558584678860307553919755458445261483993331549729113867231992794094475801858378812114677203993141429023313300361021252514761987547892559138323201768640400907982924774176913337761787921178295115405496203548266603988977851563939232088966961262586977161560905309219576753769760010946686836989808075602688327812117989313264774398829789900045842369432747168618783383726370961836228029501803921308479795857605187374918064677616518416728032704878662651192753139954725351380613707165968647946423490575783791613785489642250078492964164879694393805071928437848095729869948868025347084693328097656687884529548131106487006733122940917313054481806504651358477656344519346482698164860848177690880746286961678421676805580723738886989698015942144826325239325376487653798138349140324244376079747599182412777719249316755923997185303237779547684428298411184995725087750377160839630050648575296332136947921143387511058966018822443732500528755474222243460744831419723831176187218699712801265352962839337899931549522960563848738117977671738658234729708219607453655284743756815189093141017514395041093779886233894126628453863103879333198619278296003663455735867173958932732306512378309910003838300187584354266218513611508155610795508057428751796043314470947691151046101537590561617658996702369323795627782208049704105213520872717761439358676442359371486630163708974446404949829898916650560764575268328818834898556933781598353469753927514102042929061818359642268516090747764037208626750675045298919791040827168397976518499544955046393252974273744780294394927673129747286982333475530399394930111822150047146101523867240465715040017900845111541090723934038010423523648802820287582929818744033668789318271341030724534202163413507949481323723685159234076523316721334220836545386625055127806480276393901385827782581327192931472130258908576150242633876662374570249701494777014649258562388718211533635602883782903365661608553323243260511497038056648858015923495773811356822342130410569030965065026939545448614267905138158801010652749063402568263629114564823330418187069225220960269524208545269677698814817917409375848382013567992350238009494953723473286001942174552098293244898884133853561415721685983533425410865790742084904645267538939957569166783743874351174961153723940334067012924659653472175754284024538996047304895516275104158992895939560530188396873804450518757287831662747958065301712221679615290781498337206925761115505743935378096233030368169210955065494060378419492878986365597691839934780496528439020492410283751519683616263285822036214765243335989362918974873972938712401785542182908141924224450735250824890702724196038996694220085925810581434872115466625236023011277513760391071832839017496866589145784924964360942073179032406869641760758075329335307882694867100787543209562716496599026257930952191740090200263303074107493125014410841696506681984972114420525522468742062800632421039123084834471610607766005620726254486249784768120015745566705050508515422194682979242518245506045858011668461626636007362054878326374194977020929980911563690584297764654547567867587180583738489145065357433614292235460936603440680646219806362398766538065543454506313161307885798701514887990686099620596185719128925605049079580416172599507431592291606878216618320061140532349256106558765682154678386227494670574095896269741141837060013757570200259093705939020061825990127862975478070356535930883260608718744549329558037517800358951418826542651519792305938028162158465391728914370834772603550936018647023413399745352108246586809369353249819210653512994180015107246866560409208053940600128656548964015712134046060416163473679425927327935510381989474665433719518773814179511856587227235033675500117296734533276278046729339878683158408418298619347432881502840029630987888478341687168119676421508059484609340001228329914811852808715137694431439705950054087768720299668250749888482505067541930758793586390035835905105389533665434756037753595285673342036534100563631789932919623282575260863511059798644445496627014529985833426384232451230829837366906484552655349545241992249844576003560795970568264104470561175874753169506314232627917333852352047848464131985244509613835060790509829310955006395982096971414927812493012377732845018680117540043017117291029607648340012495917792730720402924106622625828929790714999458594113059147338856531101441083137470223107831046894806712901543176578230330834126058744864516239580387414170732802093229859689011502321636273031668510607201558754434328333411581723750534650421085183245798969964736343924423078806123257752098625471498610819875755042507534311505480919831997560925586075917153793982561469099172541672482337926148733329161213132979868220289628020045738515154738904966514991007022286923308455368437010326690639823808751488187985336025437970087927556131012518862046186872575253170691532575743917878449338930991352905728730973052934692442058850024503222390401788034639519670589147503321962901044913718748051644228790121550236134029508906299478630679636044699155519212478243879250698506700893055155679327792515270602963971255982081528402471616113932441795910424492715197659799023531455496489962447828427216465491066160455880892408494021148471799730020547514679621858517166493786505000826477525140828892015432874316628402632138906301887881430017375291153451257520639135640427894836657933793761653726839201659415029137003299177198406520107988919434055056438212256943354955963099661445943522694646596063774012531405090795702699270547550395250509070911549058761083433688717167803650146262531201640732793669736542654837884495114392729592204321029568189549620153314999955042239791861828379024618102694266929376045742886510018230376353105685916317757501402731546240253815416242673266424541189482604109844523787115177498901496719603541481864532562630502647870514185846622995836928722659914071030574247289451226701557358646474535583105023895293520791927547951653544958269311903175824868534884775001698189539645802191831869256240919136183121358780841943553468932457806028300907901915512409397254049040333326847324531795702476600341901613930306264736815181326395473053048669759908013703677904732188753609772725947227118638057217039051567251103116219196943096897971943996368717698558457602117522775729602288248058041858555417652129416429542715023049915777054783166782623873983617253616533096957283331397013782408536286681400055499522972820936552334511274645574106339202244316716838883503653452967570402803648060187089323125475436635107083520862018653487479425674291861682169432415884637355135266787622656952890807481875371951293770174766192956567454367057119770976741391073343497586888942753766821369404344177469168556995413852210071251837399895411544602058554684953837340475531960861918830929547598001788533917171330923484105503715800588697842535922089100732576724078145253459371877358883123899492878494855214362304401435722173154742243299029837130629818204089362049313605573249762120880736108253361869189415907755721271130372801964472600915419147376764912655836939974784824800158921543704854841849852670381619220407664451801989025536765116201793052784160636289605541792196555159997057467643108548314199626650354886065252773241330370381659817657908253232841517816561687973258881276175331203507718712105694654840260636471311007331825536702673549130147657098284136551726986421361368917989123971234899050703129264253142733325499774199679001278282138183972901980993593682735719042454988332042790577382973786125116286799630675398511612365877253801330082459634855267328063539727666117381349780167192257995101124684925253129968862541142684775322436156904547029790114691079100139684427927235732350699883730757625809707987301642105781370054103704767972534773659214838991590623963794237890073152413966986441092789117496578097415529954241079176362340369305261522360631190740558905569865270189995461035830125551365997035529787788799829703300354126159147019469288503947358525219369715281401011792774424114805486634320383963127008757938716120566429509498284904085986744150798599330694522319601506177392604578995993446265803158618307504010785339075059254554096721190815290955456333497662972923956299370295324221039890831909906411336948933562548757516171647766246907213220019826381654748203107119512691920449766404638884809894893680716576564462136014747773423574375652198084107323859941351264959308021052404990738597031785957423740589264648512511641184374694415260503952763682468120947897564939798106813077203247113575328573631131458099949082414406317509356252210277061416336160515354940169715678718429678046416680776340621889363074235823694749905436430216348155278547667068077687947180494623216205298005120052514080491991462946256018111265781949569637948505147066997850210382681455618928566618139523706809196920692190925218479555938984767597316689571033270020931865979394401025679415195142938003639612472807356301551623952665644071112475907005143308353882265613001456886376545516576154166561211629512592871407897276764401571919696379858185710097895328088085267320188139204408949110002816175642625550134247494215707798511196876989711710346838980093918845199522436159421919950415369363462440118620492941202165380345708551924303159991442208291489588824804248610810913037091003928524959886905219415859896784461630437183140469836557535059506611375946765606041101867254744998934684636757914008774938222543259581358397254417629589208541087052120866422568045663841071446523907569748528013417404695463386387176925784550961305497048002329647515941854908103289158843382620799267140591758808683381579537824881133914719361064957457153055621560052221618834992613145176534641880882035810167837751645184012777339038177703955205552641917481261186724263966937083441450597687968999804192999648186110114830488494773381982413533209876638081784390965640438919161855444522243412409270960931791525534378758440028517244984518316032150421870402690741446503991891640779629309420057293858136083200436127806379852937654725980799508977057956019969540760869659939009156565986955116531583209366287534851731857415269672825972521548384058087962860365336239401746081720547964527489025506733142437443137628744680730734533351629591843804881102364974747897101955931612986670279249469843708504568079774289741552840112224435989406220496053764150478695044864570887111086593417806738669982953597498998930698818414260267500023580610542940742919667182954933370666740749052213849887222919600895246112010738169940088420731542134787766375358048689944114130291199806386373390855671155156945095958764136728382538245730983626030389317933133585737269874545689424949305081826080798648782739034146740934090194407398088142081862604848264045906943020688325385171602198058474031037959930382517731744559571534834534513145167935184330783781720688106181038575847233363890315836559968573607466877475514975815219433494656757937568850306799703577406181712875883857161463670712621986182852698387171455605895702932444349084232755366168863634157057123209998267367112254774847811227137750522658473399518872655360211434318830719050653762309387658328940234674994130301116213758331457858001532431003954765925418596164371192706409933514824908989038078979205660796883936089812005086546463456012842182076483511356702090074379082122160483146053354450671159420064728761449176672345526283501612082467686742018631663306566383770774835311901448919127637557230288858943453711315442693194513111041468488201005708188824650938661857868860767231337823406920260548369379701960507092946970159807538991274103559596411844356773801313810375241790264013953532484359798027878915984966830112886708552192754626363970596402973374648362217449354303034785639392965901284874050641806453937385051923090296403561831677966920606955644211160096976372394857551442005417591175854022301552363062925196193724337797216461542370774926066935707509703698299655219999367665042341595399455640274037526785474450612131849115841631092615812613390251629354092685985605550745414263040743729353574301186063311787429958602593470726255094125997384820088610956900393930242154361313022046383477339312433892077573603191986048989818714808617722136961949693655707517506690399142803174680298709033539451325566344213197310215256259035863690091477908849012464978507532249343501432115750297756116102055625993277825039243678573511935881974250366471648230521511564857953353292520680880303504725495112864844726688936832655768297425238618580289968503948227520303305969158728941743090030064247921271225951257974003831966202795157750233305718021772983391618997297248107720713017236252277857870328181918098102350538043348569535912117995611255923362328625290176987894011608056738747444998514333930587554627974802453233811148054628984067626189066059220599908748293101320934453014549118730370733809340830619689446170785928095901972570512567840277865479300815558695873380964460259994170358707194837050051099898059631091496887884899486141167615980426359845545203418678924274675650752535305546315166042594227193288118665773138954256718185274119854508891656370185482324862006815959870515274232795944016952315534499949503428529838561629740571021297341148728980154190927948523340686302666034473224878827970005729269398740448931007048865866858617530395603419206418328956069196945957377964215037945392368762905059825205914694134328481206090251814643432718718971719059288924607951983780249071730183180971442379931301366599442312510796785833336337767353516847931674834921092905837108431165971810505614923571742612407730817079580406246243925360689048952996887246646089177328797408060145742085543866341133038396685075108011117650549679730232236112423855109067823870299344277988790435295514886620404108217327491316798185943466803207153045937363389430695246298162493720047751744677306524282786613546791390976030259230552214238663943304245807749961325886927850953174560172732438800655211792378434866839570105277806154198190893619463460989300998183562099075086976268357779915985639095542912864251044147723583857013930744469820646818225985706938588557341261800487481116670377236234170089200254355497633195083714250164751166307044418204719377779551279316927228059412114575375076065517256528079749717126919605964310088847017842179051408861634875845991065388659487111878873488779530021632186170541730108805686782556012274363645720615359961569025971693188711617977980776997965430996661981041694767453714509351923684377272334907653471225698394247702330816077919785489998252692596141249317202815566297642902648988761971189335857340612221047286196660504573452734814106210632095369922487078986631135362792668935215377472464766957602077541078965964253289432925185345992829223002474011154767459091735268643373920053431698586273830502476980100144646990455714288928204124375562066282983291425675307846825429466163214616007767017177270329121085579217954358307014549523187256345510458354838313689064879076098724796561054103326383530811388896535943362096435004644477583496965789234084021799045806475673708065433704574673185516624268972149071586925593045765687646368894221442104121450902243850847779194405981002923034206424555752467474999590832194875714531828841495176375217861085327541484571923066402586638289480733959991370009158367020923058451362655102716643113306101069962241226353015280325760899271116136851075086018290274844089025454476393162981483457468960493026665383601517774911487236609337469201772276608148386475958208473041592473312472416357488043041612962843522850454289360950176635012456150559667346753350405708469230835374826830390247811450746472222902763167348304634606805399007669436386864563909531815554206169087560153486529491778832459684425937352758354919685020902742554648308785119844056748968017822881825918350917674086620097359462006923558617752959649139126627078317425941957262723515803673788052109920806495365902221731748141329581872704483959704284156216461278876163182119502482587512356622006855280327654787695085605764799591877859885093093779487652562039718426660836476258066296883741912950562221615747594277235762325487566222828845509165657845548634695614853539800176006756354269909089981140598358963076294316779544895092623384368778650711006610277802533785547035600072684165180851797596081241626323050926733758861761796548654295056264815341006749117932904227017730517246411937244503432210357592575220504788525449825742261700040499569700411242260678734596743391106196066294318212983213287189346891967763908886527349058636922098355758917948979642448939726995610185384079401054122337843601109755372038875668845156022511373278956606584005950066219645266212662090586507287050298275362448942757060146189599216165627125233586605456588166587870968375703556742080062026213152910564893565524492397929195826246385079619544504321857755460765021988238057362696103261598677061087677950401461238436266479034654587531088160307578463172402674689508106493313203763488378507183775139001921744515923019619207501991603925984886781076374959692832500032487876251477093718113603033515742335011670341680745811926765359975054437247224055128930990666184658142502277911021020878019888442973880537777345635218554175137365930524066328441736340544325761206697633314272906854652917079464461903880919666746643054800957711082795761473001575617160291430768953692477872420752703762604202335920647369064697149831802664816261064934537313201899505881873117302209763226166395461946005978765391551478621138926982559449276249905938376049332159673117389669946560138057470818930500137719456837443677831124767691981618661543753950336787160626245401584940735610391124203517820818951610837398545750595860053340937672389495501057631759942386445435114727997660667986793027338205985498788879773848508433590691196635524799835882733452929101200130228413418499088124224265033513802010801502610776706825933531699598424505305070722133501495717749722851172958092853616988930571697293199502044654417616572642512778424545257025242366295300430136540478325096290263011164099175650607020466664999785375679920545960819927604239816369329865447206741559369034215603590191740114180201727775269736613445738647434144572950577712703663604534949041699522814805135405534277052147627632140505804504806676803362547001027855374694366083121135576835035522586073928321532204755404090905452815169276021520957693967183609169297613222905432333327314885216281258736577894899005929554043057707373183926747430282483705815985075551273071259141956013390908939295360346524403275081940248184091314108863861656079698796147915030639859669803173677055282496111414088308301720011047647786899091218321027434101193427402897852449876384908258982102395956442843282823838109604703821543480213002253736278727154357711840680631853824856408989997386068264407951022911510326373010271394024998015568710777415869418866328608703118646341105559400980374438047456332886851405259911195465276748708682480664690443171578073659642567499180423781852084674054817751482256243088730367389913933266454978197617450309788488673563488795245918446463972657115563426682928713863852210924338966248157635302618547809680467525593491469262277901022112350615068474949673054608966399406609321431144246680903413652066391497073636820742852241866209078623534012434679570597727026888845129573894380390671747743925622200652747829912756576979718452621248299813912426632414740762187247667809071772919031999086050652978122594216631417251808121906057151359858565006402982726331991892438100619772104750022102793838255609616836252403832027268672743149527781589744857113014394580780333849969809052443251903226054812955390640021449944674991654113872270362265101126704135560676475414461826509705820950007361436955688068307740633673118611079179105874280688260336448164188284109064715979840346065000470868140868484962065928284839919619710429412129926852020542263943254524091755238198444613894929789470679870673281480608609326197111374553144439806819840460504835392461395693934795565153311568285172561848826620591323892180181632105479560018297293543550307794326672413965204365553775182405721402420729680398328339638066839493400296187354972479579989289166910438628765726971217053482704936526688384387352323891901501097292071089693029201206430805338826529462749621441460031195736776368698192999928866999788390821548196133416083857404437128144844789977168706273105298490218387694211948737979991928321959508955546049613558609580554066194191930525663164128733916479107816833765472875172926270783068684338681960157193881331923236502533816889573229949619036833674558826925539550357069434395170487305947404490631116270061185708795802157518459877962486830467950381438290706077499407698414341395649039091745090050141174780023883361911867220983870555149581940493738274065533782119603444031899576266547465234520396534963835040330847086696598104863676624276783929005244492110175222899219838361963368352846713599374490277854393768468785347199478501835458418601069874278194739186589589897990531755979455567067243373610733514887769502512699186902568799101897280465191407139985614613464448490081883210127032930590478276096099907720403679411077972126643827526729575868936183042939295662891290561424748316625220386187015591151409430179504614742326369993262242260153304517082888231559670189239601933100285699591530078681986769994629785391735280507564700445092298456899235835933625998637690543806534114805889834567906120143882927944591875936633472094135918650296857872373435812799849926348865364198865952980095897136415188960496874880861312566498471128342034529719168898167438105282157263872618686232904354511128669631112010722806700746080720103821974891121129756057627495405549951904214318315941502212487311771348670996982559035893160001854620284438448536837725603120890389980983201162961266718339637061333350983671730091225420225406209639228909653266942440390997938798571127686673877413348678157513145661343867684589647047810988194983902262416798946473382346137558574516589680729571186366430355035232798174142746116632062199754906676629231260542918315376760856011797599204718896871121964955387640853370148382351815086024416149929602577112922831360064684963503329286866875140095518961183329904710138529751936641164755484482746374346538998926327909270478011369341732841208662353436101029609134352195917474459041312091116263808578135806999925041649279375814774481599216798147510064156547440840722589133905293180535110191242759358589004934905793508634982802091970157190824711678034593313045933564677672631061412527480947115113196417715786783650645504591344173285797841846354053355856053971670122528328319381291192528810601266527252166065050936632895095203371404183410918266994133285238264994301624178383729917612682384422699537425425028141522203797459404111770457329706615561382363345110606419649605609253764155465338635580159481268012815921617520450829171757996522261110953790874926036974441023358689487302296875087315454794831160518089902100930513389219255798165204756709665646072587397508335823867662849945842064180079699696105019200466416581065034153053850826639215598321713670387575791598441971959308556845403860772241573181908623173722186892086780213819504837115888278915220476722126762810864384227329367535714460508025256143659483505795253371229273137160078664896386457995498882596739428487735259871197734154235461957852352162911238650839367135462783069187648288525821546995520834352531436688705211310468103087629122765268807902538719460912979500188748755827288576560086839538934146863823900129173773789528501234964701493106090901728897973842985890651709713622324894194394626267457075705529999506453312968130036706956673937399374614302129837331344123208293047012185340545456265979423167768262162107277478033583208927472208687109404267306837507657428053777592634892966850340379450789629058078023948697745016105052428283016477893163571746082600975371256143525347447333692404004486499513544265568589618482487806721731941745503701464179438242132910454851836718603820395421896080684936364661093298459018906253035324027206353042329245474203175405158346914694089307121463369714338600749705172432083621195001124025806974258347947299511614564447685142886483775483709604015742328680441102556039542380545003015967612383891035945545842695290113264250624989611480344835173481871003608424189711942644045542619894003134029443071449870538933857719909911590694871703290764485329182954350037827948440789666304073013385891655726501264810551935028751885684893810890492011761309967556462668505137706568596813759172131243192073956899619013527642861828003628764788557236364190959000640396832093537582674686412817934898677876445917346401975820181363515875109056593180706646379585996797936158600868596194054343832872978082760144397778007870229367761535974574941002386638794797682101107161925963466952264876571882996002834557118331755694065559240450913116104585361935338290100064067648794477637339402558767785857344114319016347411602257577912902252823996699433070710051143507599100361449327990117599152737426092652973914013398581303376641385112419671022596063079794753156194715475239579665209066836821155908354276999068405475315558285164579151622773907071020991120261675896099492832293337034149728515336817786495432717236433040311711645085477142746367051602873666694825542806975999565003805962393113458734176895696966932017448744085032456051218559787829334112871080953741436319036443815301412240454077313055238267054168597230781650254544333301109034035589145662652772834521500492177200361673349961974472680818663060176552608763239120227390321576600478132088215619923106463697565523291448365686627915432834033090071730769582863452715886091568492711701314605729997854054048597561464947290038994970533370447136745738100737714475028755646471619197136760739005623086483137405085820065673892764204512337012693702423312000730078570934293592674423326169169494893888971801402598239640148383513508597136108953621316001540662592083249004506789067413359932098134500305798636654172623908807932940694652402053507646308092389934515556929496686899203892644499666412903404842600026096551199023535998267474945700200799677506729099306687016837941143005888812838341357398957164074612671636402069833231060567016250475934659552688614088897590299734861431433739087079769593353015136167212474362019403898356369545158029866722964386566131996357622324815547956037515629219672884632053675006029078213267651869732136789630378067812917262918854030314477469806232602634640837968315902400280874848089549486131933449207896640923000274809390995453802812056425785829105127785464094588990477665967677822285105999627784282384177871594473598809068265388004573138690032441349473169669944455963995004941211111582522836938140477351173400963945399738551722362673231118877200834471646256812781186638161070680803260243254158442139522561816602991937888326681411795013640687243072212816601603403510732851283636484349885059013124966750159992264388524250831979524641710264663709280027704029301675303160015777759670439522029237491480143047776169536478292246514469910815284255024840951975342821999799709760703383788494300136931267432951320123977582395470603758573975378549918820039401372426969505753636008716989958236834493822846206437523442197169306554474422515138342497500159339455235360254329034178478388471055388324986733801148622610217559965233970116864757530241888753009739460364798263127985637114198164059805379345250128970510109943054644384131707315478529503685909366087656166832055913502665398598273450433161627386755040348916497797103599558806210317287639341334153452501540927392246451303222601596058044651915691230133762877699583866097343424921922589314091012812260986935180782216525780165252222787761509863844400003847638919006598223180919062036095313386220299569152631276815332300821715761201056409606716024532541908047198264683766800874148857886757363070519070181849406508443785743659720464668680382709141689736070865887355638597529685265769410853057450364655334353563670906972511189055969572733248818663306510850046488650174293031236887041597922452849907302121963729856766072046367799172659015019726651574697291486152831219484840304955673493028681532948872432276179505077646473268584320026054977262068320800117328010101282360847721375165702830507738292819658294403343464864139033212118841766388981734623416447416544465320487518004365242017211103513689318195113626748249212049790251421831887587181203355615524428467737852408921706644562733200165737164108092060113040725606683056408022451389366493865468597739010348122666472460494998927988506049655320219366243420249920491415799838530371307027155260843042044185941419484381751479743187742400297414838074920964717078496909121107254997649177124444659769357337732811264481446161321699707816103330802065797207380267853527554981211101359769509084576587719524615958395466494099022638134309461252643913719202015087074760819069928151274686878203321134781400626790580301813070583800369744087532580598864717743176581440462895889930087486355117097763890068753730580530452328138403019743407302892807562126087553046085297800080083002080532341193924987222636774369083703556154426074815717719991564359327773880155884422778662445131862225211018201972187043531626658177548180506322784127663013921330248343175528771355137161533129632586013875731385994253896107693537260819259665367808591866200418710688859340225064460196710020143877632803049186487718635011684105175770562419468866977553087111173823326303102215879899884577542991482245676753467135733677737599201207120591688132126724702940339753128767601565907328983923128187151553371698266317347721694507790057499798291464403197046289468540582902294838400275562620805153207685328502887737241342674440306587814141986839237846680315802114804762763255681373992072787088012370204208144081257161341038453896855548671536722017788106967213437669020145497013119039335237642374933306781179170468469524805359811184077988082537419833545906243487248474801591200659932243536340122033655514990457328194799343315756177925310133011952064804086589338269902055679744150062150616717495453382623616194940537337399407763780757155852379231967466249331285433025269300104765279977289162135497122175212499418523686963205464214404806431302712158988696351905109016837701479029986583001666434626391658023055035761343340997518254872829000898387243831533220655239865784101816349809432944295002312888843296245233416513171228375530656362164130354583985325204726840636360478936384943213870752889395588158148123126734693194699085512749281916672748247407413694568015952274585453159586680690257708066696341464482329607255577890680702967683684641704958493760660276594818902101237170948810116611068450626601089231915631926516887765072285769875054004602936298417062170054105667514209357815282128280687438502583945364136151771536942667949908064696780119772293696559835681050874811108188914073094552421018344218514547200670266051710769170984309172368587457132266015447184468395806101063086023230978943066769669784703410991400623933400947766018678659347418880041982014564831615297319026234136977959131938851507801536725985640761220889883361257464495864385412891311142362801190711007191610317789506490396740973558981998270819211390613360590752573160781238901021736317690883318244285885170748157577461574669836196978881362464665529248826855928691805763859759337012290550591972711596585499213235081635966034709694683282607651975753724953383028414113310713787670817585932111656282666506903527550569690524600929736177294697235472379273112257332867400515198756389833211710377890296385648749524429168515900677385727159308822469593515643337754626258162283814877506233655476973050519220712782169549075396450584474484039991286971195660703875197793950448085911050441476714760886595551267690443744923725230100633367768897576829033744100462903086095222931725206055079805098819878359233790720102461546367802843223045457554278223266379997894301091323428791143565859277623452595627354349131514807704327382813786068834319582040995557933736700017339604805472906450936333732148462179046769401424074757873982071483279104460144235249537609148414037899192882114548059090331151969603358157626833352805850147955032356302207412095870056638347987014905142494085028814375549293959581259789259473959437734022917390214182456844187804401054639800952774680191838492632694826953536007466502281689903060077726607662949663177715258543268783075384037057364717488081668379331226811811007053641165327764725007431638116773629425519614993033724617018293949219584961426731499574639677019622097179288077931321264526500561083269112753878516861979197209543070958906653319521610747060337177766260295909622225498215132949469551478638648609691574887177275646008350503218878966851729594791675643264812458931858581986888530587067729179811421407878450327387307743854167844736741424804264998707175033507302371092482052328401071263699367647555343555210852997877167043656576586246521973815815376930626177457289776812279395872490022850833977526401709917625622518319081801744122061822713556298101088312997538720394073919879839694263717893270945032855246937542518681281114838539468011774925635846311520627412492185813877134383046351092678077434925761149504794000804382369369653146104957754915916783265054807574005193439789776322857715505453930660806305443840152257321980260097811331298543196133467072988824399263590867184171454227017585616033042009009693550016771097666843986729826741160999352976190135406382606265737551836868002687400515213705722118604265258343029677301977706189067112442503533081183343668465485105802397819203472553579901251418499538411206309205621445657834088410302859798370860053238884433532269141994192794520965570745101987140021582865290610892473829313971742571058391280381763515426210314113522285031706873957135242056692952847465310504309226806874848542644547417619134903226076800732614185536859083656053235585198254518933163757846786979668166473855479204011463450560690249751992382611297795578837122934286527723602290605511307038984760064456270238294163029400207856489578497159593839076182512387572672374259447731255284311080257419326519659614033009277462092524898564401198659754631961764930840475490629941380989577717228261472219449173281552241296666829067996829016587111202215383868699549948196442603811668767719458399944851719152299969680896135255089671053607184067004936358066490813768012445951514497719194462858241404053099283507390797359144058992314123925648950019155199844294899978042417560707752044738901358613092480512426321568437097360425663014867486552574270416532153764291038543420413934279058991422805895841398948731252042041766825679428465257640308269357714343878234506973470360010515511855543648965390209586603469628813431478763671237926791171428986601973662206936147118949601249767153647106209633985426203764373195300261253584704674439801400731411107825271283968106952885186722530912020906279678959132570828263809761612622938208204029107236964773218082927019546844083843867862670597225550613885614174130168818819964329350345409921072062503160572774428555223994897164378797465641210352115991734275651833409075097749244410988677016917186208031567600099315886617768204336778374258344652567540082495536195289576059527851683661841489390057341739943196910825876529597377755708519287837701459688042476030778180476233996547837654617792264055003862640895717538079881926863159790183617556411696384881556093762962401268391812008482059488483220073437303594205467818639214083128273503765460247666619451729286465775695796683564881904236544057251374068999004411370928785087032700035556167674224095535616213158199875696389515261137856812987620792117965726231432792089451936090910142283585705024169582012578082321459458494052514164318892716592152876804725530578002969217545942083536001514077520753168592737284833466416550886715684776324830656270903608335220128341404477892016627083781017490069340253714700029153236610570529360627295315533810615654754118467158846113663130372866444225705283375059467528823312034525130630359855617888170623284445287640957651386099237983876444519878042246089522772598879532656606484829009534921252857954815504330373631379355130933532098259487956067116269427096091678564864825008214421903561476956909180604267562981464439069138551135094309857180230209215743957475464550046564210982289614965373601218814954645554382317687544008270496395438504256257237000254974711392925317249029471921703673182994583077190604334867173011605640119354946659783553256993203389882227260375216522448817880488115613207398520414660154384127969424830439400497643051812315377058565344199726618563656357126514546158524823887741654014847512592826364393123508650569333200738592394582145781457469659089817227141234903863101150740149484237357526074530033463974503363304794378161090495770321649595450021849089452022247335360492082322893710300997444501312120759656022897754440759305911399545833570305553366628104108187374941551816531616459008869168718838289906847868111229358038153922221663624027950801170407352120027524527555679901602029168990461231196693878045468383869627813435527658867777281861748695927070758109478765968354367112108446909506613734298900426225454819584453332384580922844808891544069764146156651691613522211296425351063758096166448814514705460640873128765494305727842170917136199610603934672907829286631884607537260341258153398871446081586930619458320719180012308865581753982097990997623522370246966580903291022797883589979796681865241492424985014924769159618644755787529195371290062829583074810103106818864352474092037810356433132339027089140405451654786082245788122216117315096465363322586585845032373712159996203980342091643614030828589744298856158299204811208534061919292230088977754425321003406575751091454259937165792746497281804585740639172758843876387513189305659941795912830715025163194269553150137767221363271191166733797505708658607878299883938326796301083178320718113294995979045551782475685227955843444951298444407194040455970264062506979714818395261192288737656219783445925177451665655029029772996930175149780500563923971333275784424773543736740871919849316437752480910078597792872610116508541301998538684242251156859235058385785534117303020737748944931143614379341050938422511368674983287576289001464115337431922003526050001112140208820753809215972807840629837072753556229903756179052569201875399424272790373980399158810742685849189245942710740583370999885761730664291968904847703282874480514601816810042760822734643411888927291361617735933709870282357861569005347947864165072144496091079612422703546114871178112312735470690352796273489405729529234439456860998644756930695884198520243987462410617025869780869145866830014505002803622896733874884751435990509704619090365387070392455480446644082136323981328572365056499090351786297283339061074267999356007665251173035234632888491621340133154692337356555403450987182488614039135061920827478321567213005750138762871039525790233244950006621828152012073574488258668979955878141672707955497687832338717546870821589182948797300084313512140546885180762688816752312812185229354268254987926102770059946269633180251772360892848476974979535145819494713970896776664028306087694655271831269197539895003005627909327777784423950029285779425632111748886567669931244452156553864498287542779459354552863180177194444492206002384206351153781699500188601015064756538585356673368568434457089224584329369956000237866865129475852784753931076934159268020108627123545269614277808404499604298519916323499729992329705420181127006757271139758244703283701084350098388553496512649423255591155455920977015556798985422383451931280194465660201810367381252287592235197556178309200136679610507898673368776496628463538966311798331650411987987980164315459884582579547832525306202502526443458805847482581515394055287491665659537769546502314344802807664036466529783689004576950777040235343957199129194755743385879137304371130224793728493234795894385055331484433187737562634027909541082893195594920884642026210588241786457371919618124413447037791665504395734030218443284828367418489512116227058507314485508552765342001380738568082944094863650372430571003360924041311443649470463643699994064729709558504759986553791964549287992481275226494798630668476118853247723291688162399713698370487426509762775659425793486001051646493784759572014657675015535269792754366995251954440744144283386001750414131111667230809657946407237193567258668462539964295507033842765490660619772021767256570681073066885131581234651940587496279360245867891311712013725190590263850881770819401553472515794805201237096955713126520875606194123179888829902503661200620276634610607752661072580497764891305676314914342550345425604151216418638004041611619601047933614387969886249997199674049676762092156037160793401976909887658750902823511492258321786368589345445293711429545221206344905532294612689662561654725606516698462684072212825372537004785415516033426771172009050329490373220785350926411136159783878341198336539533241827389512201618730035392999250361083646493146940201577837285435821223690037609793159943619039105258412361770240768459422745545687080292547891859986444258754929030533584214666391381390762568092526258087509368996226270139956380142390284598449628307604944272397533317137160801432815138979677338107653015736211735404642476994185657237528795164731493505147427750385372048870661420995689165243003426538406158770581964523917821128961931416920426589056774123858081724423458015072961468483901463680774562984837171086226787534051890972345435019949598935333274905620278598263569201371173294960571286366951839800263532154931143230818659875528444009385254214895677543976865751737614218084515751961779184882604949585968797417065270819779225604416130802552257816146313908172863903873619738099206845696345718023637871229603576027702884205493664066851609336751655532076471682579420122673405281310584306085314171392155891130611388524157151652698893043187323781275888614143227214960483172199735650682761517781250412579526765699180842118325388470880512259977717091802367295992598899054732080168114621889938915522099361427085378611913328867571061290103435507797469316143499043998322161361584889517425133801385909658602839424222566730891999177071312879622286433517744793989735505405015931176461025048808610647316358063832526874713333981960980335295929841312460751310784346453085640066583397161847049146700987543206727909079543714309858997455752023752076528907056544138977425754817298524240340994448097387423570403215404321760927398965730734217654051122120856655640545800382038931697516269093340874254785372294853529777989632467603914405102361823721044729272870175074564329545694307774016843998659069470116806887136173691893814904011312318842808794202583875979054685864216897716738854485011722198409877526262195760113920656872942603532194062187907137563005874049074057266243482479344826354194306046318984249721983613020254906933981852614204878318285954230086492262593001139869459474341892988147557184399424920719502979048923436955955891097431794856442586577175661013215664655702630109527646701335761521673303937671221855455760763577295605785373526207046489514021368967855855319610255664492416888846767729215998015160927079824072944444498329154782011628249908553471525215301678273520333828495171471530019716861462865484401070758234531087867848148003010753612509962940125158367986594794323332586596506855887673483410747879861755610005024323826708011078129796369503457002096943666584891597292638808877062371587421632346893933815424456347056205521495134060184675691909813548364901247788155420300272329254085886408210766469015924677748146960868249603080068425735683873826942629569172058857488245783915645010833110051377769704149434532436421113760561022914265864565471376974532729165433937970963297772235984893660053145554373692407076650747638834185286534730701365155128619765910526481132234000978309793087422323632434560940486254379064130450025138328306674705634677012537360693096304363215046954448336946688789793254195623751897901155833501420242416174609412689964704597322255533698888989123718513642502045756922676774997268624908417705386092676622555504559831717106074646635205151857338705502078663255574808291291364098727515922028675862770710923156029305088797902381102931488837658972965741804382206790424585329964043012843116346528154153974398972913647162061389034657330465320867713082200677497990024152118344243204201904186153020574287528687901874271895163826128604529722753596854273238817282940463199528994590678804140546019856021341472112484705703268465472153118143901095488161481453270984999954993125691464577733995056048911379700853590289567576141516812885465975510312845923267321118726147155328631550760703282576184054097924758105720798203508347360531354908846912167936721789513190660097102600246274189274786350699637199397194808566714463536070556470049628897452797403066835883201626782853581584974273882863655195021579285687034839696534388626075942960045027614723622109938134440445480818982858677458609211160150932960006124841766220099420070403160449830356219267890070126541002658690814576061508067949033316258204237617918086255595891792594316399186391657576874614831946096242659994894215766621248123110253976086384941291154613362444265210665396138249889750106155591035598110248108004869750891296778228421397116908689880444262550238787883699099564736336424359138983514865029265625862900064917270514186611216629843191112951354878028027723131240296818667451302579181588422041934674659310475647281586337346990729237283022994550013802321269195717718906887970716112271279615327681508158096947294214857394097603949690535150015308957442044344578266043629027674451871055809597305664644159970033579773965331378775357417219610770475361650465766283221809519105735009979360569389825700358801578356009304267416716504058271567085443166609976017817998328929680116641422286669385887379991652688841913721841960335188851270471309409303847835398921002902676798228873606813079016789403949601101516363412645766697815427411451379744123204295121000680115946479097840705274911069212524067399994084762899837751079460038137380906598977381031523042852873507719666732003096438391724396120005688048593391685578758185453923024871150767796381393032464744721178222139564633628599951236566054931288583049846533183856449600424481267405044659001299590691867952390145686651072640015939544048222780716092434264626675932268585003742757541679413092920430188318642795920928069106228034337894835931449880381751650405892519744648594003211522215603661208323819470493835500946399170186673889545374781426994193976023835847556949299555555724704951470023026669743848811402076231287391967015685150643792220976502283372860302110181140118945865822979021521882977660497917587442829918622259762028287647740537408288265256516649174645172331950603441336497295330526120421408135465798474424948645104263006740247611459919483798630308840025755727457534048562924344257791884951786742290624511766228543244515069035464723875856262894548499911793004905682979571462378727737313180823465299019316749918420392542841587919049683210753305945900100228093362763100782031314695024580424491757578901422692956211837948625517409346559753517533418519109232901069516173609137813580800090817119765982618542713312763005966529285810494154498271686258614428145930027720974045921805043794070838357527709033515198104161168539293548488486480444001323062325738822189190835894368592256054930335734619022254570033696081364784088900124101527089235780452025863250565544061261155449769161312271374749168717335271952598723700931625949219109084727694832103383475131730209039449432648441346079025352973596524794429777161991426161319684949459131777746194291929816069969854294189061906751563066327876635313111028100329736712527961180383638609534427377990200161658379197770185448543962161491912167283020759127151471212693679460248283308759750555643602954525662525314642216547479103718421313062166577690087489874111744320854475762127964687100123140715335666492493097733095860870999752484811715261112244206333788168105846670762057947720274551532753122868846423549257265383564970176690111407797984847432874456506087445536956643594289919019929268318831594251947808360229794631942156547285359092951128435055812789384957578062722996030739233915302151901452090804654864914910378852797954618766772953191523904687493781911219217313737484184201500432362233828379838928060608555775401376394286236109717684130320089606892277751664890373695015835892495376872690017703875714915702505017042209949069084104802019096649572644470576455345987928618407034140751392573759286014126014583212613862283480025169131756935762135752096718180066321589792096768390285579294833725177066463714400927077571183082966264794476242058290173943176634496662617559691421980395884768833829512154991941779299917280431531907824173690941856417321324310600469179263220350034246391930413417451176066839020147357028252582068427543538240256297621268732045061829349049272930634630209882986324816032867322758732107600897774961845058875777640015722283203291147816845827157155293387514519509625789686415633168970238353786154110876054071088512321939108982768476714707100261084481045383381178550422956089260794555187909740652088490694569901023118454399499586568548992418493206651310689857320512326599350561986647157609633283562122995747715302180654488042180691591346097353090209497846525796586012236944033804033291608953589082999276019961630078754065359609099136386928818026122813801367161101694843320825481072176765732498304519551273147895049043921602837889906218760656034149655233062741664723743438223671029200596262558113770769472641192804565298370333652895766292676561539729932438370077087067819072970831048687149440279637260927845925957782039820034945312391887032040155773753580359571168431546817465609506825659539227119985074966956519701169602722153992177358706016849976531617777721204849859686458178999217089610909194893525512175671521800620568637817772040851497615741365374334395252550298789416595807286191672566565947242243371697159002813335372146392273354072562548005230211480190504313138325297076402914672774434900918088661605755596704946736077559232756395081206453349686327437521925868238941363213771916283783284953546705778091661914217570368026457258559625275638340589071570991210552088671939300154714157766417882165333624327232315104984224458190752217450417330014521799251044707681263685342175467795968852390677446285499844205883336585029221086971452640356853270980611115940382605546290106810899190945039433705184309599427939953642664207789101531166640815524618623130290591919300680937976072850526895268787356794376007798964987863738763635867906477075940420385574744685966825008838737632385398950723375669832767001422258014092629989661000743057820926447807139070000029165307290175153264889899917928066216433254017708356110187955234894134316580844978289706374277803688617170949525727244110432981418352430331243701408980317018804761069723591379325968513344384648360287473426323207501057692960766325897369759197366069480384595691938897807423722315197077100877529459903821706978925156251394172961846910390374594319368381900649075921702297102733948171232544740464215226596331442705610892250749856028854089143681564332006244724194244557407826275849928225274123346726851453101675790609720364523284460761871407605548028289712741081106263882307768845038753389512973688629981211272866466531943527828247127666692008045200166642603136187641372060871649084029171795178552367331006093059860773164643554490754560193009877085444683891391016501710807763130899774761422253511168087459786020148193990600943717539483655370258899072915646161125840284015531285728498158374188728741510164379834852959863756588235108090129300203483547398838330071960530474609676877974726892496759392181768917854508385866381898816486286122649285673870617208485872186104726599010362111624233352238698159649177040212636246254652279407031535983552892475603751893065443013573354816404393350685168253526349685052411923151777479081854307832587181827767871388676718374084243249849337270865845283071570207526233271325663590857132859043465837646131583217026616473622814647278419052472178719851408014025967049858112165829405793885432782369457293953406820344310653133840834394162512775747723153916858808583796995615677568391184766830332910373082152688070015579608625598584647418562486838501041768992421139814858372483106059935575893860589965755407475669295417362971943873958950231995705940233692342759529594514436566163749745971901231813788751199809927127941214994005805689646240174697985995873277310352849443853688992185312038109732394656510614093425288523239751785361601638366771596605759167934953144749818164573105223848802114784753567633289976714221134242922439453123219735130984107465949145388644094633577555514403259128626597123516589227447691901588625476584791721662172491328286667705503810487591336539059640432117184677084145974509236056649039352134848924502226361401963876754115308273614107459562675701180998348446688153536093791022723828547641081320784927989683085117285748568409299659289028031735210041051083282489308114919136230479384954103347170160824374674780156196804520632116061900383617713783923082787652659111144828529139901780098815930064194327669708248959684338260868801367786079194765622987367466845759866372218468932959040780274622799865729289626138725990693610301514314289033190638698270767813365754612754714509822074827971363167389666576113306686585691508064093164177118937281783301505506791469231289499472565408306769087351799764040667971837729055171743395971908060535880145296147334866514415338268721084367235460050949952335119654099340219871999005111707032403084107436815259064469863830199608512550767466251346061820218263456969769240016816064785539385958225786841627914323051305256998704258976211188715084228928744275910327783503463153263585010925510363005742297844931083580898162081585947644379461053492515575870276497816154924853171819882281401264804874124874433490995073616271157770281232632496740828998532762566923040585213179870205894213496663736822877632425988705595864786299826429015008556523585803195051074108101521266221660583214566314181654298786528749692208500261734949914491342041700867726048855224018384548729105561166073613832192720853902299411516304111187946980776111262677720260248086018894101721166960235254712277731589753746859166129055225980316105888250978079449531533517789095438777441204670046896788027113841707326096043976678774272026627137390395720887213893194076428820707601457352010188028235688991627431473181403837142612266207859514588305601288501631903492920453194748056915215160444214014590263789766916607596072888007909597975627932848282267557421153662988122471821700356289562069974364328641553826998606450225444654393142510166481399347461724414285046526841682384779605866018307868656530770279028507787698676707531990275523977679406974841304404827101657570914971385853109539855195489579876551834263630599771705045331143653078254904406737303267051420896020712006278261013552986538493375162672851594030028468672698406968486653869528587992844301663153629933738991280295845755294221590867887475793021831173068629600824972627480568038513602625847178079345973605585103469840806863056810003529047169373280785594486549168628208711629277763169789483564972860699088979491964805587868896375325424364380411259730379357478997414054429717122939555458985251974355473323882799966209313705824958983686940491643303957684939700854986932760748070248199967707575816825687449702058103740895562286874233186354956373527719202930075353427137923036930073104798130350908494870973182448483416598373464941860835782664881523032646992938985822958615918337600563019157430090661799214628639013855598914586996261236152566807340355882770794268496700381396064593503721089291822459890966293958259885481106597910077609167213999548366596871848796915128112501593039668902454555026994325722887454971240471337532542702324145007178093677219433118979074486817471781497902615140837957735435455356439468408754264793341382978442846497683996350093767960478841729307542743510228650355791743560681933289139653484047850907349108775908323481154112444321621934996104382846730155638346107146064908934500745940488407863837814257911596290963922399605752075563398234766286563736365118837142155420570305887458568627407511439192754781824296769922473231097879672109091826641575406870034914485111010296246883382119788252884304847488766727595299248158371457502415304669412281683382472715500046836769539673120259708236368497006118620433694696226902563653931175296097766749176824403630288698957134542095642614484815641968637202033711125897551210558378423322162190183401406669324796505376097993425044759336201836554312868638679628886004460494067457992874727867208421313237623434756125016866560641259225719009802098896624099563446242284031590361444760427962850997515230407509547422458879556080187174552822313012461787296921704860027554891790539186603297553375141595137906048741171634395442288686187072137653162441519624767714526091599437138121810985828695568395351004195972367352233749982535780969931772709885391281944373429839024966417247731779538529892201791301166553655511800861079758221466293426458506470221361186268082771938103976406514533607291907516684895641426558596866104611102316201687063830391199684470181050908051036844587785016450811489368166997104980265286024460672237743904891502924544646284739649969873625919600150309631957620746165488402193143581576880144149319611257698833374811405980524023081835888191415545816104004468853933846831884102771280611540643751359766127692630717717743485683111414424090854362908944352934845472946976089895143995184046384262072668387136255692035288309623886523072342072366244049498306499881457498929998158444771139159305297241624810706788240806306373219880545370766471039569599100564092675839551100520716821373311659022823031432327446615110622034697172954978054114741387669952796567893221199862050909457834244918163570084312638726023508131636060502292904505271356816273522432567454934672827042706465515153335703236404140111467896643863082960725320335659447413472121067638169751160051706107317220164502830665137225266353948709065512534185204258453182609832537487006459968369442400173172702490027754611516714842878577917488081458141985964439613774871920496192223541069213191491606825885112121881260718025523540187435485398730267658093980662284624014236762551219645178141160882118014333659367777826650273581699185134809434638606390471699453645325307830126636425722773433249209162663412419354304573361821434776821290839999541607109272976635310570714231000591460690752356832553400494183307749519430745238246864516053524971652159890949833326013265225542654222584448054839650286120788685788851403729324291600613623007357163552032151589314064093183730882898828526378663196606738019106215009262352443448326157899835815740849174592912126581932434823207048650696274443738853186465261795761757125655090215035786007981875698816601592718161762844488823403300506343107043356366890281654513872236141713764696499950118999860417868403343111659135953946954580661006601869746316199254922600293949903874587904257830036518584005560027973996094416052520437484078453606617438813922472259386936054708050966390693341757098996796192997865055133760112938855281146604848636673232530468281330029401115022984555515791582958030805014023078823723853191871238051641489514895700676956944367288399954770039925222562379506665489878255096362301190409948528901214553339328514162599995829085924914788797554971584866203449468555647987116923005375486933348082288015830769184823831200676746102385358438713037833341887328386026702719359756612744661360799553842889918619080284479662061691144383528930422303227110439614804737841284621225947122818892812939989415859553504025250932765490943628940737021996229306267109387608416069418542996847150332630689575073446582342655735320906270175536279988148183558603074179217780237669006472305803531175310674963910217159933947906651743322796784759641507584905385035118804410473989147179541490644780810432790965573015111795207770109824344831173856833570938145989882343194088162592931214881144222593846002071620869875465370888661204867350642859731944868040152820195250967863685485223303956471647268694036036092831871892530574096873783126570767063756292114465467202997237567265393865183935907971838732466903975540097177112567129653420835716983996559688647787176994483506838251808250513677827428471220585869754114177920359966559259447317078566407569000572671786694952619612864639053360393891110486532963754636331420143074658254059641428861961176749172884553913624215097000056760360731405828437333783887606889599200191857415698233686828489569509464671293592349240824116177150627270571931209115897669143776554511008690713412759366983033825649372575868008211323062368501702790398921426406472757949078694200694119831694023107638986302296926149426894473432256018161968412808912236848315333514451462052683796590495967317484765664120007514174382971511234107483426767084008918499461757440601112916215894826892036023228569849062826537744518642549911953424504323930743830998378849408321441306304853960092478574842926944735287933355025868544465276050134763597188487169883224735117175547536158974462327539380582197202208579209058196302005570440777234996034657915427719781697379742198703967256258206074117751088021465947963901104124785851593669115909122575612725347496021715854459732985345451176198145145557095848781683927889213237663078282580852761762669446884913191177782599190150545303919658873196239843121500844385032024096681760103809090818514845608232049635723664741046110411923788975550805095248655860153599116815277832005381137814891844038646977912984930114098344943939220868178604780064151431092919425839282889351247146638504704454042106750752473994618590447174677318485422367369443447018981493561898947040771024824305842626169716058835471172310617697602847808123659345211829384616518810119393595012904842322095020002491281930757580466407914737826400155273163281341949520489644269672019293963925980156941612263199446131257250324658395783367596860410188249402997416006010904092358273850662625067113114717370776769427196295231984359560593497021443534978507407773374517921814874341584319809601060765824758145193473002798467427957825070411675148461963788663816700296754953283998869485180830597670436137100407349082312857643140308609662936285938327295622076061805970244541600169697725449860142465950617417158433068835349443801128819998284656061846658260930541144507214626795542190136726226116243653185848364175021058569525461747390354536486384264681707775709486279462297470147236496836745310001960180768692338208451473695848573587534643923910990936883850747126871250089338142279552166256726647536265954160097589585979480127898802287953254044430608564003439395477836926386536378946065596613163795474489221044609233654282786583855498717062372577724926038923499118658817886730516631618579283195025356795872658933651302140854230435857028181822340898575879152053057904035659247531551812398720880199629107355141887858481295272652154476167256482253887225286016203891193807608673254594298029091093432186744891941859626132900279191998755288476676930937105082388996083530032773060177560935225935229370404776866947767712217600809576916260388847095661652407126485569848000950164978990535166783805454392848237718586424252433874913952660345059216353276678369874864934055045645137073863612124118943237515916138904906966231734221686107604304655952143101974992253525077660513770850253352507159804671339783902891426166779068283787406336227019646564328143185101208757295946226775752854121879673308194012996891624150040427569394689120257995368609252807010086548256042811079917724723209111541303701641309640715629242392720583401532670554973323060031570401022886476975053552111318561517023290710614159835836918139817541637817847730082220900124256264341229851798962242155766591279682580607560384323472060851847702626736474917254725383518695536755089428492649779895982833776056712981896032805580516379608036933012391919135981080039701277907544376576082234193172011237545963664049827071621427385778651049970962467483787382228897968948697272922244653999903356660256637922318957971727549688255468079154375540131064859001577972721496593036297294338808722059126717035667494266334941703292377975499966408680532951604554813677799283317772023087614930189210437935342428744927000393629655759326706765972836600989478892079472927707305415408847431924168159354847894759582692464283955149020586334598230033687429382429613870580950832149467364080374909842968224426403973741494369368445243669997161819767196605753057546497139754657591501561174986908516138487275553398071962542731608911493059193168412437099671003094386947029315446755752188556158669154188931466857463190518223331931335187468189346767818825004854020619733969988063902572562109361479437505076496159142818934542067577623471482344148196087342024075002979752443039546749509000651172840228600409651342898498081142866343556181510402013319558084020125147217370562011062886717908763726478673270025928190549022088953197447741012428921944846060634508199124535474671029857150625412063690197527415229001648847257072023206093737454794085225381850701288404906261268037532448372086219403914021289520730609192606160025792016734630580001204070432680969354333796038644538607104845331953385123539904648791008067061507348640813383461716860517663030781370682261247825252663147924595420725948805027103223784009211240149485086022473604100260593070468678268640321444707247929757930894680529971757277371915335221293284347935379810120292635036854627223412332119684035375198639926470427079688466317742798187421569324980435614101255699558149889373417488174971719172057297532802783257676087864275304676056130216169720091056127877839564437923734335623557641101443642919275804135866524901303408239088987404721803829217686070229380196674061947982102963753474582968517231724248486731514990504563116612835341780854918756404112324886389596947891977998081183436160131260464210201229335776545941195769683073374076475229731575833757509057782413370025488452611737610055570612443509875467049055641160817969327970866230071773940928357320739390882230697277310111903376262992802121516348134965326911752804121992085031998787172745773263615459517367713259111229551856469876486476079422932996173055109078273844726634691414814255363642077782935013489765738716801908145350429855059539026323804127444542918663582611934429601275816337374769520466808595619442677378590521109941294169567982826817621533646672397167606133669122943754432552394216541385102704947880236531392849020549178154664846269862073365280913671661414447820116086280094674718220238244436094294629317286215706213461887948549021721977469447443536342429324277671418508893910379199662623611440531817693994580974938149292632316122390473677439647433136534263511716805636656533031707727596104783422838392217902610862193790630133957416686318747630599602344601625616270539311101439207291445640343299273047237776198315174312662005515440886805323620581377058592717161113582173610283339088586469067688875507357686030700565400011441792337478055958278876598326475122896744644498449690841521792450096658201681441344125832193195286544530074814961699577820342469921953150572171491109296660532499427820367861909157297654284986508843554706224623165353395171633276882089774847408132789661557480325513021333811014697806344981249680709255079050897165510642242039805974602612677969339299754956267431984169749580623356788441322437993405160700398245951238287579720009695847512725620614083407741498315414085742587904943170462140740244145522732699547676680967436934142361149412169048875836818250929069955388131476530058616377980648778969353271255480121250390863043023849391084482627290334403859326169506197105821555404595379160430401045397236898135833878210749364745973316518183277066632589170482093950136449011695881783216140804730848027194237525662948710341669984554252827360900644990240328718177440282149284046724122142436610745016098570039813197492229681942482842414879222196578629894117950998946666223027311642746188693964849134099035857635450209451616441870597612367741194953013976710072847643451282959085563993228150990609016755887851375482869965970247802862508576600914147305755747031957513856047714009436702234496079728857466025150885842213048585127349022652675754105642238908386191002023326289353635043406293267594793540768648418423215106085579024374481753175157446267383030858466594007994763537124819721351618417990580836448449033361937910183832612622941895612034350882110919666034813222996655534583992473046331467402803552977906708880165116566441673644561435777235106665921253394907302416378722984416752124694843709780930392589322050635769393278216612766861821042694849726075033152718453109024767595477542577559176027138378296616066782501657594554692373741504240202148165155185901282606820027540421626869782810530662017164987647865065087069653823386032997062213328651943745773168156295090005295603428060034668460430403670384137335463176479092421397847402480442895852739560708043108007950698183391513366816224185407067008185503307443729864760957967870928781782518350034741874680908914752869713567819370913466783225935325825183615330457152141765509758512737721232206776010159558646276863338330246045208901302200730132799290026279362001735242475130342670284442903254473788441210860361846340518542622194310769744262836720389861208566276939861100273747665070490390226697719534916180092274867421176365323828086346893406785267849910214902426452424535182535292649910613275129685142206108973299281822264404987470289518457875616436289416051823443179278129252945378727965243073551609252148857279419293758174801035912975163442818125531800272189823099228283104860404736285723417432266867106166168852695710746711969315204367976809021392744051202530712993960118306561033411683148922787066108430885390842385322473899596927674235521603552304770725109371987427998605324218195493342534618913270851647070048137383854187083729223588824634058157951559769228212192789554497818220801397329211176224849195874707531436977393552221329989744231841029913813453523864934224966747386680584813555829199693533181650285494992470839909435781401200784014648172589996556004085633716612497124897103051897778484615988742852995303960160942277700087423069529178712775275903888647541254606711078614856988737302428636862981903587503386952780339222161638683889060598203458070804745364894795822431362301980646169500675634944145505127822387562767450922813529146053186661861286817958786934175060538401541880015708947280668587973993628563173037356804550566059723169725561039646073335723384370264013719110477819871498973175261708260255492644798809436685765376664892514408362414977638675429531542362475917623954763642348909520912608986991661343491378789920917445770686832244775862489306849380477573911278853285188868692565097446552733803204887818216696729438000643963237497090067541831754480321756946941398145613245140209366170516745461823029126330162541343851657761619633332515579395769824277860167490776694248951979536826224637036611740794534613597539950230363434157391525895330064842160925702669828171644433569745380969052526174072891869863900759202153997918810513673243306392835359727330910317342431737761945747038098544341466496428983207348513280859796523669227031300448179066156358163201355995234595335625172784604429284873004735752075094969832061913031436327971526888382900926759812159168728627262147641220021631950846367862756081073445895787851027252041241413871136266859099027417430975360620211511861769715202389299226408616139686841857994856452673258605932447077104033959776168353190362564875447769162044469073443354808271743832523755795693914107955228572983586696665790897574051360496374407795716820109063997994670320399936969403535840088611426453594084939692273600001347732079111553110474913542635128219591608110276727418256369721706226112069188345838032785517265944072412508319515211198708668929679489091445743852485419474542495595638014222576458179215905116375303285421243913216714523848538737309939106286815837347131826610033070103075785037682412308717590382534913598851740067177751911864248572233567999715728742002767840008930073880112300855446678218493222396394541263009676310355636378327529178522756091189488701576944095008171406887353362103165771086432448340534888438307276502350315109649109756983352859936585859199449775654394975957411827487812454002334639400600027714321768391200290842270282161703482217286659166599111427690117171040662129248885644348961121354941644117688112042709108729871904909893049323061453948081338434772543914319382340962046265832788729486276585586694419835459708633446245163666628913801854706951771872936276500840617122399513408558607668836198354068826357089728152304506944383059253258999842063559360241745461860515372440394089285891275533735710749714658066307266085929268697671858010191283185584895771403126050535151288924675926936267882553048283241528844251555276766550261158408845456010196626801471483212075955007311750654870287636174664819957108226567973631385184184574233033236094623573916739712160192014610977789054828680447627702891815083718283092612677154927902552370684813450393739372582458064822282388001757203308895067003936288600830612321177091406236021633181966057628017944648660188297649279485099314486927153755919730797948369185418499108511455887201715349878286010778622299978307071963137356205413509157594740508156223088464850152919493524546783831749900799074112915978534776904773790181808098966673718838394406348742344370377588678166558222678662832221117568902057987239317946918006744741591021528364525226918444575902913139618830436416353701131175173615100520146468703279577164932861917257251814898954876115442486456333499950366832555606028769722229635902941672062283334087079191895020365423562953550083752727481900954971057356536962855890141779936713188407475845162478090228731894288388779341739568219878591330980092557154264829859295305612017631285495862154584038124060189015899523556729758474664368238089651277151162623862497685563013834744094675510926847033680344152110117037849533108847558998706094480756531763626165426496427720321605828523134044780133021503781184259363177441238430379408946974634016049625357911158238718277906511014422525705022253568174823302066841409286183092411369574863171812141776007004534953097804093652191391964132654116436570606099119740332972241331374137788399780564845302274429080352545009014761751975842781907265654406352999241728157977732867184011394596981444593759796056424409694520268827609457676667777071750036307142855167910821318953820434662581133727940521567545715132581096787902504859891001122433694994332470611120009603629232320414986351602566221354925677747725105284377503065805555452227237190657835023845165465112148831995984785526518200828966224649993488157588083446238610128745179600110865937677852340542217015151882610306867180675876281536300534596657361782728623555992633379166902646730139196596704586865472525521328174190639869769632547206724663740181023051306966916209973030109580049990044520829782903580243383169874419553916231542659422934054420263836063366155181768436038335788882811664889828037254605095217313297570954457889894906142125238063453679174185111126869952589265596181836833864578675892761524046478937019353146418484737782472043496303409117819459193284115070039264894802686707567439690597320315637761847452512338026102909610966027184118934703641728702088247711581190390940822928533606550843140895584900429420803358221386890702174669911153898429752239875169601352936583546513579133254518462933331622211894004137642283727060605432034148117946517757857580522502328130629910036379374559650662177377019403316697902457898916164830820426825618966564872646638767521450823120664988147788437351914294121751629232327920770545601016959108014679058619424188784868279152777113863709643405732634540427909237694579759854362605322593241794892172690332653996434146115448495225129828036542449775636832299589662057830472947266160430111991921043351569577556116337328744924846422493891375713687388896370736373417791769007749767876179732522137917736842687166484286206310683758737360662658840322658535780450783951551830917382413112546298934176623725289881733535887138193940471773036131523654627617272876333951735238369388405208076557283299692712707916488671894289100012699130093045146248344340176238583929909101633057265391587354795302093007127599351729135076566535074450417632930453667428516162176697598798371225891924153914403585168515071782048704124279547244903445290021810005112796593796778361618666642761785207558642621735544190003032643133262893666053652555083798130636004673320687333915707705169220258656031592731071944303141631634459226267186199108656363600006256566606669769482694485022390925021526488839035487019882553557443501635627286307701332010814347922610420742600251490003912746481792327893108713016906703299050285371795050277289339751243423088779912816011224856904298371843475770016091994483307030966802181199007366805012264969997510625398541883720772473686471217892339213024223475474821716476731749731592327576354565156509451737259548570586673170648139704703086888173363518230910881614761584613649652543596766489015575525907168693593801696506628859955247898235839409159654856311271645343735006523584083628359591309439578701901084226366223851573638746985594888839397522004078643470421112985661106893407279103670931426947662960489964013349423497733313456572030408490802223103431808246177454965566861002963572935417425404984094821491664816597785262163926241705035794369682290738572569644926484255277170106391518868300130307222057781550631652190454907248872897264178323227301191070442929977383379843487327753788189570794474875822710040298287851179766231056481518254004349648468559534237802034136525501884171142823746447954656189301808686052805676210143579425511481234574944871934970763578077952658059834971485248812964857220007739002775813539178784011085258461054562865230703162112404457718525112566041824863184679487624343454075650322129045128098366871019857502536514363652801008951017848528865202073921910809504627224631194178390020537959533859124899853590454190971933926519877114051670310978978117436130858183344613068860185281032576291105604436028052571100569263975990386459034901561783980275746023784292813779718256167967590089221736608684807663941426975671313479084049394894661590503827689137484944808378542731498989941988172874705327812452704414960215835054946026665631904099385104410953983906081884014917688611052625634404105221664368957667652664815971042270436493747793297860673818863020636658026472857161945848373516751406034254815524226263734418638298734240282613840644744896707784308414716298407670724810139207906836035692828456983416286419287102327338382950615511204335999238788938069753666815099967006328316654589924359763753400934181871915398241140512518853713758990600815452502692062231303548242301291962731792321296389306501049842424848863934228655717248708479731571452921102848340663508165875151428264702780249146054763666886748574356266450376768418936665059782158653924197810447305178251130280957759663859022539614314428482025086611968619622107042022136346522915796531353855003835506851161061319896055635353690164462188753317573325915390236115736098839159386442664998219068673927141900249452618311497781466861705297929768561499233199460050334466623436322678859676841431876649088776190671546122872431595703590161123996088051711501692605996829370294304340800748807450469060913282391710680167263934231735301190596163775674681974950325742833982897304817958770471277389325089179228259071276577808406666568990327794204090897262156333459296493276493934695243796654925874539847662478385100848220096676308303878936480535172183395784774875856009013874120672991188519192067532947659842172796088566915381542792391102091322617402939129387970894520646576481455072804452114218451391418722372281580054416762659360653569008732365986673170513965746907067823454332252420835790819190396526911536626732264616282390074414610094473249423824595794488735289147727865853435640366402070101630872576783336778379169497299490848106763654473213735996733178635270132162055589278871709024853992533853237112481171624092451191423046393925871733351802450831511495954549632788881396341788926735249088567816814813283914274285361554291997796702633192009659892073931846950531046738414467220757279784855775144280618415724206629095446868548522473923442274132681982472510133403729398345583832684390130904688935348769457479538931782560274375372871546297544495493759326033709772087245340243799906659100008941651223724156736698366238639052068280575454085072730328209013037901314233499513873272914735424921966327038045624133484609603051593718735942927754919886279997383597699781033409791457008511608380681491901609428748940121234636852236740249748289371289874231870905618030875520746942618780610029021336997140298882754928511733293810800338228678478615745774933571168628212238277938933166506891580621899651610960378296281088551661492798332106541299696151956591978264993569257581185576404988395736232575140214855862074032926408581777123696111773291912937888017198185060152847897858158568449023898274981064392890617149015098656446591733181857601109484689880145450331523245531715318495752026012736487082197932573492459010437933367275549026601726040766838101714832690986815199189128311583155992753882292050237780372965961965285234021582989397790543522672078431879809602846447697814996295322225716809157339326901558141761307546281961600340415270842623319609420529523000229425032187552825432690795948074483766587607987469306683792479696496690420515378421553427341844292546685747340247812908139248329201966299765300170966714751372329560329433184443295079650585848902146266454880341024445702879834996678345730555036214935842138596381105576170651679512965404931660473447038174176068584404807173881515927442937949467793563251473128025839220909045547450203536644256914038191079433258488500630318376587679797942177362874984425113400434907559144381020360690601406866729285411947144649431240592832492824792193361454939435863483403989963741933103216229726075165563989662970887724418364351870402513804568216490249471081664106658307751722221527602336091208009689187440521774362808132978065916320318168996986913200069024801711709060801284614952175800777169953032447760302306630210919492777802559304827100698933615655160714226006116697108086084714325705888610711740058189618587609695109791369495791269751931107993278259104591395107784214731039434824561555776924151742073414198543612500409443194652312214854755432125938862090447694351766059366238327727047227219004778488957261176618079927581534990786157674364750508161004283601786147306995540314891632647477984491444059021077850282283962651674080416330250992152114503520987230620482277886415922679421116263491128021227023710070383000832196263316748085705023394019074883966556639352421166846984117898700932622204415859824000329637085765033950014166586733399040362105571293852547668021337211133452745212698727901690759496292962750663793768430416172230574417905190900107913224203026341569848376438176068509374867352917532609477171496132677139309300417810177665991919786986677588011577610875431751861993175122284972759303954579543455694362899305952414822586712258488723204891655404423734347641681200976141961072754137337127633432334717507313682639826788332528950607776235926623043074284921411979234850577278957697604654476006072029768208610157110363753711675043585760421484091274895321593989935185573778573246939455079327913716417418621123111969608559521801190426556459738664593929743028942893177032859794831324925234446455986457911092314929750498036574955139367750337648461377318109983246908548882127894593666868454557536395374114178886789082752272899178536896007345493936954987905795077944281384811805291373438435385624221347374701096342437608185927387355838171408190640866745312697345877595704534850366482935322620304609907883012162446540186875626102661263361815659458630309657671664344637473223272966739003654392885469773398553777388388046020158763087183063744215085069493921289427019536958232799234236049132824080453692951938877582282296024451936151084189654625577391984589873851948719938967971295504878887748280342099567241476354472830091673744289882265998725647795621237778127543330262203644098198580600570378583077117951403924576672947650267802460267326801184499377761160965204625297627294487444065001644436845082851022839966194999528502363776613140677365689139471695666670040609307827242000856653652582656196467662261267757356675960986690651110111099926680771578586698290917998708248031988099628790934610149944955880581622630942607125311683440626490973506450693063256764836085791182855253790410840260784208466586528667053687821220578513829442827682776751582085654118995185014933880166762549712477415757510193576507521865952319419825283985384076598709665378144073779269400246050269836821658354872213372160120521125931455556900088814674666945756241173129170762194591282735453811880732933963397760069229397939487696227590550617526445647381562813120729556199324567070931375766504007264536892731887233247904499369751393220778445399775271111690252831291031019189185684964118120613632551101660096706026793892646500159109814899331185296011274835639195108707330506285819009506868579545674493115266784595502237210328284999609351847091683965135271246900035887705308325299160419206911752118952428278979574214419120331972611079503550435542299219501565030323232227342024986020809258958714157197035283752524442657171227187957230238610945920260689912882961768144543454642656373889468356561719125152760251589814632973337813294405821204074595838835001877877140892727216011796211747654386156763452325221203342568902762696200306387237495044707774926427973074825157123755707957714028658578508319639016402447239479889932869082331971501144756591736545255816437893959782525886639704712451391499136994608995035904692532823991054146740561762275198484935838722919388365825234226871337618351056843270347099256910280794688739651895322448144961587187232338548623461068790576585858999528457005411896974153367710064142681597037644604297645147828010941276123366480348450206678929449418414916846103269880052940777085187644147621214054503093686949725308971340695538064396569655482415331312136677120960489875239482808541455869102428859313223258237839346853951423759841448618631724721795915225889544314357702984142613543355151261275045848844612015708954888936803180321105972795409287541681469529295087591833460531252540067769928925298311932429475669517254305360586683173015170232729485047340428154447418558712047600850839513480656786621824622200169766039880973602737917104075009847256072246318632100308497267748752235945720136286225322048604456348430680263295785840628124224190599138501372077445850305477097686807845100156157357650628640275614600741728768746797183444866795559274547439840377711966351314171969162040204098756959792261643072516254393636246189775433056234350871307561862929200270026658473693229016857576818319535674138485495183138490760817291553535707582148918122829694262198749679137421661526718614285415018392882879033808971329261470066598158310581737660726325911264980730013813461242561188230212231826555061988057913872145433372849903736050601025531868510651371318652327919332732150834898717294028270706580438252195674730106329979483797156620602160222490528378544021061853784334374165247522022199555671761750047178955918719080074308342292828237202853115271537957611429569739923870594778488766216834227327165009359974671715453884567999479388614398652280763883593160026223055464351002050196103220233108032074078022680226952954787623460509745946418031004630656779309844054950528428528184419356666889321230142247808919371243254751636345093665804475753277888856339607647376019757127995137561880882550094471893075454323160866112989640802225803901334418871323782462105864235011856523262959121482122020105026648021631964090654767847441230880374439083478757146202632300026464515182072897031363286899297100237323673024096580610449993827732654723725241066831210478091737679764330984914996143096459283421924861246793099664960009715034864143760901739755196372126699214224020850282197833462453793098475552925461021404082516709055262089372906775315398820497067527061631075056364749027083263944359043060079427426684252061982809729548286557586184219729350282242504335094436284629367303200509544420928714825478688755600800362736842285870927117084962184460890286785402816902653494773806548660155722420594891350834356017255824156202122900510678325736546693836907962377885526691868487778628188812052897906466739129466894228857574409862745012218889031542803598644819361128740664410462749419920210949472065076378218511109515535946514220808209306729610978230237480505378523103985615010253470877644242752280978134157872813540984454020052735346068775743255288211366359892641566252764269890452696972796736140586668906646678508879923977447454264705183018358468685873440318853348907218871389952689087221727125309301644145924599686616845398447795931792377018512181880223739993466813442216551304997363184676629735918434061277300211735117592384297336135020428233445019939101570503139965987316715802764475699856353787622974386604780568159800615745639775177663843315060222513893625293356982346890052162405175332558370478395593706147075626679181986266673947536299781603390953214329806218839585299017034499625913670715209138149467147307092798747935233076397780682519291403073623039222089899209755485661890080853934416721650278113096826091710742327820058673732380306012363223943604401396293477159361867459968427069530792115547176953229955491327240129651828452570506717052335213156888019832004776098876562506756041516539683485722140324504809000016902950558775501098633629553745034328256168555713694136606232586034939172158657605250626259408686024927045728385385858074184821792556745073346572192578672661818023242265159111695764382782347239275772637532431709359708255330980282080338495863235395497894472335646465276949827423499079369112229570452174695654215155958708465185078933402316236262761042370678263863959708168568256651979206540384805201031794537439397996238897712507594383068479016188737178953488688504587570903817029351029190977642724043426309139362321475910892182915585243288824470838496495620404577662887225161849912247200961705464084377243340939611952089868445162292697752905682166577071630354395724226740702455597515582355632791425787090826510707373346019049698549646588323950140069337236656779031463450779098068534878321725909662883838550968115932033011260019337055617057780188445622815308656320228731891330117009314389153804364420501623534225784450305044500328869995281606145953629656641278151764697786281274729029887698275327895515301700491905679268439212247399191405165644282439957916673346270112100254007909952661154633543712967110926319932791846286691414616330677355721639880746210878041117003430201966207879696425204328226861082045050983156269193602922972064227625476712582723236295876127501621493030693752432368666533295323664277077865305942390401923225672132394924356792288937139100326592482023516580644473762504206259816640842921551391723779469626065708820654821099132831361678764042373971677309506508069815673799003229387813779870864664502685271448076404914197812067982180035678281868573586820971934889928924428829143822825164634386958808396331124868008646419917664700383450668362541816214313906879140675661975061874520545205329173865204321045866097821621080466740615899277437327833840790904984446397755467566613867362866128659069535986551565824172582260700135217255815957777748585660765005782834627063468086698952969721262624331897322122540152518838403559772009237289294762613645050111904406914423892284581583667528625970650753927589257842524055505018288352576754541550076708779628959301810661959403535548749779089793884144619158692371210523016156685098511172432951940886868838264384457712514418120748123350444742431178049833041955326465108074211794512811837291260789010571387934310498208214271432430598487657768386616885353747396876380247125327295543855335029136856514131963589930464823895449638073767149989806889903375083410014105083691625505035016017650497973439265456381568903907110282480083915776878074705462068436754223608931545233551710976323234066773719816000136439265229893568898372791640682272700688717143157609452071767951857256104160170288799396032060678171716041086450203894428476884906029890276504755401244988308495091366225485160005706793429594134688492177048512725805365952496600700651996207702154424801403650615326220364792477169126319816069107961600674051131232099681729136892328071610827393483969226684696475167719500001457583951720947607015448545794598860294658600635416179266101960619849548322162917978871804504986838060973501470075766787691343630194860059543225912758673003577113785689216768043949169299727309101287606949539288374252828119463051234001598236640540996494699037814359150756096718588106946597276662073683641857590529504345883737593580171362356565589763572259537991073571987109956171965623134660477362678122510113605588028674951937795184973600614530039126520782721427853868768785838890649935693776287542536308084732724634177626880400069282956398443641794004840612103809005381999734067549935065796989789446271513653338025273665072099426053858723294141889330050695173299531454108891691494358886477439732553983616921156986520885041953522092330619103420919861925519529923549927551570178849985712497476575235556649801354281084353438836892859509593748217959023228395561806409930238181084819796187399572680794215783975720938673767901579640191324689818046822926374365385353050888345808243143905469970698672955932550141132379763509752861469142385024613758730424251474088659219968459120019364098797701005239064263929017626327172426976328001738912996480431000780689364997394267823993724031049053173678953975775923748298956776478241752058381028525303263275781389313187291631665347610795797120143224651432437628513546456633506951464328153058668632324700487580100865196721370341608385652916941664031546386760944135398501490790511292695595034975166209662831232101633404114848347637619303027763725500879522788294736759440185323730767643400508679921632522325078949448951747175328812989613479108287476615561212428113030311499163455516595458308866304857855829770357598800925187135318905053362404044996507091699548413312689680728946334757064391154947462504180831747817778235303884076773100652163186543262405228727321948543312692188989043291561350836230714516850107093817475983888687310216334254545923337486856666150318385604180008411661676253879850924078297836702039199676341620757915165248021927986066365316562324303030721191406401236918582503199612830861382348520014473612411745253283583218624790158871263920957383489574432154591370603040506462967441004456578482978096473794514755486256137177775457994609452165130070485040325534722521269611901522082438778299325492950744639882487510865926822563636767263614596252396637780482873966871494064306951695407111401252397838507728902579709823014101098324805084227687227091028313303362883241183811106956722577284568323364773680873215342256145650966246982256858498983392090805510763637228009239387151679384190589292974234202191592825643708772331777576665443442636502789973689352487689221883584755312457748495433093575335159449917958299579243312647377772293027644806069446667055978329051172496661936563861035389052320950832549530968833717406317784724982405226666893778818786132235366054348476100193931329855393994415691980997726311505631818934892935394668395562350930537304301979494247523637426740587105841988276345802034712302747874355200966171450340977530154264838401367578995974397484552080375354173094774387213696954321324054033206480644962870237252368537904534224771501524600297065344874140244995220450903137555530596934116161970916355496871059579058737332601643624605578507332451334416140607942422495245083601633218759051711542643151313119875658793117130000352383564386264451318530113719532329509819873209101892782237890324087538930182034649337224918255825903022186799491736120138369381364675209359608662015153268300868139535617984317912821490207222781524373416357362597382159169648266632523782633827853188906637336907865769268674981231995646583465750991362232098827980724233988851948406410031428957110004651064706217226347920091294850201219359642048905088196721407443240357785688253853751226680943115243355070165034239640926364750622550150144489332981193248787205087310670514432712969601940549058488243234073004883535418271856801425820007528457020952399918696253837963646938523148545122260215925622399983786351061293694077579728072848275623193081332204233840471889669993312910290545951252839776364787505868831036203882060671780586691976720196742866282336584018696786163414299330279410246607204971249057072667508057494515631842125588737555636184171296401468575540566345725237225915818905415061818058631529523573285011022061344574017039783706679378086257217192861208632790748178174680901195270336602087873512655310609946798783941953807045632645628416772778165818732548174463527610771544838468336435582579101919984657625795498842582120214349250825487848007793215492615573028659857216469823521608689662428763665186362795579358922454132048086759169402864122432604563864248788379231498982446461018861769872598070520406943235987864405763754403088036963024520202900702463682150926452962562997858550425075599110184749307789700787777219666040068913786783453044162378685942827033925013735106953115285188543575357657516934203353508689180863810090650979653087263375106609835280026716182560032415360996780036271909602462149839726484614605669205358143377054213151508165624807787587279753972394802661624101145846836375538766496880083115253635789978643735444297777394564242616046972703923024209889840829323006493409024733787153095732542070844697882734669009247117899411613655699392680055198556887642213550787718555032137143736521738018212220655570310140265587589007413566712297273651622279653170936672271229869242328071933906650455447866159118387030735271983000407592017855648271202594742372390212608405060200043482874657588538204703246679716157457906971370570068413158589825415191989409196496090573840202269508314050478554675721602711515122819688886093875385047961855316607664054853417349571204181431474079674320412973193498157323163957616012962729266211263683042320947087073973000078028846587989354701953417078966081671465708290736226878326969781989109684477604103436961486041419645302260431102734221440999978891991710158665026234291742134588976366326425456479786813092983281569915598784905846374338980559028544185955667242658267568109227751053788038368389198385384322747434145853437632360558201522106154084525335462138986407579918970995420406121441302060521535780311974369574947154736079920863459663003363740834000291379129125016503925971749695357658392188048817834893104926052420220936671987919514667879593482853706356606933941892903962601606735550581067229784913083839556436186955280361970666369360271400908579668704346421545437827600396379708059098722010336965118356651859164254144733701417539254386565293873820725353759971839193974445315447650210277694878189500865905407409045726326190062135721510908185402150159127560494588225290163837535697864982249085112094212139955064608613112054017498520708382543143385637460840728048953769925320801306031899976381310297782002563884936010985120977662842101803195139803280883817077400658229589432149748795496626072036743837399241408485152229603027535197278455604311369260407015485502855671988365362719571847137577762433474221982858431947781100282319684909072373318403950796221302757223063681812983180271637724918167895432179030549473529162327703890370374896099616517729558555855340301544505843445621622967143428597527930473157391524967577246732778326190581709255956918801212044067969907827046341137121523582768128868903114595516538342606750535464464267620181124933567635781441109174118471437991765219015052028917529947828773861315662404138150238597960915550521381683193299588767136642809293925902468643864310762530404141100125862145187842855323235377979340952595890723521947309938199543436896679005086727255092537873485565962313254758793614977111496257020916729728830415976737035104866300621897595583707569903329520062780796755044024478509059501383629047376939161590423640359493846663998651275856917621058949258340842518670292770609185803503458277069292965386033870195138015958048268079077240002053563608044874862407941348036902809430741995110820978200539429989191067031555482017883882779859287225133858328061704250349454468577127840888824834869154558706272239913595941914745361486979627490403301304367171378776493087734397879482495571243651978132124831421067625967629325993169196659482950457749768083947846505075230597866137923511130918082688874607538427177574766600317781704142874055707121561003047434528783231591198077387352094423076619575579869339766224839181353076423285148225979441010777640994749787891358444941816328480916458206920294497261309776385495085401269149267594582640203013167789604712675581515875758455660049739606303033910636849715608239194245702622958926455344054012273594541733077025803779112802347148192351054756370547549195717039593895236225370287671400850373006410823862292661109293312469374526431967872907216224566571698484156446552367685546740181830319185554451370931568844881049079301439272897425713892328348076891202288952552801063468565375695979972428088102000851789612258103191728636978597350725619924840056968041671079614235282410004304038470408646395490152607304563912110391550798596686610253079585604283291533515974683811593036978829335776460076678788048659779026783556043106169235537549399268524419823329714144301434448482771478041017190324141555699989662450646063008781422313313895067913706066106124656272285161865974027432652729702765124572865171700397462354534610650899026765117689650615244122372879713174577137940214211701229373397282356263567224394929887067125974597524621607596963805976888040933823680934141706260558771650080280990276256558843770574261647950426717536272200806157572154504621756918095549227415525717696313876496667597601923081729996924271701120562005918967070720972373952168209621950926484174020039806210274123540112776237131244081026512938981796511480202429552182742016286105260944826973016294683907734150689249898357322919148346728082831302980488619202484026633189352982980199858133716599226670165223271840098159091629388795374106317265342760069937089393107143154859892692275579018261888227417913599073552242953279411961484312998625081560520976013448138248547240623468864578316323400467788570199194487494218364011512338411451181133305669006376972728768600280444350851848564416784828797841810207788094928920259274561827422156807609466042368770941383349627057098908798957201079848586564118652558050062952450032528141914007401221614319653115446263075692260566352796176825204587410956838623507992807598090906763818412875039298169744033789819257874017895217854356628923882445328248100779906996235975855896019730255889075601673511156506784723875274976669134330949949467885669550436632746343725759808107136778539020466646248451176483932440408342749211000114114966546066044205720676799618512943015090505751216539579253124642174400994425031571626959921632965474173605079132178192046138600069371591647104605224124473732184977547481655204847086973986964206661310203471290449780369602400628270385461449770676905463983067215735660194943112656635204796108950624440151303706064899198909662648970209378013530022723860361855471748409108911830416961488624496737693839887754273154350746644061801168609917380195900158571367012369893901950693961171061499780848310519430638276702621975524191363162167271216878507128863435121640354975185471897044980539370702528661364869628659290157304172356819794814752653674753082404549355657658148083143438342123556810352566213422536397938462503713606398931931103983258913192812625464006327106021289148462703652127793377466873037829566176853243258054300163048876835302063019348030093702148366267115217973462167228042992640549309930910046792200374174856315478533587374539002521083648360733130452967433887938934571649076184508488322140367723128507976069049543348060304469686893096518430956711047086254002448342734426745029304557223072148338101696443806530967885279560259656000594322946108662051843623884226667669559087329342294809977227216613884869864411844677949202502650672178479972992200027828884914903986942124936148819688932982032820630167869836511574897405967775469937248817208043032854873918553822612348198354133683061072908598012507813380035317927494393613301948705767329226957998777355252314751426195160447178975510456105373552492626721519871795174823353376319463183251977313433729596274554646754878749966913097774384928634757467186789552999987272873095915621436846069598598514503073895692979539894540396982356547786648072047081320047155229517119560222641404962850807995421786429720041609532533732736418086624846980273468624271553380225153711459778531114455796095536310297349677284201960438305475647037235184462872153714134795567255851487529889735275759749604794502537315343622714220818602798147765222066849580327777531868991329050805913425167909042757375488982235332271427009328910380321083299507979146631951081828888063499704782540717538192111457591703241998951139169379724031310602936561559565548849741089641711286400967424848479242452286500857261452693012212770996723720008951105464432471228959512355981367332728991903051114423233148133370682140543047539556708091502760688738456221889640155240713916939230767917987249951009997066052856233423217183621699415833893863399557710559138229637635278776408582618875131508152463254836425326902299467419088448314564236481007611113274713768375069116116045284602252711658686914633827825713992511270572749898536729148333342129290947723615924850396902910552623264051168685469191371643329935003557131226101854878364199402233275276480690359062939879632717322746911228971085038268947733303327969784483290968924061696959892055814049010085634256687177191256667929947383265467936984245649754100542814094254114473091372104741478441135135041311289326766790583778970207010017632171299487986142323053893956531892712436745253814994382850285196615178743574953764185799439750170429773503762359434394071542666751240400139841132088295552969070750260401682070331520801095232269307973742578346968610548325484764407576216530213592985673596282972193118511290198357388669818350751661179862990656729134121385044180225978883199638931410745751438372042429804310416850854822199298817537838599144976856338438593646851370389506792522890811903166875648491356016014221056800381411496720033670486958102038901407442309838253453362235204120415729801173485110833225875721676941832841486433638122190153425562950952592475989242987008365963199500599106392625709601022677627863035015229475597466730134653808054433444479870642686447851271372671200678186843629863984785716799649298274338013723354668200246851829150954497997902038159391287224354859884997670909254851563837242255414061072306444550210611260618852127881393250698453789556755083105455730636822996667696644121770545665527319767531903562114318015341642630136809126388780555025551634757700566871424546085977419731936343823538764970070977990107156426650715723072609669240737054046452166978206053102999545139503128214939873061392890367803857270944412467858529932408995582142176016540874632317177416076534890384543586121937277111046576613452799397343460917477558174757630336383313337396653038543546363372321261865624347577560889136898292491845481286740409412709753156769588102581787922690729986847578790655073081066190930532407137303227498415383828925786601819994253372750434510783082925769180457644869674675854006108311909484300417620573079817057945130795012278851725320584847482171155331288842507349651174682516645763099803479863018200583259881351525078173309238903722875784342408832706393921185925573594051771307751726088758732763511952471268792902394446125074701534188856036042945099474437155219475389763771709651473305521449037754700143680415589480370479557759167938370616968878170317041270790183305410633385314797147454877511438907820643620638728919088269972916493954247132408941958721965828904517901174602982191930628077924344516667402974207019242593968956229661634405663696637397811006933279913000967883838201402222254902286142145938859501660008295924828240923204761948531320976856054143951148883301478238314530597888109648168707833237480385654559186266227508356320727951443966519211274913721172671149964756271997375136248804556591788521492207764879240798741437411734041447688598080926688272922729826314805664900657297442564583369653918370332695583089593901922990678866928799664536816131446277477496325013688608602744361392034593739041615989853141074071756820769100038004228988868073693731212333588110832501519652734841462604029478629749207318625892498333405247821657761139927245578217891804167802138926245934885385384832864248481382211173822717618359701783591122437768428980919749527909226646764847136303711316956167262536007530388247584141820032692418908839940246818779161301016480664739353808539412294709683271573265259827927446947800303753400465701673612268363371406254379380722011351914447302324853467666477329151158238267585611387096294373824438324651551448495107170553135862586100215326091290200829922073240285306401544197867181785005463641633120482552726336138876010460889858375099955449233317803907877830864491997453334300353367440559770855143997643993101399943792455387946847696351381693451977736589527025828022351099677489798775106827503631213308292035191106796540010888004929408681035830158863870662325708689672659491140148623377862874533121609719811445106861503952658865665953798873671214476733923201754376302187396194263893614379849635559844038665046844092298919312867787709984503236301665580615373227326105073853615225401231629157874209491893814481979926790660699476259935743018955014684921724503284742436121237193595120769835716658917390679193082298565094149699812255655307867247648460892770619791092088818178971979766446709490065145632304282719905680506669027944574564701015967791522759213708283495356405357367758830883805481294381216705632989777979204906376141503776128463093268565110631241159793232056863478648986870877682228017492722993822865090655737868299014719129744730364720602442719266073879768673795243261705718612198954348122420534553463514487225283653839263513212622648987310604783370583604821319897172088130220978075585585698601735071294176928948023695968112364704580029010045548749443331626122786355505359454844949337436596468079917976478152221526312420738307400263536707561511426388192731385433109953743339073552051432124889938581991292606411555237132071983556007800683991696736941550428175082827913737577209727323205786785599449242928597047102046166532876442816724664422761640747895415584087027343244458163484379958105324480205442612222408557566593638398102998441317063012986350215485298125257476322136890774787310133920666816849403930418794245803649643142377962349058825315440346970163312395035317954611934095374398053626771443279317129637421634162155804908279523173806452846548118861207048854233141507145164425995987810335186743233325759200234373198483184443700753033228260327052561364185326866401182385531703142528650706227443146277540341744892070123791879714972557601100216849940423012484152097968006628759536148660436669223241319975953080018500203659537467294475858736728842895373783551114845214796808188481586364544657715549648372150053621816157057620051075111057146381236165621472626562182382923234833713076559361192001683462797007047075412937530136183996895884412743222169415425482770077252344767015024237919072540535520126281461141662753966544684390080155651841149638487885843995114353457655009411533405645929595306324274891136557780860141599957503601497479535793856786708097977720821394797933941431387297665869284619982617832926468567785257165424224009014071802440319752555874331439614101173043737746434840965560497755258189513530650547031895276863711258982432596077161947269598526601699112166644287866055287173302908041197203369863574835911086785956343853531742749676356151417660544173874659670055761529325122201154455086326780457905194695366385810481086006325326662519103567899699886561018489571061804041050150960255845288931941061389021756088142674420144160502997149227660866065578560006176132709403968693795214045932298873153904183765117827112368454422513552079783424028114607081697619551448471028966389035912381515334695656467340745397303863936138347594840310321365469316309605714949927832834262256491988018178238263149309337429449068425148193729398511804635867404919479612943476219350390441129075206723778118190717957710487326622295619524851560675783679804002405223810435754958580411373255060672371116490159715933447715408327474947132453394621025476712997958253288314321487866426124354041159594851617219863319240668768606600846110667479913979928170902015349524243903745521069473315488802171921420922168111281756112783260342590544394226950001910829622647950203898869499528900661069534273868731666270147565064312365069225333899554965905946056242120505166875652156126683498621441224576046592277063059763514475987991124122832011438152809541804055027140435470828667953919862502542730539120460589829958132012451137628103667721857159210581062380449905662711438850039709153902003397285967089836309919985079655414887059227330861597894676914702296559019223159681855344976176696194351633547372920339940789969732209622764082292403852787075134599473235542246117149483100173803362858878859855141749124842357413546542868702715035843187606504021664441563620461836610780614493821926250260706269065264002248487109014842072389320456925810393177679334833186408453155521440814727890966017456111183247183335761817933443968721734531115396228750183832951259117967900758576038112701613219027889903302859741960405380219250095680598259044417627211740816539774630475483186813278996298531482253363713635125862319051691844621586619782495105112589985593369436202395518607131135110459263305522454618290621148624862997248707468825709648509401026092385181626490404664021820942445571769198752956526692028381708329498649118541723209419147040426296215648454457142621165551685767648173779443601121898603818146145393324207180884491529392144151627446608448895012537525933145553530505839016206856752405443733970985876069185977062006768885244957105308524506532034055241391038864536511442722467712334107269603028409424628468891758100184084538278164957145873745600505875735863651026654104903362927759985647322309637005672160381227367421745585794642074806420549553523295687120751353463862716469358635137856459105637386053671999746413975271013450502843820950894794915165541054971724990338503611836412337475710203623832947550587795471769668390592591805505002579983551390447677986242402047110314943672809955367549193470820377006185971730144666819504184212789875338470886632754650783679708023178342312185541108025658956341993070505592481674424026067357398014001898064981214790243911734106036677266764005265310020112077230988957918449982455165698877621541219685413564031918489496433925443957299225807828785612519463531442242830050267980762217798546052964054859606028984107065296531530332694420467370912236664056345461743142781501381146584955449967167777433996085359930717048339445142132954208972462301685793693487176241151741383743707795179618963862463964614324499961226625163555007273221383829538482218683681717320251862973608396108937009874641970796195839040595529198195280554198608819656361866533017000477846688287743480571098887951678750859692626169138072329596538862248405809566771127162253264735038862601091969553225175646640370028868019394226714253957171208418826085359338941135277516191715463998728561540974364035811221913597571278904622219622424606937712494532127670718488221916925496164666413474020692625011267098030857705914533155225313179101062511040701023462271728894905436158658830244196386403261427551542042524664184117014484626002485963769959041655649391105817922920907630675808990894994106624599675909870700180628535553783033851616255220181493031089840426118518377460576144248303862731431152775013115163383912024189603346784070376656747819968874319593123676260319160547716666457855004443969193714912948399059946044322121043735214271439695650882707731809891642633236897423752372781639728707391470716320541259641663819040300601407419821408890520811835466697168979115236145380259563979758913158000297043375699876900549633235377706926103194619623860757359628165488774872040773976394389904366468306316171711378026490390370459490821664257520486550084260624159681237528686272627020443803394745878202877108962859343250295651410355200448293200141432933900859001487637545304971262340985549108307514698238937226512108891337060841795964601988552226225510518919541099469855282226558561744616834864094480798855028861542565583821683745832360645693355762171236168530136799322852320432466157134270429057893937235710625016022750684846999306595354372440614481572248711268999196954503036245308308380502197105055784026773014494945372469381134256711137351822948205109172207677057288160963629571714490981528064505370454719826824659460109761509538553037693875498405126259898106112065629084432941951376507470336831943132052517981174318262407196991330201380018444401075339394454921131740955816971982370928258262550930740228523167734359031812321454199784830648189725607504380286000316072877893319007389904209625347364314759611783141969417830910097405155395654739759698549626625251902130091411345913159495217855555804459280095253487272909946756102000489725545608050460558144317635707713605037989192886476440932007284620810474981693116465298447974445473186912303867379815320703176455739179772544279087435585954625894278715363590580646851463396286235400736206103299640956642166756386661988179652627490718898921311338653513257361830034351641496390206669308210941987468772733063304222782852623738470718261628157848289846012356748909727035413608926924994285191805321092356469910182946030165065284839330887358634574658482400587876782383896234719089876098142774401927070716677399360117876551547775426919894185250057590670189851937292429478316614524342839766627412887207797824836605579289099692457039914287757048781369373489168046794619487548879032069379090920116177763695289557715265009866643626458598725383469206342099701840047274327603686991014136824976529174446903089211785177878762783748819073992622740079906817779224253081970629170526695132504362437365197682759596796461496460105000473961163579644679757810152619469608077695636588573345523765586209595491406807652016065707416153669951003482886120971754356084237975860822782526137163175459911440332716566058864956183362305414761316011244168233873978294284154995011973899021179224039679026751712714224434762923352287684465538669448858326465774156287480826962552848698060209963762160601760355500615272335818934314792896370859276796365545868550611259411211970079505949606859804085594295104622510752654321130697932994650233257443251102928307134319858429382221611226191086445420951472747158566391179765947208565126964085883064958173735154952818094938198838003211078958745839055696307111208589879079272338459397655486136031443883910430259744677549061681308200979621002709730236133178776111362190207132850639222795433580050934901949681058887478266935643689993378732837672720081023833451659031260551379193553039615204173579313770846555042549626486127083737890802138239078012671828893183218987638227930109186480388599776022453755992400808714699339345861398301032353032011397396919815286948707094797281643598965596634862663187168220496412370850349532214734757683073735545666022305447326101490266661948906716200087178685891652349975706938200580222235756318696915483476658310616717108440663128236752653245984519358822497053730420204307706090726219145966093623537192974420821750775426904134339648298232139724987014093394413055507437910200028370803544600977849996399684882460821158232374152101656456491497204150510799973292355951108815089289487773759382515721925187242289721029236338443652816767208181542604285381715708025787725465296838760540692736695552250595665725125075644000987728825475845042667032413332185812486304836564230539441615867365542030350143438864274856421892018954139972703744478027650056037650386420376439118917622073019970792018440995208900628820994072505719773857930543605224386982214587541133362108943823761940382170787592502965394425613219766699351977141534667815277218589208207318323452719592987844265365739612005365600440333222099479646850509369084534094301982262323572815157255854393952645402757972375384905257449029416857477624637600785399459573264691408161614594553911725914214854965123621826013971612778442956399867831451184770936160069706043442410494094303093327658136470740917686467472455264161097593443626573026390358291280580111468928706107244173843554895720004654220269233854986130087753492188757003537230239465987659545624882786451040034221197542968715747660283296023324832144678307847380550656637278804995437508350385937449008617140029086207778136698733299510287281097315772152597110774882638171701386879562510675013504068574357730580678531527714554851387248050756790652435723792472881802776831948326488973951141319033632173956593117397108905738149297397234576595488878569802999714500325002045802021596669702232144715151838270638998790928658757297540989606665207794204883999538478540561027650967307960203664582209295316930596367031433630965603490665774948713587488069317292105396665270102548138241843213457349805905397563864619709323898771225591747907554933889101981432937268829783904194439570404619240894121017179562354015805547111398256643307722437091745103513098336708147013299613666392359358532911900472679196962157033801553949596723953714513034790137304083164568119101276427081035623750216997321693981388604367772135028138565646961284416284626529891992432075382701077974782266327875225637453093221153645664840677504306941644570215238765922490300296545090445921182901386846935635143150973588818839369242310879490765735050334417641265713037599983719858189228752060163949828842180817496060313045706940447585254362603682023460987443567782890114628624809342409279426208526314189513914897395395884626542807848135626660049428004745404487197680920365333708983384296715643648213818542701052066192584469613482629240675728264674798875699545019175035818128612894154908125707300536590670838127207217605943894544478541572080925661465761616454317691423358668180732107434108448411605757650353587932548263998315755738395023505212018161141436756646456993798071875467561007153336273985170651217324855682501929260141212001785929123437765735411854320390392849202925839792227327689861828733356939599388009436980985247375653164493547084709492694665459465442037023899037757260323323917967818212459983886775734617788408191653527492367427394518565003435762183910744178107620056552879234248497848135319434306258090140787489399178753894964764036992066625377861619707751518181701182942627621264744751693799850950815695861127266947027794542487660120152357759510066007032836095517835558250164810530155528329087331531375747456804033484271714989668524273016304428679297615217505054773205849156355275386635389968673873681326758424918324440741897052455043107989012508200518659391696673187674148677771301663308632510150913623620762738989759371247955514752546960010312524750514384316262907496787235848764749811194409690915447188156031468945011443674795927422620243363631389037328374560684195897823325974908258975249410046845806700191058965585326701563643446252796128848805781480462399401753728078959353971092122315185374884937629164665442067765249458937558836648161717391298421348412055073420279973501955214472668769775316727816067985874301528326117568751547877334958878399470978713951992625850765797583998523608549062523943817064330169036914236109636382598240937937224734350377119120811721744217607620584433358516955827212078464639765832582029133023664868497741481979710201725987862525525617233196775633109856250421097420511156392407969843334151976230309001686126683107988006869789559674130267714201162531566256645688394922945032055224781313584899910131539559635264880154048622118576328284897174391549932488699671748171556982556251145466202853099935312729276890886854769633761017686903147348393525322047524465539136085885191069520317697201879901418095378277740611432897147374310308139599471049234141645990764503765066058411098839535327379823339491527897804590645945254058775119547782616764302010142729869465660820214891292792011662017992810104004221883499031953294193032079365871049554445809850867189879730704892943915469753153618008458133447927536727249339639966196701262054031637236917060387373896860218741602161846019134337379020063375447982001983173724533184567479757608389429250000009777556708826878533735977577858666832467704919963349125126329462852696690439073377671955374919459072408406987505380685378337388591250585019120192145108603886254186500202656121172268839084771223017810043842650264096990535243074919694594338793886440215994412137427311231287219218568812053605924768652975765911873328088111596829250731622777751481344174895868930730147893901098618468188499423420087815846576160898427844647930832517651743005860902779175464445933754701899884457452480211950119522951441716307574216531322738248394599392329334926738493660919743138613731336424398254338044056108096548844923938743399528527672998552323096839552366563493981795225864058420112641811164425346274799592159602239920953193525761930424291209637700263128710988856464017350340794303214014456588591592357652038659142207769903060805222937012345798981656766451985193316270514389406082965594443098365259327221849514029201359210881245912530869446128414516030557656464540716040153473699599956593555381690602280068905485705707073363044383791621176536177751089386096530443649835089431509914929604020561530987990846770496582448710066339182878683012513725589718381298175562453518676883581724513935644482138122436909520989339107240772777929279758557934008333202399097312610991091750769846355180851825299574227594783863912345929875344855409948094779774371238103457554206390310532233241832326992165588318951839250755853542736518205760340080212227026160388472149762896269613504237197397831042853260634473436524015731316694864016165311063274692972464172603324125162541225805383150077466257333624631298041120915621941579983641302758704054286387500243277735106260067783210060562274665301954757287505146706755634810517760476153810353533153948274149958237395046462807793329086510315605927798455146856499161603373517302211703616874061961021045458722176751843014905135424448176665968824711407040909965571261308611582820179136536438795557042382399315691903637071342101080246471943857180446516348144105639254198771410855576990084689017465183676668213536587907093596838667131709310341388988574724761378191144433038462421234784887659103580040761042261841332584602014328390395470154617046891050657323341107781622442452926086811763544857802302983011603180846385816764640336296171923067552755172464066268701748708049538835827041817021426272526859830127588729968274867717543861777049115399039468015540831724314541214338025083585396722078752641616983535572644117953751956740788772825044851503759836932087800691349899214658220872474430130012673555800298381501809721638021957475999943668960154979502736007424381741727450935571889110875635758019680506309993741538902720941204640957254260391531351967676838047133915413389141747174179438300940655251771066027626430014147136857025288594816548571146259379362294383554082889232558614173924092455546996618479104985159208232300183727324691227364148899697177404866585249530417281932981490554239126555321796496070611177779674469007535136464082233093865655186047735791063048801391607610243285050075626040062267066818048766808175232935362733168474214427912335205868396280542936374559922114277745256206401126350223594799402205139888811765654194041003821035070779198980356238491434868402665660770019879360470471533694334781021405533213839918086968550094489227527226310979874401412639392769943313908963499796291638208489840758497749873213043447225002063808058574289717322105520710805757368258507906282807970085341676238577346453497012161627320523158416046359736704536272749222667908610327401377138876196152876560976079905020531527744544600932672941740714921482490513583451401845002017888108787879452297521365318519147883598459675491362068266318476324861682053728074136630873333896883009933689618243413613396598519641204312116255122118585849361071335759263141143977542579769471186901637613012717966942976566297325086927674852630806553728510897016873745989457842624713392506205415387839891656724950272662300178392439337558619761615708361454651428303233233749436371422641472836024159472493437992984813570043438148286440700176841312080699557013836813396795911442661001586779276798434377918695083844505027427548990102920162652735001635211136847152167350363215844998023319790646097291467125365671798311604749267152919083160027261185405675712925395954164077266495802870477293719562094999783949102418739614056078399357403443092231423314224027541237499076120650983618659176675236866672669975384483263846826066065954397002033772985687426801758451859702249714108977633432738367640973496182235331496169711908383783914602575207583610571044581241379539626567776731744098066057038166539597378254558828397048934093879324983748551204923680749420289141775536694907169263221119340260778259005441184461735399598973361387166141975254070571696265109069262765285643012925617843270215746274253365460600311337427377068343188133912713542124454337668075277801309900810637256216754448261659897761785341144697013456158442121172422630015369074815074139994477390864711894102798159047659827215943383256517818972755682140880086799065288385760926542751998372009187117354600683631215974516836710236314175197849104724705748500021991019201736855569710372481434341187030194577146762330362312508375255316554885796160460300818080414429026287890708325397513073300487628316217086939964380889574639905886923861010951047849621598362273197835972759751408529664615633280981120220253469547155250116488281661948555381553521327422291780297282782370932698652200851568529754899096675552442225589495899577475606546390034579734318262064701831661695131744199796799303196622899156685585668664937969415861081122533441223915039276352229575806315798693789173450653356870753580710232039465280001490399041744339636381640960836470080598236574230940817904553715271351081698780546305788952969242417072533187109294433732204545501911990532486964269886301314371914036601259437565110483567365600765793678538348826573082195346137927630287442854607162321356985318354252322452519714392812842071137648511430118398533011902782523978060855539844708257885074581867544408143733743042931627864115050539430850486054134975224764762606420085711481937898331631110933922241257394330658103462222345374408683835968905589233457033786239203309559634268601419757308832643630774516463678960262351827833011597991275076472326065537089253895589098397720741898203124833043181037408037799021552016511348000345775374042481217473282170136563904091699734360484182246289179254790602115084818356429404437123218216521429887083655135177170492212353447499301059635656457570244452847688886656339927618367590103933896593381350443487972822816236241916515051672835564281602728853063768163455106913764422198320338425168181490125089501621939222089280405625940777099434388950030270802865109940927041548573254454304311437340024327467129788173926309650375335546665404562063625169480504867487194014069526800624585386056160736918564016881179805717229740394105675125845986498798313238336044280949444993800581212600887397237562686153797883917728395041102001107516174216376333288968832000657513510160785775573256433742467492000816564141783450928678651080519439117663398583101375177763463826918127804715262776373909674051455326977766216576432007276395540290195943228322375092185766566255581970269959521760301278034384009021350171350502089755940849009606392517440752319670472934376116349364356145719098858735783431500558913107211878714496982621364896876990159737488787294628024686813295810319557744632633703383216958132279988883406783517223550258842921547219512965479644684380572027902734490703008041152425868364694826014473663947204162178030802210213629808567206966845876868191214835744021839239391095007883186327872652433198798488503143917581986565671053438808175908977293534019160172300132373668010057379165174672460183660074429384352187270584344869612707984489743739960535098003220685224777734209193474516743092936108430019724376025092354706932525244223690353850165529698674662620247122285392733584526968085933565123343629006913537981373389935371810511987848976786352312547955208700558835730529550316648059881151690850773223266097581823821950744582485981498262267693261173139580135010195611946356453287740123309659766557593452858249130863936330346329029431812757768088366974146274639187642035948025065234561387143038794648294951829784935864982134986146297130533401721283287060312593434090380459342961219537192131530651896565989577281136446036089875521084232686540521935304108101020425140068577761497243415787505635903716774632428090984066958182104845985711473104348986808317867861879667344870791317077148679498655026638237566371039705192567940285500827186397374804538970868779562097243300171836176265731242256602476795451750663994932911789001032416402229061232651461734606413091387145597573320145559170749321249125802365881412920563263001475913586914240008474209706555262867077471191501325841709479855635320484215130638524662329445689477008559282853384951113317684980188563005844757994099983052119219702434496273686970401451587840886833289036079531222089842989370891103150947021209850614197134962071007948347462764114425616478883365787861222845886160887531270613475149850094996071157671564777883518028775362314166637947922273736723604139404183468188880106514548082365227415329457067215699690056552290981554766222016052669075680151787829480973587829772959175763124179565594116942633786840857122221149947435952732420807657000088600220000883013569334661470501894835738581423153158540291793265682928397067081145362583707354351011268366681018665045710068667692960298132922980411795161517770665343982060224367047428144899687011452681769707618446863914762257872833824302318817649397551311439424745006502504539056904708608760625941665484186006112533355169197582409704543711497064867361177894178087505373570359609118714934333905128556845902088423891421627457275355585226885014299891799487564875709490253601681420570134484807334240140763838831866141970377115529506663830319689793004888518916513738327947218043500371102477775918432167016142704725851964706088263447146676468145013626233237531044497866316114844618395210809995350789969063691430948658339817033002466059632952736738472641977274326798762973951070319227890117044297447814797446091795309521540243734836814503927713959240892321543231246052148298532910510091733147019608296311209509272550070482819793111348120209506875492643589251108638499526048614487045815435621272426780384752930522741117809213820392417498244395437784963720905460910813976003254507885391891963806723034304998430050013180073722397750426700727166597697696004444354450284662811557537155230693904355729510827899684889035619439258312708038037551081714059783092272090919252397772306127437382675952147656506395292352112280633040493270155186514622676257442304328177225751301564714032360569410458889812010253764295748502858595615375538453205174940053235749640534724205008930502512006895932752478443280424859241747056345534560423083614286039548410366582895806849143230147584814778345612170471254663784972786003631387189938350687106106902488169862883090952172870377334408681247646160504020706045947252807907373128474982824922335441791454753757797882341845311832063944265594644662051186136504521835251693912678982115196498338142995409118771481509690988113158127485386390787782845081877059360967773263658405831352638776452940899683888437253111020455375367032171641953058001727228515371605850230916778728724676830898019561186646714075587701620609065427645451533470833678751053034381614469093431805282211903004077258444936642286495237243108450859459445033763015219671930564440957285574627214759996757971626763280372377167832222512871582303313482994228821075530488939010141359241662916448598900886121699829299913874463345466878374109417781960094213434447949987697095169972122495537291144324490915997213356238338364265478281843087716157969680100722692842727433739197680752973166285319854201882549597848575330179891620742609025282949726079260570716864187804975870630009807362303978638267228884346248860968902457141063548226186955952491430532281373736469903636684998662454312422103260851404862179931703905683515237306755820658004634698630980172008038387208415972133733148645939821516117032257587220312120206286440551833903140391644978770065781456355924991079834094019954559377534278408412162388142048002697314113177895866024711362052264023100018261816104859932197641823724652752827024497414756564289176154303918712175788981002088928264905815901647647769108291344443696548671872602948109684286588142420279838479209626175751516634947563485608120013976172353805068074075388063825486968429640272005564604119253857474959621988340753268056866871271454840360341901391357856862295679243376115460549483989679262761258695580323845303746405715248355811258232511604181635344183284155605534664735132509053984312974409397624065647173921635914692096057567594551733515113141367524166778456196531410622564870350459528385452394528234882343092569444215251959150431756752686364067287203768931279565664305182786721761749839478608744685949941367252169624854838336321117390669935954394297099096888804806095896896188760372632040510857686346016393579408017111485264687558382405113691849110106126618233897791748098063571915637650174555426288363871421187104636320858792895041355142557380011957579818325295411372317932158653074631814648019315164602490385792303296675865357084102763066165359499298630868118556365194704274978712691965992461042405310847146192218297850153201271586525106329608994659403345101718284166477521489294676875668236883125446145070121174647701343134935358783298940848733578291659604456800880496834683572680123829642866476088859170360875412353359406610446680649069891839520885933960237050918220006325022336914451612452739809764447334196194671798064969782457560670032750761618161874157606272241007817094055781197951321541405431194771431215256657848496433556637088317501001683299437727962667166853429174541045239676605502804965485196723897423004657088665294214937255757126020251193693696633127350755049977582054227294476493968321141941634956771106641615808631718372748971052624536934639794979004082516092854197655375095447473683704041232150098000371500215628991494329418398893395681822683737292211934828598756943356826874379728298535564938914070539851602478048876027500575368963512373319316366478657214867606389145019381836754469250716239912905514322617989383643204423152605339209084388386497509815147711947274812062060022210825143169777616307954738680082587273300270119530490050913126263353272437409738900979979290783161131466158830927360524096659650077546942904512070389396949242726037364603255092682598973437732425716468713157626949149608524204729537549004876930564995812170220881292032038388911207271441828565333242148271682899987396693775676573240566351507012002272146237702304136641233549428849378236210480794252267395957135082895696898746675441832510803718806376366241720410077014448428235142539409349750393660612020997185853068918871879297186189313799106015396990628421168485934372300748946491567480634823055235317366858751415710641609278133643645340737992194898301459419398406844179172415714205239459540425845008997925357832024433061738976780914576323856071255625733978569304161997974546233738480943792411421749640597944804836902367483555481963557950808096391406499313565302475633469588570732821013156637430926229702854334824351699815666149509686802839938093907424436546210044324940513048627062112176769577078262020547286417791400461844902563587020761711461389629976912416048954501592805781612146286932219286804882186213530627580467849795551701681433047327733816622296546477222743415753804812006708466314023931143207744770755426187505286098681794447806137979134460133682199877916482854804457176454459388978624639013293204085245578661236829323836243174472130200523871329739220824481286389666534832487200667222230468522619045616871360373966989486845260291078634538085238878705448424719545221271710330474902936110552360993543167836937468666993586565928572188331582251854870058528407815223924540540513506414009416668783377905571288960560077893698212043467336119430212076218446264513019400259775875575972752858719595681532019754947323408400338754218163949417526524648193156694608331796747667729794548682926845258876109868161898351148670286581198797713859210283942311917517524999148984563075741913989367558602555494582799040317650598947794762645347815319633447534005618772911782361576879323002260877663036469382353714235093350391352132612574473758676615183799110941246014114923742909116240262493232608787516862028885006350434132417532062279966645827758122026815763664163808797193939290692432585904605697340051047813757715809828562615926381233234861522855578031916327903273375153279734421698677289587707989744934161295075795471575220569334133535333086030875711555162844431490620851101534771608308535230346305937941185593170615563239171798242285888702085190578650320344414825749396933172912703985429593448553179744000017958241643296798082539939938993709378313934348358280059417171623208914380596294743282163900801567835154965354703637579239429625758430675708127783814300528177358616905041709998269809828017941287252399440354772409633759944494695960651268358785899552074861617824169077924450586227168116078740291846723173711598264306598448347537964771404776622732051395939905335187273411355646784540741142110342085874454788412204197730305992224549392890964384811431349611194918356747236240688277985330318015498996202417251739191577309976432568842773722273603647135831413904317798785485697549222816555439261907492799244330503230832284927396037654235001309859734631438638761341261215061209551580603374428404598276548228690872385376024141486772597629720314644678544106471730800168163828813918419772641555737126327610175155786642685476561754471831608391099144322192859741769796163810571530319494182468507438905646702586150138178843405695987884537291291581281414411365905391524662031825472955522180124022227270099498156706469475010419885425701128647490317538102315764175938063851847829999501073710521604866954565024358104083738399754111249750848100654232631618393339179357730608076498293742481719300175372740898852714260751625791894831191322953883353554076664139264745380230845408057142821262862384208196572853884956676625188629431707638291311393319020983484771982283414312661913840353957482718822283484973073453106582396997607617305267732236841205943233503503391744627109733839423640673199268986767648697974011949924566089137476406330011914878354984316377486853673676518109879097531925747334612126704774730706938772816017998241181092593847047571352061913760592266304154001121245920875938511874053787634561954914423983274822334973041481084861376092758434396674528769194086436389723630796472714873704797523301794888518996057277110837713198000615232400400145966541445936450292862903547158414504521541434292599306613450104145388531532249770758432384235603077863969351090279444803091777212868677267946180421413255017164473496682373796792584806208738929048822412625739256423809261095448570115458302466991569674752229143917426208235157872879154531216137582878501371725293604554676521492017358408695639566941568606546541259099534119401522795400967979578937151997668206566405605499842216669177594669096195694604900552546293123957111828836169818211670311163433173955073670828083787233598122628195075823160771028188025381903376834363600825320511283439281576544384619253531266427615508762352685695236727498718232121520174266046261825917996745781988035532259004634452412255640595584597160128629262920959832340135239721269924389473039149666855590249069871935337414740677095965686303481754587235109709662340965339576458690908324038344985010533238172183602084292067065278172203236317518239732845308257733052101778261777096067615813197913003057310188645068923627003892296446692600987037425100559633561841718657107419831652348319633895808045822737199304621097944693949455255965201683242277772912242506726954087713747393176484122497840170097851331092660604784961051613473829448173470846824784819090583909448415678823561101440730353216464955314624884497465599754576888592261548097110518324462761460820707306167259937687855254255756851309454611202205029669464705602884963507255102781298560809036185584553503210855055934300065960953791566258387463441519705255224803375560705121581846987120428771783555428206887429037335515783444740431453711947993978175163377820512471784288163939210386023818859592880178523843738362515580691657349598670378854180553054636023089452016060630142610472015267996321113062978410639995022392041287726735594250844751021296255563115502240944443881461165429488231125200503251578191321763848565766897034246528909626450330189145627658853032981294453157326017439623911051703132642577739483296422460526256999571219424441992259077770431225957948078154806232259133300355388606644586235273999587362598743573673172464798477268692767904817489997128383239349574675643466467341434673338660343249394444184669849503079458669724939633932571378892410475008087470772727455237092195660072060375123632499891520421834950668555950212417807527683774470198656094637887374671980617187815374133279263803186234220726049129664345484557641833380833316005722303123062245810781387815314015728209807514094153115129161256763000893038400172076263615016535432721240644445492637043551312502731450580910649655433079013982517325401631699551106778393867415189664721580860924117138330810695813513684545719200354331890766468132693100060678665880397558902647181160437870149044045683497102707486907375782771628247996118256459747691662128377246343076856948653973171995689887897246348701079856512893174296355450407897737827172526156504029144269818963246336149546927722379646286191598509882370523103380546606865405233023320764390745181447434257065053837896564387726166883876389877554474426785897343844821783691350812447983327937409742861616544886873825613787034879368524500266236823228678009465412135986154387942290909728871626742452728133852964686462324768976550108729386592382238887372988533383831118002780579358037908226287859365740740233930419715933234904030938874399304169422107823005630503430757814743324166373986345852600671285919204624153311140069608656752922894661379998468404551917941064059190639927139119660036966606363518773633202842995391770380842864967426831342050514282334886433189637891651248146035785101344719736680159178148267628013773658168902181022149792381931033772847034571566637178464632427225061702155132934587650104643562289682846486266726016028937690014669229180402935213157327388082423704367177434632670908999087093952665338714473608190111173777434531099175366606648517082720882641707983972322149830592550768587328456695332043947705827694382523062326961703482986057697030871528612572680467584016176649312156541330538446760450606577580644314040069288848683481962187315366012724790252958245981700039432784467647168043498273891704299150822493399820590672875225416087579118391670408329368663974291693404348472595204208745833541715876017029198785687623271959165158529534057234949995351327820663159958292272110143889024041505806326430833760391991828933883507021112923578087661514321831336683075900905917009644495987359517978887131211786907016427349442995733136608149267788816767881677846717335214626889500473865798337946002390381286654644507636105722338552756761580365984326019746377358086607086481674598178127010815760563643011174825674391732261996693379681045356243170023517781270674375234728816778385016039529868293764200683828204995059246482699542092608855044927952181367621399373084184559357307910118653525607127437960291079186418007387093055899494228842323096821401941151781029060996715808980898002503542137488397061166859341889029577721404161440133448133027193874589654884390563435946482467801608021264199690536228793766842626782137819292589638831385907258046357711689343070026551752647311793549875511394189819906638408086224900724872318587471441360429925020167784780071484097396975887220103752580547969160595099256141572082113489092338623836741954070324526142270492779147554755428614705059596929954939654990812029584125041634428431649909020243293077428646800434736447352285151863401753866526799181075010893839535239782736552093401669137807445768198430265777983798937079653772838879716143798730977579159659830472259477087608602748074286850667073663078039566824340021641561344241538537775817229548730889831090436039885207859042688593182489156250825254367869952076597403809174081382597834120048882361587330506488539969502554487994207932342368445101783710530939284794555236855743559876674361194506156299595655627033541468199757827151299412751513672884043843806010338266948715765708495136415862529916374236105360341464229078648434356723409532324701185938233620079258401418113487348548773093339724022957862343489664967161977258731206713085721435993625408614629909812946690948064534095043915576883655561421372002888840044325529073468275460246478033972222523076346182636353632577783390253531217016817181666529960486115429554638823245368825968804400771933566837915691424092494988948323287553322585197983053921937904557031957320571979870307334787438389155028667736069794395970700425883402446926818265679927467007841699547169641559193602999476513941590879342315347089554415113120617242860105117116815427324531988443165651022368498548970750305040497052887993071803255667615757648503540649396169874474862141114752681958402795337255263461213997426695879270963838596299272484367658326940812555551927573458530098233911892799587211285002133887647970722845387716178126649861212699797254457994923452485812540609958382991236089586549280178628645297239966461981561327339037652207544905155253058656286660364635688235152333107407603637507649791428161295031934898546671709031391535415696119225474875661526086244637136312931225886923661154384862007106487765818116331291808186844743903830922546521437886774440211176260778249370999126406897975061577388978825933338696564440104239469443129731548893662675729819205623517671210765466676178810666489332657970034570401092399960007241463074400283238930738601078462068764925959257042662930162281849805841295415808774087760094760134288596267041572259617745461769502190819162384774446344101992296134171003257748521557210191621942492710835250192188044579275826780144008527345331561569000257415456101255238513053122561981924748506540541542162991484617111885586179193634012471062653693835788278677674544332881690882755833509973280798772870049459567187290406226223669958788026342164926442037807869290665132387285597136422413305341752031721720478862098369898522654184048913814320819248406374948250036465821468027195602587340057954403593358522600166312777615639092273489918595817289460156035543754839181682817319146606499665632043355794956264963604182077006853766435606635135377274858781075233163031618109623740714801156163023698785089614110928616303844516083835764118662366166302839414005059480642797284665176796386222959856280378015308242286454018953343286122931623580830307928924114300075519791600605565230845909583833503661293589898892079289320353120306210342513413130128580597499700480081044832519349516144330146247363402879415207726359546697167575624565944261792450277256197029119010853881167891972337100614007649573736127786299070662875372312520911776526838496537625648710229193794024743625206434040543929707196467731825112337958499745114396117361550807566191772686243916168823352246872044643841959224414262481807533435602532884841649120614519311304328239566625449960906314902719770707016292083215953768180190796899240386394032647854025136574990004895167346415802235565936398127660255370090475854928040839223766581135042154984320647317520897274700630136541599541285256991323437062347585142324717529639247652855695227031929955786196557183563891501773048039697844031971843019259916719074127726980446254163797077726397260072448203219240586101037927302533955034813963963239334352372867904764522321877329776066567202010098948207652306504318489163020009721631796439552258048428191029955499136910436018969216146724294199203310814292565465792565630740691971995221066878014279089361442631996018537829990846078252757174162360867323156605001589008122222473292946946944540401831483989088912346953813441070906361545007367515378128738901669130431874799814405219970850185065159057513455251383107546686684295533096582629584543372196350597091066089761409536857080080176540176693257852813072760143949253555038685636376464686868626465775319626673307904761396361356097186929558983689071932514412121176130816740819078072837859478803002070733187927993615441314746870408978532324283067804066454279422935514996763423807245798930751234638659622318310848094323096616657930327516100993348263776371322288507844560411591298591267346333190961862316621259786479835199935308948259140905452583129650680504195326497296186011315868234140837278946833523228829252555446621928258985162213795986306701557590555079203455663413933145415169765075807887329766387556084927343888819517477452874460641350668773509609811959504413992304603672381298376541054825939284169795619771321807359082424995592190606125072496503901187599277349212543776954640628906134314019553668018475465869382874258622740296665833929138419961207609157393016128047745203855632571962969785475789801412829601942058500164722905083990886688644456386911875444305957022111292136454078268764473886453812770934484428862707616307095022219285524537228739790882822984557082087753044478834997892427606924492820529512113856288874853754038177252584996867640243613796493109277403869760083582635310340981320719199588469928424836700075750375722579768722499912980347464104689296583602066189930425226243809862467407828383667994300345773209126711021283865746172986635682482056525488586720891097618689919986460322869691105289699431661314963292425813755172500613293731146240923661140945597028329038931497028867467116915070068021178198820641196276001734455057185203739916451214437792389575629383098529960155559357486563629559636411374897230592787044486933942981684607916637117604864464857347503666947799920163808386460016912106124507104592227162306050690509339658704454562244958223908655451244929290734387112925912841218383668386279547909903250935771357412925894126248699137384081252978855655112562857499987652562821390189180168147476658658934397887280276112453761232913978225397251132285216807383106051971548864366533427181018589880093428639222405347719573647101372653852261893276112620392364310721982904855939978069211283301371520950441246452636144644138871411571590232162185335245243198568038831323429573861277331175535408275268096441528661227804797670313049611444418154203140665722751925482389779166055100358554032642279797144066814754995203779991990128418172845319802707670966930502721327772526422856528303821066047766154429419412967936309829257480958219937985595004239208203509232134006099693124400259066387303020202949852587677218741466480616113685879990689411022863713011481479172745515483549252206980008779571274953164053717423291876457459043051009168528032832941764323406923816788645189861666497158968909716162248568906266239001561951773677908493647805758496223699243247849845877135219967128135216466270714569229738328558464460948962689526412720774394305381241294913665113449874223747227718468161602773285856159468902611117092900444706636787222903219281418665405702555089633111133121733247640931722254867635882307232435134848273249687021686400229034996181827257776315927416001639284608147194485023666957768558431741033226815512795384218402154379477721203101981641063300459344331972836131440570928905729812050590905807023983014977696148136037016706105303653991353934102926527652713515650883775218248501199090742377230295381169273785155418658348211446491969482038746604596362097770913574560263299300544446132980511925066777654740040821746245566175655517599127956425973193091065678261688078918186503472271934338092329287236235336990027905029770501164474242424044412656224519730175549429334565081070121991366576465637611770278672835607571094824172489574738975711881352815514010705595379619965809197136238691982564139491131534964802222729067092581540956671866625895714663056574562151715104579503590223748212427480231790734248654164310435121397956866081057808386173522584082973751207560718334946375922873685016879090570738569958388616007825167000887819744532005415137144968984384917109925931085680624597987321233006676492599491113344519044127009610146552323976569035256880420061649290383353669737167223821794974752727351361385021546965853330844144359439657688774140826206606963179529018549207695291652464649319957345695260943854654237049645997724503478600117922842725095619991646524294269171103813365681532086398525637685440711678478601618042776293361786622308484509623896194082480701678191687834537438419724631684983105926511994434371910661172133635615723207791311489501538351061672748186611216915599420401826577870511082604189763863157326299174343255072797391467789222989579238156534880441225488204369955416251430003780008403373950083707097491546330144584272752738553426197746163074101957013084767993039978966386803569909144819829813390208023895821909056666028402708653031292226837207664603105482236603430793074921198225824998598848592079440159533275769550398984846395408371061435813076090670122117540683746909480412864721379942004400159510320358346527141000372874306669106370863127452804884075487424954608790606928525845481903018940858463272544931181721369959794083371855980748047675265668485885061245238153581118464735820685915350124242524960379933345192205322108895157401961010553712573708515235572325062827700387896265341827729017767386250557416109739906916423206314684631441764724568641818049735158486567480037847176447876880582530814528582917753560985160544845799632951772973930853433258595152789733407946844072765228870820985651065951991349999051405442075312403916385957192172786485720635088840143963939770313068115808894320186377502702716113976747754974569145116406537492303880194287521097288173066844930746874981474371009433932114361724091431690396537507446331386946577251095442148859503867280889482928897415985287017906466402221001959178857872841426042095584750181615781747552263658340557780346740563559140287244562589277107055137477916795059089938469647532328603743150152257951660369661560505762124236092385918319519167300949084130792580504584248448303189219787311926119395672803688712789268382922662101687917353508263374068816639420129819792607694115389106059184381545001215859427099953500338955541678403834041581948425551826457446990529732621787185619072710298060888762024544905408769581425280070869416191535338850716822494155297039074561930210767097494453514764545903274016832193911923453933660750294536499146821663417855992811326692538995988482064495976723538974817004685842822028252767572480014691598266799546369534851700077672397424405813358800459499450572491700761522787719378438018353595091592389189808580341132092183463757416971960787936591707572515236927759432535244866987416191247811934763939390875852475000613453136201487483167519138289891804543590415707467652446113200728920333103902877039270321768746752668204738631394689732212872275961548591300673290667304387759159280484013322882483427264618528232675848440533576965173356646040807907578157625708921538179897528194117123276004276663769246951722418178302842090776187145267422160519787359661610109029873447665170556561945403210881176905018207486245115010641733638075841655151332013925972259798038897538568626591896593608621864180155224022201294388195057257369003826762374907355855155670114432887561112039594747364750953572575442464244973323520223522746767171027490712977983403712856163933932118474998268178414751106202870443189742414947323355773413193810541306949920022833602922894560608049334595163113461281059640744826378121611007310465157300280965945506591014679801228516758409106602787411009867180435219441962848818883252694798151131534302884688221245232152311892529640813211020928234699198894019423746367567073209480799788897983437109998076626297823319857534610416091127025576097654361557637639378853130193176650765888309009580374516371137848352089013021001310475129809721141818058795845825386781003470856905287779299341297376593049364710502367026368214448382436650393774849098167677640578093708954232723300700506895992611009859347054941434051887922158758426878082556875649044228215383136180713255401580361105917251605933635712963165856977722633676731565404015884290686394970388946737075822688496910960590261038458125636447457799724268784326446375619067925587506114427572273110174685089370043685421632494980580389245216455559136077337995649701956962636375542344130005660598325933275386142301073976103363261400827355680240312394604552874522262047085409338884864400790909336149373559209388976630382228411308371619569606131837418951197950003670357947700969754971522546397223909970260280090158810229647806264744374711752981378612210646705460437365990091541001477490160494105936956009850966358333093277147211263434122132351366067628665866724969791447937785816749263391914612772008826777809815639427762591906089067702987636791563931573075692258951918491965406585728210826089207501398944005733922821474174625451445515192113707330639502884569734417314555043392464045712185864274586233577673078501219578892838137762964581494723974500114347290614701301059914012343508681421330713446275527755747478143844590652246788572740485644310112414388159672299534933627826350979217253099368613970511183716521698216031544218612870707754677331028476533112480027085071758731245922959714109474494699036429504995411841767866956205060684126765157972883723064909227891224104483917359256074970708125113907894474997521890890836719511674822960332747657616589246869446600116696176164513955376495212919729654063822386075116328721578185164737849725017401623460425513072296788383416985078459447059462562939667219104014688911445890434080822916894559130566383897653523612561088572405976759508418658847160508749890633557459840650930706667002624929468819822241360078252342618441897963538683239898346787416361258941004522175919477512745649593989522008199802618483177781278802792169509726017242843306091752800497495920022175161889514218106606197417309199960201378453719799552774960919475579569655085043209480316058481756149890681481756114188131782684841571705661087122010640607375048357357482421749928891740697581500788423479710281998567144226013951683058821105027592920319202831285216826157499510413464044094872690414383875677793168308828670181769852894415451730925404122740993122227367262159259357228413345930370230350874408664464143212208002054305383340978400449637978336839985432088641354053572423312496930224097351015825883616172892883334350719598410699703052933499799019309128482556109233254673440327265455084704886309905978393746082167820257198140867525099550378783661055432592306798286678361008637113631917465279422184441321518128815922218736784015314303879733891323205959313588466544256127821270222357915742080037157503823043154789998033017329882947644673421619516902881436584652099719579246718693593571594827193424657491685111965958516054253585117325904902892027208201422892954837603072226969533080563830287308498939095728189882841520861776229348274888432020052293527046180867070088505787020860142215065232896291513707985583933238210711633618484012583668977940257810200803273618226106567144676465538171362556425311677000161052228467150778326444569374940914175473495816301749146015750210959403617961051214270451646120827108797419397824679767568315856682409520557220378140133307493246768672206825897809856830173030503829481293162855265383209994094863002580409547075108877272840956790857689973745432676386595547276065312400268888179834572169944042693818084958177339203764210815695051770487510038996253312720991874837656170016531480851791114621355675887107254788164422065240020084710383651626362623681521262645366547760706778833250158895540178760649841566182576389272795121397598074924611530960983166671596046397104527242384845943648232403988374134823833293634984376206808702942348503890089583112452790439863257776148702739487452548008435295789449591709131431620274625605089183950569716575650144510118070213121480009566765872539895723120815921685321652388404880295570199469920195248126650272530716837976884143035738981480481070409257819530817433672083283015004919292351713689489219915589226814230720515962624298317491232743172016370823398156335972150585247113246276185799369605826058029168250945391826938976663975515452817857593695843663358649793983058046659468087331600177432930759878170223219756398413288802486830857032518830239865950251862209435571893700634200064705361111014807498926627116982003498580901244304544713809135863027285598219834364747000619029568745775957014629279359026843185003327701070112026105073790705636697091951000396227992843819397818717096751138624437240627563952002940873407632251997196387887556964765333970294301648111405087984840166175358374291995447421109489623106691378277519557990587923092840817226311263102030780175519543175687342677973742582241803496835094214836233521577261877207385585605809959015935357982001674076699740233982431707002340088312805094041139242991206321192696816702009422678846313429001012784386779117969764764731891730426730085247404710186125996135029583499994522240442469219244940316547007484174668069662911006737960309400109022866274750027503505623137829923645087242219093973083955849792007451525302766253546140454167881320966138029296458232595831103415084356921891717757784523052164524529693355804436923805611944506231520445865292806234603875585497000162967530037727147017600232581945282067848754968078322753327973218246339500784215781011367968412679987434337147998695069492741626048182277277880344692133431648942608603792034765874088998469781820452115457898755455404428850463477029779977031992187286685288551355931012937371102901115142135270980617022246939239372719607635806745882054019887797218327128191440256285890700579234015250422914497648837997816287648806618936281954194811703131839080048626845558503983586056434049217403120308517247683420593938191686226647428403747631881643760125826550467952537184889189037301052265138181583847757731677368166479024457139561819970535576256790290362715283118323763894908314438096524080174658182109277960497094851327468343508364859987074788974389751554178295687208683794515032780751984288982759281285482542696970201129754307203911855712143860533157632288793506272673711094418588202350450515173225591064590524566131004296990502021875012380027878796224775784368966333597023285855123103367836208115576983742269411254453498129399651258826845351506350685280028727599030259784767669881559974061147225619954524528389654576434497982088883814505035223233125648554971548334701212104592059772399175446746930540802917425864420958994642864929030610574675953591480803182371819970231918746006841979626330352804787107590105870350153910428930925631124562623275694817238775169818473213974531700773453204498428827573753009240239399168944574042415199906162793386014304159771692344070265981273534639459144344593159725427559647373528569024202025095499671964607915889349354035737159100706378673914698629140750917193048502402269259237974395743966807403746955973818655838434325578047403943867771753150360870367838784455532476490316322963100741494108007219655656219138589633053426116626739930162496964662619039563169539183381012253116452292294109647154968193609265137761034195571396033121399392188012472299915503217675914335937861939257069094706122754884004123438074798119814077746822108582451828543886652900460284767615915646908953323640953040590308967499885161129096796917375148517012728815428330824421011955583322236905443318275623203352316665525273644081229601464987313373129102865583277818931405739321294181219353499793054243080925408651611299653191457325594922063465252837282591311475700950194263058178184587111421881162994945397745026434214398454202604032779685373600065880867671632895738499133641698613816517325715475217866397970560096065366494494356270266596448043727994646175264287233962351696701666706217566561502819452053255833838095774616176355876234619915855442304256135037486866969397938031279015813928258242801797779543320741409068468214409667997662651225474774900743556874392198270009414139306987749602459686758804863370434621790853107545318983215614109043031154801386448009771551818220655087603815027073272719904885599879849921264572329438784953021561093562970462712700869602243965012222249728796828573183541586910257391970607518060605844977069629459511872917878458059551639250769436958819394937051359053116273835162144938680709029384151269274934703871554941265770090380505326799823761185980653823511012682518860016487164949988020587415968442081226813998055426465962519148978204769306702961573351228350219408329555542321395598819316485445426310590845505238504221360868470761519667049961750507042206576277615660726566483391008910457498327104034059498218602038907433764633625864433998189558124033241672508768725177671644541257011825586700593396763541063338684508465662525740977353482550320561718041669600686016985470113425705549358460365177666913010621391651247403036052389108930252961037111777927622281355304107898849053084146962861633041375773798199062699112664293135999094577488851944791011148361136127907778577805683744961051465941735387646941753259745603090742649472703294767373462574636432294494281774186060952947178118758092788462538843610120623234277243621629280473659969600316254658876982633159910378995035079760105963645939790281195302115970210159660010783965553234158559862149065765715535841245718245813337234748429725701991367302014051204661013670985908743663981814204416046614690879212442647621219834397987869513519096272506509290708764959283913837006589283762753727841205184066432901669759655643086238991752301496257956130811236427416383645936733879178747252381648838295070185957272051588428730850747209277609835038019289631887924266810084393178805981013995208174758705382992497705019253749658707280544836959106453861717259200028538379653914997836033477357757110479854543709295608308364229441090224171177244793461091434780115453852522799149248907390334763517254874396492102042808500631837988912084714774642202736069110303916486192772914290395264339776178489950858170194085220695894118874310939391044496614544893998305678663344202448320534040598568193141034359808307377419799005424916351017263989326764174303990686271214386000564977630722433205448904506064825251588272087163483399039213326694282664376649913707605725969431869357870422875609022124933235899903322654477836198674408869702258834882569265828632248571270624663151569025957808189136581837119068903627666371700396796792754892398107310371133954936045038145673451162000568655236555037744176730943340955977515163983777013617798947478823763784857401040383120006621673759001169178779809286618946411475401502257726542540911491533268840570377663943162276438461488222315313786589273242725687926373426492752438555377344742143655360206971681374049716795748379865055727998013202275060523638329859876620066009975691833043896043244055550585063676226133871800772845531591843724317638449985190115093644590778556576343547208715230774493947407016841628232497457278786131317494295667637964836168542910759649009042355349774164849302034328357488166735046565424812812004816770821088431357755758114929979898090802507163818086687303240927715284991057813868150553978398197500014419751360533263433237918917601594147804758025151153081873603356809970727131867336920635019603956990795044215432373781063791878040495537540652846260060891790421428280839469172083568040064777199847744515205086831425543876922800471971414162375317753204014206725058166961786019794763522084490291283338147089882861788464547031831451304926890704851841629745990352798144091646814920195470675149071231011216847377104320569640782701892027804055047455970575203038337404490791962672925483682334376828792925748196914435158213162437360404220534054939363538262999613664280478269929236682837837827993752331321484167027878459189349338614287291554702587058850990173473974561753354060075008179888270447713948061794149234582856910441432061533288865084614660396380713950615994808708722108092623776086086925750542665051047446774360340582973326369361927723596389743182531731833472107690104279347603913289711329039657839504680676135809222655800775083236754242436509944697959755812332821643166963185220771061801870085393818267064570530275715599703305991361914110049966814833766764996665739190869418478263210437760192182666987142842582411504214852641100492977622605698020100041456343522623798091554785771732247966248925760099941960705609435528908849172395490848745327064303513216596804462272051962480807507996304021736216708537495698275541250315430988484878717229914473273067181465317868165697660143888462815057393860377629556483466824701693569419515946005975564883656574912314304950228784080120406263814428806807396439208161639673136913829442971343516249825751711534012440868661872441782031876116952489214719594037031566161198459527603362863904260504683781950470394570419477903185897112045734541625811587230617320618513154523670715260760422392633878891298009732208422909870482543834372501821203000521710892492953683929840265525086932197454195338397433100379581391208303214155500469263381868881910140242714337533532448078654030450969096173192212246536676879725883141828307013416663663984957747223816236377772691214377458281836976237754226360703988000620759780237832045108638742447895567877749737254952594266688693112708194589569470751171007935661633661916939721653132862629436987823591995087967942014387032112830352461468560748368013121978892070528878043951600276452704646434780743807860769926789038363792916522754259260029647583852412057413954615619216360680348358530498100202437002313592075577879135092561428784609633613544902017821349419218584582349009057737192564504652364510809057739173192599997482777148102634983003247848020951818241495463177640219993465528451916786346581070841290897313088837934693164016136310008697321247040982283818709429056883256746728071415429300023655007629523829325456322992974681495005657744411382586076296031234982831404913897702182484249956107832366040024036778506762839879234572263051577995907883859294083765596953442241662267030711288610020584895591684266062517663678952706980243144016898703197835476299575919582311734920509144948641706544140545480766347134583954486902810542408009120058573320614705233994692477034053844901961348044705285772516707099625444727806305744656605972958523406601408390429763656161092069934612307432656969035672620305817163939179112558135988104439183023937541185314276970721170052865222499707390492609504965892079407747569471185664385612345208446836907157120135609088882773623947631072603063581505191784743150569456998814222608480167544213365320847143454814665664793553686318038589325097318845890521122325730837964245038234197301823181613831670648264156797017147614726037602393017737645845908919210872907337861767336726651211568908634268402441337534105119859843690698669243404391441867823919743554875561289207920965181987265813185359262260422949916532153857603730215850499918914485854698966092038148484600083477643356282024004225818626446122538253480197980871887346736679722465095074816142135177479451429325359233254224315724124120990081213495464172526915615640447101265443971575628291611745696138050268591597146674410580288451884385277070637049892074745537285565410767403131713520397830379086686527210723942722915582676843841538047016252429492315031090341559017446112316716366734849533625311608835169710444807306408968082633477199804673082431933529676008572201454522661656468405033474057667661052478432354407220804369138834646841724950126244219190851689765790453092783505956124080320907276323490856647764261765347930068216499590942251222765134837378902279927820276759166763060411325989759650726602351548988618433897675334832835882079505914285712122057201852360801830108833003678986876511476875774283923313995209221363929255768228617855683721715021373271034787944054017036108150039716402547272656696262528540131384761870586434788433176926092256827602311755165375814696636741706701634016016575756784166351677697393871126301750268362245091061919814329410128811504573233279762392760782285937723520529816513115659940080454979278819484294129434738551600440395721307985471907353388868054802900806333024412410356649232825136250404394113307037543453802623332518649292222173746706703509110918944444192184650991259594374893323403412719435358994425882357103905398205345165886966736044296098105249028938010277358117028353425141027044434947457316422085922339785919653903878440686836515232455368285852330250704351049473605827216873852804024726117583151374845624187260949276013266733925579328248065786301553920173179838777387476141709449108660793129009774513426137810433555857018839635383343648007547407924859503105161230969141835700413248937531298364759043156225821316091303495159131127210210223374657087507478707831473544725710816048718509667487575208170481793632674777186903824692699297014971244083888264719375225099587667112898865558003186534821341153580036956630349651679782775883078731135699107162258170541960650159794643897938721553445781759094665718391030661458832599774936538059079425693061106707735065937700703449437692641463673203989330552698649970693213245782220224749012593068670765081301525755924101752183701489080183506165169701216730834812835726349307155763247552894852236259800641330183686840121942283797085087847376326227810652973600768409860018670890954690142198884497069251318587138763047255219832035745288354248383721947099301451262921587209410718600072762278026375777273780356741570953412353850510389531990972826432026967661268646129497081934942099764081554792612484360225213817309682787894762699727129087437938754531427501935334870164807058150062007823086948018854037002117148794311433498338343925834544388650980262106469171970017548665092430436599730891880311329585223006407010062166404576290419273604347889135461828858443303989070461391481176283960520294002619466343599803858269252151926272423084413634321842637180181811582325415492027326774361394316883042606506141856578759873634196042921098916303184578971156256921143176074139171973231056963867730122686374183628785449654316654044840758671073513803049238219401954152774142595578141106781814443399338147364123397401625742204969706188242484427671857825461866963604226949486808158635778135340666770105691770944788643956507964917239809298377132050600484966595965248593491460563062605363596119947121433386103271384880105772440582341614599131787679858891606715925773422265230907120390620690078678047754438759630333894745069273230522420004878783272378772733442364015424359713484118563806512340377202992417252464448881141133231733078274291027361680069683895791426258696264719663160704514890866903005113921573874496870909414357023778858075938425933072021754620946268721118309548067412697368229561396719204063052447898101740205283196755639488333677134640941894816294192830692425527834640835108903650022870082343158191903428330584256646413991983264515906659895285413491893295797129885159855830699368148980290999034538263511863414535325474129575786076321239133024415682322470679146546394388628937359472822296672284864480580351946195255048920687972478208689674185916878122611853174200699475598454664186012183727036920870293035766827490166423293382127633826421287284100440573070428687170855259420357672846952202872718326067451947019993778853864729341575198642556754587099119352875409686217354007562241203378989991852711392352441278990648835532864074997090935371346974468928822254456438139974931914287255132898193560015591352359076894702917830163878500872844891996036860125830579045027880379459547206927759338391104341048805115138069975030753307975200893026841732720464393513561864662681819135001799016494673416349405278020986189510538903899841895754118680623035509289492351745802237561247262006244358794429098756237139228244689413687359478299074776837476277464912659157962759723019392175644368742637498511281950385335021642708256557216047815195576567898206215996788520174088613863163198302494913401305757148740367204887754474777941764596159592082411560942073885926919363990752123117721204613100879332656609557610674013586064191457823450751739103499822494870027663645141099149772574813795764119779166048552856658260188516476568381843991161703613711882206569847263854246067064752690982737954145710783318732829909074603878949291455112120293618059084514959897280073163838309298135308565836561697023637570392157121991717242388512084618645661916629309505174283607236710503989232809335302033368534557262784121986231573911608147658513705535484879729813998764345353874714418264611092481183368837682092547458084241386332917191706454901842065843830861185466853126282409733475382379952465440139789309202459880567673031747784957557995130511827862723321328070519984806202043695936329672980563589015150521547332079973465491638286831492815469694558996297481893628700609563644716368230282306424448438183029024136318020812488010479313945690760703779269542891316774441282834827007626884433129777918726312151836204487876259785221438800894332605652104513510441360920109019506338773063837716028323214873396781908417770061763456559163124011459816947570432496126234663881199829727921615995617289849382152151100661479266082195900323476244933892240235658845349980550228882468129086237925036374339693082221475518454521626727136773718552258280807073719607623576686211708771598158880876572894103497413260553228410090929668587160035735865723587753813609785384182671185672416894339196072385017050545455113773753216437838170740224061629013221978784042241847966298527219221546895079895707157420193842451621925618464459563335372050768649050947583254616137717068487121269388633844789639005918197806190330060093646588528852696209676982216024923657072101131255739218807675274744479889520135067078729109772253239362243957501760021077792890628688893141268268033076339036367795713531153236307853050576931136090941458509503943663011986915458631524260064762635562590417786394654296685780267058316199608681089696965020101974497883369058162810493529338443134991103833621468000162671574460019792756587117568255124291772467808241310633131257578895468036559571938109255149436099216549740181422494393317182940774179649650105164346637736026767046362136998053162643075723783536633594416195010072132750404894173903194052027135233057632529415581350620515831992927350368271335129197042792073801487257613888898104163467063216441690295654038260387975577657970955770070940383647821698128224231394553441050649666388069789035978035723302769127593467765298193323220409499213989414203232916343237619932362058859056602094815449953056536153092939549489075757550462539565810221914515992052651581690738924271467194049028660586622706797749235424719913877545962893071961937030502461414230344369245487913980261417948091144376215996740675433535296130506692247788216088204808213892280217289355444726399474976857024543194991020300950075100126231327611764964273441270405216519298159758855294664382158135663406282680607757861738113124955057774237047699768713462062608606367253900928886114463597362172107444379732268883686017217652573379488884719099193966631772882476738430218768858365531138997856477007622428177942777896874702259569618306742194793978463465221232245637449673985666527874230951709024380932017396622367324115871970579636081752609244896082917798718453577410564429570557201022119696561051261678351814344296544656568650895935152870756199840830012015174301612310376984003580769182623615626629619565498205879251572044936431129671488142264823824913017693070451809358752490336189643682175226379731195497674366229774613502307845843695121768495557159079345741187932082435057487490095421312940726293490099355135579082997069659345098199281566527732015906671600248849146064444312700150281510075722984265335451498460720607563494457455007135019377837221269450686501683742000704436202712861509173242661353560855795130804985698685148463699886904162910008190805286268175611555011589194300318457001632422242069901905931353245297775050293144706036430962869041191484230856331941218293237090802904001137505603868456315305090512085820330602634826751037505047739227873710502799499419291013047924193992580748022729028499046087532005092091601454481992029290345476923068997843820227713589790339695409469764536361778416610792383731622001626323512857583412771148037634315408880243775144059597228718346774463925167918886731406664337981964024384839836427411981263249294918200473076197217182538619354300303674328744405260579949285993573838240199900735561882297253086568159746542191782964648596976500190769354690431019313564943425890663623613837540546768065352255404432526647488019919077887610504585445359689450463923472046586102794963059722773179698797353380808849102729763186443758773680277873799941606039114842931086397910877121606328221765489805838622727490853880190591398062018848449094450171850761080146644142022416554097530334251482587355386884139465348072399322261437554197776029673433120931071200387731737387758406092026899832929962146975661192992947258998596713175999458963452850346876533146229937653522470102818910971903371831498631804375902279993236265134172674608958957555315015897505612318385162196098165896353558878291904454367204645522796518885975632585282752709654029932855671502973494822345175748916303740086304756992486048498807008249680559677081682919707477305998786273436442914569303609334950072461631997422377272717659586891196429847576282943290360173019219332742590071832325832573251818747090958615072983160512972792414194178088690424789888473429685262201186622537364101442413683108329695659036218341191514307920938670591058933620237144161105745997136187681766174271379211304562009111542475345974762233961837782699362244402988301546881671461812796035385992546120153279106654553141269572219931911633540802502789037627544914500108040015354792030601367423996032679881388219858175090518484429066924101247137471195841922785404371375808887684489069219237515559029470957785080208167125239193589602040313804787440866902965785678101434511855980961800802417026203600582182354087503235260084527660873320279861702219680901358125580640883505306289132175246925986157976960695601940670145821638994517394029762720748237017808181358709889267862342157949174605186061521666080787957297224573808957866267657129544465009200913834755976651051840882510953510498296643084180269307163592625451437594207988318112503968604792656478156523942496141270783474677826213738972236799433675574894869499711445876202351148338105810171401777496743728352207068503563978390917920968627915674494330359687622845661640802501223373543212086483066985310393475504033383327572777025498934019216478021002106598343259470161932691961191976204528890707764513182704040931959418976787750148212030436062082857592093094215383943969066657722558371232310036159845164726285128621128935826735212436614439362726458128937773032359100137426070815451350059339840586261132261464927521064141502332352953314273767109724957042678489161504382263623204940318640489890113751097819707582407810455671872140515008684214196981038796266207776923146978828119559440412285332301715492223969805744286482778050717215080092561196551509544998563820436371361479923873637501991513363429357405159492840464963934636766742883338498367215291304600522536495623787122522300197856885118250344327748878395938241272303239305108495995971166987249033956497673653271601546340948154712944588424527889094883710296098962543495856417506824161180964185582625105030325135395068516045076505827908792336624748375346474324604190503266992136773825423043947948375403205122416307854110594478749310850807458912116998597701846344275955360660873232317208074292255866160079850074141283135457596556562796500274169318310158873588132289988660881428803749799878700874372411974450506991184050371727015685401272771418355236036310427199681478843578994492903200346714374586841666775485629458236345252540774548976638371274179552915478122677818434283956495901645505626843182932065191193201082669023810690126880814666586245874174269477230874481527233619736841063661366192171164083937730001073366105626739626417932807520548282704839559900174455082364492248366022874342992593373354311453794749937746527335865030198113590225488144568100553703510340924953601235249596505177724859272991036120656382894965452073946802548337219688466953040562049524566519569295591100256306692832928860726109519605554557178417216775794556191050523132000747943778549374262799211233895001282445227872536889893166324285210883606890159947206817521443033805669781155426361701316620465115156231198824378077764791142562768653872893936957922576095096857864229202791425547131814726503399483926831523499738288747793251401007012460640319605230519894022546649211926713985351262256287759354554541918119471122963924106101226251215767981448101425348556171767717518453499179044799936750053128589106388107660244168957570603540617545398343318400404700721653590720269963791580008287212883096862156522029760776532554082395700663864146473331660421736632268394073759318261368933329060522128201473492123591314351644409280823908659951875551766121133207015996904398860020245800396403303934815334860072502442569397612945468992098530195697849767587871678259816732940088583089264999531833592101300550132900314980097455511705910887257171796737794016733178153153935154881895152115664366569709277172542037889281586486225258279737915916355408105732091394490152319244176471197781605187276729683027586105810762362861378387287067893492989307372428098353031377196887059947813633044195567039718623783690704796575997415199761633124262782702184518038790902137768676654886848189480558238912697486184003659074331351737790555366086498920533457794748095276756826087317676975748311009001339601337513363043752782938222170726950648679624425502681558739013463899854959211121401628350932760264785392249970099500807816695047322460720262668565956083428132870835730934524455213143955102347360258186759943679703284694335900222377756698827070821539086402863674001586015095784586554580668736692647515460599759207252902779944144143256582933851665555543313654413412394879495673154604168156984477554353412699683660729470016769183624497362426178358605794083190956608423451573757707321247378823536121599632977298858848899019817146763933116038738525284688966994110150915397006412145523190018567184325386145917617692482775863428896342670347190983025672373249444876717990862063304654194497880217949191463406086468622540705915321340491825953854490180373387794495158131173281093137124556386177058046887935433192520538600989128308404806182865515133963912422999063489443654534988160382504727660897422735461560854144114648811138255498802868183998072991742166716100268236352770634148242144908114450320559664599630173533932111467829386566517740390946068405043880137298714080622760473560721537589362693507836061860700605077760424461227726272556245129591152605521346382416808438837198912543831340445718942452510893456350742061354528288930306552735386549706021112187521900420151779834757075859482145761667773416461395901372337941081379110501827701169700046720921903882381543592212523987162389047800620726814174350144451206699463153750163959943057120215467207125927870763283561324986044605205064299822278952692695257067738927040857578661432955482323826198751454555380974752555509957784652288741747007055836242638670589808232179920809153407279306079504222134220656591602767674855870539098054465755331444397518320125141753018401598917543233676313427839645585463786841826019646781016570217447596394337918314311674859369550408705142276224719176671873341955128754747832880793373767927154695142937309596197116761939331881236937720526295841704241996934510358527815211670518029221542230975738186108412320331046537073810579294904019791355651604003962299960127716887312035440422911342950125470316690744862290735744446258583898093922675997128419100665503889344429614824248597367903160883228401234917291295608214320592453048228082530574794255373921211715694084356449451935060902642280026861074553452243281394013749804239754564979757914671925494864326732618737808775255698810317853359447174329055360697932468517059787491030832148672318058546974271125180147499385871117266326355178491004318060050709264258618597902861639744953131474095213871644450104419713702078642601404527614732732432754754153225748043242715436830908264795251378323493415542675420328556361786238384970675703946517846047509429053039872976017040333296169144176953664049654504241639117555181884878902847671522470309517383591989545409283724249042757968920845243294194690082615402373623657027442389356681633504479599703829714988591860759314405441625728750624487599062125246817727760096889957658400111141570818900683309884659739436675592313600351420460787568886942494503298404431949790615048267926276798527762941581495912777326530275459132728983522700914137003768972897197565236343894267068501373299970672430224406854681165369019225418676862454017213937232300677586255454456849794447002772159088908966656839520615608402546819234920573724452402710161984535794390390480273549941014985781933930054886072096709585803785750621499997955437066894293841878610616059027915397286592764238149804932024275196598049954706646381851322355413229126581194828841634706568376692311903364298643812190296007034573548008079444148156502991541997227946359513347011178318633822173495549500059533768622357904071488694210698407459954950951793042769788253407801913381298633320979105556864456881174356244605438361123517651012979731432930685162450055215180087239080481397411098476808299300733880959594511887800539202295697122695770640781797333323008600388497379340137748233097722535567369715464153585127336212932003704692713490454173106872292683626491148885392977861650564616502411713043353082350404714170875767250796852382460663499370112902801388794507489266594070396806447820390840322592058844945498311848354652256346997174347295610006949777125158181938820137982151986333508285728552062700259140039738847298462896113603389578239342987847175117371637991856755725845712837679318450214412119823008746098872141135457625702697708400755385531472700656072061054535209563429607687349757243828644478814755860671824045445697866697786407164412014939608931025173661348107655502674136936871837273834641777451395892855682828551063919389244216436575270677215301154675311762445799595830130672190134705392517419576961866244749882327900711709858940013914444654975746067261445967011816137855779417869669922115206632714946976920831841423239571865484827142805596305032855544508897658458702919344080836376313451340198900082682646303687566888157105503979830052923160246769316260359614951480671053398946392688529888735357599734873935425951157919296457006047331608739114117228799628174592505577464435350901100831935753204843226114250622959536919853836013402797027719127078033264300466376632171895023500573417445640690113835566120235134777934629696063735705006146358367784498651110181707947241331799351290222232170029086268921237285533277522483406718045819472591777065430843030426106702555447302645614735084524723116310525083203557959669117693914357354306771396556878953594268547739159956536463335372237345556973843744690949204172200178348334387730892296432428240483761481873567564020611830778147460866039577288790356834051829082395310064771807648680716310243721355894366229451404394207353239194764452211701710674736952388476962150993086084990343817919627374288202469142103074978670544882181233286395632060648037875446206068983845082337944540568933379935290767093075125135608807816641610423729577663847179288336252253790809094921156077142705219164980137690039450633126982955973359041264171426461116239976496562178830308442555228716935866916002077032593773508040434982824894072034998316169673336173451865410346041847007555717526717229477437867423748412250040915195290681558044284398006210847603227291352352191255968856147146041247293498999788695627797007224290926654157272602759266220245596026697132944261228020924232532335826581869294975052830304943691215111036227576941959063906401165331519090379834694820314047865466962871217375120986534525546145814434218854762408422907041487842633813643314821675322263624819984663277670928725165720305849322939479255080258689934540631258135145002099919760362012394591329154808740540811164003344082702025793855723068011668991560302114837491789045129396506037770552808138688928364133354215096897724844503052071527345405282993974078008799290813205379397835760112549412456808091818425940524540985769793281125362503935144386702748897462875683138133589112464718169977426473787920501840372665639359449918448491793925514344562432160245443553515406655084392357874069250734732792924779726550593740829761175710411337762485183272129711218653111109962589421767221966278292701069063957154131895164498549548047593297821081170243749239724707924564228841414839816326386232325458948217061888180269822974699240045104522067481991831962444457704247240641698418292734538479151712622128641952724910761766702665395878398340696867477222674635546015206924687894370999187576482160260448449676604126111415581690468808334289735756065997538700551455351034739373677707366502146768170528067598611458781089927944751266636375218819172829530590190007925155025324200128691392741410001293521619796296214566172095987034527232821809792396305328347324401868478487400695999697727201921227050407297780173426319171008967815834025143767271185896379459714944287228071287124732198519594667689238716864767926437675156277329298739268955883624271865367281419652844544466198464391566772705834834259582073631582190480405343290106434940101525987669641285476553297030880886513121521211918201836087593987957710947549165983841834588379253433975713662990616190755610585602679695423484554330475363007881861003356072446656267220104327419551094960554284334265280809388656236011830714362876092789900143947862725176039754577143948176652265281700838937485985920259211015099937500393203385087147778791900490428960681923587638767938504710838496339541085084742905463039268512894396542938835084188291764338673021507448012009141881239487848690258778750698483163098937880296742837618644561211434546486588266106316663864402381208937015187186525619682492341904668996944311198859951705573863346507048131519361566473113241635268370943302054844329811273256030704306615093748015719796639668989508617869363044725603555277262018955019854869329770682097056202947146740942444117797814563896348555718810521978141660206394858721003691102819274845553843685595578806684516556415438931258310052048743723225922247980832472701818788442782032997567288799970492250097586303638078322475733990852722944467884953827075172849944341315073100218548580207027291451299903449760783209213805821218148920016584395212858719299687714339409582188807492293595631989197015225392681151032556839214934467450329037024826714991842412759655394477390611670913080599900730294104424019079491348788950922253256346832588388533837859418193480221615967770479423991281684327010981264785697545045008874248245444634591641776362095125829734809941852556261918110142554444260804266124585181260782506039209462875053214103511435529789668731291828396979535802728970548416976134124814337086644940136751130052470987417025168707650814979223182740240557403653617102962570372965412591429236519059436988750259315150027651017010653059346944691029407590453493042007930525754392471041290839364621821494031954483941235970504741157508627520127088689151762660218156869397837266907471668354479931241299246790149469653559952302567829998889112684017199741215645429579973681812698346182206402985040749414711235064485876070263213947566381497052692027481153362648776362210787176642477406067964695745272130442264938922548914635028552319258448965467616261297929794867608573070722264742112348141137117446602068268572767551221130225379083340213137390396903458933898405140034456924065159517504120861159230271172196818899230923820859723704688168943847963254330268749617050375581669005032829152959647097671192123926724891855982896450618025074375300793165136024692857883965728748820246944942520713095375429646095807613607073401686371644714451678205791827325824746319481938403562245598880100543919503595394029435447957878585595499402194195942934831565244269513493778728533209648593897011937558985695048919767860029493295978471623433140507586983900625019589488401434643795314177815729202089100754094283542327871742268204783052801859934304001010727956254051190495281720521130782429005324579407791310692331403922203688598733546743965824617992417028262670621573980558307424223677235130116572883225976714700476943870171963373773184071289201404434280356643798093641765583104508569514410100492262875069040839063098876498442102696675022435639345535462625648611524075409490912597393754364015243267558208447166120904858090530838785400752810592831999716016898291649713006025417203285271531948216067585439551722904651928969015384524538001878823369239541588724591177432677744208082813606540243047775105158648807824237725283322094286299704569197122945797712366477876440395422750720163667215131453143382826891911777754906625454116350863902300006749198582475417404243558404081224846307264243719898955145524568886888142186011244674444304243979416939486366868012107542069644536430747545751365679375566497990956548158222386106292419480410628819744353774405366803198329635631841996852872865780655775206132993051678644921374991817718518371172089424701096509273320828617203400621665830114050249286335476089992341239253449990240945990184242149286976637177377939333891753491623645527237507532838790851477047933984955609719480767508065014433324297325655759999469339302588278395793407107603183582269437843995069736210903783064755673376852378866847500346139029706120498428627746156223856267417959144424164534748341721092512546596913423201902317674054801386137986041199606345701461959662120380114762188818832637620445826721949888526656121672465655516169159196906607228910890772190207244741345675103110899234134218064183295486569466059189996724468110410104109132747461094639864620943947448004163747857658979129841062244051939005609424853527517299452996416723276095999566406553191681391728154563528037530204738804809768182620510268903114419995092820939021376780090213072519175073290924656580300435460723934930947962445849969597745337961022388299180323549978826838738481937887582002393989831617866054356521529087177812486063210317762963433906510310169602974733661846348522817564686512766503555260551872266999402940354374473990608863625717163965828745842027497372252278122050424007222089484806637191447638197631203423507328734940228786058223024296733226653572634703586713997733897860689101208230112515305827524464852921561605280339612985052940539201277423579747208699063693307264391603760553810743931475786287417782613582783384963039228695731310723001002368736450061670728457390024524349363128096546849975289156178948316095794618257612285541288814167851440664631992416718570640251100955674255298679858498431233958687104836402058791604214097681673070517112931378617244651607835265545681711828753117217085309714014243522519156443202385096521370307507355179094105150926785312969310516871714090606586298116579362885604892187492777679041130555738823082353360207775765674907065084284789098212437560736916674840665110817291218550302749866521652283441270980165293173651373378745586282952834255037191487053156206482640385480942260657962804786627408478056228640555167455470196032982838920798401228424587910966781866847506784703419858925607319803714959522895199405242383990483079030736905881597028473333132449942665916973846502646060694129258760873406905206975113765340092464386433332902123209912689247000024906535711884130517401993133970669117179388544413027041484768949057222069268972391533786744338769553013504241146257328998935067538996872444728538637800330900314207064988400406319393815968084306184249014837672144549302785255414760784728561816076521588410444112315400182227283879884684069146503746611527110161363329893847167744186493437728770890310971489381725012990436077894151032568385598825905027507503173600242236182277517347465666968860303648647378115658640457492007458395208807448855943802215741781606853597944286827698775427601740217507246221577902748634162698789084305081948071996652962075382223465180820614044596404213512462772699298774818897513850854493380636574933905285684677923280674420018747732115623731548886412349535493912866451765233236103603756131971668919128165865902877718982868551509421258330081272777739685269305811547572576649858287957814570156605849206553561463693643278972046040847480442691114498529223859872655814187387855510631407129470358616392548815302242478963180780672075565376446769134718060202392279156946317554769931294022030034377244651844136298214406689922686979768412617710004438706184957306071292239921007706164591590379528685586854960459235034903155485559888487553740472432822730252383219369945092461080360071112359076772324338608814718279558786803146679662465445797573085056869557399890675916452533423740161677954197522659432179327012893382257177990589990812832175200747484075638343124334820447413441372176134853574894285809201063653489020333918250585501229499256218962412868705586088337695815287495009092984421036090956702339153211365272919770417889249488349005682286226334409388016030015413531316582863806113386848949150442480616853840192871350617973978057164251045519210327866279268728733813510056666954623418434584840899121769961459957613141894936097786376174678062721607988706346328136822485641663774226027199825680141645116662786502916625067339995228749195526201268623494620634553825507464876054784280460299458448017936460686538766777768392201951380706455340643511003763170697498183577119472566726635354125815878097365422603355592993638234604914232238906162002591048866415347733668068930459801279799927851125579869536148057464263181874277467220289025142941178378709346260213745593625147232762728767530816356108982251990705472688723266968169876363966279429617816860206757877531108592986195181447773822929193358837651960401578568421709637405441315010646735683120500403152404194074952406907157865741355646078796396626547335600453496596358358324445629277175612228384202022315401221859421077905664658689419925110955417477472837324472748757781402965771308122600286283955027638206756306032705923964849043547170590371389063829376619161109577216896204535053076648747089724786016883425882640949667290596955502680683860440546226922718973337638184187076914658701898469841070715065889369040888073649512622850431793498727983047031819895028329574194431492356423692122035220831638023388744477054911241422925731155125176351682571997275515432139038198534513424697185393006517106246506130065283629404915271884695790238803806426709190544998108291374570096573820598033801208065879891709551847310336665435189402116216973430720127870200062857222680490145291713645161741229545588399657661330232740544637085605440802706328579308746907937646441378828072362657240218107662477030457750327333945815214807491189818746810654646835981493805415343773507201345949270897469864332906008124413488873899479213389156081287465875917738290834392413573831791335906602921849889436593740588744978897001201406830991482881063235988197592341418328839309322002760683354720266876722730788432192011432929050882407662220045433787603466597239525878086676526767098393496910714612940709362186668244954248640598919636067453284136531956010256622009901821453267251837142483502904506457293245519125569891150200729869400100385019135826909006401682054953990662177715543687767079707032359541949845208956500749297063965344473470976972606741610612958235877021324686344697943222992304917338676335027774088434738497775146332993516159772555868054431685524040270272171639330076640856638955269764268151910262942670486649747210873886571423201462084401345133011609406391245791384391174448117331498973677457786136785166126487004597760661237162776768974724459238634559610173847025294496139847811153425420031076451459318116020888025831945169902444801897823068682835174187458618939745591172007277466628275793415633121524953091783646790666480109245684509644414587957929652190646258478295525608014563115748368868295593941110015126097470842836743501510030624896189452863196119195609866364994904579930117570797268926318205417074936094862313497455980133495475302190158748324901773997498018814016277856829695376776889820723136217641653890589916968863854548617022399053014824442733047839476978479390056346988986307444239928979360129503524125002211899883588186747196896483752814032596809328558687935293518185705970409469868235488549956862344823981148552470781358931217759721817227683984089381061747841656824204488113034295447595541879900061426107681039342399045982337953618690212946418032476937864743774513797644338505703942791925268015300430272425697133534476364825740011795751103874739965307223833185812030887343937693272855290532346699741051576955251575800922154794351038899256525749666316922547057566415297259205597681683881084635704807737973270735522299497397352707303146440481153731581954142617364202985734406949264289845222467010770964622435710354121380079680449371630562190615486817321877129710459531567835571842743354016263073043320823585981158605912214953666086637369210824563347701557188255639215334913545211405424242168162598818540030258305199320975362755645524361035398782698431873673659601759161268233806417577213622517653066621292407801433194960668296071257466304117786184454660829818214814706494848211701824596304812499249848978776858172488743381140628454926846402305377129820536658179622811920963283846033586764750334991296468170062158810930452975279219150896100168063456014835170170858807636002707343645346668057181515059967640170295626206667026696218393208185930046134244902340128705031835159308045590944301001027661386664877103854902816153609945091808226262920906407861304381796113711277866387979189262157005472778103864212085302384479441063013874825874919766449887373468506808734318145548043373527192789956787712002541070155469821741000994083794372263603114635435248023703412308899900694065641343671859254728000765470198283236268743286565235898807524614525470258245923412837086318371748999335043705221431482101477321039484041870028119036449162029799262095993638121354340365385553042061343409690663811670873040905305320711618234590950436592337292891258664523319402214308020136087480907800284426070116539004272721421939807448038281439917082491166517994416544831692092124098876501057911323637416254835567461668400176487219004199123697794394686596455934619825916904439089195244760850162104026296517339113876347993842404641750474695196610848277220793571828890196806126656448566471919735239982145588168529448619476089956591048564115530243656199450611350113988556505501832380050455601873452887250579678205042434906219930157758425699444382323703794711371609030283550372917587242947343083921760190459485687400898758664797830718667724189908198831001521755028759708089841811529812521763343786726838256360593991564636266766265623160591418565631897165570168611689042827970127433812682353956000419039331793932087114940756929089962651132164941091926018161886823491088414377177883304480975028815957812292956481347543124910703281207173241132212800291772652090671012512272546272259935231355162498777266202720806893487491157883740201420637293573272296087378715435842048517284893142825691855557483220638181257180399328029349268799379578065090623703363913138357694142365319746809436370607139924614769217241681713893104207925639325124004047902670883829011963724880684517351789250391888493454322371813039869550504846652424355458343429746744846565546176649226770795885254133647345193358180743478740679162082360062862288628531130675904631669171694620261580742278627551371870047183683625074394001395078171438625152881776134466569003197829647348759343773469673896960908322199713111784159020250442817431659099083075316061690627221686586972930960575189895678982507589601649891879373691016212877295608447646447447870771691568115173269546039585822142470903857875885757786542738402404656681973068908809473530661230130430045790359953196515838240348330460883403954629295854311479979296281272431372423660063662841671912850955050862971621866259751690531710060921423486547647837737655994376914177746293295226953546147768586172783522378917909498650390165831942150511506488605160921698368603041006223670432976477880712223224174536472330551674794249347818019715278209298883353706901207956650280046472541080136899027116124777347229158706957494405913353388269870224598019802078348689181761026784609499897223574938064146057552253144455410607079832378655443269828237280663357666201029921520024606380872270531525494909506593989368121083385792772661192600055475266225509841238675093475725630493572024751715054783415242357295034679297355578318499774581422709730874942773635291267151085846001630993371610708543919856893469364219307569255118103337627266244095802107035919812615118595040390628855385223702855513536204133688389105289491318390672934609412293877728249853359148780111174493765384854713356116287762401192911137395768176585651019373094924566135357979042772134439448118723963879753142534609864118259180615980496025242154081929199408874779070960392044558420848704789060033017220447789073850926540263963743276217766453267816425340675718565574563108100816705478055821954287811148985742802958792958308928967857997787032425955357428210261454962985512439513927082632702609205643196480033043267903603103465554338338152912576202632314266380331081721788862628081801354397929582560042995579073574255289038584595987980605750539307369863132080482801440719360011746863311535656846815699544188509741424019233378978963021399196587254102664720030833457941324731616272752578738336666502544244588425821806567716364259727562360497897020860831096667272846253993165056506034086752819909863237446282328735772670415251001006983753617798741340673723330903920189446635108669774026846196454533653674134811554748489940283524929757824073832356424781606793914812694717294828895454562823472848968960347684360253465072801986849982372315119222733292671289986055169300049338100835200270200231527325383359296238970598311477955747502619107687192217727991737070945722856624914756439272409697681877302029670292887125340950115730072606622844620582122758198891872338854334495846224849873292953255748332171022935165594214902780434078296663392465046512885814124112586714833698467039731754050636672032190324279542823222069148259914927960836047808602672077525771823476541771906291592681857755122499664131925783512848384636598417187806565374444471820960614034444709628005558646987901211656899265327388051451555646328521544244893853661040124470214404523193644657779419925909603219694532670478092076908797649566566573652255707068638842168131634961372018918539522768805626889492062872181710284775872236832052040131109897710085058200055788639952231100848908685824756038613887184624411856399129207993309773035441758602890079425574741931988498792011894288597995679439881296421045253665773615151092981956665120827556040382405597935174499601054087367162009512239441503788144383561553883471336552342717409818347986046929809129793059255182332117598585888172023645614184628066999178857979785145967438605360292026503861820599151670158281546266909357453475558408230369777488552071160266234235206679023772444456877779375327605006499267619208301140074619791293472087671697380635391525669125383635629260117164799438729968881535345476915560935156676768596409233932873980058581298243850105536737551494708065745796497669435288397472755798784233830711308066162496851344494397308344878566388430342928772629165051147884871296736759501424962097853967655136721788276630791494823927970222191227231238515853617115823281869420677538464509324967109892528895264819938783445985549417824173209992935160576405545890089312588836137401056117670740084996969953112528418364258648158148196366099653568431478731905592718615199507113403015206550748881039733714677277141365869286447686992122425841954302923268235030407138870732815752749563819946763239343638877010415233588712287257488420187112706215452410944168218698383494422436366716342364606912945285954967291760107332534567937299587003221406585867081817480762964868537403662122932010566175609703676522864621995179340759878302597270254200123571490993456059934950579253653162314459638094641483847669746166500854114544530053200970783822383892984702620307898089762510976448533627739043523690040834916628518294980030270399081152203568441292252171539259672666346209843054418106318498051801709534730113639856235789516850110728603267292393404974569648113179718891877319850912815788879966877868683347002271884214082689617667767457685222961587231188073089921182133441925055508487879848131368122831709243257308676151445173218561880120528928871718148238082329340035048989121221943322169224695335806149821471286544445506842729043709790682410732647048929305246880884182881650277234591490629413146257338683643469278084557856641303222687713563640434644251990702214098706510711603251844126586040447459919225739141753882380787508546206440699611656921271000145342314667835740337999262059198761239610921878618080236673999564114854954382822473602715928791310010777028482648554007241576192560120562813956194709817433253779500209965906255371729079058829410906958276727627723963199143856814175590767105607620397900890789136810580825976851035148090721623460741116900225354858239871313321058707444750338856046298580588693182905477975451555875441425795420256607381652256025588963579610587186437720427891488397955644900914278864713076969210082355453649974837665569783362578658154595472577210413185279272001270169124941419968148871809283937071426547422799371019416243139757308562930562197558384628883947663584739739766883671736260011791909110336698655596742692274295314698099108609083830242242264871422803167022794010479675566287230540751051823847591613708085130437518940005883293136359962163658630625827696215195326715155907289109539624574418603186765887591160093492886794931360472643534341990019827860170947151640136384746055981248633383744700460980633265578558143462200239258322961701153154444522137360870665289722574743579734734378351645983166927167523737524601845765064071950534087540555266996124458430996962827346467911617718178233090168382279953268540012310425191384621124839136070428195610473357133837639213213734187541681218347968487483786586975381594432828109956570468963911156337670184980572554000082327398674464739919571288486912270475358796109390197670555180509237197068530944758609697930716921371473069159477786508464295567413963808502086170968162575674842553080559826555237028862619973561277191014128536609986339095751808707981492485955710040638763696066916789844176397938056948039465184700827309842318444902828401006706344026971208253013861500835954469132565426718925389585314236286796431616597254055359600087675705940941647773377553465330056357044024972230830245383804091646147267773313231052487677712068423483727339045473419791364151211828177272917576559688287805003608847034068576576788777558115314397399526421399962774205515429016806491209365244869234943351785449701523304338547083416617378381868974213171908260911016593866487428786366812487599866869077011736777305320334318280866239527583661573467178806884775221908684742997512325684494908320684842271492038033204981706741318710116706233105521292414891944534375260363260150558118845233865612368690824160756617637638916689250020804738864312054142383274014255014442450151306474011083123729051953015649304174245806418547525049405751726342782385870695318091112594845879392875846884550665980649700449951415481360675740415581670364051278269521074224721500244155102254891615460409743109802405012198334228106122100253621334575066242530554970492565172307419017844416519800817146840361417329928847242074231823541735766673424338741764147339250983217515042080597017453809407398215848873039442021345011281094331331752239651475386481472569559908037308679392747763648353221112468903167449952871147045385829844039895095608058073520434473751303350139635520063619060019160524860867866247002643794590184066395922048084705370323972982935724735648083128842492029986553829103446394035086333908841155186058480800318475418505200659053567278791765496573759725396274710795777693732602322472963790529320493225663805008923930883845754740535387216449589672410388687065302490330481300845890786798418520141709179025958774829929865360466318534278145514365034479123684956044178680717659611206829161422070754574273002267301623444006219429512306586844671092608273015870524167358980724117829298377715676759884020374275987572243351155103265654173802799782707205676635624581065048481375915906171918258063720768558224250811262508624032751063007513342405473673987327139487670405482525763516618408253777050722912997204809091409241989935049588539423731746089042488719967494770453055843047535643370512812106870179465982752964108788468767191085131447410296643713265525619428031125717894971458427095552263196713750141127754765673084411999314409352715221940332881990200677112888089084238247498876645835521875083445960639023895279353778852519743014782180113203682316825436710325965396718533430810668039761436535703436380194722037707337940619044665331516063661994073230385325892941783917965162526128304734658642582062178245576161583261637251217744295371680855590418401489572501710872931055586802362234588022797067848065370081203608372771026496657234928208163512468855152716000997311004350834750384631430052841986387332837166343562163325275241095435043833399144308931832388995146323211803218240377005660500789270155021299614891570506779076125794147020446459362908611962770619256929866694424205659323840167500807882371781047246035483716590254427502388381053414098147883239387231400544514362938376448826281857379377670424085184853645136008700455810058895482555923260692969858813917800921425541848623801812708960669607394217220468378052695272366713831163558605879716735887334683356396154548702034882689244491581790229212932494041769240092548201476629699319528542032755335072361224588973185293007298593357557137158230585332757489700674585536959202704470207789988068085084931818708188369334471333666632318677193453823949125845155282856048585446430982172443958571509614415751972227663921752816007715331864589918254631419598412730228801846261566321848400798926286444808921111420039285935615465906391678122772755756087134322219047318206887391592828757665641638703059583907107914566541618932946473389211095836827452456238866994113638633764967354274692533128451539766355221568532463961774883093154694620508229672027200187300316448257868866319124760530866923175329493319814743097080199717930076774682239111645755819745521164749118781050519963754815861436563684866155285911887321963720196733726369209958509478063433251373837887448528540106788886396146796953109160307346766377129774568048938333912640198564263020875586259995048990122253044944412047303829006220359468726018598577088373327831694638553151189445540686618075670414612613816603967923308915531175188793070976993963455323626085879018366777119990109433450774946605901990776589362982396802952772897853383376774060328533019604602684177009869711447897086871438109826435233809578257096585292700706884397486320681917203227321798938310498005190753199003986788878859996822670129278860385010847468695552722647875759257494508515292180529206254407760789990301050674310606137550277531196437197540609587915347451123259139641866481483793264181652503673493072152592397144947490013671421764887770623657228302321626180818353189995927748704543382047782027228799175927162835300948405746677236617539955584978469637238233442537505197877614945405330929132548476734378957236499810161806423719964396959001219296225990277910323073751581746791002642958672010259154284375789701792177084771075186034778162248878118968470431340214310823888421720770806490048001194935992025648863099404609842765836014399436606305865900319358192031844313625791179906573995041538139753546846149031992974699986223576890522241688082573970812717186143538151271821582383678952235069341498157041210870821217244294295254153349203594074565768800772161940073046016686645521799878103566388269390136627388816704364010889754989211536101592126261412821804082873987180836104385904710296522671049139825899615743859856250521718446258287696698417273047328964787195131604518764768942994625884625700396689562161566722084126593257445157316581600404189660530978853400679556423707193785925185358230862570579130632251197819134404942375806420151996946193790620612365985189092019364355063363578700116738050050670589562574106265158393473848196602059012155467495174909565655203358276785468710383316932327132942357964084003504542582971102557393158294582893256629619451623279290739856598770558485532047516059282527873942868030272735409730261423310988712298778662360326239246353762821708899252454619730501175249025335189662652404808279732718838793434239935343257106304385589370160946483914676412786784553815582454868902069588466009116588148843937032658754448223643915183138338853086972139128453813506554861835086878019451168770066703879377867384747882051430982354118008866193986567591996049629071193756727372689307977697920893007516694564783670318784015199632545557814335468346990462489764597773842177445775152223046357955277180445132905212437166249952876018625260567127252503641628785402910965378983713432282932568488624546009730381242535716029861672876703791337184780587651062493811906840613457274442530135821087266721478920061815662758106558483929980270986008058007791263998996913898420314415498717254832821781031282624584950339838815992397908787944437343449847009450883427489679817033924194528402548797299925753956551394175210039283431446933306712992934742173246388485096189268509233024933378844871515592672256004161721719370581019898715155472309978210395186816665695250612444167514246088235476482883249609012685478957150678508105048322375120772071736993889306476742369244382501770181596723107183113235685089566690006168262469648574619634719077698535499958485034744483019944455238410139124004196821619215821855050118619568044982992345945326015611583494676129696214061728229347229821351655512641941343729610322415653458537140460931182546242111521222978178208725844891415579389954097658696822377459227728886493446038819031521147923252791059405870704613482011438741595965059912643290770740812121746292391588340668917467353828150429928256240339455600189050645504928453251459838423506327911773893354942786110220750842102797185417577603456019498373195566326235495875228136213025770513623060324319440374792425925736548058084771167831980501455461902196195993827686215286073668138227259701549339422679230757654122811344064975216199529529073476205432421309349623092615523961564319324339513094179823299472025156136168555317335317295183668267252176347193513208668948405746610077927114954551501157253400032153913003892928794314847434740059468289241436401921272475344239559027549265924305699948703101133773037769385391730082838132010266189063549506709728273425902566330977318148497201488242453950120271393654603423175580447868902244357914891964575472928767193891143098471816466597829841619225921552325792213529577292783596518657643792500709093557263844236303457023364514055001668075556986473488209991046301283961681819160454559510216819330185503460001415658115629384904597323324337253445269473157566229592359409426935359650408167526376630450147798606532821030558559303584499821067568061530751944838571094888973745377442587658729699401537779597427040653597503518018176684306407289429799556196807108770014614526266584593120533497714724110154010805662380839787697122119953035264109437447430409211771447590609337334661338235946392446810876511403501937592305354971865261949536231897796812726531785295430039749153798024632761512088469057618288860493612686671441887156629301889824611520178200600356124376533386105935777642627986308042202348757262592751164072679418933689698886166286602102978094975019796514008439189013840051585218606605897849134200179327018690144080051511832826908703769666673398806341817530918718976216204309005361898731167260804617594960997151461039675760291764683359743903687861867252267850674207939004353598882723106793725741358439176068335619791335772114366131996022994937823811025155415076846261779141216981718471546079837569662966909350142710306473446352745664229868170592276818028258825726319668448372534760848652146122000415759888427528618343469696600525462017035984991458179185630664440395434692036700924502423748638430845925140706013249994906715667061371791786783091566687636539598049049651352377672180823885699219250824011092854320340439723874869377749992579535849539932442820817138302687072041367396275281101516234368323051303063126184050680794172611229747104212026809459858471762268606012795467906908734025214194046835545237474166664277788249067129138601418313557866787448482616200416441058621096684102479243392740496016918295566366011920817720519587682244644420460806324177675390619153990660767962856138055729256234254144591907271878080983687907123958147045519950194075635699139610232977950891436365106798328952177646854932413947407780490047262149288166318579177234885194013906769912219938413798206706604563895346246986802960760543476764643093133294041671345830328092967982459793801302513387968988093970470516356890872582629289631462295500539453723527574532257853502356923478863879872311616336438907565938115212180172171322287219936593182536773013626527834486412808071998146349788406477389559450821218552473062873947380968911257949917573816117558032217768007617849540476143507790530529338315984769163940517453461856399635514334124995783276432412661056285888016322076622289325447017700195025953800634013502109021836267932739290936497398590461075335893446181530488660381358487060155690056652244568006243068161486332449563304587174314024893316285060182037266856882642571825907760942170447517844021481567196795911248356201341100022082081471638491908768123220559893070370178105531700798459672938735433147333870396030185663594932780787516793784976013814946661609967380959744552438721061889686532390596152661935053785861223253428809544468858770991173553459387049083442371428684137922746901179914237429131176680816724559062383685698981855983084986675507382837522337063311695947910532659724087113768047823176971072244523887037407538078203235186415877326279579899858716678390881302476660695134354858196354535434215074290072575452241243570850882198135200258083995696865251063863640964868073913474218696171418956631840516027277175670139825085719672471250767414076735197451542843521220850459317463542944660598708522144450168672076633999072525088574039621645693537305085027178870964370202253345121744729208617803967275988510470447993532548259857458336957103679709352986631961097440760541365376856107062709082012287722478941567784671938569210374384135308309275452031494083292234342489052023832044682671976178957304925039332910235145080907262727099780888063244408346663263392890570475593710346997077437439581469981744673356998700187078118784700251245127468405724680746598233817749523587375407967003006406765483531176265146569100297199157727420140901266445097366648417522042050458476463579733575731353332778073156150580025962323257359194562417050685395310477760505895326979505603208295078198286921722260590157955208311539610019988650203648152333206457426776195864313686244004940565174860688054140640463329049468494542768567143476943189238906454668228266607268836925142074539807413085663297113407825481769132950610224082722811527694870978223504996165211832296611596541005237579602566544917477496131341393997527747260793926637095219639991428384145156661662719363927357370025824199618151047329690311757470117173945795091720398228867685079857725821241292181961970370287418608859629694476383068017806793884800223917344077779392480302201300373563677053184001936045079957685423986127566290145460556197909291780786467706885899785616992053073123312363246848728112850818194140998869795943631860115689564380342067853054608372939041721106340955128922570344822731141938453658361282284136574085373476542537580107919821333551345908138790545434344188209232974606082260164546595004466147332364000618564152445195677420927343675379980563073725057229052255692223535529963772934847686059983319685707164718066367792930816312582472251516300088650206059261481856949148757542113819864465599268689869326215251886691221487267583664125392564403964727634059767520843878398539447484969912613846521634657464216804534411443354789501582946495075758893983814177829378880170796523676031948669074658411220459573189572166750649365663706685183067838373483303159208516588737201982804103806011576828199905834431058683536286270410767958041572978029705000714745356800160741945020575207133073698209238093820127267865954139117101630275807200043649208554765410752935447213544200274036018620045142456425153901424970703134379253931534458289555940132855272047835328104869628895699433354137564741407895320432089818258251495435911191873879771816043719536629478654940956506502166133724354219559194251433948061687102135300745167539286181906083788476159191460315651554770406120649654475983860550664151804451445539691803559700605746141575095595771833701379879709136164381765225725914312067496788162710178256219499082376593066052281477939459677153092321565733411747182312154203498598522277678851757313182438626631790907025126805077913371796911351827296648028268011616105054729965725347960862597798822657961197580103641880560529439503021678523897652283753660918422688999892882161952580576870799125035164847364575623897193975789752913768381947307020280954644952807316654192256468840274277392705840284283921956599952999639426506414337033066841997165957072108336739153710412829994707974779830715934087637431545602769038286597542568072306010096214995911457806740763239885870102711535963083545231297850472065943414423307792008435292439991962014621828876396485724540239632921563803419587065381242799033862161498091148938120576656384474742736521656999542547114162512480284040515234238822320600027156202071695748309855038253846317785903225903774815434310778515368540907107759351281373416661783451760739631495816639247797364020056585313652781351255255204006450782025549540717177072631523022556029667784942560310516519697060040368747541822806953099383883828720658996754937415879787968786816595732937608385151101927214509382638499385004580901641982506490402765963732468306112281911283246159750053773025113074616611948618724910198176032097796878645377992761527661818274015882903312877627031338727579267892376517973158910064630719174387214939247065047136844651838199439346520676403492741200839847441083480022947473086127449097749347669977128600080205435421331117172426623265518347270461505905753305766493995346607590712280281157290328078974218353292753160921116769802993893798797526123658695672742236148199147885855459122179959944079200267535849599300197613845809191638076411560650881776149792610624047423870823758646417178503370660913695400252646027727573237552148074814976274977969065421815560773924336746504828410100759895064744752227744416706368853020252582082808504325333143730379635904108085248491160812150635926160025435434623515856370507025905758192630345104384521398568492415444454710714626906838894700678866086676143054981842442166177862900482221130777428292666923312910718155419761505919310852910685445152772982688778354674635484217166119386643396732930964438224303881832393655617235579159159907662813368016061754093321376587740880278923952881762295990032189680977858919716592985946717414776267363437310860669366813130141714511682258050447988385512517579742293636248343316099706613166611133659584296649324634608080936298904053694188332666650338892946440209661386717999691332479178942029520603009380739039962670047903182183396435514017614631151146698720156237676706236574126947446059274451830849845538672348804314843135952262075753351411590186158250393161249419977647568790039845387536986612870608716920396606261709474674893040621280081911886320183007484308424016012514146926872696019926383580615226802925707587262693317627424492016359074238371657829276306545589322891054533191234980790486528064104871164772531805217210531726789162823166612733346120042291034156645198947110812372729999555151011813607228372295381406326175225602185877322080150369042028678094827175818394057514214771195269778465738319937169646098356033523956527332111327616854246922361185225036234140556722710479044855923077459936975653840690070745193424768588457032078869533516961954123937848722603747212243442657534282872205289982913488476837065976097253046933172892755162984206191467018943040216529963213195862824378525373843473708183792483858217042942384655302694340080297641172552338980741540186114266369282801125199690660710243323289180059229530326784079859274006122268052923380629716202191371932418889527026445885848476988156236758587180988059361949067728139270748190056640278840099657798091935295033617471862410807238621522235370421117361755368194740026344305116898923108645843186007226886162030930306279728571530566362495638923104435189534208215075409731867461172572082370836257269220740529891455041743446978266929091153052164667444545529727503335063694797456980385365037201044420856170682335149738490612397618654263883290568650797044586161656561621326456269040257825029290781286146554122093272653606040935299627246202205253022899443967771676099828904414990218111826735493631166385855065715605497619227758733778141107018888665363354714734012386439873218904440612486250761847285065622911537554706537093041079036406149911783597347523728747268257547181599375416164132197852655548168009138438884868965323040729767307697950974018112627930163034864266112361947599442541412145703603349913805970406122121963403822507004730702503329306127662281631970665456559831172708904082453370692039430532947269430166790153053717496387912725906820404927368924411594194390144282460789864240858400760736816201837289936344991854896753176171368064184788685118947498863698416792755785530659580458555710002973280346312626776355381683505920880077167840541129649551382926619024211016866227993099295610978740952059638635417532935708538077722230880123486950030854637525184945104390842598010923619670986335259191769648558548473988170298527353782893256722963753445526760138339770484392696269937486498016667390004423526340421756624986297112069538462953336409145916781743660046569380461633645138377795357379108486908620828892955614208822819038985872229210120864486755857643899607169668404402493616721248141584287481576328471944190240156411489763672146654611731973110763388580403521097286067104453253364708411017099850584722142347398073628934814533625359731602014269106312181646813190355577145812432965927305026195429893876173194433326401483835854596894039286212456172806979583881175907835115822633060221238202794124915652227385214879747133883589189205519991918754350851953929799653119367984350896583316958252911739400266374643828122509060344516477545966783089676900989493079064022865984626424072118487285754410712391537000392998737454954250578874013877960571677890916075063959635621499882948876583431431210574397122925168805615160195212998078035097053450945694138529818797745409831420928365318160371798105523140831087290551118186321995197421824636643504740588498527828022903153077653270218721445132870385629079392183146160109222094434037006305509860854584339102322219017718150182230706365051848644761974212476089524665144956592948422376504656566473574643753640185573931461254768290898095982969392429209084235461710686250223324265995107432009379012039102974838962560340151377586372869131742782392005257134914096545246255772674642929260456367085074103879902560111741163660015816417945271078485312622251664881719219353086718938323221951729687586897585093722830063282252217093744482126749343283475038779106333789750272104357376911717606782984023025443415155838218386585337277878831031049991467558574535176503685419706313078360165231485303715820489599332785190933579924345838998070862583889878848041515784600030326119368756154451027377644843753625760502666367195812332340804192919118429489295150072727470293470079145695155234421064750644087522932663275321701750538350946866802279728637688216073295682192252492686825343709833551223887900181093581819496368641710928721504077063158737165627942036900427915756377491912076994060031360245142293587249666152130253543454635395282369963407428355853334200870085494642349356688960978122838813315353032240212143090581825634579545115170813477826698996386832895276715216274413136032305860495897837155625955708043713147164230552829677057036618263082783353607004298976201423973771506750644132623370205870900593771860333189273893106661753700386549279964231910139342186953527176497144176246379544626366379527016565914943299074556402877047910290740903312703327751744583003873747216814826145208118575872375047998232048568518847980359160871594498245027499381344911798186820945036500565879601147747436139231827216718854464547912746262288172390979677219317067844529029800277868082900919616604367598729000674470041028706787582237742303697446073790275589854866135243672609064687718468020649310468683414946952738007850550421115578573850918100172781700049797240364815873464896616033835483379721427417897961952533307376135009997699978387559346049915112840905735819177798106333759895006007675354759676132215552657827690780883700553645165576938935998562231593262820901760793740343200588494985251816543139346800246995012389628283009947713245877079459425009092417998483882082477835051036734148475515935239527740116352685768137376664332118607005058444310748769603395036552026424522768235996440739815799860000729754117713762790899881155947955819947208312284177167734628123383939383454313597038691237436768857436379571404006514063409707894369028324988179933935278170162647053046193415347367419558294804316960606950907825496364581217471971514865456433237742729102101849906597404061300353275795708293171555704444040062255929808072338118386587671196473741563336945740579413391548402880917931273706109808968598241396928638157442098759988405554894506823488018728839168888123871466490858799092998178997060528670896677402427790938753082673092678158675279369675781314634755874019294674184513265698026942854688135261569920159147639846698776129551896054426474463241208770300328077390498210700732537737390692279049290092201782264568517802339574673654471526839492578134256996247285055985391827816614050298650068557726049099851432016252615949708871061695988797743737065253590898856033941065492047023067895971224330963717182682381417402541440076306804444509409922994890769183403284309090257697590048366365708578568867546203264650897816950534448672949585543711635846747028510771808268957253306919923560681500012383364590849296726476701267847410021905747720271050159016053028018001220180131913632245310098452598917350844691403197790608323905712952946586057716615014094802063133759759183196604000331003672974949467655670964948793946556861620151778163355809500234043367156633525760102613713342401451920286641083205362603682697070920800147724784001657675019500021513526217950631650576132058594517448117558427996848569023049663181611988269980617901714963818017337992416194207596509733922451105285560511491022027748476861423258503909638229206079061950806263863941015884490259363167370142381125459083735486832922133023265747823608033989042583623157533496087189480593123036608546611626672119337353397861294618656468490807575562117234632479806372046473598535158926474379876717997666162074329902673293679718546251397196198541589132603954477192672201773976117679237734928458374457981399839100379107066796963310587870124700057463061862806354940808381539238951520224972386034903241862314232299596873615176964329688912291666306907318799717700736048123659018784444982002033012823064198847304910913625029529526466058735222076346526403209298577885195859642691436832048479366573056881268233836385624122376450865605638927595334405308376601311515388409347356292826510356366870709560439331869766303482407049718022928326322272864278431234708990600507334562197602761125893484244345687265561134634935676414337233972434479973083701139415017910081617929670159124577456091955397189925842429986096923345236414343053407089508097779234830546342779622782046979337452690113212401030167233795265043855101123359576481146599535003537194696077720785223753197072429466575561874695470385301893446493516092556941918733191723400333563128125266877599651041060127095370216017133121708731372455448565421026206736707028327199948355815625692561209977271029445027661057243577594794959122648537499011944752736221951765653412556299935182411096253008828918724023492145586915574959106426628379316583146762736579731594155760956165115601189304560475863813357334941604729024884180275647376648519306578064657255822410289878484399474710400396787382456714337896864960056179900938869914231079578399215719631535200869249274150544702334979551797433587538950693989864064228339091408695210254616524348433852297677380672906874684957055615873893390887549704105293262638258578669890391620411147202195399165596339591304882626145984715500762483427093095144938778823959960246517799317399797496022901715003466472950227514564725750530638983643403802348472226832872225141745651645320464940767739092772797087661204755989271232266548577369687421137605764538689867832230292777399196590273794429931329737117913590245814409993094948343343116897161443776299208365205251059527528035953934721096428938258889134610548800857879386119144917025544770932896908592290768296318995736641774254039458245313616524260309955339216791658593702745806553485180522829830531758337211524373380375746145865848642309818590840788358047709905517761059523462399991622278166454201196330736025320574514380317512775269968165523755374446268312807340313092724470022440297214535497965750698563110619332752854276197433734111339558256008966238707224945560608908060801834718745697537338418026215665826105038971196392545454439237269301108030055072552392880826502556274648314885494766016324168176382573262796707711307955665320019746741798578752291373996049345114299557279579700516107272881574030814897752870366524742152003239261141379004161356422817201829949893151871929757113672129432455625471086407715517339692859718158688755837465943585045174878263323550723699819264990548044740153749918653716665150631515514200939199625552897521486378629167917009764673410024040333751582554149057151973897023421873861155208193916374227606490028868205647792484634654229998450507511118041214978770452565024024099658272925821558862198118350710519643129634569933980635573049248672912526298277942383004166810444890778368740643826472977168806431997909859587503852653515954577286620190882112547453561161208547511171142496829985708288703703844144985828549636045789907939725859259456754212544228068492556284872559548976470910014202192103492755938351224741561391710638866029381758059862833505789270966853945170523552498587724535081794669064218024015281798232862761441297645611099712068836531372882583921715119683584586876257751645171604053467209293495335438038872366185566479841972805900668656723107319298968331823259702613346334787335178323186650320796722467804801018625167003648664102672081354790792606965793714926853787489356893729792131865851255212017501286021440133510188777730929179900598573836095372801768596314535305316280390011544183671975865237638983145858842817252787561143582728538328820108396485494054948760649412350667701403135334152318302428791587011759417101976208264646470914298106178962026284280971864766379657617619358100470118388876585457464622379093635828086154697224668992831869811978636316529015970459362811316949367418245541144387203576185217089199529518528731616053736784177241099616320324441799475391862417065183077551677175278291210903808046749729873249641495464352192825710942253739084538865539044359038293842517063555962858404723787527152894039537637433205015043072263091450410567194790057096953410816149399218996048211168563550830450636833795206876249265790650161536062642947863593145835635485674115232126447558346375992033786212878962152102669179467033969203596878564288564732864074406012352765111293812006675896981788988439510639218621089285807910823817596826212413273777402136666114640830531838371896308753803219278841511966913206760760374380899573263583738366266391763031547419094255842689111081718755097403550966633132851710256099873458494834371041090616194268892062302491059922243172509335291185496167558265110910605589758309139222850184812086398321007140232901895977354325620043731982773492878464866047080676163080685968929255042183481046385096718832038723090968202058575512579866842265467569399809264697876157457420296879894323678206500955434978616186740670745835127761669882958386730576107504955385104406955224403184385739158408574535091886518898529982819837005237647130414620100666542989490346675870688301515688654375897273001734795806678364081053197007395324401852731843758023937794073587018943912242114588635542520399728343104097281688220157059281161059495742480591310138818536646926577024495353958579865605294869594418828189679719492888659408963634976891180915336882626607857859381326195037974166892106804636061071667771973222610809947698611209608837113731576871403751568965097496142766187631980202588812957660207611658518640490323978487031070632875939785749147164792770646015203724854428139858448472039329941015097250629199464275358311545424526245533013700078047625961509909458438516102593659280218792567868149723374282818774089738504550933320852598945270993404458078707502359003286965912355691484942228792658963515091256656848139541072349549909050197829509208850217561823358239769858061525923587800716084701894152544240117043669798915114721897891628404971412721539162466370575445023003867954252289002663530360322886572253004751476908210719679044023387377898742308440807011142368787832858384685968798033324273449387869631440483295067938235646040724499011603219492624396817317437407853245867348392065784255642656310503268109260606279815185021055825841735733837156059211671001267372202192846101423074807502479339895973992871498228506490952360551709746756288794259766019376014901217323860154136639348445478241036579353672646364918582429612626158480035353277582983588646158354233724388902761917342545590498068781336205636726424400008937092330227923471789270948047631058231558020173894325293206011482893528480148712623383002049178139687481231077857165456891363192760381316989673435095393474434818744537949377863620630726382187130289392289218265115570847299205343205404490501073829178613220920329337660804654269572351897713192259649818840649543859670519880827327149473311984108500923248613399440702103308398035987435944479514091295155810064719933913244151812196409481306376794146183641718201413975170294056098515375281468771850125602855405269582544549442700990017559224367088703209456458846106477138093886596372587405779699352559132581975181081853437695962811406971956412476310749690407731058002193833491069844430038947652672498323491625381626921413421846605362343966646854209639735426956636078306700391723163716975559180335482124568183654745212025656565659359174038197370607060563798962535998037245686066317382583450121804301572072210740557281622252202127379534691299493324864737278030062047256291846265544739514271999244880374899899374530937345381307744832724393194237816419187184214066445681440977292852395167701454975259214202689867246088552025658070998535710907925767239626133952600347422907662566738714074294125521911965134334661140702569150022338904768196469384067208840777525655155911394603368100614088623045958469580856372519177140044041925273614003655621808059249490060820715371812213332614964022950164161388382066846771894853418728197517498858879095975588026259245700694667675135022484159724564678256547241893400667046585966952505384392106614941733995571317013167027067162167093932404814039802379511690959543699418471481056885049733607465803812750728697489989649345773563236287501323028395801552707567709137750309241305602808725686520432070882938873207801045720352848478545014054414524375151176385777251341890161085469127616063751321985161074507599660071314570156980326895449738249013844079218636461002186276450912870661845428476312016029223981122766116876027892159203920764674611908043616529482084337234064662670691185599563812233028042743340876438453178044503889134978591284002168627906007342212393239062281059928858192154073570020551061677131327161173939502993045350965996564747111020561907934805332286595040904567949221504705595424431713084544775131673699881046635369424856430002921228369668571975321861535280993112522461336728646538348862492924776499282647584467032611261151352367470300922171558435308834591401087290979196283831903183220219918268469210082048150259729824055341343279906565825576579982241028817455312792763787257864941379706235556666766511023157269248901486862059498704860541196462241248189971660656256723315357344109850149689015654982947496258384213749968191598273484406468510802730665806467399374161900628828955045420376234718047255403456561735769568124098085345850431219892942119796521982666590856617405548602432456481361712599483895161995922107639350371995468187438045632706731796382278648725788211844616169807358582073119113925376586511407603111226410497747352896126966474868720764770694248048345539407941510145777021359734287856606466293380198578330436735223781137176457509963385402414106773255143974735405014667424215747079409885673180146619525045092452899815170635968561653529496458530371648497784430985697231891691154748343840045051576987092113581055003937224224275660376428477732763729360924643966476082360280223018723322971813892848566647206445816401901409887810926724000625434298979315184642188276143372908192498593945189606268136180826011843300553653876881669181069895944211555256881146110720424160204199148366733822008449588957981045118684425973736852154355989191519845394296473117644149292118493637590525544263047355274261537227468187065310322773709761087743506069372125151259461816682970908712800964774258828168314814762233115750777661012643264450715412423778930304667641081786857145045964105701872842363227427218263100470368775147011162143765414685503354255689094202708679615429342085870169694751650600280438446198764416119480730584883342413182183349654906323907998136806042320102991167967496504318476725336548107938078258671770079069272428103068234510133774006229379886175631306091180868145894289145958586821953342076174958995634436329142593713012762154818842360930750846904573189196314359562098244382913347559594226541644579922151745010940546835983836033007073715133525091054741886460251027188771505306243821731865123642500434191231064614536122413849465157926508662554316426480330142059868135284549534053653790946203696112420469388655001063219165582051995343825897737902665204986562377931501676061902609779485440921724654748318497785209905386499077750387306067922330442015529682290081766204483761686292962497097082921504452977437071364449908187825048387016687934145740716342032509513971377541505263037866787848924692395993527791908984678866866934220717671206484443136136818677782422431272415491707340486201642464487353201336515408698258853986391317631875974100682610323994539699194934634105483446117162006177271796269435427659009072099712884486024533351190226081272327075448646310089972579586950035907275624271058767190079583537028511049623468325216625596175436289234844743374388232709751680228519843598746128629036380057304692689528857967530144976626749020748772120814940985768033213990425101916116279480442675726266222298911065601521634130004261973042319034846511537736721372318636942424535340572525246302188607240587228936806751110903177728390209837883833522305366994166253012389285008168468881205260187273041165817362307621987745087781904607243911998408279118911665105434892979420539352728881038569136751506743931436716445010336327713367051673322322884004075925346520304375236202665197269692052456720441918713911681903791806689090520309444267562201259675294402453363639711824705175099543027766700200295903083151854838833068754696219963248259176867669534293615218355503291121897202824590854403521046589458368457949218240505472716491364533087164124673496232216163609568961354852766426718334308750333058998574256618661966889740957412493414558274175937106899451183417852622916698293858079240321674187238632964916325351689656848600986300044249066684294109519141690741493456800599055152620019360204785476565313834436531190057879559745062631246953506054814685593383174808126671729067442114603461628604241674137902142527693471523467019525588198182156768781844857850836678966806332957222577169348764986194803935162076138980885089134421793823967087449856227433429978104229344291387805249885078178576965054312204518722181639572649618298307964559725103115921261793619888765718670575440303812106760784377753173710211634480590759774692680844811759002550670320554963542192477170117412673336038668338327555472993532095778137844082691575044735345344222517718429375352636811409620419672967218041034020943709761017988835715870209201271900265265680621566425989500600933632971020908898136563809566843136917866813149106312229391934614803755206972310085631688089110239866388168652560593797004865550964094950899169292590656677073596590297464640121793738447667835507313127018412307630659057018814526410569957742599150981101197509903524296732358913877179646448521032318379624224019284756657706622579957530195785707237914732288177359965407202607438042128893727277161404708422795440566492685820248659771446438378719988098261264320538568663324628198789571392028844780731982465682026228394893947001399398652554236131661289649626024593527299272869419219794774437785082241021810422090627121475848260943761966106496333612361674605367825919754227582394678724491335387488364381591266843240049326667865490009564943046844983548210911844274443049262209699463320527665986132737469993055744336723016979347819205632745300049999776858172332530626098399403888021678544942478670314854935127115379364004491523382641869476322639916808402855717632609388489945865546600046481330806910217513927880799728342529872393189233087950664471144552590767936735541899106592926012871509202200396504092983578577006364107706224767877956465229472271963534401223121045359158074391898210048396875553778267590596043401036000135520302851785666988801234412864359436486779441006903558801854391304950135499523533082138538317795007704585212112458934287410390399248540157072114564618131824287058153456224510335618658134370224528835638749244323012273705184640192613620132857259525782843219900276263190623063950724063232467958753957575942425487254978095956365046207952942834288834119930668596084605368825669305916772041299935171961018075606359504872732627899100668981126187078979842218359962680357258560812657363781597199275380523503263431423265906345457427684297352250431282588221171447640821787459922008245998479498539807144271478777163490246051032733652628533033015066600854623141816016563334713565425927118487962731787593795606036957202772408985651990755100279869827320371009094012267542060206444405570842768390128987117566479652936661765308060865275844748224146032462908274060402759785372392558898997132478151678520679597285699309751275699165662055264109535739983390364697111924489966738468211464637096495188185735486134304323938478089116787276956828960739261059612408466949009524185104042399858645050637415801363773978759302553657712361603460424909407048386479993127307494601019725188645153779954785715713543525847800774876042659854671169829177213868398109488046089362686880590219536872210908364400625041325722651236622673985245295125012250049615512682160708236332468115987416667101772922022350744086297560964294503968143259090351853003791795219735912815945196692147199068969482279425901948901248176869536420325294042961262215455724958543725638846816284318208945028856199797700795806795872781348208588854301158147652008836062494856275957366359805235072152909277591223746492265500645473358622324200128183144650004011384557834618153537917099843104797292873911728441805971583816160322337408667392692424369954134813527256431649357415707181603560719603169780093615241038294838725975438895935634930044891437308080373660676281163431851522330173440733324368495043255529262909195114827536409393297347117482270994890171161170971034252820249201869107981043959524049669353686436019694199553449223207142445172655287288986989074390907485966670039694216299883938361581419858733394643001489565100170548380763476333813342827146089892569678100945349237820252111162542947009013929519166716770371038207444886907776457736542089848131490609191280575594929729657873380019465360038966294736935309101805159237992087752281938576799351714349363441182187360486325808287694495724144599092025473172561561152867308429437822218671484165415334076560619790663047263616756600322245800201119042069174197455537763311382699690000110484632763219057315875896794946324690335764663648112288988186842941802560797186183314179390331242131790072890233213139892422496849088822630331192128837202772181920048078997717291482347153573062688537019694224854461932389718016767012128290297442554281949324173641799247388452874180692134149691704461037677266308206246996864902211307920663127556522929613323642477308243801822483818177506842565159752769163363773057611810010743407170697122785520532135486323181204912494502928513661180452781278906268785398353892569787767740449990206114958356935009849873216664343463246528246484288234403842126146027773249222561759274565880414844927464293480892563734448586652455396495737131975892283685228753320532485051236006074617505335700709767330544912034276715498827766120870604701738833108703213341697063694339170234947962494719669127265413549838092941565814270941902928567312084853404674040184417288392059000217540250545213007445609812515644967316591276855377675633803396526974046958227231148045623444663278447046740692573538718149411222405020361406920464883113628839093321508735049912715539430214006386616799144805824826623961348108287883269021211087488102760243179064862917784657792780255622993281920433117451680610778363834414884064196520167521796980755350270508240322033673639584781457493732719145118139388114087980987495638016105355950426472741323515982054482597105979371066569994889027704725448891669952652575484324676682320832745071126871485946293492702142013891280910596068011224729248090135675711514036609710491799966495437606902087237414980816940005186101523505084049257981459619815893502954956723067605264758428986029015637681894826862950266655720722652969266346100699829249089741262328528758797814985555319923772470991123747036634918358621500115043015120128779217949712336864710476050131261959563838632114498325685709147423833267673839663150741571195033975234561441591540950347956192582653529665503459776891393818504948160789815300471144584265456648053076819883609882952863697471730743149622518775417626591138507277261088703474510354116626172971660567801348308360759408729825699668439657940322768241030761352511126553320349542945503964233470029842821522965795585719646011093940677243376442999540380349372836546493350701378180305437621403552867960725858793752625567820997769287661047479763779835791257539532971898531738154135049781149340853008993064173824173744915816246495681388875526467413247428020301242642318844208039462687659421139667411933962588853028448547713987386640538952626077493576732995712309220441060619627126668343480006994370030994911379581000413328722899029199166866851620472879479776594009363685260856121317466017715233229726476763309513922361449025509664286694624927531569539420700925527461698539661476931655076345686705092287403168449447223196140592644006077353700648543878053305529297676516267733625096087887512583219313928987103930352247312313609057988910080564068428895845474363954288984682849284205316537158425129682009082011950415335678403651606001847506545668675386470335964568532922390204267140539155329570794648939063449845301623464659920992869390852999425809379039040744215439603795173262152181913159776023631109240207238143837815667753072180465768096496343648280318185538423359734741170909766058992538783144371297659085269727041024716265679333478636240068303308235456291840761879224235291932183291212348237727014582563525054295530036686843670320835790525070344988719551064769896431490036620287796662756749532801687885107007817083215360465535451555933960971644578548634332971610190597382969439096857537227474624890851277232275752069593966968207059985536539714288895381931830418498092392325055733360170955853151172835909409413963876270318211993427888723380174300019149642710385357471447129169489570902299008801676038250776271637224822746596139940324440900829184758555129197501195226024794507364763270404902971415689937257618674345586816480343016405425594395634863714340282386599729319527889205897696945047038865147512577105685108129566497277910601986967265804669853065382790070703052868524804004880010115883465375160144479648996296551929055457787437037514798520825018190789679670962917548650640953539125097451578857729459725566799110832882832934516348617976025567309500205295430807926823501231543453665124933179183543553491954529124250958374068809944525935328021249230092318800248439133960543724215468295533505930373781864998165244532047336102115133506323352281444496616618881669845513626363914910317208433312433455927922000673251766592504288802487016179607062824017477594490154706421752162813977568434569302494045640151511977000210719082221415980278966069112736873645516317212893008189492654546223521247576193342180870761059550064080536323128637929514666670776840882260246373734248592037821464182386613360039848170761973349121158214229586704378639017339902522348826586730922745242024720037531251554266498079052898732645786950152134325199215946670910970700084232656975999750865745011695584815474548123655438141837033790257186973172008486724246579079531004472600005559192554506963839450278900343183171785574364524083268459927802381120240481881530363545893620176142085462711952191508592196665469060510921874031615785685863153134587731272199949778407694379958454537562849547867021195106833776355184933772801010623836251713155249469825645925534440279912486802733180537882700727353030918183518799636828614889690314951109621323621991394215329175082941752985730308719678824783149224266996575632618845355631063393725787366153645849112656610479306643426615128057859098652287295217448488232127437553852967813581412837647367748825187271076906093675945011759241550845858835030959941114618472368128977173636076643795294796971109476738751725981348541266305612241788160552822512479294465540023593838684288690787962135067522862015655588998975465785025476890624297614520096249552465202724538312907447492466112809657311061682578355852141510323717967110034690165213912027732448696851817511411773070218823254671214018049279145576750929066253324504524473429653652116402084770461602686165954253251872101866562226164799304227282318901185258193869068229192875176077344585679105809596934573929665823769938584070309501908598515060649112597126026823547657659483754365988908789619970144673219397357921825998286516410060274680886339233099968025763734014174541391241683870457869835879320494204933781087892482087841582035713892979748861277417889657231457718084583570286624916658261119732513202693853848652072619135317123442032370561035402099147675964262680187459163558208130420397286093443774704671107931538835824036322558413544500060105735344455149877054192053878066259618788003562672701714824946267741469661731433478263993916080797958729419064760781183390676656923156730373282957224990529715009319362737267669584222065319266354390023071298074840494068035575238917599347601473342053639357041014989034532691302473193455201013718647460322713236476126116267168662914777633021397981785489115979889683541142750876344822393281577740592025102452055260229666008057728735445547626497402509377200887318374183784716119983673873110310176694790657328282423092181419876747317022796649379666934293422177285415200369648390414341153000531745115983684973036760174593973399185162310485658902583837556152860775455038899820306074511074564790819382406859131367306550490616600414897465919471487578018935576883265893819506118738138846535641569832245098667481096770188356466010681168048086326276201461577524200006194160523044528914737290653828734261150886911015034904030612846774481247704482022038509265623355195111496371411682450541991103747833600514120013203551275643660858137822796714691712687565783763903956793740091507295019375618892432488850747202720118777865302997425258533607289726070481435414925018864350367913427722175198216277894165794308608171145247563924416923993110952353609781263469626652834818868437542005079383920565479932273951182079615017905465113817465171208579117614422652012125013255830878237215659109719932040407489696510749025580779841299096431129847742198903005092671768142527339974240333249146459855370672271813164509258153476036754701544236197814550613208660052452641267316123704034188240535079250026247842551320312982806240086314184152916602622208196281395122329203857132637916416852633244640258078271656327935650577346388034284474816488074572798047754402398246590976853749469197125153810839918831144783326125175474498569009157757778970249084079907860960732012014305259091825627209270799587208884688221567803244445933160609847474027824247256116402804528690650843810691033497196274863776023390882714805472661635867815239607819999348144417320863026998300254202660723568286543250882123409103898369285364354010711444383128500855962772482168090061146322239032393798908397479772535335765127414955379190394249829366469002023856532980874650421095213454070931939548619325414892616809263322810015325402192951414399815024290086768579703333399637858419077445237434589606342451061646678458954268899824407396452421870639418508136124293408457816936925829014269219089631988535552094767845764975980410088630328189320871453275470261322064401991367232746585267657630870559500703524163728320278922450009770315247557818190394903316939793116078341049257491313157905446434810767859143155234561603946692761686995691238567027282576089840899448099648232865984939057021913100141818752739727259677296931371442299710861349583566730224225175283543171481447678739681776593060581720307331174492970941123893743844054074907540287977959844048741844253258267123689543058167623194260402492669617113152912240130834773407185896954153566823955585274817369659758100319795754928409203425369623797315205280827298649748533153181901933776788411998190462601681439188628497852154406022034360162619894851424621804678953246841608925649518328113278777688910028627404269055486795567783855122856568534482599097783994811580539105820646271205482706695348635514982882490673831857892504946656117897465141500691420825187018157598721405882930268508711875212998675558225679236238791418287989818389551343225953849680595663641581360108489171819093703664852999298373424916832452669105996502436582871853506260072937778808077671584309340517482560188509430355013289131806531972867225902774976988402175530626138238016340974529898770246578367293203588602915238398373143836977911811391224115225262485732475342420438659014082864116360778792039596125399901224760682554027143745141082126682644308711542715692412928283879151660646807196819708221871984715705926493863577891868234417396518733220887392523809500504788867875544643629761501597545443389104981349147300617524042342732159808894138556478667000853038219138783078059906720528521916055299548483937863681811255282561091045150816246324003236026006821420532789620312458140535365864271217385817556473237039886213710613606992789826997036666597406590423106863083213242750469165719609017770722803772166090365943678430899418775721535795501612425311090940304311043358027047671574389125840712293314990142271532023805486641580544747578164205934134979938081452198926601178143694058792097738017304639156883040305378916452240835236225736476740785958994110226870588480935238733958953431626797659572096139662070847635329756448991285337913060817847506154092554622874189424614736464563792393203339658417093186959328059049219870961237951844437302895830954632942516220261617371507869256594807684212879454836708941650115673511863960794650487412123563676313245921427584187757283636436633346914310381933787900472328969445823139269359715087029397278807913706261399199708344430626918497663200800400714113436377792500251545176875048228381475099032264087620070661430534576680536730687162912107604466190537676189173909125970963219409040666251416717064915500861874026436241040624540629988445427521929328232634635940323418600943533373810808246948604980988356858500115710316126947591497066391187828210294869487241946136580809155733903614378435409828316377794114097554111443678305418107467212063045159778117535324559449922231066167810059768126075398035211669524033895710126805013404599478347621785808543310221738719901764792015013040508818174329333844005981181250699928174463341810670261130866667628012985577514751772380171210155635330312649556377839987372398009269005731560172741019801128317006023243514097945886863816170107553952883424607783893279309171125713324112435903384309982586659970814672023445901659381310149864907825670768764720503600382410223170298654152567254939235441969107000249476648845904454087772128525591028526643334061251208660498182540144725420903500430997899052233191227120781086752270996497536706390663179348621793894222608340240616344935965340809988107395826348579006798677080032397222666040403297399009700175210704970600090409417342230985992064004810954758986123634675141680480066468615886574105413468670154450047859140850150266542104538910571285705700727270627279534335437976417643938198794776623778485549033895188624745668116052813671432814869039022069442028267303772392388211953704335341051706139177910744753077480153716198286673270128620162922372935061711885340881752530608223853946260229283303850739246118326068841637880778442434056700177150132323023105664426813052338892241918539184031154424687302196963382369789379474778490740579420555190672799584268231583682127172547978130796642301051761929118534544258152296119045940753270280928935001552462174413069505552177723912608700141042534352654424002206404024358598856275474876680395142120313979590006196064739261943590836903218290986346603266239541906722142615237878857940735153053461078802556464525641925791545241725156795663747888907637334250034432077878408074726339449047615777421643098298665472689290858817734408209629046998391857114082364674686982138815808155941029435490730972152173129500284891308950372825821763851732630025335605492072400516442315201224754668580848547027375209155341233607327624070202100280867942108313853395151017790476536443306984632957689746995319472405726719457552362641030434279689762011204219340227918845139073116580864082412429962965895231256060971264671554922649193842703027238239493639217171701640176544240360400645467692979174028368686744323327066460945657898176427336511409087374131352007838593228679400249404680134832627680871224042732241942078767085015820962657798161073302244803736174535338981805994850118253104172863077242844334977481977639924366303423312275398202479511001054106975188321717989583446807906414968888816730294217523524040793468929701533540634431938392686546146430697228708727589041559562794060469709853208061088337628645415693126617251437113181417151479177895173529239564755297899149028527746525585811319167983459408663317711770470178403225946035212018313407335065737460020779263381231292870651882439037994114192258798695662470870788993195105154371445102462146879546173643225233220897915209201150913771593742104937907037352322538380263688125261644458346118470800534094517058345526469073694960192628912598014687438646133031587955121453087973805730525860304401074171362428938926835699494270433935450101029408607606669716446495890579497576710723545942368172968705700192766017816147197337422783437892227325312337205535983655659229533852169620279709658624741974000199852369217322520990570952896592874455071053848410236040435107078026227558699004670082066709439003753078406099046501711696461062430116872340320196783186081152013851944642250394089255854637415760817945407196318113607792268200504736741691676159037873020916059482176096714473340184112000285857198192024380785642867663852605907211880826091269802919462347919349490198240301361129431057717099370927945259023600605044666572561520479747685280282720979611101870615317722126004118847921979199643250594740083480405073704049481629914502250001004109981919205499199284361359564848476635435613472148405985365597978695340467958496294371242193062407499952454185427668374989764960072224724338442621204835529868724675161997471786366795643393514857156906641075368154313050640655758989265266750045240104008711511484611587415318705466025643322273663545573789708162467271314292598303741151083880006654349483220085878695380265828226361713213992634269818781764562365759428958902974927019049096008844844231393993183716344593306089405855831144755346853781556429427871871012333477993533246293146174877795480830298627048283361328694780526817596555895124151567686920260750595812858614447688330655541392941486952494502182913985890999804394857266450326754642529572997833330233681768377730517360054507736156564985728773850620150612447829410237125588836619584221052295987505421154259958621335064505384815375572869687383640764161958245127837846691254625672724219857927909702550139053574685544056879642895688732341337962885374170638902156914079706256251319881485071510309168043084594068828833534391093293472977943254309495045025336792926648691597217215782939626826555315953829637187465061351493714537886922020916989084457765669101868132591303581386287085019381678532559604883268809536247286692375927136611695954105435251701499799782764903682435317616184253901228028762935799473911572236556754105722239550490706759447454093227104270778722572279916078328971003099796956184109323653989928113079761271058186049031614936235578788578836995934413729129607375081103520082686537708367374306693474275901650103102279755873301613756595183056917049784787435597868367316195241933456481889381584385114019954228708764554316708872933383039677164248981769080194149272981425928707010793895978412980975466875837656320778657088953041166059890652420908151174448448171947557634437502930431725057881654519999134900295810061829144077722705982768962308248658265073617282763413324704122422094635274961253517362532090306823009277558782912633874068077420127815534606550930966978482880326670759370146390595448821192833721168608808274576069020284912709068015531447854653476178290821377250365006125778587913722448428748399432200927319600926947131294190576882111261190431554652520378106148997671711848035692508745084502870772579277300068287740180501422406322865066270108049606033654122640358306618102981943905023653756200264334575792873634828668329189255299180533279190649181609168397086042495074885966173879661953548747974147355487783526023962538697238223445387047610916684756156493482172013222344844643909730180270502249120304673740962987601600513120309189863216032586225743747645479458569676630416277242080320648820104265145987501987140534295133299505730078457567609385741819449335957123169724568114826093545751283432428854217226674781056158276217342546000895591542493165762699812756636782611675448925070587166054695256667565099132386981394260629694789142987557855310821410713719429103833737436718617723898442181466996036566748229969519585677774595369060271593340164074134584014516411719817878329511356894929421325191605655431781691064757164340221639674077087791519625785653332981791156626078152785198810016279133814693803210350134907341636594051852813243411877709919380856367767248216750640959043765885070314721585981131773014701086500741982920235079298148177936719049080736403395020122093731085486904683626304691031227309549853695328323714847624077774428469230299675792940716502598129480082416592566517301135721553657124423697033163196516274867139194097572225411260779252296604485131135202006422299019668455678128188831499397270645073855245135712671421460131260680716315506837999180746231511395058388696800695988264874169180063029958667740952990200102168314540624852875076928040198683149537938770076611201999259554842397373475710933271491486931832347259712356478421091892767672498247017360400295285742668528880471068003313360246921943253374495878292155690706708803595330948391429486867447928754076644598297952871717514624436167979744468933294832213306311948338459965142582613972316598624245600716718504441861070102717311754325791972193750117954542956395123318620458308226896671579581597023543436429145976383081658303679394540612423456157017950765757087162720590760890384418798560087883279317131179202261785653380580512262629123662231716814868417448780809440587874848404117909062580217375271418710684968598372944115409062758800158667846886109427610535691600381334492524295407649829833542748871625650228272427841071233763500322520243879999502478721047174252936849496803322703011553084921723052941201409108774858363821319410246710622355697856480390185885373887448041500492635433661095200947566506859079646077090799074107636686315496610840031423415864272566154836010532189586570026199813839931083551057113726103500117281501285002952984253749953844233614988050895320425054496795929986156705430112259194491082682782091740425234491751894306776494910514581506026349630752033943878244602226242802836951433675157940012267115281602930862493120362633578278641484135660646893059453598066897202623071740625522140057958187358562657545272099541171805358683855043938585992883537091689122582454847926966748592889403040068320876009310018008391341030566445274402568206635588074121733193931832151581074024894349471263005835363237432234257507027034808730040732750725810040841225031778830781308619848997209123980634998328470007772734241612092591018505174354697871025435848827934007247912726223984622141819203710377239082645309768561877363222497346117013235999242973563451358901528304262112546482725676121498740333326697083552734494927410647191022353044008084288816590389447288643715666346039136897082902255265033028088628735332318961419615180746598474349060693596205312079806836895378272546118215890248970088332268023338004002916753401105580444118283967197772319591834545234863682049170340343209373177699066209819324822575578777073708777318956729833944604989078714763810229806033644898719899859328226517237171301501471624838926959333862137087724174298275813003324493209844462792142298613922606570200740476162543029276597067082770287672459407265851820630262108141632247877713474824779453999838606686599000048458411186775730975985227794718480118868598401897919750960643809156793788728962107360285561386753881594300311826392882003625339048275323275537548918547734616821986936028812409615504400358041161515205624424964553542140616902298117170399918669697640444356444254881617480897103339748156057736414492782860084515578943831178614831662335743321233434774594015549378243327920278328378676827316509375984699866971655190144143896608614616893094597517630696462109170798515310861675794563105438165238559067273612038338345822693336185827143476065094719578045549778157643789458607646770883480176977404330594368474615888793453643285007602589389660259560920135816669518284092809622456676304923200170273866654851724815436733597302364038163196641206255007114384425402160609710080067564330096806860654938741295540585124958350376517704819764484339111220413173411119548864831687750542650302098631701052573959027917786222888304958291558324764682429190954350592660929874723355247487380809904601044704427490618186341456432267833443164474283529905671808092382987692665734931956302631594012841173326774706460081475964581541639001489006386336598001287227846378214284263786645954650524370370205421118194405688736066370410853427279962592618203969549441771900055564954577900784422381394997404902289902096660192660304739099722646512547644146796467534575014144719259026332511502903963238349374131523295855263305444481989621414863084879044150631188645271059813457079337771796218255284295530949263237596713576796607808069375544361201607869029129882717702062815755100880992141732918624695774182174505550773187010276142107977512621496186681698513772138299164688216179047962137431114864741941337430428878020150603479319462166729335786302153964540818573041818732601868378638764929938468389769573803332959996896094129328392164589066112019659804192774333145913096137550094734008759675037362740741384473887493629695442960629324711584314336928928489601395397506874306190443969672423033241153293658759639200801011830833094972953346952861482686319664290006975024846553017456567633864051352662466295140725447908275761784177636138458693831731684917588372002504911879692447498113917801417405128163228187687215513314755672935007203205686406779929341585579630166685908792470080879796235396231100093832982255674028294275955652364080138394064792485209923918741316960998629712124920682556056802532034072441447107039798562060899497135469360855578862173808061027202438790484367990226683757578298571532649163327660120846080884841279725262257713635337013454720497466045598948873031823834993159090536165194984505280763523403501972925147932550520115922070876562488735596324864950773860052339855272636676465092584897518973310123176775028787628409785185154196531613860541357594438383569089961203761261699074925439919282654792324562596710839573931684192598746167516611375661786105079781529209197548053770639132181899352800974638912810237143191174247090762164514575921158064420953538730650943283280534934197411517150016169953526797568750859357891661086902271649927636645099912130675451796221424465692498519006260246335847845272238556756601035302510107331623741891176078347471302210794115872811380114553235135012328496176464503058715499176459596183253906246778527418850521843694521769335437036558240029692055000655428372130351435264133979751798963564455244702765094492074999883696156159599556956512854930805783638603648620887903919468134279082895455400902880464159731222641952825431588166569292958261172573559852408638434643631557378189668809799223169303777405257988709902683344553679274546889870410110695009688864212560555085747378463017766327735759531631720958213334192174559472825327410026745174874591860695808950167597709230337581354391152926527604066672208485307219520427907502031936673080346701030311441982610357881723892423119431455894363705304178346771894197606373407408353940165118080600253733084273089933413859259025907934571209951437477130143386531538341948518304819679007572373252513217855903877342316868572352296790987280649417625758574911427344390408800461514430441721365489254432478297169473982075218324457896261766297822757867929779881691981662167075308639558818560017147395846699647263741564473355888120299496718026137754110675219846473834166146134366339752623299854137206059834999235667117612246681843291932212421489380753279453171047310350462897917830063009104954335677273254046054970303370026964451871380957613917026601753559487077218388546266198129709557848542109619577625939771026147091358105547717753602765845391321814193721968752910413045459499688817397029927132829449265858555202832618839035956234954186688826676318420772993843278788819105379990802470650914215897182059096922458760750189466352212180074187670688397575389132554304211388719842658006910741287163737317391103291357689272585436882136524762662984423112303670970197075782376656386019086581495689020506398959187557868110836408853120737842397878532343535293310287610564448235474672466542310034706698713174564968296552959494282760928812438971111463589752595875253105487010012440376218016741356614856847061915551935205252393069932668228653378754488057444912593124154105797050068146715921193224243389046701275949240105971491358951976098195311669287444613305030582541203367991418863908564814497631848303502753423028228759180992486509994571382421811990934860389361130481871537920974764085571679498479424635721392165517617199303197231214142751241050090350769864039860101877460353427637996675756555265557710477235460235024329215345527750017933922151254660640088975107486244091088013801014475611210147559242085296854826584211258691890106632883258519727399657435061071928183318447177622817670827198092384348512234901705208717370296568135049020272445700242444820297618617250342466534648097281817955790651085549342287624089274525145849432321485612198259478209585362544757212094955132445662432632692446398771133224113432589641818663453115311242083563605179032344316465496247966009353879586403175761852246938916551627279314059952903057398940351432467017798948631243553743748142589212669000822744011172348140379682768614598384317173999689028603553781514014168888939866303411926061842224666451050663386869228525110212997555673334332757176904869805795386771508543288935196563048263664744827057328418211736742928759524831901633956866627556309607265474903724713679727747272046204298723687168983421916164852475302207489812632671639353953230121427376099213102919522556036429045085120430889421836006094664961322053653889043929306575073793497851614896436403097797564426654484245105012121375037661202910461961240116465599779552978087197947029325835440246507498201177165039570883382642128792205985401492942962689166187122051567913129547602796986563759826504415145907877614028685285350755645749067095270194653301726615134629069335090281365715339250503167683168197603049394527872613840759909919531496085060432124378946380389123987310787417583126067500530829508340419667980731263272328211888492179611132150162671932350760962457994933621266914900555464155361506387362866806583146266406984491265376535831976448397246442990562924993876617501069298447421671110307176812972778048838094805890826171846179851545599885239098081981162320435864952550462086798000113375025965407577242976929665514772799154142835756309790385051048825750827430699762210999605509928167273156189354423932044839348931449230598172969887190665619257629828802229877201424607638618446206118191639537525541137647042454773532462548992253852120739690664946027117881342004996367928098478845226704613795273662268096477797071005635107290171431073507024182907062820254084287636147478237057350308629506123731173770288525932060465009668919652774303967619022232599375235478618302163411435393951268139863240619879444801179587215708435649837896772992900192637111710362740355975415453686713576083867432480068994029818308208329922400841955436621664268760848354445178532155749502485834175107446094106208595703877821755822589934463499687832094003029140620364454241174508303079920962583853500414437521775222391671001755978430219509016844193071265345830367031979049812764705970016777417836717351262987903368105867380944965031854715302396238182505544504886845841834293971805897696554961557555282911310110288386404617108441712381982612312197790984869555432383219989174838077461161617718434721271057896129451743606375105865457476003140852645171783391395879498646328442463797893502242403982440431383484706132750227789562233532362620735579272848095284236588546836140480549481270132880974964391884401943549441362208974423645192623097145676564205195901386206577949830087554232499612140852411007957749496574778139518563461153707095779510676271084259661626858947458580698236157300686297862348127997368788419628307390654291002540206372553759104842816775565355162283646344512337898808319884673891176687624097876895683431486998863708140971913960762784423445537490973226995553269808498895936585266184494176796670586148351764999452959521278909733052554054131428660015978358571630300095163095870453497651782138484309774895073045678931527029745514595970917783646415830547111380363405110741058090485282312368980317338204258752217633065492706113879238197215030103206355968670713803368497466178788821972357352520630790052659932339846104906680172948267996601054478028918674349527319329930686359013624192291714557900115066118329706152137470846970190701733103508575536717964955855650768697389214874964686088762439602015678224949334295505165805648694723869579738410470240138268457181684015374118870505224152281616631277759166244409738991951818759883928247855429942676512633088119975155637274264534027779732612617184337347711437465221703243020664461706449440377617298664696386370313144566650019336323640910529805215309054294276148922964372855706258461253862802296361240307080390049184299839533749829222253578650470466569324364095317076929372768506754121748631749941921383946753942247940616019380127907381528331694595085726047900151070595595926845802226882108985009803906404768095403795444188193568350611382952808544005500207884622466236699605484883860283051837162420162526674795068919582973269159247735583754527371608491943856849385895132638653401251483768010027127843313184315955384719508743101576295927338720712306023215651035627936427444179895522616613955308320238042494290941703749731619011657711038293916039699927393655392656194498216207640961732756279923209817854524856564299973297044593634159557437875378698001297218540094675207651919411673273711146281746097907147004171289635672025640708839092427724765027628656304185714798956380404483596709535059812239522512386261257322308397815745977011694069896552549581715207872695272001836912182874213900434219033015196581076515943988032649069582029800725316891916022238479186728104439842945876797092476321484655011081718486725461147701421694925488803086207073228161168476936318916507186044960348449245104401365290054083913624973136779187241086359498642160966237657806642472209476089903925058961378739905578826460387931741823197890770651587399820197337540910354865770934293579068039076074986281467874783881022101063193909496732974964076418998461315649139996634551591191453682326166441109199400241481359471096986131320563749888972380853077396673652223684071844011854695331901182500613510442238286512032387847019482174358193989119027699137823889983658924729309394039783473104560789015679561344652375192054574470760443263446402788999025691190377954735895542475728453285431975541651994547889778810714692967121645178082967495924032592963590959364143398407464825134593849216397848744941031106832530097779333863869830410446965423280308539585417738795233733502095718662121896339665255327120380014477103638631817242136633688496862220036526657854513171424661730470035950811888680407460838004941476955974232040211019975314163309982874146168895159813349642033556999207648183039850005212964512266233261474484138473958696794039307691196872022206119245993882546510889043503275153307494559430459930341960431430369811075981232177229758454970161817521267047056071006799011226758350717832175144981305995371595690880150872428146896089924038768682937923421905048820832571835617161209469512187354379701466220966252478776069904775484852049650613224921589332050067833641367583554401574030442983234532647641131476662054899527651502387084135425548383058981129425559803811062762388177014997100447886201428212560303399849138716968077086846116582070329471759575529751669662266467802354062261823447531053101604156907799476825696505554223544283881177474376352556727055304654027618495794274242639511978869866137531306919449843269940298849524057702244734238497237568371658682784408584897792456795329872556119933075956376683744432089540322122741203370345436538308054128986912490208619150345756553758535240669128568273810233072836267109563009317383486536258375706307606846915928532752873687693969031935031265614379244090811290065286235828796698649041386409964066601758143748209871761929425767669130142188838772750667907579726843845576374639364763884236168752584231987090382134047274391663846310951213473553992354934170596229046488876644479674824618584488399784006622825909359891515834855656357894066458943496104899291662976241956701102582209939296348400145571925857717524555716736657156062273188308617807516590552030260274455141216266860701863415939913628072378233802758488522151007881164754651447856011969243004762528044254301754552814627232239894858135372346507714372887748072824362802941439375677912630837622115424422960943320647173981320231048105930462771758350931526946404060446183169788862056593690214842811367999583876507919835102238384910133263865543840428412330535310367428400418740302113629173059868368154372080273968775804171251367153589156368593450781285673811060718411494549839897466390397389093165379084659558021697316939024673859137638558910093935780436199906101544900354564751176606670619405158881490568570964365536567325586873715453492282296868548474288810208258756905449223134359477603236097766586179011930404902802793071080861961956708007143405072446385639262110711832877954078804540278720436395882182892622393909507929373966887673043944281056264077624699012928795207625690452918251721832364013365099824346665950433176012970527944406402268470985840769899937566247758377274959622445660418083559687183587576697210995151433525541936028858121177243930604236675687240584021923136489004144424516760628705688097735826591744227406426743935986643301943615454889026622021540659146970773299001227115486206501436245313202848248684817625462956035701761888777188316369630051025392705754434654861950685260516829455924707849527132488117695147114019185876525286607179357554026446632421079974324541703783862797141080942030981256388786251014010764193943081233148282805684602819126409236151653427281805005215774272341574088736796015949681969454516296236607940532890989897604509322003195245580246144213171413797392706182527511565741675861883508992059612500535368997249856422054861894748302113226573784964285244458615734930213992439601741623167100151831513214590954237165386913549408402297554974473222106552425591349486551462836716255550188258591029900240554660032218687791215243380853759646354900009100128876634418925697732929765141448059098004495500588845923657432125543236995173490932573430733467523533148614582693210596454255799591340596552126395043589643131993813839559760469338262441689624305365574002772279217130588619923051644401605086713178899879534492075967455721130418425790134773321205772786734890555079929061070540167747062786485107117307929845676056897319039865748055836591069945427051381622779454514532261652606535995665795061509815667261940673355054533977233910417237395824190213255684323760622788949667338820324839141115712002886968331044971651009992265579566385170060708464922422047726145122995572357487327936101472438189151728728253873505199818417954223440930094241810968102924249127688942768945743714986869259182582297130390751951101194257083024194462757281384966624190469540140770897800786437041455571601635876219656093657562803605672452651844668829824052265871471794001431603168073129326154441832066381344116812776219274993148641559335992465352489557515889964960557499456323453218273156410616228879959956436089252605600938671474370043265106210316690335038651231771439671967691857589603188987137845878281211881296515014950388495425738982811223279439010844255426198050290305146925633074092962714805218755185292960540571400499621290382524948275714289558118215563961629482727773145174689016094814265059463787695608366298037375787412061056745300699971364415397144173117124376051136145970801835087620409640832856383288419045961167704235507901523924868932822787498709260336749344560573110814972717134289888686424513333476180994157607748580709353201983265796992061732415391113815020246751228335405437510469454847228631005061089492307608711895795038129300190488324322467832698278480489513426901354491789222500434035701783275262103552451685230138854981424648918461604926695108374119699731350537516426822997011176608460857077799845272277406954563002081247186928060354135807051515228017888571874244614636074851711547827317668294021914995434062306110656111835610788784732699538338588488951680651728099483945604954141089389642021183274856163743948516373229856163768158333075784825894424158699975771920541276406730797649609231525248389988374682247146403435196906328039012987731507457926637755590750194739985840889335495332478849981006388482454608779920204434659429925257281307644989218292725179919754312002292174170707603925501770794549101615414776761259408464993014072117430078196330617640981733035375294160080027206206133124131260327162716793105615972967057427991934832018705595257021500355986938250515333288138517732332366658292948605435542041006433198353392518360546042913722445884837526047320970211709057317567867839095630939866213641570007819365567385742032781330504202868057180953741955721753705582590103611577256603376101845273404206134034408382889232456095825948497583801557344775340012707022469515681265742420408265892863340693824276915600903468423032998877365003229721580854015917338041903410390375166099405644678250985691359066659738640784575848469965499076329466155487494724959383297263258865331132876789835317112402497182303442255256383494404600384243489220445356534780943837796196350630455622573647992562521689730385157025571306671732949077400424465024928881346466789886226217684765318695671389617131896179377547056907724314657145391200719786577719541819080898069460158527980337214430239013189273789620137766011609397548145923850016307824157131724285334125602701320313424157047885549394246886084695043046201104765343895497220767912075526953775483965899870295510253619810469381293281328780516012028599834595234548697840320991173507315328415331688397428818030656044687378623756491781835652351778113788630032703683703555822499691680793112598758218738544951539078458833702363666492396373355740566928593525076686313929947265914525558199658337534804805951052803890719983824621169870724274102748867904291305806239269512644008228159696689844590821690661681077630495071329598250907510276296978576028583203768854101732241272497048142096059216091673005573105947374302427915729721307259785031749555575773205991253715719021699471812759280520257151583023499213544450715457061906189969385159427052102687716590483571568384275652760161780504140879256458248919464133929593599638954182507686481814664508367653137978960678310069326045050789133429810457966804066556925668609598713324791669738821925016440729558024547667081964749467198378437155157308332161806445047190349771845601904615409547642530312341151984687994491929915350615484737997289174566372655181814959482461082131184396536188882741679542420581763901836836788563972422807319200807495288360043734376379449188315024918585877390157684419023896544255769920761216684748688778089288017431564108654663308158133993446074044376173088555563961637367092502466956108044746190392428390284199840492836021726580737483113606079188462926457101921871672231579023757979652854697777194796382138646545855500892105789726239537797426144523312652506189346442898638761258635969197388377349511258924990407047541362269873561624363202354118386971065042571662296632658263526465640775180694351974037740393403946740793870678065638379615338730773744643292436922805862028009034807968842052486746108061976315255812784941119620529308338037121302055270346766338674251327304995218320938919636389478055808857019617980877169967326972544737559878770437675304177786792065129009681553218810157878642168006010199698132231177464667134250676589513722007358656002438522324777053979938829444583315066274373834911303078082480942843551501996402886025616539360228165297236580117634011828342873661721059819207202210172229440345199179883279303860762152943751817516892189831416927439811279481182630285172333352524863544997664434103280406633757908653965655809794462997376585724689213226389824648252242946560679070960117578273289092066061509670442818569621495223319904545273068797032436761224164803812128816851592580488857154744348244117234724198127325845277799425266972108441449199399364074555693854501827822133809044826178592475919096143053898415420037735482264901265233042722397333634090905319724348531728891715646364768745139146551282295512820384087321526999094359637222029298318419633182599743143978224708679451551448496566582693580093082975579102693660132052268942271816997493233161164084325305449246600872516270010447202330022836810993429765971382366321022697336149246131227444414722462968078321162337471298781643717890283770857403230891209937180964120270612502450265807268039664624740431035515600926777944148673184178571361054900514106530678895663150610791497915293283837768862443428242117655112985557582448394318974481129093368460031014465324667722694295621133775762244356460729056555971780548550698288001865864001286233177808096120442638228509803556863598396995593202266163289531810655841580264127192283703290069046122126922459638433296603271784107640111882537656576840834900684264447835464405832534421170790410113539106952274744939134258939004170482581733484937243001045607470158897259349325510666035608267709687625641191236188470170084339560487982250258414119330860489770641889738530822588191784902849275846455155302814132174789951251127775609311991463199785287723778580432666809986349350924637035543901144059337621658542336017851197285856467136569087149930491777823537009487562829418181247189689574677034975264088155568080135066323874733214807827748771963979104669739813110586804831582425865370264036037339437705828922263511993156202154737626493122540654453365380138355859581375651926035938946564880195764439789516387911355920049206783655860810831804449260817277741295479774443007076848277938956858151181730621938357814154845644830663791566896179513565258413311031001548744084016532075188335102176817361468159572626740714932626782029094232893350745302239041227329601867299203802614078614874437381199166374750208581313512586436388349874724900164482786392627918992918726634027452743808873442709416801168909915969270251730566428035904026293720949079264847769512760549361711026309000915041842473477179117723426886192860113773562141533369843359476934860696562418839421629241227482373472832759129924994652074080597815141869862119239284486677895056027534569570826963592830201938073454350762644534173501514147994879274227435221359213835842760638103944219352485133306470602770072897601424964745207172065890636791986674259224464819290118686273625423713118551977727980598398739340138030716195026118018588866081662551286429747571036832153766655511594937143416043945628691418816891897835533238628519185626589067050900491777861462949855832204524878615652631515124608153409738323602192870152588902374916074651691230422000016099832814512692384571286344674938633223669670517620415615254536783922959159492960173076265244439223375944899529734229786004708964584315352717917146253708243272803096900123346782132626858397353013601563502325249967962827976523305121483178298429235322548169852935629962845278105106943234275219376555401529854439915109987568247383317042272911217219279739082512063562281395349965926584814505791943833612111585393332287945305049893916066786934059074946708649039453572307730924135642391925189109191286198265587257249618160475661685952309921753074929739975908170713051841026657832464100032633500198152137552462220064473772978404605598834729893698066256242368783991015763401404973080271897376324277398875976124142385546204310054536045686449475257496793111243908918658370261150355534509192998867514889239897675497763966976336139055491972770764558514035858755303501084115564892201320313456576146559161912502503762204027972785943732643151603777763052504024222402086196367460186622045610118483434524282251033544538608483676446810767580295624663628254491349889442444809940186031228214783592869953349398865421449780262354685359852200987554626708763033276851888693107617613366101664648379082832470832222965033966418586637587620108336213479950846431748249888126169476588820444640884531526685332055885898997769029610216917641161400385333751426444537554605429822907866194550823680668342906243318203989227767580683641854452680148475562199738609586373574375905311306193657899975345584664742210698587327757204400567431997663789733673764131768446617127431628932078189473791954313296401621738876780586622544880938973826258096021489956316543599077415114021277404119361173428959306734251063132488036996122616816920275684164949939409252342545876088903690862364497872697556645799751604062763836550174352847651319660276517844162013771475971927372844820882733803342156270914368148949851863532551157269111909072204201599731037314007692249706311065659361716912008693503164594211296146149954742410862083540260971285419685589783345227518689808068619328011021627113303917937205860679314569950927247296757740719656511661847032454037023540399563573201969442993070093707080343264401734426061861095183386180213997265357306350743714108942155748273870081329037987297929167458017050298717408895002465493385726329335484395318228780926450439077446274791028692081780445767169911013375318888759635948027030156250039677763552358457802944913327162768754944358200044932540662055505587199699002430262730129610591946897415230276696504499048243023351523204448352074461863006990144176516371063527388237019173874782708026879698827017939332902681107783173616570314220608002596850033881019204173834049027964486235836695950300591927638818194449795181922149679227327240723865910462439682367041900340962235636613505178391705986771515308425839448639668551686866863716314509611255853849464453541432863728973917124164367092324550117938236717843774487161583502372136368956583337148784797719942374293982035636527661627976482592804705488685433920183872910103490017996947691075800927012383941476516173011077625440639791944390507176141756251151036950933628545963497634744846074944974658380965727575238020257755877366116296853121874837440864816258943073255522168888636005953220797687173588392297289481822945432464524900791960212678994733416441211061410239393913567168564162200786486806385007805272973559586258966481546638036228866014203492030473458529273452268210238473162757398967935951745043851758320216356988283902875695597179997014854148966333505321574424651709825355627876561941536661928693225712207778518540362403004658829671736348876464580909826131249815560174700714057045600691793572942879815570452086077433401983724430701056731424085328059522422967610133840410769899674437839054315231141988027339012212801826352717349482294032800908055124436913237368754720364646182201229345501986015170573943397195924526318639881171421580445937250285459352836673649353200296355606005359383350127650747471750463170582765783495678129242708172082439980184592861718714869159375055258802347324195047136351128561204093972761765441931788776907846088071931774602149012513514411728383355517395445380629809268860795033179677495981689652614285835321278674814088393959089148745839781049445765334723608441882033732941692486771703279037846059385931114708937671987220158130560348736639526815336989150787369566547571692181217544965242311557546141144983804793682683226854241381297611879483466187195791988379942883606554210729211762337079638803815623479592022242160578531727334032831985901963146024449132819485512151599356216359392065664351393075370160421246064828693575371667195196741206797226247527934483931525252921481244251779059340129883991757703319580976829332336721019917983111361185002195961609682339925901391906448841100557366922923648378618299137974177905327454111837862887710870697222000174747328144309634843484103005670176389103989748659302639897563084370864632256095428362553250902668447653729883293537674370272328789948495965042578702952580810068771915125000060949888658236650797437372764400539655322857195385784377807091864045228921348542609424293617884603608402867980608751958368272353489073708436107618073082217569046048383449483755236189476335481244770258034210468390280548052191377159881286634111514863825142228444331865071603824556853556037645700231296709242466501937224318794779752643013068869250917817504894650447951836871086131616346294897746350937656040044281425554615954964104325893574319693137420930892366862749025369486770217120997804762460833437539473971266085703860014102154514272926193589772840744907034892331115828502146396014227219755418472162983572428389635387500469706707662906784024466522719897379917560016824342354668174068339310775411051952357261982971196808142601415770998684772955005988304601619607269294969558958881513586647465616047013385709066739764168589266718171432000247824745557767500438100713480012296713555025017963585457632788714392160913155779607525204597082133894594800119908227080390916615932770454953486905174054891861453757170859256949348950783318485204665742332942540923309158662686709195908043118424718136530960786979774557992589373764788706814563569400317873271186909939728775455899343941421562298058419003757788976020621941422215797340690033844116788155227357016952801090745052170797690517322176511982605352273212786441257420946656942616709172735009125684985193393455734208649200671581974899342360473319591002032278415487034325410357262410824992211116858656538185359240466862078709956039717926293064870239366307087015318419869668021380809315244645263413920664405986986398516430070963162310434275925851856328400157686840430134368209131859230015152493215327378630691344196054062546189280049732807488698473903282625096942839491312380653556184150647088588496439155357430071923964286418462929355412684860872840597577840608926829075957648540195684970382124853078384012548431831665496253132136052855681382835183757410156995552890696748648110005801864672411728658235792892240899466109558540057258220635330576703971312307530355148041370744122050656551674125752030859877577288167961601197852244761743382527210667779837228374619471494474098884366150912208398330749716247971941860724773754763303102302486881816765521447596112138796062152129179442214789223233578886110016318520558572816769803486628461762686433917398384064611979941739995704091549439026264215854278140895254340199392292231437632532882792197466516789538070058334663666564810583816936468005886231451007738365183176372857127927808965648299726462105076376252752441173240107351202037608815267524367101779331973018596847197417037625335490274252540645142312561550926068428972943385955030877282680137856660383789065981213312583020398098621307707700353940637987892381392393660867107593338014704923468769873250759386290680700228656226912628430280747473783715843635916256204936513822467658889367541597954272175415143333884188684596751049591658970996784435248822186797817044109640125013151347934308076799412820311186893996645977276127208092498219057594235211814562803647852654102613766150027791669749893638254580417384971413594807152639728180819155356519621938365245899503315252555519741044378310334421199418321120966314530791792216109366818523167441800191767844463179940406915004728671233863370741382631005987697674054144043135840467354398238166145523068486984029465673483629165707490996056282002409864558199187779289810847058342844548270399634787630498917930695652403958354749576232060124390318937977918523425798401386132527123281997799723359702460440168607155891722226805467391004300158991791918595624231470716077301105561192306222428600493685831125166144665696278812837451266451861207373776145900629389710342113691017420250549921214053855065731327585446732286379902697480747951926981718057188682492167781150218408093537895990213820980016091691740946343763107986808200267032525693690760453723594314609313863519423992640505680349984540017764069277174210600248677499582282104892324170089187670448547174677120648899813529304003871759691255448882502188800430178476506692724555315560239301653387642410577969160781526490323914776769866403870086287032000905527651574823791538012045417339010686387186810199100848119050759825983111732513432747734820632788451858687983566262891744652775197684693253106984418853898140412865971658960624692091252990676896553832676696628712183378804556186904681198865990849242914434643572615548813323235919183652739045475268310636061492418547207087586207251681907818253175324657763697123307812589488561522843678756770304108824297814362989311012293608778525006603632545152777204735466866639421716199475011062555467692153297308627594779178928917546108424699488621027154676643195584971041069190718253785135808593934972226902109424692830977493846536881807238821517050107174557690289243124918878397258578726851170906341713678075969180122878108046817344491814256730121850257133465693493467479267336528498082365820798603607925367966224991965011489214155005019532092060513918731320347756576742845725454931992629468283033088456576989838341959454284866537376040867040501590128072524115302310534308389338496310285900728083273160721160813311985621764451760690276108523684948020000302539504810673881047137132530301023425646042447333536661234690597631042391270537050699220656540765793169487041599829320800531679140865826295532977405558165560754865976811944709091535612131388209884923021479795604521982953770424441661366201478195514564531119940138680907984306807449215715167616790768999071919680431870078744299573506057634986116044571241104479190365823827908305879840471358377993607448357683839625951368331703204477399620634957941385913675510266141676156057125124951407219000021245983592810902461668245636701755226589268383380922632139460354266105778512828065508826422980908154046091377958765945637523950940978004756927692330531812513339594958801081699301800977019909937655732124623131496644838620024485641280901843868220168005836493223666035750708479777008390917515899257714255018557967630574668573558013423802043169012707803515775477459960906280307656382430110610070820317757235778472281571281777099640716209203121465818188496640070086733659542544301181535377153147818226529057166915406629245270573465800598716052820234403732178387525915541878397834145373190267234642580984374555121598937688682698494339968684884008552093390569642237293314939663158629485431353581905407437379978041791498366980202909510445952156031702938948298559883246956902367207848492143422218362214651804612594139675046894693674671424689867216124063191877578824891207845157133544125566657847451982755478808548549505351579044619331881524356991012355658411714084894460644955584318073608571288830293857859125620192890081267177528525685759484848355261125174165695858900482418035727888418493583142699109937919747272971908896619444860811494853040839447805765574828916340771711921592751546124158331778186523846637802936009070219510037286869646552634387277936327027726656182811703129853729987859422010659435726736095628911031814274492956704251379368895538613021580420506257377701802230702155804672237974694681182767862455393324404754714034511953907288177288888334794788554773009426109169338585542172937017266805493223717196295347053267447401285849383841674942083795314189584190531227698784575912812780509704125539278948027565885756102854507960709597491212571533133455198674308131016071708051017896575250352298172635477170557507549405612616870816364860975973777334630030931908273388287605961163143689892947257817031967034452405113702618314412145604739267689184137221224947785768208661652149148521967995980237769158989634066148376308409007222361052257271471362184538486444605337485706774419180579516190164558020113364539277706854688733125118297351207877056961114767623048347917123963099429906600248817910274762049766600688434377641499312836614006974400924966138863763947949473953808399293195955556459704353948110198000437479979506578165179920500363140342388589484418769283085413148135018992945737979547994269124163705752724670661692715507952142196729293535587810951523626398479471737959191148308659826695462892609472208440236942956507348529396482897846309977190797962408698178664580334497583820968682136538326839536977193689654030536409716636695143355895747076635876306782317463198163697002048659550025713272706103826032964986757541039527148132228726809995891049472660973800881282780478611898164551127723524963413857892919598270392187633737860433072213759712965414063473471549098650390647891897879162028626208961454628536804052022413491879124538218609319120568211497213675573734980112518017405736249559193749970310591109681900682243605637969116204814079081371189699639219966802932719615286509011905588251209985656876311682927699767898328952134122654055330062493842490542533638870715883678039123912540874511609779741206386648087762411892714768382469843580718581159838844182028790030404793513592310420059132700694042351965039386424262875235986089084656620508442777922450280864293933088872144296229398377511468768851293368633400932836955320252391339894679303875707376829250092706938942208248584493162507196692884215128796591402306859701272118388544515828602911908808351202324362787128292813243001295933217955642657304939723723745521852844753385402299786499725535128822344426823895785915297702636892957341520176586675384624618320420972103293781305035701839848035217149763927735040158956402213233502918763073671298204240131637986865843900254625115397521175455750125180482122341483347676850888697737506171332153057131217384499144531997008295834066368923937416570230362366325323116810173160213303143754017928071474254415290568758596325133833247386477824352798042194988093926179418125047221102908705430763510208660643660262129458411356927244467871571109647287815973258683522623092269474872388834369815062636657962329497803536688768988896840193368274697592434423325793593014661495813497561318196268085131937457770223362563760874470612132625526773532409547921505875066888182652228354805487561722752143721848642527904813056326527235834755907090460720691302917767965916876709873764908500831701422738867097362917849153570127568353587523721625214227997515237826156782375141233032318437719268288113206232269150239821059506711308037759299266257734386723815412345006972443888881357138153875223711476578892124855165939423211356486116897762096124864376511789389223912407952899578485356162116609966739154819643189967995625092045639229462177520054048315981773047125982648494595036192948781213590143845218341175947258409481221433412001952539480023500768984533852858651708562192888949680967062678203438876873454814396405138475831271133811152268394381900677784893794164232209360056645435924326577808530829297990642854610766671032387040379693209186287533140993918184132291254348755859972589657778416110722582104408231329124715564443175794724267134434282167580093642851598284833912719659648064352241434623301820084706492347130949936734655049848830782794082831570321898825423099692978378982757330446218912727861652555948294811506998070519202545962312708957138870386880851724075286109893875005409378815272556616370613615865550050976254011021928218768604099861904237436295358210938913167185003629310935987899259518425681698849518633285169462380788684821918086993474363518706605143185863178401474098957258922607320475876051347091892362919503229055080418444952851900785919390672895491658804195868657906422648370187690301139580236430564108625885955393234616867756748098363819590313826994248479543416223978777295602291775947130619708974482713368471373500336327026314340691081713126516696011346724436188704309571600562030349904391329530438436021842216077144856659976657166216970734761138410518036077185991224076261090183160057077800779470774868177890538517260554139852593380368983272631399009015139213500289439105602322675841543839464008811151175840565610320118252017142195793316772617464085856202288453352271788396948922093430918941998133467912873811483964222645680218553083739889324602074501068140885950411923152178580685656374565869320162392163733902294682310120679451738726826567822891172520408211724226273762089637269290144922764376791927852561140237418027172155307004145548413758530658176904679781399570805473665359199297973177364372056517087020172483235716440043627570584896813668511449878067220188409624914526145607140614902812844503563945360451228483304988808187623934516505959199555769916575001124500311489132005773544796751623687433315413170357960224125488446733939617656801882673346018624470146246404153671680204879001351748252671705613765773457728501412058452371851719955195442999674196788333629155748383355665770678895604988788185530991629445308848957349484563383566450581327935573919772566564933466379034060532786232774997827808725233392459925409268843864062373773564638928410743707353785660147514706599639678257739779935594132983513737739088056274953613471638399824886622751392554331552601149026575939291476834826908343744987728028945155307288373117759272381205799483660297509539498697239914226886693052418370966262212666152093183745344263889025053221836348518699748256058416936639922422306736273230589287510197799630233700424447243626611126774364498344685527494293233623854214035620995670787133848347398597049214790072167494698600920800270537059123379653310611342020257064914565532796834788301916581165105020854460944148103842119598095222222343233385911973735419004687047623698070770172125462058757024950591745958761065336197925775268493560540431997038650702895074646801565785050858973118139648445722251975199885960195704701108669871668518647930596669856716877635319821394971211704978680184425915289122149754536991779421407116968447389806163809152297995543284131248146660279703295428473811709804108960174870987273593384908142201611820900658389697308579042670518957092342106485733253949050435579848735828251228532757429405328365943603989390096865665744484926629024900800058254637739360816955633107710472517272336005005988974163433701764328945588999071526625871781712185180719474718651248451420228327456735516191284175334699813877869885468000869098822938138517877369799570756226892965638259396513944624223293122914760660679433788329506593815858195751793160023175900608849609582921985537526062945333544091981202993694385043979015451416341763159065543639247769206813337082610873033256409100011640526505875881022829046428336291888836139892507620810609586355300492902355860333716093432427788467898994569033536378594334305654988436725401636541329075196263056149742276760043655595526561939585822198059114305933597188755905515099791605045378354161209179039738626923891632877582402019857437371380106488048138257034644690035712178465838397159621378945678390275257994809649689464929105239504218355375718890281623564608283067560691197679137802108295698305052221031243128974357160850714115020466063216111816852185509174941438659462310944247430381601599775745703646793023172963813341824612040884499671460897660878803035553786021703321082665656478057390257039824140728659677159508942647559483833099159089754978245645483926957986043928403734720509751380672167787102568013288105188098740304741489886330668137546495642122828841233346921522470809210721744786301277266057407252120740443708604520976226868801828266762909296848833291655996757078737681264878841079442486461934453833703935321369829092786581650972618480479985673174467654833670176191114510153807907242308910422455735947510375855509833708149923149951397181607290405708730879995493523496123891720799526218684911024538505637965445281126780892928166893685742262460704458667671749238745793403385150801789670186874725071305044271254879700987453059058505945089836404388949937087790504661298267303044322785166768496555228345215268213889942508954209341015227402719894695658963496067339235953493179815595950474016375237399492315484987527468608986341907196602476379609784700288869529351254253914359462959775629434254943766259082547964707047639335705002663774754017567486474632807728665064277196641734442856737853072145824283454203837170491274145760279916920336093936917541728321377354348859171027586749248190316329056407397880817140668353753193937978731387028979933936172311071345968831514679512498222732446943122238136040819989227655418920808305308608142731461315305480774325084347228080989541389738550010236018736345368700235505991158231373191183885060796755646025785493096972389703440644028449886307429835516152926913201756782471487753886955583045897057254304592172493843546394738164903519349565309843087118856904806718325487949934469984578150584426956807238729217208237884215519377229795109768460589463839197150492719003635053511789837686816670655619709895878325319216043247082302768271703070606296182526289401185565039762718918182272107891335877144871069271759752294489384056498346435399875265658375592467779353864836402679414964110227891847708236114570867966713978753336689927066867863253601851791889086467441020567570713157706728028104868859026551606204400550304209254238527285414508717591025376665202094352393295597745843994550269452662149384344127113367667246146647990945289446739564948667074187064075287168959680903657887588388251000983287881270995725755975136351386801536659732264062803121654894891910376560479511534420659793700177634302586559337597088644695087179872277901060339601631849310437026022688807955210985728380660656039081871406235794788695083398257458728597754610289833836259918481569437822109208213446928320296801703007596974292557534637955263928557683441474713444380499397570724936289235915282380165304929691490708780535050188266265308987091354095011197912922327087831365532156703338075461489213230710870169301784577967293383758993045263347173618256475993839493311227801364018149415809085486621599977462285500813486772860440081489573986700101579772544287454704091446152914820869698036930769661722893644363544505922350639961361088454969186426968554213583731651169131173998558031857595561225267956818306410873193663666248812280787100870142937980740824737093115367153749444774541011805134968974618299061838744635746110505374012901264498679150569862327790197292635616024673140142304091057442565632548900953463268364127923707208439503784819813609913397372398494315921562517130920989115657021700169978626390975183109846068972488099034550636092644491894059454691255079706972382621309446681264617321913026008502280725029631771207651496632492747784015956522209348065505460112579600585529258659631787882352898304926940813122085119840309511945098670313243254571741896538608269712401713014774372449167536854632682069761674590782618171502579056752642269537869226792951613679458651695034815957521823925404415702621549219103614707586403320871593048353120727995011199458263685420035707880728333874532470963776415753640657618658241649359079889549009698138851821300030612448821992650672123822903056026470710007987179944255865666848749823380795845918475225718200111779083864567290930757011748631911727052174626993098067282741706731525039028482257260917940595503339400125306132750678371372744543834808264221723699756189444324207356794667619244401826685338576990086353916245596844055255534338940891542839928651738239819420279811575132556265448811714132079045534508002461384626066660284587198240493862864369517051151933953519009641425021154270608239967499266761197158443564140760433684229399196574891584651569174525852192271477633301539929510493152327354474110099696224209320676727673329399636960056955256458041787783248913076181596845223061968209625043725841104129035754352666213606801104125774682223058620621983396487021108807841428493511355382435464976717715828124442130709055046568697424404659393319500686942415815772419644241379885919746485431055745618302361797480204498137858969878202124782221272275662656900447647056266818015208913059879047551453198741744573121719323014211393821309312460863234470336679727714522020312845685205204927075293267187864321736117976908579856443897583417748657191792033516072952780900746302964227069144047625830321538409962082212672030968320122644703339574734204467804858779565894881241167004628066670589101466129772129406460936800733216498290400820328982877124970569800156375915355169626238267465636374507669406804894551596545144845772307291666153480363879117012004939707095561120772218162759910857081162090106133660039653356655310268382741648860739401523992404861072393502452450322854711692509143712656302014695695936891054591534135255247311421152871225811286685908202123851020851416514018362557419931025038761220293791253543150670495792415679097496835658670501856190577391391762699720313593866927729735959317617655834917207939006212998041468945530225524620395860380656269746215361403398648924220153471904289594229797946634228842280649373240279404174866258866732980467642066903007467780218680519133193252785835048739846524496025561305362336726382669485540003163413261919803646272533883978561310591047979140624744588854362132447298133668403493538000005407155008037463123772651379563074012832055605381315895270247353897405154470489110988816096250073186120715119265220440381044115996259873915571894156089075887153667334514778724571651684761881945505055728822996991301563778891421791166641578045156004315216203787154170062133730997566488770254887218996103449206577397173804381495437205123750002353746306605935187974330297832447999362508254645544086577836917782604984207825092156039503064349625780659999267222380626980760092545335036938715543675747313535551300584844278173394046855388918126728650959070304900653149202673077910409869394010292963445655518968240345119663156840950736320264680770779116780305727707643513236446268426960662286882232240925490080693815107556495925896180769089486545394186532499167077973836995169109893798043889930271239779731475548314191536491481028088915474251322393569799522205575925739144003964613373492724925858723380267975631591693483169103654750166532111033250220280379693695608064249682592678250981478199574516032703728493086209015539805368173217150975909350795254720567680372654760932632731106225375125327105396592663260364022787080862457752422595026083687356091503672636862610840277553991557181927337077087974510496835710281400744081897991452319468622993731120278945680963172490831262199931359752570998924177243028417393245482331744430515161791069053224414244929138511719450960180890523714697769749864527520273708289527168445804387214487040342056565290839814581540775558873739148450855082313144716995950086538359548248144764921602677533177267020180245810449878313285138438406690526517745516880847777794027075734677283252307619440135204511250061425023148386770995029553343656453544589031002834517438839516571993527868799519375308098127300419687534257682698838463815273777858916824722532436766346409554740207024050917535344461634909745096641865123004761365278420634165445932635745682238642448496918811956072762591541039143774765824090280360354700185644771465651725563199455800096702707393045491244527616160161973136729588167651443345337957271057493626468023499425821933075129791377325686777986980694694505629284059705930356925549533702832896321204290295597698753355685480525358645331439956082292699664383513450591209848629837397067702964464806649381175221461879558283338587668722945403245174477950460221709780284170333905773055951200612510316210754926961695343098537189158728751621322138974202282650717998090565316976334432010043633897758854905507338662504287264258452663220199873299249449028549553742458654809406304754979322106152240645888397359493940962004658703664715398440042977583937193646905229790702707733257349143087955025119165860561433238408891178612596789221306129317677914546343259144311575986862376960526997453083293348335572951981501056148224180470953339948515223637238228249720021186719059818151501852394535663133493054808585640895574315105091472631358812320172376719050591357023598929031931923325928985946492146857674029657814588706975170062205880749342355130969420858056371592576213741558593988528170396528651844716893621689733576322643827089700370851396973256059090650744333385965644792297201381316194784645156176100782632800146098879763256775502946038987468536453308436921635010617197919829202583332167926597236733199478222531137820224781425629569673630826241467911233543694274857216601034933479004529072890316601984344712325661938867139250799222822560266299505121174704506453848218125818703069903234162267011577414372247629372107870033795952249570231755266968984876636295143695321454926352664484463936888967954865045416377697830699578347565414341559615746562231749526212510596070483424613297730681097889052807920203571241510528074170298409488408200409738709121655467315558352244974763726688278227762149316281759953063937051699513861240836189322620608672826260048823462109044218062827785353017540899742008879816764932738760119611005397103853897605310634273749470050663742903132999657307391885085656061672866252997298628953885295509791702206846400979349888343068659904900705250351365151325444365703657161052927207728086440097813090139935121959810975044791948751886954559772264657817670921816865184039003975312368188623421697281898957442146653280213062701142926191342997966030690806189041288693340161387144447181265780148769266230236353608788031934177979989570154971333486433690883816804112409842834993910148629000921471107596082289243503793969154310279459861873147864030543770933844593953159341034169222603727881209427518630407032548607912965109076479243659159276689246377936488183310906236540409672192820243417549299799267571511740188591875688406543166462174296077716645255426621678682165317244649787667315548911641528908472227146329304800482600095214910999379577097006277894464143374415355425216618966609625962220786539171824562245668047753724255131149559755675634824308310860843353087013328945012968545476726887379599281778427972651902570192584734543451266547180773937521801494721044545204480317339937562791633393335968661479150635859501274882863151307361352473190217293297573279546228481828069419945411823504765976356673695234535979244358201583714238555104876724917451849378734784117275670284474095843451853581662551935628753515470420846489243035479055353359353035059890787198925172048203943377597249561902117448320064118934784782460148515898152026755544802335919987041886608783214432460640421683965812047033921214607151639372432252679954724939829271954272862764774890821656776339194512931183002560962006523408617122099863568895419418664395753790498381625862227534078127590739411315015110429029260664719920689271479141158267377517966821600225729275572174327596937053895622011336599187917098214158174956760635187496515893085818871822232104489877962200482647877615791174778631784679353932329050351002672302857615822127557191557344853593729816410834183180341449129887324591353846523499545286551801312213060763349150260862366114543327735566070486882252054352948966352338283332952701388768745595222246175189020832156690982395907626663202874492941241226744722574297512729292686217249305545623989629878407941901634406662909796919781883871655664021030700148982421486309987333672050628367372601643056143837614884031326145744784140493741646593950884958966010080746815957860222444516432919582315179775817311992345455082033932703377412288427586416346663067520073243766600426911442178367008254938308920006224124914615657862809742604958424936657767515427971526948464573327061483961849378360667272175890161557316016593920350373029379909264764994801954884193653034694245901879064836635777793422409348041659077104182577273811965741252697610192387273322329129180142598866534456821413977546524355256195415523732450529066756784714034281477375427414597853791620962727501099236377699572334295295790201471447050400778422311997005227886093507248798299443460335497552969233920165157114290657995198069931942489754219040369742796762964665878652676524015860259820174207499647819349576557706813330189341070068066901820804214929348469758817724756689230119172542138689745919390679930153508679629202237459204561194398730767153996138894102345232167950898723493962173952293899491786463169152021584566636306504762514444011175469643944434134701765199949823297581628559231150233174929430495571006248764499193848360007377238115417348739020200600965658348200360840896949381056853958374986762418816438165928529865540685289043781367417048291759146460640328582822422479671284916251596663061281926213528304771319439669283800909474045138976314637441259729637800435659439150168871750284637728108195638508162898798409387474638579319474704357929007689477517706897909114157806027479005173477768460142367275793105158267041215162461065123302893304813736768445120734950193014992105415816566857848958634351485026324162556670651287308055167588572687112312229372314910098045920916923385651189441418401435042595514285813194366754309005205001954849055550875221610779124530223770245483833796366354402593345825758925879987589542637698515163656573601611163812395210928136758329893802887573076756423224461776331193282786651555334371712715504797134258143993291907976014573099949193618377175100000797713263168752274613602016791863067612540091100737415210843292894528512027179947000058781335781329363859692402902362454385123768947642536945808204493032572935199409029114144129861823196525244922898916381301575404457774681114394252296472528064025644405562736442502730465875701456270729236446390150867928432070364315924488636829855304415083032709659839159669849490460082556427676980772876246435250310303549630237889347704727775382167333555166194531402329142074309211590869483163663344384907220538751243809615828274721832230878886122520717687431591821076339143665499402230160687492400284723859529615113104244833390375232153226409775204776950398513453379291729616756020822367023504762715232353236750572718212265663147331542889525905465035429538639338573102393982729304647988717712496517573424762889594828932042774186314225316037384035460906091561573082181211291227408449793414247626182888897242405931437466430096110655525919490043475836564357024363586282608968181413988927174162215849371409182490751787553116422197527985641140444251571153050936827897426528203174719851558061814462796519214771221947590491367032288909409417381656955943679082984821808423914381981360999059537328543203577023040707477862009534301420019258006430629057997786008707893237636050364266245303498559255381566672756960792968050926952524363609714497764621390399039232775789827328583983564681991406128808859410198905617151112021897998810681202228491178073239390572428281858633237012500811716468749935296866754849758791131753344148264873989037604255964380186678037447555818205180097153861982865834798115103197356039384526197321972314165605053264142103119011113568129933570190010046403340604030141317222626711139115140089316086310661938796241215858962357368220894170808094674257883135844225348190924175834162741392444062808636968539949599168198861635696540879511330469885248749008244729882840070448053871776958264670119138699266431211244230024503042816767072696818649045120158264093465558734571683541897744989040269726808888201354174348293343190722301456003293318838378300604326640280087147204674777306348160431660766484190152505828589754438784402537495100523276318390798331656795324786718277839783861499417159812834801776509439515193981165119460558236674938284644994163664928908257549563383630373773173497473718360650796941999206759162868228149901193871004092758742390598442672405812439328744515450391578388746667540609123074849986472498828212412673440876272327899037949623226784471244888939784753065131348475379561272703483318375007116085796340386246165244610283244874728257722139613888008994341009318835286710294216112885481578824236188381198029961927251978709952832146223830577721603247610881427179895115616499338354890537250106215693834774967518812781695213457800487403065465353690004252999356788171858845166950360042171837642393645685327658360956581005584270510766632173106910477268263365228576917532373242031935515010197636952691830043290883470555473457503676626728043397174571801545057114458722063618718384452376042708341196207579102330508269349195359848428764717356633424374017673384529383345124653722143171098794665505830077012934487750076070690466408046936842070921138652334671789602701871637291368599212010750067382804970368274357130846777180282128075610342859146039589616082887111494535708259991830101084926956746465651580512545885403710094329350633193502606880872370409611537287879936897562480076309706987449209955577427011891434014018071030123169753369983765352098095675521712891375702210902993063870939234816741080717471789440596673974709917370198345627010349469691189444619946985908948215767714526807751261168272424187220255811635382650779641635187319889311671369086037326032576115066063006158820800116759643219474295565352804622758609078177034120256770233336712622986101236808795845676021217088992747750813190823625214380337875495492406442703877373495967046392835941497641573062246108896868859837101792423939280870426924014895919204352559567085388631659522166681803312130885972481382311819629961648514845648514167600355758216440078074696448642102295873291425235335851519493670044338220793525707708680596155977703469276914310945481528710249049015429080381870063053490816687399113784308261127199105383075132649156489382682860864281317899447575315099919408882225083335293104746027496752360702111552179754223690613323847026796898399101876280611547025131256706401050854366131626562341402371106299912309187542817020018626573512228216594511242991419951570583667756244248104427355878578097099649000172097976452683817588858142971504910040768338721158486895108598293454112705620432909431552773422574423803406267532365097599461940334602658539351748915118786111000735089303118062494016064329696040156066214012315202101595601625874812846601143565582727412071407228206830503905061930519443977318316456082289294384217032178178614934005233426812027174355647633959597744681395849745048476212178054449904880372619758832547668848784985736983711147576084518875588933576777369430976788423564968120118503024020591914131093822472241219827042500350651091775473524416318227318290527448547772519096599655856057349022040608102626510870574544824308762071980028986844153041133971546336327435797317710526625661312712272987455731871995987243474665407323744131272648737490013142802448480067652976081093151119707452879253730069877846257232845464686825356958767922151102290129484384008396041854267231255321911138023372386967086955341897114769193832980809434078307154032847686281428165052700368406322207690264868978026140479139396838130634303788104604359007014913810352143190911982091926009549876038329112106139165684889113121848431563643586706231071715936173118999530717258527019717022280702900438194947603532938878645932644627331702014522802359973464226403771377425964721671213226035360397626236703026968706881968837623268069406437083417964181407656962754705671535175681475536538070655247116527618082157429877599043034143020074539750626130346401230473720870128297564908389749045662901282823596626671632864046234148143065047172653732739095876940566699714274117924930633010789977097360603011835868256958264449056255806952702907983770131331178202904424199916131950301777840846449425734437326519927310404952863593226751296315286988646583026338009602155618926138370871652113903457717796358422987561193062811511501291874805456912907899618232200706977708745489374956347816599777464448510705535383782866245454609954758277190660534727719206704244674447114876664502777006959583212603844385794367880651983186841594123999310658517354377378445786661909535596016571163764777941582214682871852421205856362563051145942056306929092361689432526803034207239830149651745805062882383204902655229896211161553142085210425363512800948479459531613242067622900277245624677915110937717868638706255733002474226035946879498321516440536469023147536646496119797259572342639372597374532082559425159670023118468991847942117949434385666154572100301940897374911045596035416605034945840760537571246713600074893792138349250830434208900136542864009275580371333199661932129704285192428757261951741276774537572023876756708008567444988070663767439446499636301338988047139773279680176622482760471042284866282159437842634443697633887349566411220808044422643787253120777074710302891123393098292308926705431678949335686237800564712566414871551951761500540786254538334774810629519902950219262354507139426800187977371118576326066228128284256426176991076388222913835109910557506681073182403074181466760562197515568421334905245167980573937561116044837048287123392708171119149402733630540618420324213472345358173883439826937766444367309870036418825035432964313683244265517979372299104894076823246266831580313579189646482231978217704813006523112268062908076312007548673297508431442885350662763431732666019960524205232069777010187570758198684192246818082405849791949857852583398825342122632061867787898842096418725426950080970741188259126456356646926538739560812450334301308035679640429605948960916168394851004574463045059075717861942725196920900492506356546269622527442503349910845445739167390421699747762762849609741313710915566092815235471645115186577877957634303074135925115427981962716301313458879390968696082825554480304870349084610361132189721925499759320291647880190947211658401285126797238207551667439926780887225353369534770603928010432359722268046008081804910699796404441879002024157612928346913952548882465807079053134030455212321324557399632756502961424870405182787077859152799868079102144057607864297500388738924593416163909957071687074916682109456077253982262471847674084125248930121209909325085723325057985750757408957366292746499054781312291007749059456471518849624893982716680682375610550172872706989809840909009056826304316506839582794317908143699304143532057858497494167550092536397295513329486982524459038300607225654405623788952066104823156265450211291295476256879192403925210378429222991150571327020719276665239399672911325179131541188845189437668805381607653626649145955005268542288386104621034000721476874854229150552964186373095960400972960992435950656141257123933655475071366944105323871152591763921508273517015265918960812072410479487624913602315827848438356906739393134061639572759857365120162233118260638073914463464434190181991062595995622935697969445029826393663337351530141976762387881650017223321350021290520845861971270167115442600338148391363774479753740842896652592464571013897218678341039994841420810259033334487482697081815927028317518601316791638115406345869837562440411969409066595848307357795806825532251004605819549129392574032522402218273021469721040198914514693718060902795914990590984330579433222039561788114803622971048777634330637484029172313938995964755379374622920600913868275882465717918185700051835538884587293699264460974637445646753622432613875623066929786451003631652996031342055406757231961310904087037599307748329833194946057224171929838612099431504869514195588772157425958342899901359266398963028211407152117418415028039202090258173811693430577661920209985178154411987109171324235915721121480182851409113644129250076758158064941626289516331297414402935329579725973246471558727270922675751509812262512685110875141264140104122110038010217265784592568789380380476157313984706768972091403366400556159051282818417962692081797953918086785855230972968581241764122962462324856731379194659512589089830679821846068521374136784368157046832703950734037374145659381513887922104871675190439241776997700977458839756862273097394284660395665692665816491389958478181417651724249651234447119928215620174900318179977278062646862126031095847945215862540728480542402009568665234630071989993739359325573599258646494112489269476762778593657377583771885507368559281150313361932083410663567913350061153706719952297746273937171470787656066307194164673434941750490752621962501411742593619905707460333284705679544848114375271518668193121813216899027096703198288924990458371535332108582441911868416055788751340363706942607377211239022420174429350360860914987340713213793488692694246409791616286100539549414043906309025749509524359765137702104368371638931019379590733198426654568184590270186726549962164396739711243529323396765837717684424162121319417076409268706391747933501676433035394711212908385612179931034052848518445206818267087338084503436871140547103493503792113439446816812955028084963593992607733072849683591515304602902289786219292829372024737031788815313451860013554511660861904445139820720063065674119710039432096416069623690921765282105318090760065293823079174052183190495834104951090656551291515242638133395618289916977399714900398258595977133297836380287559924803645131415306984870991414035314006840542309662042985890138758769693110234829655389704247445746861174981250314529727513218570202220824224849691707617708317417603629445800710060660584232115198238741491954036918644026003854217598789347098469329765057896013851837490306607171037870578384174241415783092853060550490361885412912643228772098225182927499844121527356394298909349857763940243491337564902836374313180421232736687601042789820397334430305296345382970924296406366876292695031567141200832129099722129525924685204410802512950850022542557164475044727323961752247219195618334523090187770206319749375136978195864410066628216383211728185538970224493994805656420225491212297728410621089050020769559392137184379608608987175262121429192226327213394200013933792739076867779717423721578907658707773928803474302661218394213855442376404164887537844070531672847486908007440957827288538959537834243976623277244041652941631827651054161680064846435530349339286555199028149213495641912300406688312152570158162798911033990612827999444391278506996269166582850516090360576154094665061098219067616778799380973498733691666256516599907296258918935002220695340191646514200918312394566663175449443292508583001069107484001797793775133651917910534736391191713307028235446971251330843768178551604246379099057410194745584580651260005820462206515018735903045778328287555241341963197137504867327624486831699164125269139378819538132800673273701934738397777181760671428384247050124929411886139059052787489846870822938208106005807388592992741845572337570195222690139972033036085936076859268676443399460994605744288862504499888976236119383080094424572463970385518377694778060933411011051752316009206990653719972428443343867564631606540045274761413950345410296280405059971415323235526707303147898285286706690357989411035285061734201173937456787836479668840552547469818580403422386862469015717024398396035111893873420294120278698033762566539500364059333130650001765814109001800694384970426771525869364884151388415765053779807348713119898490116031925571765587707063801350785664737154311866242104186696811418398891249622275306322118283856299333657146870258610448674973332447936001949756315349028892201110805866863498227317308126094162013950521053046137329609446112873810427836513116868241443943327407715997044626055237627541360891769847665979556814074157969813524492230745178075061669319984910830416803149550367980968030047998919011508923414667998163204542460247750649562752067366922498791114005433136930557719626242665497946109793075085665559054347410814886830279938240513696159849215726107742626901301586647683775804258103993230285393128883598373322034093763201694459454948937468266219522880109394976648984444130232491139545314218751002779806573212884377886362666766890317140353815411887179395400047301404700302767505886839465001492742193862848989140247294438199314401324048546614890011678738879177790049920228671420798932551431982182544108057512447403049108792489628805394443916881964999556182302253845126767503458312602036973664052619629247850496783838889877519871766045239670487067393531743751037833960218333288400393236579310111993158996295645345747051186379055464022621926523974448813602789838414304734453946011388408177353766496902098079240836869454331038558146253153179577012758334411150592555724004007309997842200877367601735587064289360121727197733609566244038984060578788774112415646018340405904595767675555502304781642390305120118191800697259016069180680166207623384828374725995576694499565760572121840556127200250998928094668000358277454009351351911235327779206081418146807046859718345852779725711752944655922141439890781184776527580462122618279807147072539088428785804706429568451510939520491087416600813151689277972977263165306314065066005839382824149866320904199579101112808755452953325608999523670741075826998030245002769036264239260749167597718632039746292841228054515531980806818999837206789200691586271633684995085796764689147194291776600739596139599487390544371365309034824053759426156683956757163556222313833331747150812083833654283228265731587181773037730169330955227116722245160374635573620866092485456203890510387391763347613458732705214258963958379944407218541964899633014256931363953848410181157999739051974792334861223648236024152596242319333018936661882022065918652491163836710530826488567639620255974914008778736197582419463490050143512984558003500204274013898435978830766085164969271342202697081384044523651219965680544281133978778065657581552099390052627725669917343285181119635837957041582706043160347123113685962098772199810147754075122214385798848510218588022424172662102104056837445116967263806749787425734590921616964321657562662163959974819288942978036527118244567082397564463079926700913859706223748071545142474847803506421803301335608500011521378804692478227225098216490158661218666598920869472012427210649862452270702821818753565692237587454122927690335348643120382163098932499115849757797488743456042001250989698490980340405703904431055149585962652881373360700029997805663668638157183205432174710116097652115003226347334722712414499974614963342655973320536223587362371399943560643513882064096399501899400421146620200878752407678195462228935392584031808358317615161739838319333958099583220285873917542547098567496221035093309889015522114256561600351130119164078237501157535378217809298597017824332917748742934900332442688257891058132119110966686215307185116884677413507375710406525166641579772083150295575336457118254205189828681640973539625325408038442011705631414374243785817968219622845158343551965631587416598775119921600654453575368826221173974545836701587980570090108576313297953325205459146271284019998581846434791945517002248703780353504911364146019887473140190253890466153932365257597909325170669942493337890975045064405883983614098172189925964344056359925115805412632219246560856489092066858271351558184522677198717516658594071377216658229006363202338165308735813808588459501794190372703142596332916557110364376804396334590902074036938928495603849853444518554561164444898254778055326714416936397578891568959492083993894510927815789710205120505605970695738150373456720746967269082635145209309333943613172481086589646448359620216136990308592811823731645719724466914507127017154082947907569195806464321869965869701552290854108470524379951370542974872633780107854752163225393917521666022536129405307900201347620681355907166925227095319713227903965751025278355706494284617451499131887308233716479488566371573129370272631082132815448149455142916399032700881786301910915777684037790486109814660873091872400312101184638239667067715839479709070984834005405110971803483045767924075439840804024043922971745840288570404321840831079696754054677585028014359743550148841478157916141405545554641417417879516168977277411218159807286080396845931110419513565617260930560602112068429466495657879113452660677807409563432336865378719407881478451743727850622733658259859451614600320741630922388649507048418089629834637486146434231028316883350778608211361062971160246781879872152583752985977488922594518258616149385025201332774170549219625457577707025211320767808361734800043055440201754136244080056940157604141824461226534589038064463738480832675426472281778141040906942692735910569443025211398961089816478604826062666522559493271152546839114775543436752851544706210825263915132941198608108723084137032205222294596770718676959532704606130238524282095022201743863116642309348931234025584488241906891146277453710139218388944676506476744150433233809730209783579816530220479578924939489106081834659628129431737644849797123562607422510056330525896651329769026655691807073716196378906685961657215806374445066515699510106317764012631935644921362446840758904853644415834022312658184500901668184881291190835628012642866450492060139593658913352420022448605180635646477639693530208549879072363390505387420916100693144476325679162859901393621055682188726534188797217576686850159324819715468375832427262828609015874905422293946439416355579201987474941173934770748732626198438916782214847491883259770628214177071616764193805217171127984076401756721425331829639938393872758607338414466309467999393169205042189761331263269944765755352015557839696240442447496730744998053297763626351023957559826156528327803120047528843262694390440322078364516340754673086600757298511235220614561871835280741265653761639797958585713551605686574208215275323767019524574389601289160798922994995531074825024072021854056160624349363767343836706806565926828440389387657028036914062062670518436812628649029746503139562523350417453871616801417629957767601146185715879944681297978653744647468984269840683433882495785510270791088523512185281256720504081771639866944717146198748297326894412033816682693732013937202060798427911759180818776864443869211377398264483962802147179136345464400351589293618871742375604051669996021630619925281283027382952775733993304161057543233709963220952248289316707309774259363412480844391302683631698150267970986216902656392108060436698318259249115251257599292821196322825548673957091294319812457660900714587545899315435952909369590492737564864890060353922689614704159609973584395223603580013334964487117459179427463739665350026647235645371261423625599840055285840044588857456969959439439240428160137592458396111167144800515431731483424316913306884236707514146130618068149073467973397806035263859083103393266190522838688241334637498697024208789614137273110081668918047908218902706974407705398176193865945059973935391211213901171230766818860661361139240895156444791733408417269657105848190682671234112322020697712036810195615141468719555934976858130105375452956736971466038704943397989574141125351699591203430744577044734643743970978758983306389675757395723494407637654706599766788697971861221335273150806224357671285103626371101323965711231949182766035660566178256534749257514269850777404866098655544417234215674842668486576268487307816816830785115197486687493501370749391692737884942073312427040924661483211297518764813203467682195073759042091673608527097307389047621889325777889747051442140023505699696482204288423359550608273033520722806723357003532413066914568134449516809228886025154031282340488080937296670573291557386081748916885344018774591490546357936543050852882240237805658299881958811761305714671015600068752322928095203230448137195268218070654574647877320218870794544326694876446417801425170900192287637198979827024798490704595593659917728304782110593728486532238556777722155539266807122416394766878787865900596365181472931334974160450568988494627211145811596569207328269621122571833829279432591818018512289414546811977226846237922431827909354703410760437113200739272118564188635151399953704205179007443645652854007112419873806950887424901870567703880184714960074513490543793644896182913507352432319643672940915223023701091314992438521965284688535125863773428035050184958096038744454812126741701855745541826761895593213108507562020985415490728339538132007332378926510368822377794815083826469774138519215859994897027874025883718725936321937990536936202607072002274179321464828658078654197590003095189325157961379024566596214539769532504924646928559067381550352204497199573011234321551420917422121111166250527319210973611737159096309192127938078290995160318833953453371982865451400264347777497377357553091250894946345339193045811203327232800475045529053397157200677666351752041898866674921599288929823013724627015276058582823484229727370349338728277828866261961382852546547115764804971977972374605191613434567393787888485466667285654922574019335164796725574394400062656847687425401792074258225642794340527867015321308434688213577089218027059034731858946165272789258179224833332296946605914410805820619476782234879571072205987902220600247321047403455292555317558785944829289517085581058281241601102682184379683800818000481418480347711664893299619171569770146609493165590981536286361115672471663846945346045316362879984603146534455948003870401209221676222973461149003561288991328253926050801808700641733952464751708710835114629931472619839364686804420518926421194033407953437295886173517516270568315682562596888713107231661585890446249928706679447051384108472738391527043464618812741869634408087608957724588541440243678902900832630774749067602760871219611124527634277746176744081984665896459956676154579724866761332612864450723448259522814374371007858067355747485314951284147834959725697305983528242130779432075481466547502752138601709679985579257682290211406479760555043383710059764014490752248521393125301989242456546552225197293877566012347279864807510526691799157525654982402159510908426546386410752217634829232004889825936806796209398565201515225822520743292483302475291460193284634297792018803552398059253918829535517941190819067978212534490825120438103098136198271462825736271492368202515461332492179332156047520122356616295326545998697461501598156407911271485742302280218282921224548085178472525219550481954396031551954986591117192094700826331713871782998980024159443296200307622513758804726059227370992133325089708455527958236932037076133059242244977552355677623990919361261446062847744102156228100018089298144905893474028059143046813220631524740388982877183269933106140056042136775139396841044534385805569702665614784826111632180373130898715199951875190860290775003137447901350679151658887868661355298604669318033564501340088969496482389745892029866349911700007972873201100460294227978658977504271653237508912851943007712125893160095135334463653553540996059759945441556631473897552406975401000281100188518869974162313442683625097372429196530297907126772077234691194488677322508649828367256141249783995123598106888878826262603005726022909902617587501049737369467172765501029857842803405473781869441150461143937401174416436832478595598494716677363466097718257392888865769700289917592621399282645764909614812275658412236704698072061349346819199475528787111768835537875968891200334065448904128047782100397779934448413270416227829956043727780153699180881138548635789952929644504000805272873920488220428879862279797550682434066112376157222871690270341741908851086831006555904856077187828500378913728746305966951816501543403815351875630171787215658205675688204319916094709047704954252460635420116722723902592939445943317695141049575653523196596065674061174244432167369038155089030268074662165804996023425880208538028750061240825443373350075251417082128324788847085974668084705693553041662326374000349924945670145468549975041224889841784432071043070443732818944990590597363760941686459965450143059237911921197969170736455073954768613995154608134036952136255994719355191827658190932249061493438010538339963136731903208963984575685253839738001362063524968944811407861021534375996392194564695617988477133382610582695783340165109648946355352384160119311992199750609163672454026833161578829449940128403106441575273047917895581770634574475702819494717155273968297095197020909092217953155076866264174943660863265984032233971953020595540365609085744195008536499769098027176694548243232601976489580052472152109108422022134424501173297432967716598367262868268485861401341248332230239477141017504441510035703907081422174556053205727809979152790089532742901956107088685571008638211527177538209971575224096384451376042852667616780682555108202599694881273963866185710995665009523413462814779675350430094302426558335127595777319356266696664457204483378492491953855594823138014241527943754571321989692399500800136185741839304339006084711650991688621822953288225554312489894854910450488583738317968635746799178171883303019130214765563188495297856741937533748889626537428132448525720163037920572677257148942676071585414487112220696688251356427802373001485433402849723572373539175023124262671336845479980877488533512403502923188103585640608133178152551077909422263660134127552670490240820445732838951872789202336891252900723504558742538109571938932972592323631157373927730223994493555268772101659053511230708285357643606042966764738057454232520210040779684647437429645950148639683839482338724956467681699044591986403616316282898246203088614598826904391567570783106706636945026335934209691549754664849470708469874333552679218298333277828993225247446197455524188861088920380258338497720130897339850093725428029763235123058401597843073122621437676646696425814556069231074752004645703558835011209985562540059541107332399316804125435815752833655076959319329753369306827511970112225378678036379508391619012463798989923748043960222965934626703670482913212789777895691832774895635840775699109610183502051988103312118019107500079341253475821116193708904111860077528297061859280911540246448983430284621312496409985407274073796975561515158257096535453463834663324067746144058036621827359786308117400749485907785915330586420360842089046250856004511877443829903407946594812944318931240473154373353374565609756779881227451182428132380388262999639517842310770637317566942899276466427517313642063782327450648458665071710094104296147018523481063550745467941559085102077518664156756636262682679720680582411041335872265772037953373254979318426103688089325875730227458932473246230098813785536384543215607112915731476340279855795065369641493029758855342962557859832437485890867591391623788483531979403160635936919578927260850433725446180797164365519590219363232437011391986474580396647128209003582111167027037750892755889363284977572514009326591562527173211384560405871644053336732161864332203794931626169649479046577290567464259853202409752414820744955411416752002848851338112058673221901432208571110327291596271587950199286279989368868322574945608515782258365357912562852659419119126727830274436305006917622306902974029763852392539010864753304775451387126291887013370711975128248375529994845350496979076183235839180969013517541071423618303187537953543607304662889833490903873095371217002079927056005893837662355442889078662420940263911189101527145405870422297110318839543250898828546604062487062093406781927340187334198105884767972941066999568778651486454524801283849965783719149518035960468719281662033362464358097491908856564035182044486804371860355348363044536078124007832050143491972120245275332778779382855334505393584492374894191270597256341851650876520640316003994448423935859177475200598612207439576639448504769679340331308110299791978399141895555721091923070563398478371038994088464490684111933339806246345711057256568375605940664536099661191595119613658684748001359789018676211027870738008974501128808283208084330905173794993094134207884832942408726374530177209194771252818107806382242088952918300522701699509219145444485992424170881723674022144516300359161817527864792209577549308605584660530524242966895236033098917256691849797238565717153543410931981407681477033633446064250561434981353287733295856613950196043825635143964218835423811719063501094452053649310709775571569135074550299895894974713387411626383285494732839989791009550081215740740129092598077409243910185903742254026131293080932269503791663296691490692319879849946349451856782693432044783028521954955687219676053080565334493468580819119105824764313556493425054989972297418987811064699592256598712829456033285418700408780368220619773058636294693650120858499801170112173852364533972022551688947326289464221840674006847046359177406170907290769045053314738996993371268743455305618118526120664771855256068778576214083419111020663597256031598053846093304555238298199260242730406804762258984208992521583045970930718427555856471665117801400947745185736895731993467506988839031432422440129116031979821887418743371901013956626002094023214044959235045658013893162087294730366513107190594675944801005956851232924122186974478746907898674159975845830289219166888024040632433647272916122931047873269878525805403639973081019950611931067240369496778793396836280348165495113003514416771429226936287713360749564943895584907702429284905922337534890067682180598562144670496288448386724763835050836478141690967967716283821656339841658933860334515302387895424111911910395563285304631825552190558985486490061243547353089434467669484489920575794448603687698024118698566508199260507672881595645749870437374988323207220189691067013854121010198145187214159924347533241657619786564350822136782079088097329060913155573474885684482109074151894940139266290511040957558139105099342547769976619998425385220175776320131530497153516714810682821562031402563413335729832004355192057813676390534267164612015001936979999284115934981067813771368350786935789942023535531178021570264704968726768079204838877906331317969949275569464207980016262282136794368691685304235613910227215164333878663565729055233953002173101327609980342354560777208522968942401534712991749784616827020961846911664484121363723427601864879510905244417683527527216747414932230157354707490399879592720122265209103915328009314933557309917227814133467676857830895019488044036224637697230376171115218885919405337700785635763210790095982965588073414727806838095525337669027538179383057537395338639022691950970719535196896996277291065180221320613940556060087855936044353964241887286123471773463206540940767278632983870661035323374195658791537996740904398226614428405585793955826167165241899183209755489966581110341194184466238485005955689054225234904826930118359302955414007000963360111185622400481397731743351735308667353892059957546535581232230362638842728738842706967455649959433205252174438807297980782199948918601583977651029367881619516586697805216259394029784690848674829366235544646635117725670660582349883167079245107522389051590202677571993346216789751938420861868135593469206720197346368758102849867850556634272797621436224239645281950247857495836231676289453676922043577368172282493067144355064097894410763634742060383753648240849492902591109723065957303673128138920389474221588193389917685929808391128355565057709043232207926914432020704637470614934999198324597506504455049226765864021930171496747110873354970497531665092070694243589951093145073124474203368906627190417268798031082570414205855286186888921826624427663838278642877599856741434928403847043910025152343701606958865060442250064429736907643949191470587784939457563527047611422343375887791002574923265538273930836339835696196705239106804608548999763142200805245882716564207437340049999341524750144069732031714191787110675839897651256530749881185408847319825238759096412872661096500073971953837967336687123745292470953679872388667451285754481736517076804789130119279098875579009950179928627622258801844594573025264786887202382771001424511385568092171349505090929118989877490140791380792534391870192061075993354341009250850502542027728806258613154215726351581635563659630518767509833002608526683048317384357525710802856674965052296206989125079792160953003040067553299080138175169684469461716383844259994407825030341300025277949063834845630237787579600807506015931250951912544283949126405870180665670984334042112294345931706374675709435116971658191265407829801115467839841879209738421440044935072382043955277803046831149421516364880752450214205540626859526217177705933082691235572804819537963740886334672225157123736661505118981834665806931824361783526279461350719830029180519198161385280337851419253003872392789850958080599976301900426081052109949933475449535944338143398774512066851629166660275300105814862972985700131837731969224617506179964223544103483984098140720846066704473989010602818409013254668670203671434012814362161386625057912983846120625207600405506615225438333444215035852070382618412748763213533533567727335525593032860593823753877393613289951173654983132213658156548703728282230824455359292990371740167560925970786918697048519470881505944774626396311877364201167656222447385640362142743471904712558273264637960209899553938791704972172921134666966372624622825746204504040930387082896548697698852520246385892689126002428660933012258926978895798879190062432224576273385696004851787487704381995774258747247015683829525084597071823045436944631389500200370578082326479837089125666254230731865425071589097694185615451278479652765409005229578805843804321594520794541147758469504440513014447966254670664047776757170712964306900761542858008918840446704031733423058946605954592726618619258764724806934988736504756543078216415909881189069612208381335745131930327444940666814578482536503385562641949812925233425823653984829386447743346935946915762147963449777084518746372201637705596657763606259135903175328100776004798958859514414701786003605817003902682775104771832539544760299700562930798128794699631694715082117749014636683938268844873329854499480526256469326443007202496484726100729498329531061537776823062361087882181470406808734177084016905297393685185275588413699207745644141928573249848588718292905761935219695759489224396622087778120615366164026223757915853576681775250991554983352875756377135593295425356071181093958066692610760405219949341084105567952877710505339958907232780855215291424390146764041521443483228901266764886358728713425466851129422003901742306220995555984643662873110422994493797802461499764005685958683917237457956421514758043572339165597638217106363904813240981122817749379940437981884155316003660721603695051616301459316709152774989301225085976641285324526673001158602500064586002478623700040343240176284737844427588308940063653853203612594083476192852854344593249190813690447267480808637840707026506536077992173157261684759032342623127418298363898119495969708035148453493430026779350837082950598751266086112222445832062264836145205512200685638140245075918815792240399276142303748921488400684932089609436674687977848804531299052587003375812104622378443343844140645812676871069778873915139342589062084910777280683741085856440091593759467829025367490044303720610398584442366094083277552040692888538494326075081711822429008402435089021876773495854272393684830477002054665950977445219353560412250615231795974317720559792263413327121842248769580186169493808770165622535633107218079152864731897103571590940606470173336501237037651204757724354050569383091097003470597826128636636969441955819473827403880746595288314503424852289172214854277620115812253636122394123042381631731649914194027886703651641562500756494417832535438320027595297060197089318391017245475554933586865403279704721638819742449882409167080996740400758577455547835783386184501340969746335131393552191503929559677876860964557766046659066002993079444211288765321950226807317694826355589917300006780116868586657477900785847918501334926806018673459119491428613726779869757406242141736730019658908958931912437999437837070735376438958055710426376398410932474130253233533813586532932766486796641546339185832827651271548576739802674493856887046552398542265741565137448254998845671972710457009975347457748654573670395292544811705269368733777677459032576798811884064930476639938424298279418837681228811733570238663007087849058854484596415465604038520812005479724601117220499890152671045725107712589576063262808118303725501814893785926872253154285213147319244070126189159699295406901148346590895315499766594103584675328971949095786793663830012693167910377753071507983033536633985945567772872771545223274304780361811823692054764823244530362401495366786315691359597054147342950831086915789013490405997785862627110710458716182150554017760132800290887249282580959631180357835223275233274164695387578505022792320174556995256160081760597769785960523645138596490556741074415026918618125108669580663772991376017559887084390522422344114496441156091239957260779748032926801388779080281452300452124348353915190290901680406856459774163924696475841867794650767793073799964750595184252932096768929414369322625447278461605367234817312360160384770710149097928134823039367868760718464651132342471548261399534284935765582967782952058974710804664612926789551486226522898277558690299942722638589963285958904792976672261122340988726829693080440629646111365083183618877024283810045098994275170165894193514654613627090647412659464277884360755734454348547941238616983854908432824892811110916507706145505966882740897010142328960255416892028396823413039747240902230612815351703592942295764395295077279680085656267607320325885572494524018908408247610003448100333156860293039476117874766322955358011240557139124432512396758101138594773037973537999846686485649720793701093791667868129403116345695518357769181031405334972716387548317986519915777404235296231935066395933604747838250447240435929650124805892814022278049056440789896356619384795458509653939438922919850068914795491905227271947470497704714833046640860843257192517159748860694536945687578487257329148953086029973352308032539209647579116436910367226004372600487360120219158733504558832517132181397722186636954865914174503850085134955101280956888728751756459271431337644570675266254912946204771670844057522104997883242180480880593723326856955783995243558950067143370380113544528057928234378937207772694363217983133030199988235194016919476986460265839420431223618450914047967050096646483696201214683526215521833403631915058861640393358883719565503365059821409039322942755121791845639288145188968911185904346741668453541654001722629356256333095182181978625301162751227934532761192533450281412361968797954522693536391611600644472076469588743884585036320507295254494802476771417037779808656119821255278180257845596420956401482968249250384237953233333723474124104474513929377890415027378785440882026878065289992906160482409463017427425506773080394336511866494306110718966652577976103186602041526912230351797075812540901878813836978220311748766747313905036773000414579114323193554102475997425793906413292579729199007171124526314371629264268760273649724372345273112976383184208872496908566288982715090719886575026069597077242148759183925749470330793759716956035720885773749356060474321493639728955714199115285762806505114182169841939999293593019533382572206457054520274088211228003893655052147537030204832547350207100729826606475685307998255284649178308014058483232864987033471557745562485387254417496485813254239168841983212039021460857801219676821782301158430373936828921850239410738737562444553546935235556392027542765736149950952107248215896913764766126316194880686185565255305143871633199236721144443199379463948298701348314599598467383972920778119279288725742647373884138632602858256807757767035906407537567189585953038083567470765757301177619261087726570809689976716046969303373917334851445267207953466763574997352193132432762244873417513794648243960939786081898243707846073954652070033211639319031615556634170921611713614444195751899748348781437670066913357121597108851410468776469389879932498057690528425954149990671374050268859995853730083408514826779958081619293124572436848183126457889115899803374327933248987015711446817352222755906396133281607589053756613406832494654101939464558117032881144887005947774580818255071063774365913835244965496664677319822645781728457271456725555553226667854454443759695273869539395745780897397387505621160994856633515539265854117955393235160082218770231923823361027505577366315829627191899186829952387820442816587163782658682828316572298745162906109980780161199605240415141211016293744081191956854470621897928427679293197328466954807477012642266718974102252091827306355162780242002103273492613524493530798320989010055812314130622136895767259293401794572798274829845068826633984028875871175046468099819621807942481251827867552348891452724890855069103968974398036359387143560855837376209038897807456867947050748103851678862313422296914511981979937020761381608611481459394204411959148471668868010355282659483685856317071981372643910977408017952370945860048521302541390858179479187174458303519877184923230121881001968310901695946164673284290313705023172658291818402424186338817320481188660054598080425001128103885230126088461836698258201343456531304585783573334992501222474553603011780529406788163409375564084470337832624035201896142806405756140383553212625232456589604892474944943398467505982143205355049888720831210078068711516403200191801329882098817129962691694254625035241994402027814392631881832680668092202134615226504078246531102333562025586368598717919412352714046148907632186415964817375303634076508774962950196954935274669062250839506100802642579556342566101966132987260545778317658081951677306204144678140949158174733002300094812637190568031543799772911832703269797866190840937321342969028343181746758217804151304498164671159282927572582188040050476929262167181012792441644823618367871982924105579265844120274093980172152158007659266543031300454556097526857794143960987144603671892029945386302315980605931927046099503211460077921517122209915660928032260025212848218716385780422127051404690891454660169360485131737303801460911501639190886532587226317200438417698835333754949670300005605924220526588844743751991837327294742979043478469909657830682867950102841558494116605846020694326314313765175657348569799483458108550132858322724098511397435554517456455606557158922924310652976509924361495501952338527647148563671399031783199722263012202270319656979928721056333443919495376523159533881544593334525052566030588556480675890664462012035096060736728224743400070743447325483139241954174094664416844937860484605952109531568211104685126365012296107361051528285935656739890703447767241086478430173346512522712580102387986070667403080027565919412117116734686260548697290206678681561324256590589866654071512664856140685880363424329043468501682504917241306101412154834295543315257865606678454306629236113433385966763193970967912302243221197403542098731696128881038336085303760814345231153478974449076752652542824609669162464474210611538964789498099095420990669135470878116323459690710994424084687838873932915712356593606389381870045440426373355086246934463312720187558850955937663011746072152630385995390474603053435096321041798688181361312910424100820594488268146925210218787938853305989339057334805521281972136087685018317115921011545154612752514271086543458372939192449079237252090747165118830617627307719132735413163738392673595424295701195545824775380271180814031493842500904671182881337360522343051320038954918572896838210998186446457518196377016634080105516817160640069529682346583229347166155574956556571973166903153755350398822936401055676211929658274832712938478225925597625569329868076003930718742222450730717458161928271541532904642045314354396677816997066403189172324872702891491593061302463695841738737557981053335857837290257614912426795787487484504646559925576419356014894107230537563624259276963503637979664321684182656143162961952194240992782326464960886541373002129154119523888470271469235355263892642628308847282705773179841851661510223850940578444067859152041726850621581018045960456459238808648780279720600188967362077603610657819841902976793650888853514535078529084059022652699272452869304269718062686144509421199301094773222471933156574667778963463556767046517670029056319123421968224606696226972449136527232383249921264422988651425799907154766015313669857219005478221503547068407808225482993624270201741633142074471101851213022096478642120234603614577931861209299258092122200743181360356848027180393494274153735844936643217117477064223378220939730055245417637586553194852374413156006623437186746147897636651752434076268480962567363226494055271811882599099909332855712385885342312644200388619792243881520451146925268521068081078301312368890282014672419592553506374562293556048789619534333230176329983296350224369969077072805088064140770624734057790066756018894887856723482083552440794780720876725285333631143174352765116400452951313707404957792239561291615216988465138977116767177672843579061421172747525533368822864805068270849711407455741433101887700111519948375871133691046124524199828099464909860580001631998006345135080224475963819061860604374691388935762341333808468977967423178590919804950821632692841519372839796483777877818107028960922604366264587082106872805694298282602745727309304488937979483567121260307906653598453663812794241334049493414893809352069687794032137090260961709936350932375663433601979333626791574433544330565796266516923456399792808312908232542102567047191283940716567128788190348992828603586503195752554991931827790282983158663986251011389069583894041247411328658117080101623657154185685083957860729603551717683112727709907524968475678838936382199403744812172017624375331508671893030241584295945032933569359549942468162282471859884747468962357708965807174204882761221627260582767081845150084239474441475349912512278808301532517893301872899812884788546932087343177455166079951588424061111348477562073667916864883984137654437417676733356344234338037169397597352324501037240235047433148776354737447780883461431447223597122826583572076823909110343208678909297048299883373361704577924816620211149246208417565998347904691343269439934870941250637703261768224896233230653602236266930712787920207700989611402473859068624574031937439380816454540462999908340914700963017300639239206627654020756548675038788055569134607318872704071302775412170121355863367387919512209567319003874065251988274412411362869635514920974087152946854352159648797833463723258962298954051585784013264160747661800921174265289974851191851472095403112126656367195530197361012476690275110723360663068545504538093458752367207089144337290846832082557335439874487903036513830623983241518951579553387055248408270747758148496727024822602462863268204726851144472014254924113822778479882054528068087779936302815701166310094990585132544524470513960879324549524454903926077710757398725327907214613572176196485138227390415569868894684007108955090748525711066701003718785927475733508810531420802941922902261536790613597757504376066429355383735032860369195045052165222743430970841328114759997939104772076506340325787747432054443702458670473654234789721231070758388578011218768979043297017008769296386727221528372663800640672849308658591552256788967753525903860719427781603508779514567621929913959152181021623643204590077802818898630501405407852864407788672900402602465185971024277777908243379907522913978677228976316343662006383510202214329994554727393849656293735642501796104561315556829505064266429009455237868658839495654315431203245020219291669867237046168521349239884121651675153827985760190326461466609008835703534040078292167805754030428996398999973211289947858726303682711124361158647828305572633925113104335825410763374712395344774950793085942766230980825524815393993295278361806781340264496469436072373011913719812664416847483514287113459071225254508113879956140385445440751665792176629350400141519372070502535779483591671257615963821369054204699153905058347969068028390555319593549405729625045078953497757483097461780048324156376645878495575500443443567964765115041820111561733968283941368266312421846321634027187308249358610934801536240767652334758889247549137941549652187221331411498978821922700004250328041025416586589757224968061576693391593548165151836749773820481871796361943482168478064186445006807649742518417863051854755644657693680306411668299438769406691214127069065367342964739996317455660364174716207589892378170533369069417026097030437895789850649200217759750526771990792921960509759838334223211268092772265900285085296130830589127101582984632441324039693134309085083193479933349448067431182345302364161863230885909064974005448588362799468894613990433715642904690934002436385939923214816943971242025982884798801785257027146367984498265927689730274424172278878923501933884124618463614935946486586164590195619508780581887123130422543211657739471616514526609642328145348704481695832676694722666527698429771999496323656569007032737061786580239560547402695780523595550628256427998780130428516551888246368375962558485857647589119341472629062073274417253329634502034795108521037034319034355252651476665944947658441972389499336885449032396501495519700681602143800015576528915661988977956443471779180195537353572188880089116343737748137346836018051374453649239026631295113993785216793416915110410106694927941093251540551149020393887892992951518675658178261618325316285024090384692671892999315061445731581165793547728486824596940211982786177013260921284485869935499655093877507761926795962387875106411901454228786888326505014113448971970560838101367297550382464623382492017754610961464152081182940897862852423596269028477302082267268110308259118264379448968487042584930069053573931996743864255430894927980896818459903074440135428487071775950841777284850099307153153624109869304464732925341988214476358112632817253772017960645854163959686623556303211086300866453485133332957508489460166891769604813413878304356337140779625707832875415544113698362447392712177730762171751483750562467790315146132531614977962219512327055397455988939529823635370727304960934671403693108575641612294403609013088007265696056372130028945796287899093424010724866163776892991678468048783990436640789127197740578084679325272824436974784028154444006154961231061861456054165187086450036211871761906696906946305988610404906698189933696022111871685874103301425263592424202199226096723997902492803241573560790853723446002610335026502601285783465179776297428609408612168490115955750301805558199703077313978979760331869891168714360076603673436365672112223353155318164008558735825065273036476534361551656260204535710951576506595515514347194627345198799855813648096562009887453116946087954895999116126442957572190029488171663943722464276973061244797932582237620621557964648604867198901573886358387786370928222462966936608777266591517195604829965757879287956816398878691332828893914804906909107471466028553946258975651579108981419179563767791885243520564419222639490049665985361841150679469275489449971542067558884291892549098954359118778633852422959569184459510871847219851985977529031152379764250851540228829593054451106938182044703947844416565275224132288691124222266740666547947606983233955536508624453558032757184772056410451392036912028672879308075616328980333360494832059121204592626733750010638023068095395096213205818322643182924102077951351475007578175783690037685170570619928748154113327187291610538962218186519620143319845029330877131101968928684166340915359312607597060029529510157685526233904334936824839970050685143271218413697920685387861495110226764706293001935401537298714932604247029162094603432961788765779862412245802536890683497649680223845194091396525759630743685602518670284198320881995686667653353102139341923661671112682206483387813223824844380672868161717071930796163299139383715415899577002754976655091060947724879728917830524303846601688011650867892771159392276254295024930880270780856547497828556242825951864157765618967823387555828165016856301588502323763716106125122999684124165286649403691966525159877829489532617715745896934119640244923097463074868537418988919177937053335734055341718533749775522608514441304523916957666981081199544656573599825784130971559578203660043020383970971700713566414628806030576034151688569821728609595019694434722880602961306783963432669411605334475008896874948208611226555503783906539963035973089267772332238555687288909907659604603246852397353477602090947424368756695682083021069079220145976206033669432555066297830242737439922801980124793268725999428995107089309254156495826304122197305460251648687542451273699568081174925309479639245035456903300242224157640793768957338420687021458501194758533719937856089567237362541470553924695966575211658318378847984269581685840195075852309547569892422822654938370499173754043219101979110183657442667659182672045531392264765328372237582847167735677394558335409758811166920750001973731259632377236651829507353889726981675735758342101318354676146413427417820214849233063355654930603781069269248681984371885965707497215451720006837531622534338891246177817934056814774037905865597980922393049890921000564227251729435624699686850221732595158714358697206712672966932343983214886040041773288992340438796748666692942067929923358758481508028376034335521370360105957568532942175368051412691817717016744573135907880192806302633614831658660801371593308087964001686959232641682714178126682716449989914468119653608071539460547505612136667294376456822566278765622451604353438685450185392749709121297221894071776399040379333663303484979898724897649658383610610008586169313877635948705316033968922669777075026293323920380425600465985762050365938439635884540997784573315942934869754488625666649550362038298553489010426284703549883094779116166934069822198949573175854015916529931421385267383627006187073820006308800522167884962978358595089491338998244524477455049767293189685746605711235313681325583782534735267205024033012647761628895334232598838799223962269315686888015210535409927306769943894220026035215923241963720897095133646738160565788429804718978339340936087509185680294438123742898207983603574073056667215549749252094801230616842057734163537018110046414161185678347458002254108642292218433078398612793759969900377044785489456503606083560183941080002331556600493153536364069360193648546641133138355017182851890818468014001238464280917573132476409309689468618408895724153337964166284521665614662743050911814028836205761874395269768100733974577355573394664387033221660780030586380613576550383715576672690264902310598170521943257687731739333391421844939835006349262081491035706748584765834242028987112912043111084756892742796555832600857592203028250070137729871993971616884670099884187483646339219597045998153553346083220362419155184920690003791279741212916506984986703204154253363356656588397541944738049787111571687615018088650388193744298138603366586557707550685638420613742207249704941811613487870646060839474631349359678709767340080732191453916612255565313341387276196516662749628426614058364504841650910093037325494945545413672987031599618164454358710303107482483952127852133404084029050155342835518174763424239202401558559938726224478453138934052792034214426656709307687761591701388661377070330614708677351630533273713111500791863761741469993997802581160351466836106918252596578143882166387250460452272894715773115345960176267690193615732371553687352826593878807225844411531561554943368123138269843208329102811749881907932596329784962152909394987028320109778862821264210903719942925659582729575794372253439033121256160544719380561222863693196562977208289252570240254625081005244144763740855967661795592579627671641218746646450035836235153599741364729900022693380605354821808964625392318606993423627834158592254648399826853189931704066637333476228525242252020678664455484116568276255704321966102856337467676763261741908867894313662221802849477005358594772443653211224720975755189739849545233561399746532986049017074193066895154991824803163309146913953543582781537093731732421071412326437134457530345061234088688261005545613190235980532339531749078836794497177677235764496393685730042007760111902001524147052478571547136581639129070197141098030910791322470853290248112809451484920939209242852948350333113454441520199380518812284972784041747954560633132307976024536513112860945669250276550684988755738822238003654766443217892576452946280696254558470800824617925574235930440740004700144761801645783992072243673311476210341627383234040130673303378428194656865399942731869597858353018432979459778262877123929319223986950033056755682140362056986590614660528919900407796557199166945424970156962487230044761110528063816663577718374401810912706916810134313998111017712253158589504508115012553084650629973494617943218833153409836676269515154369784664432954072715847999340370980037245834768803742665448670904356164334990108586944273951395357605856468781163796483269976667575365256862116601138898523931128609936823497239506919003168136090166138100047287559860851417129896581128350640939607139916058568294977848333767968857372222934791302998062752878306985037761629217034263071157311764588186872339715744668233518296859635170580288418504401059803817456937084272313826463934612706141440471589431174370436200203721251850349338526123915826515499285833379685138066463221441092283585947722339412303793232676538594489552667061287195732234758790467719638528445092005580297208184394398257486680771898323030731290566150111325123420452890405776677471722338829292777144489106496921536574006568157649154176468681992863402983524815701573256530719600456036032647494073804641622592489517658652732528581629032662183913518639926558459538895044554888568544656636941720165949266973499777131308075403718553405773418239104482224029370127609809190707863345403611702488948250900389942181839479283177100503838351131124619309080491294584955938160808901858419526973929388262988557055562260938516929418989809312570182389968795400448869925310927624575379494466111498638758694717270711080324488298028739692738484689303665554397743160584088412634967464921968031102536265184172401377795671797979775556959633012058315285871924550105706146591608054370133041983871697884683396504020414128586876973369166728687856196722307940098678024746201778494977726735589750174144171925484587047032716062655863687723736163560242598447386251626716009901667108452723753668604978851435341909171999554092892764089507005744789300013922001394603288917722107183725109525344972741937145305130203860895779234276097313342364094997874030893082991843179308176363936648907175239853559037636396117594166215362707577382815962599732657313645666412244165931407516928666282666841715841841664936111125459617510716648380306417182943038215894809251055496197358823552881174206092612421606590275103542817305132307808803749706540336749931887422435264128649566695741343997522748510963655888054362505862100874685256303888537178031376188335613182545650584754637251404537540627994841563097352423170718856650586381192438633715556619985257597889641397019383363069440645910854685619512907756640123280909923468799794445267807559316287498469340322765675134722733335596469950590228418995102927618784460730380646882258610311440485420858783528125372497433059361225708573955084123682983098831720488003258387753836726703458187946297245337529047359030631058241211304908902400387522005766088256939105271043118480615227289731147441034239969369055590394207568158206453195591664619499504428184426997951778651363227552749638650655799511364143344650289027978621553574433618296040381385132388598151653095291707158773859582352391730335303298349147468398330146666469867437695473713550461397329158668081390513459490311607226293526180061762976538853506354898191148029483624160854534993096668191273572614481519618681954165234288756880562061806264728141629291979790548141694280591970622594701131049433214017230834618409342889717734604061524614083089425076474409082981857916729132089378386639858470947452412920400601550145855637912595624422188522897708566447354236018370781808419019236988210348061105829232490263280051300846382368974813840125733400972718432504966641895908607799232793368312280903327754182368836521736807799497146945892580735408999916209500025344639260240188316984111361633083032622783375029671778878534316310034314067015456052698995528532901744401979415143973538835028738230370176702551418463784956826104772814034858723490879454495080130196964202411931640816171905208946987880610042761061592013052721679008794165049230900497877475978060275236008904170140520386512732663582024221572569102623823644008602651434708551347971564095348531463053245682903452310054884960064427732335898627913541370307602548129372985943205177690927163106547888967848222287881531131894217694552523069565318990459748705683868578293556138844550449577326566904287849844400178210600095654231950589375630108953616897027002966828641215389062425744976212545538000306198925259095908149350700594991955739751740693623531373757287983549312056968811926089282897562586807940487212557027264485550990842769710322736351411776547600140388396492760416029748436996178873948897433904917591421827914631920567027568748118020938774467882547372897678632856318966489907455111541507168372055860486286612040196953801291207430236488145678678187961821808510426926136013709764604589438868769177649552943985579137547052722496077239268946264419063659556216624932096586033260141789081509822927402637674694734577409738851192545890999055416430369789191644301232376908607009641372445082581641680362601954622304640946021184745389768828721011267649946496478720806854596577821044272398227819572449383759426513356209511896855154437736545241859791016849798810987681214680050371324414982123906112406522278568922623715581557146291133176641796008404273340350925638384051973833501861324678679797722982662322480588267456659716376819388421126486779933434830164640062594185099895257221379319778996338327706875258316739396219115348302902174643752556519568575387206845627658020958689708705168308537838629247051312807543351735777293366415370938906482133105172998527773669196190550463991465905027498972231759653132743127775108251462921958925183745472708353456268228667271848947899163467172602223272855663029642034326232381476877408396650798842342652525016183839337640616514298307100730842135819382951162428481266470110822666963546165569785936065628750696703954428575058568416695946742738903608692136979601953472914979220828920497713078385743934091273799843156999383108596343485566553837570002152138207920412981975993971869788932112724261955260295694369951069039079457494496222624730082619485943612183759855132321759186066984152391839031299365927973823952806935855513258006075717105811338698415494086868948893168755804996696674686509213276083321493623546204594022531778111340486638545547522502968807683816824891273742863189512250014183756498942964952886594023147748565128169171277893948454816132309178119594723944186196854161659089120348256293913795522733602544285252499175504545262494193374270753003349686643440659498963206136589853644501452784586286275730164105086436830640249854227908219868792553398980878448114116933100138625943173821887565145504688143936272465488520121637595136192846881937326441372716017849335723838095150801284633945357474428811859437978049785699431361596669248221228614094575878189061322131533269955488272035685008813495717900090221840373088470957018612804999192445914610826399604725677460900102426628801987897657026554210237866228028302683957626641778826512418021394444707338309903865217904592260167075281273693481932309007945965982802729613440263133302185815494342129205417886680468506545869370064408361411685566870957948675317619881695221208105998212202665245030233898552095720918998226424987012302959620486726292373970673859414904129692879615122291076685524781227809153244810521287100697661918466635683816022848418991843192283970518340181848439389269221408668895255070188286039616620649168227287343597487133693672419265069456971940550722759703349393498725459429178186222996457406269422933901350269947296841098315562993989831797188177034333091845444420305533826922428143075888797480684076633829906759217727313671632469005061593658706101196948922410495994343305668368904044706872236415475140397130420929215047224962642294025645749927190189052825522302164513527857669098398495259806976179561040318922912901634733778435549706312520392265169139649860957511936598099430292909824581422443376456214011653823360510660653749950351723818053134135028308691652242457449033009425527140717896103337426069752860897925591836811441471466494335594594534197863024990716275078230643982933236518619469286942940028378306716078025887023204855599056567718820249825509705725471431839531674755026550847115747001601219067877223706938448776308184027201529677853562456515489031913790122057327167039427584565405610509527481753326423961415112014418272134613018938058547327547856839966829540008162332321942542236676678234803933455599567098154842442505572557034301265541807869599259297925872347178205712023427595364165854965262490412495716170353256887050406615125688087521510707794576696839222213351522232202810860071112516407319397744836227968540689626580558453802483975573429642921375132348178689598806740776247347017470549348537498832197865390425837519091306058347706794734236312103095741956753599916793130085732486932718535277478059480575606777174638710421139092000177887096973437332788423588049015165913002482670118883794531428358982699480334644583336298380074445733791998299527677524973513129866988088005532290818900090644998248002061016521566407739240986311214684290627685981431633964297534784624440823283431683003040289520964639404225788055846058884420729220906791675492558986414558243294071822133994068583665945319433859743955462719403018552826565554339636366378609454065314252820421425738367371327038700723122053826392402969178142387981700339511030286417533140156525639077212165888658512708167964276812611805230260109152604944385224160577123287937599451766038127280859963930328873959000545292286435691690048980362167787605414510502010585687525478423212893791758772540686741383742556147841043797003788059004085902868853092601381514685789146515886609434519409783893716325874007375038649005861007327191207010375515749287297317818149652472766721215750369599481198400112137383661109703724243680620927734049634457919734064419628406398830349313538480516360452886542543885885761716939719079693897192671144390330828011203329907040019066159119936189277643462348976655588315173069015353463071770024848254825549608899641016627074236423169021157217960287028882051197459101038484068967383365609369556390136390324021686354660729153136540394560983560658301020992426974698438607504233506787255591892056220582379738332788718164087850128734282052260869227330529370025187299197890805616844693104508033989678446905081621342870135978353473814899425683752634687496608035579937540535031263599234146932595400645590014613782972170953628867003105846300878921200379632682351904891474781361493067367201885517787807908947352930901049664925238079714422606750024785949132168083881096499316997481221330264376412289825561928991983931557363462661391726580918307032129977010578310581403321427357595062891365222963635122396687386622847527787706346360610785782501402048359388117618443400462973838463127878557120664356837607187627045608754321306470064686759775361131023670153810380959180152615166184996025044350365289470396501726178571522330309140077260321709085572316120923758273949566794050853755215685933860416823197250790378529109167531908415722647722195946423422781871467056201495561619372652637497341705958048550932047581268738357666438039654926299324489457374812267650849577785750282587240951778503580319535391719181887329469509002503189118035746357631292295592290825649062539471979249429606476433407539195723375003261100236555000104819886089022786340696937778152825652989186436522923682739622803188414622089474311516497618067045110424635645475668746482326321151012021332982252122330379921030352390894882436357048000150265534001171478843778510399393786251866587168827788484372672206649371757931146361800583191275643601212927171292069779482935479012920275781644195027133270305110229925532621702678683976622761949457421577295998257898967874869729586106701265228982028089584912666214778871231388938578604423782473986295416012771494129954860938906817408404337855731249964888634236143589648798351966461066159214432571371548137495674294721567060875121011195099690441482472192922419683446669512797962153863838856643433566966463114191999729494662274257855326939579226914396699022201519314794723883154632638134217926574503863581075539239840775149489987643270033457509172950321219332611155554750211024583536011399456992135736484571729289392495983900793775914053065534060332945485142519463224016938513953712145627088141018726801793664497741972429003338361504086255143271986209442640065004845725164594209361307808503715791802369567830263593799315468468110900377095966330639062686719627241817301936357204413001200188282485199283598032802039368938161304435538521448071581859541819412915614117429361495859189334928339651325509411423810001546515780902000853437799337798490735563076290327615012085431345079290893838171573218131265504081310711621564270481655921644464099942222620287942656135484327126696556646262969200547838529951592620828179083697663741099046558548966771759416404805712720211402437675192364665994543556534103223820799552773173586544831348680877470879442283095040049791597277728444732011071332399080016070907333472055570073607808455693979827005234655945837176833273131361280125647744711936476534549296463763016924663038680573305909195171387313287047775953774750736310972479145768197114042613502374438270760680280829369020671843492808297423335970337611774045613942288617636034809019075840628460626866573525547838010408582330382336186439459208270173420870395313111910991833562306945573551649920394231522516648565696103710505233267047586991117649390171886606358048042706095274372023437378512225155726612982786510795780714429782018737915544703199754095004859948282566694967658464034816358416020067319682807434405789322325731702059173564372607200770980301356272506871475246911687867050218879046401628083049216555213114000175192561359251802654946659308509552075412153818479518115934812868412334809804029499869829576584628563995124076901476154380204135872585901619515951636677682532460984296396103697021200837242299697639493978801087201157207828049637411618193053324855332211200422082495300090782985859628552042631820879099377112390925712040476189505663113459528344140894115370845740058186804673429281298121737872033730152751032970307152656069213234659827672663437020309463316163740294874959450813171289887428539947170153938581652807978341968639527024644863177992626687545889646069332095114304971561072738406319255681032198702558262659178842759883613668550562579335182913853784273693094304959507527457321246756277225064893412633145122245411235098665123325454612607151900950197335333254926589217154063357579024184728033878736134612635213119530165321532388700543304904187910383423772327736962494125195155701364432109221621031797543710055769752266044085542615921210204106161815707003944221951350879138450209065576698655855513052910028828454049619534386635519732718563936786993954020669170998050327912905403204894728729560652627104878278957404775144973801532013718119727292712313171918643857510633324517609303011463141348010047685628313554497261658270799089198926073560252385990666572251104397932313371821348843664506952585293351494551334297896649672033805244094956709827740019722473532110568337496634720540484984775495256652355015159836738553627755486717619535429175243551854570360018543729128080068268089408602934317315334726544073310113360175930875403038588311124774859980362785953324260174629253389435989596667659167635685354419658614440098841722122656549272957834282607282112953816070722321929195495395192565248323744716497675420746137296075268479724433183923968283287715398103694448097132075512630925756353556532647165490278293451895564124440767144750644686674305187438959349211905597368930002678390344784104401202686619895549619101215416449667726738288738734781161448554403144763880549050105958176767477679709432684400534438354820369645762056805699390772923941002815927814651841561293523898076921595790452885900817635646917267518031615379440954464374311661671871386390829753132621235857790496973635999349873145022457467301273749924769224364404434864668573406430184368445833506954235940888184487836705655785116166000439740920709863611132347600220388421846104896235459399085678126495858661666045684913685886352392992082584133423927078198833947886354015119508254001138647819743512361230149112388210543091800480008879854914602041814780392699503907669067184786933422458820674909516878489421721059960658961570012881010566525440108027107667032404725170162662084445804901100709153545591485195128389194772397944619248606228843988085871178405092430138412191597379934407418869834685085656036373902628102629086443239361658949370952433711243552013467943467041719391324931735170034480290756256794979995286283082369693834821173628849489204765630603827050974067302615296942964569492901891274582933108523720826810236994299579450471878053640424723310647481094721202846467425126521216600078104783356983019192786072146193627515172115990217086249602442737048277271661134040977030004259362991940463159967010408451412095381578650987657405965723231716012710702380095087865209146545434881312432128610435640826270135145242470134502431503538066475904796631004263709458743855029066967828640291412198845189325207993818945453113084777095275103842738743024692297431117971022391426644448390584290489740190215395494577362342581073620312461384414988309745880982033394320353782218560355154395438538063005918022745351412490709059058040969039897458855599411867135520802945748299083996899145430932816932345683791384833174183374120100193265870080659971891509040015334316464174548451547928310868934484004776381881704913295246657207472745780218696257048345152715946307619777072125212867208993486969754820335476990286890805691214363833947365438390068693475842346916656160197915524838573138594237141841624916025433656207127758055966928295300279526637546536971695274492243369114145284493897174893376262856808340343908935622009948011690307665555651165430947606619521627934528182009743929273327360673371293339644574691104213493776786035856236069613647089723058220518184326548700460932527490681917683642176094212140010792196914221465535698083477603090581615300544478658855497938072546042274048550652585413046253406469119330367564707428330566840390084425329576557939666304196491011339192312233747109233168734128274369503076305396575183372738250860166389610213640811851976669130742745906983828096621760814505551384586002427814549688379801393197312091428794767083301732344060175368276357340847698601709159905383354164860858331766262263300924239723955253829611094742245770620801410152844879641714313536368459553065335511797400905500476849108837254270268383748537527917201477309000814864544643447383965713793049758829715942842101216287978995125242943047168856782581229349730893412942212711856643733556956200819686494976949147171786350617110805478365999261294017311587290074528048155361975923540793547425408289348954634232902723638892376146676291112811287741409182233239920260134247503782733767478647745891034913253584872014287010463451060151177375944531604801986514097952768314226071165411223260164879942257460105712375270469602293828870345864561853675564609954366670520477278686421162629745116869609634033189881409122686872871545517433449470521522680534451267402054040007419297499480605021297200381309531019615021089765771446208224000283177589819749580066129473419378255065916661243058894483079043689354158649541218387828446229678409685988989941765762642432309812048976759515174099146057569539493505305801420651656401744787520948023094264775111980289636273785183481179206272276859188781010632727639703534988151637920468608462698596675485630040487177589647799067529949557570599632945194715064817695044530054949345221618113112445670811942930929741350092771294633589804023445747031181948454359733709245123439846614083029160739156531351135806719828744175655942624448642914981708031491539637535312030012198434467652061282517966816652937533102224372758387625101716734945802706074552639636111097427557097013201610505242486895802635751390087091395087424246940808467615255736464297666273005754694162478729924360446895788305578146336146699142895743414140380551982579155564882877542537808766937886181746553171935660486069664934970368650997265545340022550849798681616483977034047533472675039062924158111978372035428890857669789417900975159629749884536144222315605346830224533360048457156828921513009584630938818871499895677986239749267170208718832538348746547044315495176154157682887968892874438704974518732519073637134540357464161207157718977904626920137315563304951310864914163103486023817401439934657126356073463335079604813457160068805307293279981424816007116446008061081949603114866881960738296675981501002890008103108724088625457778451506075543698899762397747383080999192633750629185487349105825806456336291561035962253684569800631380632387997074745749058941254820554044437005194186000034534937811993533055140344395570430179018840164212521078775662658295172981886896775020005611279171196352109241930944737216347850048330802557623516604516188297045021349725359748474208956892376417106350181609366208504938792990305374599784945961617046271715589234116379622941316613903371562597469491646332243245417287729378987963936667941211692169387287153917754854858904808973387078351783272372721620611136766799029146827532555562018609863623456301085897168646812421998286165832475784126157475734406489983318010360411446891097061808207711396934610998619992212393679269763685420701656276797830960738393617316285899990219235824076220116582414333276458593755690122050813870066801349296313073998979842306084157443270439928054285738599677456932613475547960446186976019551660482007249422575016658444350975918883874011896238048994310859524064110952260090555716976985178492949384862194137273111031607242894456172228948408729916241754559067548869474528375339793832962097651657869175554704564810935339387345986562251781256725027132387052295522275207102292055027053239354056202330372343024970670731457848561256440820727906219635027894021088270787963217647665970095969808743360381757122062606753300451858090496758222079839875199068596814368653503139534782132551372091541880300261236681449872021145553386883665281186252739666228776459034651793517318452172014605731282513648586574798643420832613787426091093667270971873322799822414294220997384041545620948797865939207628121867789671993989862052506736003259802509252721953925805979630939181980561169276545007837359849220078916129040284045910660439513506650278902527317372806936741312061039493438917567675431088273725735276936340972923163761229670060199448490272204967185362038843340126293817618123024630849796927128820796252082333982744905798527479603845266543918049854286433086410699718243346785901061474929515151587282410291064820251491705659682304049339172459271266205517900108942775913734463807769424134217200210624724210755553127072297172816674011350677396444168788849516571101607739812241030449988669870340432107102505245705330927085099896434381504727349451418052536210627773296452611617874143817836355775506044818318408243086113047397685927776759134041152881809099538526029855671219163194365029391315740042013424600531902816069694583468108239449392462395910606154730989907235044947170624568119501619109775679528295934496710923582171902847282651141136224026976200023256047037759863946249957690600631465510625098237550441243942493483124603006267980102993987937932008468486232713449329969484694407800797970706443292196387164711054679574492114241154282804924296311120554767808911014103302890073701712104839768352137200012920502433065027130949504079383409341964091461191636505374015593249868753912494217716491356085965829229141822396151846747947233613538700310862581970198361344120357348399892116058290649787763780939397692232455926548699157245518104563686791947864305130436117982531338744704272716748088669563202503382666130279688168697114475014740640622653656533930682589795091783190030966822416404309620848889294539166255223148839255361262355305428710161669242036494771221512543886183004025252126894147341300882233008748187206818687953867479009532323119018525847890085220349410198184152480435249424366491329500902834227793878918849242600021144064083339542682697251152797855009913714943902262062256149077452841071580156507770777015427430646950196433688816122620880453069781995890965015447015519136357339211330724532350852485283800751009053451793042249506417730958486080971094208531777830202945502813485804625997492140104394734155808552956349797783906510717382753328403375592823212904795021688247796408723996453438898321907763726759164143830254246261263314018594465511692409295713017886781175295443739720053676922558592010969339438510543378073492810817380781186577064716879052019606475813967436202311927474250503789187023165597335992538586938606264085063549739670678044454968493951943221579803748151919023171935617670015344755127916316297321334900736431877605148046273959050908807061367271803479339807834300853796101753214299291278476095919124133753470807804435493664160244854588651872333154520346601112833198179919577367893151058940618126289163393141967424251652336337559394039912979693811998908902434876932488250172106030729445152541623776028074793307177591395341857608902887538909199054969156970923856921051710842609869600840666935584964369181229159026135935589049373622513289029865640391059370596317012229379064817086669257456911032830598249901375917284357727586739545896265973561167837007890580751060479440902941793380167960675060804825676964410043084889320159840554334929911518411356691525983718219793258117586783914930890990814636771734592807670467642075001427791734900858694519340927809367736927417177745063276493216873088661799778040624182982841341383970812373285102267858868135529713145607251174755499427140870387896537491377800143215464427235436235821756340716070027319794489435933231273656785189515175685646912460371612881735879778955344264589230255619053669155802369155497854696102160132704521874091678148449899739097632121980599062356986266477902120386695414671319960814757041768507123300148888104560168919916060657184625923696669799670611623620132423241830674169150003750263627294224914186459055595787956490220123591134310098497534489706812790159116131768007495983102408811401728638167668859283491334061344795390697821993270955916058468349787374003277272545643200121116527367127780221994796293955359276975204570421584045985299363684232355619419057218211355554099079348124295635344821555378404122720390479638545864133372546159144481331030403345698684651178537370415873002410776698331873695736821411532584320894598965010111099645583545968745476742662796209029020453972932803170663316280365057483200946380137981761091851621539423667733929492906208569826603759931206013018170695752094015480753249090484724622298288581901747229762043264880454697073428547802573343338726485832710557287327738604420151145479888155908543459005404863640905087429597829006816656972844700401626958764895038324733470412780878617156168977442701765419516099862219297567722614242076685014369552284673916259849742929321056251969275786180700726326966279030192254214879499131018622009481434388154106772039835863221768899638720161702496729703817838208743463701314064457604133971843689939492070200224396929094557838026923400702862744890147086049119911044771348946574228152495704771267722501748728452486827882426714709214352896960474028766514145993417864991144329604350649915302444664374689251673723802136914756227565869868582228461112478757738473387335496234376458123783476634329381998462795563015763921705097231478400918206912728792703086333314314803081212375684619213373162112157056565547164040280516549746602706813630466234447391243791451470592780440846574956698092502344965386601672297574211471854418149566436793477748310516882173955451501989442593821764435087903520761208430086055295428718804620008848242228624496666064729586684357818936972004920159639829273157327084796196326701995893706800448775744310947370082559068771240671191658990753035016224953908177138043047814318998116689608501678692305781323957962274361056377286347769931929463251681810629438201250431555076603971431381713062093865785859094510212559024201920145566622864383502090822382682630292806079116884612518911868755272916029099813889905997381605003548805609178057914752667150635536120834972686228998380468271990749163086977752892955340131425069027686152712083038405309286187546713343341187254082814673331523643997980603429401226954550772346632070357297167777332581344143160952951057238858183821657076801331090159847591632165337269447423288531811984745151805086883411011865017649963235476488994211543442376392499466087786315621918176182116112297056148458077430321322722744147722508887316091376300907117607515059519125080312081947356018055476727227730021770230341943440578611765430554760649494563561377448549730885816828267450786286315066477346547775864222624746156771402714152413756044937953059177229394833250048354660791085811457044369076630102433149246375160738895121632823513210902821865820877107676244867537147550228960388461511733566737160939643730603394358366414231203768402569939696611418053199240015592044672281160825025003313175146976967738750197079733084785433929848872003571794754233269448751078613202794187482525113014677827113452729237384995930364510815461981592774525788228564352830180960826858290479755932010894737986240499772959135344890638689973836142147791402188643360803149653386494907028556662028584232847096084031905980986804803549821682276013219295827991205955383229081660963232326265076312925354171738761262342503847790141591296145911032162750302680844880683055694260281429522914074456409857378518048644054376906996873548576736351432754787838899619554919033644741042972878330823695176060320436641020515629462207452176491382305511289616754845420323212360559243420569713277935736351647741693330952550714897535612863397616624402136812468427626214716940327957203415917923293976677652732748608939103899479295029998062485033150752864071956799045675568351298593602138694479794831022163802895148931713184090793560957698565430276279103726946957553788726919950644680177556085907413293164958472143436497163792803008650404689185692764327397596868425681552339429811681767512362505300519200383538141405630501396380154866312501537043742084991774084251247584846261588495983081114920345303775346726749774634692574826287489508260510150958126418227146865557352747644598749684170202514336259867169215960175072772289345052417430890664257606136895591862110948294864500752328325211228711893632399233890338139111029493571343454013543043649488035874107539259104934494225136032726896378650024714701985931399093862662302468571006987831830100995875898232945926883136525534779780108866129426185886160714349041284801470883530883385013272449736094542139417838075792119023589543092332610270799169229144841593516266701249305491889258777405519179451818678172583051284348820902003652987285455125054404805989848698974725637968100518310917072475311560131283451037272360013603693799692212598956647337862354194024485058864107623437150910324331422694997786048911908295855164853630560341219685822965996682546367542673036697460273879322849950591450480743606409658528008787215775246342508668365116872833278682065422821671403011556550750553378345010518406634823749202703037862816093802675833198494516543593365348278392351936922344459473800394430121409813775342133518560106915638310925978473514464715243809940958573642148314810231003209177608346863932719205453855892892814323202644821693714630812118025878690415032085790572378335212046426445369905262345817042084690233858865100251738057798442975218300020465761748892625953877729690156076211751217082051600145754265004658681791948550742869619239951505714578043773138973706451511131094380766982866543152970309522973730821939343386091086629682372365837032669582167596956780413816992589364538661504180741611885805541375261307511493383956520122080510638690453481154067494828725492234175740082045987784607154255246420172601304696207897399832609570623913989128577714165156171246306415029363724265523438256394140997052617976395688279789492436922806314861635625204573910784530512676463485977405803028317224271061091370459262471066782376242324675755381310943892687688627251821852348659996230504060627169831792188494336334461218330659097070602655417036251342756460393377021084261205942234575414165134904333490712386786824846634426885627749274126624585959981457319293748570156417260298400907780164654760063219691849926916773687767037513665970225334047254224561293414764457619634069572715866910944225231989455674108238726275523636284156071506977388903960164582568396129948701634772956632400120049027578704164826575816018719767247627799896533065159116437761828741742086102676477239008891496509113372266672353590774274758276894266951711675972833503302625564505224184368436226418928736129541435667012750800171599514319130403404654632487511765231812539837225652594118445473174649946703544146260739076492660304015722691878203553068521880094111014589111592805232410747547045831517853217734674090777918903273837344415963849777194858882342712023652761528569410503618401259783847685416461206754599702306421462844592302587922389097080259325252195926390773470324118076623721266109559592920005989651045961360330988044950518269310829064100153797756500374091091053350999557119592407072829699403855407835575976631112894883206750995765068038053610838437521648752229589097188236627245694304882003934749296385415176592081922488672819502980642108519103009488683107284480009479635318164647067738447459713073460815338934423830992594900356926577900454907437098694265096138402853348811671130831265617399580865360519356199438334674340007971550151046838863364096505501781640419885809069582573659112314385144544726725668931983620389142738515812164450796080398346511111635086505395453376532680060492957820790358666094371758854010381611107351052020802921135368224150633061315892653364617028795896276731252161926235783704243448864699680477976815487782013894347789477957928569870937193808020890842536173116698712736792431104979633830668254952821582655167325252902446994247025317953137190412847971385170693975954569389253250505997337898758826651745734445931942711462878328380970503178098330900157070383533582900161933078899812629059839174712740079615467960983735133634651255295508548202898952749939372125761292735676949124130767760625360166608176093834020407560030196958104101073559805949223323542383517666655243668289097799218972805526062193482557576477945963072149369989693247954578021546511489056836771964870050889475889913398953942948515528614923566988355729948618554919305735012646248633058803987702876891856291766203377168483431129007818035585002758457286222662503783998301681556315694697076846660888908794179563501862623117145119642407097195453540804645893950466076274581071775232818547322637138828835960162905036201456313162584564034996567977863917625556658063252050762089918689542143154940934253009971611775293218464693953698960560553063444822216263212513558690802919001661311505638496688009414707547955347914336945967480434011897163989262520306918016639291554477435685674530612710179924860542637984491705693470571654372184216509391530960850371748780579073766082036986099061010270998121835369401389860935393154169887208784029240106260975626141671078531965924505057335353167911078741429803655466670429042837327443977121235888703710214584870157790181878510188637162851379552122693950595369630801060955265302864960244370688320743081793808935276090881977966984923668448192833651968542979614046766376797240204424965615615117511873720992537631569721043427750520614863330170700657232970680971382525683641946424545404981873227037294205066870046558288132708856700524345641219349617040522339208489323903477384526415005291099212544930227831280015739092085264908239034481928634713508903037218553066276392326494806483868536913151398120492419199379602781390054179744889939645116091159754543144748793405287700225519407555760816402332025753816424553874398299267016815912646170821673702346620508020275908680737837052178891607734276746593015097545651486089134782284879047066252617533486175001622403036199572914936221568145724203794818188787780061182009595510213934017522413356490454829042090917492887999994026640726113371513761264751617548089689162585223879511595898353682968419097130935051381214796323140372257146765123670207334409642282624004832093106714487433769691885003877412445303679996296147683873005996617839639638963950830411867685371150867232139749140434632598367754129198696088284243805615596208161027313261999333940167573726689545189888782090680473178500894857285537170781939897163971950982770125138385672887218750594636363576656700259783108910906778114974592269433071699111972882660428803281673280138247400328774716340797458334018963037118433608950650642428229483767825811891911871924702112947941432505584906416344046725704041019144573124833168956526046577699098784762583056050384393340488081851562322584226228436554268985515628049467858072738084813165010796571812174564255886057449811896864029931866289565458972491746516380828592651744576101578628935612999444841522595368432473631143673990016407888892144913673682639347149902599046015260481847449135224438091670020996198900563860360172224094371067296178759185673081174467693897887692873420009652793878599620440562967803939322917382953088615371519274837953046454541096837785740093230296252060743196212176996834429036946216006930046057911443035084717137481620294719107680968567002931983792302561413429743786776754817902262272863984646160761316589616165311102491841146185116892032043334971861612403128600387613812321170724817996328996280107768470107844800092188987795922104670186825507865688306525020230172129558747502567700756670260960104987331876405902777439342145097696397592117392399116927392562251063192411886470241482832398131199714764878146175472457377879796497276760820593636858714261348720054296939645268289239170106448591517710812026122366503299255552685282425446433488294478165377769331659080432701589882465351226794492468253698691871359170458834223837347563591566365273111038126358239385551356318262621247495605987951934255018561028480166979543389810858074476033202359629076625893189802375253002194047036623647571503835516680130536225251933734262459391173255241637356169174589836882370579624345056244838668192805784891847679908333161417289990629724923966017586119596863032778022858320822872018445440161673931015457555727146292063950118915780248784178923103538697488973096028623985819937077619243758672571619803894710475548881997534051051844283589745604609330100282083262022891295673398360494209184823887755833729206694416557637842936567992506637453138036221668572876565994482269843866558090216080971852012210283049216596885968299713586903066295357378822847181504630591397135544591951361268205592958523537210698965001490216907678595827811117934953647974120003959976114272027723096198758643582258439084284777165982463748909905976440140685094344676948515231379786626769632770750563531474777619524373187543438317616562737434468608437829149522437972352978197290801090639914163729669409749500831372269586174777935175013999222897285759701716776834368038444646210329200455913409291393383434351022017226974359450531610674256441935323097043121471428756443209950942683424989945931908650459790319767535980904098536570655651272391663166964481970628322123399843916010265846022221809902634260637979724908555839170691923676975313556891461924224849693929023855555219716504655602342532680096348392310188348209108688847665321882443414793146387768315317680340707025952834537797693302217525982887488828806629575064358953023067552724127239930103849039817819382774311277920763540357625687202402542828671635502045085074563912373886099141228565491406607961057100962972264046765095914996740675567882070757824652305455238742382337768963163214437853077888315443771120571272184972914616705268305133594805191017920722796208953618535726606542175445986583886825727745746154795844402136232784934459359985140866860582485952494085576112163742642652176833766896307845693600204031495881388808596239596298689348969301454940256039629797450507904086702018764711795053542523891233808438122134548466855799507931079616774177779405775557341261317318819468817478279530914918826614375450415307087860660078365360377132401509486331564972208843903216728118097415803993850436605085682549188459745909321005544316097817113227579633494486134199299866531528622280298528280846973886369213752894673445411976517129839719290314658572085391793900069479813067390155882032232376032708699009594241530124151202023338809641451484748575635395050746901237651146362352048646972259271647854508836694305661365466309028137449720343804895383509486159741950883084226243918608626709718665675794129033395165268451329760594491286109909684190854869568792735144027141335827628173031726604589952847381891565433580962518652970031748390561057145157760155875621154199818209807640844288835336213712164343277984298113874407968679657430275284501417221387157739988845055649728219231799913177638443336489430233253003387396854404482961635468486942863623567036574618019519234477753787384362759126908593977315192463363572879054418342258760916181760962092735656869561688204386184169323885059245535389951862708061392408629191862723528172457315716973926802797585837488072139222728385680390688775583797612420289352659421243926147931650527796676088342905935565514942917238795343131831218335455537565888102175183306763614130108698578664082710667727397850474020603226074373155230430746327864293445577959423101185684965068959742579693820765075323207675022731866773832809171076665840305749481432029443457470998413248810728632122340910548299689144628582618786237796736565424276064408102030450041632701152725441631811772746998247755948911353429342467459387353775674177008293809475470691247476628241161672898727538910725416460711437117688938765601502744160032977084137022856699327280238363501897649306642655919565069529866175946338734733116255170100551592252204936975768507653117649630420807134088553109127071082507447310877709479088027770052822974678988852120972254406983875192811657365211167692341132935455670456463266647383797378070344385160889606725234250195782892543356246843194176762412798796460380108615359274788718504229876841888848748182649893037258527425104734544143954965448563000303172758176756234586879957092097170144404585557198261028304943546999865557049332620034741481762242701310206762141849920467202108336935510846925423897810129817441930301449531032426233775712973839295000169669695664108337822471840673890092244141117882500907374070689081004780286323668114419776118347507676213720093358956504493493818612014687128838178154158789478950443700667586393158610925329564254436462312967501695233253161027857251596857485969909163024640414562763252830855047077441296651292598184173654613053164681727765344255349527265977312667505349661407321565743514547056010032230534040717376778050919573513200675474595964557450523539716250160144294266252774055358117956184002624559069593851470785754557745268193715857405122500353663146780263574613914404213218652987708920430946361814401694970517628857427976596988268723388911182968785725486947156558478893469310952099399567349697878750532254854327291394419848727035846763589195681969290649035797024791257432411472952110951544019018340493496093577123284746083272170137817873772349392058650360025761042379997749687258652828742550815857500094441369765968373728232564494472789625150456784267417958178761666406105295369936019872167837892831718948924171089123243897344663463534026242421041109058636884031949327520550695588181984010683965702961726128281964697542718758008245335264644645457725219209389900320447212889118855529940174781065267659904294619514739427578451556878484440300478311728130632394296914469869887829585013096247138530751469518352676310634078128680674921494176213766549105842012557316542610362362264199367115575241591456325256357660485329432437133963904241396633842512207861733679901635356015321779456384573852109598645764798906039283569161197839600663004363381172059653616134239474355350071669197000567062796252199693781349126507236088816005080725605080749344539410693538167358110866263541626880787692634154615651863760271103603781673325400512792993709174758869977968590331591016792977657560685082200162207604625037080037761236231154795415243570919356692988815550078944584700776496680236671304500182178157717601184749905364739999911875076457218430042360516460112184001486883166148807002564087491126465365792058029673768688842962355068489929157594189859243885941353902258569844062039595299416406775316248849211319793944725436471907099782576222643096615974770621280313389308837987840092646337828798611310066300394414751657114442642624816442113544008826239391095762361281522807287429304654447192254851082321743682596831159126797876783671998150377654572871794714605220044652002308067018694420981429528177818283300031767902621891690971000543979046086758098095853414266453100480175842324404254759227437299734161217868333842711905181249325371769441762506919141336395970614547044949956845558596667992076784215511123070652130841209264987788273903589928847835616560386861925319029425728709749718220300831086969490077949637239251561888201156621382711087184224050452760646624623565588577374211448213769345734529486979278206769009970433465082857333160017041909331798118800412425913306962069203997982972608265975015634804583828069624284540689494002391002264781682715106595617306906250023438285304572662999091841442276809528209569095912019497857164507282546728175262201241191274752458325778846874591441332485584700983544151941880296739194276959627697834151273631149121815640552452809753727188616237091191404340688480972873574888225962698162942397457501417189794482197065578351191265316455941898113841366319449256502693587729436944313672009818239802473231457556302192987096535903719275942077951174495317132868329459235009398510133021406007970676755615214552223382744761318527004380970418841724386755376354077836293422808201936117271442961894789690092476825408307815553749325484928156404967481912377721063320126747033882110155329570345415937137498531128256894033970568957362374700955543509890080827005462924700588591470626894772634231674722203170828405045437621875061319816551112055960107921018390719032062955655616802894848911092817520965979809867912201341575354420629275246929221291227629976506034538807914417610703414634605431524549665688716213249676351462874981157418302984729043724152059687761996895764777444006831949395819832769462459865797287541276634884907897377184362311941066513720212705280447686198604454153692593797707287340294006428982358850778579406533972544548317575298246204743398771266879463656463054499498115617612506400702858779023007462239120266354513424332538483090957954084252152777247767345427964832421463245457740605116246178793563546068072702550078533735529364807628959485503869358478927148233169377800626953038853723656309059434035866632628680956587561718233538766400729551156528591083352306455995161120965297196296520057530326039576677003741136347712527538537871274325519885290074085148113632013313513287384067232208750798874274868337801390441472242936158324126990029000830798377477759618026423232452761563114914928086262949440324530791313330154467021023714424477775240318074959903987745186805875981456650009621512277372480085733044965613832969523603652402133538242348985104329871346408358339416233657619682194208516299766705707332644085063780168590693355470052691693865669988155415118604486286588336420408361998156154331471356267657574082612000621385409102704093615869191921703444381989015967927691537266989887931393709276254047289214088212204181574690938800914374311704408460333735681423814448244582203559173301155631589337295018259032871308063025539399052005292534090959969113362614916368890807890598967237255966716790392571594575055854832364553655469164692223441324975342263919997640604237862333460133956931028415912747917455069009441058631502836685611496162716606625715045985622174883103677460915109462866937078733913979621118757007750927668763949425398824459575420850946146664202914954386214356193811061405633334912690275927297592706297887344411769782697748644789499808962346264681899033608919116550304518742214982927443226817923014378498206917896701945232797540072100136718326003128674881555929844336978320800320767451495028103724797348587906988986496378209644714823190400232021519609450776261443030112824917677317527571051490713026462820965494262809260121688428283475962577016719413842614498083776001023222435833567954755167171981457072846881809862242061498966883692021681357694082166185324769438357813388877181617067670719126580228443796122109282585019350647210911264938588577616300969765688091681262955020948974411949800574700702574488681203211506855561418147640451981665466088886668642448941359941409454224972738164688699916191251175547291416144479939961640203020256563000614080075394385235896340576715175272899419435325555188629085395860904858850855577458769529806134925759587939334383283853749616236355370306790252798339791612680316367815761698251281005667093303681245096114990569233008587388881360604022077127589263269062401964649425351389045488612817193447024475533569175092243016892168758920628616637542694808729063747572084959334411932760950833066554970785926036122508834456277365632758839861101746289202149920859152561073343529813339369694305451907821053486298676198100372963488474810984325424092283786653739319283513569097560489662061374977928213862147514153036269589790827321868879910298232743699729981641183176280519969127038899769607566394293922062308504688636553511060384147378726944730256653121258127964847166450464738027275489615789369159257942029817374562426586509209684022231935759982838774278496436668827556082025524132702335208276996262416467657330015374706879284205192920311262669637733861869671788733234715296802896184020833938136830687665903809337620287462446379196778530914674065093501166354971362941949429459565037976271048365200323621461024152055957699517570089772420076815896885430900517079843574068249827655986955392561402517758189317147563177610465771583362983370731297067130197645077388178577410431086662986255048788693223252641371817737271839773826903704241001178842031416840924232251819976992790001600701403200238345695410943487946852694999037773043581732552792078613518356691590546854114550319492674501603347569873569624301291432796338402490216308391238696203014642900835646932641657243843060317477605014338225357918100518808532981088033004826878487409325340292500317127481373488544319874501293043117488227194000633367849257753350141307505410202830568895023682090565932423757639549625656046032086481131268807263849521717616790093568490697381544235290918418263044259390117665061840153542165295037159866437234387889927560521034750290445575135272562271758038259181446323335899274328061811493079865526823354934404193176182801418717953844160925100486449976611557087684057564611867679794464500735925813714512467787804464455955362856708369846183134595052147806040652582682166613963222856287587321396359013348421540678787308508043393026543973161946101324166821180631894199689877478278314896956386393234874241177609484470547834416705689028754368620074301647473500010356404441438063087795242718736678475919518872989036640455581798528243756962933695522148589475963962077801674513252697139104191676198011534444189769946676755871556165017845751319327806610484412705798180407925193787965356915718420769986502464907195801281620500816913942968088876857560291828631050794923658071549078032711932414762044878914970855111363251264697837451361599246319502268968347225941530500775632990681109463228199449136460036199898979712329292629139682630412567002714546876935984976531444912115346164996252737169095647143108618862003069544898129713275125922712559676091098769839903329475691436683937679198487347222892758754136429536844770007928270757630028697417678498520884145512098462774633316221647742005175586387693511516364328737008339067770983228649413956258187441955961473858652547072591255761414332496475977821120429292143841926822771241791495740720468367061399636025524541297645935800723885765146275495986171851778120180005651094677112710488045604971375876512909101722656187516053963578170738135730836220610887946914811651212156148516700281789465495107441024917098738801681574396291659239781098700344130400614638370398161977486745220611570734710857741891699337318155083708183445133965321750660992164211117824646562282799307842913102940806115682687111411281442424535058834427638319442921126119034813088893464429213444184527833068282276595712668520156830652351188939280367522422055772412916217199050103197438019983543048666518071627940217646139939365820879186912872673188638089093662583008897276991038051520297995248257914615459217088319982796924199627135548266402607595080277183645636924238502311905265511766857719397645201879397816813248466317726957825445892286055992376038366974078934792056370732795567525972560670571909435092825963412854439143456904455013143481383278184864755489832405306339671101684210521212054015513464707599864587311258699264543176990978858689844772545384564303102660462302640545211838831744478669151207168858393674884257425192939482289869829432842057329583164975706921746708858452472003858661781442882661340680447023965618595394484242821275467361815852830736245227605007905797936409517139906430499886016249059763669564094154205038982326413723232351968406222112691246184067714453867827996975376592336054647498411755661642315351984193838013975077483167352882254338800511776052124818706391262627878855254741092918397356707637091902832656340598830722961845320326075828188440792914376228193774823933988091114905553647000509040589775411132527008485289925025853356109998104011770376366169165571007157055081535980970313943943076782358893682294484049525849815676019791314303140651955077442170067572291199427368346695936402246987726566607432498942572097535727073584766833763458793792990625974249741115106698855303240974129359637195496058716565807120193071979592479384547342057323890566880517071813269693781851889851735745283217297347211136069482171843426070901985387148407908186409393469318947567908925595364943844592373057311697761953184464872783549133548163394932477630279249623328892164979257940959291303719107329879937448412561560731460960755341131058834215573730755780007638937521205262113903022767202346973529842954491082502906904749836055291533083559400899505563656836667810795968375979655467233378119608003339029803800181016691813555187197521785362998766957653253551018026757271670648243901616024951400565532464777115828420087675070300233934046744296721083537878821139026183900627824482297519970089128155593222852656011040760731147310099179407570476170854669588585280216177662166563597395920767437299646817987917062653035074522487629762167852176870662035220797353011962486952400923173372021096216352348611761146493993310993058936943310571012708298775607520271526974281906965554033293721592086316092132189567205055446517677317589379073810086177258896431893371385016019048748597420332449695924239072455228652639047250684166236694895010477177521434398795940031775084379169966540050997976595132916868261788406682089153654079308312130666595693581916460405636210907076799365229499479088194225664240938514941180980625719272965957364272939170204437395081136643983891762830526904337797710568349812839285465443657979093476880966088870019199909647301276243976874483100370993930723902479246274504729240346178310037989850631849137693558676744820282521315902816651291169478670168448011451891033901423071669815343480620702031516925581551069482196553441910985297962073601511632624094255089630755337694878269404832766577519640090407667605087026071002624207507441027041398684900772422559581048467111774553058057596937232167770472714688608885039434069075395171004637534449064225050917692807490703783778275043453972588517363432467290853161267470241569531006428938263731571502865121102338452108050247999212798301851899308937852574126901168218318166155874192107745258021460871660697308186829464826947945824247949621891778207332625447535036345740248217551187712392513235644523691495275200211885056111692885913842777862785726851105561953394837265852052179977588511881756159766120216565692492595373035096404984981376092045621736043183593298511041694642229038068364946838255662425792921606599996355896987509697783865976311572142843963720753999841839338907265058246816917750838480868469124147897838942993958225134876081124348834234345372954536121040970071824719475967715740804282254230998832036352537628169572060418560763576457095908247497484390792567904877593329907714501813507414138124287407199299448598022079543196481562041252278519769281742567834794874518465176692862070334188264231079114398483713173981869085618251497930320800248089793434155122235175117131652500317202197594065821891880130515047462284077265351950021277004316927044624663811133544501870412781708180161264114724478370245384142550320010756957057435291178348502824796942373870181128396825512755785225885563608280320493634155060227651779615571181981575804528495205886442179400619040134816200288323619210596885531078616215594226726343225020813521783635864547251861125156857259928460672293250604082937760620573984734399190901164546377233191034642488830443583503771990263155383526902858723533072730119461601941350800572374986086227332667213994852400377625041855044785804272232130549504951320743797861321431575602865555170458126657656133034046736653938294990903483872508923584616124122900939809908619370474304589247539343782987749274217327314546131145577649371909520341581641523834381484404639191489464124605991656839056366998249902332469876633806596699664775530911478591405179269150236385892934043759241449695749882002607476418262946235074230281061807664403373613210986119723429987894025940027503954365230394750078682894342721175181812151560012979337695934720625541833585859795776843594741572191874210717638793858186266442070614364404205306316057581442073292252929723648735980851140821004469818437987422595989970854650346997513913150473122460681045877324070147942986442850365677317580385103081400890110427530471323560102109465802374529826685946361359792166002878540203588135862091775319183830416558661758226069434114330194215656119926748166205600318207402935703159972073441877672605806723496632741352632128336050015643642984378846629683557143022529396474175070239106070641483276187721031679155870189179065946460303722841487828500326914495069686870150031010877823842388664046109840356938404655001077199940544494304811477258349019486896649899237256585133845023891495827103922878640431721986687833575889988794378814819405425770673150404694533330826170624836965063164401171471593257909429004814696453024772677886333326311984208302302331506519816825964115943960737018863270630874601997253599936298509911172470494725332082582940872633473716742635908559687161470194220003425325027211684199015513920382467573951853038406361238008991660747428341683856446970456678949613847582196771477195768507204840096049046451989806742038296418933883961438845886581696974084534456591598097702175270307285843153451628062587329791131506746390885684589819393765728978535571054427585664597074550824015353185282048568603886910234727973266239104438272862630618957204558838085958150555231960887360638997850989764091846960861684170260861375572370541203842264042827605888849781200123616874098300666893890417105735479498767261783655291547981021479226257062897210485481984789665768626532659355225729336269493182814419207734598153761728995064476532108535559684241372299223657814861862470990292164802804748489297134112816142869262900757291331347976301110631111840563387126420094863391633745336306819006280512675338579151316673090137472350910869256006201417143902273913197167860502168397458560660975099343244872953749905823773482651942719433280524167603371433129612052217902403140897456861519163429256334810908166336090905872127683981544455468862101403875120069082671017448877758955122311069615903062571805665655127482319219045016761227448012620580653558597974133011419158430933055751152026287693605662098909797405894201645432457037604022540998465331044313132999419008580976914363077202274268022456315974600954123873457098704712968558939445198305391957994504345872418747327003841077482178491759080022974090323835596015219942667969211619812042999312647240200536498576314418499225713761811394709160978327845349140794290420426400730007912785314592514513357723108953626145513715622466053704790076425457594175033056749353078858836546411886378715402466965245103430208663839429757899260075271453714424186945317069963178223602029387038002643417914744737222922901356145904880174753744605767644545233906806528364488539994559317529501392780325525721279642468063234592815613656973594445529606380563258630745413874759402800551938034078732223001435986019900569271752623708170593103222881491930943486066413004232618486121057907733483174213038985926600447274293583774033940910466909225808209196420532387420845622998843882194617865371493196776743002971444354137743713692216430934148769490367796660713070463699148914107964849250855419056219312145623808368554914276307527284324433534711205954341354281018845121623755685788942392239669696023314841959024154116338842982481366407216314420361635657858509877420801951836596939640401577222572499168311157496284088193114815373172474150654759201051133142248451345519413452413987288786651787290770996671723957399767194382173360426982747793905365816440396262920075067302138611748125389099320054039676014731100074525812351044396774679056552758749304505304019791337067964488063007082764219258364430114302805017310915070012516221002486562287888301040882929477886444400270909439407017742547266020144602970415009142646371111685883174210818061470711833065375668070695511303125788264565054770666782327278666444326327290156474113422825805295970391209448809839099598026173063771520544991168007722595207846480201881095008010319871830226776584083073231792578665479883090134395736932059745953244968306278892048700748717937042539310751569302584535538767007999468926752005563373185228351416833189905080789714234167620585954457707108394558522524255891003291691169897879102230801046700555605959055674336942275642135776042363887114338018539050284674033020095338506370416250846817342655459932907586525228013368121170791109360830842543791920547671073325103878299846168499430985529862763048510486390814653910712818838205663765957188293693127009259955910714285982337693804675123436400963441116884783637284243383891188633580688860069921712540286640740864009268720337284051964310310964720837609414982604908057777433886817372460735284689527710944922517161825561405333200605817803060583399633546140453035840537533723309236367367054215909870083720813577722529677104822866882401160886708332426188067595411396937252049194236349516891532797287597897163614620901071802517250880346599142944677456007419448939649761807102257435873551405157748304736554210844178273944283907754266131426966373103063391170653164498919834259031250505173910994617153694916374753613763390915501223746457351192737076015606223116439971818259357724226182249066948776694320665487449709775582677139957531272079461331751134465743333426663080304999497350509321559666754522769702069979838817256097136828792072015601096793239639618310863357232599664729235918520618696354391861964791995013369678935729455974880959317570891899724265556620603349477870843892628691352556132153137330486160514610253975733322187403485025342475043108683970105370545122268080780838174295138336879426567038635047485150065803275910971103053753902024537245820707548113829711268095113296344314115224624453267615043816533740987586532494496248647776765066857675309623508901901173272763013244360081638933988599808725297826790304743429577075376568447446051032061456177386771456168026563383167461525237577788088236000100732721372691263100082225240259274358731985790963229503508830531687298798378206575001191255289355665438439213691865952514915964627003678504019569053603018037763613594361623897769207377897523622267709190113089910496887673095828075756786517529810169054320734808429924455986263975118757885497106192937227132259618588843767809216284312613919206467113071058497291892816515864654598945656957046148071325914822640978539835958809652624547478038503727658073948443575089854300516945738667388628085225118690523634119905747387996156222814951272343418588338952443034443278798864347164210802653674426915781424477917491053031062581735941896657300143841940759011925546542581939666108566670896640631642646346238505508418178149818211580183485279123315601369730339572920201184101562820345049473938591518458132954456680215604247468410299662791631960851658204417018326010833522027796933223469768948410167379539328608415084688205515730701730723114261033529840854189725579634930461361237521228187695254644016575241362751351487856760772817478395881831117004055568750160095955484931861156497801909758696472233713863598523205948411059601375207074090583720602932764506766529221659740978556837350455059717893941711179732993762349062336345812444868275582073134717588854641479171608526293901261316554376456637695631974199549053566283063710485483627188150114343929229337429514092016319977406432780749235289481052173089850210463182285325832938904016728280750265967479738476345447274674527162618374828883453487213815601292459524824529394540780642494743907249809224428702934062714408915562137314948067112594527067062905255948421878159908947823312365896227990092717004946776876193381505384880446590678858845651888780340618044206253275967565435012887529243340800213293156172869261023702133171741157145808325726732568603895517802961957790993738135962380921097742249704875518174936385226569196407691167005460878149706566488561957224848795230564762196249831769409360806322365685072799015482743502236059545571204506778214274770939483942120705037049369280119097016709922712070573042581744660418307414998862088942939817019095077812970520313169578019300195647291294923125072961742090322763194687184794714560545500344851881845935601647290095794841426150881917506827705879324701383488078752458082491278446149095312039057227487567688221437033372759782339680416316861663868702641389435828867405518180289317573845355976305719628743323279268505870908878467844429205333265633188690448558896102193540318027904110632560694960666090115521595647385527141800984670584015821366313489153751648691975775845056112069190071028565637537317451325708500296253944852521802107330872373669598087047517425801539084639812445653963658312098822950129374075381321115985015451256520510466789824153880823945334509476724458890773756849205249414842336229437614249881514141853752184193441553599526534921321107895148472067272313402849187834789048062163719628459486802962505154844769202317032455743747933555585033395946786483829981011730685359611556710377111111420981057104107916603574517495686155672890995035414421681279803030982387546904781282478887565259690174367096517608752658362450572436268510473090370756907243474264256349773427350541626706657348973501516237783616781119842812826478830754035744825957355022807501415272101519283644087336596733164105487868004016418862050106682560205377763012427562192914086620463105052249817905556542346954410006203094308924312403163114080981692417506457878779047252063816147282714694538341549324170053516286214707968637775607996997760270256556273369571434112529746938051344391942493038661979603276250261151966609335578749921749683598736790729942585968481289924343414745255476721803018662142811966560117207326106407745609775809575103521637381978456067410919459762155079755063510513836843786942804884940954664009702791578493801251309707635666050629828568003405353019614459520749531099914009370424746778432016092394286000231000216561718161590018070844625485690371820264278570398647637852993953554922384012124406761120666186180322235262355387942836454410287738775992765628572946418525342101878376950798629955768694826574113169849098313930263190221887563321767262441080272068124312378516047657807853834384459155935665701095536158681284453405926682986255616517030724257804573018686714399470611391970123602458611877889236983006428323564062661088436185933239705578963437387605060555319084579423638619802730476955595485303893616750953250035381790392236841212423374506723534512408484901728613714263269058079338265961624165088449964456459744739020696046643610587412664664239182582067917933232347018498112370354946163038550203820650433832521512725673851671485535247402899938383017645846784405897314383208393737248656062770919234583407680465970453201345191953017920091466498513494805149483624837536362820999248839657693873244045945142148533153067389754065768505313752190848834774855400889427451540440579899886659510765127109298489145941741032644530824631675718343167210472987745397992208483622350984091263010087551842563001028407965153929319497689598670338362762811842774855723037578049192718948243985911288616098504371899371727070462143152491479220189168616261392025369694908264503922402410381984766674148604278811889040792806527798466803051501734708187920567109474218924168636493407454757663871281056347547357397891968544191556622843842247277604850451770756131735618904597869828989580877578280069241059381148794968626951610265942389396678075803612462604584468952929597768936195209658165488580495440208674650997193990606480924577228071514474079331475864227795246538609508772965846374037761582139667496381175299350942266384031096806856365944131207166956199419305081962242146985088075047827042027758215500983608977225271483079969286020150528063336004856591780763323552980433657227213774460288179462066209854018228646592354213007488720209039444650762138017838914135323470919840339018848950416994431417867529081619956043324266241350145715526430071936665264732035537522910205727483255580027858620573850066392594058172385428885181616751646181091381501882446121045304716487460923085120547027612714211568172335150575140959664260137090408618442672191385285344005792505488443264721353093764806408519132017017247424129588008802574304206885470965678514451891209480830100022666446867070670278888498640644855802128731426324140694745796818836176551749447309983310399741943491788879463905259541034299979575284438611577473211832571340739386253653856496353336618638570931092568039658753260836359309989351571997763137533766376417858360718064245437926853971861005784245221504983819063756922229208750617973874634124655311307307894526482235759181384111655516213282031531877494009867766884380372427343815564552597405095988654256143438360025085964094107031770930380235367873003249507922471544541156639053197556314492331003981273907699471469242024616724278698198005528004315356112917632573967830708709721897637708308649839548983000407732630193946973220671697110077623514839996525618163770074711514233979907596818656101546074571239004707935114648886830166160445387319191540897268818965005447459398342490432757805810631831228417087153179600456700959821645806988405568390257667916354805555200807432204040748284142051887544177463568483224840632305360536330175214582605392827409960303388083587314286255630190577431967808593966524915609789196865589490653710640695583620543039218777128635013659279254614692958517554801015013348077270138887898670878629846055268514089795370156751667679284677868287530760190656751313688213380747550785501085884156649171448528304504902092390393118615506683424129194019338046639940936467201898260641082725452890792222128623926676669375476068932958879250891544291108393118677611986398897207612703990490047293592052887028629118735745529394378631090929811635142210821202586470520630101353315400295963373952680324514760002676231967836585994901777795399145450062511689536278154775067721408510563939216214328396682638672846861042386490030585206912879440035967505728450959115592204060769445676387306771237745643973818342962048011149797218508778251018014934661211545220736504440101696293961890817953872743223925832612752622680045205256034998013730171206398176026668430044299418859493594904363617062788168194137211042591776074715287055853225234501746821525567844730392925982087357269494023088866996370562330239714316080780567114485274653336811069734351841275308234386698706347602339240079967826781503988552385448934238239631812658826477946842685185275579517298649832946193189515958232112362815571365377434545736918621535670616812179530127462687959537224650930211926747295591419771344415375417822880981348755641036443072602927369651000330648389755035192088089503544425184414584665107010565666366696952108673987728912634912001333472098249403261359819552398207224299131494056444739924221325299372095727608142272295783233331629452607478775315943215659714729640769601562723936943312998601607330852424694029140109859753819852439360674092121043123666017418218638744356815638056454792798705850276438031729190484755526207637754593804753891505210187324171570395972132033272083792889250659789870374639548689637959559706762240988287232422492394772437083537216067278336003459939222504538020534802851553013511523638673096788484503930663727099305414505397781821641506442950657924727985363013443630768327325175126112641890425232253204721110651114996257297319564423895874750073178636287897158395243451099189838148342464789884777441107380414954094734276741707731992708124671235212473115799167474924489209759439567888809104298696882502190354323546466924823715371209801444509962120942102924044073969179824924633804730273107228339359594345776555927268863790109272387830935857160996816454045834194198431835324709986136252195331604008800223511801622590702002617057256823174491354136784127199007165474418563900403755250917023602978593315338906731608585914061932695250067291461781863907962814891924432069992045245941929064200993987899695878366963625536730147668275364436927414515544016256366463924260725283131841382410856321756986635524823827265181826425301936773109609145618368915924580255603139095343553849457890461921390159878141369078285393642489261818914577640814234076595553964121480807898025176233265864171494690227756647447438689809397135101334619217602801625991446553298728080337169837354049075294322414521452124512382427845309229039468691273766287330289790290709595005775832842055919871105489979453270027943619931581180621987546352907103777650037271710664712451960827034148875650810403822836245737531867255204534041613283159033791877377596936424440477967999129213672900866388942059108581778799316967599733714964530687348926383630997391306428216665904708309546477787793420564397444385775963979331694633351732243662560943784758239593921992261758064545421134621386078286307038972061898545958545527094640698220052532473017742408322174175137646415029476763069525175017409809296703314767069903477409517698584374339520487457137819529935129098438517260556586660664546061940364064996934320375699099116840974704909464666708049706737845583570061960299334560940853141640300518635851736573687635332082511221822499485178476868773116073905923209935641485119730139697250300188667264594632546537754550877958103620409350352911393591547646640255412452435309714965987500440841165819667197769481479867759921997467235515262365107817903423642176754954127452711734988367960576848116459947669150286431310808030267112946575140154506126709435951731570977515630702901398306002504473558794064560306871434951641894794215119823838912022350718242833392384852878257451047097428899404221276821276065549991587966411133627147509022714231187968621646870049884340456087651634825521053074582205701476398256893926326891392859036039802087476250155407580044323513782450452577093350039653876537011341271532821826181813810641043232178840221520758317509044799693853868936117395651436873481888875164938599629796902098745041993637244030762784220038059917511841429775022392581176462219649291131526704675296203164650786263632360402798367418172112211465692571905044676922324645947821345965243585491061004128050884987674147545866880388060399425541602672831748170937181491855827064887855310444290701588230175198611196364460176921421088569715597299379934258399839834379242726275217308083657216569542522655578317423848305744049618000184737153613132988293659039683306113427262219656146680142665507741359917942935485595109157646172583004431498300463645561324866290636334616065782683472681015853107731898879074171299943938882270346243334579463975452565935386772227029588505408006006822387234985274650343330402045184300817259924753873689963208924062583480938875298451437927304234382291775252638291441879413734765195889229979022026481145065813440510402017866157443915624121967308279769001785501234477469558476573912194763750835725872219455149033699865566178168544423292924225035796850343538298620556611312749382936570426659314892250571602965007998049972058198238041421694145184631893678379696812828165651063416178065473770638618985561866431028158552521745895846228450967360423827434907145473219852080026110727312518973760661527815645944517008272373875350552972130027557308653168179542383847694831381234012796763351131619864061123803687276905690635356104269234706425221762148569110531537325454752429470523050421012561726042175664679706997516070230833965423927194115242818854198439812047608928835146558110031494246971513654820201423848097933078418335557260073684551283538512838257882391280337274860434852456734736176014339063310105321833412477949379696191657114725922552856396804056551165974270045828611477857053192303924305909611464786902386864290631644903743996276640160476635439068811771924059093566078838547666268627642542219584565927367736703408960246299389394175988122683498506685045750492035982794365692064872344534484845576718399885431220574261221437982017079449049013395963077118194481324377698857237001040506016770480350087666417697093745800195794174307857729851383003596101220057325438848366358172569190260771093472127328640191021128167584538720006155552330353543575575041831734010775522255020298288487764345052331169980527711138969065462701556228517571877735717174537494998333049284764969726716459127719193626945388178952381971576948080352915135336568204569108184381121046119749150137190710141927668417570680954856150951203805422450215237082579963618333091275904172846269827109987837007639502421603830947798143905743607004359119682053596227453411982097791117251174065560820301889773981635244416618902142806400821741342885421787434767518269108918780204963712355866828814091306760609666868687799942888947900214491417152179086519495553528646355054626418065960457323329982826077867285483068768697066104705735766937370094236956452529127690656755167663480259952308848971339053823279155296894038905130136702786120466941623927023662964296521261092552153344741068486249889385327246189642769141620480608625755897906945844471728461043746975365790524875154692660163343710856355647670243960244495744631866604751843880794683377614917273242555005103663815616267530793589470182573986311948922276999777771123960276160063692061651683730981034338980339716877722047827873921216562401874663845188332992377053629857750094362481508825936359090407659110771226702714962104655250433115624859023485994434136237236316093975312390395902248510933529110141614142140271539428848665205994773403451543833696616885191842632975763681883196639163764559712308871898191480578000357284790412176268316611451162198734871616922368701194515091887999709262958857355324417707814448579882747975178599530594734481344397577955953031698984470185006187059742798222835138599518952681736934941059405958317805804567105008666832094667488416518567593487133989410931977142378145573631665036750626260262484695603480605723466181537061233557739824400395335468520947333544876812707645655940672234298029977318301801355128489951192139201137623293935188977096584970333612970494201430282738364396825410260479300990745550718324044894206273413262971078733768435784588504450320544817651471456927298683150814467585511646191794500859270607724085263607991152819775048141034072518644153452980835989880660887661752765043331317188121262373911881770226110389586624479819064681005493626472025800768856613734365822958209896811194941515666597622873655909257202020802851658540761331619678769245276387647806401797139204267001567862073024082259602219752275947556717707047080820627291460357100644801428393742134698694870788391312018240763501412467271624187344242611553160460292281560269407302976573323629158823571234310045083196533791246676046229744761780759717679175442559473286361684002178774949202393420266123053900054029805693880080175825297372618387613584988666766043293818437561570640082497312397078007567790717324798734298860357669489651236615960116955070404941451645460400050508773703788870336558074882654932002095294417022788417258171773608714214527493466326562641515405811452064571088177150972842694014744375896782073109349951385109455917430333425537744685200970132610073115093660253514812740264044520387288442767078977464569577946612909349979980431856674687107772925920624887436589294717197534372455311505744258719871290219420858982440299788512265160042313452698773324645619041049560279385489638401359035502180462504999277947742396584819726273540088038183648687142178910467597190495930551869993330959135388261681577654374391852102120103533628159171763329577186499485008319859989478302531763775836868478690891406588720089032567496693404995859578348166796326890285740970320232774906731314460073492634422284348390452458372997127464351072782374468057968936638343181714381007263671114650084332493436430771414433971135562565570080778685554229543765017471018370909814405035169754982326171990382988125182238864637305513210773622329859255236973035712295489632342584973726535506764464896358616981231978479184394306375383194216847394597549961614086517850305879266318789590874030258861354240251188027921765052023633228395694834303050872338940203141947523125567988441715875534431001829560810629444089860236019844103206067162070869950086143749983276935597933034497964257746215938814764536554586684272380768070111550244780754909212437997350642186746454945177105909902322041184873256431854005784746519355037703447059776766230576470575483981951813441084304986824171680273168525526964134735103591562940928049019625728519658354094332635537177081129914188302644513013962750051903633641795242477092567842633045708683193467658399736916851572292158113288268339629012120644113499022407531202772823549345665083184266828217141567640686132464282705900163712132057538287339992843667871420633782049920368404500063037789411086567876746640997144645279270480939340111195998474267024569266249500924782789977111611075302864777447639576486474785639092977988238751438551059864174051105814697355838036423471683275812845458311707239478159159383520462749463250718084314627046869184348794300201176403143332866833107853144506108991847724408928560196220940702207124354000320346816518874728648081189576968547698113148006109771434649783623998247035144562672002402113532239483839231309562059888587367736456095246141163233372696094648645146122071921193023533532604789874873157989391719830630414128126498856661292448624545057316781742672794382244561674513118113822275313290019436852967527629070007432564564456765697731095595227642352766284482172939518289512597970070990606074364556843284839064632990796602711073607247608786873089890315652606598037217104267694756819940371621473625078400063212403544890200061368536428330447342138889176015517146067818769031191198562175458348368711025405957388419330827947976487044714402713745407033930787372039239727063867676885536433271898082178910608897387223967289736782245089593926999324913347760654652620503758456218705470282221428189237393487293095852813867900296200008447921161105456343237998533059031213910208303996169151306895561479470797491592936425117243275311991606147983612776769502808716370888714038936697838842064684804206193849250542948463335846559780994002923565880530495226489695810815951535725308015889217222393658193333208997209382297479513959591973446368976170754525690210386574349186992432706385800832678044837368390448672250984693647727902175556999911472760874234158484599503370769478292858089523499521103029510645843970672282142992593710412016770533731973984061378097870056859735786730067518601772424510757096414889705526333683460757719198226785125940269366308518815607229041387776453769201103536768288171738485782167951519517848209520891231905517399332003180249288723517608154619617596314858849879429310348531014743843399933718125764730868926955763708613753638733312533979028536899377203555827621273829709300750431584655119770148915762107731644119084003159638478181613422443379834038692124343940534523608472437609712964190398496590336223306286691738765779957208580698969389088897621167739180098348445006312021167880119936488773320033183808980833487466728097611853079685409825724041886816251772126579250638524112241436638159416322221120863245281797200409225808379116053378720026900042213009241791932578174289880669361914504512757397721730921678074730487704047112941720075536207753382032156691170536143004805015958658466922341942321186495912484329071291271902564805640262891734185593006503106709766491017535796798483520316313118112210593449655256484639473619961317526720832269069882737659529330932827519790606990464957511430116261088297489551434852031241885791608316745051272837421768299721361238051026953820229318823131074998505459924505289512027603360208404364652902934643680256240825825075862977194040471969572297654780106183428643341290336177792032803108381203248442423093414749355822738455384066974425621231704279291555127120457538874311078317027694434161789973283602390976659791934195551346049444237707448406367121984487679074861106268283316467566453692192360534537044633527363282866999714348237990312761702193799678241018976298700018249176109462254188574717772339855549109086948782222624243441979719444518328893997076208668876863218356401643733938564728481126381941694215020293638389016141722123256716129594732317428332621921855431584057488767669493206162981047282640814666214719934022409874608648294709293547128127245136435131631525243524290924955149793062726502048157745109552871195840558833962369300827158665353019187151414571443027357797758728758333616893360910992914176991128249644722103510401221729329042458568459450016080119234592590287900407991910196031745825698115762479904863708967848930519569044847162110909603015116596771246545945100611595370051732628332870154677202732301952378404650178195600240721487653466013592406817938072412276271107629915068136917522414916590602821850295525967691311307993717699641734204971901878594089322483746340878424143997554984506578171128093744203681201630660573716081709047389096783712378107736545279810884737495501385600299526093642716729483687283997360710754216564980485569363961834272130015156579445453523821568445673457103860053547388216978515141500751917737553892883020591328339801756253420450031154190640773984660488360360508949715404314574474409046335783923383119172549332200087668388668123328420661909035958828400395353881533311862222343128658600810785600693966979942183944725009928145275530520643266781515169478740007208223582794959623021262152233039828403976303254470037688690226437813217198394178274748995545588578773696730584744616025213515676925930453784933889868123207687664514340134220761322510461968796849232360163175784693076482634930581914991083334155448892543815551157394730526302599890380616193348256840965352465145866804843772058768212895497020455036158745307298542455677855697973660370959628279695318060502318920389508216939200679057572603630051306607842153679206800068538415960876405114067600638097902243942601643018137327487912822998684324229216739074313677955844931099205378381655418740299122422959536922551708457176027101793797767428677255563452080913604738000827226614320479531996979746002349660108267445635959718379020512456742361813664074041251893111521401788147404517260194819642177847940145028765651661582045264741429869660733206427029155129757457220702961808808700144951954984284835734550735833546057510188641119943799981095595133650637099514787350129631026341891665844999912861211694021816774815269194097085286048684885151023824672699046936005716592270089077111816768280611386505419701626229873275920865520672743908504078988145426940570540838852359895257455988392132052313078759228383578690115348532171745709332540535867256143239229462295176364446416818378335607316797273525539985802104203516979927288154419652778447269533907859992384196434298486429845055361694360772098358399518980880040491966612844349114761147342586027796648768493914876020031819762325228469526691162013122531614060763598266588554335229857728279601216588141062001078679401383561297213979935669735869372308952934591112907322544817431118665307005300536018505465832942413547863426850483686349303025144671495468323562060932741221952741361548825860695022008920850264610138354505112035768619928224953617754975903214119464478043717557353881418940610657627737256872346695018044673209840875889442197951131038722628896309983164555045200531370988681751674067214402370731822888641420587489313584918260203807426808470259063963150501536358244508511746567870059192770711352882084114030235038694903384946461521767029932589514433301765710034820802053030521228961868964083994136950478500142058579070846595706794218760510245587946651710795351774751648991661753158827566513543171199483831771373468138543638889028647543398661272423212215530762332801305752173634195963815580217309429196119310499141563550859945284873060772938484058609960751861149597686492179456540805812795613782066036241678880514972135189147290671418764292699438808751342617732002748965930806676817961107380790885811867265685330555535562002249094465594305522503080591077147429775798922007034932308936268352445997485490847231289038017405280488842090848199174506390158792442321179952947920391586317769135693403659064386335075735035595373613785365694351548116526543632425951400702218118704002076885801897293761523184688676716085908396017687348960694139959807601670834899467668260806139670706414213080814970346284503317866593379986965274288894676126745652482567649044632366943981288563960962338187793292566821619350385099566689177301375243195397308402823705980572621672916393069230712678532593720568696014772399454817648420666036779557032860107132905834551417254392962995459175248147590078055811016000362604946391911993289447483779272126001227200065727586558698552917001239238607653493076476824154710902678011084712671344470423230116711504991901527039345670626462719786621035285136360670237354872655776887713723775392049232941239532684198974334165510823590037948088291363843673561330289249084034984012370505047130306178465609412110813859851901312774123775768139228830145735289325058748076466756273901455737493678808888501012233913146619927256448331616622615480652635060266372753254819314632745956067763470764999047027904646084834457889759740670750807212887541161990594909525623200319659521250721628279987140809557069911567702748942376752048497733099911724880470273820370021889480048995547713887546410887615585680767417283721686908286251641009227758204880042632902059007515083879461479973921859496469458649675478593489011280464220402552781827735301226145403414562808064910223788895361237704158107198882315919126417496759724103656410312842591124998301785975426432338386793076293689317459269654339649278554196969621084764915755556058117866225883098122499107214584489266950994256886028723903081597172402897384055586205064632529442592541825581776211451755026558767676108040841198807650893506766713225958833569804440391902454907628013639002871276793625823022359469623359257391630109289091378615247366169638173773781404725175067135112508148102278201525681220788157409654959084865049325145625052873150290838768705041405300342912269235008557097735045483224033030980673399902276764493470411975395906802761436850376699119651195978088001772984884662506848410620997120604763341341771915760884807816187265495085029026816740551075828312876636497863870122578380977212279997996769364906146910101842772258231349721732928140484759077181527506584818689652756547175511828902689248101068882863519292993464932793952762336614491411942266702237598785920607492460289030911224669602718204281739187991147291940413266966184862131578639168067987444713488813110649709420983877575522509874829085651385086732346451457682214702284703317259717831777835438724026606057881228751866937311964240408049204444632838025659161941844555218651509806219715852586771469900138160884092658588730732347327418999330569713531938337991826658562248316506711049177311438212380710524469768717046968144307269795191496540033612964681806420639341581753477183655829030691136647236171120382486618992368959370630341023031591844651029716099350903930313114586653134997989400260737032948448271099406511434483441905683549758517122278794079598503796076155588702394954814950526798759301063962944110889246434951208089375505040135367527554836203393069903984625369262451409754175704447905918631878067511810444535224286391827561997770020356631989265170546107412442170601132778621147138991303608127704720178342475222863882195127726512511316470853865168413122473930521142197815255245727134955153886774443224999362471745989142081449007915276387496058957840585539239296774925719250357274588824354495006073320047930050407067187643325429625518272138381264258403038538335484629743580830722292264257941288382165293028612117417633699945650786338862761856845405045763764230146953898903798946230717506124195952484364561363629907429040489496690624643196887178343611119772299635336219164116867302642850747638880432739730157380970206114220003299653055862559636470463729582123554595459025500959546580551432557727440891183547322502280122319243582200394769362950159063414539093782173383631794471929771926235044486799378583535790005835739260231651975782890554519916243909879430281016370285278535733257132788148033288829056577075099103547184946069751510992084920236929518938407966044103174874867272597826890468288109537086926871366399942085382271261741326626963688788387565131580660422119543728253428299998081629285263382415094020803624623090699109205824560944681870431035933048164044803657732500254218598026818690357203335587357244203541408108633620390079494290663635284726827732201115179871340506735459095277094691681088782481049353683955632476776203730135580577312162125498225642745379514609781332188310413313957104666320264679650478048803961031266422613257667293839247041781414662073196913998861022007027618920337835625350400203795821219835952335887665618529397134568902903896912474226618175574486614621756487016948659140152268832146506072977131678346828877338667420663569638579890686607351083149736350100597736999570188221089336546020709486422595930520165915522645727308309966086029053903952658879846309308471351815976068907066289114503821953843597977260707986949591341354539503374460782044172971118186311727413476505049805373012711227131355560962412395472569509743675029750572349803232829864304457773027862562985082829281223295115312159239696628685465930542363833813859701819199483480722889603290591276653937785888811389022857007091570093162921341392600738205927737337613642633667871444683705808759996167927977943996865197847224511569464822087334947210510927568853975450552380661519977540275653488549359917108641523336340981303179929327944129639237050614521467738812330040891097786920349419308728457131306435512397660632026981345416427877031006600417003542647844122102824902376861578478442543811158840841743032906424989228985988482844514062862566274186836311928813478321627956011491641401294099881602659850150004223090032901300009205744176869230847212828961757457135631837946170358778404002823690100479797354698415766036510643614742113077281865149931908691681442136759781670141544615918622520585284242029148772939471170649800856615640021703770939031134710273623832443846399404227725425450785945754065037383605120263791367262956817774644282105435449061778883419760836215386841689601459414243672723649235740472019303507577832777989526528885866403445527970572989454124105180740028766257516241473582479497410953317534996053393686532500354329138529941064692521830172076184740399285419699192497446091167842907246928533159648440475511457446306628984732835694685060816189074523866899359201875892752377934273534675958734475204682550837946426353472546215384017341613341360847892593842107544471581222814588331370208906058297773893245759534515724844043221491110958997579021227566477976473091569116643406579772593051609600269284752785644374028278538347297369629354479359938828969984313900837741983204304124864799419327616471056143826950569482978664295380909515381142435693611445717459692190890994901967855261776341965590178121379455761763799178019067443155895880407525616023132584082576874809688116887784825131316794543620647281130505605627707509627995946953052334968940453345260949415540987349350665048749744478706429118007294132579489360138117089447089482013638567685505514056970544233118692720397466485315700022219366078481538957510326941162371191259416163545002404763005629682197623279083671440672425228001027163422608050622460220348803117133474496316296388788149320043475721132958918391237749911739484286739425759220339156411408098003413321218665571285429780236970802423371605215100527202972482425752555162076762300550109392418200111920949577355521763639408561754974364602115162351994702875491890138103414609465296908710319473272284797841095258124770386204749199603255410984954478460866405496556916922654984490721620768260014070832993795754071213639418905024272454696831292643559623974933743709429547573416947863737061359991458399711064063730432761348067805050507529360571884190925161663958076584222784097382325662742280821190246805943934607868239449915828888374514876178808370053416252579671897893589512716416512864932275726734584618644289883629704219849910217115050126663428454027366174912158344856339510750791666972578310214354051583479255498149866718889949431322808178549597782474571449865742715203555935954299696662792286586658441018088634676001314929038601052007164613579890701234762488890803053718673501094553958691933348169266928005112579290690501946008376115925594049258412214125430250864130121410973260491404594143109854126049487164015539265943517261351684586735421326724081371180595396891257386313228647664210049904181099039111075641421027548385425195188288681921843383422936923052883262736258384241941522894268898641485551542382220800867878452373489726632716363432569899787800322765700945153297306111920509349527038211191975640696625037099850143484890700023521378671385909816695848151220251190578204107909308782911907421675507582877963447211168863538499369819770139614551569001853714670469557769192390917859237792162010794671839217820260924832177401976644637538555668048581720826144528259203492088354684918672031073004022583219393662214593589039825870998051246552658158030041382111270413904309731800566982655237477776885420904306866313746234036537575488622915531696445641972988998625944716067389207388990543127447301111551349533740346682698677121003545969746118500776581053470022837437436260570701782831344628718335584147356922464140703847860115692494804037353176567498353010110444382905742514155033491946436853063224833854422930986036138836815284493697968447973130921165566767565066780051083155982898651617679886126804525407388603557117954822133290944486498232930388494071574769995923140192619017600318280230652680689927125743258715369488757274770472570826292867351949366344284474277114939305731840852496900764199139391371721846951737280158967033411222867032401360114141546562969582224146423529232205435618841742989090485671531551547737653908398494676084748947848829514695378635297627176156834188530348704331548154323432300544402789808151298526917758131006436846738320179968518557524089377237697645237454718489296840174512310459109630372833386530981058221374697988651700275781173903309482190567735538734962974030655191995257539067169217262658314460486585354046418260861494195454706740699157410995356734707169703376099766548453961708370728899527417233534267848966599106321761796953276968514065418350188074819382776899938325176437032941894618723010671149450612070032052426127025764257149787410945158270993313827369391286810669756196367843148281298740900122535995298303476863546582485227019826426141674442558498230853946125913214592577749484752053020304068684100646977328152424142318994710101840966487508845058762185368042529570236090381918759314296307620560855174457477742944690639241482379858826470728709455254094259330787838790225198930167036441496685218695860054978584461719102316864410901886712761882019200082941147509918617703033075586526994036706757041896360891235816609517729768444028569948247123183959426211348139429745809241061449794263398206109834041906527905393978671449941363132510195971292209280008668324122873389718792551762165965204163520399112020130901937266626163929404237848518429095882796937118078758312302941668502690201865569162560554945729685425852109860236410332651517061388232229545866618665657906113874980156547170863660578163591992774898974965344174491360587808499690793799474112204723988313899384050822870638606548122670360669060353923968945830072398987010766909736641209772893009262723702853019692661405288843253520493578277452401953277177994591443755241805495635839912857092320578111552631526365245788639259690431871245575654458562620905818853201580324027367241937911595258159546809199545405375078141203643191406605331848073703029333069065034518685068810822054592748399154122945273104335375439960349729381984356059257762199192075980994282061796092455229192916716438991901179541796832474844218493234283046646928161077150303188637539663636697968477376359188775282555692027573826044762591820718122678025814881479641798441443963579509574554185755090648121617586108289692340688039925210495587564236950036315512577679189919473061631723681740050333369049113048232049184258837595953604612779959530364941671333375448126090096745148472899672628233891574894191883793975970729501550148216614090041679404868335456360262244942260606326670339519237803777416826642414316903361518352502472325185336617879833756260393900594504840360322174229340863904598568465697450655884859085855159633861374868675415331412650564038586193142321844304328003817710328398872636088675568431900224287649725413740917685457543534463410924130575244331273902681109933908202368282585476066571576196210984981471867679399770607715226702222721207545211094905264929510710649888411398772030263916802473056016221443019173501219361301466681789184270517836659562509936314237145076089698303686770941728018725819507065597080922708077110107999906811619356351295680947001788008599495153221425270346222167255192333361098830049942066705181512586841336254876426595722112176713530518540937991694771756118429425678126429135672061761201703354442875082459440728309580375706798299338129324381927597773701730090924133067084487766614261878389761209948946910777441136594988195361352978183976644195386752102859849178782398989914107713186780610640438797668011677119820538313277388340567553290483442099394698622458209577736877796121016215949122837904015566304001053992709095499383280034283828899659841607405116030276934259724997754099186213483207970603267059981633741450025338781230984256124543324581321083482360473531954067659611232970762621988841719051527855936407331494489911876281597966241071806101260564677422732091860461640495925103852932086373700693030936456182865148990612784656909544128408971863832437070911586767529625516292886912450141116124198670524479758300681911385079610640010556611838608976891238329944954119731967783306456931672959529469874657497690184620823662321076374921171479749647179220624732809922096061566961160295155681576291695104929237064283357218952068189641368257990108540994558409782353456226390631091560819364898752062582154830422694358256128593354018960065476161038214476994762393503062154916238689399713058028467359094584616707043953453406341098502995850897959767516646595343224028648679849323120543879531169212244304842739067291136194401096535082941583694829368715192649985410598491601242952788677741304921606147484566580748504067300489391314672752146884934049050951044731412684178190033216448455884290245067847804907042137011878109501560887117113729550931224945142128912342132310743417349056541390502667557093742327367745382542201910378232417603233302604042232964502871592659429185863439679122705311994990982686047755719769359456307962123398470139796737071053297583191273270773203420860890405444005704221505649729086349043954005318008984553064984146528819376204466975609550296216893405452128654732366629435443265246842114286792152791928764673451060114242005615037857619217951201760413694687261815962303154723298675041319723576019139274517943217604214703793704430889783888050366280662357917835917760675183332810560630088884073272118148242365908567511783646665774812310349084692427690112481957127258490789005883320780619781434210829056483642015683790145150928671802294491577488133450091077671572991576657110843953952988877518614213558375000905942906641594706597433787357275745891717893361701245666118029571267726919744275957468183192238741896666821732077709160195167555759644787332002683573334351112221390248618334602760688253038838848127632279062982088749848411745886653381318325911717754909021879921357977853001631696010696970429384695092070029955037716288661801749082731227984650676227142823111202194894850754382083344780550145033645528310305295650755973782301637714077364697726052751225337436618136275938841574796325611192133679155886073537573161939247386902526148327187114057259532216049716119308198504696463752551860576953698154246107728650004759047726412324507412638840067343502561071635467877982690581139367250144529200675076029215351399894030611914142940668964423949896839094455111430534735689894962925529530687430490084830206810465606264185016855542971409309754177084562587129067743087610997240447737917858369375112104992116621473539964389733265083799374252208644135960863906143795495995469448053326113767849227784724771508857299458285576206247515936568559447435341388935193598560521225867285610293760197639012291244188796611988716332053799429333002680668773920545238362586432599260635621893630720502192451030173514320132830347342865389515021632902100341798336212401523934088252109839559628558257204295779374435089161583087324378414307577689231285836162572888989819158647265026731472735989786581960093728286270630710437532109711667454415293987742437571129389821133958422967940343065542266399857583807843980271975844299056761809805161089466911679777932399400186504534441968789097182592397299130174431622681014292838320741913229359041130183196677813196424967938449856776825482235468502918905363475051740627835153563721140150592108133767599180740397996512971182584426895701654954316534492953613816885223896856816503663133642321620545224568129473194963364747366423436821195168639853919109351841603627474320996389214488383207480848050117392350587597330383224458823085890714930589209405610368800984358033922346375625872649222954907442575324535995405374750188505896370335584584383073178861720431434984964876396412757830968339103924095899263974821026117479097426032724224044381611792350172108778705216445198869404909037011644455565930689919935001400981584368477597577729270631027005900169119922601901144247020513442034777805628344634404572816714850129441832970229311883324875286833826320269804500729261441701418035933852620240836660880095503362416950857689971259895623297740574113752241126653550414885784672905553111175103744180600950232128597858323044552189849270697339744760231927756492052248441662320483800875519805555826919956820695782965023772399279025756444757944107845247372307694148559116612918551471822678006164358387597110940096644363171772751570157880290103731264653873692053448537329216619936127852816699035938239440284413381981191846056700414798006786815141398842792370332385279412870256045299661458765205300338741944382852767408502749298569961133450765359687910237512404027290088136168740429092940430578776326825599315980354913852169313177327837877527150611084830753735570135830299986496296989336108923758252415541139926196393764988936472807062104522039137683716299527213513761060054110778244202837783698561364432221894138890533759194477405630742021057599035803988736245066816826575158143337936516802742724062227984932611288833564930466811384552001340344333715842562345576942392867002821194861153386248365316459743787020554315451328449656890461802410436578718099423908695816517954216590886664566276390472660535498760397033772167724532610681108045811862499128455990920683371288832869058040100302893776412687496860314472694976327252808555976603449329828029167455750530253359758479560853051265826751153348605585231329838894635621105688869158443406003579772168082574547538446968039418107636681261478487192827520252063614871989586883689222537001718160908755616821173631175061957057008435666159129723222160115255093128796079101210253021138866195893713851657220241337299052256821384584705429836362931296749060403545355164014238394409867770576044578969090385801240844704720323204143446606555083294420267202800846106087903689792981560425181895378164712887732532973785386924359427627266013792374774588396465494924937516443810739939549902972044486744997410909346557788194132698972572191004711768111181756429466895882455244795117198911898617016599718709498775140942734650174063089140079234533860727141301442132627270161112883107613578557910456855583696851183822464307841949691847408868896040139148057430935501160460065364476642221953108796604587361544635195726516139162994338542181678338242766609714864189289420684563378311114065018350198234709655700136221745334420757845063483455351255797898059386894448939274065281114218578644932484072630080014706367275080412773370645960979615724061765536974499776822185793664091340842565201460394623012817889353525521259107117677816013074134804672374782164945711805168625546013908209675132949397291953928963287909588319665908226692597428456477756789056435420913025823101031562426001087526852396155774997772661604490369006372831119754494694569019034416398486324537046308058252019392609647460597244832118738788297521934533400514934127025391949359176043969182929055007006507914761709158219788970205951252118168011991534293630035953126836483813425206634413157639067116865814040709951567610354774912192840907255990948598693224089501746076491522418121991967414920776098531173562687748061714780581569825030573095425119166837283344218561123765812351828936713586261127357234930462831713201410270414855122407988042222396357310089029444444586612474881971966749707250823470408640203591463303985872969087975788469761788124426222562541674229657263677525637475613872200521557010568198444304588562795642175801425057985597917690662416772569033777172158223394203044677189035952732839029814959336623323476343447354468075833080283798550169582947392867554922185433925648403803707615553959481337366744383657883364708469498725979022889111501673732533855120784306751831053588655438774534693467117700990803351654691519432571583392222861023630216794841450279302094707777888380217441425362172402165904432313687722986087229412479055985576732313508324273377515988912586316164286593479064882636814522169314581620393350848216808336349868627128796538413486566713572641192632843782206669258929216286315546188937910272956539694156777068062565005791838940083584429001432076454143274043441708976921239139127522661526439566666680617750249368463751506233778747692494101029900166018771871399598124442947678437413317359618168385420940070528116742997714403134500636465744166202714327812613144753218158714373152876133094640299732056932915017916508964577018715788185602471570255213674481236543542811351153709424394740053163912847632780838163761724701183343222496505526976995504296598076895878155101556952029959793489461071324589457233676753693018099777336184024048176727783862541715098342955177583919828170101157679926176577871393975988797286139379861989543467507595238767075964506057105321838763259851140618682283833448293478232867975298339542547134806209816149361622990096088458234226914307862148267245038708946239757417121891110797479363780144508561160795220534525346477440793765806526335691434134664559607718112559631703682591014247376861137032771851809783322375482425705026506319911636503120129744599103295735273094006059175857295150362029877977371299385775679813835680656881449089346638358481678783287251751305456321817306773454935661957296545526072210271762668085747688719730478406868066194835977088890907738713770351892310399108166925389793453214683460264942289394168368573763604206265963698987309673602974296014648088324243442596140210654677831501473572861769310533643064186703445773041492859501652317681487521611216005161586627887086097271209492522615695049173515483509491993715298328719802609870893357010012193292937450629862603385670567166918867894365603783002858157449994659173661845230060973864959265189402934648828869545488300040443144343141606706703901262375270604280091733978618181489810656665699984108867142049493121308906630238879492923131818602220618500756905261734101118308384785506798044897502217327541340281615724992118887518380363095037501667356830702500847539698922462066017352253947277749660669898890093919555680511473873898620886541855634317909901803165856932538690425909126405742750787448219798751655067635473252053191834015540769046925556944603882216279581881449123051714110709982370188159412714546924248901181197490179124437211431211716329921626549684846428877827534881576563772732584075450188724704979999921725576113747619425950976903588080131345931954851430571518888006824150955323353552403299876705446613377563713432675703596535969119667146517827175361793698225433906351990249655834504638538707700051905005281749802494504314035698307600241561085001480182839927356932528878215614888059641951844628068793874480604044257567918237354022383143264729393563053850979496116992514310962659994907662611517051905859971654662171797861063601727414512596265949141393793271884522298336089431790800479753372978241708918638092551187623075318393856359133119058237840210678678619889718635464292982614282579247999382427295609600883864816311061822476546671987759870228202381250030230656250193173209696750502391167384300619635497309931044929739800883012645328006238636022668119747359794862232968946259409952689113497701601249509197642312061747472703292341382821948382348054973875715926445147101684339036310128841353005365140130569134810117279907250352776894929661736387778030749622060250287542383109145165756284759095255011020904263635594633029739761711350296335002830976886049333039692923281626988680664832513774391252903840452804952730915340654706620252468005523244079974073385625609816130244782295075186340527643143227360750989406013444745094814360635487630627191256821939661590793382612332037499824438596479077656643686167208693292607002307683022516208089439066820779666251885087708208512013286094549669601271542528626914848571463229063324575824128609499701851174394525138306731182097695956413488247783643329592257451973013789499699072575404529294520573570660148986639461309507542408338885366307397525463243195839923562351297003344070519159828901376772313807418006331545949864717905439794028121789080503605654952573771869657196460790131814924724244184667225896838334820004611104775603427922099581096598293002157168612179594161391473842334385624436257291196832082453472759323911882966937936537462645713935464835674040412817274971128260880064979792869432884753284515890296944748245119449298508937512271477654978085589011114323270423441468141103032376302821785848657779875887129600734532608053539315529446344535650873782200813231660272297312818914673993067212197155726808652539204503540059577582518686967743111907794218201279353534791205101882632659376373678365933217466376111179783990538206850301199641554196271875217748213060629484352615469964556859377105112849658022700540980979967382827533516229753068094910240832944330911695937326314597152093439672292142952513066158588982018168917627548224837703379488439498560299452821334321208558627165409403295794248455759388720081531675356367531023417868291337736852460655361116845229238086315435153021922086663138515096005926113550049116723593475127167366199787194331039053940208581172208799818001674467330414615012148007808973980607768791102709330124732668421849424337195121109565944735337277154137679328289329744995111482794197805634591273349237906000257004566587579511368891309495510965772605889535631604339895072717363471234132102511054428302751738999807544044290194841375926326524289527842332076199338031951551302052074040849451705914513593190482115235471607029468617859614487628697784409296687380834004005955026338901117005961476595308102844321067674771308108446816312989505567059038874140829835332934381786269995134256770742705595984674851960181406630795611332805186366059168331364006379880096237057136808048193425827783551461782169220937036566162039894010120888255171105954072724956541132966942863142983144960787322802730867571672791977861205760964397888430831844501537447367431221408561110223124279606210559052543979457123806347430780959099068270110427845462235249463110024897174816094149558144926155665249161011242859809485070021687412179919068436786668919540737539121110689710550067587950243523194202564056200293582110087310388728737966280569995946165960618470441493557858160564084726515452619803153913457343501857574386452590996197682119804120286396041033995946134171590020938120660815489776534700939962636994513412949040884398522760053070977839792171635999621782491874352122900385576798138208402931234950711783505356572134709339762572459702930629339917800178027679257706898203484645006532719306718066558693488927869191914758107731441482156542872894419812052631163546957950605970873705842527113446102309894202957571378358020752405264902536359142551190676582334040698003196084395652502468019426841337712021976126960518005941492161239971399187965565124882987978511394947352309640601740374105784792435794943265415085853638098019324466936555080222781385924572265308612717625615263025172965055446750828510497158797669360128861125686867074238498818981586168177155225823906595858322700481232387708820749565212887142658238339047469213264147627167493761458497820011230339262391935879789517047720796360318880948115377518408922740395194975124550606694996387200677102989091183486602198450831528593891089746578712818751938474831509316675839405058196758109540715531234525162562249174549739922396299221731814882470036752875643815593120984488679519005815078397269186130156902882827259209635129266362560960302083726984918614276373823510262967385894567123218332717951397893916972951073121025904557593359251047869012600061096074847186025904940167231882057466282818302151581198576667770801213388965085236430733818906123421273856095686111368060882004642166547498593325660136607938260017648335389366430753472469573991777744617326244142626391425353520678823160197375564258667751565241774503410289936670305085782539548680973747822547176859527080482210979276634881111135800012782127985268078574993634526249403249394401578237588842569162315631843097914030867417652406125293480710590598109148609797271216041358633410489916773011631536460017001855914197465040184937726307648722105168291315563903351755272090014729350240828184175077337355413065453447916371114735331483574363866537061667019977316485942543635723655367185737103223682433301470305803769410045083624232003912846742748452893227506233782286766606579463021107853106855860876449651527481858745287215407562449756528537970703605439530839454446579774086782640968482121909075178177953146949324381652729218188897479224126624866479172742525305434848719846462972476372396266935809396854465161941767055339682918347088767125883424793732683249867509987641761500596717727267227946894991833962360454244167271358965599948703741504930108653031069120931062897209141209733074404081335102973627431496360762019522756296425670134518624966771879135872799904567760880781107559807864108237427157938507319122875761714981226276451390509926174088713002388007367498174063197957239717950581130742548298113026427706272985981816945303245739811084680679006420664129885989896407926816133641029525703339165047451515196136835512974453570613943673263254213609681431303001052458384663472749996528542114595394353124640896031363263043377221408857427982021569591750625408700610887964435980722211582633196405173543686384407209212620506740149298704221489703503115024885864093928931402927990052758927856190428114799090321239066626608454495377040770656593791882173950145937505361058651590015255096762730152936489594316645717637654437864373526407922314930391801907783547300504789778982432800751524410383806670269524863415383251696533957710767514583965917206066334025716126025126529982203114848562779816146185935764039190890124468487546781839437554034705002800092570048447623245068378608746131552020806699778343881986557959397382694682454723044999211049972212781670277639415114355832980378123380029254309509191058883807441410119247625029977769366005512384484308878207818760545409372745723783659806592271512108400436276903685298518067732875035990332865935312252658830406311248808608199247721190114198219066162821848361685462204809241359546633103046823935715812526474687404521312960879832552071099842341432137902809037939344560357350161369066256908705849653030937510745075779637667956380906232019698578606879365266462903826824539871632787212893138642527028294221705460847532285475797503742495209880962151262899789701098473238286617283395521171525611248129648670273385199980245098293408655186706020871120374716103053586855467621364122362901951832713667879167030000545533897538882270862395145047485450646991187118591445853723786050670566583505631114175093605372302068448271611808903981521048937297658669549706408065424246843047539265145615031221246834687563139902233820546368523264232549026146192406953662143228012536634634358063823709770699157096285654138748740190513108648727075844271731855193490130774383835677232271855284970501034282171250072725447772239458407869767743262623696409067021899718927981977571819872849194569755210150571298911823172871185605906144094783368676373552430484904517614242680411815500454802298815401077639079031884898627334393120958273189081320688741697017337138312234007024003945291625465415338283816236616829564498759829074499743448409239334139978962987293631899636826344107694319018227173401741660547256207189707709487907186142057388479086397694756168834064914853350388083267248710355973962131950511544545916952480493423051251503446466126666368387375964716984817188037553089691252504798943311921720262769863665405672197017032367236012938384058003469624256878984901857596869004453471407848511459913767152038460896971778677395738805486284715949201343150420155506364123318644260496436931054030732522476250289813217727604592583515233462288634849228791922256306657694731625839955308891972881825681542154216269970887848865647680419260009564170193414755735660028003836130212408332948716911456446762124613726997713528355017383823414143652526852772034979019086487976037600243143138771422678805363887483825362846581952146016285301088289974576782108646433937061720688557806497011905236894107981303176516823481837728404140484963293761032435867112344107366936834321568824174144245082605987015240009694620310556760096037527061475606360452942228283156053099670041735489826139807348480883603684170028624582443949436050829203105314277873295280186070200319212895628264070011117752853301106302012449102843606900722985455436632312068158667929232855801932388396741866999149395559443224029809508126450214290770074466698543682097545096260736320876195921802374182206912154416996821537453626843031224359974151018861135345494636710430921333547885646975649879925578519403582093119498900231685580721339990405628210960025313183628319778183984937304341891840803754268249468892676124321485329805039949992563440910588084119473788595426510327639809961725531159802607240499350981043932426565651613322594988301054683525853209653873015063867629919311572698146749561447242494136792061734044036856345978724677919495659741889757361186657517712025648688434823265870135585875590217427771313703160504730950503421214152555908773103811225304904860300992291821183760029756815558366940920219228951311318176205773333505799585259244635194608951345996063131979512841202181693819231740980640260551087169738922186585838926688270517854963929343652548180736210053475418398803403571636434880753039781408311302069259541628076501618018732227821796191149470269751199894264662617335300991359278278669121979868433511893488713508288682469225377166180996854949632687796219793148970751697417239311740468951563692142874728527845176802286714252247138814531149104338037168382622786834502166504190163041411296056484558614983006302126909742668135205625694726577918902949180117967066624321500193149500728677945286342323171514749657812326659291612795066866476965198730251359790567597085079777059015865753685993930539322585045349392338217149155851383581114915545097330669897978757220076364692339190253954757977753509390757255102358954142156513451538491327505894192727114422015017616727903229965502031968242663830287907700184382107526703926127775969372464549170527339685057214542867101996811125075789155868820812482531753786660210454414423827420889531955958382668143494368765135491123095431402059314488836647085982874407335213880257154393345397654150726294463824976953071955098579727577879033295699735558547508865356041853373507527770196072239391665376848773565468606248587998732367652124452554689041420063851223373042857490626985979642284176798334065594890889765578880615109221589713072437148284204639845183543764797135592097055521666474373613648198492106527841654497257583017875560966911555074316717843992056536975371767286223430092640869939710617908370712261344943539349549226437670745931915165119064343953650143633848376069052371023592334342254344076741671921677835774798097386873220906435939334856332862673049171430463478656126379242671223999125047311592389328058613767384730810264042069752722135033443471180228218901573906416389806647320608279322559494420706185604732161477200575678133372918594169800447724712885229192903393942499187686160426161087239590863845524839373808057966892502984233786160807783059226728027309538667456474877933018753289138488409968558231790585451577754220744443256669594629935251975508158830580064525156809165497266974739902328336228754733840285834481109297793805355105472018114774548843926105767476662944148635633245322983509052803241221589371780895215392425867450697471926659155279781793091123976610754380237723375234090136831361670343101432924430897467676837262195234756092443026184963004910796485721980004378443385931151018410730489455786549605590304279151991342382710255207342167546728036693551152563572453399417202466530275857952383251221534031998802461224848172205067449601237839169265306953793328708399670724676732504521353472025070511384628966436180526884929663708022503894510425440557127169741653156237775141701237386609702784934947189212421991805606584490821201103419111394877972971871604712562048988025546618943822318494405561646709267508181688172261011407993523767134351187181437362458683375883818172556465130915976283163088607241409546743533458206916131995985669710377013365667563493128566668225075849382114705811165445725234583009493658254547750512941098065186299943583457187942671624472187469896323635717243619338949795832799640596290069120844984264158380370677564198792389558627644791902556047180215798937106674630256997177047627484628998188106082593957237603849722213360771139405714702580512589637165160409231781714776550133722854097628899235014888265449214775294486797746302389897661228132939980531902105119770321288181995107555481419612845227564798430178292140045476166537173476792717867595214361048713692676609625280926672955926750498252133691749754170550692290156148295068973286970024940080262555939495880350609510474262074543670335905391609108765120927246993334333765101511434354079131581823196655571758098385453382365079465119318052636303642256241264324278622508639319290174966728368497186078165524608215845371083860635733637322078228906430628434380995435511530046905276857453435482045296675935752890727499127774839522174947346836730339910514734871931897168826948121682373954363866238700514947489109223359337731626662889476469896472225430330362607501928706378285810033924724680002734495433205343044623569849660156024638095537987108807066010775569750848639051707869161079921127651684874947705406362405066906192377964484452053257554951946358749662535132262093360643261230470646943032997146076200918318893112582107374609703533212724434905277804523359439346864512155671692285750629293518745177014993266344831992303772540114189820376859564519469741864855682307328436342228396555531775431138206490980032037084460194601471808451885602331690359539871483897484919963253996214935715928513267771456151337627373050161179114267752691982500380677129919882868861829540447661000875977957826007166936200485127090802227413706484700559753333390300965261718868308150583127396356709719518648694830830800272660436142070164541415548941720465188959560841477940977335268963074393148736588845293082129762647452436267417922985020125218156719497643264054680277636756106415379161967125499768903447595872858102144323875034742587332069610718304389908449790802141808462053461700211226655065906056060153911942994077729222808966300608290363679225740384072228205218735078274693833630970083748432213164020024505232238541419712988004836416644934928872940130495101260034199726425873471156174422702081629344272282597980948312884789841111199897263765352768748032218078323117998440581253385892383831650696481195622430936105570309613429146915200831694905613376918876632379413020963477750654427001724008013822159057300156772481732144922113048032890905649895718103321960386554942741537926336876036780764093462698280125681718919575377252916689875067400314948445684078418363116876737528469350567529788135641664307838629085665892149597581980217967206648792415584753235411600963243329402012943914643440117851756054757276322173822159263788529172573380214551685939525682752591713898276693453322827350756934094894806740052424885975891709129754539416930156581798230161043214459803972877972930891618195529915181446708978995691323513655638024612191735994341458799303743414318180993566199332012139945372186957223568553277750738615584749456586705762378178569754323168921535224745264538332728653463871419087862998772901481893401724159308850985262995664366512396677273644332055829532992096168792303114177595123286127452167818325170775642597621736722934263462943440653847915640685424371681130398429682109645505446130415020603438041312120177835854097263910792463645293352093237487276920513459825854582310861959127470819050469658971569525359725624833486996001239538947831642442099657793221760265986186626631672731145445099086216863224957718616492842395393227593034613627060060130246849346167954369391192906988356754762270712964555149852574531442782606885418436521204916688238845528866609845035419010962790300397024324102160683730884790194880780994837904086429450825855440135918415170531030650470180369143601773229795158080753824553668361343208661384551527663365752444707949316158724194030953708540640294733165891917525543791154367007262747012790495705149464009743096518022173091612094225366901661023658537436023039208003872958749938450530643280238964695870678352955868252797275205659039956855447476765256826501331328270732974717266535841964185140501931267264633700010656376655974312145252760750384654123067348602446542917575893180529202077708165590412652585630246655484835830064200623072026665778313414183463411626639693395744442195102810496463198765582756936900915936017525236167726589228793750502503592170115545799629407001791253590050458866324190889540844991423013365271317673231648502817159948401859517580008699722882986861350829273439808864465771557543134545026547910355572014931840911443643846603717671131464680106118608865241110922629364185962784566661975556316956098609380955317895861364014932097558837948318249751796502061339700754600866657993119657179472722570723920204003002152192193249900570215034468174258339902846164704661014540314848185607689913866637680151727825118502692418078965916093950267275538649593263643822707765823911037050008867965506254325981541652891195652500720238156164527246374969206311295923187893602762226084661003671779853024344118483589070091432720170635009867772474527048112549420599432580298470087231445405378747359630743505312695075639799949103790430434768764843900049813698061299909522923735306287788490174106739538969025445705089154084716135759995666967993559788916494919828382728630128027745105228735452457075006526312124550745957980844190436133353407750185400534653826598050141505720462210191474680918712872458608131396143578662768200982898482044036699407128793172343079978013412835883025159168045161990087325202786600888055315800914847113479085927305434586361988444079085933053432362422734448545685538960184945611477878072958199376350086777188769919807995904393013510972090084966148753432629537060007515363208582217011891079276690483156677403167404741846017448488898150340732939797285510804258915109600035908044573073409931137418421892961427326625892708460214572216029444439980531421604325835199032296255433517491822207526929079510486605480441907107460897750740728513954591936272138633083414400237292036034482612507001308577592061966180211876820467933797585690154951082426893466135903814117941732561931762852735204938859803815567444964979530664155565409096006082950770168673902920223843815813266828344175229555930764873889128535743756749250015630701932684271619882303614258545496508252948968793466013226996895927454235948606830993989742009266064083930856000120346856420557522635454136264044865233936418003254709407021000262785875040921030987945581351610075247834732437765038803369910740916030655884562185505569283079371568077717665219057451994154399040421031758250523408536211985359141288605186033442076415337933916938960970252802760001090600235126203407720504561315492741541675199764754482621884561530094692279523949687102493811862403357876584679820844621769120434337952080244616080259332211841021830403520735428349541281021298085623711451661749603674132743033266046252394031745932185213114689680748891236633478467828039082461050161523196958104572926785038790467293977103351000444084321566406256836153130423465262881197508261991445804149452258029187406024062128007406192954531596685777109513866562552426564222599086518109484183792911378634947980915774670833178709560404707206892435339387427271738050545337214443235884253783364858797894190330694642950817905099051755428210948722552035066424966207236796093241655913717225990338932368380961898415136777887638349442221931531976539550169552696199051408847309073314692334059068313197228640875214962626048007006007130453435720414950665291575587418523243818012523440824162251644216775766901968252523945855259588980294970804334161957669841513247264534205450769398828861490999090350491717792010721477504886875671991223146366519658712169575992220555261124341229141156260543182134262526012110795399476502776263110422253813518561736294812789949160481345623498485409434643910885194317280970792050006610020939174180110114087778881669551953058442320296142131525952190270922200650078947590844382164716932627989885690754755861105230464235669243728239592526220577699139037355098227802287414876722020213948102796169629099183949159824961671160780789105746288246108243864389014657402261829340018573626875528001639914907278318903288809562014880947711643354036269742603446912190283427361253799992649806634511817283268149078308869419952060943813391163213706097352065415493176892453832310783574856923179699345525203221883807312003724590774786901172437618056794057848201197401106532873766695436627436523020321923135084580950006141747380245824026255616895737633175369148956108210818527802880774982489586546596219687604155598698079487656351394350042120360743687402169144616138683997979337929554598259086825293959262307264169860291056795372737462632935166055209053797412285565846259038527530757873648612768512148768388211796534499602693069125223736254138564918360872588192080213781950200474485634393120598156346093296446011821704898076490383320357210006531370530936081293347277957166342094670523489274137800651678565570593286246886822908383506326871300020562512599949006425208792906658342206311797472556920286004555611078279489924964003486768134041475197682081981928452589359259424607578168792577755051420785798867145167774837602652667860044897666364815650797814278007583077302240744726113810507248139253161176693629259047334857700107471088841692488463607050219782999753031492690640159144117613988407244589052055299883049538096178581493869287866944844776427330481095742776567015675455332487353404126156569333480952804643278223435520762467900971429535860739776605095080548842571261458972214373001999578780922276178047366079455359651481484091709758146499953523976132413578067792612716485798594938637941383553763478992090963804925180183058616923838060616393716650539613086151512819537617909380715756832432416351752872854603640578499052347164581457209049653621759911556728687012194812000124230234429199305847654543741996538204976706433952667916974028872252726291475090798581942302859551362435034081275080459793055603462877339583472334222451486189621820622556808521565115537976905984618827613934422329511374801738243112982204508153930715667543894850802286687251479187589623894790880270546259420776302505522035095034838968548609772869249046932423629216393663945533607839153733187200558155605355696772795304768841393085264835511651196069690638300257065874225977317356616743013309573080256531200195202281646257821345062473265524270838243650560086616974086863367537002436051988386604579479486287515806165650701792026026894648446880543879354992569778735449191792069185487954527926150203691629984070016599572624818783871471173752327367090680673824210437686573717486547820685808035236423864977494039073870412203111292554615294566321701466933519328577182379296353482255778300105954477146793711172620225428146148952603399015326917117528662740853097831877878273377173716066782565751902167081826067860737097905026526484936134776596996727069745882393199864706758116799123527029615530604200019247218147570433200598560845816766377383823788261491139604407205812422399687392478244074049669627096821922532082734721682826127302967940667918826584425532000108443076562961036508523496135143055740771495542339686914936330509370281967847423942662951491651188027384913695491529740307084610264404172312644407276485859656630400293598514293061037274402570113041250646786578809488585977687818451689955662513075070050200138173225434534988188543241951060927357167625008622214711042846969344008165482156928914332229266671575576365708031635726333242934000367485239148254506841903346768503572430149003580654613330214145196772368817976675902027439061430113127864789272214092032890688943070299167164621471347625927674784716623166241330992709557089099545404360076803894321076401508364290203793896067627817412335173334541399629778762493087511351603275287038279476708075983355141717125512749939729469661273143779607972579212772657007377978542797221618446731198724729793037349387059580089269091425165435892954026522218355759169945017059433463971425989697280935623326123381627267268600955571544653722855822597701721773775168508951553276784890680974064080525095262058741079542588066467928425439693981904941479295955774238903102233771871704772732514980124545959101788136986638023993608833510216743241083780195644679855622898629065060332621146021169815636705804414315922199472937607535807404795399518670174266403749881224504405760139133530818147668548171741654271655321205796699975373828222361033363822157279751048775967090164460065326863000897302720339958799788482696461773055982886884173392230633419418515408708702400269629290241508753296693843532156137500638270873897535646562005130380278562351516209907561305976275184124289930668031403067841035858314092362228661127331702582533994809910389361034622047963007173224895382119896922743483247918124999007335184892695585945016266175876312192104728143975422704060424234372018998509188038379251168907791524118237018942322725783469417577473673223136815362982829320937184460581897338491401227261527550705866055451377161444951878539253192049408300435064135568050517485581374379242297489117480892067020688179404824407177028106131964997384416775894969619633494145864762734287655162768426409660808099548848888021596382930431716010848054811745512542944012248758890592201997356304241048895232102477396910815976896853610168352426462166577600902674079786280928535319244479511982491453376814606262524455860295354534528617562253365281482297920828764075978928113325358863155416128376710129227973231146399742460906657656613836212675308238364490932922730777111753421603388321915103711343809597656334566238729331164478764488171707197124820483083653332788599225002398746127325196709327115815004143590527887719791717929545303588613605133546338283259975490477692319319778930057346985763977356170939380978038498359881478468544708316029477292076802952795948523565554958248578408011298951297524826291431387308574736507169591878791583396259253193128853213888654834164347394783565419976320923784806229891519992263192342202915192530093348374462728138148979278548803662530264659209978319325072866887435317442438822416281919613048322178551546714879112237938135840473986584548905796851192469462266093892924949260112872497818144135439008214792810696227892738728193454764957227379433355117486862616744287918921542838144931672649132362710684833929894369170575425118074131572054350475585613799219963779569941498333434965582451973470417245657767404993158597183924199408499956097297247635663433517026817962709094172825540664492150941826514712716022641865238507534258415445818378334118820356201314181556071699315711182755243088068165147840687375500417272811358698113849983666725926933604768732757909834772786135459522371456604384829545457291137954813662723761667694411706173041852464559459629483884557444196077960310070473957549095541013019160402786020802908870479542913471918332779299764790568055842570726360930289853749092210716487724828810436661041498060711344712580998276231431410180728716683915200607209686659208118902435593913319988128916392769032491571020819214451519724880532977973434474577685190678821607865244400918860399327889408285999962263306421875603372753779873406820845487700041004854439335853724143706600637068726529382329464556174680942781895631064114638529109569129703612575915707628822431206889726795249681857688352351296249993030780175700532603921808092095673548254681233967985527904194840666709006608053423252950228574551320692036764503885109797206430841146434999335026487927572537237711241016286351031109052796931999737887326598915267601435337020920694199769046783397102416886296776065583820031934540745007080661811431574003153264591191381330712028314057770435471515889036352493478110481101927299912845210298152324222142594988641521639012859423585765109836587052684332347074502948727604743988758721907295401165319192175041291220253409523027517204894216313917615487899898051911282372827745569652910815176565481558388335268934794689005679296162849045490098601301951484475227227774695517836995451421481861519677659646926409655802232295618224890608753491825110426845236989097632750589374546853554481969552499857695940762536049024328334159952711484130623680036077252752270226772115929163747601934707182401601881237139960308254985360116184871420248982234927228624965018313824571699229487164536010986850063772466010946288208793013116937868447224792463874045893320348094481947934535457913759284276975659872714367279382469476431469902013165966581951832805135643597613053466662992794183966042085649736643668296627954076075780418717467374032153124286033880644113533238499298039388720292517849650911348921338678486384905536462802683303603976826740942979769144701493941255220673847871827639104523878478332208788198300703921399851409920963251722832221630507111057743198184640819627472146450034012160377940089191609282357043491039083262281444287348319375067524358997618024921073404815559362307256180605801760193408945972880694546021116022810600196878234494469199423978206909610596301278328223749208522006532059953500141198557110393343430366098570938774993091191819516300017006060468128409797993910269460192125155936093326917232820505665460013654491738897329947661981549656279865852924261136601766406546736919359568412749737451931655197276679291327549901581235235837355755644150548613694352908686888534229311936142086932910672309518084892608575256669201426738554856850069532726045367451547773689085921520136387609590418336741255576167377531532643862512436178149343456490583874292120974188378082857990517699362936902112380972863632249351324359653424094421382725220861620544604849321852167079463850219235248448157409032349635132212132516198877051644323430128695513490883696351282372404670045246723074980243813716664035463717157993857977429188010964230256004675576421671611866885290783883093993878105227416489094094429701458853453374952327738327496879320993533077241595524128857149397545632558857012975797125851231556178522909341485009514689953611974630267087504878103377407131304358036858907787133886962223289451763904017732735805509106994720444157608024413380683267539025876607579393188293365733078400712862559174286104641502500794414196163658420511186086031632105104875017984056917503058225814301272746363323193869319991972073093365332212310270578332137440731390095229351786010901122391081263457613434603725883924609965446056532661445898268027868139869321409452435118942593967468662693290521777205894984045910861997370397153780202244619888492411832723640578007657150233244052063732314599559817945699958039262353483188810633619413219544893765773193515208522964448723512602109774279939963283813314664582741069886602344215883724399263008041660544688996806562776168801723113183401677698562755815231668951764144829546964059327027871385911756604596140325053707506595044313124224048444718910854166674747748766080093402689924823545214960460866609110671433184635035934643001508214765063054453873793860948075950039549443484342785618666553174896134594373638434250596615951639442935859205010801806113193500360399215986447947285724106860781164498015587871568045013419889171955163121384781050258883061755964921043211602509106533163746867458802944911409318312167115388180287530492030232895881563764079059737667501778594031532773234303021716503042350140869976250618546227496761123500213107518763094232601268436559718126455839437787259721627637515682540040602050629776487417178320456400425900107959564692094120157936752520480917633255366432918319911893002253854335798892769729666880383335587380419067412182988236493408360252479877795025706242751888127467385760989929130436433025863341332918959783421932699704464568519432032236255984747235801397230373735874347444401295444316289739740914578269441112086472263786646174096046105666331368134242309288511966703723538679380425576149042993298573931620741900898386606994084458935751545967857932861916368480933259075495461789873279032154132257332562036157093839194516145062989107670356503509917945921195799779376663193301325178454092847602335140942683081205929774669917506003888030231550141901058651284118955016685828648226476691507224807786098631133463824640206979976777894287908360224628092378176352536134959698152482761081167111049831251371493285586341716659834929201913818758233155115150938083806596908327418796815937632870641872417459956233300410370108328463921325011948982319609586328735755533841126677080189802489740562765880280354904499370308467663417735170638499916813380907472268707942147204054683278767716391074437622680437610582957267830520006182113731270993510640295452271142701591245168705235626293385241686088097721731971672914530687769800045981794672204954987344017647121124007775715088081824883854990211665131239756699104510614929617015424635040014038056107649811055162634827269697817047700102506631674378772374794565396966626492449163440517221552967026175102227079010993512911654171693568044711725462427259054909932319050332122586851354744818307965366765309367812274884103699354208693077521849881328194969560184568040272585755960521595023086573974699499999468989133390934329352695262694822650601813970494588172543459099626144102703581591937277561549600643550967389067154622300051966284817508810596857945438754980720014984522325608902124844570624212293758030473876702064735820790223459591460774195520889788954664766562871571706249750824588038920147671574676884083413233348240613370791882312457650722700812710277004397493854030060055410351411997932236694292813232504474308069432708999023459616737156408576637655999828448466634779046670625646242454723872095774568803085147769611407061458820379683163819782485814653516507793227386336917788844607286218157563493427876582892138795291292208230828729844942242196434438437344989956712306287347504675305076572830629662128043700733112020623958672708896872993185744667226218697951374379781536782667141795116936129559631004156575472291525003164499452619682367160501514896321439992356474160239242512154476118881887742072101963877178615282318010304866241201177138814178651662586037254335478956840340255020014633509165548850061044126969882208464474818930839426956598701806588009009213023351859730233457428756943844681218027876873043929448045780824418722291957684920360065883525516500493547957339026061377798632760711906992972879779202913049953310565083074778522211334047996145702665298900854176678201411632698805208143342613983081742787865315644174671356937588029604876529289351900736744657929521554420940072525188005742056010534510782087539655003206522334960018994146967319923679339916969884049360149019884365205559496856412074445342479929656037050320805514128118098336236945397860862557315609550818927102880164994130450981241708843198836896937771265616408384002539495684417798781367087381453616885744428885883182332683247736286695140312750190883197647155190952805658034096062056228751806886429439175145054945184460279048980278663738349325845515506705556141489040547226019908030883742916597728336727729081696347938133231650909352386938723794769612777244979305711730746688387807717218428611749049845387495849161517732245377071040572277036016202055187928876136289811027519152596121614351730326552285853508857815788552699933788903283894530399717776304806867905925920563336873740011563967882373534013923827067458408138955257491623265158567944773192644089336200020531096499214819718499278704994886082626037116499526780071392274365014671637041426716119872922583882519394186151692549372225950471284393474879664534234490806765900187989749529757916450065388450823650812817843869699578774294087793780586159412534017930294029285090965565597940182985142117795337379058423978191951176939954659119120090329885521550619139570070506164508995008619762810633081660428368565974603031864595639099324494077623586681097366816999159746570908703996537379775992154268151487246802255019793527529640706800837632007386181045181059935052374834410826671150467812271639251697414788113283110394524969804855850690530428411742492523583823175684728498110952077113539356579321612558584023800947732817483029370027029642835690578816118540646693312782100414496043138728864476665715594457296286010367802973538745799019181964741470140831669759736117517573006522028201810201217701263036059129880709402416905484233439624040399201996382031640321382014295879762426898924821180843112352281363666411774023611300646697873124044523310390727117108113409609266935196262050410756459558099173339434925721094835443379079106977643440360266986015853592315149662342477944126873021181923940796689169045828560649559343646235311892251181118386637685718752673245537201086215940001066483444931199425258248470476515769241354025994510599759253522480243039848721053245156455147375501021349954388709507127703350512418760502986556766408643957735189642186859774593600270821021801995627609872880464233645600364901405698928568062779820325039770000142832576171304687678460838587245643548531424639051295602968115686288689209743222549793828628136285440293515643475389998387794779463546163736249643491095437191263232517021050272411870074501989350410845135629602499203419195044162295996755216699306794670780098421220205850176362639416455948369041252813010185666945222015844904924808437265581514503633026612196886529021534646116638041969176563915701080374361137451930726788162949298553871305311265272941414146624037410737803101259542044219674429139355627127146526412576112055638922764717740677908705399200578114817761119532928417468821779230466151790307227717994665936463187665775319769683043882850551011462196363779621464352706010498530657719621276210627712165119756360474741674383877670847849460050416406885471156352426740937662392398256941111133406418220141016085523394000777456963566624319007739310799754768998810521066519345615303504806072011995683262129086359222150946069901932653388442480592599062638352569293580757397189224349152533125919387603195805897178965275298466211982454559805716305572231712345475375340850654823384111152143384941560846853367562249730258225080225997612264286229516175985678275021614929500398566261295653865346775356000055255057160313456075037768690355776639942285661437279978584070674793286030701211222912331377868933446240544838561342627615069398318957453073798403743799256749115076725919825204026394293915129094820165482950061494074770564918548883846986082117829361410920159491888244460319578706654715878454002889983430672702820089489746570620714704447043688798188852326894470851021395590406279337952868452534365334902944708866284197246775673447598123327489858989461086022899497175168435510198203338461917705169896564884156130233541189705230519972406960532376582236103872879000366848203918686922673948898472783555741171646616092041985512020580745685803823193135661484826286195803538985107768983679155761720023332896194727009326142861804210123365807542875587811719981251169311542146125078614381201773028121760154624777778216900469042270766618137331670882117596133671659036657699604860041267253411335822291834930021529127103389377230304291931155662061691544982141045145290863136538972088658386656797588200760754998076505084694910291192009619488100605334089529994194065930900776385465124580546802102100464461158798748452116627385633147651564424635152716586026062758455428797545734052979760205122744380684581680565921324454830977957814454714690329772204256583363030663839769784696999497820380865209836866292786301889824189306076848508994217175349649830458337671941745168380752615928240814372524512544754043281284069132542433614607315705999711234985273435656234770484618513096582709867831362953860573379203757739768066662955080650824797312969781252473778154383799289263694626134435907968126489695815964883603194115080697778322267635270263399193392467235776276188134101856438229579203505293583127235084112891815516723306620641347416516332025863323504913947461667686206380298017138927154631815591854367330831871452654309649469112190072986592969684007854007520678356633476831264114856509633226433809065040369783902237324444030344480059790723631208899914776903227848713609929302718898541839324699982513675164356191962798396659144878318921719347466610419646344974027103455569049777364324395560246410224144224058801681248996830642302331177648196573021533529868431464467685008707837808558938670469966897405086576674718362343859716221031927405518318366323207977072637401688796451810711364504005181105551220817923068659702222104131344504390433143477204036346141583035209408055976338231927269474722905521336815422934007831866108652048542093950115047198061619079526532299783608586844361542517716057100867891962821626126625170641675055617183123450814958010401928015940378643550484191212393727389030172871521480653091885438429345714138340750765834910205433283419538359381331933936562633343518488821922219530371536358215959900519138455960483824581497323958229677506558719709654505897067337098315213333186635911360153254804737111217420217385811593774650612176547930044844998751176913217451637284640396511406265698048627056698910785635528597440023324747646992351060591511756040753459856150356033936354646560506204601144979393877601524477104355920603494190660947143161969514731047049927002475414610503851315065034954070805331315167753143702736954926616672329304345230638796573726182724032821759361011840811190120614501957682230812137181695286533137720348807153185930920881214565726378779255853965336113051492146712428960100410195611449414863670994989845137943455356290075757898409379187101528167572047519688655748787480033676901753625113541426444494438541144749581536675539756912975508863901013986292144341944117084149166928339803223169262703814848087502991935646562558002010053605664429658118548346532068963172066603221730236431468414472079019013739032190422593498144615889748647090003611424959139691759627461773796521943892526241743608319892541248393121354094942919956643471004728538618603058012615442625797095746399571519076957955521501657180789414713042818230429378576671392821385408193066167081423123691406749516174947295291579561615808051430033624443629413258496280517006101656064602198379348682111466589746064271825444248863218938683246216273518672624408175294929450166383684732849685824045959323141331831278617424912886706393870041449975225906349229052172261168827824125323540258904590629925072289237892393355343762975781831056100420616514958527086329926095641596198271964856151223891948858905313187875244906827622243056203725521468027082754015181084177109203317073857502304184595902170706399290916723717469707319652171140389994542180529971331656870975371192494535533995763471969022974515018870668246944893418654092846497852501377864564498438131838279268016438252348807824264942710307915932989297426972776561986839706348553547682643620863982611094545308889570998364702629117621787904675133342089156690197097449981791193994104085689537925238337207324963700571635945504206993440548118280498132120732688265252888088174244250474670853262307608908470657769536897769845862574893396856695088879838329941810087397703177868446298589646369258143469363626819001753676886252077131796312869643718498260439598748828323711337753996629758219864525973991723420096360148660445467157274715276505790229350509886835128840235008581942978816128915684825109606563673744767163587244812698739484248313219260642125660800794170817086431592507750084962024818851917846935380222750412959324625553184914780746150543188699313501623204200496317928589821900500116906079801566460650066656412878324202624878001977960697217556602001456461541307460309845439528183797565016242783776133237511350866688289924219746185625442009476287008455770411435720638820433166665649198139725832731269499390651668169672543418559780227032949404736975425155573816891237236859342845075725908343780629014464714861792034186248160114118025391295526750272955711367713806690772746933707662246415672610795734037510946560783391902884911955701799497783504359298750655429413828727182520425749766077363976854433430007806445763052658704879362654864933995845946417346650304209587268218449417048920574156848323362977400812697110590238443713227647529396376304727169053364614858805648262795788886478825630713913653224547013647043693090609539579704024864210385737538691863341246735421482660955577630938456583859408711061224146737342190481248678753709347621724064537668499815874605656790420875708886775838858229351011242009174294593580953755983036228610766584475178463935064290249904270383614372514577941325416924356020115215325656425339094388268118542075053441607592293453447470429880545735922370627945801685189463382759951723577764014614790379187435609930101524840536482956850224168571381159648123597676042328831999049240416817342715254002392849969048366371792443644586580993593977385002048057446287002126053222235214522723737718769304531564895925258404954963099901689388593788202437554160716693281277925504611091437855612723396539065353427085721441232323157080219310896409574296919729695912303865351014398421084169810213102801765766994996348438662016711497750874050720551157382514808049324454894924890792669864039611057021902986515305606719281530962549300689465677553182279190571026003028694251468583319969291595544830980047125047284688239485205344822587778021831857501024535883357620495137882239579581462170364059953260035417060508491788327078253849349182135098168767040416746989489767403611610027811771985261003984318821415635979642959242064629921654145759232336369679607579538996412729154901077955243361430872379389232559032917361768110889351729277730219371279933038249414721718976145502645957683498069179477225330409021600227071390268411783050213056969231436323546381518174206280628766167079430056403365436896998512485197302364383557979244825229635988545568278063058068377326561823123869614334643497486306054662975797869921920719985305092812427546481093039400263758930593925815338831748564259680634255089630753736123864223294262078387843448904915151017175845103750836614741240981159304560298065271275762270012092169650614451022058314788033305951354399301597011235188502270340896089438483348554870038675258209188430125074739302158375232222561919568593269094575396570130501301758134628870649670032492598935070845832543761377643319331763211376708903695175253717646502829457977239246587311038795943792467088047202167408508424087253737358012439951904458254448719625833971825835511608532470209158383620952529408403728955887797928809258457386620088361894960731725402868096934265783826408641918534609775001353445173789233430380934804224373649003611759721154431939383795251463134774323015439517347461095321021613051084106879729999719038728236617757887523856473948859637597406202203267516510693860491875483086182789791497047409672880854582770233746276782502323314202053126689872628171278169387172274316676775317823054603038240816990055507869277255416905019293260839839951398738144488812110615249018914257043198977254982162865275551062421231249539946027440796985127226848541967666692478771747689112038776128763120311583244980294080648634451435133210984484773126039137723820785999300632173349325820316552014845335602897361373564908662798310321946702551753758598660527335866530719247912878333462532097212631159825167768372983916752198892035493024473135399137691644685699385773232754505312172783358725270667724614992322976763181487836196714508236164789969311259512524305411745847386351337793033039124585767665882573130233480586468460400357648342802505665487745655331285818072183233239832181133630378578334424128154167453936858930517376235952529161524991721704599466048020519412225653006608281091478332615069382775328587655171789979208049849977752093776936340781573253038807844689922944056387787798592540642627429158407531391888880670531524020075678845654642766464784832930568043657040168802070555084531552642096150104734843390205880718082147256631689284309591751298536837765321362622484836550259764893851104396052879283155902253768179808983797882253622988918345233341346689684332378179539908676338149298813560410275516973137543556941505439086285975608641872010228789973965276207219321373314625636740304204024820141829587458126494656976092039413027896735991027352843500372321241801949160270255609196506279159725575820292841432739476857923615526994997032004308221744420512615294796362396997604880639969899955202210230672198576173982218999667258619513560264316790394723654816417963635419263574026965655668479767372395137757404786072902295045320746430723986739823017137615580088921980407644372400318412125879507224600295244077735403237916426174833184221666945279428920962754252885659652776584500514478042859749882229437761850691163523816196121482180250331028170333238920879250800356283317335153777049685102752460705720683797436403139795160112005085752453219130092856972501150603200448216170755282213266785661446667362761834744130536907468257023456803026948303163833030507219130071521611394226302531373258661395313095745066243723658528922522506832963739141943543140346201718268445122594209402921982362614011312247773688977583216679165557982416851434234631803608509103596490151953194242757708292527827071881971676582091110010814405168338200167979995142947845629431668886704931577141227441733845171700545246727195232701732042878378384487719368405981333305552912330976013996570251367122027518371248069183634787412791035181078721332169542644540818444220920308730783175014920897212369391035035523368564414938910897452746915210195509183830421184952783188839682244755427175193627445473356549009734893160059953021614502242779050286680439409515928193280378260087371580562421063139713735062673430638650675477882187769741653020417887922900484774718342256454321982134853209332446235963112020608228411742337898962875294150948766289995229994671232545211683679938080843519921015791680149430673971345487652332341590165905707372123636923332951968154491090534218380650725992448853092722917497060287164595914649132676531960643972732344118899664681511730384724102955748880169370189302779897819303413853575061036890801235510769959937158613264538146488149962887237146170876222593818368874991312031936445300639605035291357878648304921897784183443218438102836658076893286262214709602822231076228889501849938796466349803624969787563661670140290953807098225593799142455678471342325838405358444484547253523335669676236389351687768854611136204272444843691865865389562613204919246972343703723220514879741595692503952892218590657439535552186456286910265695308965748555509898960308425524716435773175387984140696700406540990268527356726714111336146958613428714651001301068271318613995613800615972525451137593621848784913755456350669397499118112607460061620819657678728147710657863463260893044562170710721047974380847269278099619282111246458721378397180558390184154351306688612381791559376217842527197326738807832286925218814409064167417351869982774614822083590600140872996312350202020995255482975352466587692543665608370053456935160958286790034195651860706668195484213197482075687643940580859772031690935323089312206323069977340305682983291904892024457698885629577315571066498115976143479727315159477144783386056749161383723702737327159931791038089538058833087916228316081948293065997450259128683826312514008266097944931278129635524991391865084951542219126630163217314824070748979426914373834025054714204317384945095146873886682945541140263559561288401576565789922767163876492835989233149309423292286867545038521089871478537355076502171773014500952560096193049258003172100323067992147834272935144727272582840122355089441355062348427427093734530573625016008364510444950465686023509042969732529372199482235199236730583798978736537008104030967089481316701713812638705930127108250497459096509273878381943404462172896672999037390817382065700953374707354382330534309273347243905684065238307788995136352735862825327620804183990415693513153468045696946238772668150862669926490384825528703236334185938346494450982880181027781360497269103448504116160517030947626643381298242231928783465084551815750583093062929349712953720280600693238248283501458390274442559945870600895906004927160502231933556212092760479444898485921474962442793092213007999803098342795905276853279863922321944393119299349992612823580378143566020982095029977881270045987850736074567198360891466123067894660947847759531253283766405275971715528507045127370256911422268869630135808489357043962696895136659828813247735837769086424061569324996218830787625443765125811794604021141783929344919239567478550432473903262893384056063446774829918072022961617794178131178871412635762953987584454949985286389904219173160080774131123530582723817435479906845191639884612012712846982446465178070880417172430167702507747007587314921677808391314308660612695537711838465000269315319356250139613252552690979519485609706580963275202902739864935570413002230081861408271809649824307239571009033319569432055787579465596478068433159237800689927579069739911086885075394118785360580269653663749293265653057228548684535445937181589315060394735447476605025060511076539874038010283228289796665505059703819223917402885728216873636158453592296464095532702257220278405045506189702791493054334747465341219785700125121498759653254030291118448389860644809270761927350321162559226997883660984400412084377759276981834148340747284037659567091718333723819692801408285877794435298856882347937020522117713696198174038948388156121363392594882566755392768668421989563216970849050237836656475694753920713738651751107066871290267242756705765976458423201919843032035760957314355325080151503487644591709278082371547608618634281698814682672528320798073833826556972962752319214583512242214809307134252822647027662522183338410181688651192366974466683202767323989621514137963163159847589838168394939013781392418702386179192319615851164460041934911999332603318941387214036870791265962635849242539179793686690213587748597343869239754569723339672445606366920393548642942631453799503370950324415135333414270901160337527135877913934225256469745590696769942362606550982511113875902742581739527556670819085117115171913696478450169098503213735188523251313711213710197089695310974850717649309323772855875446081761408072732818617772474834014599350461675278801347343396108502891721813800480725014345092057080474456321200830566221010457300425632441385377659198798246481157848893072401360776250570975565012227871648509980849657593145497253792402180179810100800585673219125691182071038243425966876927912960230562247034372863672933271680128074457579115947090920293722803792331385172658156240155307852525459468010548908072159793318272405657549020482469086066231445492940953640343871894791818077075012624221367521069906239376246718747233212431482101578246550019455662444662884223009760654415901784299458200605203194104779698574877763875277095702972178683459316806796930884774506840983467308324128279054307200496490451353019431629242154049905668647676468071375194254963339980487660063627458803520916149868335977388257111213958476499954639865394684719644451109230175977682134024050245864738389226170385191182525143025997930906677611830435320404851979504996514322206354831053060138644578773919082066075317258442372070827581169967130682474365238030712415713379308202762139015958389158094519807394673134510425873516850264416941085347883392239276004295306884974856029424027011602982627134560178060043994516674710439482409173942538509207991148254273848738561012910827920554516603236934647656698920135565965940048821027585869842953490560079678674947316710884850068675493005857927530924060100172852483397576298527291735508649454735833469323160756298687596480911474334834148025556820161428547614837617951300438139835570287429739271790540876811835541553500002209369881008804643777271710264121899319704455498209378222887207846093433745953274550355187434463095568826730207988819713806798915558727058859322684900377927110611137999472619240274827121805812799112072509817030221661467072501255081951145625028109798670107213750493546161044929605238551914129837224293842865214736871784316884163279023845035586313416108366402479303535317973296588088855533414097829235092093181534125086601565716691519036378470014057758264279316406834174838060542277214696073130508594278406078572788664226212583108994595949953947319977099731123453750544529396483658355373676756762159566150189361102279811639626407155706279906896329165415567719365400337380638051649370070665735568080887511346921386840211890103895529996967661688221207352021892215111469184495385424138429403872242949116749718776896621087816488176944133536448900348973442940027955465444502565694008579583090422615062997848629269670614932165660096282156328257581542417711466385117443905588408845744576350817661783500547759620548784257852543933735031163627035840397273802888211363108055516645363014334433456197783544873990617711016431390851353708370913551714984105527859961916088966603505393728183475610503453055605905522650988790313452382308745784221104058650202685272001242727171907738892306528621262799617189731286930928355840264520705590834389523701575365426198204197042897945193955035442894301995165263586020621710105167036638328982956323938859466513816798084603280308274045457247654169703880897771332943327024747764147354101918296896817265215391924647739996367254145815177420493233109035110557669485057523019578278693162791237201075147299880365312466551180897859560452886580404641603898685685967185324169989479435734074023019990687712871132913937724272597081142186119092260010309353559296887848880890804112180716876810233958960946283238986787374766550729824210233334611878254088014885012239184927755713786108384840497817158995113705112122817682691548274045777054959131261693396993377185518075488154553856850487565058233592580321921181274649888533841302394809790815626069477006430522169724650922376093045452744934551740237029405667484654879697048095874621524358084013917718890095295920450426982929190111440874211741883213767557015652346342082448982085733301707492290330587968753600242137092772952355779516191867608546260628615068930224735212509884851158778514888639822563061646226639150607392407876198806596973058563501066876596050553685848367167635571933733434140319806473453325825533674303209484795633126606876976852314239345733791723125763937217335811728995256082134406911114903014302013822401356628041707293294661508642136184825729845680278362813628502362869481872686539498598459463549279281731371540630370605323349166612838740542309372665453452240300389596616766584155723470117268408859947952266851777108998701100671746962237287810463123688839827219671958129837592256445815767880698930487162713371599512100678503037547023483468913350155874463936386483489954345579359569071882524266899553748666206691358560260751603334579691604824111012839289742117972857704268368185174144285066271433829239197411312427791494420765201195367427044189127036475258293755294444514715638227542314172972157981142005998475225589172233648704080146264078141643117559196322940008901244275760795463347784129258919209868322526356176270890261649153763064684129982210895136115919165490551825867342714333993991750344517934415951203154427336831943474111556872539288519442741575764943078581623300877606281578222774152103106765735949342407486608929255619857921225597730176394450650591292632777739544628923469044198543581476869842148659365961539415570257882950560121097782459229639251531062874671195753598071885230536579740407120146229506637061562059973095105877440564716714373125845534538857173682059987794413801511199608663191929872609421556470549497717821312374602047190525710724450045547248159533959955205283038279449342139212655116614733841713820576967567962607782682823279644079710851504943204237455034340947135714275983617385477334701141386842496511003353525286437306338856633016542880861888530694277145753003443956028755550592605544483640539101517375349270478406455968157595988550908191623377145384623441640427994653105271677145557833902579801211451936055051659952709365613020757499724031277519917665920166120171281854402954253238796690931797649008690647676900953828531092894468801195608697931010668667042521774749891467265300444367830899796240069197352142931259244717699460245676974212069960491633122901988610924062520542089017765326768383523425870985076742237884630564676590587311469092712198640520265082925293463404406476872660997145296506426962404333563837888051222442298737937631579964575530502642036316871830516936968409601063590871756441308330194878017843753970125569703729722676816631150776418166179874885486873980321062920788986339215841678242610199685410687606884557119216718678951520049505697317591335698049283605163003272412559919652125234927031734566714606213367989270027693683100569142005077756398954612151631195545371804059708155411740203720673007992930825561331777374627027680579583452289653487777263126648534874725910409061007285705569387909874476352594776225316283796191081181335542352100172674360792673269658310415577338352305382833892689057120896005689535661108816324209338526825852856103954610515640937163385144576342186373730673950956717493081133565622369157533986971307295953604542545814963438791822415666925694530836897897574388775699271573694925011544239907386112764811675417857740384675712422659476319388999802178488221871848790718129546341611823766028677043694927828802169093044856851512963164303171615218045321115472064498066129809600864407386110591706874371414031154162669770346284431681368716439908619258442164974105289097928843022957164286526800900487572901613510909321483841098107621951924284660748113509306441758383820093799506989353312222055734631946326355385153208983066671654364318802183736038967020751323449508963877674750344581895882807982531877337113113567912675838873099657056852098260174961480794326019567650466363269422752095183558767653184580638152845242380294480654229401312153366612532299001285801309584236715479800111438742691309763415118329465731916595747214034951573294621330350589817285762588652670723074912365515062032759545384601154887285795675098995536044134400525614666851143186784129618384040582608212316790221262884339278473173871269705688616849793937819058365418976874055504451945325900063674191780896885423572016761156557852544257774559172372092044607981590778998863310985657798601020203412753007998713128715025887360458803211713332328857215330877518437596503173912300309956683607072226542674827039052408439087987914214187055323506424369861781074140991727431578385650013910046233175680686917300111830774107944732431658938255179795103509897418351378499241497317154725902871208561866440923924503863670784116760156209240814731681382422683672506244833196561678620139552242181408794722474885117343494504592295365599691189722354601303677291034622542181512637914100465282892208782691158527717318735701438396981581627102414092508064957656448967325190044414573834618457890503157141700592218838894279971015239202878266694505826702248198458671221064045845615677294445471103111640650605636296925919314730107446140168471421753545884681739121179732687659030313044284794795939288758572129965416815309489387435608524608617354143089031837727987274012532654182827996774915840445248429945773315945982541866919857381795977555909940814923327098255178511442925315018565820130938659302691402565728335501971437721153989715977306537251340214684739109498061427191725802239214061315326160872295757406744600439626408897967704714909868420297151084807632128920244888479837275403032340629605224492602410921729184309557089615205987818416722950479635019740104392090075946995736603018174608840571893672216416156899372837340252267705377625212468691055497257968005865433890572882221990727255275528758122768612635804530203385107279646004137155468649223522882969778317533559165739869741619151658722269344473222005087783360509833266849123945610170041975524526270820433765042698551439425638450867545003137069750462350764331729463824769197873525371303747496463870891427894470206972323857417078288746018111934130232061710736743801777176891551947763362814363987816935471652801506292166267453906847761743498396709314902487907550185287464264008563779631671643851616093838589957770711318993237899112350328095943995891415628146003771031051109812583816373970267893401997337802986262575694777373444254098458078603133618884382393139144126051242947053170344096330678561731024368150137725354931302152305804883132949862477748089577939206333756204506840767906697499349818476461304566996020311983096560669698745680338302976535360002344794784742516621069695611090403406280586376931396355618169772030210095349449092329699996475648289242046936970888825662024974306765138835147859289889811469281551199698164053667972031672176109081280129217411431843806447477590821781895089484528690392623786773378045144159073809710091903545822861650562775607716183411778045584849977053833800544386932336664273304686428825655830409020348653731065699027727407400986181380055244499950251825161090851840872304295821158709773786827402309594442947325259839140463063108579125023160026068229170361245568340220641345127217755642604136824848736688368129593732316793586630618804585923526048368126786639095416383045124406271187086336580319630390460875926796789958814723276147629728644009299768369729807699764003558721597685895730784323778653799865123872103024477023407433980651185381021144400638193263864502574301753861418562009585544552570745179530091761129819647676900333889368413870056531148990436677970635642800467743810049250137623910972075289108687549540635869338284727222677784402337120034294482081781416527242719045120333889401505907086344241906486963586661225439070842822134590255721363512037161192144258807927954835091365709114750869524445178520706748968518536343442198825106426446266482892990311256367014111078408195378876247719344467223382362394530009481893974900330809599123492437878186586280417845013360495689312849426459201964195400294742677987816735743187914637476243073564485018683350991399380039103073072151537427947573561212877222416324501826923847543009106552033642762339979329138509916897910977568536564148233433027862103775739225261408679087775350582333861178575412447233700550477396765253392250596359129231162621623751236070001332448965652258635025759601419813794918459579437637531833182570024283858293208821389811036081049741546309668709295528105165357113024933481375020830709712528721750162285008655874177091635851753896459545954702000724665512893662953904292418037743149972127653362887919284687375311814130640045989399902372470536660910841404776332320632088035055672979250515148964419521432197269473858695083458665437912838866349447603375534728355610933128119051943675811352998049940440881244796183226333293963396643444385682575685059620218079775009136016478111103844901090976099307769740569604741612287576771928234229480700510494069981081573928565436914802846883977711444645224620125005085998241781341795240125195471431324950026966585254273249025538424267457916391390503351289327444020734849576003517366432446515819457388818370746417821733191788898282271651981856086850722150865384146511136558870208617575593235998908949458833681976564462665749839771253340285292098103662832079142769077903582210525720580702912031433962087896098960915055147204597449063368794354040447857522142343350847018433609941062984109506868286054565255470243900694308929633929421350412255408143741639625634209014906092449562004507333216709314107951729092853935190096778370431789131128326786394443195597365397173808540219301553855752445922148877584791014781230202791335462027449730587666038807910426575584005338508232705833024035247131984033448667174195542444071997518226046816033864578281470488748903328272630786460357165851945779875482103099791018468939715547295215264316808467057354164633451797746706060194993837673502912057185233733628055435693799526269888354104647967617908419038546125874107719206359662667118622445357911874623692079322567607577595821950805145683534487438646709831552547403427719991869695326156310311438994054914676955033736531535116048542667817238237880578391176502912319654474841223297106763544659546364296957802234641607324803952362348896766407695637322637578337948835911718765512637112559201900369404656260573061612559323846653068959900628387164393956752443003149603968881307849670004380164581248733662996728564245393649136616522366611482786786141918069695262147329450056098784391272100932300594040035652825517543614648848504407036819445981871028480878729765003500238108351088716680800162253306225693812237794018623471923693919923762293406727725147338701781665398304450073447565348530131926216492853999641446543972731688036296122036212673354766193974913319060050130387697099510550936080922332726585633986646075643898390230422355373628134465730587883023176021801590252470216094517480662793445759348056492765742056804794365736001822534958593993898266515748554726470671286833537471147522966466734473954337585352535471528975738421563301150719673161336364179777137181490260635041175093718565547256748379436566101660895430223873510430402908754838629004838651881934488042406535669881809958642416929914721856272800269374790546132742694269464691626987686314602469554992412460288248178291732853691419659250325680608477113785647404316306519315648799470125549163677144678253133111051999918545978893203922337108370197061110439266700097411311161730430491810175062799813971163370997645300586939105180409028534297776917509601045098367406746755729941026937979659318949556612044733625581959609847922132356055931592944493817413379741231209291547204793847498025470507464519369837033163964904091123373807822754397625748469921868797456884906959697565699404291384536720140894164061667573389368204855893060123971399500641195241337060818086224826435841439110192924004832519187420121751287811187342226243057447220158523920584844508106579874145117296252317641152621584037590914389353836289353050876751686265729762202491183594323170654297328091964437236822621839952316149435532202788142513206949206325555782073219355741602570990927135538956014239198349969296043583277563466458852249739360059126531562591990904482522406750821963715605425423441934415273071059009448425142093873455384017754427521878475899467601305016313557278669445837386108020435711118877669983157000415877312604909925111402523077193480961173317675958449708543147621115675897865239809850370236500477016313238734066653411332760295936335076551955988086876114584015822272531232253326146833368600270648577603660825619479408630661925630841150972260563039462745668440174602126323276812636929045229709705250894348054190239708670204507761749454833170919879950248643774509034590352565004519531929421025566929350938340768888266723325661506587716403263326345218360796567767761251235058966395300947654578766203144211469059482862002820006381554970091818544757629059005719306194894913201635555526932450483036314817594694800922222924325570755671609922645612469561932629876625574183662549008131076995690400980928754660632678657463148339198731790659195432764688996536819145650282398098409700245755458658277963353404799809064642557282697601591278120677511051037169207913808253610468097648144545922060722159416535317933631331178422317835956807501939310932043356884129677481615144316221389652206290698328863613667007859182816583331524810057008701375246454270884700903765962433144393627277500270523079920404921911238547207215757731704969316826559054035422197317183234570916283659778106275184960954722854245094325510166473066872072798869840267138686156819322822374398342956747179935729197052720133795396096282457110979871705956021055598903138412123756773955614802072107328767625308439078809868237577859750314590895951598753518508940314522362246308457018557445571178584921818801164768973836706979551690893021569711106503277214086663562375859558616064571805319434711299252487602873981769699257034419379553430427840186593984966598751105810479780037145469812010217069381134362258687079123072315756618705471854270386564724568620543845302851247912693105477159211816890412666108901059271686398099960158901804613148878644145776387021336380883496134913745346134090229604793596019700678093340144150670565725313323274810994388698001770437890266794991469482553353693777812987142735563625185340211745882954905255020707432786630413069276891373614072426763031667645483489702179431396266691168894610241001943844445779165542527490261810306274012798693056485218723965539747101879380442585396980383421714511954646908667288420588878019379659899823755990206597642482041481714497374813046929736449700561083337116045009818271766390396378641473413603402288622253444198215285091190097492488868223937565615444949116107666665094263920983696316566825595860591267169928071494417846477075119194115149213413610745451615493425828944304739484116606089604108134834960296062723929138665198695874408052417585455360958780796498540752978803475839734581762720478774714489201351399015363601889368709880894256846834569704960649540260066327911582219749116751749027069761591489424254137041674331770390769367966219348798053893646826398703136726083216411843643235784817410089277064770275120994369304745939544164387974290627187647518869242926117178492451656426006214712456496141631149919228902285333873295568035831566178348975011234599701891982305561325766496284000184794952631087300079821452245440948614178329498131516691026036067777559760540428556982175339511641044396724799456665515639902067136848146329782070645310969412740042861646270791148939845525671063302062247274514342158970471973537938032230654588047164795882104295841398160688783051591291201072359393344758702966977562015207532702826555580141164514430220114435269727509289991182417062562344105784885896368416868025337905633884121350220074775459774952332619552022659240803478677836841204362428660026653334455458886331139954736485148243350800558093997263993815069920379299977894574177486528303299568451160324131381418810994549973291239448905328189977648026248930095944248126036994615222862282258974059401276435875018052145528610045593402897794717824829691144430980625098711895375330776029755331189769177930430641523840571968983083163703583905480978760777039207805550162557754237134382105765796177246645481827418252429470657372535450823270596001141443978277227363356090229781175110445225951913639072529208229657930082874243272925493059170683961624477043277523818519983981213730327213970071450027317023231211093918504545321342257968436366014359032822521835639602900951123682208995540127794819513012991519972550296009576561696775402944954217317632377630427566218455993986586822307759469230208297399719961825349509573132342255343612765997752053008160684211813118705204234681095500199518286744386018815581914898888214298179928334556356518135590926225074174767841290541453661664860803443642354847215688999838513796507156913973007323209740954346038087484481657974590644200781343089625807203284306413156377405046373721030586844684251427615050446621208131291957258959281901851232870602404765517262599160993873475328997136575316714172810036834034947268415529107586626008772222283987968865130555136284953285383514191513322916045346095814356012943301420403245392792168364947941469821115110416896092385095050136139295525308008887087860443541721307270036953419683423390452049425772421705869183959826768600908486883162031536873831230233564273573618391401362381418408605754860086211789822995493833896706900477055067206473979374111966273127230827210925726737303054539990617191324081282129128531207034186886091297257855094417426620780183358800177837367024770490548966452493320588285587045524581986739516417296696546404323554878211903482817974268977266481172774929909590621837406750895848081407299056624693049809699313195730755296313742748894932469629191102803049831704165795535744523740484242583461567674615420888446406338295858758130546550978486487134329348081219495531253588136840584732329266075138478191211192951139881860804929570892402998227821656841671462070961029058774406342642274817393921660080712287030445797355795472660767695384394906580318426916836593959279111583288059148008319663722426535863891200671463664331191126192537827221308454889279917476816427455878636836031256550766731912486438047981128379262596387992326006871871622086732257590868574363105618120708856242767010685806823811155817823876050585328711570429190842477671027856793637569361758935261422826458838904936671545302392954600214046719355425362444223798493470740537618671659414820061229620456997724308771728412357320857156481800398257723609781296834995993868104672285448220441279768441608433486314272849740254720434251434494372692724287312375898560667602440259419519438966712499529648050922618136615251220746367896658908905100943856863892889849788192835320281631996137636575163566120004300395597183351382289858584336822337695481069155275355100970776744517432421777525239795036005006823720230543490564002364161270374662142157949628003835693502922081378529443162322573006333003063517562655245742756733540671611873792519097985439062266055912611506438038357005259103752375261775493382139483859885806898966212383571335168805158175791956720937941162042719318831407628840270363689824783263772641104247567342725635077130719498526548504074987145885863698017409650491073261376567335353559139849976832510062216688141220305783648073359228169504336165074083116833235480142546008471693139811156365872307428320291090263614222773327954284490222680247782380907476862955635496344470264663509135795788339739673525674827551371888615708439896783084693389652822662533488530433197308975533616309330318341399961883066368355924158500742542320042654712933018588844846627647432773866406044561506768905621926133602182102024174629121200312081336685235217934060484100049488418351017576385823202179333231143960168569769123384347639010411581596200229856519415872825595656972211167087296889099621709186572221281970693053796741637788314874488647435376434900628650743427805101563078541269586763032734105438346915085006173329593942228172979999867863303957004533364641324081624526922190727680115089204569965287996381398467394906496221165461107654898826722548075065892599406584412175514598838914767654120930741130406943333803307482337668098939750780957085308032364146176419699290215235616430566068320208415717424002950914508728655739093335362631067038125238480106966240340602367874798443518046897665419134078139030011946539490971692603612726863728827116577918911925780136598281735069828290375183165517572231292202111445745726820527046286637063172106890466536042204054670580018161707605105877462503145287801062041815631674871016132999408525156264867674582386503505705934447069521827392756969445525939822667140186293367051327754573893336717175149447822613344714295869197998685537643895059174398393951285756532456006048056292164799302350434136222966461775833504992709683095767022776151109479254089337515654425886946864453545035715920932053227705206727902761602649641507409555716042280405893994430087694977428821809839605409231375092344296779129244090411299791766033294115472169672835700914361961907469366410193720046800110604306696374710517231930670707324722266707336495877895292922997729691012758339603365881310070453419340778718939690442094847908903413536152466128208200400709132335540638266898331431011200555967593835175319867245430817988787079529321804863730599897214036723809623511345925666008259546331863029885992704729482199535481753043756849881552228174529457837342053399230613395269265368605123332391522739166960152822575427860473708292214781593003191916894021592874570741768430363197099430570702168768868953834027604229532269911644676392841632109346669084787609041298388492895008157697829497993624166008670811635945819887290004551248559358465034149436651984686194215214108859845815283305519267591920000751411661542089763796673800884387486429074906984283424578382414043786319327752447037235651590183853224304794040242293009797659417546592043941019052546441929103671532728000105445399335734561501976090006089969282245567585547719571191805870119271637410260213519164878560911676520764997277955979380452722836874433087987934521611364826118903708074410690783322793803707073724142838223182669703205542623644293299231075194583188243965537572237512804730975341220172562055680035280055638819383374203518639187199835931777344759625334817489429102539503095772683721379626757633012635335661986438379391333146207876904415886196827982892576138169255317302478681431687109398288280554619992728707386087905484166908296314271254788573666257034626274361427998877771646204161919576326441779784704455725042146466851356373731449308892788930526574388083898947005808735287080240037272528500733217657824908856314019100314825010923830592680844157742895686550957491551107495867624857571320374773789627288139098152428483887000498793863412017875097842412716544271309777960466995280480684430546852937906140062930488880540275658628481009752918323842999669121545435783133687608132308361039435472225167572209134287453882924129292996846114696933581834178451142445134885685510516799442320582452396272998308122010984778107230601069671306624716821686230481342128712378415122495802715648916027777556255416278290722223678632255225498047847803924775784492446543896045110545961055693236743599970756709277019035955364504185922161039208979418827101939310477618738507179023152363401223575256145087541490710606480923843530744975999847888399453628308091545952885674773593342060572082939183289837719386849434032934335051337295132524241165906522217264711600760536135867910646550304237703330286236145635773818084815440723241425423650003055315049731548961873561621923705163386086806681742729850777953435680951914083302082744962620181840922492417215455968500645304204742668180350560370099946923156654912544429144874427252268565615563840244105298688490744042376890233207081563674630839681657341057713985729996735156021581677842837842804522304088509184752383999141595736702957320170759996524060069012007699352603928055369035882151307493611667713039048977967719652865323249531990656120042360526792421292285396864479952323455224977571237951721839059128002897050943335225633624473577506119027879435741425037537528185616835121462464009063089070235595846857813506152495644319580766993120748191467082579257924210290802187627040963858921141560861734252632801352860959423973550436451144655323722394794717325148548082140951957848271561985731430448911858116323677738033331234186753301842605632262204165036359412781778094411973598504741684451907077458589867672695666600044636265513071565404275284582079633504259470993632372448594047701915002456670421971138084474641176307969135156892848696841100394363184112074693744306449314348448288822726359389156288976366133392828275762607120525985430419591162058729926336918803800774946432224043814187872920127132130767318741843589283177756337917339203465190227017620125099304789966129070612316082632226934837262879602789251778721433101015594586848479999052596891393085470451639827762257336356241789384145330384444007189240790734491915159573670332252775982808041083108472850117689251048455186522503883470950233125524643701137140192483306913507464136716666465001266222866467814267108029229518220928214907738594744224083176083109737097123933995285741864928372350098611798504860939378857083645278916852209979300019018986684525305269530737375233535707071736062657837466699081232534297481845077836195050217448839549517319710264316182051398061571109146269305940577340546455095373887438759722665780885042530694435895534303891923524079648114065838649379325006006306663833417908350202837058911026135833652021048915382506482166381872838230193901956117032010740242173957150635466559946336237111998219791185633530479666793053834435256271501368316156918285527878972698733438725360521114058956324369823809372243186224090403311841962541324991787069974831531425333311387053470086322501808811735691396038875016534068212922425419187222375261136180042780510192043647641153187927952637625359645369383533921020074651731616946598475037018471181154363536082022880925636188776372303763697298595977482963412174005845955483630060604124295207142524399938669064264016154448068890523153861239610857203639886106831377851345970309133141148745858450008756602847694846780529509044359267875281992342573198922182033621845543239254956093652094709773147811080466131220346138095581268525449883234695780738131203791401750042060816211475791342477760625613610699097727348239164476864678273904983505037870094575896678585491112372151032649484172527730004868721385233589725726211420977198210565041371592177151797541459426821708999625277335763896443196058524896691151342265476310612975718796666728096911641460025551282664373277612032330778125755473647022743542620022722637759651302628168470200011906580481575344483722332852148208673810918366706219944627925690954616357527531625887608908047861602155803352200026750215495149146833358304262295814463003037048585083272739668888604144036492274152306385194285752907562134971210840277564999680783726018247172009692792137752768583506770149223978500147438228230741102907554813978436363712970451557385263132805049423405366150838199816547603204718812367222087627534634871667470588312888844019435827375915541390015069363724811667886733663480736433486958081017730043029523566713382094470456516836260342470100004158236300075950929618760615931208945005286442752819590918491884952125057662623924876324940401100936945082577080002526559975465270325304482624176480953851573150697992539301266449645527729613537307260246311333468176393970062358101220788324244361670143844154406475657546583744626187585529215396377116189899866795309228793471848757056145489607075472777729467931171849520344019033006380848927912685380403727144505237120937912399539541713372249802782659936859384934686550425779006389121199670493860577328110540968309789099987324614592997481808829617890577583201528129303572780409306972426640849766700265808665246028200350414724930529108660901193649511635177553479001503166886594265533917849272950955917962332644792369216579729430957488452736673411169208574463244365027202138536843992539327367264972670841395468234807120461217432090999556008732154864459667387591427729967387134961028984968869492322871083796796103449162723520897960650924022229338902163508503219232500614659770535737726691695382182680126497965431827259162063218204135446987767789961469880574778440379448295010430482129522674370466667112030866366064972339961378958814977288734986788833210188846925000290170014772138832471310842135290204741387012485694640348137872586726048783451009906242288035899386440321033804007427475994854387398960003198469843293461476908761631863256818139787306826302984900952240114025287106293949864763274372771842375033812500997647769533515610533548599212493794708677184863940686015997421038246536949048901423933564553566066303207611655824516418050247798051345137313643574208329375668684469263247168898719481024564289023625316940469279452905517979481368113883105124249693117470697237579754061256362233954412150379574531902277424040866386387157761072715448863812522002011630087344209356656974574959379828138085222366188961406602922540787281648354029184715964882377892056325961922189021918155286435224066934910203153224812831046894790595217918775458202120792666194915715008592235489528953379561223032672975079868308270755881712219870237580364965792990628183673183075158646011409359345910922613389786714100607353999990505613640110069907025332380195495557910438886615069017731181750982404042064838031660594817682422986431618014912760149906676137626975887364091532410116528906492029847930235077789424500228718351948511960686621694412407721138187617565922492643511113111833225717010730872084784733577824144302091271166467699913631293907028066228022226825750079811736875399169678983629895622096742508252840085352062718844284315151147340100304214413179116500643935301785824268057724046461040943634580902583242069718765197261706582309827108910899278989548094951667130316625333821152698104516872541324274730198248836054435797054603714771201523220881303700156717661481339050459759463609197560609803594681054182106813106072077199687753948284691110198548180722996825307281474614546452684502904027511519006713787818302791153970071604192554933974004740182721970677003401424806001346529681488359569210477396095133190039243043427857367008326826511175327586535134588445861020286085005332887291454133365400122495012560594747209771389112090190901339205988068320345880594671152996048193605930955918347449712525241512785380402222394892257440683293901013157146892661358564434874734972070578854205166705823425562057949229636712173988331720572531534699557839672036102963479776097532959820521206921787359917943121658542625771764864658016235126801585726450286575801067682246500046085109804143579811378619424160949335972790929528905917117551235328878780480489246303320077216090239417933579701820606425735951149042677744250243573390910302914038378753629113318431060744079400323477856587517545750702009148660790943904134126055251655923750926445043169300606920833389219079110369872106798619139598340760611887079870174458968713187874558622429210498035994125327304627444591032997406691746816289170382054122257071384890467372020135897949554767204573446341865121904548310912279138148785234775437888479547511333017152385844799777994966413094134512504654492134868499416415500729565338731508993156178743554733361506699479569547650345877678340332117518464179113173646867464748424271480555990188008574316925639500450927013092371184411245096758460579788153500169739711283404491195709380146992076156993430809411537466306365341024108049826581845863412357333392608373258490089451758699066485589048772044470678594429734812808070382731515516740132511991736663767229741985712954609994176226648489854391377474616320812312897028992304270903545662453789531476909999208351398231862698419345189411947157157274036110542729832721163200088089973975139766190093648466409922878613832735237988452077639617581401014746624898976043815178806407708917044230126388921963076513341168128855956733222938215260876304106473952566937750514644843137386942131015057717389956516263955259954866853583329593471238477160481288545950782769070268133005955723275075754047666846995386396475377999398130475294369013474332234351118237922901600398368542540902020715712617350561281071081402381764649439978603730325232157459084255997373971517148026240502098930869322087341156370547882027933678326353526026321340802582177438074239497920613840606295108782043836360855446368052413427594152062594444891736730680439815376434267446477733835638950180671970452152716814383534357171045643502979677437270949416823891859784999926879630755044985615907982796877954032702405734634239132604319498551852272106605098909621536299654450623952129547018465436020370890416098018831946760632084079139483008575370609963189140697169500884283086514797041114953095370444029172162372600730316260883091416858731365753313778037066988580151468999689766531185290827056414522357701864317890739414775207784247661142280080281713022439645692038104657073048057660921800906571460224025112700220551093224123653228417023666535833888990060697029667699727016803401600135721316301954865362478925058457661997096006957080283269530868792198459182949375513436216783487923218108569075051118533158433789823686262292015207044580093675020073277992555938618050606120789120040452117623593330278186996163878078927466506958540513566114881506310776016972032739395881875093986215702765099865949462327062648820522717627195812387599595187757383049439306489630485789877308372233178952487986926867426843937277162868238037478853916292037785079722735757099714104131052651022072396050109878509619354300959423029079686474084941986195227621565866988802072157823651700953025417323586457014160494686845150993197209273651909547763345920632179145341187135341440226773493607393402042373188877265124006233193095891798433761806297896339285043887076242991732386644681681384075164170796654483790270322294139638721955414569181769650073950760692638732947696605332006839932456297089320992276517391346823761147319944701851393857499532191028775517610679264064821345348296570039039762746402801139228563571814812753858392804233044880061717550497459683803529470704172330013545157024562899942805335462471853995120360946335860034889061595544059863956786319518134290426767005088953456927254243479041493276166779781654192038214278570768102157932193390086421446904302226142522197852930246292008653586561474566166546891824850632809158018941120846106065632402553230658893275056833635173011819661999942012384739753503530666473868498282217413428427731214768746089896963356952421569942384856599265057473203266699397184087674706600688955822080087096246151594100008889156312315041171216335780166229832440919056021285519350085464078679862280521390313862247607870892952292523684101700378206813603247140071036980843891641611290914463564550019582778060252039733864660406649289803910734276512706234550979431538383903644110903050850226043164621800285314899920322736874767169735790194791064448967588777393374873396007168772979237366458974794577844275051868475557643293866541491126940622712242743576800957004396505008732454087970161435754039397733058040595035268526742312294342321829417292365507299847283326419225270412813292005186226770813567498960042146019311088606090811230714554054674495115368504042400892174853869216915378546712907563923599259203074888904768266714545979838530724068797941320657197613988081715417318416416580538982665728428779640287981660045235634992886555109749637777186189668096558038281660568434740937262762715823579922694781018594816136724207151154229804078109725225372461831054559039494881377899704934481939827089638733572864390660489781180731725594872658737679326206576697819915634241045984413428477927244452720973791975150334525433376135511253925626942578594811168951258218361649672068210344509276578868982152115089344233755398846964908732659721150634280491733921656618569829583162244052879935173812054396770953802446718778077844237606284591210368521545392817390930584124578571726302169193349529859482509808985223815552534265568094648711170497394254627512598273268805632020942969349737947986440151045892495945183812363348207549109661612381835230361093182746948583602469893992009735494587575300876700250982686482209291397095433780901101687849579688068954337286121826891841563394791069356379947079640795673109254498889069804990359564705399290159836883460643078854790590408323840452741314452252807585420058327799225723830331080948617450788874087519569769791465020699350636950630065357230055141100641621357054187691651456596917414535035315209870414406569530403130271091582469556836018619886257672279110141075571582762752062231067058649358416723421882745981967548649033144932915737404871041034376464479348465415510044804276308600109452105879900392564068952996928603924920997272470014972121219123117416304094735109091291553346024436789169427836287810662941811752146309984645022980494207061912486663674657222890918146400265606721682502974682380024937641025949244242837526918805790431662906430434670376202238384197720368816319702240575424646245541057154835692337936530353322808874971087080081136815427146154551714104769035321523368782919984419640156669895569280607726813039767917340295708207981132678679080139264129683491608485136481365091025586139228675278032211375783680066778067321849362148241459723256576081259200362022873093284418069277633223642298768418235878610985515446060598519292079140944283029881801336442747187598778464923104369190337742031614946129182919157806627227886523824410052993565234857045401146708844152410543900648430439774711005166316805693014251507249621748761227859727593775431411376112783259433218660074569041765340823993081025765246160794804258060273307116724826104722599715471606903469274452125824212479443412545322989206177901468491966649189172196066839256890423089721979707236097004584969810121136074546310584922663906082672787880346875909069023879457256252170797006006221133599795590171052679217909564628414036015911405128360809666362912010630879784463993153011465274866535404611716219789368295507339308889971369045425759066835098028157621524947882021298672508135959452619944775209061344928506283244223050928501140124315951507747439042572421465425332737816887738687494140811840710536449918600994454763051133486675513757387326028473241758757350255202530503824411982928788870101263844214028864887105468705751707037149531116976732113483768791863424597193437579420496465977058789235763328919078197439976493085358684052441623911204360610495986709144539065782555446459577146066388769327079750147618217934501993625878837815634330696676721515644507428474966354373689530690891349491802433813105246600333565135458822849638126416648217776337980148875845039051618967917567194308832749009125870317273259337889352476808384343084917852864970961315892330627180921225065328917022864550189244243884812976160712393002971798973555019360097639245490290463437026189585048443917682091805335187561266532690013118472841419426833861518706608117065819292514928250253751227295729637993958615359167937021707828863302854552228793343958558994113276371990749006520796061967633551099304147840396428444404387993796257684504334035271503178550945635856773886672682696854589745769969486037827553650726346124232369654933417635762348814138112991594659706676525442338597623946837018281600205922368800352387702913281336831120287044027250933299045001655276499377241891048671786391184947024104610197545610028463865404591569239389443148750777841152663291990450199610028407916407908766891764017989543900396109274614497342397579278844479369419785003478051587330604139173536192795409928569946164337104802138647924722032076015565310519699368479692800370354996553654224509992287010924870390264041411929285221698182814870223588932646090787950648877046159300874558500560092023348004541661352290345090319942559830344527072290374536219754523556314912532405434821778349008734606710741617555687064759709931520900250543652327675376578199265158763031614056914233058080572668293539945128227531011349401893221524615361897854534509084528754219870065985367511163455048378280061642282817708420292605499770334641104025984513793257673956100822133442256778749233392848432994510309203834240024398532025677910710631818462720794235638387351092084455877143869959651598431092351976188442299277653297330528695970393002926759190718626260020030058155596535445512120570816181146828883005174169219117886543959197468615593623583453242502211511029243011064794481942356300692445709136072432226174534676719363073331118077206527233418866480924687618308108964310361536983553715588151636924494931503367812933535564070375495194414732736020531351918710145632813697238875967550450112417335079546382640542577702212992236295802251145526215401162489782542959774049951505181550738317268593478728023621983606194411406518236681189723552696914423238319129018040509150249463910693737113223497678509530828237465397584853585474625817142753950172398362884104138622502235027969968035796480521611636416287920462102738943431079946529841970794648692320050059741112461032528770499357802997227873210456074095680021931784961403655052238989612999417202790823062731673938473856488646160804324013562885223406908864697719343981748625966234711800322045785918562009103372365875508763885258219240716896494333224439949280275238876370619005817684256447915508434356719069920404583546281757835092947419027115277672006952050622011741750445357070858854022211182940029284901037175115795934645741966506505391782284142779169505391354465393662805535241142883171364206581902444949066058402644662774744692644501385043567164551382866313522010685849411906712437796900858630942692909445496033814363113207011428791123381668066761369461246997857869389452993072575802787029716673480005780078265534084767191257908139080806006352181974970201972774749603716486632267625200457924281325196324270965896982250172902908426726167162163624230141596801043853847291172499838483141058936701098123408786803416563221596337180229892411086303423355328129253248077318331561151307105684174011581307232512165177061726285133430521738284796240079792848203911767783557596446352074534843508998466220126173371872398814963080876655241463925478937031803250115081731504617061462230408005047513733413055334854058487691587934262984178765260081886337932269622095713412322741089731079432092320749896028046808364604811536747844897596881699139704115963057828939970454660114374020299784027812336884095900497671845307847226958431361339453925998660176955379119924821670980572383224343095158845316725859195137434205655303530330473979633050300650095214220122362423377914976213760464549173933933039361141614574457027996649009042570926463247083649674834265107873798428931498349001639371217161086471085541566061964477036068008908062804878304642095992064766619981720501486153757749228026783260302011383650581355437733993591201894034132600771141666468455374811891661609439868665053819802276704318927133424130805176056436927821039426119826538465765894252304761668946426647169594426070222960361427571729026067938092727611600976099877759963577353962681541302635665691975189640805399439578985275081373932962919436086993741684625610392252485112891422968172673872387684650357496775067728265035384474592287465895012051239225774745126318797096293221483119911125785716419654371857109724052307547706639084772876176299346267532741402547008174550158885653952424784835762143000939784685759609305054597097410122419121611130774971630132323422563986300506399590728321609725053705983251862401741523520453517704083629034828703859366026702332769330162185017825324176659626842108176696045661686513825041699187274292477027782458639325733615891527998620492553158483205276277238402285525925967340455846542880812384467132079037848341124949123769895300209356258430561685423936294703784782537609954280765005957368603114972418520958733163121701391644902190200937318692026586070559477617686484997552856868037079736280821974963134074290812924148617854430882549056353410537066991008015797230837643916172603132984086205205245081226496680032996356686069277209802346339751729355144689259709044242382665933164745347454577839784066258890050985935899788176751343524521881259806088400124505676435402397223806523575496805211284620144262922880369504218558211484521381187716999333850493121755137891630214147167447335771039120289781389974742011126532877122778486719364372963952892687420535501794204689182509316013156179248474418274043507321990174640354991910516228155052444273791874062918693583381576690571396327766279773716152995886556295392563136963791502882343598847897114133836206630152536177531287136172444711877162936020356899454389855277479446403295637311305155538307164139595625912391122796436603148609179482945077516940819776199394725369777376089706479057919015323649442130272222804050580640807418812377263764868781237642473715573304639171676060852279129951055504117787307924104718130633583842931037034847634618874563418397468694298330191685713751571198448854216814530712178454516223493465600740405032272152164599085357123049734119467052207251824230940048737722180907036189989339612113542226750247029418763304745000540730971222708182951726084860569838463699044405278724151322698844520257509929412097818442594120264377319136655009838757824002508596475212005386963242027992800690039993042204638112031558847056743154465315939363234695251632211364476720767857507631011486358254352001332997148380186113463449494150780519752148399370833543499762969835877466820215233198957672107450246649581453658066017440644581788114150580671832446798497010855449267563007087909039788909384838159917877503426522630909525687019345524814021463220164010316466801720689616110741064918815498693541454435021125656913490375070678122721151277694236482971627730629935644083878119713991760941040774905911919424572512579074925476740312540408244577524186734631512183014765039190610239381590840465010313657051552700489062895487762266995123495089715306665589402899950809242361294949169177261316766078692765914905076394376104651234634003671359227385383057520756732546257406110169846769269185371021198433929849150026607905016712143372433686668929671620669437488540785497291407745261733861527688570131709808634091189596722580355049795539058403882567337679587714683361286042925416392777510993263928572115277387574383044620153021740062841134151664053767851051090407751917498073027393062152394613484627900063705261602821250837108823390930125611153424655014996590602764188026787568557338905861062209633661929523591653432649497100457379430213583613317823224707145732277306470293546751742329414662273349505803561935180558916307291267575373192930483450437761902352795621971983545734916927153815824392066875602305671979887358175847017836445073082220439189555784613912949523118520095548715645939551181484413794788933829139518221346449324979440786452996455837095222268943928307874977971898673021560213971349332085867348952424226845404833909209987106012951763836673015286967774461657697797262563778456527467143758156506205775400756173351405737205797841645196053879050180483180598164196252829998960095304340318748580256264001948214050798041794214436383888098512241521994884052197735757392540378423673313953843358785580165584485475940520793292066463389472082036797147981668946203755793796063229483324442181378779329485361136357680546165081010068982188688831182772625503062157638354022351838786559442395928616386979595829535251066516402328836519476227761245575328889481323477841841405337480608625958825111800116478870369227788124972985418384834593222743872662977688918213664813462156388770134372730259192530683017727045911294845021831470177194966670326213047796450914579898204980988251250947092678437929608121354319519727201171124987977637843346047031166457735537111719193365852676794101903828933147755435790500101024144150625415459407975942432667235415677352434995886391831081747637902607988147223872601677232803299171432653841198437701371069848130362442017087158665378667336075995079048260568837733686943818696412629655137745984156251054364098767249420914120283156205459522884091210036976384658696400535855990596923946375469302265726879945195579793170591374941617157198200045977864256699825643296125848383473022500257261962240713475513305576499438335523272170666507106816176380858947473624322846189730745268171213698150818346451123859800083849848163219510528475837988374044252483107921947040690182201626054473337686639668692465862169100775862215604551564572617464992590759721386587671094172584266274635613983579519155435570466881819475666721454105329278331961478033894009776192495991359406593973523942245505485742838469405819020143716229930671503297156870984703114944151848913759105119779073403078398085653608077655823150570807954642372846750892855476776465633590757330931155384042325506578304216993013301545891956294808713150268167906117040513115557168797539393586631243872622878973725916058850533569489345840550008322779442007648295827273512189560618443172616542812222353284286914532418180158527814425321841427073754163244532727243512148870885267706927377365975329785194469326184775844869637919917960519512449247503078265436479014142953463654454957460772926785504406478952630212897019194282120620538078187237292740349329905632241288468542768985366358750523977854036862732896517114647966322478128894244859755634608799063105382249111527196081546337243415942995709076358837909284969866843135738388945096320403928515668102211735897227845805298311282859228521899362910741020331309936775882874783464522023892581345862273808360710215381177606598583939148468140125065187866804016291357015791423146804104324542830606512421928171581838606429285341158735588253371147381168581729258283410056938837465313293272659834937387968956915215355735468094062350905621772458419272372806152349350933322584480948923076647461556641862529235740945413259973812825559156000061690834215701209269841802268318737569813457695196229516867674569114933845389490501075932375286427347691638867264290511286833968782089747145805637481376606484666121375551154746005623712030752965667965190114025467055223820172358012609271627644668432043392315060097771112011598522106171354986375424417462838276886685406939792594320492962063222154272817348032537288655088282738546972236270575894504867553933368791165337944185406302423298230617922533584221484411278638097800231561204472052404825831291750554849908054880033005553068221891688499150758830221041415125234944298440336429547426063333100238643363764542559602026740353321486987312429155626863488404423299778977029739051983474898108023196836532760002975106970877272219189328949533513363160651304608741770828475177670217724016630194431239049094314071219032292827821714176979917570800882328966710544746592602800264486359550427010481491660508287750052593146270971428113993237371241561210807086518846445233656438361273649905724021972596734876661649938442268776133788656556031448469933956761856936878411059113998375073011437067169181901663107777905698540946256087219713559039207429815757652402848940689785421872692122741347517608869868663853632647652568320319119594134302146284505984228736740048238456892936662190750952375702272630639589186080780038932539874726673231309770948158699467864305523368522626851710739283622223783368208426578262964934934502433742420946582633398646844731701734306711975142056032641901310704818318295947630192068032296059196293684552811025419651516060856075221687532528372751010344804477678709047518072534645416417207288263032022723718039818209995746853146718634768943776254604216201557184994614839431046276877989155498574423951685288907017716387942734769164640840413093839925043535734189745156583252106445968407622774981709473273343311462369350685089049578636906386321525689237446508874150489992311459771608669717214476082404960049351389144740540505908077587582547007878509967688803417618783140602324815971000713607817785291604464912268570732713162842770127129799146838674823750802509749783311128691798132934836388240780985634044558587630177906330988765844659802677922213064218204661145755258468538656917997698951041089239256735118311518895537721186879280495486089020395683614089474147740176202529979713842128201687045880573746096669045975313127640597374393334098532052064536345183910610578947555726718867523861220764195715102728658879265465743146215952824529989750160898513025866110485496524012013880444120722367499974869807528981565081019031562571373333568495924597503381376858593902965210264188041735295078364322151379482988804051832649709552607584863082149205856156107372191279136660125537623732011274828075320494086749468539789440883814623254144502255414487563878949882942862313360572578118814813109969356198493341756380125553295686640375227838956236406511731184124292522548852976087751560287606154886783078806477533977790107584712837897444708603807742744626437460043125654600594619456405126877505870953116892735117474794739653944580743426820476547183447078398223075538634138180753428698325077352214839651479302753035845624929551691632860854741235285249053469730574802965079628722402968282571291899722327189129230175839961641272603003677341069781534461208268125570904990593587569557046203079031030046253742158946824709143786262828281865135628562037253272113091083622569306599059114426883275952384650305416950111413228582073375451865799936236699791584542919976047638949594493538858900785913287620658385760678724422710711564005536589529893288876082446319154245403961069025637218907288691545172528804755732719657372744598427998174676068425790035192426649782388976138130613534263422901721023124456664712851879196826989037069104211396295796924600717614476524802524540908489105619691977335505278916031299002126175629399253685524081769894967678258244312406999686785467939369238181387127436234872548081336434680879771294092173226558786020323312079821475578810291516326366633531978174912078424896250835367953878445065781739502544524746508630798613603052733568444540758555251161751829645017805754703255076683107037476601506453689978375399741020007971977246668673991440396974628240105014583062478355200213137203254913732671213493853227793336798153412311338884343524902343848394412267213002535838136456051840467419901718711732985462077371509294816478358904232650148692614242064562747523279673193274523809066475427121311219117806245939057731588577196169472512702682227387612263389321596869385621355496616942813915963864237380440664225765348430002390705641018235766646226848390548794055886473991094949448462732178008848177267775111698670340699018492721697615867022996318340751155607816195038338760609173445241045026797477873430630628488974531870841032060298151238828064383741928434191831001057797244435406566749866587839729466036696906727701157005266628372708107511814261157410085382231524197919679283260733048542495457148189618083025260184749426178963603155803238456229067398519449829462219588736967351905186032371429733083349236053522434425890495325607512552581275468522919612245814544244432412083169373976150139994696030204881006379173271160778955395985481791497772364186020610704867727833307365493898693122962382041046827004758291067770321754822818482674286086720305940733019452476141783630812755866574874309689778504269336850051151488486761215298443537210369667400765651027440666454220050681996252707330590364521091267714931541672317119548073254751050361811113632683623926538796304400646981749640492839307313714735816839072082404749972953812960078848517838878449785618869615841234346731738296827098289183412224433549591901527008651522218022970402778009835623538232433881930845889646539987719169118096243762054752662558557082218383847825917467970177808765030062314564651168519555951816590045432739168028390844025133666569391549304341692298890509625784312713814392731973797449745204733217423629725640213023885984442714195708233555402570910215458206776938926862404908607567689278877999134843747853432276414630436519934303864614915404972127569532972498818693309131495708475232338951545773776611074432059554401417019967270104593042970015725991814597928137317566572208029049265175330029103575658767531066962425700113719539910664794705364430357768437488052071944053496702399726386147853264358404885833505395790712198502549813661985724843943235289846403033985852761307100214303104679041682256642403915212653784218736123067056753311349873956618136399541012843769788210951279165311421691652051216192396724341319584204210160119253138093029925997203135207020356932569806609700957139213965172910926050325473811848266734338559964202768342169178852124697385870328095691827353706767339261455964074653474547136601701020269870182620149608453988552642594280722791845027883469322535213741985592243589020105889207108086389522723385374091176117255674318094830235891929548970531079570855072171894106708463797154927143235186405616367061307083185907428764674314215859333293432532398736168916133639990855079913412719437929555934317228782369705210297031271175277595254012431246982424857454684547445427595767955354602166752861394154333129381718552146139261497109947335181066781838595307007013061070897728721771240968236836400695632343965921970825950322927299525566371724481253221088259654495322622837255326608703511784946197250031814464506638054052957861500162538503315491476014523035179524199966053468935105057729321009378614933711601458527359839552943739933560012055362757480667557866225259796385669753144061909547574813077741609189160419271721925262928101301366506673678104096345642495329364668006101063521916671261948306553630386157443711409986951722181341115299311660889537336775561010419204723987839863313588144611078053350951607394067193290970692910622262545541553601541829751502261046860294187142313283253888851421750413258861919369757556951599843183605843901693103263888028117070946843185508353914559470544593630833636403383789557179717278532298369795255160333744901012281210213649571884775353329709579783754389632593433963670691750989411807132471119763835281605728396559681568962698401723496731003506661138531278854807180991105693329804243158634428297442723204061969038327234820578118971035715816152724320874940751234655010535723978122086597879543011516442065319131102274466343530145981202583232314701912425594739104103099356105014055389158376851531064099222622532591734266885578849138849781774178640224224476440783371762025154796664086128746015985811958227709881651397660297435566310171104245868706653737163112027974270937445374360831483313757103247161585572048431957983766639968822081365994126111892673018473664296889529878385224536760280682881097173987737281459662026627352121038466634762687146826981692486402621274958268137539323853425136584296480623861441259897082762410125266597688414624259139847939818148227516576690798627236121995264514667742977669127042310813044068193199811355523883807130016185658991875733362292959047728391236214503874866938385185873579355069906335139473931779486769281413806745302343399244411179950979096688164080878369948664693188053175734050237349519140115319066944532462234195066736959425053035457255885877847498291679335171850745015394183830644981069496294886753876728171905502165801614378244592041255280312184957001308109471637972979787364462888047080023078674230940936248212165344115470369462574919222890308847239899696719666508685519076552801671214254213837427139879920711073870602763570580278802330588187005154417347413973236985414428013168303353679838268366458198846898943140313081783543348161616815025017012337998134048116816584735302484686607886059171518338177919367421460421212752499682683111778646813077467862223692194246003620074546563055938441396602955008663738741906339023811213774048565721314144066864297886493093472108052698953049543925682885715320811569800793877499709670311230173601804347575448648359306781047962193485339254820505692574462509891957219278992163531800897615934826064275617102363022076241950616956662453713000970564760989054015851015584399554616094076514094605093901987345433850009311063750259021058262552565331369107119928486459212297058087701742334653764747740621573902680473774002764509167130331388285785530800313305607607998336597237378889637640532694828587027994272258668540813541186749246462100592390237234769623526523520855946661812049810198088471343097186434909345095411372719999113635334423431502403665330805051325620405114759406581759419495307013574817843873456482528662536514339006951522517609139817380322629061340588558130600000113495002241333278444964677042193916684331978257982796872883457433224461949861758916948512469849687784012871550888074192735816843786957883189099053909334924142560757813041877941918874910948697273993678302004717323001447271848538461822255857915822240026447143868542378310826124340496336014070847030662251702734423452788210466374190367817275230978501731112133443647341257397542403855510637110519005680462245034934099760991806243028308981383693013008546133269144543340495039175490813965514303813899810231516675239058687910407990624163246679962152970598786000605169156158488499835698361899233291856274260328011672808061270223990954469734335254661633191551546085020475442806144306102970622514681598616422543619319773749285472137788030421428320359554567136706723391478894266102901057974308011685743444112102923954358811617011663121913871097738176930821621877003708223897081607175055201765648787884146588579960301034877929518330891045626015453139566329476943663162148749685772305829806265546391989906069587336592957632558342512937541508200848882095611532355563605185660761988285229966636289672211526133641423779584899829291611047925247739736310007305168433912466415468710197708272278992333612624168391117814700618416051902320871508683592914405336942688313054727084045609475151533726563409884714394836330910108749804452644012709194295733258818605852489239425943903725699998370416660196430108513136068436667671263694492036584026955629385704097891329546003679750195340286084747541838430853614139770870645085879439937835192045248278770707215469063537124005329042822156755882880181000213160624818886269725886399539958016350717667400333540592453127116934059333770407553650169366215053767038398219204736857114293623838497895756409989984366602476410660078937126411903371983751109524501952268064473180966165604834676868196982261285210682265089300912407789140502109849192843490395403046394808578915866965210432087806166279045000805197280089971207043682106189189226547231518018683194947598353622766832213171022608925384550582332976196270624334585889408487471888339060704975946613263700782590744846342330463849349615297034719622302311969317334933999105787837693195532078114704840164658024780396277913978683634189698653679174296481306271192408940546308861726826664696906359313552593244440196412177912288769125069048194504815040925743690457408615940002574813580157043071744396539416496567932830577155849706541973442802990408540772097960243928502631517043398931179440239669668315449518657241454036059638391505097749376165664004566534125597664920015760681553404599867531339060571375131365872757064195909282099534604321010894925990085825710064209849838514835519674843991761725186176272119522736059794752425859485782419527475066941019279261169134539524246735518632095876480675816548370108852451281717188009964933976781348184469360333090316217096236735835896557837829683124425025874836989017495154194109327902274503971746569724505827175980776968974731441668548864456621632993620435415976566501722509037221831348730977488548133493713339505995473082381214689769412049866702413139415841565365267390864336243480079175323210893437476326516303451920173966993782315784974003418692227970387394577704286285433367450015088511670672701400582153436193602728536315386006708195563301811325046573172608707751784921239430555455705917354774370232574930937078522153154859927906827436848597255461093722577493969903469827260104672000804883414305442338644794792547399141179502109997091599699348343400105709601595980184184632660017088662448334376997800755249679509994632462176880473680568150617643572207904343681398255816127495999516021677237314142217800111180075990590649115964447559420104519234241230177518283579869974272624192458777654686871327224107004489389850195309290948259190107721750684579293826040497921734249052648018427082422269973426503304211270086032106881101044490567522822797480422771565589347968441363322668992001667026013556856481036922480619000085244146910178207059671430187362065785560700607257695055787192269039040742814119718962048696791128320653775610799276533059384430365214997587403453057426342891743840549000865958927013483726332724786118723033383828002145469035063623612796722021633993820212903942227082115412947067797754096049914108149836802316296382230647988381772629986074047922442986415083778645043537648161736611025880022155090921586375562122812076266228467920382078416782134249078733836127964941688653232945176533816141824490802641636334495359763453705940367732092141324097536571625800537308639161042844392868681997026178448951602476279604698420839156861987033235134594414943005938754707587216000530107113615964441470672229823120468869592806285535448998542137369724629951221055857448706026991912701785780148439201776935293221441867720326013749560283005735051059127434975760973153298786097441814448263424864207736083522269015010271911909617528859512212783003053011908185511508089682985001248579588856366700887161682731116261835626305077054794402463317885520062200364430111413274097986885188419793512004725144284938655104306709933298887947026356918774336012669983646942900324272673714718894076625945673276656200140674312906587446860024224957793716893953872625338710229461531639767465844461151416717746358806305626682448842983152781269069860552546235632763054055498155812752617553409290576518597765304899683456959361412513186570404900673489098841752108872542097228335695907034261663582048932920977390993172845398181054528967937629800259120673153069347834853759926947930566264009012294059749010337231482519936637576380022977990341086952984204718072015275854991688673435266534651692007380463588105726816323440134590334170732358022661579966616689561744467991123713329763534781333777441585898103778733143918642674046361181725464497649260012009802051663782101260456318689584841886563972008397647806287704047349462010881958082716746176692422623286478016109045457872324899647438453457290537662879569441363286444395867615998988899778876946184666205453128537703762337966526342939811197127409519713034466916435134753626223222379625451046152912956596185476687777587710243437548127003976672921257574395947102896185623215960719406836908491957309028420017507214739903913779668828790904975026987564533452755919262704977082781543650196652334277726700996293580147747317299082623888784086967761137183763222758220331545341863683081610420187495155714925222329040357750988673596735024315217782341358544926744453473507774589877433570979055326001204627324631394647507470668200147556299823766158467122420746265989124980540016748836701404612953397037863743773430093356592699388088222053865974693344970324393861314107793668257138737659847404810369310006995503347421529674806737784363327019356443507997064537506235697448417155882468146770855341662965315643880253791915184282850347700200844235970890724011855999086190149203726374677919148791668321548423244656958148759907545350019043424374150442506027053167383675190617768376957016582815866561471083051870643247080198923211042132068232320921648700508733624197478451808297817182115341033028371173192192624332978702182598639315278380249941808977091895490156345170883871205889794552720947996845241682163506898101084282087517504183642776139404688193466032137430842258915312406761862352939793296386811470720317103837023442316768438138322979043862892434457948249339797017746791993876010687060744831344382988145488461803481327484442148822371249944082441708336679648365124996400543423309785374755797726112367201243753585364433915203914687574657643133063314712628519726939995113502803033107158847148019445526721674265196842671061598508955094325065015250710209796433769732350648427402946791697152750098001850085861463173248530398744241968517465757125829035525177149891464883011615382039147510736402869771544692228355165991780998408010454380282036394767716476146963344029475716802238708125654177706020888639298282581263147823749140921397301862975633493470960523318934541334501466365508877143817739291016037569811755883683309738939265965654039792786445636751048157171113455048576710846001199802317513548486135329375381731995793694255265528536817588729330642597740873468913800697592140326108214109825638744106974854997281879918769762621842517240469810069267879051603674569482646782448150691040245788636889874820647215885404770014876526280763037013420966852328298355807348947669363824194684523197376725811355391391742578748615494636913765608654886777940208095494771402397963194213038583375662118365097676721270802531343802837660576063812152440832598764041297209059388310260224836071882792754984324305426411250177742795342726861893746021673101019747845354466908855551427974757331684868875118285213728771766487470560643481619908996681379960160135517673536847767062182360537408192967139362584576315978871748712564252590038526963630545129925247350573161239134471847319624824601621146999578770668081846164868017709361268259766660164087976111144482079404949022992354097451421459255545341993485509375304941047880168810119514690150517132746849732612907208536631321262886718200899064645523364506837851511396299232460802751330788090281477134216455850504960631804705761741463282834259696575920355521751997810703547221007258833360196693368082957564107377263169360867076791917373863558327431161491170341483610834968265142931760724572341043268452299781055042147211654544819889796194576332781525722072993062421470211112466869271480201743167255845920179655203832351374218914441825117689459780297831370150422521643348414150818044156494510645797026764421571101790907225488245685312075165013030459896609552702611932150132057851309080096358970269716151743050556558475297655805499126391502931004515019433895047530315369951565491332402872620951058174328679324917117773272261218554919814802683858380808384824351853793759513023359922132720436291606681477305146624791183614897343473223064368954445467843099424835738805460753054508595878674948106776712740774469736063420117201332700400103845254018405733019032082162487887043905086176239450688660817027827170059823718624447231966719078991526892303858684331248376196200521294303140617091189285830676738216655189501426235587660870246841848471310739020196282003176217472852041896361685262945873703762131307630924827911794764536067360681322425713268713642952679827724460258134692155489113798472095897380858361087696162689730339368285409398516783086316643832153818733436552401962645809721618449960982497500567898812978460094534830404337921847778926786557966414531936352159080880443000915996357976057575202499313779809545810891225027500193108008233405169969879014889264205739201523683146992443437377076387424179432963634079678039015672827544134680489715827215218614901299901498519896122952757096116844601775697701926312792644603138853321427184776906643345496728539279021234240236586609770305958636333053324043124200851192991058646311576431829441458634706795483491290989631717474937762043790756621393072324456523448640657355635136782828034026527315294630740325616992826891472408016255932297642109297053617785873026998648856640423406672675027111670938289945170267161071545048267084811193100784864607548159095149752502545314923448053803035790087752669839999626702683590276710675343412916276365285843885896270039503134791931385184853651881638280376626124832453951623416124257517348404740330009458714567765682785022538259447364741438567279444062545319732419813977231046066909315279680010063292819896685168713116094380807186784635612929356843724572844255026388616449037752562179618178248111906203835814698032807064783265246715832769524847175963669873119898693460307488763500862292613932170379498830815981822850443345855861077431117082137869951020808939675802093754746746735042044968827643824370498803095444575654554277509045971631668182731407428725925402953070669596781043732760104627970384113879810403539466931193231064685531359933568795493201788722526100302279606188153478521788651866294244040557208435479186585753231215187732781589314644703748187363120002610796012960975596856940753990329819252774959301340607788893088883105969773515010434114664788958202557643852970990396398428374881382123683935099879477174971623654938460433679120689701029422046704646183997979692065821901531694891657454914880783826686576162944624292804934960901188681333030452400501221385543908583306957621921860670961430792258059601437202151869183000141738382484135098404947258572096867402181325282009148358167107530318480545554186646740518991345678685855690615523779031807278110296263632299658082881388587678491609582259363992649792944292127573170297907190552998316612966941934066614436255637071658912269090586463277523941592864988636955188325581736574755580948748491569593114679369862091393982547463994535063455741472783577392515600061830457846377803458374540384760896544761348245305451110650180887285138753579071255613312850450673638325913662012090566945849953525872364515380457505495688057234423828931586092998354531092439657885042594223373661940515436554072259898963085362750282893111450177694451665924620643625359824761248277835509913992557917739644907571977995195411039534662260791740949707281832147197051121440196571416370911452604590836310275456490150551264820338875801498657164607138808867024114622968005544989281394722356405529345443330492404737335997162405482939928084050182869154242246336773410302242664675912802746092624068731610120288500829827570930541181120412774675966083179389747121698765471305726875561342883522100891661211154597741370017067894741311950470383059668504636272051896155894689782051887802376727052397845332638582570621950031425916349796429595388059381295056288816291987716204790065740070884241280060429225324827242727572167716804696866808033076489535356123361628162729232746867092532734521988804516036356381857916302834601451598705662265468922893965467973068260455213257109284992863568804433264574641112530508051753743745679598235088379759035168489165278883952304114640782203445498670559995627644908306225726548336431978533215504718753991974219860376410285614012845426029759308458213578257435962159473156650316584241129991510257639131369643091556820395771368571508442488231489738952873072731017724743592828167724846114215479430319407900124717801805554850375427859304001336456336520076254589618481041416116263716651905935529580729246471785670502559331585285377219938233004132927989873311874770219535535305381165701051828861409478345828893208332750229847778535501682620023551225253564204534148609939152888094703421688449444985056610133958660761134846165987711719114109934211867914213382806934059886341289080447404932852510193263973264444823122760423670937158490659473857853901666125096464145838895342233476164666002825573945997057507343582153424914295997437613444581011071559106182608474142016538153557610744205264129390805537808673555614380980766711726554934083349620665892099946441832331426706899930189607828728429106433478698200865620310646322893699812489683239802257718489495527369941430326569912793697568780798221798369060192289902387510084230438663998311873899351154999241599697370634846283861939759784399300863900549285057079989530041589557027102975603218305925788010044150683265019197001858651960409734151194861033608051610392758988130107133834103876882335600351686600463164609591099301640409752729738943677283231968624703690697881284829333937652198243416147425095373274642450884992830486529842745929464172134264361928297810665528723011680999853495365140029418216861699616290192851591507142827308094150110890985304755117035701041298836791554235277320308563230122067478172296494925349475285634925224187097965854933606926774030828663171548576914124005153703543550103679631731225669237697107005819670049341628525690344820934629477793752854443105427393802038412330769221489841604439548123585170273561874192477060305311102300733864026971267950504959246930508438308871049554594811293762696316709538956076141012126681460250471721431780492034070771650963261234138173369519608811353573251332044969176568320126507118559430203144509919375958092421460581332266274832213428686077048596929390177458698364986742618704404359680418005622561667602621192078074088163656243592096668968589332899756949539612953326802558233748448229543808488026462728630784390472775308553276228058924259915032151126026597214071410956236494668604795662708732973131928141455370513402779206379680462947658857167051844220270985298122637597843117121355277876560980026520496882256101967523199027206938926667126875427276793039584993883953762298911247767694354446413843011458778474621801631546541117848010139639326398152915861161973601872807144665373857226963684050319285245333990741724823111351838373729997306984243158355860761107592540732479343400358463180603105682327729917239754666512621587782939661315645440180994101536315936056503459816301490212537998956417342418445426012110577786805938657794219829968759197176475677816399495908649498347484458543102492443057539521018570416886954990926950134725311047274461260844134940814368694334653325189125474321745235574012750535428000754993839861561112615882079039818432649974932144082111519737173712858142572443009630648336202489868157313866929921627092949059463479379191790715552133431178716595083460917540764289294951810317403080073914740629659819711074989258156519438730928118724211079336832477440607500764769379754365434182034570919325975298093372591546647875348243546345381436170086392565448713185286267233052950689901220787078384367203467688253096179773836577511526931969295818046050813287096169730458732188423776808527626215330386892376181764405002146475575117125139358133665269807467177873082350065974070471861876945246741391736675483409175121228009904217597705794989353308452393895698187306246206671650684735301555781053158281633043831473866057938072965104167014180671832003803500697102305336808771042223817338135239423210745236192198377614940343959555197703895265400318410122634499598795783939270252388203298809561626089921939424477596762175023756281525359625421393335400224064459324465730179308502924663677064504944548029611000483242138913495206522130051865213109699789738973823947047666892117215997459415866298536889823923354990001622020808470624195651771744159270518844123295794666273388843843709583802631154647494044722077715352163060902605412211265976674023102823454065416583494237097373902987474201015508165381863924845971758612347731675550647654645472572481129784719226194418693843460931851546947046761297847164275045799760195538428318271894489732901336443478454044712418980298937081494334251243683950533394134221911217499978248173408420613998245146683193939708541657645667564623363417539670984449203370757654951896185245969974908523942703592820698952846747165600369607580902744702200344377811108772186490465752791349384155984902510021997844324647832152624849550499830163915739630934724274218971784425030406250376956193596051438556385583869484528289041970704011089147780798752619585222895594049606990577562956793380864205587819713155244090989049080193349174950010221904622906880606114312000137337362771170688615867909989322181182387390165114461185617674209864551152783875934352929898544632619661916320255662880796783089704631302113229415261875572687620825362963374389938060580765144028896609764338086892205550134823902666538996866793828192971303434135719811841827031690057234959363464012653807087357326141085435959250158792981058715928913443508517351659529781301459314560206248514238607792058736606070665797192645265833754694755872335788862507145361498329443389231338308201352780278213852423368256816649702710741101803350302842828655894332649938478274588238992577014567741004978139035896869129631354778263849492402226271121939927105468514835467130649891374203490812156921283876050964526421639371907605831885744840661400375579653360508684106581642736391087214585204944490498143161768269346361612529509023405715792802732458493164289109750985983023019479987405840283567581714804580883030463674950463599198501283290558111089788007235022515626890431410217832108226274290366665867374974977155100926591915827511902547593209823258137522398206506410540825746013957728806497651311198661754133098533310262004198133577437575617880017235379124392456288571080616203175326342320578069106367249778053865455617950911733286181317232568315940605761825614633783279302841351405300883342314445868227381443619117632122409696275550041372311646389548927366883848173227045871056177981665356907357810611461933364347802098102450194110537103777441524998065008242458798945853243060559353795084581605967744361675841442194364435785491997669580025528135869307863410873199097987206651807354567507944362242181144378694636943359481473667407727870208505620110433158475603772715539552819692381197110717478654922972394226149295130402947173022860480689244898442162239573906028350130089572464133096216262554163757213460392718702031748450856665638873083256742516292924729695156228541027624313277521076636454651617768552629880416638851616001540429213640707520826455133603439059040747193558711743447231550990292656981496051213809366507350111048886801790814634802643117725179047432528914670683019563284689156847927205580089656279589698614207620994629384515728151236137895828913510062806740973532563948679272601826560902832566859123855860737773256895411848741356517962964277869564015779614524529676429586434021950856453815779280331642936279053233546834712125871710141656417814702912913515256309858172189091527599174668171182582008345482755748779891533720891144905602718873668036169993072359352819248411876434610421440914906910778483072614568855890363752727458445672621901273506336930356207620492541562419988032245471751742424458329758446521616943711220974887822718970816768263929209967398553906281830931256419158536549870488784189882784556554058841988528114607726355856619149385908702076363583332808042531146609413215079305199969640495816387920116152462273836405677386548647766807956865500732739163972993213196752955566049730688509182857144917188993371839294379289744330568218216410047278795007396760641486077849558758018139026891973590485777506038727141738946634675553102931470342644996524017985538384805974900663666724971668884784884117533376846144036862402496513200252615643621861906678980410524703623994178295010886030988190357098925357187178678733706048056986527642140138070658585657565004658449542359229430976493585242586949862666759458443147224120300451225056639851846942755083336875996591396066937831898867463039636491234950143488402418099813778262607555719614775605918050180897656604638179759549714490141789074993441847562984583330690561952339025720093207177489345889535122157458914642159069534994697927525340009805882221771977162993621558894924175678301751347968942753285518085573245153572490560981590560413406846110074077902189118060337767749801642946658827280308292191320308017710126945143765126283185378491202198818852077407967850539476522940180518979820891749751581746602944989405563660691033476045592550835096096419349555032060927931919565266376496407270329290693642701613274800069139062424031227418584123391835416499968053534275165802446967460792344570846064607998410970068736417365329901983818496222323048315900045927897799629208807292676152300490197257953280978051307767834904576562115778260135455749344634571670406640781225978646186836621949213820734684157515147868282282185191476430778420490389533101055896512211067783111096449764858893706705780210040869329026356818750435827678655321748433388078666815335736045503393027478990882969955102501781109694496855794050636052086825384230500706620590534733140313079877556873676971677632316047204292976620438783698630080192624567383086033929909892767465774680920748137746129932397741246750014825477338617846399967864284901044552335604474636357657238892198655995531065074076167230626021437922997428608282008623412901094085907870666841817033116377685108374022417689497779491866706077365996028854656629492303663290688246754991080826545463118218928078789208921545822542228574340461761010605025672504114599229749768590907108006092171770543073553419439238853813395598706468024920417343487702545420197709051984399286463108610748404863300979696639288226260092863332233594157613513752406359181217486354088532497974469208474315950103432228712661869566113862448318012881580856606415538462886774540974471545974916928009815602438946839829543078004725267152236355065644308785418034190956882377367917920546038002795458947347033712649071648649452844664502226884592949978512204971123848415380017213157948490465016722152762845459146362081250216387308809329636662773177560169861060395033831574689836113202702155206646106533675503657207661588231362085871614117995531134816705851423226762278640487320703466087096420322832669292833760142919701433653570072125559929127965197335977763373000097744199609079750215685186195952683164294096224767555316408128795562356422082551962278837101686769932240935221091298380628282273318639948290875260220463714198234245387113790910452496202419627924601123923408878521523090916825876468325563455865058949996442776644004039260051637113371249451879757184614129789299137644105003832468171004566276377237850376159558551596998137811974643425079676136387230797946338827049962186458233532733285387285349258908564718826484256110921420277450843998160732396592921186614163460857253777356463354950882598926195298975303074019081100484122348474237732683654893377771572483824975349898407808341993907917253089813132732300757258867848963332420096004220080775100212769880371012203574298173304670311305365110720917949974349177055322393335456408706573145578960585672469656120764534260009056609230344402985125394907227008646929401543063766528466628700832417209514886869728609417874658262316451401677524331534488134635417915782991234874643491621774350274519935509324908877474179066093400236070461564871977715898884123631031354458154775830488799878707785475004231244680483172345962294266895279906589612016907484728719035991198459417489788810812218116681693202129319159182541973085377291754084933025125163261271514143694872774340764872720854229834942059545406512843661193657011062883665206040907300848649484576827664123611151898248544841817141171417900085924117991045725460632110785896527987393107813728714776584562107532793419241081948137011087725535884389588324204318085601559024203457679735038995875589356974380742703098657681026227014354502191561652669745496105383716367545290172619461898072868393773527402770260213520556128103192077497226094032581607312967836469395720558436346044422375732038507663331473396591440217240160421807981527652701442480542175614065697839658560846645789563846056234421114906399781143629562482063627647444771072431338749574728287197415701250674759645538825781242863429812857779758538146919388113388667155668342945603841216973080221239257500751763464220548553078204477796245946236370329079884700131335012321148150527632152727606933852694401334842996783556156845811006030453011294154873452958473998716795376920533580380208291769445222302220779290953796295492076722205659443257346245443990874683378427663016276615444585922340232470168238560156888225866223154162035047380407539561106320845413312091557206329671040122662014340307972010778770326119262259178858612848428807448047780834521728537517878357536631006427907712873440389779525703892229046462216632621227215829121672392478271553167352430752333995286405664367241817755923220166641177686643618902347610635428562871846726018341915578373244008811051378514486609950172291836849827219068663797049625343869816085763059354228177948789601707039555762396438785692096488359678797690163525411775857441395097777387660385397077887191650433569619015827452389537114575440058521866184766901193732181839638869069016028512207582387620903657667013016493093153859503851362855300642717614664898216222528014243087599231325640960761030175381208025346726538728395848403215371363362005423924270073864509077052260896573919758432724605837333723318728981712431471165630368550440350900975097508555795487230826704362939412245566045500005521999705127364101303125864172562433630880006472191342585475478174368196606338237366463472978801709922844748040403718650089392112807550216952740283248871420966757439005850302433690846429973635416846909917540429612403679743659692648776297896214849346220637595141302106002362938892664620667367944617026428261919462508095810338707153906694682530177189475714534212681308434181782919219747026412349177850557148623032873345088495851706749366250351440461575757153630750208083987904165211714096959032972671740870170397729809068852000864574887636556833055398412846383815822923980900515972467461512407928283234057166940740963137155846148860232526535860882515177375273786656581056198562835254629237426555988505345645626936189888610212513722168976403470008713204131883601455265499924276041455708155448744956660265190135456785718115946386138228445947036585822309202078166905866668746181161686525835464494326198490708883035760109116680826185282421993451993393365711547079784904371970559500425264012434217594236510164067292691017849959735317223778958724219073819489423020420992759833213984487509513289441575014791090236990746333671009833740648771084301165553625910566049095103557372082625620392964009483492384451271526211840062699092376424058873295534001052688936250338243824074120295170403289419910300455630339354418282524229478204122806246916758059153624036329577928136438670821496506514750630588643332378529999331988588863201289831626088387834260148779118105843480380221922462974364116900122739343466411087258703449822417475177886068783907877703421435324608478960109669737341044137419285990053446443525072426540691452247689867769596422809021230638004058306871539116541127821687237830281103092745080505095600528266824851822871891617714584753860525941483419615653824820704451120569634699774169927712806720643976374547158920662737319817223283937127197031641394779575009668451929353118051273812174365758817873048445005669864929876686188573028662848375257522819034688933894712041359811669221431187445682023459115960683617243606534003860358111612261916335759258609578728906419680938619436617839205693209669061050129265019025728928197689334371592470704911436802255136675015203830170527321830823530682817889152206727132334601488415142719246653522650474465436335980921531562518882857955132365597057998893591751455083300333688680236410787522155824506715419781008823741307113234173919819330838425034679712422740016860057130383422778238348741972004243080007217688758173831429903799328148392705368474167047552605289128616414416790871473455140515112658936682455545140823995444100645083647511200410566892045797141545185473650372537207342667242331320805678916407227733897214163073018041388234900026569707466686915780057789101190454068841025169704846020523831456054444413185080832103245987019704704336710437928685998288115673319124930349578723837067143442419961994487968334453033809717215152989480356365006581626882112905127847746612980349313839774526803353545714169638812130138684168950167184970037382742746149872785577308375760329136562296130527842615796774754802655735894903805657303245371284945219855332430812246676106168203661730364387284992694024838983219543901062106725450148900723935413167217550691400691035577059528226362812335830798741244321503444382878676554887106780842701106944075876111719843237744889085893462273018230748192139165656014530712543850671232839124200241842122946775332273714029975292949212083212956681507126859432109531744998990530710718601754789286331290298757446446102592975455393541339435356728247990428798116186923461980461875201040152626836889740941758548450742936251920075877853503708618175503113544337944540796727183051889840744026247359685889243993285109834587298427799445609140325504300387211750823707995316871398048342023800434665283146575958565176605514277604922651496775463436920436506035267691188839205568293577616456046838965473308835555193076676876656195010094092527362960821117045608574488859967658169784670574562260269937033782416388745496296615402505937629923617535807153133879575217279986093827968210994237212759830352221052279415606609964846924006229452541552091791957830363697239217797465753121320169205378263527904505404005712741677773701276385317819463980173546306555266199632818714670941003656237258160988668478009002785864196390402468592563123523923493339473997171679626411689639404355219092107766592814717575303102775703909326688690933780028456296620158558014886662600674270456111284543756310772564274705665403938398107850367568952086297608099833830170724009931723747549736307778866667655808270971079708107253093620365498952094553194157406458820718720547460958473135158745664464908223937103496154956558054189791078358976044501156554274626582396736975765982806829575325647106509366479759331471653321087134796582361812666632194512659441558552749506608599381319475479332645866915071028543118854954165187008831331979627096803995733649600110937099734598795207156880705845836676489438860719950080127269865005691370471311751949926084782641027224826553323555382511101885531507646401424401700909808116591792026885135642244786201907969221272940010631472055611327177046791661379824331573974529375831654912025899205790009403729547070777316412615165035259546545859962245759460916270888747684396549079760392739104699658329701410883036726314178125612792315605511228417932511924508234298213084398971734368915923412369581524906906064721488528661045113395341572449330101074839456204180723915982217066236995829678332085518626324496456142779600970380224222568157999435284274492560252520686060444823360836272035338169971342144905989890384623492422820610503838866248504599571135257032066140017261658337856267690315616401303933701384308642594592167045445288278104083846047310359424603434204986070110692486842491946977492989913841653784558907823255848673001162866102041770965772921414079075064044972786867071820157109074101522491297790310832248729547633698915212816630183552634830888264723164530983804635396839589759760257368650154234854132956362334729016500740710742803073325856196043286827698634016455654444820979854066235126912636841781962560463568029806711098951029374732052715367165547607719152504568886709594405870229658535116314898703595932926694082497346216103035821801117715972387797675626725475115199352768129025533524280671022976876879027186329174293864142805845325714198066642004379293228079660418495840900498664654549776912056734651944819530884473380690274646031200563720118157598708151466314838469607711742462811020595994514379372318717309080262797182875852372147831939181777093153496731238487116008316307028351612089664997569222133433950766649224634811056821128499654988223847275961995403657199919079260476487113627476050580382509418857008947836581853530519355849606478279101556661530832470615872219022793527735702735567428608125679742489171058222344694796372954646898369969452066447194121275569401820678986342246861125781561297728243004525200506639640720132419827875261496487387681612117442015641486056008426538718850123578556655674627370099791016711567542225625638125768891310305148668946231820455621189067789972091235628673556996701589529595693921606154546423022501668781916306605462229736491213640609033098359867254391322334223432610138856750998999404163101607589810874204179782860652045684198061147778065664615623583547940906605353320612340312852868147550422712243955443106699436478717529392651506591339393929528736410103931531626986282377051424374645138770329230324462080384966693335773876726536668291696328277309134430534267840212836797143181670997901474884915212653968590800371093152274181612475484922795665678545239169872170272051769536519478070134173482099234162696120746022832944088527670922585782098110367342058326651774219522323781755080778325002641235599714239869862030376108248108149744483336447831759008899877919001033210104155648207982070720229224011789531821015489052039230026970016840282121718265731458599872108610071639962863338581363956355674171110858571152318850957742445494714361171427146881671344078954852774581729963130567463338523326564357737172437644403728640288932069039216383989309053148935197365914100589961388809443908493051791151014333183117413908198693604900098022719270275889020465398190669023243650255529665111484950747829654878723856446923984932126428859698477208644153592767484592801940641399083463564117731923494610974281413680898858801931224075646773321759811089419686032538153921503687158983412591796801976304805517722005382142601010185427681205443174068496849539314798141477473065326192397279911109300652410339024161519059001208358722913624026047413697404466154589539780290470284705011753580995235585949808683314592915236437956764800473366985998732346416347649373028692805539820523150332105747045038241234691687091768842010705330574976371416292041568566361811379095076450761673905030118033598658176338581785696999147536625127705379368961596695050497628798222256373141346623767680394627444999599933969980359535097051404151798153232328531988919435382974431415195663818767232893511323665844619190059539273218346137456831598598815287401018609891747742675207289326841933550632963213693016436943106698217646581040457802835908068741683859208053207971111625404609928357026132768310787875121676188617704370906513614269750242767868671710257728438600078877572649016169273027010454012070181991513315893852492471865275713445385417930128921323583218809512399798787676383338080810151595309002921398458930139538330758819458915909420318081290405541456816072357325241596589522321203792435307324204510593199447888079201845163416602544887000721016469250234638642625088905324009338771833298991063094311830734800270327886425160929689372718243731386041629731508412278855629636634945547564775560499505368018948012929723927329365432932562176725951011577491533395907794283922391706236925158191207104364170475511255937246246155271312619354801526822035132560124986405020775874766419520004833807249738409698867214246811307614757292508814639164179598650995396855870176397092729076339105060194268032657919606241706997817873748566431020594487763753574391459408050692278864640499800257391302450231963645351494024331259965003792150607428018239449319908808036471404024087454165016659666421238145571755040440643664062857300598221848051994760179677733675641419662304092556039772266207026445393017496671949624091909148148960191382717064403027856624182034277494580616618560545893393502904690911906386854615392282831783398831872927687806394808771886666486523147827015301752483378575506217595087076875577815215797687950595599553339113662279884392627264867939485482063657069816083776367432263320845904956289750530444634711852104122332275658969331459070462463548291648772348763128161345859334764524788383075717021869623767638120716364084773311549252520147206433579965457868709359136624528823188477808159023818427342182462435569672642129560694472043507152438331697716865219696142614680579696720091036119705763516195561255451650573807180084499009434880024422511872752564733597416178577420549341286009703682680059416689330947904454173883499986769621190749870825169037456574754853324998508288683673758528454917023724711676294451243677390409128247412417699626607799491427227004676997656694271154601224743000732246382278242520259237013815533393291868169632962071972380614566107409441832409657526397750520610250978992569990478120624686087643010529949198220749740191592025174922367648505654115932552825070096808085817109053300528632206998680937894666505356762226218160771759668407968225114501191151761439885204723617122914975845604876462990517464325029371381881575659221218902564723120415686225537528887830926137444509130271837824823499603635696403959610407547838889171243425226707777733514683431735027610588004251551739374026532288864750868068585487857497191443276092330526227197327338311930656352678217717618587072248161383562686182301354555809905501880404016371505334535845261167002972310648000223700309974145903693117989206207733768331565272155919381192405498951764696934971323778574695044447841211738065531744532469329951008259238947104993046781737448422814201202276123470493641272921153880064757147388979361288664619078402313074800363427604821734226110620095892520498232543595886244571322579968713096162500899125908354287732007136702539776898726849266516958521720163578998380468989858620880211592322994460096526474757585465080093420416596230131679038473077545594262588355834078310357766261811595407405974066376859188502813163505611530302536048603120611595858253491355516721799172746741161564784017879964163690067593944828971964887644523516751229313455967891939852830269461250995500679518368093796301033180535868311835386450234362946974154241309466943130159104953669813352558273756979272324070078339945341434567432514466676770352958114953208073023518894437067279914702933894394689519129738497517598969091910392479871066638838807047367614171503975292111247953338031574260539299745416903022547997951672246133354481555190826828109471313746169542510160465263430177853142441487661636647190973679697397220186038495242924355362777502994455132537228758488338696851018653774202749806636961651642386754757106707509332924722546138297181022879627823021291118838614906824399103816867749086281819301074017567329589272895557270772447739695163610727618891091961431927151577751126544382797885930058341314298111020570872455228608045028899098248308580818484366482612654116252173724416180259298683429204591016410384824778085422309412837251377431393197030221518406861931149021412639084468280639808781589455417078901169187976650200139686505950436411665584793691280233493863468358386270888690365557771483160309936418604603403070024647432848752382277749843107253673428723504934484789680708115569644049432668771192534861773040190420641255517373073340830218334393994888337034154249719036175735843316490261383859186774679809822421170432462169036531960015254430586287289877325460634702160346104583632232780457983465668105289031570697588701435781157166694208795607211279478116860343526716917747086374662259675047746599156481831695895602618139317742398551828490020162591455276190955220965464622465364948632160604336750119115740228324208477702306997670990352042910826468677072259079302986581415407477183708879549697516284169548126515644443079999602733968723743069465213240375902069585687347470940796191139287123658833555827287361998534091414347982959896564138589006977156201523569040348989392076000100615507093445252126181879406851813336808313683852837656515481174162637879681572735132982278933576594629189173588363267637447008679021417677844888878315964204679228285027287354092549601660577206755251437879432615728553618473734360325971720100638075396524429518879560907721104571103156582548307046838979483554665075329378385706816290765827873114930272704519299252691000245144553291544419827391731824130306090117795344811120733981777159312047621717239170008727497923104563742955876947809230342310628714776887008836993522644897918703177897850712227936655101384092671868706145225383768364850026293120944578891896814046588639098869146707270373300402241825301759201915196878004738723593554076187090637715114960737204004475858428588305841499777027423303079200774313707720869254896524451796906332799737410271819100810170903987440294825028532813518766743232117087839467707323749069700371660828014166739887055712486588119593351296526582172040068268198904608909420250823554276532371385034018084634540648951609774170878696788741255733675539769094931882892692331644963158922986051117368810383823490451373413938834755132040164118221601085635285876785648075242089016612097271310292710586500469944326780746963465285282282950890972434012838457920774359699310687177581783564924582518073639687497002491834548284536592039636969947304657021118653385794891465509806993573085028448233784076289864272680349101335041511388694885491812885636186743442065868647220640187160064544325311181022768516128171013318972304668593367913199977750395082418419026479725787585289405404966873012151914871654149036410787826098067332532732463499495024672017253832227944738444860206391692433449989856412838393650823222300698817899110546043141398220874038384145979100754959283584289178332258410221164641474002169314365769934618228560851769031983733086255137279559343000404868568641920895608633868139934276122014748454338733286159442091660041060677890357404738693787056358158244056090626576290628105946166187729999256873432233103326131464361074667066728557094502491256738592078359468519800591561992189548552526203720863806628949963109051706298192982502102058904383013126572469827517721242541785296513915619850757773981497352869353309821802228872205182744967052228286431970047836775560765083350900274153126353799621509685752708686830556037505166689144595831481381234967518540045995855224265437921084663178714760772196499352561404299444060173990356832985751596723289557381854030261585794068986908616386010669394418174202311344847881352950835957092958011034792635075201029714030867395591152023060385134496832108887371535364045278233633259884860113997475650366506184640342751140524128788597949897338590928207369968875772291966983634010673261548953322070096146476204040432892222273767774190598770602179550819824210228671471112105376659804968518595220999044024911225863091805782917998571713937088289549641636792097765661818227344699554263420289162643018043152086514349727014582011541052856718911455155004437966469991406469514032337521893138938993942409426800977735465695037845079951524739454748263110664485069897230541086721713717239388917905183045645510696238041879305164645526713504195208743268981800799401359849959325036095719087887732091139657291722037230341029935616511986654161059591055153492742418001885705318647351917687661640822778085525977616278498748176744896652907197171575488953484672143704544605461579959943370984189146990605798500064703889330044161167050798625092125775861200321664069733669447675522708601981839208498542527345542884006071321868973376068490467785317873153307685789438866566201130275735348379805692793913669988504830452244828786482046308219095018525481236583883582425815334145775558384946815624934266836721627163486894049030815779529870567380024280895422679284136799477378522768623833942559276595853355271460458138789544522685431671268375058246047152751706251441633195640563841614925833584489834551588299787133376470461908205082745419630936113338778754822301878281049764038022221062618970582021419712846580306154958754054317798649036769615412667715655888023964106712772555533417365988430624174275189906744903509122519916934185229792421114169178822437544540231475198401258925025622173742941717730129772042008480187604861779616583424077511926170354186174514317466361043933999790427770599805020832568077696305762000323105649339459847441257683718051315961770779814642865574207570334318879676600069057025090661301066515724579128021995664202185187899796915135834817136078877403544329044239521148217152422463946645674197918384362547782997433737523165042520042832392299901556787506342513982924154982356856389527121825343458319444732375212289429916089385919262309657955601017601865866999462392960334439445498896524813044760841119400716457419748144665279016826511364502706384554033365693879521271636505737404698916753377322415558817336627536720622982133733868506640543631996165837631073548441239207168319624412844109050127434912707644311468509208486473450885553394046317876674215634972821432554236249567055276207984187012608295321128999156410455946388306171320825833652850701459640376025895743578792624616444342107788229941263556182478934200518899371506107446142066703930325296705456717194913272324515829586117587652542274086645075285615535265353816661911245167102005051049626576033462033033176997159228158271857954298722396143591161357889804903093124565285963606525320910086307333258911898200304602376533748999497370442718774434612981609899157606177793790580017737905944700967782934635818912122096366747278309227360761448896361951234173334833179926064556248186086700913471969714132589948577686509170032219684383317152327444528170908138059611599227073235215399513444593263574196291440093333985576978873122813990904110586099118387643779952550746067058697129986734115386836194103815183330684993696457946790149582639242888722141204337624057566530105289083707762648489819634959117747761082704192944329472961563848111163876367616239966960195846594248402667317864840454345315235730313244702520702746344547811041202893105325018911266919157352579645546392044497353681823804772078011087606183991248556939261425208193101087647241298244371275750306025357924558734215911341899152486551327615089915941837209061423744927303084744605229974561015233471596730083990781656418431418630660756725022818666420081830183719662203377479277126508905305329591174385434167648193708108646948144412933651353345999351068945691571040792860333664213960453734754481255143296938491830048506358777453405742985597085112041058321571877266065811470767874340446317771256284198739564387585636962956541012977225261986191064907589327152858722810365180618107208681736081645280337601761276802130342898083379408511251534592013113649878507291083740623354195069434322759535000165836673186173789402665421180884863733056228266684781443330046523108991703059102294477350535721670325111831050039586451562456068033770683296969030028169184845864655379430375000615757274127916966084436029178830929848828608361669565834502192070540706755689878676125131490299675208245148114997587785093794608193765475796504202408471755185764295223243193812197477877903725863466065630355589498174679144259986854985390469165253213973043883414962551284865402659333157984712800262601306551792932539580691495670548430093277920128051581119225015751899586305762675961383136357676813437321783107451512176196295856716804678656026036225513832454576707533778024821162042163916811558299067466449737680903086314536835912025864109552625990077169346864659099016338690088435277044782205282234633656686104993694456880935891160410154600294461303063399782376576625438339268544661863457018778318715836745381792660251478132093075147501078660049525826399454495165125605581703698899837534097206180585948562865597773283507556148986871073786909637268725112554401661738534515308281651192638307060208567470860978013691126167364808492189752579535356911794420752298230928210631300629911336236559344268128932316378067824400155693475590961541527113294331723791668082774785710421066170242106331891757663197757276001908382564805726585852862077872527426026200462797607348025070115433353371789976868233814660875161048819545293917684999814520583352864938885438526907786538512190114014171409659238041659314972366639850476024960380803972621534235432342953932732299370750479504918624032236513954996807376073314134105256144849946999357174124332608521494919323168867912053095084214497926155120393639803170032473892540192606992477811464979405541718079964129311397700751878801844863385483401112083303206581468137218888017889970710210844840764800554014670204447758214162467340924392071569990830258813886627463848026329041526153022641575702646851571376930857035824711436844643119286269667787477567641368769330195141723086305822886965449549825455826695535958277508763618896947218540334345952631876189784842315046166714047238859637117532109464950602531191229280812700758570740543888296614543976008051569269075594340897381433136733808489324641128943075582409947963291479980038787201710063224437209323722749974987811439665950952256198936313563657905687577782728119589798929197592866783821648675090273817170602816695877310574819028400007098479263568301577026907298314090313642563642833864620336257464779991505230239535735980100861209380245075524157177993561615612414685508415508664704063614841355390233667484703949313394131853071723786849341193839241409757969705060612896585836352611594310328177062404481672658850980796158583492793086228392314798086558062877560846226097846890285638012242947093947261252841199101172335447477403856542285973547350386958563164451089951442928880516009390682778503726915695043567368350348913218569791632153632182360585827970764962852172586037515142667500480273881962875083025797884164916186875186412667746696093063584649832694365821568161053062013033671769473589489450871709070746206560713709831628548391627261432919048167062895583083355416497908273604679964864440438023291911585134837850487817994438232512456019983273001245035856210275516504168935501092920100247928636210509702013713162152183537443910847298966437225926764740048665978791767415674131077854459745034025093451778657331410854039922635796501325694378986409403385319821675717196587490767893593939715434014633925107672702650679668721641498791439712290622536043776659663657022814509339847337605426014787956744225341423295918945990651407717568878367346169896625427089219185922252793683794353162078689494740595452028986741911218364101391348909186829956810314590354601219085623849005881278335691493434733467511140811514703156331928805201205393449544670616862868833894065180082526579213684198372401880086443001632066230891583978029049148842751961377391384048595352181761825732173440707197560966174319684332256612549542797952083200101041223621033707813795756786622821026516416758784869712531595980528819461568868835023358501037896892974061008917321454532610604958461478110899796881147316252115730595928455961967104597433857838317583083446884786051676825175267092133445613532068778538366093132684403575193150785559547139775091536772017871273402062961784382555990638697121179616854442421347666044780745565894031434615608979867466976741772626947144685382479956806585523645982632208716470227294415037343398195215604458547181956725041568734986831665352799092510983168601758983286234210654276605968445683759343268985031224806783605751407544910993042055972010162523390177959632372307591948953693142597309192613228649722782554409194875323966896836189068355987634692937633448516622963163427963124282875184569739658623383034005968696988383340750380553401850377194051835097922654501887188782344791122284667868636606675654277214662118251681767129514646290512703095284066892057602526578343972731150244344138954562522171314854541900409535145581996569706263039415230148388148020877950413960184053018647849051785495037528299305628459819624437575085460194006822785167537906194351809917012671113084961093734765155664748553344789879142919882833588864203552244856910765727604895722527524246851882281746038586205030147771888831003340714753060258320693717162017185624171753718612602629593099053340342554596335919156220446289722746375326361764898039637519152339896076653425591781082679367223715941559172223804175949649055611902829211906056271591342644767798781640613153129040735354096199849630712881867822159363682261701190680840991612700475547547918973338673376970251765137758462505639084791161063218597447781617874171080305637127122068372288713876967956524847700350538791352607511259992411749149497658673119355838003145315241823952048666293189734144022459995230258320996808960937513684293911312522580125260046827011991097806631643351162871029795998503605062983136588754224116364033611683728516591509875445518997615805918994165583832644543030784293886538326638619896929434432124200180646406240233629845193823375542815121391632284697284436376926152066326973803815486045975438283113672638273303846231420278349601307539756151598306921479880870478966028098792730959928629989241589960372521480060145483745311807042054724732613134652939314577872589877051061037548219543981027235145040688435413532743460491753408331798107786247320009835048175019692602567154282079069152321229611685734009831121067339561315038485530840030451102415866350698849390033119143155116471623828980316647451249944203265909363606462375961046425309795013625140493863059500480369000833835700015606202819712095211945711076721215333690918560327411304926785877185237628235100126569710150191693952770110927249238164517272006439252303049630367771790001448729171052851849721373112546946631040414610438814735116579869841683429303327620699052505162988587820699390343570731683616588262665905447296871144848868107859941389660728367212073078068074764132500683546495069067056324273295166011250037339140277328000372140483830895212592603456818829734397195367934927860796361614452871178580428340575745052588777493602412451011690957110787983575036254376221548044535265825526718996445587540718899795284173242477623746607172685250273566228922149418149163871773086576821916414341531964681435766759563934936566609937172838815569010494779967682566574614089071336867656265101268443216249274712770342166007961660331644894926362154275596690086360479357969366491508142767936296260380299052635015200755900039058001292442240223999463397906357192769237611720350306298560960985786262611022541310656185642001365883068300773958373401521826348331130830124081926135501731672537529772053186955014863216239233938566973901603267111155788330224666788297529219868640480307020545966097988054290103263089038400186964167005790048755550616040952148622988812456401777093810979871340352398386574855189027516920041783877829939605395076149881208015343652267988895059156971330205591711705770436554912952222278165007117645318939514969478626027042400566129100649179747259419097859687912653074707670972484414825727765689479997042692868807766233702671976852280613697191354012892567038542222891026716603884552864339755322902914102065602681193883860055380818869366882898037309096650671560081025143786249829210569530517846255041556136477777600061411078069955723805060958862445121623636032234344876926366643636095984819440565238544038418309966553112198694357235148830779755066642908535171156393087092144852097471090181903336941749983233507906418023897202546329444718683481110339359695766874473772959046695307241837015575635931158633093090198861047494722494756659626049833671701315130927358297579479118169037639285081101602139515255820806820249168633771593594625962017222451985402094306824002469415699027211071151104265232636417340317260648845252766335322342923669802351531962684933446740735690853286091589006315099635055307785257581257399689930893375237183287394629422921495936929589967029713616917530133700881526858708469411751207722100945890152858153265900719840541970409378004462436175470960831182854534291944986165188481140172305183413715927624313315980244636593774043190301856699182037433037610268369543165664846203787208184301540472336625880451478862937522747156350795471060124881448097193325601271693385314337387598301509932599049030564809404447867519439215093355597027495232521677689487500980982215287912913189167171875181476768514429909481166445527911437811354040307511283551083457846451219439088740862646044916089924715356163213161195488502724304532589241266989119483933555729094206656358409540548959025511590800616521248614495397209758332686443177410003750945546427817614336015611202030234185614930838661021069043761057260117709431502944715578401223318712992410749733875392309813399096591562824340060911478334642947082022708521965859580797321680579298358776559263664958047868210592878228848110215987215815060779560833048438853241335931478380608964323609491702048039275939624402722333041246648588474151914555382990811149922960577910155493910652498370925205177759135744165563640855566056142089876664297802049447790774246525346781396858057670553735293428008985790256177893260461155134964526725745980729574605292170270175706697528986934268742415579307513887578716736043306954280369755913902972278795390925468479918439425199808247531362820479930536404563171404200453857353936840370779791739630912224173297917833283458848287539168791594049178602418124818287247239634442113853485255707041474041063771858604515876339012186730441455361755744333589323256220062685015722579936053485945247559083571770932586904675354871775127057873648749173323294560490336405309651976173269995978943047030796936611051635701546750115523743323928203576393660779578894435816575506115924041968605576679085257659057006265518821031248606276444624407918222017330798711591400953453482252089067593429809048999036335483710101611444855455016212723854138370512405697122344493927551038782075411241644012870063390241685947433552763891326272306905948783201800592943189485348969823778379893906548236049155323798038922550832074606852062017982704922800420876637030686490651339704693013480473537709464068901446889973419153369099010184985568060714179379232657369910080593807038195938789206814616137171648705596222948455638116292694615733808878898126771932050469085343924608303519089551123151104254751835102966207781428931624663089789541645251429143989355516794055694258360537828130374124021502113923666704138891928357048370979726901814602677614600011213027762932791338316199223955576133507987859432108102953562808163703503319131538232209811603228595214266112042426908504198290230859254148878002457730797769160331567117343785052013598518266192985670595670361307485671440587604809557442001132309059189965266083019267787261938143478052843199317066444286150120415548043786768043660321147775309962524064063767396262163768383967060974769471365207846733489642194803052797218338825461577632477509976640732626572794499175585391785956138456892572247273452637621755319456650068373406492574047827261080780360929253690403003848532726053860543346349477563716316895862755731461754230539655561260787988047684714287061966501103749664852497808363428518636292808972941046043446241883630758072090053339402113760811682389945541172888663570323642662162761526002366686444590403696821320631557432073054266481436496214388747768413111229524804176919353678123139463824541708731018402188403644818971017369409566442047345538052975074681698579094056383809820119317896435156990584122623927905238984007107683171069132675441103238676822139171868526922565582001903287797862731642852264170645117148383146984925339227975501332290872716303758632350941968394790184824778765423980538203672909235310360445035599523967358785019002976243039904840561699020872128768778689026028382522642784044946185224126199271379781691388614081690926988273480408568533409200664173554568498505539488053066966698596433530054482496261358007890023395299660864851613625071443904892413598811661388557493412067252825931277631411537785624372448139026339831350698844846920390742460391422765447143427445766363675558430775867791378176176967977324428918686399425359762864087144807524073330064692604524009803923419549699540046513528150460057503000539251801085737830439573279041866551552282223083745846088691492275753930257680469035324812483638709000191557989263956193621383204873181109309939223423519289509868931147888191567878425843096615857861393104338176109568959757358025438325652135868470772225640549487485469733003419064308819973744416276862850204519453938735820570370236347083497760346508068387215619347697884640257104993324013504136692571322150324365709402088158138988571360897434602171870991701110825577633517471412910997428721204544758952810961349661545766012387045084807938620184493735868975482268469583467011739757900019077483010919842425342618793661513357292420766083230601483334049481373633474588120512887561317700836116208364411417649622002390692265435431953810999271617859135767116700635422626537007211368389089750260622072992834534408233096447598719358620791394525736979888330339937623132710078750679179829900521857357290893055849195999874724119705494115326540232387675023133452824555889879501983373614406871126174673887827658019872904706607652529699704428293103169051173655898944533977839868544585700208005348331157103410135598522067126135390250363553188745772322131648791259909352636536870875831806746098525981430095471077370630718458242865674523247277494413543683182800318099514599833410772449437747439967082144889996584250196827787020604601104434094557524178764870052266823672183366054839146433985679462499418736566890090918206242187525670388483812588134415089184288188264993392726866296412367419818222077050368461026512359343703956835375491543613555405840727064296604468076976606892034164839168965532066408554928434668836108595734855223964070087409643727129464607440506061645085734198330174845727050557236919535637381753992104508533135093566809157401260696547343851058382226046345971742971166805129875676220096697922142572064259090381718764903405750714551082038788956301135741346649950584352039168051421047807788978763568951845215790162684302767768816014592333883343314449117664476318932469948225245991905173835218180374438829686482478793978608025245612540970958062286567640269639039257436769098907326864632382751952503038802999933146952396131702761305554079341483976965772395858491827131741010337359845976750624784482485956347379905659125778527553334387738784614342952920119716440192901773860706811622291905129451854013057066028365287410114551413361047903475342530355770272269076963080567604898773616276329097491311740757017428751442474719962451355758352956063458444519247404076340144289598236823832887985547146399554910928088310532351266942457830244971691695861367645413063161096782496139506710898048302646010977811980262443768107584821076452190689175407567169726753670040837141062030643006427229151902661037514736335907881517891086770528461716462497469956518324011731172584680943840514585318469767197978147554208864654498564329854640282228728969851583203810291376113519379288109007711849992803791135088529422022662615608627948502849998156088093139010067463101233798803263909239603186982838408970503994620121110940215450377981391483889833504077624173404483762779491618883727191305065577281641611983189856461493871271974471800253670294089924501196453271315662467653483362980373834751772501586295027830001615844890120260936329443577360361258467049606344116641597617397018765956927000848917650786812615568864186760017325033288773724164769409834497207140213245540694119710711103949850291309622988285027997074485118238800006969113670254529738239535617278923393541708084954296587312679824805055662747825878767157777695284039936402745948190718165436412288657863282994506577249645182055146581432051269670130162935801311086603971146070762920814946973718640366763380009140771929947022537838934190424178607607237357944851299812658206173646392864694763422356167721139996746625672412889390831412897415045233697501164916025223541094820284538689135994981673300804321469168055758097977209184625085174037792746643551833008116972297514387936670998484639691613269163349668705984307410572132277801151249864135738338321561217824866231228949837101044510599248251788547057676581846571804286334994615452099392724090403622305440530552846147711376036205342597674374992740938582826216717656781895953978150450983453562942177020206979321864105604880168889912747207188113167510301038416955440455599026015080364612008293222283683789803617342183353699181225859350629363107632955380339545964028405702734380398906424811279932749466180838756940179137840228408022327739857489910502971149442950240434629765842314667591935421687268766435641383365235572625597763825717677711244370014606347198886227541556585106454439248921705170187032265721023577637971376397122680690259786358654912999468946033459171520964877166052903791556054488831477480297093464732308475308205502588778721559280782108326165583288588078290086793449193242901536467102206203917235176062943819708204727193058318715616419652052752513404179554941991522545627693193461403142243867798222632062285068963817050326166159375721947045368263496963621874329934137759396026412136365749675566527303090408810158213701973236223604661304755286298545691417692285036464986282374038203150821377119025814667830605694817771131415195972089181920308260018635260197921350499505290508943240713031843247632145324059646066803860139741018957024165911595332813045063960840605839143935547071557223242420177287257011383609279911575495018452183478995682649072256214219502012184947370087238967406176101003802675122758293857596749005586666153772624410406644538145932786704486105733555336177759449888833017116146491754677476561583658108304527973809558208726618388283762424542289192903594710628479414793445498749499907581185203979175087473197652382480378354993620897348802546206157788353948496298067236274468769850824270535739306349870242361457959000593517421780878535016129865203135975775477576105147328190935359057026848312591297034563152608112785691413930171343634900267732067505370894415844429094471010375526125050153875661982363542396493375956761326401743409672657916534606146899458793188704611641651230000240657376930345512131072526900098420705275447235025482212502451764130844185750981271826548663500558496811277221348825240366404959559444016746805205289992499949904777027688806696314633014788372261980053533232256882518358035676166309869599126605918282821689179462385186323599730794661402416929282974650505936966577827259142243478188040356107594116323989430495285350784190082169321698805454245164779028331604964744349367468384208907468391621171906299694105625875069675814433046582890854380977595363250736076671917970169866684345395764074068701898288748774118258720400251851670908876860431821154484993676924943003187517700130108720486904963833820279364182655883925297044607059822669440554067188861595697018969545584979673618396579636586876803154282792077644192929555151211773557852428634969675818876203216916281912720947340124807263129498733010279308808294319472256422416353010101229651489855926205904243746991453143238094427415318164278717331017750105165519644779771902760499098281867502130945620225172916583872190923945573883308713208381979834651817149536558119181332938860858233518114654769321677222636493288442183590688800708460336758949678155438347093484643816472580342084946987554198711073737669018454713746799294596322560069829345851101194453213157356862717229604841219704472372586977530991985831389814309572847590680611015684718064914795618414697042188829825037032423435329670313331923349748922322889919134286904749298886707037324697695408476508637917504750246788870660962006109853706347600893413362439331309779633305830015625687785992720837588741023722568001936502156067698439848325960852869107025521178018982495090784627839362468078834828663822555588500632973511830983173612853871627819031542324588129107528079549726430111052572520462118188589169538720683236455173624604645693267969944682039626184726851077589873327156077927989476137083210978529231412082743715656640644042882919906542105143271091567687473930737395356943691095289512090282074399826506184638571478965289318465113055175418629364595373617886262285650497449698769057650339135791743631506011572603719324391095176419582109150342393459475455170168037163187297619116656523812707720350359507176717641854877121024586475020978017296499851935615342591346277734415370919410966751510859042489654488632048013669208459575629196720199742050966100612031509476769732995427065067242741246910845176834837786703457652781506800906600134894901992944462868814893722190045692223657425384884055552102242179870275095759692116366442710480030351324754816481210809957999015347279253982243464897313856829014864358656034309654562160136338947633562745193341262629797464886718835969067092680435166876691021816385229062984962409382064674099544906473480122399441938025348952536365138756664447876887630952223276900091557984123663840169240148962022477147180296048450724061957834932664552793592889144215003147272963516181133017195276065173980584833126592883161559532913879841853459719688746734457115496114744242357900652217746889276744884026681237719594940398044413555731509529508884575963189661844961410073562856383292624640785006722067483643488569476900673768246783732800806126694199743145888802920177657587815446423073176712795447773163092596379834241111030751039734159718820606514366565108380006714092049202029661536178791289798518013299871654292375875772084176106972133953575355042862786169766701242020550112978565868642444707284249113454637592447686493465907330085575437267721786330230312920176498118468992041651766956834867908310213807354711994162734239877002935277873296035888503827245279776599588528620296825830435070924571002502223676392043364541443188575342393067837028409976546123961775885789216407687654159916492395462171280973129689023415279183409143192482086029675351080495973125750954231767500414213217674731842920276145178613930998609809653866563108883270798029866511534007509847799313573118589385585110055054033787080667790189835581827556695659013870741766802936604131566478403653505004532597270226478386744446903353363447089269184506439400303210795892908402222218239909281200241248860321917037592445098107218342070896438438774161823370871544304124009459552847257948343171679539851848187122561288594216247328583057653376820224360990323470676320743326567922676280946065596911740805767674753353077639003025917281574267236442496241996165054225234922380295312574783825986443157862027098071082670691339370238085438701650188762195986037558983592114775652772930077459702861329634721852141693800580503814531803001091881806683946676834431228880907491716555435618384939695032413499904023978330013704700680472339931518057347778087894821821736633905505002736362880215297221976793497513963756579049745268538431950843611391578497043044364815077394511132361115487129030519283162439184422155231205968836959978262554166504122674994907735253319651434370032280767769835465448955249271855458853803115723893241389832997078469306073306364390034362541498713355839737597293302219516907341292542430786219297441144481499907639076653227530290885090073995275256380606771463373029697157589025904705338958054884974224461719469004455497727569502492344400400826199023670926241624411326371364815722549098666645292782464347180102017520676910825087251727847116169580040544895540631569941310810774035370940973390151080236133488901776615865639626641116386578632517187689412619256425364374428684035314745356483975601832938579664486223549264508703830063457410869067368848781265477252162783796648800818594873533974310688728699073736145152719247471334663676636041684037662446894002380846789379012075724976145300508334773992135959634339261214353996226144674264463083503741050380403287309406439466885076703850426668300818249615244490110728904422407632215686964184697503155593657535670524374475799058916087637507620189770477679298846775466947104557066679213933895671290670889103540450956426077081615774430267592023458360829675806842047180641600086187894984814968891802382569445921648919981794275668939704369249274441027951056684875145609178664921387449543955776674794849238255950414941566876027703810003105310516872014620106888291350829886704508500303333870643899413531101469329803219794640965679513609583304003427699335105520055065325638626795378681084425171095738250390137868727132332962018549083958189117966422241550547530490858609208855110426100474814531901575908662955908658445642098430265638809989040962577867324712905657139011456512199288608011423926016488765633811763638419776134381313746482001312955873711806793809388891736524194888681271273199260477420040889412993690400042600853156878002255086403152983360375588454730434827857235222350375435804027852615307266005386853996793299922680798877488420634461698145203782025436077441071336576519781894424394619936581547188876615977654073486889017025187578424704686960149408713499016999181135461012972767228196446335867132829145133219698699162126424225985184624547669396020961846006748821142078102339883904691623290611632457452350938574496725712075766391093640434335756422872070643002297709326947313497602724937565323150319381376459867870284452066607156209515396534466320235132559624443395747539184909449560253656274511237602440913758711504768187140657220177032719931214674620948762537947300891105094744008683258450795179534094588004558831277301303034752226520322470657562707330574766355882919506781270668169190508118690728562796405657729434277712014525265775492551631845017354853068119654941593925961695173834235119568736069993395187036424310095193533232737156268510927540317875854353162640866268668647450981144771557168513529769402858621196988800071512893932744456097530033452665389856357348410104291078224914044606361913230797444119268497485555782363399643814656515818210758359044512936534690573190176826513406019798341163072008016546118335544147914164479852177416581073396578140955079642357521423136662420766258846490792223952507828211819560135873824394072363350839994470971551163859343649073489142740767297743098593635969057098896031023602992518380613875246735446643667441993082268179128423592928225998601029815229851910250460921267792395296657858423826580815773972050605949492119798747735970746428030642122119669673884620749907952948218118998985167599187389090140201651816851693155849969053659624987907011720057781100629469628223090722617082904318138002000565902304860293867935847317500782629027444714037862893268499761185679937653817036355677751493728401779901526018515394762780459658511735181612298172837228239988432216887497458361834041277141556119848991077865237852215524505096944216501402404221557593872185595339984295336531811602992549071963714154807261742320407196473021114228359407613347293889077680809000272647843640564980072672510628624956870448172032525391981756121515857810772753471732303010644594948789001510334416290201800497071701727173729280892955411198339841524276673304369974360944094177539232212030060507055557724119115382553498544994524350645814554913146291222822272509549269459536468508045398679803469220651917195771247616448023155604461289656817895315144132961714440164982953875094569907397115138544915281125412525065132333036264157222325734171858804794601382502577845008202187748229472532328022567356016694079860003720893458466637058578809085654754423200988070953192960684164393284202166623397920767344179780877536640625246982020654957921265223208689706696415668327218411349398707762774864279108853059787870190867636439872838696885652295618930170308084111645067191267001110919421038384563507524626889541824125600782113896010461033167438461854477191856787286210831244825304284855683630621082437501603205073184214265486685672389634055303623149650282774992939838648659993343978420876036482378688193053031023622669283323592608718306809556205823412206152404686992491865200916186125521483049056282011757549490640584245260341532524625770380544440398757884503885155898723973058886724348543414375319187247400955624662980307812937578798503849196600186438870457393206771182859310050632236673423837989169892018996726467052789598114834891744473585715594837211687537615472479254249442262368142934260672219588600292189686085433909299998762725928693817210080754637828592097477468744472358494510132574478062751089880558037992191151212636982702472165481324189419276486404209829059055283022817029267623247262480044447197176929351396606053430255600620869104688372065947440049217782711752328666328467373749846464777984983288866736865178057614625551282271987733116375825047174087713891407664029622521590663899754367670744549796958780740962985234402537796394936442762677667109796364292502571978925083155789507913676614917842502190966964560380081102224907539477976411457508670439085742507263594689714430545794266186851298502049951981559586109318610564901084962715508292596357297213811866822978796114313886651852868646388588477746241026017825713726576003600268706596050119803858039053649166091915476144792898512999008558925601417081560704772383237209482623051837423872950732368173696831173026143428230376275109928518870350326467854878566470327571946113854746071656088321718198165465603903155218323980847268399639512324707959200015352809070741859373109138140143585367857789703259303601209722914643278366024042688545567366285707561963501558950528334808014479963543905259036392282496691311841922582048199033008238880321466218804929736049738543149307308923526455372599560084858461525542156550704436611683638536087812539124844642810689914715711548183284518861630544159952890244159114739115768640102970002547832041126559832906715740312294325752365336976161748066492625147752635080406406329811998564679255769897063375496402202302911451208145753036943873468003909506111294076503546793304460644043691157924177559138763135939491599038393154353824021108565670815084831163758910424315379029938373233335971902115263651281073451117523137096901579027771095126200480798427681210320388564362658402442389354513270403787231140462522611796256810192081804873147617571481380222751683554267278697648764719531400286994358281325264459116870461905297196939844421201400426833651951091685470687067042848404906921114638266124464114131781888059034936487578235498803569958764784912336007820210115076602755038707802810502921656804531651756333294869225499146804052779481905845252820671051416210265124902239785824615537712693445606612777819206694539255860403377480734415041588280681869724684055208966844987696330512923284832615521978593675518953124945844864891879622891714915294382550890035220537353181803603944557710757077732196212161531516943546795996137870946227944184738028273829702719522623767925278799196831795876803385102282503219059870340012810993900906030127021091661837942359812004649509147303904377836172789296760002708987760018738164459393107754271408603847804008575425122571074311513705715602458102171748469784777392308736555125804257542314865988352797374733498709301401564988435059057691706977971047529320586582049230874033897174654384657650279878783629411327466562361788136125907329890079265765276248574067556236121024734090322238273072757360683826968229250276703806772054616884776205404579648347971602153318792789155835738962926280565094871415969156140553590894906901752333584355420100691966930866894668744347218298076712648837849601402630371362039261063290313234689584646688169996501441335159489062590682374256239166539905310009588281472251955160619876289437604344532765031638726445456864937299505540529959559316706786449352805931772168973923849624843770596280241263667565672654730523725332532465997111089713429983449594641268672794222853213463474194368645628206405432677328127933781294614316146337123833170241281597374384661629373698578517722956758662159411461514203867596686509123087657623186396951219043344137387038574870940204767166286783766605824696622672695516842283427913428365005807609395487658945865218916028239356536388960222746417372769273392556501306949915693146945659237702719223426072110660577196271636127520427879285793948195406575819545513903479419318770105180404848186988052013459414399823737116369122691575900287263198653480785322610616947469596061933000906229355261328645660927480945551937852334340214793866974229846972656280377890907915334356188152807864096804230394676205492679410705637249854779362667492818293595680115712788596727685127267378003151615149330578553904942741232101171409732388343415700941721448306056605391515363657013652984790163992795295638476177463296424180527051715745538960770736298724520899485574188954988275246929044855837846971480860165753104032122253248759136942223953606601100856466270422004938262063765732229135482767443437889330142188197274207330537278892230681108285080185367153909278413010706378828511741914576135131100460421233900257297880539952015784121845758577950087873223007649051720731034150316761854979550781474240307140640289554013293124724334199234239529199607536477995794062729339289229020214906639289537199366218243857027564814141371035370792710692650052159168069960785045161450550045129576087356819277029162749547065249910420716309317977533427438233691559029419126554366613439058063391504931092696426128732994278186567499632399000256017433188502107436121034600627043758963189948282169218688355566278958621877315207318631960330757742521719767836603233050092031998479647591674316610429988141495376475228436190140193766010669393216462337779890136349722704592769964648452188615350013855114226798408440003623960300307127544781304357770436457890679979363300585355893051875058755392368487669829603644216834902277727947758378151134045568365999714854270786705354274981784314038197337269428248435148075318574168820089274418553281990185043123392514108816884057010901011659841424497804133182633780530113181345494343598548841154597556601952405163534994035914071888140814643501070793773974660738246487261515361413186833686159162519474368912911179876097890952233065476528439012536782775075280482477561549483855238935329561448597452164959535362201007665372974844203154707214289346549043992606112963145340777729614223275241354597618213516923774254107935014207232404314812602449826576898575796771382322978586269934198422987356549961098674120286978497961072344424122594610406546637763551986755241841449651853451334424868518863261602832371753648558455650336974940151932832255812032131871115508748632523978383933919645841477747697420301549108616662753121076817623337676509435970597421610472139264165428946525743584491228831412642145484349175841140976243157252028528751166238542120666047170049974974689711122334622716957316364901145833432516679138599591418843338412895390924939692623229472077358265793706361362384581689947215106346220833869086027224610824217125528847507845345427722850674308663024368554973407266280632439500983711426938732394391400958546632630452947512962154398023671728989753969846717249463811660574753778602427120654279400609508998225697635607334021887548421962796853644296582829465153342516159213736098431255590205193591447929157988653229705896945062461422976611287013749794124883199023578503696943129069354838543111791947061589640775580821881606872095833721337525469960219730450291719773242377675319028536321310616201637087657565298110362778413332077280389522604781143524507419053426875332509114424368602493582355401632369602704436403144189242312400620775412447263328093635943204473164457002430451163219694572822649873576135117992284222665838801718081728033527239194191777277063931885121119623050023254103666055017633810581593230677137999899932135649080906304779605963068460451271037300035267107176933654480155030176849037220707105998558764288438254685256439255664575336915617883865416713985265480899181688888388844301199883425407041560521319264551523083973483711139669848910912628648504613243188306657637447058026798844387448442116750845316370675329922562392938824270849375895467072525838062316280682837926565420496947360601979126512437495865272009706321357956481982579676613406210005806117175077837542797375963013158033245457457867003602344363782559675049766245864527162789532097888221202761917261185288029101532669177491861022163784621354267595345634374309524464951820082267927101488551961092526634822662728342842070575404890875126949723192450447259611306190573194577493786447745469811722922452370011099003607763929436349621895151070878731712368930953100693180633512636610740376182704118144529123061015842714188692100522416783666308058955747084886924145447745410606251280194647307212147080084647774900704038059009841684801809094019116224980187198004325461128188988995802466445407052754438969094926934873039762519361675805088933873902899964431304129905881711900639204902489502651446882420276502764291697019912729989231426270063500479303381893505796111635501633719968741188613775050471816941214423912743979082303681924455200855414300209935634550452898423302692982070518028077407180881363340700720552838330335027097596780401220841797220480751136883768760697279222493793813159641573036896303782527925317859895562930682407187093363453055478180307690821335560624476928717773613378614073794442520768450658941402970898791081630573327533617393454725723364727966416376265045120910097499958372234273342135379855702660912251686272300217527685897001430962649544793980570298393408035638117799010175405745867127238050720881623400043924402910574714527139785833380620610075759278383228090617741516466473831239542265509721732831369795685655997934475441450325692585417460312333638502273804330452361520408463113955005561206882964039763970054353419082985525126943544547042647500388438402748383859933399210962888047869035818700634201557368877640286613569573528389897558190902531250853001835465581656853720930812085014494085069645169608932486509644107369381855988912860481966866587316959566286577868970761210125175286629645165124234093071591936098680030896204390764314127169954573920150777636694690601531213597377015134633273809542362348972585357224196619803452681534680996639490745418871604829265881938676531134805029698480187516603674183686697187776490567253443596410354629957735352788650232219124748242651397306062059660448736306241937485551042626838594221918954570894328123195028106828115542579897139711236237996291686921417048836525656742466558629502999112506083117786033189425316288261031127793479558365662012269292781725302791881796266936579199294145418515168308890848110038147797213693424787937428133700907339354376054096126199458360919570732559711584574597395847994701404940381420907679371637870712281390378547294673119111831465502371268683878386212598577560897059092327624022428326455044991329676046163412884826211213630451012912740856074942366548554255313961194728308682444929010289696347024113245713567461140227490658553550430430782752175971503189915914317332010315135337139952168354948386048000869072557610054583511988281284727238954127314040212507775209603240605796632764883721833300024710537714762730705949162048390638458207427918039968089118669178718229706017806040995542687875157260306602106285657691067537189108765984976357199883944304188126467424592000535289243891566997220949474041304377598841103547029990166171856028455475702442389332641991126574879057798625840048344126066518078587518590702960044828883881917922026486578268359717312083929587049420439525708400684084978880944263600007167518030242367856199284040635267396255382936129287098497633785269074849263582203476851764530373114208142515875180889329974651096349766970864212139620502141012783486894784048465657216892693151878798680419014234333740374646119766776925968742137037213931986759013814111620353345947664160111845145318452091893783642835522626574556765185463775640930748191513794355026978858958601899362844676709503761594154033495425482353501460244515657649684657989448504789584540589968576997024998939598212175701656594423713465796877877908951422614149459909669230345726640036883063183644616087730785120747591376827354240847640767662774834712661002566955900980289746575997704424644475104544761143323294769682683307039112908179623947919989331631070645809408192209470270926961647598856452164723135042274174481905194278450642823085868337717397811797571394033540746610060356635063394797708847914875930693728985706629816404100842945289767529002066789479564633357685196054462179047577496546467453596733997339010302168376010756110012659701059331685831060310661263929506824389000583296883379976380199900313613581457185121554571706510604874245533196784508387059497727961289007955831575020319094022954185311712471204044342572603202339991054617293444445888382801260825723144310022234148211952158625580673339912116250652418635459261907328108196451582465563839080471541877520195909426080955275021596409915250355560958736833870015641893300965852807819439022050789522573037974165474645572786022295399819712573115640959410713499209060999905295100021624890242912260081852879883019803140751177388695986165675640386969871692627449096183520377068536048864562092652335002457337753763034653888712396291131390837363080225334023028817039014605826249304826383030705918772928701665715101562188668145352346128415336844806435078900872487203676417774901106175243378155388905065929432360998706513295148669991870653050186295740828102064050846377156975294398299708911150712440177119222750725504471596826256696278157102193795293451021228085740068745156793692429546897229367626112025331744134354508646035926092672415914740047610277731342304860133126179786594204128106127906171235371607202403300915686181414467438372571993794038164166398143112617584001343594284453059174120339342845005026153374961260257669754186063919317473749131565433990916083902247928780771276851170222392283389419480591274985423606389452155498286298864026586238800624630305526882674291129708143010905050289072728778513633509383265429627094522044334047454871256269920482579170742697392389548805848968101446787343151080438047248867631796047630910991269551026683239576951266813740191448007640315153807546907138988476370686959962661515577066246157305442124978547074458262409394837399997257118022822030860298221127497429494468996427253556979343207642531598199601903416170691598019900106233614482352753813687611978592846444746906762778132151387717618476953515316885817774140694126819865001804150554683374516654285343675821364947111465197936436513937794749112220845848258221882269834165470741861105070066711512279585953860279258027380577071295911060367303357684164262724517035452396903828081262183907159137747285983545272817137478730432207735746521067074917979710786025029912270155840644855865554723885426228914402369421084338468091390005220295408225752526751248220127767676479833383570988657994024799130162138219097025806791826101431903383445741215407946133924122686910461621208620641911240677565286480256633522148438551291093891614229361854508559582945092800526454815379840958868032003706798998354677514054207044850411161329939144070040145808843025430941860120368883207881778426819894283839550131536587555239079900041784921896196823922859297567331982783927261102406348924073189145726238899014729132065110780524326561319545654582340830507585938939925573586589036954974030406221900939990291763384258903027964501052460573013939189842627193098503820455179596717738609851141975806190174639272284988440918096550235232263080476302726891730859445365254136362002008303955738899117622146739758569299281562256296780222412152180352456074336020694553134856771628005284997078781345527103772595039864444282146019589765673431326369331071902281872130633062952821491496609811227263184948490614683947847432539160227702578148199000878646223307580097505467351392224216897571886694863833508723799729290719204773485406547565683446511768540827005549166123583636688994346949214572806623997763670864881523704568852133529524613526711417441406233696705922153927270572767495282653237663767969502187635768721848212147161778005064518385030782581870654647497733615204879357902156933291834065180630253640688789478386665622264780663733886315286587678092319659207459675787977628259971812761950327344078368171962105118873733916077017616834584269798519926455125870289402975833748792870616045178880902990824142314904615711492913896759556173211396085749838568823907965978337111432289644607474215446491741253967370440568602415516627328127221398392579337990155448556850462853383663159052991733524058469455821826128103005081539267847634654598585278894134120449181899901408459162295765916452649841933375066144101989467077292547919852942479807875324177395965409390502934736612181306810353023904789127200021855623818685512097210811642910211871591745458511110696355601832385691433258386174918460821121290103855610301094047781586433631991619346661300414555883774904580287431000582777454340549678898141466424926078753005059991773925720224922941345774153558885226535632157046487874061230104069259056954431879342272368632274796958375260639218900236796308657971198557555685449888259288468654153925144063625919608798116745409304691839748458477393774643987578985768591539326981010904212853641645101047719561569370304202865163657978979504209577343020213119008452390935155733322569410956636096465088246026707668088915315991194796267649741449612312093902194776685380688545871727975971115136665954025103316072352379565004340796878574817366831991511331357181087271537377512464036647284744218641091646630949377946640981140605828838883591746004585407855425079849508484292278833630831625065480732149596050191780154097147909065532891934512977505588122497639183676203445941111988772319794885690794165512902758782621269144854911324109769602843852139199461690667394346150228529499526366764181298837748022823375473279478170758788792783069708521744325297976447599457412724720629382988085504793534297179346505872798644400712731114273441095755962973800130142955630660239358923734818547634530166488028492013689349176229541942047373708765839386615195660356366334884910519407249759554902269724817872022580637683876586993678468105202106019598266566074520576376854789014777886733338900225993514020922328891844358535250906122356955715737472593214726164013260703788097352931322292593813345524466516811614149489431513229148047382526957451147852408335539208767797695782194853257551014978438262322120951987411937620602323778975665307859748690498572658911024737026624252835676011685636765924508760364309631428499491372434180874186336477508244221074168715092973025516867807592185644132391679188269111176427238459818529580384313562663469684409652885298421901557005963089488745977873780541220873052384224364951527559630887067256167642782366525034792827261341433423638523443564278306506205496172297916705860818141313658765422745330941119649492740381908638476466022702041616699737085247706590325713650326074598636555947290139163442619005539842085967674253677425607996649769892189595308238894643303803190065375845002651728406750543870434056789721197349421248209419835389826594281247999819153451671807140222783963229067886681219047118858856768824043007128394043822194926053270945796058755982640002673771783449146699453673606958761639789436100487867874249915101606057732839013900118033976009316155234688339250213145765521291870421748212756316822323201355221493425420591300773367976119202335220699644957044936205228066669658929513266453388591986219708628653304707332022865977600397340191800826355475047506988003312516416914552639936659955356366175315447672644789205854083604375283910251274159177304322604663902747147174320506664977864123405291069161937514480746799399032132991909479330297213775733597406930531109610947059381491705786584846355170608326453391244462298542174432688204739294391741383568815288918873029634729489368824616936104648769263477208455315495458206586551372433459393442851821025941871637588433197091471640561046406008405710376002110714645991514393362095999682573787574961072821569306326919330535087594606580094403273766101278039538342054614143024491661587522026454352243656404644938958174187300201078806062633891929345649064992711303118031550327528008615118886980349745502261347110176191343579805022091442756977178060302541891036735727488416127954655254861319143455288804868547536087778858645497160622340184858740271029379574746471088657881942344703216111593942221883243521722568495030524257273613097527960324830218034944376224414918739472661733250241026696160046372501362825636420115152669302267361673954779613410408944985325977136988694152272808856759220588438530876174495629196782083596301202592651453007263730166934501735029476711371843414018247228784658876743905339671126362679465120997114870752957070185796818695793188293716628542580887519774748218288278057883607443869715354470596378688992836973156075346819613489370004072240938987102995314863254260390746127932104936016296177463898291218052130269879859306529098896257745209805246245281498504866685256908845917560213251256423767720550842985534475357214250020276778608112028013508534322716011138705809973335972096971384038444190335093452360408919030672603674817672856191988024601800839782514350337663327585898338610774214903931092226939002101360844180911805349423305389510733604323056854530831801270064582570425657812407293561080084928824756296630711425028932391649192985655206087992678138909394866907297999269064729492923749594130950985235481918284593091240945851070752722523703850837714407330858033373823411164701897880832721194788722960856311648384429820064987943739698860074249193627908808920794899700101952421930279892357152502797306380084851350763040483600238493800048276721233385402489627528437549583930006227481022140718573569500906515930870260165123056996336675152341385640222602116537039939936129394744194834654215690236471866707617427539151508095940427779982227974370716922206071489423834397643351892454995114678058444581621750908998656769475323535980247488744096199635930730475442723184180575061141718906464751859813289698503453729781586327962378163590903246479610164712979181103185192471121479478042736410938738889744206242092571008227032746340487723778853467050280648069157454541583899611425364766710004594280157938425608572621459089114570135140402089623827892750304177617203111433475569749949045092829967058508968301367790470073862315802844140996445249104585846779183102730414010933474764756182601006424925801041011422221781109330915473328914630409734445989336209215148332248576833076058439160499622039155614999281352550831247215086997155038946655827648470930130621337571338916503208547498066865267593576902383882009973433429964155580150974660733344910541584954439379754434480378624021484682237716667349153025439964871286445388172220390582371304055819663765915731627699342268916277765608872298172709740699658064065968008800351000621402785534705198580586246687926030394763297134311245888204657592013297414211823899153360259276131399608191989025518189216928506640298477122475766711363951441172572090501435226821108691245403551800760677222951493949073146508199361641570264293169279841861347435812363538287829028921087593757355998746249393403961821724599578944439769163802176632461239628718538091945564924461307327237376205840313863689653653471329586584204091262161133868063453880025013942186007523528468595196945309970380563497395192968644615223390375340110612530505530983382813974099806351111804421513752342973006338199182745979765977869307165799269854080616111075214205004902474266676613305421681685212419399235849350737358202110513134515711476343553766454078522645462100657747535293123897967537370512036059332824587576668349310870260647732456922438797054754800410974644234458623768622441167449553701842591414631027666469628969062466381104109364220397752368197688064341913169824422573565243348374431064311044901766056196968871202615300267639259726300547406246359778546854731644737918415866881154666985998373572950436843074275659369947049700360202536784155513023752950966127109637116475386612387201153149239709663445348658366062810703662881758196020085743216095431999426368735769984677597987461605725841440726317859747907982355676719148284978056565462896040131562934790069885614199521152598410589836928667263764287134748668096233255073600176449574521550367348763491012118005879150062761789174322385365883737648831474679823949680959398048345088471578219482392850813684829452408214517403051358233295832108613076610626163393881348055408784911669679292905255944452765355368612189499095877526600128488355174996700338774211325027208487103188388778029866711387384154962266773482302089375421894330602797327761202647132037643783219798068602794380557405807513096768878687931376431291225111782406010371461075691189097829134074182811864634059997228494961254651809417772719739956667620860260330167983237406335335187846339308104557836109445999914826287579383426330980384330488449178194282711677105634432659042505802942289212906088497343832543686203447831011163387342018435077952076962143563124162975156769346139875825398543932555547622388895850689296129590726595253091203862534790772925034732911891594011805583187835896220611913702571564951426035090481068844528754388420117275399180255458571741845138320747968318984152601858274545632733791923655084672942500910452760117593333565925576406272628050472499345933838573218951626292431406776692463008439832428032316214505718523673979896492948224726975459083887906069905846860039055376086688901351049642200418666414570170610341759135093562621934387440273699928539554579078703805787570134772508367821822309338634883899842105993285449415972499188457029950104219696477662701260831845019490212377858964984619251694639945602603023593914632015014311661135379237185892919375850617441090769127891288513113041559631274395735808360348571220403333808982396871665115226333964190220227357749815585566446269337097758109231999018614735694382801417079885637099642341025878825873932234154439989060026095765809725374774501915538659284955211072416924284811539306509779153087908826374353891010851221261429224682466214774490226106034365621764017711828095092010242991764102358931848843059811869750296547779339954483759434257574722460016447482818410572137076146939981769407039939290946868168964961010331312563201151440575618675524469405436887116202469827604778257965652892357925764285985279424529571770723416461037770808713934213067303023524255618824265611360581643317127991868753965804664640061115285456926592245789606047000443232346745151585288405060492592072089898390661682850496071542539636345221411081946710554603440252399298746857006868910533499052434076504446616504952710085569430053831455446834176049109862955424454335217430624873439800662315524004156455677048966157119436882383609498572180832422826421794603386131844480796850262271592474213422365207892552131642427798654732289469062203424486357999608941154797410911495541716267214576433832317371277658781062624629790212232175339357089832325331143712706721868897606928465083003169875166629690178794099608638143659025280628519692116225406905165549097794003102221890867300266822785473109771799031262020556842988183962562786944616072306852420877322720545428543651536450216498726569502863072812088220865383057299114148626277596183855068733700673499166209154605699897351547030082380737500323063191075560244520047450883389699955750142189101831374176624534645037608359219877598267967573920589321928108207843518977777812323710251592130594403410470092052096450234049747987683832848313324755263703827031412187742804859447856585939177358587851053799300544172021292782823038753133885992171095264577712489817431914442745403744547556056586026979893767818018371150932108090454857211635830660192985212913565733070031814831351802753680965488441638871945547494259327066404586609399457830160148845576485070401932398798136269263427098636487969533798372750174358412130398588546762899527054064444887412675551392409333207509900599596204356500122694786824660195674011816704604734013757143983276923591325830501949831168460998679163614833519659366615354187939174930798426365082001230846718775668679114562036913245877858516583001322117935806387786170455956807707102633748599427663664602295837921367993490127768349070380465323284254053216426254828297035072725400825144632126990188957336749292980962600519251341716211475548720513665167663182695533548477190503600570140963080486171994208197905778379321264847935466351402356549853195833696718922357073187454723030214136981694777786321045516043429584278021434071142474609106492250796937592944847572257333148874871063343138984786936161221094372689749029133574217592284184444528332536407382197688219260318964993865645283524267589937376568568711335996417411430773463886078923308551334011064063214261331901393661529232638332391026458836930962670498359452799975695501709335920534174283787113814328160184672402860217907400910158316820934495054911507365491527269028415661142349824177838987365823631543123646641268201885474294533422002612068178542467306055421372952824062633609946488820009097027249042388212082765351812354279404186737592371164228936517297779792505723093873638975458272616785341000008569061436981602260358977185568438364131623456369883314300759200188407049077143022487799761142072609484094211645650347143900474328816302464070581097792561958493886611277324967271740751443957999755162012291260433398777426795320473462483254441555484571868423658578117414211721085291741975666815192093342732062043575584240725863124354401955284109713727928656265483613220351073111993014583713005755908707592409320195524877175919678210162141092193542208813819504670427835708385433911164464927950769210585141724745730673751725074635429510485311263342414971816001842217023264099448882334168664698038425989995962036260520696978245985632314222199604744653882179326844370237331937949396617563774462734217787675802556748094424814234741937132209399173592420921141598997319545514091355844846063859909107350023106272947754131087182923282448277551822654541781207908336800716519707150107936296894245745207148149228935712388618283430942575442547305582619491091451065667817922772797312614294336753419760745283823972499923465900543553046471160192167079367064207737144411236726526365526443863476420182784905894080258717671982661808514889176070175591128463093254648609066804220079280768561091188886008763368927241055313011749923971119944252169501418232633809029244693563148935056125099488502640246284119830699334308385438482738015496568554532860362621879285945215370083743304676197671156535925000933830499158697090355486843917693841807309835608458722146442865060462443832041393888838899793209213335796021442387309829220589575915240981727721786968531686516368313590859230949670174950386037843755262637929497403132761217844211302009610308248389878297574884584617784720827512072956603194071224082201971593195423475398949437078294554226454526107574823466531821634165936071318793881381287586691709074821114944371472565080485168405208813134280664638382280502201586624144582097167746508795583688370394537778134894058180320121010188994892606608062680281267072686430336765705828992783737616010972721991849968721259314429620146786119180448262755594452154037314042846752329751897689948164653004512145066725951986551476063932858832150459367984888626207428391349874004885989258391495149613841161023290210609162113660746429505397319737470186149782035743688410274772125270944639941832232279135908546074385680960940496844960856977213847636984623576217321541911365440546979618622497690460171351963043379097590697755662822597061568802402701775114833389061178229588095297045870122414674974885598075748080338277118756823820706230363588218205277986491364717512125443816752284435273665846351803260291903934130408737997567459574369152023128759927081740340803371593272022964022747337157421256185594290184867701381782129122394019003411737177583275953125034267001029159466083739303210430756115150119031969769552879489410790755049985440441798263971248226346819635408309766956040162868872146844320110083546712432886250386102358577028244147692849109718160860276687954351782164440903224835274785957057463383534236551041308515395576422916982946236653464813448059454902748639863492897547484495748825539826888207078069581459541454836019721006114707854799700824764591311586311934350743815512337743162643532019078121312699090323193256121691112483103071545635419864349228189679235933519237664903652872926552021820036506980528128319415740068857389307456531621706850694105884815525948776023033857205523891625773949710497686845195376130943328298808518924536720532591578782654828485035912136682722525162908179607869586591159022724871907093764577814014089675821876613030583732300893700632017996894807886371509130902679091586605112174183628822749955169448759257557742639562333311018287271021480932979014431807877848240054621380182201275749591883987556866087016522855216662433292734341831195363572090494878622141274981797866754824415052109231334915417965629017088435279729937689274752537822533373281147298533776327215319114071688938936882845914615091121895091228484500047403876080046786494388740241938165541746633829390589795715018959859857780171618171746700768566318419926239701776587933136187474524770471953114583865417553286784562012707565141013833831642634315875557856728421704338270324145153797751591774959738694706510989995555636443253122809869478933686287397451812672886908701427196314060050895871232662127736883471660843153775010730738908185269447514283424236681514333940269285508464151391795486813291251066961996390551940870594324207655231191302718574884229345291726420104467340016879042279059164780772248731768275946701809408483448218934867779754370398587880406036368912705361332265604584147323842897489203869008773183967222675336229483534435826078738606509168260511518807231812978430118207898579117932621976250102288783271787449077799004529389527588562862235553186637724270676180909821821795845089069002711292807823821057119134611032447614163853138204571804391608893659343869601151567794849929153718760558274943557668649694523627433954990263999950625306118338939185265208538054164350125415823343792440229957205320718440839560275368567330257712531201549892740869648128369304920450320900009336144321903173089653899593714095857977025866831344226195053174407199412791176379130268864543397856761223627869151458914159377519814157442074036436957174674889258668108528747374791554571304012530363992404192015128440389224817835582265708705627536547765540450180622727304140735316306864949825459578099738396712552796895765898592310119205030010708668257208669968370429940929630605144544885063759555870968480896993819791122234132351553582719270830099701567610809723990867133422096505568332708596012995402448003890604927347541161465608151973444747266851294540556333907735139144895772433145764544412961004609648158321835958352634788978802947017564596701384892600550809563679995197848839377907124222558642279883414076138966719891902058699787887891978749825064965924004123093339170153246832533500145226632498840105601683016561450091212134991221818172348545437855782503990281771883758486251502765996082135286666419520691802231724473004608957897250883382592625989871957907406199024345531016945524224589367511974590390158479330915615808854940670754356870300088544547201989997570653102871074061571193805266720805569512653894911453975465968499671049575775671539174458985910308147174533735576438638740867729173209448288620836128008319646214223789708359333339114854165698164905099437610348921957596714551001154556520884536984107056713146913181841797694876478047576623974067233324148001319727593370307199098185106380515603776422134480242989980657389878111416433878977030943121003774331768659821926941365834964926320484165677305805135645823844919258822077609650462478910339948496310628043153210951921703553553630085281975098003696796116987624504460056903970017848259684820172470570984674630128235770639994747237751493690712495424772719242756456631895538031572934143148602629880175327797653302714029429654627488060200955466310078649642926236324626284581159903773862268888798162612518865122909432573710603905576664797760104546825060720153498141263725754733677757305652037652094859154166208083378642795569651315189925635250990934534771331446921150502087438580782890347919038120762078692493642976858006623221577174276335648209510990010796577764059940096342078198431018458960043163586279166740886921872551164547199933858831507305572265302483612954297269969366803312782280954412288725655652395575674523598391034805255414348331561915615609167852898612464454288379109347248497702640942353258595268848821631328551985759587844412466320685915469492975949042971351304544075184755392994968942537446847961892814067476589565980221552506484023917208137799683424943400056514662405220436060925620271987555625137529049371388370013977412914287810454228972898302302135659801070822865699607417867859990019801996224519436885542747291684314126248108037589340155571511084584777816854031046890459757411213245684074324075589721968898860887906889904058144395722038905653977741059205144412201343189061836830191877201487105981527237968103206435899207481096719044424450418993867171560843800403935316652483363240211202002465168224433012467605091762258345656889103323554321839726782872361917659321524477250441332912984725832400859529167624281914573198861324426126304239137101069164795966171778560010360088456182795969694010814703084427849601801690412790190126531374893194659941760473965817057260135334155693338511536537607660363554217932942077653887303592376505757798164074785802944286348832823411502420690314350624816956085963413728874435848807060713647185313589564823878455152100427143969832197317667719837435434340581493546018773127209937854915517287965474537263023791433710163445632433692170923359481447506155039687839332537646494841626768658724918063962106225417209965906897858293693568951618638563720949011914472280218241119901968871090980097753117683099362706310902147213150555310593995762576087318992470057489275678870552793480835103711483432711367031154105422214863276642921195810413310394618837047718307182026682005435040077450765622604607207966505345259499896109756300933113550337000254735855678400913490313433837282708303709145299160239189356896932488394392050122920013746161163561144298164445188305373621210186161912307766399967189464793351059810607532863820049032273396390785370333640090948853164526883183389522208727443831270180195476750203870055025397650108026541717424362699737457235803698899009737383202622498710093254733136591275481264354790153113661296673500234837503761559756036915993361400586180637310537155688629940483750127296426646056791352459882959387560677402144618300052518561534240675822902140729505732601644715105613250266364599728165144731625343134220683669393286478991201210035756828700744061834809847836427848993735275446542498349378779340340025598208913104649420596379570568616941989231771710307153323285909248814460618152330812723555792780479807668005004399519902400285557778950353036102645615379251659623054902343307161157503340345792607599284343733635704386549702217516815802017400382435172538835870783218937115487350761094051286966208114205656758091430645113511313595122366655634004983761808841188042320242495365089205375951243767761212987530009619081039918190580974114006701038187755949963582183367579478860006510989689463033079580542937830451248063039783528420722641284074257150182684749628073847637724579086162993738659873356950732153679367546435141278340954830395865997377710683764179586065545682596783178289278710848531290421055986999784816960336824108602349796444295429686250846896413650504468411002502262014040270331460070463957832002413814058572677357585273833966164195753885181306045356113527707791646798443028548738115337016775639161674945798458514352007112319971546086610036003759924204308608458306335484515880319477811483915801292902363233648729840823869626805835392169546819435093845758283163613606055054026953884661943251621571248160452765387193978254126274981574410283793184481368364494479696041476182034533725104062305946456758714046158661920677302557331623320961959008916991033325319267499906419717164926390675588947833018747331207617882232029340028353007416322796232628348643229714261381841909471720871017642334657828124270368439654595593393157576945733860043487124150071268362426341215843997904358365120817038242184103424796449292849032961110091247975143158833864772067865814497550622697042017326610994219621866150915010561653752270860563951255648168649874322225781853236349153121942107642774188827717113980250946506075487809508045105398189981855288904091073983423926716594839415065569535199541085779950247141657470319627221939352532392515434610144254528217708280382551154955645396115457615174913258510756921211630467972655259785869391554215078621460536495199814013811855764395420709567474207801900615871100044497590068870558791740911805911441038602342549470106296938740571589716883609525593563121699484469511109081018305059810568666070493382060908894582877076218652238914900171120098053125780589455260128463406949509290289417823486940526710580595641231501412240920119595267755647430914980681803980256170264775947409209826789397820194412122123139683694657716632733145490838213114926012546893010005433796534238728116877708001354368038941007401331388216249717631740602673055261830590604397920296755287327387192680480146251848449053943386529070514745528625800632216741411615957960875573821086604153597038327171842461999335350656818469542342134043144389679466306365380541875061248763432564222762897564756974553178163642695453667160715714628216255278616277082154421814669130382974540646050018992030344625917509465821208539630222591041932346624968562390029738817183567116115128374949935873229751977268207113805135386120434655049357181722763433527346509468811842508883124106787521228561705915793732996973158005422290205706349926550517204615840758059092669943065679466944116050248694141577393581510104785436608611690536278373480652225344655478014249092081511763428125380078722270993135005769392171673922215600910054828280746764313541084343058011192802809068253917191048839594512294156165838104469707783415242550600254195173962400523923744225469742622499397417945569797218711193288103489629360219746932770928413109443086739619414844762017840476890948023410807851499098020118388252556070033929083756786443344293160968915456636785220248243330071486032247686718572676127504624952417648393099332414503418062568921176951528664616858025029863682675080416060892657956411336956804476446902547183188581646677372403190136884800149380104024195692076371587665248320651618023718789575502961616822753078205432848591454666443494928228179679752083608226634855568602371458890899145879160052948247768028620643767915632611495541557452909604046749401572282664584212701305603081692124194345404091581084989283346384593787816807390566369381480475341755832060456039977911304216439168634768026940214629527780200019019511939582375147119772461616856989412920102242438121925830320368564591874866427879754721957250069691728607855410028329716565993990568273260471006169173117801050642825578486374950826064726537214631330323309774801726300101904205789873626069443176554394095707452257173879697243805438873983964880615384260166605046220212962790404175456976640710631276681205839527044357471550876589712640145281781567520771037521664113791965233348092192075545346531684956113148259782018579487907127043008712423507250500957233946999228507283521880284548260179963972123755867549254533706570284977038989851244738038258273114394194192883904150778684322162030390639594781799492576019064923820600368234057350835232095407682494324879216415842956769641197402143144326617089018294942641659084169497487712116452223264902452361485178712591917859882061329922786721277083411941908602832845865654710616008296854484277256778968981322231379361184514030768720799605010205983139801102620859974204254152771715335851832006047547851382680477627080321028739938282484298728686223235770283496940472026903436988921063011472747210047110303273422355059564906094701176392408396316180621671680037065705627207902391193082312958420342422355534199146527812099200431077375991742248968593185896307033992393378658020175357438657718222143468405232143315732140266036271039937669155195316951790204912395368331183351700025655765781204727096846020224344943793930304034608484529960477328577887405367486054540865944082940867319529408254543239899169490237875852630222227343955482989513832116790117487998925103176701002603225499810569575226081058834177070252278220435606192407237732341861222017546110063631712002775751216363059151657581782414660076879566939325669239804806196293780722903554197904982969676980416753176322918802592792443022164249294006069306039928635701529974633234394717217784475543594918911601525187793484916886221682310753781606515573164415499142674510775030583556652868515219671217524571408222047949353482219862057865193483919119133033164722769093489326150615748858121251530002142421121157470307929146454823470082566731572621279986497502632709649309887014052829308368056160621399848201080607541921363991660725763767401306124433754654568548738800552860622663373007999185809047608872302745532670396297567620795970467350766686621509459556167669598235422327695639350912160825269941312033163101430490924113205321459940375989265278152011296000304558691541983542175146063410196402475583265844711276261628962516236037359702921570037435780520649064811869704255832111768070750467737984479967822923197164255419606803715916512408595475209764210959088569293224225263848943468968794516612252742963015853099483853107923878681736482515368738969786419963676516214473863513668008811566830926174243025020731201016772977062556362332248524438518486768393939467933291835491227092869164786861293031640227809281332252428627052772878310199221459562145980873440337196556103151590850901326111765965702338380235574974565259072205357924353439501837775917975881648284172624893438211957088663174416915188567148557013548943857694091550576233517171723962884810465907088218836474760009071727552253277770305364138497802426011128291057964527812919370496554312477098803424411372260609134077590533956137120239926916008207102707207253057618145858200825926823397504805290896817593956348999374934015073887697571725310251400887675316048834792237138109300087614520301892347145676271865594503580047517800548505133394016889057814603760952222008724961180152909148738822754053518433792989615106915131085064796389253584971491740338426009545192303015329914684487401291308250367856783565066316047776173562350649159077568566162223692444929266149343937521453383051008324128044534278738999096840022275468894568301344694387222517024347177538414625052564539774823141810057498909923332847355733463468696226409277719948317022864594043595105556330047793922437868932784212676349501922553909458982751000170729445531210924716886844163872403111757177948994781014232312274376213443299387344642724462993007126075108304474816925380358797208237380868875854143548101929989220319022947392353823958368141947022139973843426391945885310480350916747219321680890558012250574765247496211943500539138039097343010802914558219933249049487215475638271692734577042240737482590413103617515385685174282529404024982134869823185590608541672620193386325514860677117985791285896316603265940710386858338462647248868318755567943850899885208848437710658794962431831430049337735371073095375106848055256537956663877343456391917585720952716743558508495394865518622630356021160344232533204287765346657957754599058494355029401834439524590657231723689934735321111698026474914950232652994015506926906151765078384497555746068724266054556347507752011951954382073913605354475909722199511885323625803886412232603734961955688854576817649393513556788683237487004850647385054783396211965907234003045294381248311335816402236429243493737016984834170143293343627198793153820769337105672441067498030940968565517534834482637675837601588642306550268843901515963699551829716602408184441963324210084456357362061789625654503350004619570227924895725102345725447860322436329348028888873500511705305922145489362464661385092191863708004721615443326927696511859832137036561484064840984305186889584980610019472016878642309763973167835654722967031883004967219772992294811890651564345652561503107427839315669293192653929561044285261230647586940799620971791837804414772629125564253657491887232392137740536042787333089797146993931705850780325715392107834089704176085105582093711061331639426201197216643677081456768692782354034167897466847907355064150832679044157163191762785649529699302293914337979305168312763847098571073828989034519246810898900182755927269407540199155320146447024555036345644871149856993280927649978375929328479256298179691488457325213913141496971012899098029813195002925961871965799164685983805192064860051039387152576855879860320241403376392235326984073952295550505172668553887491027336691263187819896741589208426901810632780069175675131970550567421737612966555239494469272227653480787807232440165238889440496546242497907640499680253765559240691834426684711777874599569466957658765867874909910408884861567477004448671630784240103196333141393040116932766673925835379096218978172246481394004461664696149154455924224786705583179047534423824356898066349787450860304955212049822512123832852502788473220602060026272926713018989629377184673883654013633504688294305532433782949990201247671210661192309163641889374154310644757142540531463764459557825252381680504460638536859612171394069900885689255386290220469716108523988955799748304276914073547433651918838969474845535505286950493919653773193206841622700228162711862730567214828768323343733225054790173920111198078525645269711481656029694675740174398965288282757196681364145464711161763482600803573310802984458616835064651622330308236089683703978078383083339860317602273532310765250919725979740380970904024826913194342671723724709460187439961555792283738146497601920783888945426248945252715840431338578143569254991765461605567117310997523447549300091182120456961069090456068154152978471282336989710128966748196445038938896308352009790926766177972787332035376215375982452154614162914480990542113317272540851224128002401327100286325257423069480601677116067828270089871160949732415040149839280050510103968980448934146882278572911595755299009366626435714732403066036490892212261822352361332484514148183355052249116466447321286657725349206609177144691659389517156865743204329639342520351750905117510562108153469104397286171829767562206916661659538037660978839173112810651251543989131992824331545171462145735864280018716371224143672897864747233839646615410859216016485060700233446814347698682089926563559946412529640564841651779615200992388707663640724145621443999813470585736598783846349898308292871420173246829462915863611784338824470841508443973875633595340701269391202000681850182427286836582505444268756805257744487925369367832364145070110948916966302253755931247403238440061858167219417679690947123591759774160308586256954994637271375762165046193842799269125494445904482805212429943102027113518934591995134599865183008968566692097030919987941721275134437761287189750511785665016135512866350082129579025357572774627386169487792584551144632640925987154211688851683797376559668966987063823263474210549379418846410506919721036659286938128950092060099070351762730101647588688847778383714684968183465235237184055406687180090829900824063982945752688026749815900630954235427764083424130374463434990954717773005191641374259769576040312527164553154834079383734607752687232663513801208294285612003082670436859773474395780051375203727139357014811913171830675196984495934006920390026958642567559094554483005471507903612147725588536315121328090337717621260111316890732191205088268719308463291812366014600800619117305680887803106538323264029827650240343734104901523068390227236425321907197304875867598844018916831204181808837125693452481254693208322155168066870993406714012032285278431703543443703723509940536219488153119860907106019588171297081617615109491425348161837101322014973676597036687610212275950854283525251503122988717354578763188240994575162970701710295804469190786840253851238119250565044737008382296579086250032075787105820714397450562448929020402844174150664307598891235326108415320897158346644404871707312452047861961926532728904926752771687903264105722099372170380994127581923292413998300148850087045953981543519032491498457752282608533822304732946190343969023142496812656120634429322241305047761071709312869707278445925252605555397465024402686555345652416685511986281946856410405452315255651643154995507419061790744523795235373276537496416923122400096800845478792254884995880689596362620263885024123163906705570999305171704032143396019104900121894618624168627881903211942696759405085684288476723871991552957127853811169112249601674235522235845935420561050354079333516373988526182704328474153968037542048665351460059851014978462506283777725236093883060046216212660722582217896243486578463929665086006142178660002199451200076220707943403617171682632688782770086496862411725096522820084457261467449033121884602514959521155847245588178165714000564901144682827116451980197133469143603340274055482380519292527397964391295862409804763726283619373328507344356825317540374753857009401006646525038670787293304115692325809827381930453891409100855355506317209114134332652300830774579874056143866758115671904356491412088526253459603308333923749346458329971106003239053814805610374172756433720888045576076054265730487063337064696478869501482865166009353029467238450361279117321666482367982008838395636045818984810801915770614984049982821974866675713855739629693868458191593805746546211614606763826799980379809176595530674464481732722876246816555366025055329227285347631261504949948207006194202933715248085647754904255653459811437229498963617392237732114571939716385805415374945260203088688210143303126998804793391467469870853424939089971883928771037977481673018520278635034451232466509915114470115134389409986539942987282496843907296657454347861552769912993482115226224888265954268431976667225436155208857842218465240287835708827101294650213001525881252436646071383681645944335699671708591646420879348473595933376896718232805559665597743945114504741814660224665580257282427804520181618959794179774881850968872169827039640329427496970882820191706386737498489000836682855678231281945679591926672318978893936629337774868066710040240974790040127765642359295059266019754067725069416669706084671510885200134113535433020770966282406793333908812046666500843717371273526835521702299013660070606178872704214650283058275249700487519280980038951640265161170997952804850450934201715920743377390222407720527236731052973223634477580137131603560174692889513135842566663914448556275826539835481074903750059287732361144912761461130482542544802950276157721871694118623281598168076522107447319146238706039354086900905986473169001488749714820194419094652389301720753584645436262327602953481702620439330307670104004838610245019762186264082692248193338028077570209750504619665182382636007333347376230048666759056003581746573851885208206427850410919058424028704229128983990266946691043833991758315732926593845423913847844100286904760114062090007404889630324695135550365290523057921242609022416921399101641274816323107534420406232695072446559574630028277277601332187980845986564217661993419184060552832919767881229310198856154754568514881712233204207501578318191714457174868213768944793928960730357250875640780169726936520835663600289711215499619126352139321332036632422666173756927607777455757599842860323875595713686714616840737588510924295033267891540118174195133545217702360037793701643225590265578408292399888305389441607516378358979698308258284541612646456401176021020428109959067971952508035046857935546854642153287186603927961187137334355217796743282668913003280137210807106164189214083695383366756826813152692590441030682586498593573194137722010720533597342949677225749899707385695821217719012267182795539388657732139037229562663791586876206856239135943365619531224883750326590056465196730160500580691821773427332255467352389569147990761041331504591186636487535644979196346019528626105675632630861432830025182523695512258925140395527627886929400914257292675996622537779106976722513839503084805580268431240468800866391445389629805026830170794063461484882369529769151162089476551307463087008028139297046703080047222633414948942366004418580370158246677757090391649131204687019746779268344562503069771902213919731762782503916869021466399959095334915746923224536933677237317168220870826489753330347775685360759250277509907649109044259553365229096105210633881651902024415037409688732374987294516326821579612049793422910634414826627163043463504778831559440210923308180075733228468322076848653761339308333716736697293585266915267968015719018547542126480993056665940884231890055601892703322458294048113605669388950399084383492007574802248186053159972943477193952440561693891901580656535454483197237196818093033716110530708094862278888413533021329151957630958264887034578408354246295778686294246559553620920941359508396664650598595141490983373287706922904053911795668515565662498699947968928580434368884128667783215087337839930424831947228203684523758253054999080679691482711249727653373532261480408747915812167298279433594694685998916670547958636069136388789090929789441069504273753590024382811708919335763867329143952015492277102031388381932998470729940440192928847600511201113857694982778645185708191278145771630232068203061965118571766590088361980500484495468116027415098405673074971574521691189754844352710087889576389739550062909364604486956310901361298156917875602470083165213649444433596906805029080781989183195186120022228400280729597455657588472313891165142663672302137853634970470323929468543801335246986154089752181344462525936088336960472549145362482543148128118513126461534934538400858881582953431520018479521748192550421310603508236676076858722968328905701143172759625857707249597253068374074691360484376849143743183746103724379749866163974717169638295782941804256229898879087464050488037475701560223632441284913881607470887627440609342242202833118365446404602907539932948035783586558997881816146488490086460852541135254551316772557269194838900155364286573393381586444134144460870576099098219299063108354970535662720766221067905695382987561475220235373598977356791820935581784001066111486658088913326296358586566374911842945296553383949481995124245057980065292176320766053130167501422595550946470232250957074007268800535382070120635469583844881982454922952379703675750112043097202474893210034067009072121363842088954789558669147255684736507256794333751493935836668693362190138546079897843326936076198515299226446350307738481385957268299842867040002247918137074723228844677689535103969005432283107449801883517287550849591446501589583086800690067870925482248613418766800632766258878408384973984992258485664953504873316489382131127585552608889878620751242936085261914058209608526624268997054902219242555670551931926181430743436857993892542590746422167945274849073640128935260792626772819360128885843701354632551547250261498914747809308142774327285248158687411239256837119977563476985685946308088907105741352184532477163133557347590519244017628527182104069673809601264001994633260508609902134426864522108827187718532104918860657342291423883143649960841417634667762186774910944633138706359789876230866927850661346724781958948305748976571209555074636489828805162056762862892965786615864844582759118543638565825054905578924186340779672161579236288208012679581033243337965394288836809737992647941537093284223409046405791546893350597932746906163936811770427185386875238837165203959852703230488118346546297170755858801581912152212957886236259996898987605792370897734858089029633877877074225655092609516891157000968375964440512107581496937466816060884072177479860100191659022652549974913557399647781019947886582924878206091216166212765895980613458162586199293017918527507624858766568890861678041040596504335133857302890213821353849989265678387736552210923691557984621524376969952019203657653120203030387576084532933387691781504256578625021645313746324064832925804880574099096762872007743157412805660301733797043435956359003717190898622518936685246893669714683038572677529160053928230584525396480819500056634421552436469560060335541507400271962077124655679148581145674688227319785573901132580974830335643544882302853011799673486703222327095696086961036625468564758630280179491419179202782233006170537637942019770768620643523851024758038983372341378191903441122588668207276759755295173015312550893937301426152041008162633362599926996190405186843810425705844271054199479095945532849226947920954820181075876296448052421938213810147784135864505518232174766412334484996752591499086625982084389305773341304731294419419823472028011980817793829162301339697996206318382433658295584046809825013706055894408575624067020841994181125326291059342385625325090956159660090094472679971242520616613508963272776470347435110114473693137409564806122924243582247646000079188256497938101776741386306505443919745380509876013697180753700663043341205484047114298276287897604424659255976776696580843358361159536181880974390810299191128948818708382067164199258112477284085473998215399148293891485271642765510974571180367090414115816762168856687676370958167744465299190813892719320609258991442651771765682550606494684341344923735301647974571620789076413854911146115559361074530449033769355915705549660371440283558869137065082713720688884081471441389708533227327760030115109776605065400286403637631461569920649418689713368534219717098768239160456653301550011190291537372331224379234272216442729827534874958212762478218557859014406802768485061573141548358693350177461474820244425364868263549409009415519273624749979957213033596030692351484352391726883856068892303161209148237451964216783964091861015413607422014050660153837345472807221751268446680158455135283271059417652147873515441850694605909891139725501995837284014201582918255115823004101299777470298065757499780218168583484592537645958514361847181180966359323337056949842184612235604185326644237484388324779618259152187012512147810905055807039718678124875568803026465632329343743796153171102810951719353779534110925108660848849527011308567370237245182451091713406872373178465173253197748813570392053185305628314539425473918418469937359219831450538160340130784985635483434142353508366698140050468961854119071386257749633827625149843484053610080965110385394520311852074014219855976915277865030946167403302390396881084653908226662226729462726550206628374881709968562586837169766634246095910784174386371745602088649541294009799391993438797120521740186240439372492921510704317619320249621330740906131894250544626805980355031629136520552409289372567537498620608242623350263680665356060671574649686533486908991177715233107148548784443132302927611616554279546524774712435479526153583652896424207507295976372537883124428564696663283413268972819018481364641272605896707144882517254757139955839240152071662260068943611880960348689711601614990066097144805719902783550394777116977286641769889157384764177463537164540153320777132117997992166067105050690574067624984648591284455575351482754908368398512063299735867989180553680591692627669163725096637158520319406465902605542260395696272121407657086338998229427817313607009926504833820790856064352462119414640338498347435608916278775631003775862586244149296341612123665250827824260643039718996581608984583062822123965267315670921500564941846058833803924816242474942285646821918739736787524726405616356298409054495748055728056269038428329829851784219527842026539018460636307158081407616377022359562217675137857248500018652987042539612826734449165373214997349783981907985782469392406191900905945733912523474036409971046829534916193680994757778526408990128591213792319491065334680977154496667873557438452428886921072558628964645110095529621184796422571171161570521683514004518203334385509758465106369870037723284605446513301399663044658088872562432007741122647337263533834992030942802008905771033052710963817185275565732182304553355352327358273863903286832917799903432342722791716093788614305424432531680225729933602539790896946632515931511677101359740595753384154810267144605622351654436141404891724819817786571715959000283072235709263023291757820192497882716302192486035333705099541918574442065263411479772040771178433329610410644689222460629007824104224612038008247746903318772939832249564146554710347867395538185095885611820527597956249522558360726669667574377818551349901712055982465829640937536414994760426443004613303802313836309106829919728855546644607366922617976262057992535918029325459305855472664869072531190336870204731880872699155317928243699992134594640381025322286738299562479180982544931943736212597450803400793668974793937650365719401181405872973941824473827350370607630871489411944823289202388179504554123561705403485888871848579107127756715034689590554184631704024877519192210333334665851020080803330946878433624690430570793149714570271014341277270239530163707225490652477047910640986382614633283720001985769200278127941305973864638298020526062200237405977978931758186604851614296893925958206338221192388477138370117733838863083393917712144998655415580328122682007383574761201667113946960034968691761126150002050212757986845074207326979053250290306741350628170128747262190271427466518126795916379807312689859186840750907967171931776990441224392832497224058964053918429077199013762917741579200461750757925082728889014544586198869618536415594460403207724066780613686941342783166534821198121641453143070644316054735713327314560348725824757924780876998461213455643454460712560262974307922018450649864320631755245466542733727335409318614859256544563324653267743356949647859179660082151823363476175736176756135245043564879893390512997435947500897975520741318453943311482446152463094567852657722958396363250287990394464261736693336265449473562581405217104507904753722352552906738755698598318086269813703607620744979057621252590279027638678481140787899330089472221593899865519610353143500411415734373142026894489134265058447100720387059850051146931095140981288053761686788559844217084338668852270209407254457756266782405439402317431662116788201932192585475909641415681160426689803225659925917162208923469758856861972055487013612507594189271884636137331992515418066510931369030620070316443352043268806058255182683277432240196596374319031298370351152203005621548604006074296138766788571802386081112604440291655017376531333467950655351454365203452768448225789083440319725196369115998123121397445205213595954543598769146872237052165237964989852033890893380286134558786685390655943837898658077397799882565211011027046709431451118341383823669505380342878955405070103151851833150109721884379478075514118005064854092164370293934685282985028851075731595161312655024163347772908158674438582100556398739542783861519015859842629884254711995520136859577978660605656992044918468311354792866162821103517320866254150535374927867203640792351240708596760339604767598474786410678029648876365104719832324370745270674339909179382471330208168597004684178363042318901787036059150840828556873956246110099049534515533084998038013858133145474370663688177756709557520999966153694602473082148967351486456994190450882205161184861254065890631117959804618326865091751848574208510964413200665819018438408495125127389738683412125864910642411687781788646440350353819269173115487584123704099326567843349389054223145774826863357734736636747807387442791530351487332986405999673323675773964498080682168861738653166909620913920356069166866707941245208264510369264312394663663233184713474867775136074911780613602076899610623268276066405481437861037713168896872400655317366055839683972671124323354970063746879931413587566097328906106599321990926749745700315318481629936851051953552978696961508363108596358393377080355287792782539779659047786395022043970831154680172918467502879767967936129655986762777827051237258912544674514650046314620403960861622382836865160098234511208252990819437966587503036251004304535284131804408392041885787189456243711528012290837356826122340172395762249722484998159315485710429399373507962364125678158457859611257271814019857123447078163860069185253572038571624694784032902912681653875702037336664373224046363095720362823253415934033447972769274092025321553213896816939950286464607919667618854409268325353108249306759694176600796023581333194008554295120281454579135175687563692334063196704614224086845525882735408607597539173424076094301469161598732556661523689601186216276914204617411413642394518089338200515299402254952501668924185861521048397560887702831010968083256280451611776936364251323928310209209119684266823750078994257096846214928374100396589791387077961053416725244747022242912785209705555449722286094999341635441942820789664314100462948219081390370302031041926154169641904579870338599554644423570838496333784234693777244539081641304124638699422286878089287106101278364878972777558809490355075114693498499923070500771150402194037501880735027134929825421774576140828118309241670189378073036011741943734801205493566740309058294486497553641425756916447468242937859621933222142576393922866452112671658815533795124000052035633033662096538522748853498587518375648794729506054977605342801654750136419342425363560387198958176750624403417118930249646567417278370733683158551512385868193685294555381440798082624484423757749849143348492493896973685458218018379742870801052978825182673411979933590301070907289654858908413230826304459360537358761292225351002946200235191736132746814218668820675683774344243840203003347481194200497850704959601679718592493533477262311079694279671140100297027432732204987809593514720847443721847764531885546341606700388915695291078675034889152531727933266815807099935862083886164529444518293376506329335280551202860632629637543659916292604404231421800306645450519098311224343244401628634208238000119429913203110317862882997995935201091284007540715763730100136405888533179749250692445710936716910286666949641156732620368206505047745254835686390083686867479430780188028231299477647932480217310125429521098331084455156429296176029614550972397135582433662521333238220354449527182421527649559259264618966143873097328073552823585756256047948326986942383433889188858371049703930125354362920004232031627180497763994381986163363533996798644378046901510175856142042093812499426066873838145450929932767763960628542841380653985585781744248666939739593550108700870642541774948608233030630505774422422002846214771969908142731612823151434861430975564397304136747066247006327508416407342515417514539091014614575357087663231196166034737438638227894710878369969551316195222950091184817125254755946907734798173269521544427913400976620660395024649763818784788318906798564934452378927028118977404477631735853607887501373682534955227997164201227640670568889244550389636035054503588428499602736077077357294554175770706421804345475700650621980444528570191020211845487339557873758310551348917829419895291806964841287601428664118106189509181255484375422116078010893912137195717622987004973514279035372479850919427441064734525185140951495485525906309674848585148156075911032654043227240792613641330807595679748122215397998108718413529157115293125131615592410929074296371433806752748000009142015122233430998019193913514319092641995303578110198258329787584292014503321665200269979713435979407612867131843496870431543754588671452468118108015473600510544507543298484043335379157654756847811939706345444096923928777347574093420920784935049294811479754808289830208096834151627187645715480689400973211285810625842432133471497504597049013177018848776582211776780193087911015190871977536169755357433017480677210254948920203928749365362881940799408266460621509829543135029677770686040015326811486432861431991585172297612042530894620838693089925560261959573946677679517029996644035301300591191757360782564807635050692263386912491455410836354190870307673788953896899677163666025155177029501270650770806425444280620101990395643277550946260891068219211552904474632214445610884586756880038333150397797526913878764226833014438746260744893844727688099329291680469967549687635352280335460311184523276762336346565186349438992654715686056932073184207305606778859183648702644817484581270149532244209126824422159164631208356986513608148295566767370220985973657345873331380700852866413735647060195742501129343288123936005867487901515421437370278641187134586492688546734304814371194050631010534159419224591532739793036690079575034633245134593956825210296805894126936899769621691206934141504863668078751515817158199707343786072042839511790331820232279272701790066692672666179284053961866505133573590573801229699058436335286663534267418030918187146741031439228198222822264528622977230793089160992166017714412604685055037846620499916695930153986121038383926200012642222559185994097475625351556937385122092353180476743215231897542818299438351815139226625663348263754292312774564902088272168806421311388457232282417041051307222735214291864135324244639679152015700639357873646289738041958698434230434528712666158510036490998566068986665162505395137807196620023019395138275929932926995166693672248658320842121278762995943116837717175198294002799468008068692639896830629510131634460321239342013861508972535673228242259355159753990909063014965893658302685273908648113564666313099331103079377675661185624838014530469584812474912952697198935195268151402525119570655633939839383548501854396095268192683954835987038420479355709645022600189564117659551863579306683976478579995989255129602695668883254572083333323589210512026366228532503226336510598804077482977101637628731782284025472321358574247477901539478681519950418976136721562426025078400586124284437748427520735733387062893821054914364581874574324034238084888306868569287353486644425038524002669648501315100867538996119158271153067954578171406804021112190654858698507200618186601708198575484761593204097660434482839489412357400603967000923132989795229203960284704844451953841083026674158619701228498899087923806497504185708258096102869897204586194008510641021860472144679643661174486249307337902713755337573011798243870519638395868393147255123430467523071032708540201313806604385834226353502809211416583023209591443420164735104902444209301208765271184137104724900063929783660672753461649572136008701514291991207148315487214220793555309648109352297453770740725821701414760396916618744786636886943582525533985909970567105240881149626746843605193450259787866900300833037808822350458715114801075458285430376633816128369712066316714926659026243811173264483558723154533281185338934192685911819241498482301879459446236599087107066527519611942422540695488632646021466894789433768874662722970362976628654483041828118440358284595121575815412952333629087635560272881596232377549135062680516256374208505322474088733074837182716100069275298666659021797501331026696296068583252023293369011222667763095572284552922088813933798315002013609900380073293115276601165875309931310725954009840606878909323951233804086867564679283784599201848662123188248324374316687127981778985103493331138782452174007736343582397139621478407992635270445849974689724023613115109418893054608196793498551385708631862634427922436492196364662597515793956912244895590143493229867343457232971273074995708623528070732934896795401921093774306780184335840857874228679500501852619626766996342886465757347475099997553086861507306008189291455190127194823575494317408271530481726775489160848250184726010949469884001184845837940524090784625583505291777918668953606566035151540131116917468834406930930767544009723406543737455593701837579116960049422280318079442213080437018328390514888036429911110923976484904818461175057781851428234105341752279957996150567908251652851362021791373417338287590032356824555013594533785220676599724989696292497421773059984597737384687349337265999627015570120120099013244733173686482269600585724350410961799363514936774486338704535207749092265868894195739283632580031718593145666462224921252426120367292590476265896481971113338795447248423143752112126390821549194713496690219558142937979496850873240497673986814633043534464062728548643519955649685926036052265654017700181223308908384076684013897952684722242091888724301871680446282806625958167919815467993200014027400790537895827078130951746981414066078924149000454838507402672949275895574979544182933275143461978401207638076985463060628739807421311083506680458981404677888604622859412141630823127013650138134369591558589450115701119842293728579922874944381227256012789417332795933210995170775648157453281057716341075985270020605478962816144994026138193461944312131316639338481545052692339085309287046867312905333652461518653078478666882401187773580691572345456026702542838264630706724908027831885563569049742120457656266765307353410503541664401825642168382301462955556925882677253312489977261618283270462878566477195724426100953988649506031953516932936891314425996093981492399719852981399040438943279391817276249357417659994836567395317447273602671250311415156273614188370938927204188118747716493616396926097998865267553627724492319857763962125920758554273619300798349902509595047861147356882080450406033893606174967105979771514578424877230945271424067473086647346990873708496047339354504916566850760439546541562788267549379909583641992270309137435625132445403997665632705950583365023806261670836076106962703142592129252592821841499501249518110817143643210657237016778306437566518337064612348492224269481335305726721511320334904243014224116288026697719483586117022362445774722900505751860308512915729578377625512969128349982352498741081557356180922893905662745240417179358935055528966787652927663086336577244271949511295335070377079064951728201783823738567259490468930172252351708149001332018254261641945826664623343654887914617437477465216196645099837349648788829984567774489094062047463459576850448751106156881380468249397494079045460301109938628443066764775124347984943976934743547038119286428385333957686277169813907955288391577612533155355326836837862696325108152287650082260630153968653918631172995498542847613894299891027691353184184230168493364174616322118436581467429441018026121585453384265096079167328225408785873934602644430027203714698398386290361082943662335700227950275897903476715103966298749763010469275168872555971693902420747512627616714887947284279374062827609583687786339415330689397256257262295904756759304401602785200481030950762856959736880387401179967048647108778001939114737061071785864193042909020379673784703011304628546777288870014160158255471903085724728838534322089398219388954844879102437300634401990829340410285444947714865948242365278528465466576876943966216561773401886728145409722207936560430259615077033373617478029147898837963478986065202264492258377112609233081591384221397726144244986971833400336778711843415581112482387600846791292553055700727462104913211614949662254678957585828665277471124357625745388909804580859570783126330579167503678026617996912378963211514960759503655849307354092475321838731043698779499198229222054378037373413015911049984578149710918884137653378083819076734351556835178468468871193042117258271805233744002858304286402404523324701749771293119405682084488013929142937076660744058889429430446955512044982656495926300363114649411010977605355241442442322762655566052508361696112339249309063623936088866555063350231446985354831523110855006712366071469321035716868484825189660653707145958138155156471580968714071289540409579663774585955691992067293120893286239622244972865269377486287693852758423581112590917059863550208456762743822875326358887628323516825340466760613311340723815109506432063479597980121405616074046144619488888708206747188043519267654464216060992571403905134864832508054937171130408670174799617924429441796587141088104274305466531435296825975802869213537708969247800404346155523153716765793976804676083968604402474368932239063985352664253322362258967022261622357593099204826456366491142584868672907856552736856144369322766459054016004630887139278977640786629393301709201902986102849079315475938629753927791590879886704347271156489726808344025551966422654576504562030710029827311836679797348429971658821167731084064666612641570779789801419999263217731071734253000632556230054928413383833584811408395256288117810840283558079046845998140665496833902640889294997312791111555212219552076749632032201699673373165345192049824007143822248590357451127979558841541561273999266368377500276445786779293048410009207357261670871984426027857434785892239936198437916698919099268183476147363201878998101945058935653604016981785611872480929556221719661944455790529258615309299576333652097129880608968792025788011265442879295430934296424002797251688468439459996625617909783492583661513081003332549122785521674813403624960059304398331301406541891980019217371951806481462279996882488730742622687493636522420330581870574135208365600523589724968759902629336974148340324882866860176310468460645842888146228550150389689042702850591755015161366535042087811936899057541796458813024205604980565660344993726683108849626290984625661931739383421691751141900443569689314000551139603926913408739551105236295399069681175878759591452901158948248450048485328904213552931858757246679152292872869994784025242280888673256215773452804670600574829911736961202617918677124366400519027733591028473108280562902556129846598422474836820458609186621313791910988363920564902068177763341905501541501438488411198244085546504661068666653688134252997923699030276279815377268290960895635090441439411792938618458283269805039658396454456465562160746854206883230253462675005062826567563064895343278905086446365830342128202348349760459182889273012164773075973653529424972115881675458335740101235347384079448171621264131362944800465059417099452216189287643664966810766807154181250815609559121667654451542593358487160371410825989659106831883921123689655210980372345850129704600000147952530927504256573598712096629595953760906341605015889522652598345961105119094572657423771955861209585285469266164723552244998434272495229696303836609244785073448763218543553325278456563576144840715495279595378585967583995720784174787785527268579816891584108383322382478966300309023404756577275887330847277420074846221002868811109989353557637142886837287834885935177915332061779142202239964373514859377265094232981317340600847968586138888330192472351754685210154134702218176152707913511662138890602705158744117674183995144665890119356134523518866228409468787088639001305809822305109668381037269817008632755190228626981185571787555978616474891273736646686457359668338098400498532238655531491658227813872599067265223360855021397554620168781803065807066269497947665550425314018730018333573423812069350852925773769228941253158262388447952528322968579271365787475395965649185664415501997937323771293642282269720601493015766151288762647087282104967598428198080603818880447450303301424027338101144427426218908717552754056969465369356373333597425645525240669298713205598014740253193237905431082769983886052386794847240141748496934957213425174886389049297452225239674370678459368129802052446294946634022641649771019344731869833931177938886592584913917110102159858002401818890077122148661138458168729769064929685329269875880424692897540544661556450057741191483221654739857960923216375975306132988798294114662722734208856183666068078168908099968921054913080718835783782172887951166804443869783157006901125666365429338022790012445054359038177088059172519466392576351419251825968432290067238134410268003180799257588870291484086550943012722930519965506981671560280884427484857077851950698580027160446325351987152821649074823894301345120610638099953134589507311873034063456272399783803420697295901351894864541846542102727408440885144721777352731761545697085414746234926880043553803407488090941785744659698535750940602862509892347079028432591295278525202394381956023894728672030601145732714008646333898187352135828861880904855449087059534885833097535879064278650381860760285151893186559786927725206326183367944892207469750882044834432955009474576058103792035609185921863661523495979052668980132688438671864977150058777353801508200298276157597266271664375453523734910194815858910597726478775177146596747032820546991028908316967666702912536131251656027734071411594772666517317677713482502718548241556091671329195720950685138233548596442200564726698897107771448198023959850794435030918555343681011640659817402877096806916310702559246754248836314511523387044854931472151871519652019037971775872832657528072227039583503317004180122857124419884260408291527201365676829680905618426199522351511261622487522833095914745213843692846472062431308467946048243758028879737733290022421392364051137542064928159405707921478012783037816274268799389043958859945714718332296225741221607391440349146923100622312120199383916243303174959414970375639877096861003154812069542627576850495138095696308363044154014354076632071889878768854277656240956799585273419492444916106212142177256362366799338957591900164336628341741973169837935780054529934706786317597826424580678810894864437077949149712121656734740289550844612396205535376030983386992370940935083189937342304566486077789012886028973950013045261974771483943952687846670446186888155955739113337992697915550783771620120047254250600179073729660753729742680172814173392470688285985208742099256984040528341274427337208847694983337390075726081502199200995086190738055205900821392048280693937496403715729015168245768238480623749341182698081751953535343056457090610473933244560832307484431075810210997099247210665240887730179710391412212339361788062382532500465533774256655907806740492278336578850452674495959216375372658681214511865550536100164918259891345254040670486944418834036183148457441513721076917857853561489590441059664030127353771934937018834057271188082728612019564716584042550387999442059043529142366834427784419169074183993241877430832617983047371436620661471007358917528282073848220823354914763917189400458812160425353184537649718243342642488231558650307994119347951298968405010690627611236218763865944475598273927747727241397225528372992330799067749772710437138926536710222631193092248528249088236734676036792772981313345124653634657944134849290068188023846855690543789233324516590320748318143426192392693417175897139399851231449157766841823619841909348340814686462164579479264430697743042542855432371399754629666518665227793446907387157902890659612704604089636053529422694863074482869280354963532217374890354639492016169262817746057028803231124011877917175081371554462544395536463161139827097002444932909174479606916225913743930846941037056335203278242869686155220495468268134541073209198418139524141134639058207550840495413309735425942200773915096112687699695695369726059112950841224252392393050889478212236355984898078125153397426984192927658671204320771189045538500011115788195747114913332223346025793147984764431036004779655871104450646473535794923307400854289671976464150755364650759637005086568126517978521025768808861789736901781348792499546783217026026883045299803818828275042356748077063186346888384412998106168291768798315109082305765418514501846033217388272379611533765952996949492403028848603823447560818850956517107827386048849486009593951174982899780195608972449533488137144254242023126116313285585648214167382951939166710239737819245649671364716767623202290466134819721363602799455443178340240111770862604233789607243400889630411688033955062089551684810599339509420708805735894658391250969084173534001214055904944201801069277893676127763741352888342531860882808495569233627669254987606738143743382735698302021637111128636095056174479735335981468703441829495503938042650302471426557913921599801263517175807114642521270322847455651079849623017702670962054586253916169319748628008824889127071550606440295295027991811008459814136603036845046637167747444487391575210713239038437002883551510607816245984601791089416212247176044581824083712693345007182383861013475419915750042984257234739766107191364066473285739999084901972588742798946511909085856262648375538132152939439142848529746788206054436132073322263278411499565907351496439850461385596593395512939269693171220426137639349319689404282090900370614902530269888072000552751812222384120257070293376057362309186211940780140953427328501852322622047675463153720918644784324354663397059028216047974097049091780997301619072181733124872400393805277281340057816972226155837182641922189878912404766277450825071582750123034959831133229668406399133722033090534623790673075437536250450092653416259695163252605875484886134463766104758883917247486922757142681133709472833194178196576238512200795955980438197709956826078356595233302338609413254090689359075212403358212078042266142676233957170071700344723769594368452996609355762312177311283972018949945484982455262165060039184696612426030805844192708905202603891859860029600110560724201851641075123391591816502784587115695695345687691347440741431696708983458271858946496095493979262862499897647770817076195400545063397409832249955937772490206971006781127700070741629722167777116069467782360975031314296514679525180797163110052286345478969461640689205016211663190379637987459463413012368658506884201391971929178119179098772951473674623520011390293633214510969460317376936459084862984936551071644496012030827211388528764082449801647083493374305406637682778881962272912083539989993148650206749091672826775591792369003210160785704139010407599898400487471369960290170035068022885701205477209882020285374716744152326500000711510784595348479427674330394404705817186063864615600246167607483128694309374838283796898494331002339390516626472727367806565550925023830770381079453208528739775058437487906740369000534722869432054248607549063063209745898497012661806176964058502863104299832059596676517988807330303450459457742146285583875473749880480600830824634246489349304017488887640066326710217721275377645849579488459526729811783283750331596357573921659827912345283289399984019569743142067748379744965662939397532626882621053025565931501345585404859289247094898690548028517186364435379266752078154565791726395854856840040729845750748694264047228416764937923065326128914181410432600002859650605312605383532031003907503308466985256904697307720341581410005500568246436626215516107229518902022953899964020522801307863741046784614301847053592784861500770735694652097276198857006988732236222018223504579152250550668335820160767401809537781622109069011184298328801289087501247732598250824156804995031507645860343627576332349098782407207259349277923562537912865919791190068027507178113888404132457591312194820653744523574812164404805966939310133555273839681119293453644876046657026104929427029838945037856060909780680932863640985384511175054096469308678606889177325926557414359940728861502785364208346951738762001270344575121003508368952282734500440757784054088470251577597242663566217832553366164552711947939553472612974229341365366553185991609969134577828849927330085955747638783380719454283917341600045679469232261550910288696170330054876784849147335319513394593381119701600039007468408150027286549129594377439660295695062799571621118421044188425501110243296861251606063275380870764929810994760243971775922280648911957933503390950841162347338902023037371861627420720493232515769386452114067650702238280149847319235283953017783304598580174759800725500234012773100931304214279386653253608233841127173585234465611065487967199471943198054283580938154993217981857175516699411310798819065115586465580787107209302599705075632673927923097931584635429591446335006424407743204563857969167945525234951800991892410651719088975545253670138450007956584796013846134274005697442843063281053278330138466345144662037611597238134378142786956499854676825994751392390875104608899683482577416067565745673316066048907098015418897224986521640334447853781770643000037224117605994274187630235484989731748324203298088307201927959867571365502251021402948636499451752624493503676802515539736911867240271738018990741986160986603339419445364111065076550590939963845113714985606961915233869309457196180560634479864719403948154187193768717167310607653474513593819825923662165146755267530808709566139625211511934246340838649770063577835562094979970431160688191531621089165450100843746849686022920357264525163583962899022063092552628579719891116912009581635885333644294057849394514009627509754334363472190811638386029512320851792304275839792420967233299296508700609610003810151979415039345305988704347264448607057672045091406374333403591288047006302172203771317995058175065849514711847208773156130363576183361695599898803155725674417335164370453739198770220148395143760577643124530861687606337988571504500650284489654432528361166045737951232841266063181641838862148760122639286724500639376661433127677451448583718697058827171135675262936196537069368214189146511154806676251656099209737237515895286143907961748119547547613099448019067171425352187980846969130358830180000714138714381750852525312690406881952258925525345277748452136741593637437471678641234924777269820798301799426000589639059112382560675054349557300815882007455306877299909307349726706877653194087145995434009179703524431623353571651252981562897240705689972497431165860460479302162034521293534876874591183272805429719713576144276706696470983391270822163696106632896738133143130831899436601890921371654286608844784559713936973396552146029890708178775845774880691026328368840976828243535538541522260960261616614824011415275274909988870738431011059653476078738965901074302891893685517655581328757595651957600436281715591782166656920957953880304841748157160533167480416916071137126421310711594403268291375934348388650467578905717202320373282406658739529678135354470875187705839495084051828890807404693326390040909873443186891767813268372749512016539749120182150614321696156020886584396792979665964102734995724645725159841262976009083843864515220616668966758641825539633321626630063524098374663789290837896365045035914161140617828424108829015665550285144321312171718214920342607263316024279219274452625751077094722233218803642044202655249922970537521021842588159604692946470263609414572247980541805169482719154188804338351686364010600630357017348126051998096510012585718083752717728498832017578712401592670067439349572421596776954259299099663180694026210758875868631640381937503237732738663976118782735927873121816587772512247099634873166830701970766440962370052820339161835185284649545468756292851235241008934767613219713405627082270383274323070351553387365426989485851204893708142843879268125077449614752122061824867838099090429302410311386181133249622769026651869066022768118553428907927316062021896990330396300544323886904298454949483111292780739659912293771612066416585289594113577089841540335247212056541270988197032102463306847742159153451235943343583504335262128833448435922858946703402647348036100916924898627370187840783899840507239087283233891527935586117607520241134728066250394619716169426891719652443286386923713679601968941067128966779251181279752417588947106340424292108044166413432635424199607539509989044389561218121057115917859929768505495290061738769235278810158365518401364601540855629205180168710677633445516992952857594819714772708020746896481075672954469175195307234946006686916770723508140141781610226579488392937223413087701636428592090292989218051938577357922977461445910512198363790636422029479811708518321089166737950031621080670001666437869221016742767484595431400073348635454655715600080667989106760557689011897917382766067698416467441843188234001665359649006232864136443223364495390199782285109832185503237903647323426964050422268349913633504745332035000366444460657468793810905723028235996908735766174720468338626528170862519185119573228563228257668978061199594796688916518311442484585156006213680892291013846894923290333576740232625019852448239637125228292133398230209015293759014042773140780196736718902554980205972394149723192780632535259821679591372305426918274595431197586498506136315883832071064266129782877023013668891676635227097105938269335189143697806796860756560383971058436564751798864435184940480719960075951205543281071133963568016374083817949538977933184914563343495734713762069046869555751816862748969187017456350102060015116330394976449674757980201402577511036800795129912807434922840434394544440149721330299617447606190127845037065842655690615805314634802875162758119718733988660894806652609547167371432142927720616520338608853130166861367668502037858254772997270456705082231465358095126071878493631972009764263962426519408508402189587696087102322386966272840589346606948496607282202180346766384881888663795305562709083043311019260684209410640501511363007377989108257603850673310354358198815816232035240913155038317076242774962302811191024205807141768238522181477719035995014720604723267031979054304256027648128717820438101607345228752851827890716244813935668904229086644098259805230316339245073051374073209017227132623050745635019542792143680219695426734414110789153361986702625491680220448100193404689292865831078154304307171209446964272911876668939352711494769879280296476888680458783029206224306579611076103495536389879291521942855837882835345970600102768547694557765801961364027329996491795915938101339573811229395034427265985221973864865341719200418926034326038644053062999725578076651654734258811019669375713897541481591369399000937266480324567422389881429581840284488582296734969933445755455680746420364646727031856764267650943760207799570374411190561053602971100885315081270714284910335044346223647298437320690403415449714932104837819057542665714019312952429456987842877622022640664125888791423725008325796361018512572609795880849084728380275038822890939437298900446900414660160491507925777331180813419747313567520864068139211364378207350551621530993665089417639298218717234923556351334814885913480296135621668269416321959396627980590235506339243610280680917459609487713125905592084105774995521929284805766877919130887568279035318552140977194021821902792600678615649877964825125725436061182659170466255350143527864174095318644605105115378016272110266796559683529760475993913835048931041837947670780014782872234115842070612442986581683292483816333893878222032575602786691828545950600477645834052518802457888317418919947640257097466820986366118695275054442254808873179912870201717955467488571904240176179781595671533321447720957674267797960036148023860670151284900647283581755316282646559608540326658221066270418109254965959537900537063239760810384496897036322658817799700071671913948813329189734764368683497346531724840461342041000930596339897938517735306084438597823525213439796874789505796631484922238810842953523585955402793259255396821445011494202962867671354790969639445737227858432518764237124936754250851278516132478169608791045902421268507715105305949487018852131807915622886318205031164659798877439243526773379241529945573397138990098952089898305508185771702405218334095053701506597725215881852728966409151037038105338915024687115226608303745327196067142593550393223707831417687752266414965131169323332016317581361945342473150184024147756781064982658364533743311481151019040167853457782362317519442008393357891651668746103410346464476665580912071855658640257228611159988883396837967410194736329023157064243170693295902030054751009377766129287339147293381662573201510891634605268085092917598001235971134742042369688164750976113503366777248574427051334688955139411709984318467593998398128388229533639185106428465660914262077099876315422719274214764752079792261386089305699398676319855369728307659001041555754318519947851497604368910722862031827004634174872043798985366785718649736679057799584216660790216516414237755778269212133584747162823573861482573665758117329778762028909068259146563331207789512626654118349684952316050223607011368363719906661466628395015879745769020783830583350253581163644049869893387260824610564792724272812492652008112046622568078008255408199791406611637336656960406951459949654205748196097653511403077582956803836012012650313973069275267697635797754462890775765395759775436175294917375943576609305918213269649109933887678398747270220436602595610151618921632877494961661736609531015453565358171840996472423705612072722103071253511559780479456026665233482942805558062658838234398509860062097689888002735211148964054325560917319289623471514628773172953904059085285539518600608353302849138700843744172002272679493720062485437776520250060658505452475077594667089951478160240134879838782585603059956766044832697197765170290194146153690972830846245739577908971575973347745955191576081903056171658494344365500135008272127045340512110748212903764586575180979136408611600974616728979876529381580039288238151528783098382821443964185843141638864657528649799463834339826255933498960568641180562520860135964467413738095026729540813362870645487084009944614165549073598494976263898654571417818110338768151832733993541065151033912949170251212801942118851887628357493791427790357933657266291833423977615187271098598354851841241528700925758503435971469697025698406936243204089119587190692454078272236522645102808177849609095879590114643267486805512695394194009236683470062074382942430595546530605593097750540058083472572452509619826304739043646425142852638414920123695872078832923231536429956108790665023917761196626235598271420457263099889265308916627819491667701636126879763615442576087269558771110620804330358881301723055406451694193278290962199111584892336705490234281465653485161315370077611365518823611889834269869473998892010374535826884175152406703107884405640197007737369031016990068528721906394687176424648039879937334002079904670346627120483849884826484161909561445716646106681150427361269957207117647980069613748474474087127968492812415170396946317344489211057996362712938766522768907254664159270335582975966073814738889478358711640925033894156373555710905436450569087874691752483974574220294055566395938746386358654347345435643514207222083618491018681602831200860123514194981002314893441085083102103482302673991559401869208874018857039360927658732063070060087462797853607223318816774521853624634841839850201414689373411207664349334524908049152067061135549150953226611760922887549361926939963661325249622898300628584235493894335665308578246184084186874153814853531623820069025382391446615858644982230868553084297170449707544277842829414471098456549200589351144143593550623183108954311977077520802047067625565664697056325621467558454941877373178067444119067381253790621328783122466091064573493328926921749156968541746479456270962351415440258034022781483471692599950753095117891405115508267741810927658055904790304841253838332917575433663745442937116186886642452649631431897214120179619054739519796180470183181322696042725125848019986170538133548695000851729369463507206463247597796676916889739434228388910366459886358777841146494402210347041774738034662016457835448377980827844555210976352902606074332476163875526587434755343788156259269870261306445446157778375080905584510317841510834828977264477583618050313721895887999778495280302244284863418961575827283831684803583934507797107606941767849420481760347102118205627341801116395232430888681813890618980127764556442282432865744526186224997754720504991937595211155206100773480446280019817493079063630365237943126897156910892904566820229074196552042388302240733615078742906681950436843166706772849914522819482184780212827509010411072448607044700691163017666882976455943783807456597508914694671173146877101019020023569848873702422905435564885486959330705137898899500732076226632794404741247715862293857822276767672522871597796001196060997741435026268883198035466945643045021755340538607408643122945347813803637301674461745784136146412892693614805294502019752055597883754258431593613295389898465907106455183612534147584208356334979289257819799265860922908371386188230269843638202306795539301778631440302829622222238684494156691291396276189241351818058658047199147508310222692174808103543085300422701949558492380679231979864126478250833372432950750661591032371822874966710436650617906281639182297049015339085441872355231116259908339147833347159228552713227265010016791782883216121166316217125363575884919159252606662279982807276054382749314997302024888208803731232279307640616866587888396912217693370404143253207906908140608000789683326173357510947834688153095842344350803943097985657313285412954306343136329803050647230546042087843640887079779551613502982415131950471464970700509470986837489166389836472250566255922623908212517863261725587798446802369970886934158395921926623598886110635150943024538940152923498394995573329263547505514971787396155767902706635215796799905992726395905173733309546809609373945952122252300498088620936772949321173706553751760714830108524210588646371000395836004325983066008305788565981937866887715887174141995438014677656306032628242792980041351709763654202483953776130111298528975390275452056446863627523909835244901887029792163344159208684515292764200625942110004300686224613048626665705306269563877884173610713557633490720424538459683128339190755538578055016143917356739072353228064823332563594320277795211204691123708015370579732247780879254621254458724481813677879335890743039223596973545747935454744006052871189151256057185608803259916787473632294906044480952973303017778072958654319389850206498200212039320465598513953911969178019595428641447780533846821541911548149840076268016535500492295807110326873278689314363971499333176378716178947428218780570677961184704776371148378490440906914128698164418386823543859690662111369715687084337355344416847357020956638647202866711939241639284354881747333150303742382615193216849766868370575974939171649114575926399812584070445602352351081395537147009917513557064653552096024356548486514898665645748541411947811011372591927811601546356431871845069348551711084212504997112978909684963286284126016655998682137933277774889968344904903819332193068485919484091555430602366577484724831132451602325084698542376184520195667900733636766776795913871603728461175341961585968523940833215370205081436380360480996190762526556750651320916197777989396951446671707416384327497112767139414241047371709077559832437735370837775796113919645797065413984026233014594785236770307272404914052309385849245790092768370916790838515305830917036707559685914142625244581309525018213490342644270849467462717242253431055230536900635422282559967306209052065900213581224282823887212511488402467683798228502557356129385461298987854212098230645170548530145843579026038193609885845658255563824568122678549840237929886169171518434463405330862304861669531698045141723573681905690500866195004788933480491208203656106996845976605484514678485142527548130740211421738129552028701014987841036868331404716040253040090781896344997826859177713866434808898079775970304251790443726529955049825758583044097817299882506040262629503302471447964849936159420053644461296355905806610073016936720593651558440506922264440414735384625102179876861626916675290604128585059021684062664043855440948163533038812735154396381487488107588682736806836480316326942216784225067048032070693393570051757322520152742158773690485695433164404523586789417235451897255369951894378422162945491479918029216460671414074450980883781359565186122308048699814968596940268176191054683049185249559356017233534930413479520052926222149787773231590618231387890496810009638124690249180898030892101297166784613389460665184726757392925989574561546807296105397710909020034376495672698319077042824866166547991402916764141736209873403567331149092476539300551887326354780033681685750172752598256500242659030316918643957957858453477567491912267964355469654792160299481086399618400282943107982155257050162543312923928482860965302479626762175208193275505372980772980394282695956517655491748843686826839591490224633112387579690560531951579638525890003218902186926306048606020353876434562720365429784235978631277293102526662975410649845460766730355424657826473995166084657234676288923957531146232998496884790622490710530046753370781195630274203668186215636415583686371618661913680791630075726406045619379096644670481373724780296826173996842546908201016325416798631810494658350881939393885672772716639616559239355588962967211177723084582160516009613973331120342120961666721435594062692240377119509040432144431468005003831256057385633657007531279339654693440809504282853345481447510730794344628491844388330884224236853382826061601540204347641707153613466377760938220139221257225352903750525930461215688565715231652676955155824343278911662615041710494777509455009024820921012278186019745344486661350730010013801767954082243240301373276119801141895562950693790255329520077111619203135905005024893491282799874334189520371969245375864125202546869306360839153624163578967048943309527064065958912534680666238405745792639724100635697533757533263717918449599880732331454892647939597986749076377761370431983159684302876640080413531429969275984851360833685524230132886030842674616001545078558493398069218476217020735134265064168141041291500776833664483501316753569447696525239980325156984316433094350380642996962108938135946787290779156804949073924801676112645231751561238020936035448783641797678001605415258054400084883518749800692863342156365423015497207420604003368782478955640660877639078058415053519188653649122949660257120367699789031681436217277259837375510209836505381009894659082811853782825122817436275969114961135039359136730148483746064859142561449893217965356652860898572934871793708037351349756567589294090543654462735504632791623681345926598229872388047235072534546043647062390435308284897428574450521192285371487920090541403219055265160033256453859363250519435208464070733716159401428083407760148643964138424876011445356882411650335583841750256087016459553942296151532686496073145322835474348670161513407386783597219377941655221210642954226872555753415834110469268424525209931236610550748393360218243347635607881936662785887738500434462463808433024702936634368175578980279563099204827004956893291303448952179701813115482740237727417819936171778294131809401633293822110460957301862684902766754418405977377679299063086848673999288895503261251127166694794140414809405065536275778752662331445331585060222515208552829052722951122313190628152244891532821149757140696801112716788680874261456222402176738067101222253272292856783096323223215558564720828704907495354507846368097990092269513676615893158585859816410756784031709111729315397621178637263300209019528578780722219637470512867022556494974407277808445460371147921299122643030920382764537463166029391477640446455915605192081733271785530983843357487193942202265888840976737066735857480483456403795928867663785351228028968951012456471739153098301122637851483047415557121660686926885437528120551076304874501435227416015910963140330011224159192470871426693696465614389873752412276298509789447075431724914154532621049335285902683888975980705194398768016237668942022381266559917094917893130924481133790103644617395095029571129677194607796532775492591378835233972855700205934352021367331470209313829970759513409166429932281423898460533627887602859325734216396368976084523817433902661949713125982414836106498443530964655467717491547892427056051897848987740151074283443810644850601691847440768635951719030570933295255107775364300981858774216073313592844642667181434672898308256537751854558805312779787630456856369418843866463200308851982145183073085811107588444724938656078561308591820915395458315011863508138208299261454526506241736635855749615653289147720609953904948104185025605986991202928728024524158059001967326462510285630022104088506557009756238791739644944910787592878058840799122287132697000926804486196745363065710929585841130984285199245112508794890627909553670297337999724140964500689680365516446108282580368827424602546719973505139364850719177698125091791798146590396622975536035949155289781791332914966934460329141042708620295866984137332058338444755531257197575711210575070476521526639712549668075071686494889615519255117927675700336648458666637909544707421651880645170346467791976441219959015992128284770704653201311365982413405194818250398560290195876784497286602614529021211811982691142412687911367134139336142778612801148647006870650511672264743051566020066375826553053719137111813003322137709778323627187492614204011351597689106154445934359770360980653077717202796529985480749895611251395306699352655631533296052663090841160244598587315950106858860766677651100823691106800242308474624597132791357946867675171359170367631790652673178886700676558670933182295651462588298153255547191798545178322535497002148658449035287936890521157205963743485115517655384642287749043717630308766162075174609250143567232679488498718898776857404959618739461441444271983068964371967089972038962619981742667206771478332202303628909711900687929405555073030188031364923117900752922701451286294201036456064755252927805328023694976526165941544322353651219377022151425460159780318645239625951791140562051752233192349686259373918922174676123785062867845436195388399268751079716546845812065920225377221882361581422448672713605667436054616483758203134613075403082470927427737619116813070116711732232802352488918278376608851487126301751612528833894861671469362615290187592020685646783003341499451096118174599559368374821709429008247629705669130081226007441405738134953117632528029865238531880389767620267065039563218528718525993259728591005260325035372623179392043813270199914537192974216208621833980058395367825716553733337758304649744679471621575797256666997943023912296391224205399832503513583806891823206799530128942500956743388297630247089073073446115056245399623640144499163706676886326568700403334048375730621808089543228506796009073728474650640665338422154960210531820516809045309285996307745067843136322852557748209992345232224944132989021304179479559884264627075212063278579935414813768093467423366899862265437780132473805047195643610096543105679593553604521729080453769896595313068716640853477564180287278648147375682383164044415167319725780980082038999894215932251251832398495108211746885920807054809115288834090114582984000261757831337095026908254463204976877880903809872586350961869968375934798988309152121832627766110817870436288040627077897343292822715918281247879979781006418243023441433036533493624932699294015708419682159571907254296365692419489152361051776064750708350742276597142525423343580285016029416015601262529255763883842700779116353336732322456616793247035544516275289448828482612634934066571755618780064180928367660075360234877107313119284805193653753807549618498932603419586499958373033474999727910817201720649469842091823648904156657926257097882521386099181678017760115254645588756352632497115934142582122824789204716523731324078882240899879303804937292584534258027006487935363367979070706462461952880847079049225560004931165781202769469478010826958622615781342685312771223179780930541756069306010450936215106336557110989285372429326826062752708931348250913141288495743201250207634660247299003472503193619899212240203968508407882284376635528836824905238153893690273967206615593240859327599350760461788716447577105825466905179211095892970647991390551755459736024463709865597002101282281876979932126757748132041885118717892041631025149267163798474235725960355128142052666721076246020293421131791237453192403395665300636680663947231305347239350698348009848594025593984699626410569785432819434751484948726282679171952978497227557369481078279376641322041989129111791633837575378932818724147308740187926538146310710287703991497944087276885026412524217951643856503105431974235450559594834504831980628254371430687958878309404160407040707433990343683326565756516835783418050069176161313922560284286989142219492623801648632014302955231215979697333596713123465482127342123073395431263001032331223173784227659499589629402877896675402239909861717370562178270048570722898028311359862796586680421005796799855690657643660535789832715727985331211821194654186463881855905412850466870697163968110731576349694238294178743934079824329569047716510367029324153862983536079906673034615649990946985187286170035079398492170274356812124715028127727596245673170910210893804752451287627825205283155338952397567572369472766472534968860858609906313167013451035189697667176469850636999193037192457121457580820597243012082978174314762140441216338340763302706668546779612266388432566235232495954189486511874098364570356658531898171691986446433071180982749745411284342387324489858323092408665560229971712448437250221722488837932156775392210903728520248727161011641555961051479607048971357486477032564152465154371943093611061018730535325361463172133142263603596602365576534532368998896499182262362068558609855447001377384801934320953953621112129558448236343956705388683610330991165952106962546888858499478781360180975122646621833797684625448324185186434756405689664244978412142360963026523490575275620388841814947323943783549285872819669492460299777189845379977340830274456664297968472119278314839595519768888658819305066195853571926138797772425015079653616246771444523328329406924964807974931322892793321672429622633027742331463036836756172424825676950858691463431014305464984655690719568100499970681854412138669208959209460176378368163744775584154937790842341480957303955040136705341463401844589368226042381650579070490146421040729516154814261044922812950225866453144819644008666877741881569420320572837922415671816693352272697799181170497848848679328142314026938657883568356787445430426845667405408569704196486011637097479484196303702912432620399072988387100094857790449243152765486580013206647023735371435244122157900687783922958730256231234843057905560179360690101210625335673887058031872970195388908271148165829510948501894554414691656754348448517758998307621358162877235439616915431189579876211514790169092300257067362590693648618723323569794507044287427272679045468188049135433600729138735540078559963494112721659381416233279051318735134499922103247090696665235617370890821863268616085121082283718683617478643195055462533407529053851738438312891211475715703966238119539236189906050178069015389728306937023505256532508590671454891892240506774263426458082846020818904437055691999782328670744184906094852524325541908653049099639415811176055495353371606539675386059669146107045616945213602445561907472104268916239831039066896472551609956420342626732190833786851582156510584054256768918206171176822915762096147396901565690948511244425853977359904784197739465274727438428401500988278696085819814798049587513676996061573203522236631227573059856732905700113950258886606467381497881662991282918922426296120166008220955443499743125028913258925023828572167610559331078709679521801178730293354824615793244395424488227121191638251118907131638011721862041872176741823257306311666923389556312566656668066036459949791327602362094063092868166754692983808051465410733049580657726083708427217541185721037731969107906747925962293001893023037816043353678466349307589489027013682118905162498416686828584640490909713837059379762546125501779154242574663708680085914368783595875280751076863848055835909197017294008185745311293921485328708184440026713077319024118620016949608132080009146178635516945005507302622161957561282951813221026400030933223135185841967114616305114272108987501010504436561441446357549755992297648337507716308248289807596240216092163709807849952768117948686099628552723993741042115874827681372157391489412366286919003666011277665808423902546237440408965316094963233948166808117331473983663221421805701165450236738945115856125822104314895073094508223163413564290349949175638906548527990372034971802078603169258535141444322115271407667028736392777484624993718982499389316171165244427035683850338273803627917927531377360469451995233936700379175066225030802340878408960326277148623015656556123812468087656357839580063300954399587857803535980406269807189057953953125513446549044785483189045753510532761218736940813732814888827987364845046637481755670917864947708147971006922733843187254744242338027843786434360116260584540539216282008594576051549897011021645394312469397048780291015490087870659420553903435824062871034931604581227963194416507832720875502651832236554639823456730241076887546931395053670008890728458625895164171044881042656996437597916091373313158128181831437426440689974768220595835807705075623129069688410937670972922530136527748633574989771776448450273811761450218401817119870271479693238082776598983553723399359763390932093777287998189123389053650705426006443251544205180001465766953766325051798504117533857052176179439527349388476289227678093234672259008636586085580070197504035705001346644149892642826959948947845629391964568902853305343664181135672576768792018926528220573455910992148061748468708649050719893771836135683125737836857669738034136493195829954132973605984970953191154660285742593255599816505602528349235901155122955833364703435098590972941583635136564051191002357131110345749087597408633254598295491679251757757533135500473946201462955184325785805886604061965911308383253258570857226867779351444978958013190018923387655174120903996438696789921799961809334857774027719999499278483411285739951915313727544648527727063683705699944299173813895538027703368514680906698493866419248056655407214459574887618423406920606585205845353779287945967932378336158101900641804387326470592147101840034533093769328024130368163343847513238318493748229978326650824684277085901710120238703980022237145774245837596968121460296454540803874611571499752680321692307569620884675502978469953883219823367107723837574893767941641345096537023800154151935566809826313776306885407756814673966946227092989513398754274673504676517558516612963739114224887045340189953166672433754236723586342534919171968567956159435608049806430157122337083189632805948028466199497761316592458290782032435123771379181066477712352247311472490934295982288195468281398598163335192550987163891852240901585166315941328723906631296564926644931573302163250349068468174270733130727811929426011643507807253172126609295239507588169246594410259572370952854740657819958141983237846312736981980165207046823809507315899420100477214087717486304862485813098055517857132881797891077803630106753697427791526780900318735798451295835745086315386126114722436968334598619427928323168430702687453690802474913293306002850197302879753734097435839388117775819345678224447760641006954139043808903518800837567679974825955466945169520080883669281837998047496578349552031379238822849752323569528458459885429452198926769726992140676099783391199155487686166899059000114676293362747266409951077440152006170087056116993163484836658925849014922282933458087667808708647639646652975790797891259131848985439818997936497890379930389678365865829733907131186073078471072639439863400018469087476313457197615493861770575678578323381992057249850921853843273674133806661945105928738733360692439986237494250338997613891642410450833922789719202147584727872173316492473929721068407302173640040100520298101211526891147706144003155942647105104781727550503298810799901949925488040566753267078783009477116447541739742586273584636393477782469721933126895470887079547242217570264540359491525915489648104043575413537304066001843987871205950617201688213593105568105354866075682565509641531864028811828963925346777077002161163669569344456469185205563054321765637513170338642703088311457630574835717526735378378113065310085917850980196909799603029925105880382468023603382375773890639094646673961067243194067979279817679534352078404847732896851837239312633199778967346931175702001275008110142195027336057199766153038886011755069066952154624602268711102666192451817337729191127533423001050053286419620768796722678154710722562371040099030893447437575857004236967276091999774726865949421962664528521638489782057325951863909339530477851360654677685094464650662764035197979481500490588240333626124649480583740140503455130242764984686376381184473827016007757856219213930814956594336537723072253659665835235512812220789035908412704276964686467337312562738117391154074587319876233350137936494276952165607691867516909601404249918963718043063113167285380587351834245791508693052334195834091337803257788887431645223279808813710795385419713670065749503687665292695291102222045541768773571291417817524796563154758562650911043741418710750174186212852866861649553334651551183724817632803419972447592739314651439909239424957574722950726503286369483585422209388849726664136112198770014450280539583712209452698125857001507342712058469010589431892616571825296458566855825906136917453681725971008205541802795615512782164512455746606260925125881212940919655629639557865831209904544884806383471981500477794337371933316902806628003697945450530017061352585263038640875277590103855843668223295125655277960239786727368468950420448089147510116544501127697525848430324136293462448583799873130078728233633290874200035742037977328286702589291999895427524677426005755570266489246319351107619950376812454613577389971011858025035634579617682989442005674678913068534539431225335071429623295328953058742444244088097702936441434640035746317558053953412735667674150338311150620362667284661381226178238420204777635539217237047473783475068777520972515002018233002715315112895034321954795038046777221653552089245372997567721303852776567483512605975273908651584643186279829432377784257209748991033100838441771694240850544875173433503319237708861255237362143840977556555947362565155005335165644047504912361872016155855590478113591102616088967249941151338582092133250348355163687595717033059068815325927993369823044886827911632691088431122748420503817509924262252324935248965180392079878062770306087086520969493072600556294655239397133703363997663940083572314503132596278662491389004036363302178727749896165342534341453738873850104755813945346831095412847348150541102076400758322545168187974360136633158480545642415841692383658462216454112850318282233221053682365121703478429965881745802069400935712830126231060911773345681085815894797480697918481928102944428542096397067776184100898635569141870566724439349240505322680981739266014942403762466728264209991460402436181173885563789432297835963320909513255823690098166818587122575097224384244317240599284356568685680710935567317356179112208567538127253341560120406424522515105508423226221181551169416860171258707366240277744545531577654755827334011576990130463046064147175531612911798712437733676953036654832095565635682647612439530068289391238446235188773809172636549018509719573739121113680271054256083017742915261929957616584767516075400306674786896613620740714229628661940243028901287292102169345193256045158653800913951098674715471470147584044149382596072691695487135769502974051764850437005870326247642596186304955378121233206703681291087651676481333392925484615855333882666235615023577710877983428487427462747003511744065663663633891722002056822276034431515363784057641300912351509819332344091695967697364075228864997114792125893889156999508800694700249572243385668933528449519926569443773640308284851603815446572396110185964815026319419611041333255282227158712157527175859424957179349858844130716727090012374007504849809239174219182058058624514029554474663298944094036334890910640278777354068268600327114559908929802714502652300948828564958088846782669272507039999196558894259741960683174434180043122876203395186206117301524569774405065516752474102207723354659368648613500721019724545483570814047501695749195609456627604427382903781074716199378765131798327038579874289873152327123651493948879074434477405636197268823354707019438172228829064983589595534107145780071225933451200657047665501151713393371080934113546587368861173580732730744048294258402049350520330861153516559144988299156946722053626766694561035910823768369693493161048066304701926894480266155259575851767794368625693977885836228364263815734886566591411244715503321821598945858490715124371959157088103155601024407085836676053322375463802329778241099454963053592683952086275114995019161260332356745776558064733281218073157160521479052598629005627968694925015795345874903016264001322738180210190110613583994745996200852075774321719362697194742845413198731670482708303568680853620683150216458920610380100776838443886902734592332941096147662566168436017800955240949903738462076162436636523358990250136563102065749230188609254419515003707671057849502681237355300639332736931402584704625990191871821221874938698270853150002197689805441763729335255060989418304973210119987302580966421679451595851842024905057936344718975461232137688581133759767698740849107842071164404172120880864805432640405082917849495256108820344858762956664493302762734048723854957249936389591132660169112544348536901213051499891430858443355337555419289577090180350544455474586634204879908842996280213914087084884306021556557146960078398719116978004332289625201507477064718007976926403523101723609892399900118702219356507539511769046090568179581964865683629393887020707260562885517554254853038335241357492552763131634761578949962262088518904709738040096002930578036800115533133024750566504744577992706417716230408923564118080652495514394612569131906276662674607107547752241902271456201828268357198529319118451907571644922967070537673617729354362600076528796322908891865820301002551172871914855861296708041634967222671481845667187464365736107591492497682039756928637649806201998731832813419068698995461609138633777021447061316132197414697150398108682202122832428030114709821771958074687027207053283202903205570482940459395953542013167864063651623242821193729093528773842903470758806478359735256694576267896121604566518585467076141043501993510953381541035877833290012282516286976297218440266552618058650345188169318277792155059731738715204202279962999737412928733512258444534764528012788217545217733831005017558813573207760003040323441168277662073351314067763293515936559719298860987582741555447442117113301141692585069167541351378854963222347664708867970822357422250106533724398239792150542833092139931816587854651712731752155537226065586651141540359760791418129855511800244737071366979476045140297811494244797011553329148868341607829252949475724494999883432227469053738349120772214952966931004231885456939153719693738966634923980226431171475302476269118233299677611219852589216830595388265298614882334346452508084921998510177150729244000263057795214158876522411541918081860362161206309026282983730003757236342281277261868136815642966311605830674384894191108780583386736547287318199915106583175329401919284764259822897105807254809522634538808902906703000374295981401481053305330888597966602824888999579029376096961360416490178730749992198883337367213032998648791183196835225800376584108346698197452122092088945112081657567290869369956792799947210810373434186616487720165680196590512472798620317444346264445588722488198273464582477079959565124542041405893162028946764404530343543212364510478969643444230689643583926734816386429404106423723604571492552165210388634926201545594356340507261579860834654746865905519684701391298167701802788897744842254427606035577881078200052471817902695706161293372306373704663232840167129323501329653397459551339500122768538135116695527456804007554540367406544012077604282102890752698735929140414032190694479331604652434552172896525657409651115888283313929392743091516894462108039723656672848014413425107222999513735729946242814539474477433474229837970819816168072208506687675869872434361339470836181705101904101274269376841190181321372270643915661406292463947015395796768055022894615884012751600425576367937095844768092706788018701223695306713408520501455724223767390236944179904145530417062770127047442014320858089151746265273403242461746539657745426900347919015429295559661114359956643934857397492512956596392154001701478015095940720847750786225162832302585599579836078729276931491230767246454085829728908490071849297638615890258862714491695015586754789632482906577475554108569625849559225743247109563357131547194721452941773847433639716897303988863085854878742525372338401141743080077821972331504316200392104569583325692190451512239975525349996911438316410364082044831055647256944546852183189540649914463509187316474371216036143797028670940442770034702523110511789963914943435591052917195795009221708709977750047454166034223435011568958059363450960052686463664284136406180270868686910481903621839005308520042401216772976094882854969603839438713564486934320654126549452606088346223850156802145321406075160680830557685949864072078701857215707456079548104823810727276865384931492739868940260997903935176953996295846673397645266010614621620004164245703409785827009739218857328050428644418445732851213478707491005538139072873674007908815994166292432963294931094696782533831235815365183245250125962270302843179671236975636526261066058675318412677045055383756805629984403355060636975797886562827792478464018687031062317536958462684267835548235784680255362906617042107142887885051443900533397745232102261933445479183218721252872888818272567793075630660349772325871430643936859126597945189782394963497867493488479424906541374566083963323150083968321068700270363508105745401552943039410221121700282278317173057991286134485723016892661804636877374826934165243752373966914385007419061323905682657913560438226178660857183312820509155598235901136062723277573288767389448222785150493506264400848902273585939015577887069684335318241264531933213432768369962297272801995295439493671750482434778861775423605286196127620787503125757587293609171733874575795679980495817641797501261476962461299090436935026513898153252735716027127759895446395536313545199560664369905625251714210588974099170959509675996028312903719093968774577526629288881973725272217543340285422503187784739237716813005102508131791329455145010660306168372247860013628269167478833126174302555593080906922499792593283078956785209925422324347815444951551289557412071894747751521060116962483794032986697962855304933797807037402302837180592267004012253085780868645818190197869194612195036066368805726510332695546925230926731031322348563253647505150943453913347421295715952018101862381164911575220282770519156929824670937419865410894795382804140765387606493767795367340842888284021633786774013860834751353740600863612653242860489217143115998614605789311948689612006176722460526784178260098436094359845474255615478249836875750485395509812454579408389707590638277081849500591686108988143295461309558044764207359361832000529938165664895867789472624301389165524244559620002825883023811572869896855075006474646241022616038564554857325512305840186865578248869201404371328422662901227098817486279261672421047088427092778670069254475851933842570266242656037696798874129986797039265988547988224877106236697647971109314606568902305674391092166135418465879884077270802358755458266001570169230656737092392350024723039269752072802204095308184870463779833663274416862331770033313961953862240615159988575789669655400084693445930243797596022462605841927729154944131887424911274840283612030985994826968119060244097451571796372616799068850954144250196159448667651025180239234577985366542765411436544481568287141699115002117843022212327732310264792232401162207051380132580931603398871142041828166386778884301693534308778896484855392108834494051595830297414624892176022615775816867739360779752110939865852318543207527967881941930899476387590864944148968405378912434517584678814573519847554227636543717880489856186366408109998986214311248802953180881078403610291005231094628591001139870305791975888423559523675964425085288951679758339163938777917366899133949686879854498475364621667793821051121575334886611870539250796327716769870772426420400827646784694182753425449311977697236961196752428707445624056006023799055771125749620042204093280304579856653475351642477761370897409699447363722787792441477086322766790022540752871803124442529868889307063643752328104792724900637400502524571013297344025870951661976767829490521082083454964933946867004920468445795030960065605335569872338442518930998890759424316642497875881351863885795984599341054544331890733331896088332839595771042912290708576163288263303578764745331223541402741073288662732627779904186239103684393276900524433140554514603459033701118353758598568849925007036397853720199632719688827387650659347047455350908472771380559449490329414370277502538725994287242558498842056370894249584191684037280115422770796471538561393876649273594842699399835356421192688043009404712338151866207281332943303193318049790456900560194092165316097849952056713570487507464035895856094097275722583624242738815659023527244506492857044149224972192160722650636036194318724360358273088648530489884218087082022085423904576893149807425825741463466537749194878417132100933793803856829613666881477942304386639686514818406892312043218076073164444044858641888879465383582896796834462148894112027778017113939587461056739072471320270504181801689414873324608595811846499990239794886249854869349792611671220765718631213047145885188096289349346803070159291020568522502217012657431264339548949068770431836780671855555758660307104013371840984423786520433371333483262393962117443825393173629392967472168271042399059026748170970288545234706070246400977836171083411134485635279926702840611292661261009134023219066236539190520344992834161045218215743184079210434019918090466773603756797828487585876448831827261864727542189471615998864331455516587605185596826024741783711623961197289661428398890459163025009604934369061401687279808174395761050050291094775795212588448125301352231635923701128688974500001839934723955517898916964509629872967993921803286350738047680827577494970038350733468027025679952469488232769967469894566044745638129372504275732752988769573627301523285723720866036778687642395793772300942957739595245990958182189539696252011167467389388059975114375316611523852013218638720049141853655343088038269467222929061185740614273639499194691921873570431689489165327102232860576667994414052573862839394941626869676572442179204116051045280512467336428857605814976570748548382625445372956400316385918514677732942625068482432661682326852084007258539828520323641233630647918511477504433783266817995740948405695152198380468990276652163308671244164530793328165419377763763482078936218720967299896275473064015676787980789635004581427448184780481766977103178008511135572675418722974045953335954334991380536710632784278397356961396354494284857591045252506917298015145899993679335283848642961239191883220462194363766068752398561851917132071058301449144561614346668974751441549962902350617914699214436693897594634295661932076249479538956198794257093341437419752697566612955385772751114704787496968223602736462140801962254892351201354784590160162006126063944829202659299210225916492204490297028129091217727797066479283486942261097039322790433503655460699189532041919137921538884548658585680151248649341312359788884610605563184425603041230391909330100137646660700993681553667597000800605677159105885859366012907517271802220450598840283911920457960720613956724303131985557143863883840625066745172730869112326424200213307510548805734730943145939484831523041486117743088091976690849366309521689914552615142403590344359267558831075041645529340879277077593403061629930760543108009398178044246592506994320979435073900814783599556230136035881559505210003083010794781011381000472310226720348605346222369856845762349373698941130811549160281459150923071366403505176495118551227921949987780394031974406482346176104633190862217618700195423305645615551740202692789364889445989712365820710852280741155800273432338961218938657646810728533249715771847782278363704549149583625033170480391760512920224560421992644602749962108061567044690679844690046366717162772707797614695434056093385261365301495042684594717841009617069712924176400103733498835703558294031341989357987755641744901352773575461575763688167675796998537622264646285286664943017660916917945997567397301052185984430315687323998222467384862453457121339755443063006404084439424020496072137403759305680421887458700883476689109566519993573674841453274934449042319250982224231764479714532873554859754226248599176793486320949117896755722982219257601525588778641736040042908598780859390988886504608422586231269768706477643648175043098627892374718200133381872187901897477428925869626962867025306804711798064150609948342768565304499437100966497797386554517727958291032057017037966227471465139117640646222840218282091281751491815588036236762094445762703087471041997495660239330791585753583246262093720244428081635444130078616158241120131016502367618457760081497624125547470164085626812707686955923058166183255983508815202177482249483044648907369901615270482506449421981371552366232609917002205093476385939962711002975805012471937605926665279261773461402017268256676288790478069307928273985498630443424488631851619091794097395138716202351318307870907452218810267399176375251278683615839816741048894151647802565934314450915728214122487351524946012168743133249151949599461799365221525054815343799646146056853536570967233642559101746986238971540493077608097052048680822063740763443650500172843403192110433476649951996285473641817092310750528877877807514042028255160145027806802580719290235864389900244804838965780548703002122874487452519808304612870663526674422150628863389600615273375473715791744785500588154531834288721157233756792161705923047875607491412345148711586815698789294987417828562853392655891159897874743773748176742731421987964461129707964512022090415535541368522000268563814895228032640376690919404959295267038126363020276055065864799574111412758265561703780447886966177660212314096266531927214705002867952204592576281834265378818024652583853534796303018225551119760633463598318558862374196737032466433133524286629639474547717646870907521001032675005037423178544198796867925275215319438725718671559158347654308302972348768491247582989259972679027607429001103168068255639423417437683292826452288316531315047716433870893099164455655944077693240162366336820266115985063721191542715764063237954207922669047317380255805884625738750096148992200904274936401766300428860826332777607770356743082490050412454040095259878905660004267281764758370338461030427864213725895559151608824231048376465235626665809344877129244192359190655842287484762994768095621662993039665433458119325316970298677429131194359150209000321177254883851306900372966952736885067000615029603043351936477631422579108474020887210557654988387416714351319783917705674340918846672897191616016983984940503543856599871910152954332937915492203521034233702543550453049706079439219149089754321923071693239054945627541665194942582372472783282148494712267135497258006298840048065332025754410358826020265864889398164407953161135085567627791816061298877611221619002058194995855705203193448091969882660117038474364671248481346145273348868913676390364280155502296629123244748339104345231121358392853142129331057209398142551563183203399517749977810533582661270248589058416127093109627006287197980185806982129895853912393789267465694759510124079925237595417632226386537699476295545686175183783182543787257097463779043985136843401214349059909280506871491498321606429841826018356175610409089818081939281213799992307447038170769664626342078759549889147585202613659044061099560707643953543015134255754065923792953416583183962576656081773903450715716818874888419366609897318318355089339123509976452889942179208475846884034875179504257236269076054252915206345987699494808644951448233432450151450849185309640307341770619393649960725141007729923651057566439435568243857676882568638806279600630226646225647684962167488913633092403582826962962647759074252350599004259208985564911157703774767813130628598172851092686813792990373214350237734293346501043709943849875826087471016662493846348909433578365429171465378852486098527436411315504895448458740971344637468692680678520377894746493088430099276940533428088971920513503101972906285837738891425393691653451532022925042592758361749744835724765039530322606383832619310922340656652537920851978452057220131252387892290295344514816371487010931056349713301836581045790554312895726841412544785485076905778632186707781705512653024504451650972259877279872690748220170096079727151523068876210812237915158734773590948140776691136409572332185019567635673447162223563408226693572218022493352026377717878743066903904099270845767606713112199281289827147403180552557507871489797472680255342233902634599033868802092840620370018396310962722760470839585997257774347687697349330578268225847542010616757891581335554286863149174701273613436174333811725752426941859884204912342181691235759400813999007417428575370978927128077830247899672976139775772827754340697219957987394163839428909371932729383015265397182075464362309423381345568196239821669477208928235877692678691928383539296596321025754290777780228913344262201790224751537448359476673812343344908347129422296983839719765113564852213141501901686013070934124038286371703359333397997817947625547819612306574606181369460634984438336594744997595836884687571723862990321023678571354801081536687652761778134071701017387863010465213079199607603251698773948465992480557725499763127930095753102676030202048814674622971046869565627048087846958812184338203712551170216921709832719736667601506950401008658957354951972572053135922006827127867646249189390978121715010044383380556038611337993115156665413038683376899394166175109074408224862228137064595224172243262589191611830259005713570274337952450361139846888701009355345603293786038806274140307209780184472400459904532425592897572818095944733824661782540229196232747854326249074439399318347309713093943440678869886890305912490970566143685851039240052723137052022666596566984765787686774944472526768750075637163029779777983728190971293194644935485056105540471279762513525379516877328101298271609632233075791404019291931694908381716359533162804175180892426289534060215430624284131577637314580925239181506448262604297760309737060405438620987691976755107869660820310486548801860676590967810325451782694661233051083399371960730123600961369514375292295986851056859846671617729501162480129403308288742065689226933153769691512558823447842712262626921462785095518664238940107747151227323637621874435259130007775823232457312281907369259980363940822658339428675640906040349497691171940780070335723846988589833799454959388089267761064293346213456161181797462993386883508862278200928738496295604635141023193577848187809488347978524951621955459939422967113922363970766848560156319948972582753373462018612112910679670482138730988452751970612479063370167177062407109745123751926191119022580903212709517021805860721564789370999925492856158789482314680939487080502871182904022511474636504671829149684787574805093965606295894972055971971713654647739017268740369578948193840346686537326195202343735450929471073019864704515858961585590930461574986452795126545615030651315747448866920008928014917407473648724234794711953634508078365248150206094001039806850555335044673351768437354120272005218292229500820446917524346279826312319368930503215902963077971497443707948362362005708140338119813151179096768440419816152578473594261805313936049185067087531900963106430131358802270734252522836867773509731066550166918664140706685501467217386534517267316902824362839732041298639914417934231937354480621567763487528556918663823800428024563091210780406834205208992833656779103105162068387294869983663101805713629995904444357458940136206953005076861659465646613700890566504661443307221781956585293700995637612658186622944489439506109220660361590321111776110410640634788070244054205811493776224796770914021950190100588709997672060030563680414641870347791299344411748538079609388489101270874888571196055483015763906676141875690929027088487939279926229839051024222841759858573911367063652676228273513645492746638762317143893900806374259829201031461211857183285506525036996025939909414161193426112161745504705933957518077706223421143972710690210727673233143563849143959302561170317141067065199210153135921140919834837376486958884201603393586590150066351423148510610801819853485302985814242533057203193488380108239931801057205128823568204973697757111659310489518203728079897026369269549716511617014922974070218341119617410527896274834514979284357502829258591269199236166604174282089300077380514624798283197437591308495514636023714337203389964160304542005486762691944767605422725574933308756499209115046017080771320196144997784930747974110908652253651372869043489395585783419350099801772480481374457031163622509540731392199897442547297383853093267527346353624882610563583637719170819073741205748376216480602100657282790911779470320316905555691612400485451299666435412400106234192339337144951789552240282394803759757752995886726149571925931113708551227610598576801356500188241375854992895042876802717350873609565118828735420475817711778250227481888448636048458984999665279409871522429490346359059540458784916258594529636886702633778525754544768008137851712815847035343890271893024979757450104979949479111168123315390243807874302449984023789532905951596699431709603961232026234820733969376060326984340037013230529493884463944830025300928496364122300335705587480316607325638677851604291407496864485192893750344134046858971543622271265721850419907503506334775563302819888553123023862813209511823866565508739898278714810649598971460744087979978373748414690451988889370286373396714180971873172947593955561531767369942152103742679250607668806923218556446284172391392337280543991653638537270719580983421115571117189162494519212240458281925116939701100021115613885882157349628765980888046666843397230651981714320106814589050470507879155547540334533845463253547936643789876497251686344434852506829897723481360155023307623453941028392077015923734196147415108368533585863567817422563776585579119792546814926375226393739010303334425136524482441130334196376042979445636871612711143875776445189223661076995624216971210489484855044897277712312798864234359333098983177035113836629393247527644299418549989318535971591848720360265506186482071121355441203133754047815561181325033563649074239462700424500478272055127274677106726365737777436450925689217114404973263808511115650099492541661678317013390809417818272055645183940015269851496859909245474407922489971663120148601153520094635302695159263665113202209332825046451553186890923893069532395682501322066914346271587665234130264396709042189525481113879764057564502471448631884286123553653763071935815324738461685520247547174828422823022608080387318760024660964775071003834041181857754122591885637119133702906767799815195573176447901792334194980061754288659900036808585525240500246058634485982129027798693699629477314770643149732805624780347199941674907132505523089306480549794508602921822390229204226580069177543561457408422726209532464332990444773809856339222734859582449984824763836701332576559951103661429494219173695538984953721178456582399955135354547936337324086593292876500946658293615336804608844793265676901359786044842302315993410588253981092019355895874491986149475225521026531312472526745269642199855141363669975979905760071987784032031972939565202737107934636954603940242776429073518600731758194299228750049864032269790010137804050145479866718513875178091200504212798822080484622612722363992132485670522565773435143278402446522715769308429889940447665800243143162188586591749700342691388317271882929845775916509557750229863737384959681811131115120971349797881912444263529131177065625294964095733639531437714772276580481477438684331740694954566420088271574533487513505788441136323529229331173088861435755223392441181461962229290166260321287564502468631684299752666853992554713353759363378199810366881351130447017950535892605519467933515946904788212862858688269526361886336684930366501682744265002026016777054848951790457399143576293936888937703565047331895693065751828518666631735610564689173255099899669983487317258686711913913561266237950624788430906456029137035134501471313073216754756454929593562384444710952194188476386034175297953492748871983391819109130644255868826477613938812516825227536321103587237556874245380668499040850104111834713755498918022008377262197614345122453661229721052110613091915851246453101051259016873810893581906473038621337404314785488499522191123883942288288401723768364678625311130168002436371913402757274124709580738266915659818431584564958170421104112786066575148870272554155302683242210557907753585738597385815302573211610854416611706050898469625763465295867475192524427616982615228757167890710331667320925730437745669572428390319284734735573150065789318717829432611799857990026792713714102316804328068519389383818298849173388125120453967964618964929997929004155449240220585473868260682458759636671858160681545768116219463772588932703475337349302185754312904186581246252918517046662833800302875526704509632389911549671842233830433611345092325946739991033603686279386047212880658185403907227689756104359808846588987628737527171286132388322731993056100236210747693241409483449114264175908695229571724104153357527933106513378752271752584819834473501942412020962544695373175882502723909696538462883128712473016052326120124382810601876532047264433868627244003782943275299615430597052104392833103300883606226138155480590753398964325176617743330621423965086035177889769395405496318494083933417559017695768921139173619047508961494031285621438298413384743990030305939908494000742956611435376326018463999771948320915513439254427660320703633018341050112231609983613540919238505793112491149689825790530170389591926395586783349219041650835984793241926879104583038647664281223629762097074270951290777747786003946388940058972153562281084012165024515954866254540367316582780012110218752343264371733885291680094947351183544775909279165819537516549228264807800642684667986517019108134662109902828315985836982618363465207943837641328883320770036540627413918401985652861941808027949898392141850828413166575485618911698574462357350029513934892591677225556793959375067423741392569718397226029987837924680314870875765337650497173898585562230291868702441514090400314794916183361087844099265348313053070230810624324194228535433831918600148978780446846358329593731100626524610125782889328370519032349243313362575723007274058295704718054523890124003123666209351699610613002588551437973526812183729131543363737406620280865234708776801657040045593960998054362827470439372129470915749398169397949827863944305412019920378848134704313662275285143218092937828427877547889646151204667011169503383144712775783702465190755922044471819312739075680833920711395430957172048117350779449672946877795864904495212312409443171082398988294404357529020053238938387856441780073318350627315552668338645979193584269785483304025948136564106790695269924603313772024485015835368785210980836066487886583846246319562504798656026066310161689764364202360574236698439313742291489119246852513079817494406674131344691716887857510654439446675459186018892245735697564343949323249417781600416449058017912690235358748953903636893671952694165558700889596929893142287462814942346634634373104387121889096603079500905492053646651921620321020638516409147293915540399587295798758314961462061670887289002587194860267278796023184533703269855477535079027935227245880636134087525439566961499701235969160782216517946906397626555192696513225848763829995763816114251291022179901063672760681670307375310193335205280293043389592282799847766084688724136652516248095675098158251779435806516546499195384185703882878900816472510089367961945699222037092298066513275283228831630552658398381440630351738718288744523945520864558186494245777054218505560583903323540596386907907081377249605376747628337853056418106254741714337729113889290628031541294938195406828197871786632358833434051768897606222185857742218416732921133299487894070718014862934309210369648144496714071592565557072428306907685073258940380395862661277819720232442596337957125292010554787458892355962597192048987959952837332496685252917138662428574828809452698317740703474915425582553810394689930363003779061443200782608151307675599607982970382033767022868018101298055668171958408702942499906448543332068703536289401763927732403476084127973441194709239034985819802910852577387622089130419363018675558440531445883549275442157237355433031706683863655099903338682910775528876553869410534037454457951938169932907186623717808231806676388650733761233237464239960805115449001328071172093972693774501872709043555947581564965652001996857323677089701225618700863931656454245721775889098438670786512572562084166836614094789616670486981183326940620332431416170258842525601142035045681735769330519558061239670466744909154485405842656472989335639208105805860865239926807745383066430500159749984755099306747577542986024993762763631803617838434497857615643296718113747061009762328454770467011905581603069364150780900503253410115842803517667582424061737029607039571234797469816153836936896417506690955313327709769890266301124161416811876047833594911224300192360483382491808462663733469649938360314825520753771214636150868020197990442392535322836019082792370259978511792937897048235440525982831436385334733133575225904508957046642670135590577974332827565144949108896925404514522995777693476610073612469088653321808705297594343881822536216747453175163880609900145420109732820098120901644562397485822487706054071989408149882350246094261967237207411274058917046859612983255505260508699063158319768533097182639202050253004303294506878257554141414142518625922378475835362791692572877764198712696245058793326939351853282706873419369953738147772069226856698333061704243852895899958619402002856275089461388296595511077457933617748363499180198955775438053730462835893794839934581974229627699882166065144223375935539188685881286390784693646608680045291013590083156016348744931317670597695592509573829423142423339251013929357578139403862025711200552696301908459149582742482051898312977886373899468462641844985951568264053832301525997702211786381228392597336643303662628043837464745648094000600194490702370654680808637415793851362946555596568939440286989775642998479132377912987284416942378783206318070297644352089655377878621924578672649359100252780522945175533361549420729812248056841407068422001166442227204884575183075221875809946209623200164705553358663993304963402665058674775156346258886344305340945106049539385149324802265654916448157136653127019896383918346163327023078123125705195645803155848863817483437961172195218624340308952833169667625239816281249431842515140901807847682964989463850452431125399003780924316944091839133414350417182025576619906024376250875478598397866195471868449285145932148093471714535018849493696995732541749234226424494858309294129217074973110197110962321770577904687241060757834444325803115951389155291270251016777713684428219225907578979306524193114775220788490046419356421561632282574797230183510420597107866532586094923499189127336431381228600382981689367582915446403753833190377105086630311910757610890530620195061331915965124181864351444723227548027190383125749848158008892384421945052149592774777952842043487364728229508868779435586739553517009883070598492345878348361786374517037868108137006821057929581637622598691468024891165814037086018579073459741450495967226954037330857339514159716132079036098251037451962063954909270795099399646960158456588629647049442929118407880388738829938546873041582905607088893672302691939913341427434699871814275436823506351801518571629187183924226906778328035064187758182337123104163520058261696982779784315368859753165451147734018238578207160849075900166567321931053705622598108313784986791054600410592342622604565803968203416528902705158910661371328994166377534253804681268527109329319513255218563755930729958632464522676407010269353558826109063378212579211155572526037359730334256853865890886560774316318811072638671401898108378016406105339589139480925188279635929726773548301386811705685244325118578481787021985159107979456487761097831679806344454012397594819574121126424481285878375516553548040914201650232899087712947248389973945626191132207131640938950870635357920376593231953587943823899111944202831520804736185850425417312570093859132195735281132464806926097193313612535948097180311302202970654558776410502123957998040402035285235527463665793262486342860425805566624628755642392167577184189024629589258830451682974422534004370863757980806299564827244455054954702842457005117005370615424370939544589718560961963779839805159723794812977579315964463599944444039062952504089361764065537952447941307162461703630405364915249408991723700030628141901679909198464353466810685409542024449976347002644379227732345541719000931966968585886340050934662558067958218591972570715035917161575725376414329208631758630315655624172017651426618501712675693790154217170927952719949992886792265870713421141548019104679922386470738769488380487445352522927215295880558129555938982172167941787827805389191267620385498262482807010415325129593780865723374447387808036465859813824718223403276094084309952018817788392351072423149772406616637065252861952945673742872883561613080437713478068557114936799490848977238583879456377691575620984887617119524070363816740374858635498532922911019670561549222742875297453937207318165805335541774536230278360450088821830107000019998674915565543200042788650068561043613632070225921723469697034131723102699961551812234477032339523030177441957076992707520529539361239383327864715820213535577215269884979191239711337771013559395712892319574040416053468628025619510519655492773106089964126270419526827018224033269851213101962462143741664712194586109226897433389192467936323117503347953711213077946840833747687870366684861041353425618549087466258755627483122531760946992758933339114663194496437867165174397406005095087051172944920373599172915210752259469986077627855832383680568278344798143415463799953478743678193368400774446330199570906487044628634091101708533834075319505677026301796844388310143725102307656033314546913127176789790523936127344127968595996534303557671850750901226122978868941492669453909747896904629542910603762141421952678804670660372610627942799861725014274936431472552805336047141557349018254969422857422131513895371097110513345601277822465829873739298811644996567106399957866137709672613607735738311763310578628921321477690804043837348436009299105673361256121550164898559918472116596494639279314202401061605560377178336536775900985808542881015757144105886940844074215104133176586591774196448198202464018233095618908456822241305908802040881211545092799767400058041589901872387521439257665053963405481418769391410524211857139122679502660452064167576679924577406261520933496911191417862594075283965437470980865799242455777222004715240258046816333208428906054063218420327729117077570714628440097522172217922265111128324635481777762097665920163643822282457017027726854358584169746360244060928140097835353384164352859759496883694512199939138275622945352234965246112173672830611671750437367123673977847048856418483568500276268256526422944948165875227020898620092606301397159053290124394754919773910840141066524935409903719276911801135857033423392644279397341482649874046368309815296993137452740283504244830925197593938856482444306793291560831349036032951657057552834853643371170059962703589281650049263617913543538236166851475520349519360172773324564102215772564955797773761778058015670201190418967972968978253483200570151971422303203220863858035932492754777983478160723795729889556112208746529320478812410597291265122076763237182764122148131749041601950384586000597157066238366854078420391257385500619126808461731618392561831114044779914509041786722410923452444621638041030504875239195088174661926725486971735584839174459290528360600377058209859341962220159106032418115969107275815260473088511401213592746227566779665081843160536928306629105442644291869633164535259226293695752272312501793353095531985997900071107207725522252392207117011990053125485874279685968409370493590582222414436127686445877161755368061419150623348050079702236298718171079594819325578194950952166751874371510972935891187029049832553709744728915566828784311912323325235661028756757062607977288136437944857906012491190558482481218197252263101648790832012522162755778440217479176812023084561213644106008325698761461576691485113788325060529381161422282677674917157820615038195652438764310087712946746286293917990562187020675248206175120844651481092558172477822521317122369208975448676342875963832516256184660541946656246786498680223200001544064235972245095802399178631982870228229298833291029128335236365035434267629055136885934241326353945055167921723520520502980134933892171636396927174396036629523870165273752178512393780525700617931600414400489227813116819907193923172812715595448221649503541456220823929184560696052168122595549898402094193473755283262453785569089828327654134189606104520417742377146021533041298818877780303839219214808834375086479140833260386937131551831812467217515071504056060967683134968353846054680403660811313338118762491463850353941461370346958535544009618905397375936830631452912732805935542586188261891721912766882182938859104436332501518475495190173237191464298962971982523452493068394349859902064196382015322407864096068293285905468776360160468080317819185526479158233578407154189226402306086422849462367964187663535156915323465964757342257398912731213435294844139098073587844790854711859229028236512613812202285734428320027672123439806187233515102467640499627088550389095461817397605005172266422541634475475150770858817280142993145774504399856656483519343733732390012059939869066877329089800340642985808384092609500596764923541137910227151706956046596949867868824552365475336515707007628558533708933199869265368681547151923951676938993228501387794478831132740569270768202636430932511915239333135768541954022409469325251469455125954822294114965996827155668346622892413779837500273846531769115430079166062490050501386062211514354962606108198385677081022817118358486817373179343406287130803132844975830390010042805961201043934866361898809791551938968872422175716978985864443033526022635726851640949035503460400858488737296304413295954886037698013056139700226012746568807992886520815462951324526132317868201533173456738780403382535227989000572715549978818982817629270582510527361840657853170500199275851884257978663084676647278096536161561751116928819537422032459915513082505043291965930403863324916194710609441145955987501340285465193458124258104812005237334039139688791282788656187968389268454196864475066246358075409881611926977712478131843957812732956733942310220213783937660769321427984213938681269004130511560566016231582393764840259593135393851568174109112417565248109760481717863682347444155009010962211164130037543826264426282126919642576000844810673632985541502467123324456851259326186338740821914486027113228849974500661738613851084660771025628766798250354835258292678390549212583452607540054406788050442576229729045777966295926399448358596777264995022869414509778461891610302357633081164853191513304464382230943967556642064873213818382721148603751495860505897004514216363732762214994795754298187899647605853655463726078874059833681135039566527401247936522912653775702179124994298617000648236647995594429611863730042681146070145326612094886343709976544119176044988994498310724799237661192719643617222924967807758797181327868039891843939969668504192393720342406686930320131101477719562238965834047699336626860401009667462921748193912158358052572041125864166913770701604366266193366638146231787649630318214141589046796800192008447827762353856896508227375445720191494598073050743094494953802719969808648555930821751310690251079759531720614577260146674493101411766399983953627441777383635503380922630832651922763762287859600103108041784231557027114713153209991309747399867147958082630218938218461583586796570027044826505629005053659591882537889265021521114394849692270136914743947392477293925648529316006524499610556161412004859329133580195819629281445367021192298307521466111083475832308357598904727996353530810028369684888020462936263243999850527800380721222018893431322273443847612130164704369158295865856656436828391476126448531778248917835439775926110871757679180121903422042744403536503049704841826100036981796646299828106883127783384209066345318513571428370249070020529405565064784391333416102176066452517425886003716043183936246224861628844316032543263980731332671162987754340350138431714005068476684551978172132824681515231505902779127274842395393339895346900053961249359457492983644545436948705333887512828560937963959089532877190356428078315255884010977279740568681448595503080328501919588653973004860973823781767700581832789364815058110160152411020608805796517229001728210864367049076304928547100878022566648556158755477831135816529080519181038345485049859870363134232088561202176996579329964496101252847335341250642628319180038364252128112049067897066958377232700426951995961986527040936906041466876932384909425889731084761187778844657791179175180030149411154672173567184296328613873012642210187647890674596538671628866978234278454024651516521061596916929543906228428367869061916537090666212747587027879788923463725668472358590509767725323074556140628259016654391242758088960946609712371127931666061478287607826805966246636006336378162301900733230010904028178806469182062814762263169694135040713151904076378171194100543279520679001155153774072187977346577201598137557435502499325509619074750885714881547789152538386016169065018823626702118356471706966295133516521637939206719171113384363250738404731750830539485912653579833512954462653699296882803596904812872333617450551585680376055443405816003665187436013438053228691297800129280519336732554569153817614822532338551641664865102694758885761095883622687932410487766107376380622245004173239092165909365978238631790777918202729086939133937551436830645420747897502576930618763720637239788018535267466868724648763102241290680108212615310780966422722301057878331373617777096313222688483241215520867201519536198549859112233466770620512191997041779961601018090355325090564391667748648613786897298189210836515553306263786203361005828411548569342397232258835300022366999114100468048270591627465190039255744823613766200384825551199512404734354403544037094842637807189821958656116608634571092113910803323923380018439862198457732704179975024395152248399652809436875883128246659714794004587506523995726965234261475431378717628830315948008953694378255410742649611081991923101261952698468343325289231875031618489658193338374137449742805469883590344881410577904524677178558575074370567997937436787718281970879841559167192812892855465099513084289539406225768824784207507263250528245011650405476102350241502701833762951282925429342869986412564199964114169474265821731013036022876917464929285565715254730000466889913540945360001929721148343322061796970004105187697168357505755595717348434987682701759421432273106552773184267954519138413152061662245813682277004810324691782856345777034361257928668935721332137230953097203343929979892818112375834598314397865250000981919155690722905974821786362152855349568744266732935913036185253529674841139981758076680499370924051345197447963501508660047293893288729600781378585917514820423037106760372183017712939224524899440105180564654312035458436922564357146087770886586579550396559184219911406573071261116837202520717420256247045649052010627495060926275591997766973817244022035642881808694029235275564919344627353614511776572926341641282947768732909642245113644808351737638405414073593936651924810991338764921924856731782215836299349364721911258326361356149171373338139541735059598124464619791382977496937690315695435253775683106692646325398885001227777104109176769947704335949609609794926710786839388359863968142211028224326802270854136248992071406315182952308813608739800271522903865458999243753352724596530303603005821104914728271266416516605684160273155270093496429099820952067829205280096882646916263446389791873695665595879537080854131152639117771964852658024847717057610895953869147231119236788835064356168407500139175988206618823107536147105774832345455061849234981192078993567733806082336674480942219528067426432623078041369560239197391410563599593959640311284983833413990446980573488302656600581327693498544764537676409552940071153516968117142265023309900653683724588217102448014787715952953156528828927105932085123383250828371061652983690284691070303324198382926389251169548352627992112130284369720150798790319656479697624315738297555150673717727970535029317432222762519368961319845579885802725729283864711671854701702975513709670864116576024522626840575222505573770613842864986753837202866280700929609298141388203224000033961000489411856116821315982589004229154166581697224363273221773022607350852298225068187075295640729521220647069110782731023622332105282116000875658266713559204068577938190163902315482588422960257479537420845098512724782136699524550353780169628150553660621713750342932714234759011663441208031166982904273063525074437187959449216962874160295867956320235180524817492099580320808522344911325718144727790956103853515600421200194747677116667903929133182525162419108241557542017599779761267940892144181710705227325406691548627189763605351124123158822673132718995490796129320842291237472929995920936203283156514356539234550834098057564871775056182853365557152002803441170211793833193120346316801492243276985988352705746340567712550257256956708813187672547659533272003568587954843976381313153473794921739384770069566692851720847996279203479773253061491470846914280164704192812404943374620503130253283783254840307884162809667742259845486852477292163358797232674816044105350484076027890074812785716144258167418134511529062288258908248290760820969077069233506829831177707262677085844949559153189317814520990191000878040922337154803583964149902536051789600161888992359361474617518217742589452329837174491172516558177074324934343994796202152689822886139157688944982091290358274303868695140863839792301571835546793970638084497326974688814338798616522535187254066714478630201968527107992368642427749577102880860447206191340745866967392211816121494654347333805751805296786937998489025995363034062873397812860343735791003168379389536043730274417836144747879419835787533798445521373894262971293488893715838555243279099427185957453094362750674030200470974167182230196931595702814766929128350020315695605676897755525369755247508529768676226505935252335418226024584558203765201514640666223580316843800712000237859388554163999497448764964275333972485860587011846691921592279158551828164548699165365347770179773478954172013516272594402860619699165862312195051346466056951149049248879910122127749692022992115933467945612302443317941493561425193444177139706682134957154545864400832615553121675837659494327382720815509356873097499143684904308031392920091744605392227227317234008638066087719376843967955339661646313840546631448325035737738311565353003345780616423309028129769338863148216886073551763225695248455154316897375476725964893765259602662412363623423068514369500175059410549391236411942648523178581774088587348167800325416920891302018981306745468190335538552177693071190151454098019734120656634291998427697943443820700530506921375872514402547819897597891904011003037880630880417344575765053120060224625822294121893737921575274872110811891947148402681906839304431733957766603687916505447403342076685501382446459395294609839639881010673724790361350259635416116862866111450753215651684748996813351461589888848019622914211959640958110214468052356877117335099312420727605469698952730834543988296281953409588707018951599786382861744356604604487444880104100711978082181105644719760827245796184274963445657149308697092200247717738687474816017803037923052428274303121765256024396496982964262129407062303260095651739559098282299654346485182601668523649509461920235681149602438907042402060953049918219085740824487296387906335151397957295792483911971731966028740050819177984403885778453675193363050867788795979798525205919416494903425327610648845634666595513496903493047668117426695057576431633197531379890045308206837972425072723155295749766623481892386852697538628698062144433272088312294458376655126360526288709231860943695381392705989779591773086833595668194806331459914116040256193869941222423032976417199821970388013045878464170855147567220438526873445841771091212870353799249676439464395750807941859584848351212257952740579637700305487712829995204655109243850973389392625788199534194680436951517185977466996541330593077312432479176208033753938235194246387281261860652485852215020833651929741509376728719380644364265482928342367720809492780405709000017060350192319660860183292657595671413762808137321198146369450488437722398019397540627802373347758353884643033623971944062925361922891915057531710869936612778925727657101847895678539464168030541030179979726905609323902977608070040651661017981321799725983176473835265990131612538992380866640243325242017246585221215535715157968964627259232073754756994077914201611361351593283654138856266841088984849876858926845542177429293084594180038844843566563940391734814687432885910708540829002780655443246058089907418547382809725654232829460484759617203082444744683039754611606157336731511394370251012060827358580008691229256924130239746302835584625004165721042739917064641891059734548860383498179798688996293306711857433355948432983677007023210668952385563896206503678378353024360316828929253025794542251517937972607374898202444084650903876331875350089059229936711074362938707199547457373122465891536875579390259935775392268976637819854194796508037445963427097031630033719572159258620631127806337106959067873315525795587199197743768658082292086287523817937066487528171878768118331619131646927275717255227077322937879481607612262728456337015804558487111907670052392553312451073871755973613079564180642783335197773532209161257151770661044621324180972448696680560771987442680045755054461543575505163360793200564285689114580690274691925695529556106744284409855425451174299232808142965831449500988232336819118722463533301605335301071991587368771998670147310346780256754834009611111398623236562851944485317946156624082207820767587831836204409501517246790915185910681089439223899457382211235862488910544055965848234728727312938799167799561462379986385048916635507717226017178234140609364227040030850200288158784404717410973580719937134428714965857206614752487238993736221043470929640968887252603338098615052429702355670585895287430629696352411011930764926741280414023037390373962934377937508500117340633145288896319709608081088645928437552190839107372517632055290072397156588769786260313526183098275886277901373791237656074751020441097211198476983174079430192719828314740491027743586184597757740998188805142534262609976800711617682026368358510959054645596048134711943835845894513943141147221280109671313900433362172187636837464546363928830168482400075620168569311263510587412977214946128930082005460618435914702649815434609621053454724958609405482005532301363563153684659625826117756685048873525582448500935662500991201095704743226905535849652287256206319606115629064347907026842912628734755330818754147278650407743031526326849145770319868242493873038551619487384666213857883308500862191297040655149714372892082019215700675426802693797605467599316587887866533126944588835645197141503516503971049041884631528791300576438393634501149037640282488752978290824612592575933400954332304858289161041736593133946596169486182300223242579838785640930097954181849566764422223817995110127052584990470277355710411968791437465893321312446246965329150177859746100166902532674548830999878016267339305236395558922772754761136003110325446924788445214471533094515952217014304573389840143821034110677923127551053367114765216041147212778649833725352304420039611089521855609516840189363380347424026676442066438641614558579376931065148952214949719453422806702900652586778689075385464528465021613137300126213819864983965340086689351918815664768291575866181678685179398883793213982555939391277866986418787703095869489745363041607071687863657648722749477921782090370557329127632627297336274534311540907471122305959967630234747474948749734805328851004989239053830297055187848157367404075771609556883817547041921245790153275033644836570842889685935042088204117782477176543899258306141110727924142025809844019341842472445768128679609939521932298472655269119730502784215821735394058038225593963194951360895526979767623722208203969700159730883680593101631682093065639365902332780078272289154575087501990067633905548305791898915073329244470243186188268961522921681330151324687922992110166230208430455469879802813031736088214024854936396253042613781875742850688828912598727542856835817946308725642446599663922899301828653845558058244024697378879724410230797279859724381897864363607435145727830061515441544596414356180314779139298665541119126994275186985653535619939131675501575353606941222490055098797185456997012936041022751186506416493805554928138649438195772861564805614402003283676489310282090548631671325528457135402560541667856530256468852385989305261214486223850428318539048921302106787818540983454090907449755215922585382925354675822468923714464994647728985547943969286144097851971211898530663022889880176166271844501007878963457483457477912593973838387635372920786900510336074517277788665422047403134587527774127770279530396658343674169768905137322069903647598775828758949446597095561849960088531002496504863978698045381035275608039587601564052263578841249408408273610011197634862280297291350625287624671314397955366707817950856634891860055928893113148620937960207842421110113130806779220790596892551306273723107506243010933542254105709326152083700520972283416599769926772341438906381564781664919228463293227724192996631563307465269379698788142024910027893463706807639385171324814886680659263278398011214906709554100778299929827244406975161862830761263548449869550606837924688059484697522359393230132985751366276555362495699880175505782130245751059470586698810058320885329477800915523605804201197723228006198694453303259805230656636627694296838340187696603134354801490041940042694363057710825857660634935016168414908377843681295927870149528298261384274960845882836692693273286001018338893202097322376688498188215888351652784916971248881910555819808852864122363502907919117724198397170066952940227047602240880814204752779356234594586455117855234055298964666041187654299265844995682617973706008248537920622032638869143473256323140417391090765379599813976020249014411939953905364909042581323647144332670166416172191484773201869319831933944869001901438914135917923458173889852488121987944245960889824949506119039489106469810505195468181031143388238135927131962289503922238494497914188807369711697638610147875143745202754990726556658408975156043012475874361453686399170904085849090416679268488389963844777332749831362822490329851743846750172155612225256732326952375532709268594936847334331374113163456786378522875931488603410163009371846258726354472048653149841578404234170065359006390926662315980261333788483412117101656348109179764064107346411647588753113089991594935598670311098996564674620052478797703570937204115468824494718586041456254685117127497615374635063375367625273668972296328287558401508037870922567177160011909442150912566449267038574564869018840364737039952542443987410210821850288369956329965479425222808027260997662894168011320617218610061015452417849575612625945994353323963456189200018374519375726509010339625572217165174523202971200391886538560281298637684287130055164182596317134153512284763548529606240637533662196799166054131473624001785943181748006484345738822209173904127077367697448489143216150103452055391673500342729680916483804422341706335360158116851200404200053387266678401561574554891220950090760260947280314936232004130427344534629008207243667414590019970146821875568102230724229363955936743193711213176653578956210610494652642137318540203091804687165472851107076189055195519855038756125661786662372425235188909323933550535449806839973832324586020560542366024003118569499480733537216986686044319793087915298734033258057191540106489053270755833531979309073385186767056791084576671003320105071550648965857570174649704937786816809892933771538596933901561188718259614759853323931968257349218163892310765009368496420636286007944414703028436196081792509374293261552439619807801528332244366808093458224751283647894098685643277729501960519005003357386764856903461414502450067392709302155696143231822445961310827119414606774927018569875162082810788161622597625743313350016915315349939354272688186508760295436083157642997763797196712550398653672535728897357862579585407966990907896451418880623824438203913561216905968887400982135233851894343820199703477121754940170963814112936637033632999455133402421233597368418139024623783197775776456767842023239493407798320688725832746371623899159433184134879110182741529875114047246724803624605928201634360341768467947379477270691158783593185774948232951365780995772858053848197001422024575058805034909588773956777305319605276693641309203690066054504787342055358051228683343176741252514801054885202526542004609956669638521934220347770614277867610088352884045935587308904410539964786052837879699121491504329431904211209181055802643415993608910839645360279033476911127402334899061151084937084487798448154279392037078705012753238122153515090702673688310205177762364910698781373894935655740078086201388635511603427567857065990689909338305561010985901977950874223604200072727965461944530581133317035678069753433545036679188682604875445661001477821087488638668384151150925659053360338499470138769018801255127948186115240666068588794680613958270012225826740332124134885336737078188769569408597649750454551600545674539805520515052895649043753441713170588602844662460311720785816785620004575313869167685868268546733104908609934022358656861620800451934667826381363666743361224505556657214363221666657079350162264133408094690785416551586792443680320307973620359900443910694796311003684381612756272639644488609528525537724639583825500672631735839964535806105110755001645308340766699147067423427580144862771733846796958075735918737768370530265531368438648127913967307414747382031498731240928680107573356219666537672057404770142434015306941708928482831500483533783381516147044966686981702065846268263219675146887741454906353130945382700804699052166217840924677724966309627883592708796810022541620314346177158385886058722076259904070664671537861218652599623864844767874741617107542933886619783092606158628134311269754836945727320219501075612313895818628904646429579912714805485821797318146341616063810291527083447792728589727883530363259777192563029943574690766405181547228877292504169996186606104969884402200900055521161977232836991617143706920923845717466086841180450190591182093895200146455389958751712442232397873488283269529932731512743869719518096352636865869241759327805627061149686135165628652163524470564840495258920495581056323439981272097133731098282323844620984545977474159876156476453616078330987703124100119830439937446025065293562096473779619848053494267147088084814259257150707594425009590445613110043015977277148440413248685550584775495643613324185486413158333983754438139642907334611681526528571152063386965503273278854630601046681829568100161304678683304009864003222032759392828124324525186098813804745461918365949558550476030303940422745199202028623790268270003024369723408600027255752898471343337530016850872722662748842869752405698633151312364523543679196837499244808886803172939492755214142137974000516408770509292301017826646658266836541615655550510454253238544626401388189448144996991032812466853123456023227314298163923586490242105337864105096039088300492168723739009728807919508098741642033121872598231778564572683873823559692480241964681735152136229357829348171063689741534735294878653812589209370969560978095567758539838593385241841571258609536886881862528599588762335040525422078039831136422602293865741527195727368376885050625744422001560308093238388010450470566388203542056894577658157317939352857511486260029347158960528564515233842677753064628045818928089721072945440976861743036308693413969095248461776313931186150293440940140667497155047490741470649804803372944662339797845904842369895289184601312489580554075199142518041653528073661216687178592423523969040828419755862743441366694433361167094296930037173403232295418354468845848034615165488511834799958395733155067954771521865813781664057354185050689212409813784703846323241796194286353473357604859171773493937927033206604647247295711687065450287949173022904664470467099491421398046338445333996785417467971755065407957959799295999819646771559735544030452841072887425876342986182085343189434406735844847015469838315326549117663031252288563728810535679576642915290438560119156067206393984179800795146341734761709882858013595898685078922213724942406180279187129561301968965437228707084161265987006077965088982694648380532571726345109360214986560093692800760215629740973483881171249223433273072665430311338211768502315124132152829167204515078041868772030760420412716266018657475763574809586600046081648599025061226739890871417687955881707507587219176579665238702334934695613985725739962058763614255764929950944257999453641187543140129614105792121852021892844526260231315174761197861699590930422482415838596627223929943169963530054095644579217765546628445762279482574476358449275467128904117259283953754092073867947101858521377051423854943890517523875014235726349804793610135760949393028245344801854175529951854885003940373946075229557105386045048566277249948919659896383451130670624772704345295152250037694787028837422275471494942054097087054328722772028165471745184284942179446219039324510865610157456568176383006988844643769588434080692130861727455762356276104162163273247330233073613408121762713835740173083073459847568031989917455298971714520586708314049536464764098444569677198613241045340248108517563492617973756404939741168660295881247952302310273493633211108706644767992352857534657578712598143171738578739072484856930680655613233364314404327334277093745650551996676194420829012389267412659615968014162971810461903950179820317604925275953753653664487917192640388564921488788623919469863154918082105387355458914035731808027424939547224893933709255784760595180776421077154637740544542737376022921815509104115284917680691193571948459840007718347090400440639045044347796373638451584193508973735488967772769376455401991234425336675883121734020846345015465252960014325272744645677672022982584949841038107595469614020962360998651093740018177763000583259232956889568937127992456969112082332953565375721823873700457180084948423063611226463715374673224934785241285432847490061436359114856829789844246378269471768540541317846603436085282756141333228955941278523478600201223860829980589314905393954818726754385694813823102914071066359803809763676064692633694775248069236404172702000279577725180128253014930391194625200735366064703319415776685269212648918134509815327705697273679816484483516940846735066136672610362579170018643918243971832304643027601635416316591589673443315810855022280287213227276932490665884180948054267260572315030688896386262378345643943985432825725931110357202231142449644597978078380242810896340330150075412087713309168512850314808642305779729913823564926115107175418628881235426962164580167826057250061352076845512143625871178176632302830353765612968703087940990463716508650371398827160079686395528994255441481651598515784563264245906189661665393357793077486176182262470673108426353623688508251837250505068896576763801234254345120364310705509129532576195174747487720975298622753762075561976962570088598888634601166158819470755092353058523652473986862078066307167266792644125459906468629181304652429739572753792048414966866859729873722666231125318754200210200036807841308686065893140323436515651380043321576112628051403270454090807916942544617883579370215861659430083690805221161130985558118714763553047181333703425062155524423697221608076222030534802482588124975533953504600175129494898157084648712867065142009790605508003295661596528812380821712782908563871261044855244041557809042735075240744057742533268457765286214150441495267212946419125176402652114541734568240614365119983035918835041234939608171877788088665811073392316173459237674313285623521592965738104447366985350655941929873810286758998042632492630507171883691327439206875863852893404480093057558401653681827587670190246193211800689203932586629073042705326513222687028467722751617236593200966093648851780524851316391640700324065292618093308373881081550394159787639733113422365178978488524655635718647006809305963725905941504133467932072499355602554103123662960364403447356035138605572673168521650578274855961010704203474778939156265611836933300762202937069903371954113845168671217431798177530507075355775697789806492932048351693269319509990582834576144052283891459057943133903811415184750240901185766750572551697628651162622800586503765980358167467519805663980489691528714433528542805646553927617825588212823508656584159094109892967549615487006524467689265196026274628438951448763144117623873556365184575696448801882589717970151167653495001116813781418313857353643475026821815667699024516381073964266773079303404107249998237160447453479557551692761754991174596421665400952567017489652157770975471200273837842776204038290111625103586606172872867968563583522697159731651961967099095168613052768488490924265622157935177838522637232905093108466642878819527912531612760036280768213485867266940914114840834714949551006878414122255046438911848930963923842416011041475375074541280643443706655042287721485553720351462528704428352763023749248126944282797782138313202285551087229125400555768389897766002956557236584912172796796709467383177806331667201354083440663409764238065207007968879298166518047557552521647276782678093688119918090424491121964980725805270314991996293654047986270302982771920543181892331577380059538628420157700308302376675841608605336942525420067062245215588054435384036750080923040005666164774020235887549750294905925967736248194488539312044220035988266076363996755291942481312907560039968762759197171926397693419250354355898418167849415072757036739716266306817740859271218556359434241385042371940848099333566711860366646268071443437889928529317299181415575885061197001085751448682480212067904461044015542728126800081506087609723996370430791520886814522759195820581554593950715886444426335444713543013489136166817064818118632323028363882473066264960139772689373737296758558554238727066468866384240703353376352329653812007134457437984891435628805063175395422370614851454176546997511800167439272032026775941637451913944869118662118181221112205407408874301366667739863446383614448501734255760440481950902947229081108086364909770839048039603979949402208984600599107989396824875849287842981454120446495777447805920548565564061055600409121467508123435142405929031388307137938206804672866990665878191956968030776644819009948436029332114461483553569976776912070266258069940781713137540474046143558024689333987270555203700635921915832140399969001737789444236037964587810861600131617466685171526762585522276668716378426681818916693399209292096255033344554019547321507452584717902206970108102683807821689517791827575950585439656265446496344102381291060382665103814761279590214092960502391873410393274826992581528154798769444307362252671479951786077161580816959982435960594416866586242056826255774944019578721789359933977537036276032607986408411869967525255352051106680831533525202950548209045791114477555523454334588012986790353606242473274955121414789776321980739188230065595544925071083105376268819951295557860409605143685851330106732230484786205948903811497086672848625619899691367893292808233378124374101574021920321243878304974607110485669910527387893299842463757614769990078282496677032565705721850894088492549136991965536340702717437045599842260962895966184895380845163100443911909459396022600826268263933578921460968188429814601438772562171455440271317878497233080855191132114604644357521361192548818629973128829966070785843687961096023887818687891216395281096592422882928029515270037007230365523841429877820236119747446862603462541294580924429263091132224496718478646935338463950578745378373430182955524995236521159854500986097542985049842202109886247936147497747352316524791639863446040206855640964142766501153545617270261066703468405841286721658425112117551536896766288582478782254419017992307470495728930934635165908161342466552615813141302756650923635147741758645181954152761617745646897927658457758978779268980007265545223750343127750681894330266793541217779831340383274905098504275712503244740952715042929185607486491061287567905031058160187198039513028766799756426242089082607822995052437537744714146615733906595862980661357933587653653596434479032970246914531684199079149174048273507337879150850872091802408298350875548965179634365134542259361782743881666979820599110538334407782392985784540614210761682621994508545231888826947749439791177072649812765006024470999867774557407792901042721638508039606702353059852030711039557299857486683801578434902656220321361905215102161719810499550900624022907583884215508990398145346440183653584943909562504175053431589079014609028699455563874959910862404690568721891780220251726866584338916541670901593948468444517214977186564685443670609667300759816227923429158048477189128255887593066562437477302535496384000334453009082760192685226089701224151995883224641729530521366162746281122901038634465599747088077999383867778308851891479931065840038036829994221075468862931364349725790601945332794634625006545957325200767618790771577590972168266026414701644534474103710068493425956936377959427995391581196882205159037109419057506208399981878216457572367135193050608230799133725442690646320450739852722955553400983807645126537184052201557689766190609051971334276187226979802494213697360980528741947189688438363726339373495736396546027579592277177253747379266485859155168908143288265138158362815145973510890422728152277960063524563064005865761235190555966048013130933901142366385610517960017979627417279247090975571954736741840950810177318763454177480003354439559522997526960370151846850980725498744152797100636483958495299695580334415646128022153139552936996758151344451932557722807759444493452145194978826264027705611637402894354103808308391570479499164317320414330021157337289128957422963314886875619791434409117743794381684092507575410552588948474108777795605371089760299105303359994318736295607481798281879744093235459131494854693252392973546444952820740516676855519233247530799242442393259984218268158227292124693060679908880234361143061876625378510799299851180195852770027925123827281149541396757547337298877042565305948285171641893777839021014919841093139578789442207045216288488272690364026924344493984133883524417595112978917978822328455684706336372818981135305737457069827014769501989162568615980944582138061319759108150118118108672204195102895646211916870924788413935009833746059293354799249695144169372589784253907230636389211354734585336842318864315060557842792077128876391303958403475907005765232356044507157326845962066432334556300885434537471991108766616068926464577126724977723796697356358493415678165415021364120889531322277700503979784006277462200647023433190762729549718821078076392759014019852710944099231768704253300640805462685558639704521909746861289458817087469283980632409068381279737122270431116843434758089058070070168354073148989339205784726091346662079869521412153969967762959699188058506627805043677216405768759410553680065963105260477674026817850591889124339444861324837469240838542245635182656414428791050614588109458471452961900815968571083040531737802904302991316947995741874019113319455621398590500057846940492817323000194527567067333970695987143226406578428944335839329362052601884730931536665614256431592498371844352511119003990776302821679342985049204312273988530053041769902920891303400237071518776878575723098044425750397139550329621622035297467543278668962087150145657933401037572806972793311492210590155681498474817851156930892604786235419986261583076281020328210934099880753623297306557879396559719581260357101405877966555916905152618727474446781175200930291147882318218652040559578462906288850685127544274355394955804389500281270514704954181884115026489435256608160079701727589961837638922956274539660899834800579497114467559474706831012537835395687202370337649510945626142919867814467001389177320635618223965886008495713342808186229532227709864668441855285352434570989159111534678102150126261884578795474211252489570151522896921520451596633828959534252139511824149485374860001182772847977491897787423020637259568157108152330318765733871830338897407398175424966759989334443241698626061289818180674423833727911224523887939383568495560733876597956052621130065504549733246467135794954904965642927434508702720891602523718104910963881813795935094866565220594918129739929873313121812693458553878995958692452787113577943864911999652709587381280581482732506999624899760345735810050434685448266440322090180681083602445225399910827113370008070271722654413819149584892188005124626842964017927551275288213597835781106872659143045149404254758557696047564056062432345449634549966178481083413816054920867687382861479530241701773180000756545096563212904207296515084947983418618615079189494756841055584484564622581331069574184128603514188350616478714558467815487487891944340953399871952600669002124415575075437824819210237428186683312527249824480236700117042334701540293797886316996462766953113906958282159976996707043810132277448909537756968600130383331089171947643061769018413474596139963583330438428816803624544615065280206859117068869120745502262163660327237896986524122037184416323808526519225288593319195592781679105362681997614031905178267779145558718414340993663721848864671827628365573647318738843694711644803532400455480607698023736506870492623621992538751929205117185684035496311748435759983309357168052883359873389623682679894445103066854623767088289857527288761821602883981179084394063843187680971031004103399204609555214222140953560778789125437104179026389997073460825817317252192114177719392836098918837704322205626523526086161688089031718425648133636006835455483523258561518676063776291198030178243426662561205375614189798432092805871766725173980707060654685500661321210494548019061895774825507792858190051489262385202492079179933019686203608895249524976913201446695882386058643064865287616655180854230781856723277173932209200131623486763135038398015749627615536255067461471973544295795248820100475506295867553347553650482673325155354786598797546550824011260900216563949328669097477063885178378698502825218377953126252051294366212796755801641270347763374454119704925963191328726506007007475181424438870362670880889440963641187066707701015792538752934575643418919568378196652235487657382968956019175565768621775581524458403193554211160404759013758416015034798609460851609236218589511868019680495923379705864456918191836213565907549860150659769149080795918636309358834465186149360980995020835333216728567981461717735475177601048439434073422078200255705181143277454429377221626159892604394960644553802207314039221489675557249199426241250949955179177540577251495500426573799666811271068801824546271020981438671161408299424843336916230057506422767664961293414729270278741579199281410851843555878218154828258810856910876227276934049038873928777766476756097203780115069271214082349875772762133995818653449345737240689244332658256952846345778737511544142332061657541433674579703756926818624510059649238089706241536029064590072318693375189449203492715339341241943080894297647262120824169797777972832864078330310365032058108608607568024869591415182599646469897079212935325806649093531863869310149821370137929134339961935422051609389212211153683686457111337426142371241023526548105239254500545595347514834062357438610879805322976414160177556133505852175741166221007260153491219246556759860868705537741550478296966089834965415472004374105130773832770658841965975813689366074950066008272422590331869874396933259359174528863294546863275397983907904131558822963609667180384806964878506751932007448433490925761459779119324593611329793427960380753617873076463842489913880742690609268892507594951202743160961092730674662746828305776878667634590088478935259035548055401179303130670651649162909565233079058116830545785425071639643760909687414031650205742475997871610525980611324624289332323154614051344696709374199262156111692300171310320614720410086974661170154837668799065432228350822147077746992930075185742853224558906203843595398740410751820906986085614989042606953335226210496904371011954503401010760000167471146389313939757471275628336990003387045730087750230513152549391477973581612886426096774600828188034884795785849235286592737620494338879083047805324272075852676384074885799647174987242565265654164550656565564744475632992308530396368267695317445868196690047515949291075013738543907534785318256877365907060244142298539502673745372656557390952445078518661525855611240773547574785769057727348210724783675022727511424261762093399463380351813282538282153198251916133241327139023129508365167237730051968692751458601024890087841232555507623431894469841679560523616685189403368703044411628040761958407184946867291986549731825174944848925757008536717750571063067666256936542406367586863201690395782234356301913522564474786163521589665832258244368111377608590085646302531640271504013045079493893143701192923662074787666463917555214595125129649434543192046134320114075163853642138797395644442549385739093366061885156435168630642836975962262985090220810570571369882741801548866177113848605850499843016211977068763893744303466900395212435510263766375125980654802642919674696253608855348766573296721060507039952429140466451134716156271738752395878941401280614703950462518538126076045362969420166542800734986629254152095115469416066234090217054680544145875807826882634789203200182867971722991428531033355570824168958050844021805340475118153385414451121463591395389267166271302289381220127230955044782767265713720227263500958170150250489105693372836420454344000522542591510189317763445062394927793317474761830826123343749647682957203195550921304031407292112339855793135115501681198037081371524927787221239042846259368276742348844481612682569259302188902128569536201100016991119561225605390396153620394450420148275755412264382547486312461446405455931416673351027863089667428169605649636275604920006731896137216818781724774776711179843439757460667012627459390596755824254911993246960878893701852942457067180560809591620270149453078798674635972754239444850965741768599600123911537318939025430883105038125800614955845650524491124544373627771698599702061000130047269950511229913775678901154972506592242932318917374620708474929091135891458539333522163599143027226347359858626719355498424127320873854409938439054844066236475099726445120524448544943828062270104430112698958253559832363849625946393452699925951950701526004617305116877295054002475383059678969598450827997418914360954652805778112257835557716011972204129979442321968446730329927013292513455811743567299937673919109097167686608088150232290100363539459863818648891074628194979042050957804716585573271150878915964690250409263016816665804521262015763347403717294374122482364912727352268450923741411062232504257149617738641695214139198761752731985624940004357465664424236004992058901377980797983760676945848054552933508115732082909910078319380711701644270690312548635485972604325336629805474572316700186264970733807414580579498824123121051882736797752326375256814126151662997521599763826455974964638908675993190386456508181530314101576349460111597845314440700589202459193704886551616771301752113317711574696573006867832513582414798270043924405016515394484506549540927920971500900869623689521958821596294832864833504848276187023181762273689752351151460283506133729978404018641731395281199746034299255419583355347827813091157808787851752324575188395961829735068396284910322945250114822923998269305073162945457301620063665887069701662333613550388231517891395449297924936268711063482249405263053873027264376350596907903151927664420815323133159683631337278397416165230237925693992516010159231961657435190770594182656537642075235518286102272707114781883415920017500681072732816406575310481686892737919274574758204616910171136192201264335732514451276606991526335461815194168591177230475908055442410051902865236008657221384785259791330956096575254324015373324092174309553017832359237315173593656365600949030700248518452554135738248182462707015605942664200711156492670430340156048421529625883495307451005667309282217691296930903299388255570647915870426159994867889582202804504703700457946247077710747682654518390453596865536163842304323389084186931411174712972924334201023694973497837855818370495868801344186708845639671913408260880051351416107841170363211700487036106791974336678704862538368445248799863248168627638558682070916165366828246538110857981076307729233388727512370849622143458150204180158009033376074509739342281209640144100760465935456487242486344754495009559313061413112909771738559913275110300247785199762118519474410452902921057851937921990420913417198562583327143429141322404429911517143823141712061933685222972633437038884311663932714660929310027214750561160640676122923377384352254434566832051245750049492984017091986639584035717072679347720369057285847952414564694145673636720691880347653197667344663579614069853170018711596812865784051658731771219913805522844783493627305085602461638384554071771405064816258338469799457069028792220271539708747866075219767390818158096060009846003557702606751239842948763368324310571525050581925547788425629194597682986556467726303756411629651150386064829556122875104698353022209807389429377200464216939731828027258422047579615920086930953200177792126185236273782415039162439865332159375510360533222533340435001362671216396462103981571762852180468503648090765896054267487547329325421412665452029825392089116873677893735503917440447259478804673771962862859381322467918602325751231634204533334442590981190803535310249862899924027096322695336766290515295209656903455333635596116108227653725634633482125651226929704604891738621369901969504099091711615629796014032468057987092770280967827073560998551601819443293047425200522978507022019165453024212018471989918789509786445627776252936706710723520570035950710925474595043818253211145793510317760192502788066422193918392008878273800704140096736050386748889866921352182000750638375540288177869313234296927628720249193128850174512648457867383704718987358544726148248649673774914683659862903894125301980330516263619532132002733397342963102253786108341415116765520490112524229715087747463000582006858137710104705520189321175844141165815013556777653191440067344297738864716895080075898199226874718069828934346655282432652228967406577385638982757674413982204042178745705470422768725755017415229162322777631585173138542656207774182587579650790233995257473448133935801439438458486097394303604953094068320182253707973734797456148497245389245791258381926973474819749091248682129196578173725715597930584809390547823887441526785756610231025549989970424545151099994883285913482539772167173014336552146676269414232086515832155134915747359115690011605816590459972373239960431323697702764236405996626470745736963550872857836122521208477933984353226216593440053715535357216733858869189919346446638669137198221433550322232398895925169456455671634242031873416719840944469147272538272723558358168439510882267537578742385192357266393436106847545310216773716104195933045780389726369247434457867387945271389005697002923869454656063713160606013543866053148123646353919351392279315426337405528779022343794687957437185413420214816650342828801100073265617137301397375626190798168396896647698007758026782275494960556407515102348918726389527127315474684232593311588037994035425033216899847745685755505934004791661636021256615210967363149702659711257887295958349490207010324186157103988640698814846651341376073931505602734029416670068455171035501836271449670940000439676947949175492533898339226659104785589423331770472985856363498723892015889555648248378647295193378565559047744816319211510598850071861122918485110788625987576266636110081808001756204706131747074750082552473707538806340592809750851042970845116151240494504497704588028523628778402940436915405100427706112940797856131088837693729471436164642276678338871169340884369487667188611412104322884608820167227156345670695009604957159689694032338364206878454205572781262981056503105095049270923316028902029846927992945091748698634449541852947159038822982587046424941067640920863168773853228905471808953189398569851753475299968859449044247746228696416411556024176854032254687630097288006903757330882508741865511283827707381612327500768521345331258346781160577483164105948348614076572038631633858047114408202179463577410209066079741310094454687844692662708653119180105359759907844762090573316630042761102407486879952442185259796049712462124698633617854135839842779258621764019414121845076532679834933727065779191565924789494941443372330508130362287978512278574631663664705729845567959547390721911410159055977013718702611821684871505443047677108338483141505275950047879396756923846121496516706934838657374611118732685343727895505180351210904168829475864790518762056372083006126890431040552774496334332651741361479403629061389252930807726311554923001365196907491331417317252919530043022535323119810315443018986708557513623642747881840952103229531120159835576167577187894434013388243312115298624559353941661461020666904568734642247190403289364470857103492217297149764452544271119023507985088294049876603655883278759908005480379540721222843079325290047051661072111594545386061683070607993456047370262820690126467738808464136386545235373586655156016349238125582560430707392316932431417939441675400925426562843521669371219833853783997515448022165972836402374166290457193056318469077277939623002249690199431303757959357343970542342105007608758612341671680000853226741286763471500507259322499905264155861387026079454939591120482150776993803507774590265633553398169532331060900950619009519423743107554885570628445162068665921455304106916853982617159873139840169597001825078424189743494134036649679390301011892203021651281344785174572731583290470043682329402630116943082835411371605246516830721698614166956918219282280340573961635116448545190290218992593867070338259360339263997563859820237746270661308101592723275186023233595201219322505055597263316209374843995670374109057873268894267289953359849615019946672962493863001609906703423138362261282769596095429173100167393636707041874684988747740781077495251037189078304192498023888860529822387396082525187777917078795752972469235344149304648092077342286930687422356501888190985449028220768292072021782416859222079376022264846275056546191140424839010572071082400329987823488476445918940487516705439394218984538694501893739260560903256083309541062524057511074445934964719932046081459840590127554804308247318596652596146736550578931353229066017690571802278580096227176795387747755223372089462784748234502561723528548655825214920718339135800692377560781491274630375653399882646290041811257905155182152239575618858059397312752281853660298190266045204105858638595584135190063322665614899261088086895328931685284247997081294445800999717104133948781084414265580328026551490441085199678306233936381149893456460528906756130335261494401893163205889318210931502426300891267669090483852542948732196240247000337835575867365004069238903208596483726075206355240087162216976435530079779209689350381702677579465837810453851924379355497462747752368635755491617635939412271805918713889308877421514280215550435605080383768969615103636268106711815650045491321574582359852107619662006012148740745350110202304937484998532704668081428277863000041628041566804206768411281614017963314772865684455869911548233899727275707042897766230116038619825012318882693712481515017644397889703687076654255662482956994768860587773578636616716013057864075226750550652346844612090777038650374830614490073623965941932591493412903069869161003279164996863792216430079488870630997675884387478965470923154228556361587348778273095982764728213580668425003838420280879005878497548070185745974451440533861697787256402781600000816716290607665891470562994475748883496467827908093221773128817387145571932024466317542318349586038394069453652276182016706890658004840264012033858890800954536381048008446526271719042090394939238317158570854146254568227920767134446731696056693282897417083543968081677989920196736092445014060040548280382260121420602666622190691436610244434381898263580161009804883063384421327459034071154801397876611820811030942465674031905323907649113711384460964539701416233544615075515355551448550917678432874460864341586535560264038519420450266697598208153723879147466617289881887767044251780289401604625688432249784570629552304199099372314640578184939195457749070560172598131911563685637303276262477674350866259881102953529962089290988311202228356272891559726657182661431300486708302289130780183201463287588252418903918093976005877545180650499746664655191805425014340154501452175884895672422545813951666072137256409962822029592704308430534422419027291144334340278746994248847369079064517530695431677263373518174703799157979292953265349512499992441609765171107070658959483822611457757468664813437691451184448523669956072017017181897402880849624356329523924753133458954067815222050402907889169151307185393436293996804835181872139451814830031065926255054437493124053204739934747890377379427016454757720211928594635902722661875638465167531580217477131390152646527690246421881535662627676386092465548837910024273588939860977982671376833523116190300867062222965140692477727326813987467930601733069505727214300476084534449777694812586647624940059145584288122702657332843367203940035114682675722359909702996954784775771834214144733756876736129540209530720534301903361400515841250579772429799945098734402420035895951030264270456331450248251038183994496131212865125747572016268901196795644795551048699133160299056154556939818445450395270993412378331909335564265313905384589749400560058418563254226996107290478961142424470596864893695672581681703177867188636458555367229994295872211837539128191082429119994993635821864124461265686918211447851017861802136291871126709540409776170012250318791371902909712718205258160463940332186730928403446459017498239824002984615914707064238692646067742709432250494665944271804121709325522427052778673405807673821821987610420952815688999273702975452427882245468968966872131344709623736865326533904293264568548097148587963952916794330022275851129591507619595887574298785801466796774563126029307555739956881194733488813352945900826118582034313627746394056130833715842142014506227109761872998350783273080909524172040081421683853257679366612251734141625056975411592194945491519757452149902911892327405400148485676853870630112800357579208470537900190906178421678070516925734902013464028655369531877375134801199598257151756026836868082150610772937478043193245242023229598179100227269357583231162070932998782763385756167430309638112771445449689998137717234427952090322117324928198232889268070292071889247486056284276136775147177074637202652499387561473899992370431478574927678464426252479061456793288503783029033073166171185031467454504211577818239747066505122685626195222717320307540809587537115878412429533614176204892030993794893407836516630778233642147063359160465394801757581696499016483522094693067056671577024116578029488348308274855605825834141181690386858634236460298662809495526549316950192006525966851295536928902733930400692661494978308535792826758450942278066977260037899419970943000350484448230015398597722175333091503546777878917153784801559601370422931815967162537131002243113460128853978277660623102061846318933094756014225145713854397750374565731524211367270879262791767496631425706341101663511449062885359808752895908294141177098301556707597078205134042617805621644684280241704889017957638939054037271524909719006517151743274247958545323589628986413766263328411373928475990158980477251159342646711059734266884336298762717579456094319952331046683130490750990597285930273761192820485348077242301863305192924553023516295706641324329435012868585250866594990302398180606500498236561523935710963760296633560974234204244946705122999067149358325966439149562725803373757232888371106759742636639882039439934870874321098717736859336805762590807692897181217940412345963392455929405773875159139999919809768218352708816170128910355933909366353855384034666567636705965975055662624885595763101498108226275346030674014709205788209151513037259590007930594127242202133151806019590618204660758212879949469185751260435039805835139612755881973781177548876966735854550268234686612403270988434473263984873453678343629291329040918939401718901984885639498833656975273956083214917648772403276950808882793809556977910053056973466203946628453782860133460805601443420484378918802971044503410895717805856594630835883950139347975283092612178233685964769428498325844165384008545206419047758815793302738455401885263836596877038542454466631602838034542920760695992428427874386603716064461857431597184002091704509561088196894316871088691931616745180153386722706813757944645309444262788437281674415327464997822806353591819242623371527999137129427190057119221819556639637416880438987269560670348731216986093002252353698102469922011735103081299511040271925360677730585378356639367571023478169909123035174168022145610998163620364780420118967273458076090342974293277207088032779984660134721811050883258343682920486988331239120002328295743474619758329881327821316291409013607768602433750189794850705289498248617705479620356965032154621559579129221550455872463346346761013995003299236432673390853063997737050821273707676385967320026470647687197841310608148856077369621962010727441684452672266781586103469340095912418861857923525571443298608557461195653869056510238542188151138904836833786655506010694607048683102423503326705193068894532086620808004533229773126068332359182412718874751352369955922235129545095079081556345783225195836766042282193918812571336003377901619028740871733752961047952473885771479312687305255140180686358014027319713220403070078694797264721842786263792792736482894270071701648617043653578158169847918203473853887015056059973384358308705032408609950796249416368489515408783276284156032587039295928047239476713730737099040292297404999260111909272616921295291915275970579431418755730558816341112661452934040166857164524236551944554673764322472868682383110870757590630331769921117544934122360304713761712249762315080992119200249074115762532729538390134772392700731339962507814851455979575976884581796813345059285810413982007056183805245179166476623842115452990460649938891761023266025381071001661233735295718005464842121805592537262989090615482948006179808811115236663525539128561376089340685045374064321084576265725586815998598748555780701858805261095652652730299729278541353488632542523289185924242159279400011183756180010021216303321407694170890233224150445552175345042438491581598164641550990768588136333330325035031910496670287965529262030867503961238056503127299887135746959575036051798311176178077553779609885919011449044964036526096720031135766605657123816373681984468778612459440220558920163003894288680015969373412755909195089909067692493101211321708579115084311488553554328387788343826005759421497073500863737839855495324884112070273605069625331824679649307904072351115290805234086375223785995906686600269076362459642100840918974039339917887753751249318111001904736648169115357404380777929810563742970764655068107793754013756497457652519798707429370814176593675634056442234757804594334032800752514770340562192113915895568031628588825163475999249244498227650326168096537740973356300720872890247829775144908765855111333679070932218552434587963757014700397758567494132826483720997980012432947726630376295370696074308604630912573026943295602837098800205848781558274896755809369592197192821258033119073149606016611000983198665177593084383007513721634857620472437515537010703763004225767363091026553505945561556466214318994197993515748549239659117554984340092415226683639323949749347822222079696958194791804099133766225040144277853608284125858145429988431264050120124600722488845186284064777881351387951001043663626029514314890050244336267115998270497153114132183140859791099664794339504640879937414469409116856670430809512856820418093931940715179144594453291609568713564687463613683306886822479419118131638818161310064384802054352657783110295135927230219631170404164807716209266210435135737016664032411189250298802509635818007508736165675699050305460893329306604253771415544515050893901771933944536688638242451845311814278671212591195644904775979844575171061599534372684790242441950436434958035760797206125564869254247406714913345978465709456120491477162596648616933447983586585068724382215755400539023961430111491350227295388742275467045215117404081354223455115900515613032014742772540322436636074986149800639623494495448597001448503647254109899239906575401958919632376410635372214434587665084260686406405283687527248355091903861322029597233273813756552308329762441087572413886048075714379340014288725397643245655744675463803048079989455830149645599322336161313722010340269337378725928173082951582572520216239322766449175607363593614374501439130834212880122643863571599497902511073226092321131614406705570849372671187686240215808835413106875669179021171290566606228951772663513925759874175731700031207713694335143025966316133222217611045507330073548646516407850450979469847400173441409751010151512193342929182606565256872749319105189290624353344214621327923972159802634227494738498503981648898235890520143648327037313465682454721971845816077108346419027017006300789760797857099931110383321577444402590408403256236560907484820113761282102512414514415374140070240479365788461345693927235994823862501974485653621093770671440675657694738601251963873077329119639259352964732121042449075714753830665089964811924305855547243337019437759019994957128067401131191796500118221087767348542663107850362407677708173897637239359588866102179047255354414752229727743105787125207751451176023050558147293381321749861632034593090481132840312174999600003492094290310028789281436996482403349438534795397554595889189442528441844804194161513851896648781373563113021175558260546255767999169836390021664831122532815909245732397638156465045414776432136374665197238731663372203591049742048740443672736654512181188807517862371835743564944431384548783755113140426322809965311752759684721025590682501125321617797404583747619334464000574898436500610198396637177756985580580829870769551480907203966314783877106917643470647072210954692603865059448155778295091872559375480796940076631740338285265835438746281495612757073169666207351069326312899376792417469106733810431762727060028772662748612090549311172370975976061518948131198957522472304269300505138018638680775103456474440165737903664350703451499514940093954233778816140784178302277135767555443749354221389100160612029629442990545690772717555265506276363579370946967403492699522557955813172924937476388754920121945574918498759062916821862348822540813042316247575588000557510989726058123865168538128146965428311133695559787716578180171443877643261024159756383395369546115339341914354133351284379230016598873824562700385020981394220775981620579300420983146043874789178879752575993369245006385339840710443474555950624118708683047624003027815887626523928840059236001318410154626189580428304610936778985853578713795141280678959483712729317133207195395794771635778187260088500547438945047952955944699436119404182891386971246196532646216221341241424271056169226361489623406420817243675743570114487433293501501440059184812303390180917959590423302866554435905001521181516567677946973791503493820023702948009525725907679492804124410799126507242665495024782885207074679327828760915245818519230691202822058567693397707698172990383770303987556197923904622038225425008210915082601094645405195937987320825802371067308470460251678920645781359230191230957956670085959731219682611470777997791101251730152957562594132101120428869649175253627463950776250359402891089535436559211763740073435928942436556646323184190464015575009640967231140705944443329560660955092617307917928212979613482540428397014509830499441273357301951671535623709047641012380727683456450148577354297501940996533837546688295776450258319671347201186792400943950948159437932693194111479530391849910703675062971787968188067347402068482112736786412372089220920794082272251338906186875975219578898898064021749026348474113226505297407333074785731275892177237500857502597172589808317561563077486492910176970794766720027122185118173915367851717942200543052863892688808449874526908031183379326258877657893707237757722566514021356938580561424265304179043813745509738961788030354014139670987336162667892245318383015406259876600325874096731151711020578536510104993819394877093861738133615067627106902311560017367269049601336330878853715879841313337064232916095680500643195028134951775397854018833828624355257938343264103724199981912276944063346104263694713293199275663285073701164438304725170792321835554090254667521186938854552745610895235279252616210336660664067985610031771789423924790968059455514901778608847555222525274276418893986427706916200823209828583826775677922317404798898980396361867597237055801126772783086449860004917112790735500988337511582969354702107218485273432050207391362131197652803960607183511767264927743242675374696244173209099723058678569242448259630414845227105481915799438411899514507309599460018555474137408182665256558200384127202385802327435730284388055306588791684194691185602015498068616418327946242802170673831913016597427390304318293414040600633159240409351847181866135463761145282196618245546509464157288193022042274802287074187653835613124402552322801372507456970201396566107295080493744122918049703888938469616138797714388283496417257416523310730526758408942459770778186503515150322006946436086032876195737651234343537212820251719539289088757328110514822440028733580592480641839442842790950078976820042817886399526576675962274373766520028916721676658687449955396696734875225936288735095343382883172438047801437543909911207362438807063843971380056567223181385002911085346093081130872254590604186975555395716401222698650100922788198162397140648118728607821235475258512819826048445845955681582968343733361956963882171307502224590774419211942635928001722941160914027787135816303224782466596207874342655066192245380924767386351237189906641365219707699710669069477677062660377272296879767442870608115117343151421229740543275679212411172611704212980908684741426688350542971304117443967842114929868979567233029882346083562893597015960980404503358976335631606233429749662762063430157511713647234227257899371798902743797487653648819135483968769216661273210582420328771088300175039130943081429977763847051331609624602016702691641930387670646319078415572226513027026907623488414416217231932715495885701236992002315572502670930590768208321816650094028555436106043609826588869860440922198515697312901340570543394615111658717954614514217277470903832451468410841144351162207754877976237373024088053356208353950654506062757925219510069206300085533964217584231692985431043895064749712961350200834529068293056485011201606788947524861444818442353011122506909170616004496090664252728008990878361895627490093063862346738663740595042276270546461796050875302196673232811102435883697337435089737151693827423681606957406641577652295935028974921780500957818742187144502012498476896611179146701710439988892021495265422847644076089597992301833506099075460645844344301334323497942254245737140660186848521078967611103777689137590745463782955675288347854309554395523622217866580130567792669085185239613231364687676235128670461318549288437913886553218625220852517371427167554474441589236380596600752606586605177656888740996599949414043849456335791927482674226139788913161574023945889251957614892052354007352135299036776349796833545353933734087175932548899997399655577687984811682184442592123775575017422601771944707833407680568240807509780742071511637432574266454247752222751776590931131284615706087955044453494676050788801774886854983571236939880578119113857705848457218029629449258489807154509800880234551155410131070113582873228960703799112088626089196320369783074061849394103955503973515230137491478719336721466386312689116388293252709732394099472096205704540701291622917526676872451260583689942785732959353460328546088153662158227739394852173996059928074251879608106236118358961747024846376021205251049305362078774931151928254710685569383682935477033837046756759337116487325036141158020850824911345105386284959132216073718204168069502663578872945064053067220253822849081013431163736557671377643987226743837670147575007012717229677099168066847616499733750479184404442309588226270439960513911600106408806721067817594034053922879846818508243949957879684942308354522481342521541193537990255333530988795631322141985648227807103242858988949242890353573266227592820570922441045737973689645947725404461663597487983573866709662969670933390131229854332319334073376074113838317731379314445711590816345714703444195391221328899974862754306944473584254253599112322458789035574539724999904020027610440336694900982394105413577181441321075634244392135106913863832637201365862898919602087535098492263479755965901307492016157747050027788915074754104099437863726598030447413312995927131798960853099447732629079503951043820873213158585314738616958366373045456742153373814389701720309623114810458878694458887997285884337673533586925461015046800693871118436482012383744587049454059917818632501557769941873441069454671570926084620725972009342501708375185716633814324999342384211707623400062774655048805836838847666743086303256670465471406868691343421834428530061868136313952347296449995334198149467247149175327714493198225627093423339987484427115187353393054729059987959464491362925282595791165711444846180463012392361752491510667550425204854782421354926826587678139859107166019354043465179196875961994065011567594581199533519216377563253419944925230182658232192365336041327264153405772982515089741836644839055277871117304473701761893963486002024039603844388645036964351291785429189282013041172199401325121694486347524611114125152139624719952397540790440815854692399830005616368975790266778544840233187267817866911734672283299585037585653983644504574654571053730508757380797585646413552095475725398047143212181187268955026780823994877382168460443055922063226516717818197993938700287581764674832454360477843723333225282206169276026536136060232925460295845284446340515197715026108679210443054717555730696907202277531841020727308510934847436683717180088451293183797052637798488532219473233710089133204760120069113541948902896756956953352828843802238893326589128790758308521084531302574430209679749533373510837287747606095496682699959197645171498853385580046630621446179808544988470045674577252552216476338154045728578922930143561039326019233917869029334869216928171531917847171773191267320846622888989026093404887712188787716119553828516427418640037092375599888486254124305610681907757299848107198226840881997337087336930423332491662826219544527013762261500049597567796436689473529560148805499669223523842186609120923681242336718455049874924610349991291998795973124835011505247948154651832516282796936996452193225198699190785565197269788522743370750593893130546059153389760939106849574124831473725265225008389925660776876082586436472111558602133851421292815036280665689047108643545585105848672842301281952980732583936114913845076579174666260941442729533995330263404696634999988219701702765523244368572530122068292809689387762062613420934054650097863003901568224155816551625370787105933642572817883876740530724814925139488694826527716930468074930060694320705064229435656579617992987615558028062293857803306305398369610945000444402984233414071713565154815095363676590693079116911673431868159601677157386412509393103106843341849577961523883457607284835131588862873563076805084605675197113843301024078805111682554658862593700259702856619831894193605416713585521138714136246204264561724340362104253560236868068389819944307793171593396384367972320666873936166536513031589885459733109588689167277927062639015384691045654989185290775398643428254922666214160379407075614734782391996978745810336620644600836844125079744861047154881511294383857671032573387835749249156869698828855056405921749043318577736387963460232900406992657326043094556592453602850018399829548533036534586701301696972190621175421187927873133782994288289449383484987922055194835606975914810833362017739343007105326575875640362651268982545964440551710094444617358407278421083120291649637450854461545569588590165579172064008651975733133633105238151436632710059690060466325891150622832572644756908881509868792982386798749858205329493979456054629394002845954639112944210354567082741986035490402419764465824212295765683505285979313880224004347467056307267180327939120700871374208269777550249930474150892837473487531240768629876816672894619001133657173095667294642702557227543724219220642760991514039847783867517090134741412678546568511415495012403577162555767797942968133710002377078273327106842524570327651757391265650234997708163077054966457455668423146400329025402911782440823068405877517764553636633863054841020276380137332265186363355377810642150501036528009822002918960187271317751659417817039907407747446918965755344426625156893986049114320795830266926758043444751617611177562334701352661399451184525367382147455697877373310607896001516868462285499231155216478065807704497848027095672462580090746397927204298158634534579955953855822749959107691723712859336690873200603910027754494468842810514967157158101418180464781192692099587555125310317931111345754253935022118998343729850077914525988764825638182710785665118168913259706238061535106486760275681440558187222301407963341322585452913255951040530071006701955013565761495287399474029712653745819314538477437926984360472522780178837671570804788865131378352862398317303629384359658879386996094903474070455723779004071433919707674279133309845466830853281081869082316776614669223269798265461029349357195706834432732274304888512164812571666287995796504859530389346727919015055167917218497632359425724525836678546915136115225875794117090498627744793702999379867842558366767223662433943704136037719785800616311381237899264533669850030653652786823702305333741570303337286549979582093451303967819350917792901054517166687030992759729672876847876272771557883583147075778014172636019131766447915315138851727341770889252440535446923715239551368081898323514323455359111491429201165066165638778861966498300989693633031990886916419598895934243743993628331608371792747932005665535287371838613070067757708130527727844911273037725737781352847904595917057138737331052837411125757473350324756140650976271058473818547185182482307626456782128603706958283435846290546622501995408599828127356856941360758713663299919295014120737225289423787576279466344205060810223261258967662639956682004910337720466849757832894642958014128498399466736745646530453249264837842455880257056774136987874535012416774934277899866171408781071749299148928138480783204621430096592765713621808766536655625774844067411866797959066528221001840935317616580984600759614901457924493862961789133477931850613071622243321635378760314881768191590210366685415427897558753188850301895456495956065291417585950091075462972711235274532075075772243176648097078014754918600789288867660223656838695822317288972416368814910533449491776227203590019847327618276117375403147880439668615906488015557036386806914969451748205805505041611476812864623106667959693598634821644001171045943398862355588963773176267201191638284337654921651742563229180441462993177807176373380003978971876530961200030744401123962122952536561696685221648461176769729579407760651203309623037117433610193290958949588589136412381691929292866847315496701645319308094622429997546468953144456939739136091574472220624324165759383694156470124741186949453484006711579473915443473205425940235616555060518421956809667965974972462376784571661192741023393320504320570064471896982373636620181874111333856514710811672413411898208855623761951057567728857403044284007150673800499964650290565141968602727014392716735683513424389603456884698469252698912173455690989655266321439129894471956055784027455986367664398238836303657539905831420255438797920048277362870208239473758564576406518049512281136189346137069355390721439084944076690807923796617515848759832609249242809943342903231961629980774705083359715596949911495361374055331219614962251250808878419989048037494759916410544775879364301051338713190164742536467335441290323257458064838146297848659763094050991963095554483456607876146721041301363145026601907063562767112366842971514278409611717453763497466216297123782028955511944837922964995209311778622605851479214398003510971089630559719358846572374503106032159430460949071277032808467619912280032775320271401602100709496921055444471382861070780591253674646286030784299779970508441570920930154136586606663022492118263988193222374132602913996500460122441413724597207434375587419573995694136996530108588617795683821177174543958171980185001084757585868099165105533953500130258691773056002540664513432111461110400933343565095957135688939533546986611784459110518831403470754562338761449209264237156735974034603775051463285380515175764065593604616410788778276306250407009481448797831044468367227815901054033663379822683540523622373420589587074621819681147067922073221019298345088089596731705538648518039561869911739275565169496030247009199237427137338287610512620497041257200597258305302861110000299136713675169739937154300425454536993337637432846532947963346228455832767557685092728100129707086165332638417991661727057050891077096284619917881765532960762142531869625081934063237828519381870746433625332306036398695551616970081353700635676686331229524264844681452894272634674662115315638703094706219827721141811922450497384926920289176957488673222809280583355171349226672684742987062180081921900772508744544417078540454722429825315199354144957506360138701289875975985058781311996883704042266309648208473611046981217419232435443938481186082036111971496810657603275408645359800773052810712682707813540383224487107565711467408994060959240561389310281136564937367445996410090454363167830793478242421416208341687434445477888879634822508323048410079324629825153754222130246251083019118878925290319550136615849964178444139704203366694935275838932604886928826767008944283094527255771481023527429098712034509793089072609761126062864828087704987992090960935160285858154410228992276098134163255364036976511665298469464338487102025961259058694513858425201424638622591453508249757370723300492015316526896908610746360325950749230157905768172804246202933944292171894282331162933234472505759925661725313656023462713868422315426292039779224233532568634643735756004102799788633295310884359999933481124508314598021217945361602286036037105260812572313238256054926194677543762745022468629340139460868346865000121256935687707643682190112247675559766931754059855361694453715674627574181159419002758145232786667443072883831890179988829674559108099529530277031562972484152429926258770615681399213205923284454242865411957563836474225402642459368779205552382682495834596749886250644498852018275092405143557505888824769580619898788177961845095636043597492786525038201931724451221757848726478511577805034089006764465322696107364433540324062637655962290639618950808369846351682550061802060175447701790410712669864504198942981095828823262863290815865080730415204708137355447349057135251661555303137688571222607928896544712563110903943034661573522751073443191023727930866227956674362256231434176917882751610180470610461364156342433123053548503610075684929454635336241773487526162724382332730618962459846470343889751156008880178515696973050817778771685926972797612235387300744161338139102713973782080988891252980091932744827413105269607581659562760724180701998525658229576644381889235056460209673266345375479711543273983165142012694189574473948895602492608982168602263722081697052394285642097693463060018988788705289242027124222628152060709060596573272023558327448394876985481475893947241987744633059843804184828127905183496551572066462694599585817560531400273368812487561633898317286452892444118786067357565172326469218236118596792852174399727074117004342505320567984302412143414017188447326948111547299196805032409141368294744038586813546611132207948877739410722922216784220793573277114396799889995702336088573812420435223889270980501580715112665745930053063257468690952108671406819383165559688734566832077272819613183418670474389574523258186119239793380774352954890628421282443721742004600900921359498286143241676788847913599650203814330908041612465227803013357617212018138693392955681906190974768352771803241836762864139118806016344838432615839501577827137813476623295480456200483440418142760840420806113831455120141026144333203958456585307640735019688252153857361489176800440330778986926454026292681034802705554618067066986449540726391079504530795549055172276871555103464244734361593576348751454768592094694157757619655482124801393383750446941358441617679439638693536013877632254921106372501899990606296822168426946635820778470386987616202544126222532702485121258379506720439442740421675895153236904068970403441757959043283487990190651915331781523240523805492247613825666222033226297075102226320438404856734745362182171339945130816397100537083099572327325737565905235996550407602136545529004193804814272443373658138570492818365345869849808706465511646685612520583754502120330610330888632964487590519598964815403282149549661650203706239050973397642024532291375348639667475703358452863801775365833850157400112491687625869838721673903455157983040193109795441955604759408260703648398546587423611886667597038243083819869921177051176634430673684343493700460493437187190651128094894048090228463470436387674012092282509893653102805550106952454096640970746028892980769746069945215788198815095597630884889602855598037326878930412349034605223746767073059735610376409492970960918059667354736444602548086478090057335454543648916233873738957906648306781799656378894979405778011509602320358528274914380718620438902872296326101983539471114580845409211486415125886578824503704693832113831579857700720853244562894739644283942111613539785436045465103992664864518789196581195008126627095961769155775979946145572258164794492564193564990821271132673541263691697649815463207623375688508945004335322757599489999820045393728265125466740852381557821973043757308300101385562083716044322454198287713119691851891839814600881901434782947058494939443202699940392031310306606167785602431729534641957834698417068389248338611024253652096877591011659960078339804388815308368681323682913076090639629853070969379952320874234288546805755502267849357695927311248542667878739205355887818719880952102890125874736210383952928806092244880359129440049194500470716259905395166731695891724543803022505455133257884670279258293200382509796025189262357502644364397956723874772807294580367458098320349582591570305425457456197760419989994175283528490801250073114408367050609856698218112320175491676215881285452317570890664971824876713496661323704873385800389166407782216786330082954547140610717528824324330165570483014142660777809258381643139425999713115836356074835162305115790019105299513873365363758088705356798635867326900149093120263753586754643006509951176521259383548208144194878041866011370746806584466647306164169469313897727900392291523007559734276263696126485237060056039633015931231601760319763995669510541408582679485166505504253383466635211788958646851950343469455723781706908003046942480298097638511056649619874952923687984946126964103539223186712305111662797208792425818583773132888012726697894479817884013205113849282180214659125619415184399052252698868471964255964635499005335581118988971159027494507344338038234739795461156002870526563784917384182024656340339164170168164401800706526052694428054485444957380329328240033733282987329034389684935876269090594371676441823849819131323322664017810015455388297306782081719642402162023230917635421595156881991355795127185108027185149695760156514274996035576723567604616710909361429096518308375111781807660696764007858334001923966078420292069132371930703288353184061906193476222342240178586151362909987812008293565951616419582114456042601042601330034082397195721783842782061002310329373317589248501677988295949489326908170151172425174031386262003740712329228686615048267374941266771608315475021301357043044809945482872996975725098261721363814054321572353723363449423158980979931771500730390172458303571532587381427235024482285864010636330597084014510480430108582694697464204015031437002823009044213123913312103723493607159404741774320906820239662690773602631712681001548456730880646120534652923060953422253497947354683344810861072332028475700331804477518539879574923373856571998405976794239538033712972647235603655230345730554192902999962308277001188556981649496217971352636285117890074020981777117799338560281264137769127706692344849695036812250603524008383537996968935792466402741734904178454459427884433128407438816935930085956668127315508530557101518300207188146020226597580382031870846863957285980738078300885991891478175946287365004430977357257657923475998909254825685722804681253717830429494932908778565029000668205636666351776005162820317924547427039033185690310891212498476340327389628695846201504514732649827591060879440122048176917071532380034454636386091606863778460896233203027025154206848122891223205678214491217210915885731138162299236643139637283575660626326267564582957585104087704149608765041315248753033245223550272586848346341417117635078169036962926288891930601724183093208888891495350098923987295624356179074669104376228699183962330710019771068237905264130573278729672945442540376583207622130491536371788971257586584144505137510707211142977634950865698259743480251275975308527713063157878228135103873200778525095214760131135537541400466383593987539792658616628862418739324357298553595106920498970176717603262037668613980368714998361020797896938478180566916560316524969014552317909570092803155240438550175530508461620602294742112154348039920508241830582881793406428775673442918558633200145673424609676126332812753225281827156113988501606555355440412985513891454636609444403329300072162226648239920613674044595199822469446729124744162258634907400021035123941044263527115813945429526907149391249483552198193459811311091402793169745174828424871684907869841943831675143454315753395216982992563692643890305463248059409888092421361383791928438894403346337077338593893144954434189423732912272239814633606439168177574500594402562039576809941896889902392142422719668361144231617693974101235885114169111042328605221777559305049792059265518163128608869404202245945146692290478570190980490584014310974081424429407509086239767246136229828954684355271970525178592527333001553850875267245329291743114273763588351485760487821955957857681892520440418199528467071191594907648117216142500027680970736159435798518580058985071483163724741476789024026681806639245964163059048781157388955776228773331468729321070755190254461831948428336710892133099332523518199912800233436864675121850362301771833596896816978169497938734217786658017965012463832166285857340163967744381021134078792605122400763621330679516374711920583588350857154279409808515664728176331913762868312387085411271486655058525072177611489030911486910329039999760032408573769615221775174309864557772340832520025436557261426112475385245208536712737558632556718332659428226461756552898353646775996556326734247917519826971530164955900373755031719133125828341689091524887920103010816972389878763891442887193619615805481466939277204609172183976228093027040983204297481536172752472284484266089186251817518181806798531386297727449376709017808271808671632430829596669743780581198723924962515109809167068891913303957796140270286876803627250704164277040114022513174855265156563555949476616133567555145314354797659510962312532600290914003213056847979865730249714031664018479010688582322072527454208456782366719291371227017888214969528852042774439496288481629525507002532560288911491643088014721303839087787111233149792660197168858905382400036188149966765675130763227127226774133269780883649756111153834611166953424923239341163519433059114124335756275116664403945137675178277150890821892152811856841760391001632475565662846618740239140875067538872682592950096774854809690730499146421917907864429848805749855394839874667532884796763277388965093998853369252172608782981621127042855841738761152011796182197714201440850728429197639330414442767399512554755630652983450460348393929557779528699662532868287954942783897687030992762354466500303392782736272292064013163694984279413341636264179913974544564178348927299601277501671640263231071060113018665023358652482249968740392459525847396320034258053095747021061589788635917371371500229384847191816725710543254428006394157234462151392388625295572809017763733201347194841270778744712213485528436904475731016407267618503172221667885989829289900216212230884564817237442847295985790384884463722573118655868919905457752682281687597162319619717353725092228656983029234222022802607254429564619146849451747120650436529026807928248493471916452832416336885217495024314439324169450845925631667117086472346993542887298452428698817630796503599015082374702883192626116561831278885753307820826945689161849628880156842045517094981221353046385200444857391994112632538486510548536310347735906544523891419562637442073837679952521654715938329596579455461977371614477136753612112062450580921325227248731935712817126771039637387479402349399763859943098687545795972895930149041061233165506792334194282570964322503264908200364973804472147718812035736366161753741229060810262440813078424218825722456308998881454204877580583737089058290943549138505839016245800535804281670398216818427963409934904717198037898585889013644166087484808464311360586581741762967804345486984275196803953122912012949914449590892312056493189561643552981896498802263389260925512785015088268268441289729307296638361793880753060209406181139626387216441798918164649203363581456034125226801270919333243504839764154907807334337432105033283755395245418053183264770459367219730145861219229872753081980259810906753094682223597570053677653559568813782507381142311209804184291119558566831744710068655759633816473965541779744999331395641498829577757346899936647041160046700836749888063028428013313747153328255997515572183034689176602914382492049329397955013870753579147003262172688438927155539291949570472744293358311085401750970817094782739013500119025044884126584839047270329510813953533322115112240375592725952453517853800017205744943897910153103832067726977276701167285389066684115158215896179941431481300431547923289082529901661422111968160591428965006245327396489948219553266965890843122195943724394321533692572218214052538377950916410742862380154934334714207523059222269718223791470015971889174096837762194758465048636769558903437491910870434197502946904708470060331512445173898716686609479314738324315577040178823964775671679971289892621994310675314600382398839639444356230264944151742099568546187582472218615279375502804714131056122390905336899623297993936444703324046155823403589996086172185106648505481260331255188673724196158586469782355108151970531617575239736787153199504189325050196125415199464100032162459141365595651650054437934703523936755643566788142194959525649271971876691778952744053635349763098830049519817595539908786920625169171027676374104596674655579428481607575760701193763426277090940701315327859062338419705115169101759763785923648575735476341876659200708472913968956748927124866471707613238441241471039489610392038359973026870858793169815336412207656549360326804149918096704284212215517883957551270003009292849190352122610333107791947753393555805872157109756575292376792600152847842704143683223262070706652845460631730867089944520715769352039893110235995422050443168972908435777219888539771259394123542750133826011687755863822953145461789502422622853889332267649056469692462454501504705455640649783938545005626026398648147554096691703348455310978082046286146207764095237611834878075383266436397776281650516111153802559250188642403976160161624281781698570444969968808009089867691028482607525568195501066816600122570795492286540213187619543103488145513294484065244428851325634738618952640540952492343391686444939144912145068741891208792462270446639226725213862632944309966543215823663658687696939221361353189284277891818710511203861894080513084497715001235234753466057002125202084808328393336208112083496814647679411806751713610958108162081142494642288447738917367612451611627164850807733864518144610321846714484824028899135697128703941098615200643991947455795983342111101612243371305764783693144184527474298874773691556533451133269643785071720936896936452821084226005866842029797848097594734456025880882096020701412427797451467591181911039967862093934378414000784386525809297108247589941761611304166578865020653724624807115064338390802439498132276741219237728704203843964112557007014838897297816223619089962812988541122912085416916140445737881973215809219491286554758120086604907072886072025054548953554084216789195343687469465894531156023062871873313474748126465641640799867233224907947453033502390078367117877809564049313539225038186813483105243769716143024951887729818108614628653488263178569432254697439993919914670124550143390736920782384956854592557594638800888821328799517207445655215028598490749704909081663675693279393281513592037253289072816483985337815273329659992376435278460129807779344506306755330775152895477744389545828623069746211802222235290849120766234406794443707207095942017647497340651387124816039438240644239424499460229867552293462575003321789132657704384149794540146106511629693877260762874090720721048656776988062102528194142002488005078265083259571320878062179270565856907923783194610183082992933202130492074855282357968493361336692422701978695625794165889873224212784974251993370902579119754170385893228767207795229951741139641257699466260367604275609614301288750748684584627099259983410096009404076368353237358667349641897700319343311876767967758051167887078433152778771138057733002187027802208252787849525159039904202411507330713303115442644922740520066479380961856990011323280849194060751213101667572296004334316789640741088687440196299377987254910502611779172377569346483359572344043228714474985854388475480195626858742732585051055210393804998534773276954828247289031645830608112410276249634777028255062190174808126308299960933145798793274689714863363627612078726903097795186095180902754883308706108010208944982036182034428105181584905432373496858859269198990125602108336698198682868292771590432760541092120373936383244836359499327090124329521062153596849491257906957991691825176888189725875688979492267312226195472602165067741004912905417519814853193120018782807045666667200557138184729329755866640882955065026737745828933376862038825259086653838903202044068512011492412235279612653655162356494991792457652750097796629859579035403963728713267207290304321482840800784459963877118041261112600207939667114284535799230131270860827760443301388002715043412565190338492720534895232648716382441450544931851564255601541790468369638781862253376967724649441582084640892105150679298615788905380226393481705119908996114450254508968091342577233911491729691182666675273973465590547772124958661505513302120715024845436608285017198699480692755090422081843137912168470160288890328860830576295998162459139350690990380297901613086947801784244982430130266586812955249228070263926064186624344419605293090590486303431414352369508379426269662814126939821300985206051076744675592196008719196580157973178877210663029866369303854951006265598274210477222229832198079572921285193486034596945540235296996523281455554244877906169195682760268204104287408675472927272884787974027287432627358543792022906379469683351023539130492847043291164185420197611049102324027478501269832614786221897155537458729580940785742009045085713841247838234393212434333787337197783520243041592740736509785017469864610652009379025948537274422694960660171805672660507505206254659738949747651560396487324906725262517157068931681578410361765608521068008461358600707599208414656775417117119578278415461838896450897102510686180328071194550283415855664372801514906080042628815770627487693628408243693619828759625539194325840256388053742162682568618580829023879792231654051235291906691207961491409905870295228131781357200974474557157078352377372391445630190631410488325525245267769982512056800353873307506007778932903736046449334521463223637570491027664188631635801389971345045538599914051942900320460819898108970006622054458303243866216851508745181970270412511597104829773410376947545660436365588645734778091052812704094157753354155363401304637566093980344139322095859677825698449338851463109605407779840192892801462862604361161967608996709832383410589625049745411363342566192998441635679071851002036273567310580165181284191917401335838512955035797180941195322722747265219477281507433245966903741221929247756260292051218284508526185426033844264362195128853992822321620848926894128367919483615159050607437730687811009069137826403005618834441448158796999420294554196794361314278671563463725299735909672154484757276249060171880001169824648494870718220351650797485113391488223610906203459719792644593052696847954761163046781845456443711568183868094134065677261631230555674270947726415300956429492580635077029737883065653254636292633550586203365498830683932000004165088828168048929058083515758519471530982579757238138556585244616081771831753897811620999547011203483184843101905990068501878834190924122403688961728208848305796471467201736734411882981390101007117146436284409436678410945591521623788393914357839273476963873712658416987844735613054059102779314180846103295002988213377695247061591300598209189594779382807488862972549367733805327737946618208143425048143059370069675324125122752332984407182036960763947274162355403409985181859902534457790228511677471480352001106907255749035545143526755358746906258552930497343446738367616141184274457191459984338588407478333366756871327610451722146380049005663012823294355549135556554104445534948461247240565611022588738324346514143082032140773950092129642525231988044908150157969946318810585640245755396026207917600014349139364524810760865800585396655515499820720915471520009561842619669519855094154743598548340278257965893880393233837346615024864653851088623281702161350328339555531466620159832464821165840628861927534190927192575757966563107430709167616041522783886146019862896934562241645016025929285707655848787675905359817358714979547368154886165282093723223065448921891918548421135070484495489374830067648546929900478499319198957057584622876542355316569073813509344789698661717294349559728746171392469790444051940562872824711057155777761974512542480303551864422966532669997462383260407941570648228457586837793695934755160499503891124073257291439741910726634706209698970226026600714495619353041264909268429599611426896804197998682956290193580265543042198728977479169811338493233155964421793473632327273617985860272000205234365490537506171839920179781160919903338513393058053961804294674629694427339390314935281032059680017696204574714492198636156986770401410812099971160430859995626413676818755095080901888863684861997323380904528608227141213843934895901054930673276708164072820803888252372096793871501363916927242701021518698046758198112042213013909236274928766311001167544912027569095081331707726146990667219175437027411178706400495573750223687694579535532561907155743028798894933405005875585480160797317085685335518712983749795754782555388369733309357427921144725917167419444758976446684872995017279659816334959824931659072526150500898557655406373479044665376083595488828319281066667499921545451581160646427205648252900765365152388739444508944954456862599389294279998292951707519083238192575051553908745510874990934333719106207576241206214149099547919649058664618784888354580606395146776892912354015442278910302746645740389959277789137069736327527386266339590563486819876642557252899445571827637625543368526060854777972155934387562034828306246728696928799944498406768837027020760479777890277269208099118775933652253885071751239146769348984038946969214960984604302964200659527394194553634721905798834202903543725905946969194783730726531033411768876413547686962907295766522798347959456495521876336626037469374533211544780606156053679726456855767625771262299843546040658033857305239228961167212199628280409649914263666687084588154990720300204235696556336983982124254219542537635380601629362740049781712053118449788272242223320342710757970813425378484794976957549472266244785102879006440191843558316528560677590002825654500910412103567696145009209095797610413795698936446829658159028593704427959611209846090985038922853703971535608345513707580827810198929813398703854388924093451346794652481113338667584087652519234091349374440680509248357488862748628344043977768053209841635140075283550435094297612283763772912943050540175354969070189562033062575110981995154273324827791016272869247515221328240833663951499588843790930539732503096620208805389451348279394390230040101272780345526337086534747281447874861553062849000691090987717438319392638998385007709299945188553616220094722040191014181153050157475738957210270360650519762835981426886125005737884355939988988039664299372998649819394981982422820772683716851346971420085914807041301284807236237120625918091263822761336156919989773394555287285653097470903368033153035407126710043825434509431403607006792855917795654447389734084571160132544929005656734963441252388212415390718107750689556665098440039662907307690176875476408758599868860621848295743518222034478723204029048407195681331851666651762374062384133685752759217001875511744327305546778148464514197434581876569576142050393574538900522312163425337992634665480386753523876591166600002311256886042826993800152114157808190017703795355215424523074193646346485181812879903243078882826637187021445569586635315039631483719467451072792966119898150309082075431743289610360040652670762027110872204908329677420083828629671988115372908998386186309863798146607595183706456021721934811775142126353674675952989140361213073019713498069735775729246372466267539307329466595344255832748745078800974950907704841327795338363729532798096860093684756717301997649053352190247909861025852096039947029917781869709926043184809731787103589859691442853531813589516193768432879511730664483529254542362406563622697552946189083734042190668111486871616645948196587149138078081364640526839891636766679081622554873404822223891498989291878764583607774232703106826099040138443479055770405430309431897194057039639182281813859711887125038247753706717424627949593030815451290015841375941928277982462764504286373667002751097337008693574412402227605244797587422271161470015040871402334454704118644405558038069523868690403862643227035036733743445466420304568978521563684360220654833308820271186908158214325031574215729567430561801627646242611244417360256560464240486523278210308579255164203040267295532516080535248376653541730723346727773344477655314769123791683329693111226164575570015221867455775308803651727561502877410461123269567189740273910083325658013434031206349618053789552359398973309482827550284683915989985947746969116185218968933498938822917295464727147375922414071761075836932436390595694230753299601885082773268896101464183603176549647385581211263248717154631301499515346134761292175390517360587485195742212555097336431164297924575052119252929084502954943443527462317091241003859388636249555091019326283588227341687669557269552932702145320378695506046874279014642035777966773357395264978725327419003573805794814342841657853936999312154229657525890973375714707613944983758170628161947478636466505419444091504144678298829795922304164854087413039568318243134516202849253768813390116241172004039228818577571291305158141594973799227833135247292640442183435360055061055841809250996441820341317510653898189994430790003353331761225663998171416338654468794014169767967126499619492738183860668175927285208928770035481423724244023259165898810568046948366530342819714030012798586629175438185334446602525328106559599245944750764365590694030484217638588059402455540587268589223558957307765180981706686872639422656527895194726386338520168339293702764042550532942003863336283891230151206371306576584118007201425185351277128390893131516469377565858164423977288414387556950007642119929968129813159977824580646857647404247943810235839407564022661844096621038067271624927972974994336868466602855037913398121189888073530556469060404940839864144364537845257524795924302473876423130603423587125550398406217801147103658970297271423756660481003748099912896990555727446045926957171756506002115034261524070285181795601936827146458758342818000559586717586820247704170637136376281927560198679206166940450105642795203091033725123309882157231526635506302596309308368039984389746227383870851240188448276947693179200910750278631797521533231881221663537211122022719134976202139722399901764258139192189525743546554797730699951137870695602386107259126259338580805458089353443032398643012409296923019451291478249352285477500804796980481648069004584770447892385487123448911285121166397426231738080967294488749452519965035457322656567641287845438050031259675287528900831501726720274864455272061069120551566632998338519801198399804438315030884973889228859739438787430873052352237354934519585203400289341031921227492971107224985803663443341480856362387742577973497638431486977009923529036361467209286944535584233820991641368878895517848461220035013082240622477079271148873921693816630071196455876546898248914235211202845290970730729366753478184074239417734411797574722441633616756231153096893559832073653262317197692567957585683949810212582650655726347086516773499219254632873892748080539090980989474287653908829123977559340707446741028578512999124312270334445201884405406027355637766766969854823000741221862797319788811998500493336660022232146169226605359559111766588934892329709559164267240035773753400768323059899307826398762854043653753435239064040573008408954298721494898779171339320491322560017563894348871208516464615827139677552245586631714381599353099950050561930742153894287942516016618487546902012720660905795181921734345492916240473026304283478839481652706272876265084525322687787526077210819260270090402482241614940051688780415345435523915873347489027085618920229132542554789773973364141356406212272811785280226127556975932620134741995377883765677613913959241771406809967554102814064214686869435225575827833622704182741094288793245757254013160460781782751980743397419307156745579287053376232302616077288925848582449280911633701380300120325190839301510542271081820722434418432263677257931155716935177143950238454947377683332619589849299584762827346171067765969995845855612063697689961899006208871005971953923096713235254739842678756794594746015947780542775343508221949701198500445543329707932480367907473277933075753777153823895643314461703934980976633260403157876753053648199520092512313669222476354365988744947575830388992165808057899916202972172890529723178013896862736549365059010821118563629643475174201758652231884663611217625224917395437025817809794609927278281512339934635395571653779373432567037689941751192392312542515357690874080942943687239274044421571564216381713683290849052828553821084270260084894505098567043973940819170361882062029718481613598836792170723489041960020844302278017870937819498503722314874120477773873024498450566376321911052132486457051537627596196730371483616006954771042893524141257340217580773321041223586816150087616844395546337049246098547279419386540627001479369564059903340370801032480396932220000480454831968096393347200230167591419465553647039799065749929602073289922334304873533614172992028158274436671918407035399204567372489095939024256664845057709247172333703527229028734481394252461374028259969928533482330962851822741707381545914934739258278022287608613518632550856619668719527531600585792945206701843381382917809537144149017345773814811046471458551628437801064269284070104103157208715311194793277846205459825615920055239595628372145935638874541620601036781477128117881633825568623478061827587992001337169041350759000640504693969475730136944768799355990363281472549631867685855062623034653735923393917046306664149222763403344191886720160674345936895170309337927689944423554394494965080035651461355704372235107835202532960093495905536926974684896827886689679651831678635936087523670750629390034735624223653548134521010837504596071873759035414842112295052663894865645994908631041615293093413741820720849590246096370757519681636335739637899596914597190601887730152638205734299026874370857226901990123391992437646826358792271169810914877189771536555660395384012033787372192990538973718982484142818599745431593613051150368809569542555381242209032507455585540017440357745366384816484271926124417787382454863079262569750602369841667918348141274317228261162530116889922508690493122284157516521391784978365117914757485781478793507127114144725541951700880483251770495809119375247920718884267949351940223958277757501823194649793479718184833298991664793263731804902815701666416124391325004608126193439617649036545932872354885601194453095248410971970995891662931385731260733268860054066687765501312778392393005026085586023660636084246477946937390894850352878985820346224020951627946316185261339571822664999532859528997546508981742469698390376882924300973693591680274216899936994712846806124044603983448762232181252624953191302725637316208587351701657130885925087944914980874536639622291556949366740196078330421907568078859569639383736359024843291314251322649033797116793527029761947500645112523903816354945768980597551648898783793960833538045702750799686581071060801519327814751390606627930892370324807362436209502512862828364950523516470655284344171659364552744333583360304004180590816246086490931241804175025089573504339842161423773133248805410946562211985551145927456561395341204993722367582332544493120717412899040846818354807162487796522902604380469401255669390642740254553173754373426272812853570139227184529925770051505651872153614453810792158528917429162983353152132821406180863298698247517802108284177060614557183850616886837639734088670166508632311685200579904705376066110065288386085086662310777748021178131395331944373686644532830388802101389552191876154274581381338076855353181235936342685544636526395064932088752333884456910338856118002069012688871885799788449620422361103625646174355311514266236815166061292660092109811131619724935842545871723273371741832193972355974734587346663026331258700589131272298154042406482526529554133329235761762928973137231136683530887827072310929353325728457167750548309778569841711491152397377137546729824927282801480643434516309746995082141730398370764574028217122553197692142939975614238599987883611151826782796180349370884059943447709984148638509916888986327687141358772199875602686660718950269541009394902505733419073267818669950696993728899990188328767975339877551064714771365601188801160051185112495258830218680876255313087068560512861359265879682024699379767132397193981545470341031353654732924063390223236106333978146489722102287571718929941801531328997466009656787436850683484078477416651305360039287566869885857330785096363834217631576510716016841627553926568543723334049680552588277113386016868274542108201341324837210663828332336782714641522438098100640279103093980203073545175552781161207000523595952191158622897613409833224533468507285608097523001725531361470945038705812906923647379147596822040071828552286765746721831606943429730282017863292517140055702753961866084095693452408721635947718392020457508770829160126986192876176768607333923091434904242740711532362667077305040428762606219900321570169493578757231729001939072031343941901812233757321089675497708716270657818102395704328120222792318515881123234339921396787721171490726950551202867879078094642096266760120597250399727467946461149868131410705331647656929334480756504005250990929146381658817600418510976470939154778410046242607277082456421010236670266176705318395735726214520215429010164434843917175460022887368585628518208429861225716470554924985494821095129047029209793047038783840021016917836178965993298192765862481160325124558490335989975331704049613776818114015277935505165490490839307767041057607021330568285501135211423138565263226224367708016042202672403411235587805149991253375384482987002477225021116566743733804920488205115814025490165494530339217612969465494459322198560490548664270241882858024023396441060510311674559128032040685375189602079468379596789023631526579590558554816436816189471863814215369545431243954780217317416861985065903804410344391133291578551551618801577720533710661593359352030264654041426227702560232450037199465773543378214507269519209254958709391445927218105968235933254399291497752041151755724857427051344287088033710465567978758047326087636510238679029596870849551819660359458411124893828998477998230344636877864374761801815525263621946126650245192748347252866716906665988814407595616062376011292601507829692063187213631527951742191708814269593468904451281411396431052345233657524143734045516908699764110604697989434670269098936090842302279699859494474954169055566712150169671320304375887561266827369504008734758498666173103284853356282868103058258908348885505723492947092781547524061499884691258197295278289018533227353432730799411740071922196735466264311619705577027280081684616555159770524271457967575161810940708666884679181272432022459998818529044692265251125987344349446575607542472402122984825210655078597115563092627947428485771491190114811188853297804105436746009654658882342084961558709080958253110758988676331496019444295793415799421311656440221314355090151338906234208732421111203428363992363435903231760152310618653654679344615718932147635232017058108508059817321944093234053668547727997363916207496560577181787510273436995036627660977109052157621459936755890664445315581240532434830233112838189694193558007302627266847743496703694807142938461012990476048815027036990915805605501228559339976360636808501739850799416181961032767135443823445265945745221290320945459308994334962523618742390719195189668146086588829755953495253384114743202113505872151763959285154184303900332043806944220471283685093710091773699072998617635438294092477750216968232271066352290076631346675393176878595445813634934885374111042182558205201705965000488793895199744114623785445138156204361856610185589740222129781836373678605193201285970461316013015337997770285037146158531201319540385765070387687210893338352840116429868906838395566054318560812176115196419377003618880898456525939364255250556359955547415659756876721603371379549902423568278093999108543344225984152556490720796122177312628891498901248195611821128468704000209726016088539312662899780619819006874849813545033934639065803268278741216022370170139847987683407966787925469274484297514470761436001679913220908988857896436737968818398299986641520774619557956225118388649720084361209693979359412722025595710446438097755808248884277537918763566391852910204719059637676572188771985416621442376241355766743652068416157197007072399357592325943377746242957371719095582712086036517340034438050599782625420443177289663758366050963276911533797483356236310069436493900982584244292250414866673594147837515040629869697864748150046631665225234510676923337161423676968911802629606040225791895737565761294561287885557301917251559158789797078153601815601844993849955457243198378924182185432393163253897625093822618149178264503154663633522552077685286343253719234080527574196460130631008895636626471473034474615232816636604555730627943045434910788419035504365323713781855585245416288131238386013479802570070257790379921407688653260918670747358289784361979732119992278638749050892400359227741773410758845572909143694853162745207788035368122055975240451080028922821250243379870707271037491058717425373856508785801518357238655603648583981912764368262222566893412184336249084453380558014389603311659651146312240039965553854307769507776778888115732936671489091254679724876464348535736264664341803145100778309160955886009280714734316533631388219057764333848645126776567685992237462974798567353821119563327677326165091892864609974797041916770616896412062383375304848998054611357060089063310745514650830753103450864412624713096948436356548600538634437420454446775004474064085701469606351725287800232620570975555546266604950349049078855949102473842039134992836343096381571671710867390994105384450230112050249844407350675592633287045496555677102500275307451024086538928245229458699140220672711280679604106953218484443873155174421605220179003585662225672123417314632433029752867485064493881728675950682457296162409556757617480850240366259339468300878971670125677993988196794390747530573609220636307042447147328165592800321756730108498149948720312449820031533678674179735769740323841553363615011896043254134246503158840059455930084757889001900044755845284531198753791820737437292669757760873863434883745347607958187294633404312467012948850917670785742091374667847775990881550694508179084861516845319291532459911354861012608779999693975387867333268770327683767801931435776018922919582095314933242268156148271125021580567871020689704469828754756715008564457075106066272811203408914323044794083826141179353298528247411114670526850321012564805020727815285581379481768302036185286247171006445092806899671222099708772834839933270440682610930016178692052546814815543759370545084588341481016740441861203305496294433563876396524834042843459967674379161193047204618891700585497476926244808680129456408647248144609145726109491087471888249742200818542418361804999240828097606508083065249674494992525899619326572355303176402830912754927504633688710405109799307435072434728430038168463688259574066085662912556937055817830706174809212631474830636675054569474449506329002542492984201243985250684634303429713654345899848414453769667135744922411146477261011255724579315858305720097709954089143633205990391765132903387109167760444002441278927530287979055972469948814834120549814942028665329179573669821949067939072231003159552929179893426350647779076100582402850317576957909497174825344900565160499647261098231398202344939087951234751464726570284326594414432508995158848290147799083439682928578609849992684439963587301719536272710947844041840890128407504469509804561611123669941838044591967228986795611366608430240630281474206502410418724550347661229290038577227918996644652774457539027960080896319874317469332099938124905845199359753522474632318159926797899249080662021738950495861634559233050391355767480106001713003258894444045294769284002461839517839789851903541849300967412041965214346197444881240746493358740997584243742860074256700414351300233526034883751203288776930140454412773932763764148167907264319463540461130762932109665853433725592118485178974760802922788038221975593801106283655017247702538309506136791816748547387856153455323178544819655944419466427922741218929545779780576485350630626682727414312519227771145284231840977216105603550478968410432489306743353290518054272332878322651329502073130896473863195646731739914687528116057958749356765465781513663199444617995165296800999931342415363283284215739440166641857169113062211469297306741295089620264362641187702935587394075092205698698429454348649374145533403069616232888898674233295230952943909960968845425507503316316494858019586441964807805670539112797936667205091267385277952935327798139506634562071157820167742079931413759762968071588428756675262121494618701741770406184624394878882867517378579979727160502698643725203110562780975824688683556278436462170970844648390112305458404461706064277069205330197917238848279566117324183555277143800087218328813957742007958445895956570511536542249969421054770471262173067494814420431092900160380809167738355023684038844164777859276901208118523640949544048630946600050096157911048024554325733369514059247265371768551224779749896151271511363907153793391261469433322904760295566595055481821194809417803174294879419310918105528856214280279521228856305693623720100440694847088880557781448618796215383735563964961366035935690630572863245600445935726474407646464810679976102826600179179684995985396470945981737514988711153232583932551907806017105888037904491686193735609634899369624062274419645523292100749511424248375532932504798536228076321993188916511065090133875976317060827191912917021134145391955005114757123477917155841793356366495040613281303726791690068902463896717456413179641940944343444500177502997337747486273051322638432869656884590115973569166845903757025503127104864275454829034983122869424008856417891503311821304518072658139716577542237137020971487556482874268104713102317552187213478097931612105104854107786584231254344433034014856383282705997773778497223123736924626936576680803480371762533241784843417094511443222555467738335515464117561457621114379877070188605652945650479618447759595047967450742475014706338593841781704425462725413720572247384485308462483562166133538740411692052574532718473758916982792617953588333805488133938785089397858166524245265136398346972798596738456517730304572772005324492420107857100016575648608122032926732938774347791081490798002112946803471663628110455491324659941318867572385278153740837295447389369897913862026521240355462783660785803252810207825014115053534241085401923509650597801407492014403441139122222959208924087883782769519289655733088988230725152362277207582747562331608286903586964392255033853951764023251546236758984291747983757589781230930261446953847403552910461751395252454387373679206978106838039511653122654717454355735359022011755795687300092214847200319810318660471639804468200962911342176725652994303196126469295966215144104985261709383929431221510550980243423693486784934661617135632527650393766266931216960252415755922327484885577864385081826128316109418658129539591054169865307689739307013183389358883639313140388013776783045756309715589885055403685587686745536980099449209465645305089847527127201683160007135671676760654698078304692418860711648355579048062760841268257672242927730962946608427441895700036203673876617508389692405618498193035185399648301669877311993060204601345143815295708342179533823533663169684756995024340767329625382513635282376919716157410584530650007707787936127115550945141145339152176856725294061828291069994132574860705118204830852303366174955118532246974233821479150231366845461792952073943497325206011324228350639845706234833241943136537590506727290812459424474105021417069741422082767874521470176593545487370614041591000972489111699445154358593277354670824500165198973862747151959663413070605373238951266780212041772222241841443253283489065012386518145421995361465512051431964967004238516879833521507313822375502538685623781689704546983042219703193903860129525282222966587120906252884976780664880383735502265323741668092580336772264735394620284675204689828865918344527467162084691533403210012251665150494471300202703217011367415305779111474335701115934301794911886676101877287279233435727859250740527096173657508552348519205083906473130408529510240566880259199020703225441764914751528418030049206729516517344433350435944273495738735074698113892005818285579615552147193954427287792367498107512720034824155840832800089414947654204888104539689980575482586201061203925303416151471663933048038446177692162128843535533679189729953454700404981445235618854589046875716062835939055176703627718972992488108951877893207479936436449061285255343732641348114361886082353658858054720005338865882970376051599390539317388971998235329283722444259762778787526404173206796963251605364577570384740775452210779989379370584665717308703052735029333745453441924570523681187118538033597584283246634975632078568659252021987312730400398427344619374556911369802140891541826349754796900909664324031132175061767831149761165525692600659909815613846970613890280491289202397393286679391223291373589391418739850535168343033511534372146370984883121548144192839642759631013365382706489974108230580368221519116379105892019590700120553689808038654236991744495300888052018983437669061834825467913349231668884730368796379972479476386556588422305378726347904327699762180624695870808569140030338894479362515308036778815902265465971283512407221334412822385504702022582996607278296096276925408812862209734633322295865474156265757860298315765386354392108684797793445154515893156596405955759272142895111617522765246836616627069025894832323036974057379548062487869437167762920873545901219012523118977871301996787838517989062659736586408887100467657065097373641929470662663830931389782347859561810092111984233971636643079832528978285215976863464024866246229065252990451145833426966854255260102042207832965562427570449472293378509005228412680438979937075750972915212468837444511499933279303772017381438536953847849597823791884435661911905910350209865317079370865428146378774338410470068406663921281561491373103265800059624978101773251033638420851619831579854705375563905329406984052390530797694210111234393243095199854117226341557423730904867052143707423215763590237349284533986473449237490660063828083331194190136559490850571282119602007417665946433894040105607859842034915658851021955230279389832907406709985552806052820932550791676762500443915829231984097903572657385731890536406962859815675357900256390536723236618748924467405267465253035451370167469148078575413428337481170534866964190270374102339276666348447784772404369065367254221041596786797412770963208371619517081998208058299681020977028696331121360774547356040189663636737455350535801605545799087736761253397439202464338503759723049896318057551359264938253602662104764421516311758601311682029736222388886141653984895415792562781667768486368318351520441994651816977325588563979578117701678942232670910687773303671874581530661086062960732605499271576770312098373918889083398519669924425201006252304954668985482615221865875545101178974770791356854536239320836590417206093387678429700302121163025622159378542834536371704005847405024242942068147879890451865849712568375163654258359432891777706221354278251978296205992335125682969283438881490280061013863415926883585068376428824817761389459828320151519653592005980346185026606168167631876146635029241624091827687066324465797439631270466830562230409332024381264484449983846674014246521003337609842556103733519655153515447572976604224622838132685022118918719903450409941509844774391747751272887842187128459587801252273680856223316565637429430963116424828245469476075901885466743407794834953002543856119931725903854132916228067639128645321547372577905367518359615401700152168712511856770327155158085339194044217310963401317192199303921550743953250754193542672777933402181715125005896288042281138022000534013217537754567061331975331311592379063491696040440331315509929171805930618841796842833420247124722169411051236916338170458002951852843344366044306783343636870235613096138956621641925890777468039646629032686961489477746771789799112326178871517925121770780206572135188581129484595636756532241026685053341904210451100056168578176891505072759154251284378037078103277547981190443276984747979640206688510629643393686220010679316834318592284307812155432187762434852192623548231887364570426912655532343480219436226231422766773378189506402569488103281871895883073015503871189720400318199541647646972103402508399564191137301595311442737776757942285298929202872446290862222218269779198587333276397801293885162109560641871279457158759138474800346340462978821167213060374313837233813198463866547060507071854013254462357689632017037909025880792445511785138618369519466728242372533032061341278818617905921191912900342425142717507960890004577671492940561987816533191073883952788338186947767372946650200634841046923569536998828115687888376102200616171748442304792153996079710417377068016011099129792461505094956010659939859246881753690878257832499490659255737147276326441539298949835060352896500447952704562156817119581705261471719970093937836437721983639058356685114643567821792339048022594536654823809770410272365297197973656434626259834471078676270776202899548773528905554978392835486810909357747496860168844755612350041698009249192515572306791966397288254483730506963332299784603612888169963336786054782217247828497296977244465124054944659009744856467365627072431982537713893314291315212359338186168832841851596239918478469574629405970863191977820918219840711686975544461296118608483760670876697409667142741362960278887651722678895134174177211932682255403521047869601162507716593917324557791885043615490250006932647080558102995176276859827847987072056606075840157607847025571252164300200560269101661851891385134061830720287079342719890465413110151141629891461694363378403035872529220798386281156540758550785840155941175175262438986837760080201255604509891399445884124943310552265462976349742458147113678943891465232079428444273943004831650026639904842152958562118382225853163465792685342711787041988416648934807418105401331161699243398770093464248969957961274586573248176704573880246219642649458273047223866319486648522524940581499642912328032501907116267726202729089727525713786935041967575801152048890091445373362905862586292642324241745643802962938679209995230574802968544524716351630927951893318489958964687653526512200649900068519226441113862801614800678538872670857869891166836984133539610498828084780536449771526926023331044765229489275923825183490786879538049409013563657924468209143775053437235708393107365332897544873274928915597855041379808118393366825039706232715620552981852884293823032052009663626150155061885354290888044803438244552668745783990401451670317396097554060971306958594238004681786458525575962610281943390701143823807290594869000195314009213523376823565778301616422863574348911092208125295520668413082770092645825021928095926753425476180267210610258472935879881502547089622733363537956159213856172941898133787386721708724481447939038125931201679423172674881067514356838332499735005867670826123874444238789021915631308637455698638410874115592414951568627775669944058895668046856043185724210672834901810692196634838331469214044913018438302784610032298201953464626484511589382886042444046522199229503511351758072839099648627199934715046623680682475946856655503320268325327887562711582597885277889803116867014946970936779506816995849554370997983639337989792449481493076025439464381967054487801434564275730736728345602293944186629820042115997191711840198671736454670045235499117900489690490460157640889470556442699719622373387549525909728040447871277511914940208292020820837334661774498743001764655478161609840276263723661063724485622245414585682523318336711683343512108377058024361267198319792317469470634715275462249622352075873487678355953946837756417107295511609532879998816062890187898903320869262318290068189168791865109945341999175380640200824004969440095013942693716063240617004369246877730879462979384735127823167137369666369856598015446283675595627304304456952947377681835129787831676071457224084292164261715018306087713694534518307970600106005058579449815805218370666874058117699678167057232583792864519924204490233051934678074533902615930232831872593041294403525607124591124556536279789499155383751057091628234343560426138888946186443645175040171509785989096931259177863571261562842335242454297744187978070266863655407368436372481021210334827957218687223749810089633001384308969276382875602683355220368216336459094878941640615802477199004510055549180129477805373526497957939477793664476543575675620126909300606816306847509684117167753212594275182214341042654567407057360185075840095140366966223584335290193690588484088950425372168346034299781073965444802733674531643973599583801441446324109677084325967531532996827087384443731905922598829273178472226767006344442738191184276786081977723952126473620980445849721856183145960462667387474969283507667614406818717948082771442291017710487856558385687805631205986333173839153589992561410316076881500549954206869344750065451799003649426605105465711356010472107965421903161245934755180124256802463118027987545357918259630868576206968348832508992618259901495301561781933246760697450629601998731673252285209215072086677593042294905685555904311773191982192874525322569011029684361325701427465270305670316257942313890248813896989928832688165389104931704884668245155784819534573641313201774780695723872320629039884647518783847474363444758994999674875403136943327862771105280900474778321562587301836273100564686091910537658751998844308499773913383911412857533858668575528239850880954296637556771846054505873369037431449677261566064414775315680289083412333946719461488219674475628439439726584753223070072607043564200159443591578699936038112640713636310313329913765254630623590333128974801786200364880983330635566677268894273459464597026653548861139260579748570875463259232415611691919708756193291763962921237691331913000603329802860601124387479330608035392886286909300436478543028003310900043672775235389413818014447325733782545343277513245844321458433949316131066115278413731530005298729673823608296828126386951202540448978569106898147604748384858072284690914262615741791353428795397786286593378117337304691177634246872430575306042452206504527974223837617071463406993291322828244517532118733767338388240294950882372060184195539827015385459761699471165196352408400260123744215125268063796936441265615884750436619911354847785502335694408960328442630469604819115655896988022089726751400045518712542623830659975294973512943009621197950115310061733140249255650345681100559510530902588789549421103915723729787295824341553796845425979569469020745057223694560969373901530449114156184186056855980454405903474437940106013266918061663940740467810414085194279379651528165759570440830485179379905730747614450079043739966235738362166072104572225427436229902008878028060056352058810131045248336826506478530077531261571879318416651188811215026579560165550441957678397861405976056798764424122584822156719457344457717808884792792643160267231075796758798752741358123082863904829842530961092876761188764284780957590813421968786693356203690274390071195615072946690427399020927251776049314559684707147311225802548929332258400786455822343143114189136669056536154780617544284559909181148062125734619649231641267535018236738748016729847624227348840944550066789009966200756925557683560241777483840940765843442188053462051725237201438539432627633496619439393218721683157779680778612122629632410496998266647854396747465778341127649972951932139624571330173874990420057148603532996802300777227639005637593374004339369246439152418369139182688432996676262390270079461549202650779085772386723314406397577385876976401098169670743419738739044981145718367253087438004957716871894782014751710418377631525655672899500247208218687557015875170572117244778924254875024541970853693761582720303240046095061568598541719802699130849394372597589017661319640307008286795662845415228171753937048410630670471670984912774201303357044550896667155966358973491915250611232151199257766697615853662842925311276927012733143808393065118132238931018547258729047728335538280483661893072963003629512757659721553024310248769660856256580073866537797065675392482404986272005036995351269542718497698029844415606660693204072569924506126129647785139582765146467291941247637766355442850590962139446705347085212954805984854763870022303432397950798849496227168311435857997732269160011826405476721403445824222884414416248449019381166313538690988682592192451305255807855838325628676175207624631906637365693032215866644805759241692646030395537049949911620030823348644438003395166646605864057466174465760687348279829763389296838750859409583715273146317608020775989791240422478171586248424718904743985156007921644982611120339752712823277614679502768477622553590932924491434114146953087622629239218561729956813821831883414546190435833875328082166559000234936649892694276563890431293622150311756066637517205283841897927222848170397077660986236304158721480472761005809325595191316638765191026074806297619500875412556645751280619932800458030581797832087958202382781630306573823673787606430565439510343743386584249799698985383404077338314399788529982719849615914349828303701822499173562406256120188320908319817972114398027005675516878363769532045342212929008675390809002217600471318801732023591942560265103682590049922158996155755156907781472617067407462966619915441581101982668163448344138322765063908100536458049139313265746253117175139232667128547210213890988398525545475258325138938555427940170378927953967656145765853137323584108729786149469677981724398768341164098061487724048950826365483738716180779941052453157191926928367244545459104543726913476967438222407164728377082102185804831364008563975804086672833041247647200296395646282316427664920371684069386128781395793331458052449292174222336873966564039687830086721809525942764276960472812793198102959190827937680432069007884031181971591890785231017965745389497706200151916347778265459240325546999111997767836839192022989628018186926572557067448907113472090564511637230469923705534224533560866325753178209164385082103876321611684216586952493845813213992337077639895062052192495599504213767559388793116054152658987981519602633540950672898401332183904376562610158186712573126724228449011309891096170575132878707155533922977876858622380765983214548725394131029858545632966682254564702377687785144546419185274868472189732236314623573087027769813272829041486992057850043776399925200852625189201580413877196840256432429019519427569002052660163160765437551110069242322289852026858348098635882681152680459100496397260644430697599441820179562910815948389659472072097379040128486710665638329105917484024302276472580101629288343323442165834255870127942651968047648769400355100934248305324829570345859689896825151720232842189060758814850981452859949047965182893366971387127550708910444805529213912790333795410760012317307225972735139443781540107937214160344469644160728236100658601604126584890595009446675137496961613129373836460312950147717949001289007181878331029712669337122198655145857950323360469217573118228852758580613224637691439666769497857040786998476983550983263876541350190405061934664350784504666012903840972691906349407435018026857735976461114128072834157292515663673963161204074052464258414736166312316326717852439588739811523819945093947409847600532129687282515028852017472512366392307122559274751362374408138859230559269767465778259993793552866542303814366398448877739068346005400367403297156335601361408952376505520504752959297325499529384484859769839489561018037031323600225494771003877960157437720986189143868900049812907852796014226553033837750101548250921183370589148356088990529414278655516632289662430085311625030350972195443102316858614966677259245838178548044316954773792451114852462588061251829833956014639200035382173753491113559741268305441385323308072968247794862854082655303047346846749341478500126835883241590446284435726584267465895512323056444139640242166514433942382949413863349014277461759237251634284822098106714820846508485932199699699134204560595794104366441941234994536848450983906673944014957397409011077670113512021276058861192747715941598674397513532131254382909683076032158080846904295669553825962021017168730806494714721970747161325268518135996616445478264274538563088640361514511808163066805611972108167607708565362706100171619789215743988695927087114191732393922698883236675017511978506304635137772348784413378219873805257439718029755186981634858397864873100754181173542667777117747854733574973265269497413703899718048507470335121256555373561300926330157411905868255215644461605682608611679176610474615781046121787694826533897839696128304923423875326549308944487976566570921732452469570734435524364340071921555644122388650395531875579214762214699756150823198736174712219128336919124011001608406086727864383533269994132393748049351326580206493961770214724042915004353820981521447804729775275555487199918225512276197546540980548897888937912804460694456293742440033225580975907205065328817349259080531485363897456228859083503004278662287495933494604606084557836781130776715739563922251045346504985919176077845359371237489955307822646087249566681756534750224107953675047476283479562368301949662167647683875230458170189470504340944358477131037186651206092332370713302694508290421678812451027259205161480537552105375026648569947482953807089905808373711837301371074343624657480853400101132258922625141245715368188509200397231286576582564349404509793195367493616463083366444841254041361237433550002988583288482078347226452216577124469933290336039309742964487533017440755554600487641627988004904611691095344107673353140283492523783531385587579610840058187186919081390536198404262659056923323537573039127078383456940435128353693096750897954127149082724450723930569894695680923452519896301855050826715145926307543413856593469381818076671874299280845294067455669879213955524496329404089593365015704018774085516631972586465331371818587894462692702566040028361804311065894053411176706041132344859608723120798675258081757862025919829528050410438705941684023674704397532390929314265596639699388131413124659015697443214634575095766260871703493748505478549369557445329538449796207732443320096701576710087357941594720922884842921530422821317092937813504968919129896717453412824094202461835464401366993583344500135889015694712937664280937537617091453120499778869894535714335897577499900158889131344154372326048441234506553284795572395621461395469552904422947238770441337918561056900194844993286276512154487097296987737643140765783827581592071128564397858699765552754800825657513485816920550217354409686053692403460798162200228450907826980670723318597303755758506495152509424050949737270107133897212270970185334861328265601098720919012361979623137079644688255716587035423121694359969669426249330625068673832197760626237843760999859608235070782390531376132279853748785840742601617570671655713234730477242458554895344827002330860037463598140465260746405107682281252947814860609671816192557078111044127360888515529522870468085582125111547333039496240416327955240151119029485135556564576602368661806422785569380138966928161827638643861314819783471454818394175227819432352300245366980783686124802713304580483050776305974690705251831588709315150107231994330268666907036385881366661514278455933147229164549842734443823908060808744939413808103734638781332536884461964387775828630849311198057807310184965849447538810531887941116540202802089793052739202283732211104636196081990779656786903896843535129266700356564292773043813482621388186743073115118519376265874444354813721097561274964508229085304699769725511229149270340588329743252275936452636091316961619449929682822663306497092482232875593412819267943358839088631060478551987222106981938195238294870690915065782041734868208899916920642330451343646915833259524387995393277194462363357319478945293209894388853142583325618318896587881281014721922043267099257489913111745884980064979283595332719947311176150441608138413742405764549665459161578835505600793857969497096916836386877846783173914949518399781782059612565960888398498103717054018427874171322155141678575948789111146743069132456156349098136770276500247296839397020945316387766897162852651405341830011417654816631841930358065161528535441766731225172571870392270284165470845526245080883612390105274927677208944343997980925027935757747427289396041815175379020957018384333331279152296680389617781053577006490226272337455891460106301078863082944249000220523868826869768379400794681976827906920022565599517868033269824742601416423187480748099598621663392460372139986323095954843029451228274877366981297319027588284847335751933563985377714804787542586757162800603635120102361154824424642578973656886007011997474736966750613538279860635952985354957564507935170009053185952030173071647257010066959616047381943945008590500310079942649167519754262589233913150115786886762941261145480491275129330999854790525902455330204742214112073231201936973717162654682667476088210626053741379120762314214699702568538684437093883664334343119360973002551485387343731001044218956690854425964859659491869257705846899545831636719708159576625324692522565685869150368228252308051142902981176848406229765460842313244992627179869894292284284679800213583793723802993713564763573147517732346596835311859851122380811418394235777170316643388575666381133883991785563869322265442698229470478958510007593828514147442603407178541621816871627649596447127909002200157177459718544181873623351485008394939084745468138491461863258539094235599193498733329284479544272741382595052469450953645368028174460504490849653437575977435511820164736093563677197505946356726168548720784763822328555491293080395426332979756858889618071283365816180766765683246934172616159510475781517172482940105285424846620394581376215420533434818489493943489335012026562054201760714754282834692669917664974479280379193060352066987624977656930526792885909346718641077693752738919621261540304342451882598816247767017086953186217550071512830829525086528997969240326005388563675103834022880109348682387104779372483423266481303411328342326222966748919901389949878475161786734179173490779964873517724575928789968666150140126813441425269702468358185871291419722659931979670801167111324751318766596180138681789090726009682773372019783910292687462210592215998574830824560707102965659523504574518850387046293583599491211428581500228518669107539500735652146335546713160633454896656428869494310521782926541591679893256417760412640583138607968212150986544313580047295559774171957065224137909564365037336579361648479272157098053779922934683083603277743638826213867652160717337937137633043234309826291935808463533099425421358835398184714420439416852813586170987716225770772896963342424376412959004536524313714543717887947756652160830061746273820618680464178724773729346120997132290752795575589253525381152012420417104798751263760147272951929639189534143462479411456716622217173591987040779584418308839274873139782448161951791249478041443315843871970090449958222904696454433760363887501896393252138278849127610769684897115921094309620842725815227197096826918238754983706786779383549253661221564074322813079393460549874350102198626053745061220234757675454239684004088312193848291217406712664548480037340373577269559739424991144165270000646310550291692602470274371796958628523193722499660897772740271919179500847411341940118316500501015090134888035811963563187485751442253982957606117188704809940375230526573415635873509149617345043323424336909864467800625893524098280299987200308374123349758397577476048646938592198930410515217744561091963264839367931177793333992950991039761957038477620116006796106229935341459650384689099671331157950558378114477077473713865991836554396195115741040602685573548053766141951275676606157685713415396831186721600336193301079458847964631715078727426651875848451451985252017871423071338457056016108179693236662603400395521365540685562485847601968973994281652190330459344328999173958413923186365647161740184852118566324776576500693414198964519266260499737796189066373135724393698907041246918493357834081869627781124994869619699631590759635358185141517489005186163362649914420856202115141538487663361614492098302704749965872602270086297782401264523984665394219243393139582072422732739743614631812684643065059001290226746001101524005497524860215770346935589653847741074999880869429080527440334644061111873103507399344302808639647983126347373700964952840043968331933216657482916478465653208002358789663974772862822701880768402707029626216336389528973448258704906800268049895623635026588761349717689392599001073621211495900409241106837383461373224109949225796512193362867451314672911384808019917650066470745328642938910507081240114900740165663608588361484745315850477060667934478835385514910508202623934033006886864838398597402578374579325271523237430959692632955524196534260490638158417206054781385243251848885230273013673400675690047976142032319964434557872094963565695483497804643514085407495509457352865706978202139299189151229575264986799778012298313145827608716239449082688495244525601922506587693389044197820016462812690915885570213624289956032069116810262247216440274687166138780608023989215186014354092854986619424782708223881992270642525134636677316916717361264721110365124949228133858675428887332492456190859629245442950838099598755356138462271929577933739562428271322416601515230400670342478809193133241314442900866278159862698067164038405933193513940369897839998884913070912175094194991863837732363986476764282882260857647223267812042327913153079412869319364871506493941196527513440160258459372647964704105701520508149599926378398214993966572473812203296190922966749432877017259108922823682834909642186895022907599958655082164072658735366269558983256940645951535324717818705146145017554286618225801100761130769651560578117667476154059793428746431662863361094560387470323433153269992126784270657242557606979730786223313837945462811902471770348971702082882278556399946243695393841372033941234064848991782015269959697863671619768101184688271532520479852516023199752291756035107373828183676157745314257329834574187637957888126650251366437389649261452622156249833842062500484316530080288594539698982005212576998995686466315778854009451385658141287895026986602182494195120100335413974906128508059056579596595395884929004183767843100088850047315975102527393542741674463985512824910523092410606817712384283691872076489109165645040927423820548491050498326754184345014957347351545799894063913008908851626569996358646969490899829088130564730626410865348150914591947107262327598003807839068171477246302939694452210897731302421333790173435069074149563785411180807410448094950752923049653529535869023805226823214417296748180368291941083623642548758286419136317289232215623769846184973444662569971849492442011220484292594933865781023746765686548469513152674097041573404390953638097400601681438447863316396208134789949193058376064701037582570240300358891706415381692963692509732249862585413775761817568909276757557986268997805986160778528986932277543414240405838021142825394157112129099507592479173680903587781410584670269472032758121836646242460931054566661750908336194435096036985803225376355393846715202471494537602825883550821275439432007169929747580023813052409170841957032014204006819207912917151068368818189107373001927265656986754944117896857130317842739510225693535458043392699885439850082503689728740937545011975445682407771546662489683909341874063008013195767289467728908356944773499080026072998530382224635103511199705956235304392132463438547917785268450690185830685538068736093679645053548091926502723436120820385284092005744977087821060841030743573595046833266673764303073648454080419841848549485981707425043603302030255516846823401006018096348619600372797319138195737938179627840308724776595617424120193167213303680477382401993882735182137790409556079718283875860089072240183539050396038569646572702057062970590129241794701545468783605766598101325516786370569701599055543978566881444863517893691766468099544423001421952605947340664270335442899055047622791836788060440807285338208012547045183960642281571468233492128369535447499993283024625673470889621822381078090781478452272434267674912988132052548932805236718050759453600346124763955605369542912399166921024009671826097433118964872433139053339637635572708416968992044752127017672658301652914259098361966539486565044698890277378642787616083779335025268646792409868508987632130025865618967208895608604437757681681140729065321141394864805662159538316132298245335455149502280701461583252785209993558381094477385186132233459836194974450139683346119767986292112114296870485105255434191060198706992877298613205075528782615560049946808398301764522266508501699518303579547634751795611869716704144742210184339058714655674353247740519489563722698301281521609591129879362315752697920507199797669224226740607216327998672242744895271981706934878308713049385527474411079354161342233740250822639535739443191025291242986711845260473258202011671830014788397614865605537115494644829089507087978220881317146094370757601655566071307940875777234643185060696394309752734842607210265104590563090064071646887405502489814849417642254502983735968696048030867167000534371832784828967656516488075689560244760242249822858833654154833383903415708256676671302938342584921360393833121177131111633283484301909537428928523153598286832554992716873124172571509725395524772644767356244542856097195362752063939919548896093983398137189273712277733213677899554636625852796111309696384208309486054683444423461866265510935052930551071288088361616611968650556650587642112490475653092742514370351726379093262088248990752497637242112085750313341607183636898279753733082183136412979751725486795076504024387277726134092132699965747009289170015321982329601898163462887897512201723758907591772992264939775947439910117784658822413750240677118442424870055083802024548941351164786502598732619562555091297031272802874399418703911422405108145139985657067275319838779166124737733089717445367078466039384170003485115574342721124597394482867442615575766912008254367082610477546646743903169455060521076122148705972057714662096996916107866796111597846942163380251991890637050764238872404040398708402382023536264823380721429940589349956873234810668116885708599913881698069000497627075100643416432428011581361826706967045074759262575458191350365780249896080963062829525537319053824857448106516969801282337519554890793752006955810073954775048066677396667400609473800041434247603948954709873646634891065094059161412340835792542123467855095338692696122516050031866165134015168615948559138274264853557781218055566863934301786818492527047218992250187037189711011915140917276291161415491428026790091828775829850646545642830784280657210232629168904956837519851744737365178414985344038515232451113452722750526450614938095271519163500742028612204695540286643160907093467401740277660984539784356047273343167999782145160780787633085877054771992375795973179061215682787483883376307109407702478197776489875618724030660724209615417594074554374697984813649061163546096594358110208620008861372172389156305280939484454165026386174157236721432134693985377350718133535953993117288497779678258609483000455199957552690750802357568799984491477888562523436543420582535810442600441699105096401283256631178249564049109717911102872612424679023992965021755893634059884575212399637545771255342666249178500424271046115877028993767115514963452149443021484994264065330102212118870394957080649288723799419643932952636851131413368064798228177494052078551733246480109037113335494874878313910738290053718501385393275583766497189297114544506671888598115651924323942772019253829068836886935761252940650428079924407159897849812292935513893208657422653322669188963680504274278400894781964360865595627136144792863028640620349109913406640057259155303864320322485521549165450704031223923823646060062218982895188857970867058817621427749319914074297935852148152537922002165584846599402094296567411679552600101382399717291801916521005867932212869546522834731285409582562970753032659059060606623710708128583952371930499154816553796707800894970838974472707406742687936010802040611080714778027232252054696908254919063076353787534850779044234746606995300683472619794440588697689968584714357629842123941127889405790953371024930896882421564572625350592683909631314793361521681847719640312259966900822795793411089942628775174724923772336059475753784820178334989472815435155423283161580773522336679554362787599400563802606730879526107189053617266779131298688351629220902775903018745954403258561782312855245294162830407954543612514033519354270090314937140312875265294374947697489562173951872470606967626464242973772319638922855450301671474687256396060060092903276940571741168689402323323972201251329781191381562603132654125249099227180632862144324105016312259283015197539051805278601906485991907544396083430062422541472352393418241901896884866935289210359769569114349731695153635690455197736343494000234755658025845795540484634904320211878172592438730811072458769341979025383283471720981861130895052865015636002162291925627659661356675688739590408119427077992389957757160801070938858514300283773065975985851022720570128906167172733524636886810501216338836962972493810882332220953501658860419775942109639254725581281631289881998079655004343458165582355738864894906447206326464995618905579969214318223567534808525000647571797386371051581202258168492941896758388476790483680522449599133627507340056318006008594031686148510867873892748177065653232495732061364779942191492885637922091406648606037503809070692584613982630537405797832701042365030112112074346744294415050471127885290913989369641138507167360123813628175280591308317804079187531477033808169602076241523199287068513872595506412158015211006783787262938811712824817517238431774261836341850840783970522863890298904877682837266754480728898384853646743853466890808584990672466580389734671186206264542211014876772060281297094050340708413535564532051105992255729590877636875406265283157217415486087646145197498763404314286980211599349011203146913903988528766892118124642003824048476867287772372965250891089338648720875692559406345656157851695460308722590033846392423251020665431682148391362991023114275595295158194141253962837144972606018142011321885831661164576638121295680901142323660655841319886881528405141638136789284939643189492192094508437939345901522691422364923459397753466398612033587792133450288302059129624534234731985268878210479444412609620653348464063552401361553534358516882160854467267719839104548966848319731947651125293077847849887939073384044787334342394311155234615358999751504943182262150832814261393907040081765502027566381161247359153263354738051367613341336568200052764112614418511421975021481902204704489157265054434847849267550169075026265612355481510271758094811402787125293126663942793060307343164895818572905643587987534502674316830849540369672457469550619835508567823392540185874661189077532981158979837058706753589635123533824145621570273783988507508881612680673341938567795526745524420561720175573366888456490692338050767437901985611370581675623216468598447113949817195686444365847886934302312031988091992978751352217545406758562115758359856389599172321016202279890407158529737193736949311531430244690389303564856219812492425145790973833952340070134646725746412461874421691237144588895320580337123523759901403459659891466797943138118898931802082267764392301911571736360272345617209187746160535770674663278896075222671152511929440556879978890553081874272943630250112449338778536875694385323296003342950195582232717910524874510656682052829363026287252175351053086091771023764556471239377909608768186983375145085301165222027223611618132627532141010343620214639681080397355692435746318346503960834885686206051247944087886665523877480682113545533871273023867351640690297660721615113372231740314738559407510721492173708622225316329293925382844502734530092632500819807194451634554579997256654492996477648144671722489493120128398774003236944750598577868931910725636961918943046083544710764059882238765720196466798963914793521900053620358172596428263089626796486917764043112848594936552547186611689904396344601800015184240513210487758220370538005031763647144766032548847553829308757047737125743783577656573848537174819613777613169614667983561378757121368675550892448993775557909246089582209390731782427067549136108953061907808505917505932838070513933226924709474769932620682347045970489124180067742897278075913073533831648718767837348119080087153471932822850424805783110497796688484927629032372917975650654649828447780290948250118255833644975160153524938182852504619595784963894579372720449570226249005119997976451551309692141252684130992423821686846710075193990595823549478768111635398772818503460958874016437906014774894957548207661694925577176162904464217793027077634725815836508635612443037074908590957489558993323142971466922864217122780503579546984780092307857188173763920664680443722611541009067958231382973303107470521625035051724058393435957195060827701330766094843181409648087969708203441143120531798226471695647536317074730083956260795371566653043763259828974490448682359899021215979643213307252496905729414445364719560042232922887580301724483393451706880483403271315042168256278338266805358371007288108559671961814009496844159533842995129446914925108373342395566186673785342791565404396150281587439128961657441206291994598833996646715828843639337179726102267044654879527890677502461622952115143805786778014358628651943063032586900493957930256340390603194289520796309827897710871096893579644143762719908938797818972854579799839234845561139537112530341122953711729617192074476669481302623553654385757041042594240060458961021287083227606829824213978900637301727612059645052573355485298830745631111279752362923711726032124027648685312887696249918830904397717727506285730398952307880162569704439730795900233798697592490836193467140509084651137962848813801574845513787309892438707062163514686994197363077733891479390328406155357326873719251837838021002629491884900686975292813394778793812956853293883499816712399766091258257487338934695183374680418254668419217475271272606095718723496468038249592661580452305772104497004939262367994929229992580422596543586710654645944466095093940274236317743418628350622731972442404359415747430273020372312852295411244460357202928307715193064076821793184261926617113865444099216085823024126573940651736722554574352645183290291103465484221242733075269336057729928505551011021374581521189602165450730275984268497072891657402363875468451851433413594789967828219527294312892302772230277938109650683070443862583915732384370808286130001529240488450264256462480969329544077399707093145565284869544173164827491783945247723064429744281096956461224118964340864517039516458194178082090417081044530706357942853260204228776664775602918612328846388231499208695156113455502091134510405476202763953531811029175409375115319501806871780870145371676358874684847563347598505894658301999498946573133776886105632676796389561603592253813505020640264978578579018606048000468846334411303876809570218303485131579040831250290098211609835644087453635011843955322759956310596429914016622446353580979152417858500734696578359431098378579539348910561462175448664930354777534225478097130326004245833017039646476982566916912530760160904680304770802126934742961932739936662383774496253729006583379713371639358138575358123062518958495757960995523880604809697283352340159760190633700991033899836369260674570435554506093401126389337905599481045722010033519417427565284901159275182450936125682914099499138328715713218615399812666980599003437584696933320149849499034431415361156472070320810240109662884463858192501557446084950809937066253178018443725505251017330768562771729614553444143403907282570627871102592710760999053533853595538866777059412517607001452771878198764332443533622545503362390260062178770474094768676331798067124551188123023698879556196602178304116806473413604111681813681276402556107039226257093343947963545485215906972307690424269311139300315253815989141559385411757408582096662857410596620274071602642428649475517914166138692184537055177072217984527640346655646674854577855405492056779550428054184978083509487833750595657939904947824553440997899600678447536100047508102392878501973783169164738897155907766327665309693624498980619196494243292223398005892011635521181341081936537321897939631946340404244091985317606918704762103357823581414064008088837765837380340054745511238229220111623393332183754709741179676031497969540710264950116637240352876385169180504052561127752708679455255185043465932352625318888074316168565442737032161325993177424623304508954287087718477087632095892359185438036415159040733818480916730771491666417870056398441691065080543590084745079672754533811407805166201782979414563486461345817139824761595729802185367055869677596137578287711905047825696249596110418147256927084271816524402848880317989313506271668976555814748665059027714312728434464227025513582583599517769761771714048857205770631003460083281801151184993210338107639193531766073186609637094381995940426566899698916250332479542725772743911744019137401850669268422425379620569565067428421090140677772813734412434889185501258000892562961969195449001317607719767334540093830876832576533537347187827394822221494082510673895461598944475128182968286357739172066434748853863693249507837744464569622119172904047242595602703723945036678984089817757889617061759415262697662153684077781119855532727711927869222222801504744386225234968665406591198104481262524031742147418497814705960042830960374425943777095541467585492007170310157360050891222848893134799523085206744855445819718299425241585955821447886418007576034508486647250224913677402907569837614067139458618319607812601821187261944737949320777443152917719258098751969502522022798198179952706239278110023818686893915755195056087949856945684075338236609991514195624031766864377404540212420173368194157717678683433884539005397738396176729092512460328569164535864817878103024351615694256066174740935276742241458844227554009307854935408232798623188478164013525982920720292712930054478046340062832879565401783812498662918212979123627074501726932592455320546889272814001857718925945319912967567982319207582523346398390275693262754947229259594894758264852097470112807034178035238951236015925836154526943074433055867558470561648019301979714066242670217804711948116062585816677449794856150511423951412257090385249952887301290979811568263628514777266591080327762038030320805577653976782403295296663902129968698876200883689775443959366073901274916786472233365131501814655980707295756359295252719354210969267256013978642528026515002716524123690070521666451089897248715945565227522125627577332332956572552063836316484886536038780998326890766811624703135763230624692816840817615894030434972483122408511319634903724501590550340640196230063832482676378036239146347964173228735265452957184373591060824964120770251780953468295331629702217766422965693863023281077553546789964250548861542317568613959802192904988583967334953538178525728450576200638749477743948452197616644288005433715435197612672784876429298346109187229527185472491524167407497857564299793242929637543965821904695018580567783080098952947069282213599599774320121639073126959904247956931259780777747541723233373361700777912537961849801064623290453338533402819702909227537364917270774869631104676603028883520135994557366601973955510313467791040601178608733441365024098432199609245745801670577943622528386865832946294436024082124369032410589884031704366046767928585408977540099009539894011612123129407071467339898611099082863249551331072421683072417867738511888060430990136727725050824677296849421221146435963275431882300854525102900489709803284847841839889079570079282313050594302647333528599096801533138344064669257665329252427471609372254907045409291140912212422825504127604236752786781800355689735260750412876039018035137552707706282330118036558435215051955593204744338602101269058869314973984100319404220852984854347049630664562414792224896523142236811942481795811944049684490117033942398362716819672545261202960971331945386219879271285021318863581123454125871969260812728732291398843172282568247671650605613506693238799606521346352735924971167304527053533369709370754532785187306434068750989756412856460391287292305386958587594278416871848829613054973257879275640526462481046206325639740987052513637591785093338424898877045760942116093011083451388969216801500401798180728718452060259798456448946582633271969579389148281776120466768906580097998977786088190087696236422014446612226291785395024035688823230124809005182342147887852147876680308884939400046450392748521157671293156308959795046005591334170223491303259482233699237321951581897769959826275820428367674907694737150982013047909620504845605988961070610660213065641465997888216749507688358810555357234729305478477483156810179697089885358164281175779468136206802848958156558428927073042116926299361962920762906649485536755024838610833451309612988742411544008096242257947768519869517528782196578509557588109093565725520194037188288448821148756716383635101333838546118170570593268702189345923517226484915437129764791538727513417770537999684873622363409363452482897960227724821209049619131784211160375033387548936927794832183474399479229243346746937598443980726426975935272871320156496694228486866597594241052986612648076429181637095350639633897793162211799217542212208725011901800458879791666062124878848868757475852839822074037086048443070441613101687950881938892354628422569527881819666050730829569528802539192603419243349895439770621027953051679993629438672400458721289831047214390604431120322212201783965781008463484070746284249567702092296162875461230026522345301693554193279257898232728604885092271792344513822359169594426795716219269910366271111696084575900806648435948598936778356269212848350262052498691977127740805716647134703404844508042466419436921095738469945663495504384865642980081825621892312875600037325761219471692760524224917519211479158914688528132611653310358627651151050670278113043121190304312315386740902173381530142476113484226422606815014658290389032662869669721805342788616560093002467986170597468737533591508962720330358706823666746823504477438540041526752203365746287418291070874175120721467140972823784302429636183923820643617973762846469045188609753087564695943518310980403845382670964120342426169337026576620116236596364567441649696518579884913407458316807534292563737516506753284666818855538850934561351294640966336255926630476192996988370019356734891487314402319907952013642646203026528534758398888555888652486799653055324436433013503183296839470862195189527605024667434001626014382573549944320909660118660177470161499824344660020436605843745024249037603383047793300650319961069627093980734295542262639956526002675999804822640465773509122538374662462327877302172654021432748143023910955295608484961920259760628388365034020565711346250301081047887649162966590847679733534386739252611536269876988691407362980057517440404954305798904156444447052525217610438977713665945967179292818646490375641024570956991976043180655705074361959229805714133194828219214771514879359790495701127281369575104960835886414829992954619302854291411804758661470635844806715794647862357206798770622627591207662376572934615130505635885714939334022439445779638804833783240496646398991006731280361523698996762755661682557198620865432289995109925214194537087543508987911065635713712433061711067232887673628677427120112273346145019384181729441211820129348602609122421060393082220857525060561681347233839237823651641153868085062594223876750458555267729682547630530202122187995356279608472825213828209228987743379230483277096953738708909092327435320323166175641623690809443721125417765534125275812917692763041983789903616674405700585960601079287118209500901240635928654044874283368398375139984211611293202984874225547242690409163977609816746560662913301854393207506831884044588386161034422267633392992115763661351618252544621458753764286800629368739561463863168225782309657973555984166328462073317445643702235831077097522144652454161874507600070750294051637923822769769869986040526605808590396383924522955171563271084685063852057122447029768030542756256737010567114995193489390794528932564958049640673914279052636312351071121330028644058091235930185647553788322962655318681554911912242046594151615525740589978558406246205871729546471412817590664229539521461621831039399371853463458524458744043029207561491757180526353968597930724737343824387402932771245627208857096612317299402015633859508119305111177962548908142689132962070095288669831639696915513500974520118395443286571921482047085514716818372737380956964100258122085365455291118237476039412678133150811845646587751073822126560895375595266606962266972028972117669011645056379865134643662290857809012923918204362120480190086021398036071368897559290821952581743873743179402570556154646990915980807165158867097702439076460661608811646299594573843425799546979648232242427864257583214190576080773866888279195994083958486080305403584840301580736649145081938872441187033732244589557997403503917754519822427252035353551490286009701030988141352604224207114778069381751428907618060896164712543494591990005235925965487002557856893660346174776399539814500114507108741716194656551290927646831944770031933594526739878039643296805620675569991610080496283686012637052048556846129415327945640466751588968178569668787871210112990197114635317558725110319463153713144497449125373370065514597917490946877483396888399723114445442676692306276758339546319243379620692400082428929746074432555103258634983176383603594245830859032633007677128788167943429139422092530490429676350606674684137185141194364316523683018110597639104430862649607608203014106369757649710729518048990016696409605086891145370294213963035474720552296493549810766721344900348407988052606724083794941294278668574330517944153254938170114249440556886885399262727240429930494828821314333013287640515330975738264272720087267318838673340111332444706709098617666012742498295199702958399716744176071632117462700638801146145394610254429923838782524820535467903355117324839633417627639358261198363902524036761548465314099965563631129915838665067800357562229220804765465125998838186351049339316552939271584605431382993506639420285868216003509270394269840077363781777163129210232740482886909893208160318962064800392454845881631466873721816052552577507333463103725771051094986327351669109286384316230631370314954629647251650439486190345674951211425060837013706624575418473711330166410163649398088582131794156214439575285250855252788053257506319576116650453487378262676571269484850881535731785582623864161221855024828533016597682603851929318369997254666992231410661109008716805970844437287654707699628987179403949094683396404318655451475119451459175104600892099670389203406915852334735130707541603866804625962320730419778763400824169475164177365085286208120958002123096863066766172127945606777279563410184977160142436357483354285777293066001978662993722225642522041874687147709345041230802739241282394441148698733048969131037350748082773284746889198369142025854565930835313123904312861824606284479412989456166926274357622422626798012378718217145130267908271351859580320743359793514109917915533787552379554984857698019296856170693793588295727338835460648552112911166336360972243482179454366639612385733238255057798770239239299217212753114330658097497011222592727399992812393651978290394233017949927842280544426148073014399538058582413488514444553557925486303273022313564829110703884443609318143602613252071421460022559200551995120987637085674599527016217995232312067050341432369928899756797585884466166380983492966589167479164193081924794006881408460468073145991522635430710830166285301123269613984211518645290154813881056700379510507361999099601607321445045985924601171213659412706687148575093738194890635764412092766422540618095918448605153209403453476592380643791127739382999087807263487904171604362162032012874162144813459527439755219362657242972570932882174081814200564780400186322156525407960545622123644528295573554173683112512939809901062429822285469926329891425477482633684660797565036127788842884308371993363214007516709942931569184107998870254817809207817122916742211742311757908948430529655002324815497058009371355605087767893670732561292425785121747707427021284365816835603588852912736134465030264537489862957491342327568442420071863345692984680671735960629797323274222945202151996202803853700682679239163215847349551412601191996033676699865839983584394949446662524806378608790718794975062544040002765604748673841361762319681604344548250984241108394779252564103486308707738011216761169301147488672786495313911063913690037094375063602023605102082979148401423759554267252978733053394142833926818774044818355001172667108607863136095905489130407358967403969287118769317599688255259138857491670718753243106518541075867153090566663479887089364188369778134144427821322896591268696233022438621447354210943065990612492468190914749141981490586514779242708083249999794081030235526447065873119587681891333536941961183189242360506827265763675291464838845178194955267102128965357405148696080553359446623584717995891878447765091873825299146401899638504842541988670443236685982889812166541657307162270999329017877244472120053671177776387228998759388073638730609239010145479450909277787018942430679899634394375997373044627299038553361404293348813230326243810963315494617955846925091135640546897954647875428838835017687265452626834801425362509485584786774199014455212885339710700597659382106538822659522553115340473247226233285637266998591967208437082936846343334299627840358010052420450770131433542000190409919523997244640498638735680217482045874924130914331634631664311913974526340257739313690530106484613832124869875216348132203371834545767483876000276896145078454387966740730043460246058266563953148927585861769851828166433166093345027304777638188593859313543210301475062639083620690164049526531671867213296377306630952991340907590143328318324672883261236492969234493634305418844816560199401395926470446481692413176253719526306815544270675221927477344560056313375221954078888455058503112731729032722275327099839345106635944923278585640020599920703318849464243444277878187391849084932185211373031562853608652147497267796881630846054330572541601867137317251826447045870129474681844970474699080938166041570722344091985822932059417997865488157133844340037626174654595103033861664477749526703469463027766484293024359731217799342967591512107229157957977755348866701856494278956979575712919005415726672485162561072391199220795880805595563458781772023089328588708296982033264022679349401060747559030859020494446749085756452484635317866112394792630824917616333861492694660235030215258842085961852821913773455196490463508272713886630515659692366115698559144949202272749424029410469400269039156484007130510741512661447976356106750093198064270161073951773265125127356568022298492154388413858821953474890107722027972848931564757623655527281620120384257958462770019750651120651635969698061514640935121039174747918591872025476610768928653753108242981073391126413972155503473137266175172948304860694492063286692917438807344631120836310566889502759036631312608961852745230920845048262195668238101653991891542098866927707746179273063289756517876088934024491365427363744779544132138737400535617619292544906523227236010471261051131711590314882891274516118391721540430006549295957153533906211426589124995286952427529650236607035483864290280693401608080190818908593853428296380193735423016307980797275000713769341072822567300877482553505617781455810249408741889518105075984992608668458908785393204337839434128979406110440654390384913466966118054076554558034546015180943699422737985932490429549303640754031713052667981037396661609999820307495234022776751358106642224375435468461650097319782220867328085282723328119268008055151864570894724444521153590438509896642884483062284152242423233193314515511123650751627859301190246789481349271313875403207797084521272705217170248685645053591776871918686146015850958147805440947693495186833656927125816637159384681150022055466014238632661502155054659020311409465059032429958877526223054398059255783604885745931153943593655006102281079050624564163915374944875442454697934123070638140279381297128782141938226624228527954468859698063696784062861532296146922463048308583582175297219636612058796679308426472373795501896733887974999077152577482844016102844795899051832088243647863754073656835042265684622367492691002680898472061048087625551520339367274913555940380742344008521664162314139785704444941567863378606439549900700575350754521228044337969646314908153986114201170080093713316935134022488120388701481233692386118801780610490311829055970070219091868785219364435259293627233609106740891181380488932814828696682549896055428398535129705067659081064831228168815485006853873307714206982477378454250887790558105543803017178906547809342674365058507186364069321252286410083812181221920889495438184512012558269142433171155747545885761184793742942499278037927299809166097132572480978017649467371093364656436834595064241196552639730377516345452652144416136675000386826012656355252653269447165662645533937363007338666968040271088514611459238546063613522092290959212193138722655329997215084746465106196169735911598179851746125485475306709126504065288223841160015191805279444675041962452784471602235794053968250846886014164528738233619074253289591982342246951522325412210611942200355863545248614365315352453334308980056620254990764852386282721230090035848665752842856303862781982807553019382941739061399401159355779407036661248975292100848043442546514591331630722578460998757376660499920546477550199388732355262973128870727141680908422979911875925181738305570635520579784683837026553510674744433497021131397989306128279540061224621263445052577755101668951450941928126617265343719240510299100239601814031003627540029079082155490098753606838864743391648375762799304051486407322845968067974177849248599107833817141620444281459260266216408381166924637393056803031156171091047612122787496283317146087044377094023973260418011108431729000448