769437694379830798307902279022769507695079855798557973579735788807888079843798437973479734790457904579772797727836178361788327883276936769367801478014788407884076380763807801978019795497954976932769327901479014768497684979720797207920179201792267922679360793607807278072788017880178837788377922779227798477984779834798347984879848769517695179331793317907079070793567935679706797067971479714768567685678045780457934779347786247862476859768597735177351786437864379854798547903579035797817978179851798517950279502779637796378582785827908179081764837648379842798427908879088769457694579248792487951279512792357923577964779647645876458769417694178058780587885278852765507655076877768777806178061788347883479252792527974479744763657636579040790407908479084797397973979019790197907979079764247642477414774147807678076788297882979852798527682576825783327833279065790657652876528763847638479059790597983979839793167931676450764507797977979793367933678377783777984579845781027810279782797827885178851778367783678022780227984679846788617886176442764427838478384786297862977905779057583575835790427904276837768377937379373793557935578871788717640176401764467644676904769047937079370764377643779057790577934679346759517595176531765317900179001768347683477856778567680176801768447684479257792577906879068762407624079504795047795777957790957909576230762307974579745790727907278071780717801778017781147811479015790157901879018781557815577954779547584475844786367863677995779957923679236795467954679938799387952879528788397883976430764307597275972759357593575657756577548275482776127761279351793517924179241773207732075426754267835578355758037580378380783807953679536756337563378119781197956779567795217952177535775357835778357774377743779738797387732777327758457584579731797317576675766764577645779718797187902779027786317863177833778337908379083768727687279322793227762577625780067800676234762347955679556768217682179755797557594875948790347903479029790297933979339754557545578164781647693576935790927909279371793717652076520785417854175961759617811378113759797597976634766347690176901786117861176374763747686676866790417904178021780217596675966751197511978850788507647076470763727637276878768787636076360758407584079510795107664276642758557585575862758627693376933758517585179245792457583175831762557625575785757857555975559780247802475686756867770577705788847888478945789457786877868790967909678563785637757577575759397593978881788817805578055768647686476853768537860678606783767837678584785847802878028796017960179261792617780877808790877908775672756727954579545783417834178833788337974379743797667976675833758337636676366759567595678873788737801378013759257592578368783687647576475775147751478046780467668976689759647596476871768717802678026785807858078064780647932379323795177951775847758477630576305754947549475169751697746577465792297922978003780037644976449778317783177340773407748877488797527975278371783717838778387790397903979357793577883678836789427894276905769057909879098783727837276273762737923979239775157751578947789477742877428789347893475980759807743477434758017580179526795267546275462789627896279359793597745577455759497594977474774747838578385788307883078654786547597375973763897638978353783537925579255797417974179086790867952079520768327683279759797597934579345751037510377871778717813278132751437514377879778797741877418765677656775654756547636776367790057900579052790527578975789789577895776228762287904479044760877608777442774427924479244795057950576570765707864478644793647936477830778307951179511764647646479237792377800878008795017950175142751427911879118763107631078118781187801178011778647786478621786217860278602762657626575652756527597775977751447514479250792507577375773785867858679506795067593875938788727887278542785427585275852766457664579220792207635176351786667866676252762527978379783773317733177962779627742277422775837758378043780437606776067793117931175644756447933079330783437834375446754467882878828768617686178160781607744577445786207862079256792567932579325790107901075860758607766477664789567895677859778597839078390764717647177845778457592975929795537955376525765257590175901779687796879785797857693076930780057800575554755547975679756755637556377461774617860578605797137971378676786767910879108795437954377484774847563975639766617666176033760337839378393780657806575752757527543675436783837838379061790617653876538755517555175109751097541775417781597815977328773287657776577786187861875930759307511075110760887608878648786487655776557790467904676444764447575175751768527685278016780167894178941790807908079541795417646276462766537665379754797547956679566765747657477865778657751177511789597895976854768547642676426779837798379225792257798477984766647666475839758397753877538776627766277656776567662976629756457564575975759757577175771766927669276882768827735677356775417754175412754127666576665759047590479381793817742377423766497664978363783637748077480754577545778669786697685776857790647906477435774357584675846757837578375474754747666776667758597585977632776327541875418780677806777665776657807078070795337953375570755707556875568764437644379535795357814078140785697856978566785667904379043789407894076448764487576075760774697746979561795617807578075756507565079403794037593675936778617786175754757547604376043756617566179234792347973079730766877668778116781167544075440795187951876266762667799077990760507605079313793137686276862764537645378591785917576375763759467594678641786417555575555793437934375926759267543275432756817568177371773717566275662778357783575496754967593275932780637806376539765397735877358765277652777904779047670576705790977909776682766827516575165756707567078344783447548875488764337643376888768887650176501786597865976491764917657176571756317563179562795627978079780783497834976429764297516175161764317643176522765227665176651790097900977430774307623976239764547645477316773167637076370785217852178389783897901179011786387863875861758617765977659781077810776272762727936379363754017540178870788707895078950768757687575160751607544275442790317903175770757707651876518760487604875574755747763077630751407514075571755717595475954797787977876484764847911979119764727647276513765137604976049777137771379602796027953279532768457684578663786637548675486783827838275501755017935879358766357663576656766567518975189768587685877585775857622576225799287992876082760827664876648793767937675630756307548775487750927509278827788277864278642783757837575974759747648676486790947909478057780577549175491757557575578415784157805678056756847568476065760657865378653798377983777880778807565675656788867888677807778077682376823774477744776841768417579275792789337893378121781217543375433763717637177837778377695876958766917669179527795277638876388764767647678612786127514775147781517815178369783697500975009757657576576530765307977079770786267862676009760097646076460768427684275691756917556075560793297932975757757577604476044795257952578550785507627076270786107861075460754607925979259766397663976556765567894678946762587625876657766577682876828766277662776890768907977779777754597545979062790627569275692795657956578616786167606676066773787737875148751487752377523765347653479342793427542375423764557645575167751677894978949766907669079529795297592875928786407864075124751247863278632774267742677950779507908279082786337863377471774717858378583764877648776542765427748577485754107541079544795447596975969795487954876569765697547375473764327643275638756387912479124783707837076673766737665276652755507555078130781307564075640790637906375567755677787377873756677566775647756477857878578754097540978953789537837978379760287602879503795037787277872773547735476055760557512675126786627866277975779757547275472785387853878572785727813378133785647856477532775327931279312766417664176227762277635476354750717507176073760737663876638781637816375411754117802778027756057560576247762477515875158768857688575965759657662176621780237802375572755727540275402766937669375941759417549775497755037550375416754167895478954765787657877363773637651176511764357643578010780107826478264754497544976671766717937979379766817668175428754287857078570759337593376008760087646376463754537545376655766557861778617786287862877406774067568375683788857888576035760357585375853759687596876078760787953879538795477954776827768277542275422768027680275481754817667976679757567575675704757047867578675760207602076706767067687476874754527545278935789357865078650793247932478877788777970779707760317603176249762497509075090758387583875706757067585075850756437564375669756697940779407750207502078537785377735777357751257512579537795377764077640763647636475159751597859678596759317593178948789487682076820790127901278009780097941579415788837888375758757587686976869764457644579560795607612676126754357543579534795347730377303759377593775495754957741977419765027650279036790367540775407766707667075944759447626176261759437594376179761797785777857796067960677563775637503275032774937749375424754247748277482757087570875437754377765777657763577635776632766327923079230785747857476233762337762977629760857608576481764817974279742785367853679934799347761677616757037570375135751357684876848763637636377433774337505875058779717797176549765497510275102756047560477355773557863478634776247762477564775647542175421767127671276524765247622676226774177741779748797487543175431781247812479423794237893278932768877688777372773727745677456757787577877655776557731877318754797547977539775397507675076754507545077374773747642776427782537825375477754777954079540760237602375447754477656176561760587605878141781417861578615762597625975021750217810178101773027730275105751057651976519797497974975414754147976479764766247662479603796037657976579786577865777420774207766077660760637606379758797587547875478756517565179763797637735977359750347503479251792517625176251780597805978223782237748677486755587555876633766337570775707751547515479243792437670876708751177511775959759597841878418779947799478073780737811778117762717627177441774417656676566765437654376622766227515675156790247902478336783367905679056757507575076036760367812278122766807668078526785267560375603769557695578374783747757177571750987509877970779707802578025764367643676537765377547675476775347753475468754687704477044786717867179424794247860878608787377873778552785527637976379786607866076262762627736077360754387543876084760847886078860755617556179382793827556675566773757737578112781127797377973786397863975471754717953979539775547755477386773867864578645773697736978593785937800278002754927549277306773067610876108774297742975602756027733677336751047510478614786147748377483788797887976831768317749477494760707607076051760517687376873782667826679054790547976279762757627576275960759607548075480750027500278576785767695376953766367663678001780017579175791775217752177661776617900779007782637826375448754487855978559776137761377853778537815478154782527825278838788387905179051751527515278516785167861978619760527605278963789637609376093779617796177520775207737777377750697506975784757847736577365782577825776660766607733577335765447654476678766787606476064751557515576208762087814678146785207852077444774447663176631775787757876836768367815278152750787507877364773647542075420751737517378588785887861378613790037900377584775847801278012797057970577304773047751977519761407614075068750687978979789786097860975163751637932679326751147511477338773387824578245793677936775087750877620776207780527805276474764747579075790775737757377479774797626476264780077800777458774587664076640790937909375469754697816278162762457624576637766377865578655761357613578573785737937779377752177521777510775107549075490774597745978069780697688476884779787797877084770847743277432798537985379519795197514675146766267662676865768657925879258781257812577597775977505675056763777637777611776117857778577769397693979927799277837378373779697796975052750527566875668768707687079416794167940479404795307953079936799367701577015750507505079078790787744977449781087810876903769037545175451775607756078747787477524175241757057570576092760927597675976798387983877475774757746777467750707507079912799127873678736773967739679058790587856278562773767737677566775667834078340782607826078725787257862378623776427764277049770497841078410763737637375127751277511575115775317753178746787467754677546782547825478656786567801578015790327903278549785497868178681775337753376238762387822178221782617826178004780047758177581782247822476504765047504375043764597645977373773737833078330787507875077951779517909179091780667806678724787247874478744782197821976824768247503575035782477824776177761777873278732775177751778109781097836278362787387873877389773897746877468757097570977032770327797477974773467734678039780397668576685751827518278677786777585675856774707747078735787357745077450783917839179719797197740777407787347873477586775867931479314766767667677590775907797677976773797737975022750227833878338773857738575216752167666676666770417704175181751817583275832786657866578504785047515375153776637766378041780417663076630775777757779107791077984979849750637506375006750067822278222776507765075236752367983679836750777507778589785897738477384790217902175211752117611976119774547745478214782147841478414799087990876106761067654876548755567555675470754707556275562773017730178719787197893878938750197501977960779607738877388782167821677878778787762277622782277822775051750517506575065770347703478255782557506775067786077860776565765657934479344761377613776034760347865278652787457874575038750387873078730782497824977029770297613176131775687756877070770707543975439752287522878672786727762377623751497514977040770407992579925789317893177530775307749877498751667516677095770957905379053773827738275074750747856078560770437704375040750407825178251752207522077855778557765177651775627756279835798357508875088786357863577707777077624876248751417514177089770897707377073787547875479907799077704777047763017630177045770457871778717762107621076244762447824078240785017850179765797657733977339784067840678503785037545475454781617816175057750577502575025770947709476112761127509375093785957859576116761167570275702782507825075253752537770377703750247502477082770827956379563786647866477053770537704877048775987759879353793537706477064750607506075007750077823378233775067750678218782187733477334761187611877093770937937879378796057960578585785857671076710770787707878753787537970179701770247702479109791097745777457750137501376306763067840978409795087950877075770757668676686779017790176040760407705977059785457854578759787597821178211782587825877505775057601676016750447504477477774777523475234787317873175080750807841278412761807618076940769407515075150799247992478232782327693476934774897748975075750757874878748778027780278259782597770677706761147611479932799327522975229766507665077083770837601776017750617506179231792317798277982770557705578539785397610776107774787747877507775077608676086775037750377039770397502875028750627506279025790257521275212776277762775243752437703877038782017820177617776177822878228764527645279930799307570175701773457734578749787497821778217799047990477545775457820978209760017600175082750827823878238762057620577016770167601276012770887708877381773817517275172775367753679369793697612076120750237502378733787337600676006761177611775227752277518075180774667746679372793727755077550761827618278210782107875878758770667706675214752147705877058770907709077017770177513475134750817508177803778037709277092782137821375601756017822678226799157991576123761237611176111770867708679821798217911179111773807738077091770917992279922760137601376041760417870478704785577855777007770077736877368770777707778727787277613476134752477524775248752487601076010770797707976937769377613276132760117601177028770287504175041770137701375232752327706577065774537745376133761337804078040754157541578728787287601876018770377703775042750427823078230785977859777362773627707277072782077820777060770607523075230750897508978256782567701477014770207702077087770877521875218782427824275215752157873978739761097610978411784117509475094787417874177021770217701877018770367703677026770267630276302752377523776559765597857578575765547655476110761107709977099752317523175208752087702277022760027600278723787237703577035775917759178237782377694976949799057990577033770337976179761799067990677063770637821278212770087700877061770617704277042770967709679106791067646976469787267872679033790337602176021752357523577701777017840578405789447894476628766287523875238750487504879902799027786777867763087630875039750397750277502755737557377069770697787677876770097700976104761047702377023760717607176309763097705077050770747707476060760607522475224760147601477977779777708577085770517705179380793807870278702792407924077067770677823178231761057610578407784077610376103752527525277004770047513775137752257522577025770257822078220794137941378565785657701277012761487614875001750017708077080761157611577993779937823978239782447824476102761027501075010787297872977054770547708177081752447524476053760537601576015770767707675240752407823478234760397603975205752057620976209784137841377057770577707177071752067520675054750547822978229770627706278408784087823678236791027910275287752877700577005799037990375209752097520775207778017780177504775047875778757770687706877027770277854378543770567705676643766437626376263770117701175233752337872178721784177841777019770197814278142770037700378404784047870378703767077670778204782047511675116752547525476054760547654176541770317703175203752037875278752770307703079401794017770877708759347593478248782487941279412787057870578148781487520475204752497524979703797037615576155774017740176164761647941079410791047910475223752237521075210775187751876704767047748177481770027700276711767117941479414782027820278416784167875178751784017840178579785797758777587784027840278592785927755177551787017870179935799357521975219762017620177412774127607776077770987709875475754757700677006775657756578742787427875678756782057820578722787227602276022799017990175201752017822578225794117941176127761277867078670782157821575226752267960779607767017670177547775477541375413782087820878203782037910379103756427564279406794067895178951786617866179121791217835978359756417564178419784197746477464777027770278243782437862278622752517525179110791107910179101752027520278123781237631176311752467524676061760617991179911778407784076908769087871278712779887798876268762687575975759762507625076253762537596275962785677856776129761297935079350755657556577326773267835278352764907649075779757797969979699759427594277201772017924779247775617756178060780607901379013781507815078535785357640276402782357823576573765737859478594767987679878351783517835878358770467704679085790857744377443774517745177460774607901679016785987859879366793667744077440765997659975848758487695776957774487744875978759787646676466774157741575693756937834278342785487854877436774367665476654785617856176059760597585875858766237662379916799167548975489757647576475849758497758077580780507805075569755697814578145751577515778843788437894378943757887578879733797337701077010754417544177350773507978879788781437814375101751017798777987774767747677446774467761977619781477814777473774737814478144