845998766309322484522653919741411941307601610758514233248363742559643620060464745547969727504395949987268307660295151520440076719860685663331738158981372858027950549669707441354780884708394598769702032825825287029787739247720150958212693228519292001575855040519062636612994468815744225666994272112112638526260843057110142295311517431221528677638552315288138965166809516472683643021165725895420994798599135167781883044468222542320524318746139695514174738335020424699947325668357332468659528932258484824713218022424562232451359070774105453015125470493844078137003977450184544153558427215737223747136147088887187786493786880228016495813630566143223200755839897998411913803659895417996903294780673459816224037424622628028372101447672041412463990296494612278424628305657895379078374822518183621521965969629649639194924695330459497953198861767234589263921097917171334315723363199822183261804635959553193863922474795929761145282036429870764294976580852689967416210238680462448339964565258581813370873322224830559662464768525619257319176983561973332451807129327679003860129086047272495057742404079935571725404564401229406820556248743846760929161728532314421202298565289395119102562044102772755528652147709135953989029623358384046623584814427954231207596685038091073176421028378365456536314425214648318224990588838663397310269696701754218591892854176061351064733285587052485564131414448177119569688896589224667655161029862487391662297995742059242134478760018571134567739587591038949720920333551739762185875369675080307154386546984738004077290860304244217981862216689393091201595761080972614872034017593326466228113419510415813534199765529720635793745772376199987434531589690061398862950566748082574640010562928529358328726760556908608323849107904573165443881129839981879474138908783980491326230613314426675814745193820972093044751471273811101771019755911431979214518836653811124738666503159358052628299394385636488544400249368814012636637519846771524752911006799887210638943242574882076253632137707689366008976413326131458562690246663855660713366899970737243920674772994892713941476174623240162040848013764749269844103191915797387344895085497692493189762875079931563355773126921975990511119317996267661449371665549554811357218548635581815604233734241332929489665047249314144622671686327258746297850873734992309340116551998627734483717695760613014132895058495809621108991906629420709595645112727929687154016523481422759921895142348654229610848587755490634605229837539794269752288521622927303159173402034942836654386340736665111773076510439903610509047929055848240846693417488808481211296231013047775354453504096744572639152362313441783136616465334398460872229546714922245788126058111721731868723755649246179596616217651961569726639290517169942131415991323557808167718449922459974445583989372607721382253639044869550843474797827037004951069016936707373626401944217197908909636853303752940236653709427009615557396967417698260448614893799116255818146002617071035529418744881254884151529547973697965835981133217958670252224519704192072962446972131792779758481107623115257642398941206713247903959984846734385285597114363749129213872917140206984477566809255752643785379478820446700959705680959132051089499467120339402779732921528703462205100146949627852713555395184190978116114282782414809719565374925628021672290792746540495095763940972476716403605764428348615126495475703334255924922541157376548409506885636056419774479362842493324027674470209037423723554743493766543288494476325811932195973741068126466966055719852306729264860939658502585727224286741755461062317885891973929201670580878231552582622941132877325367416034673674714348977456491414071075436914776155356842168038372981135978743765437965797584674119249122645496154466372249934881359383661891952917653258584855343520409758689773864469539441128661543726709052655173599869350875082268473860075001252432766666705013388665809428674408804157573018524072663926739188636533143799392028989701741738906186540762086327605671570624671762911581096129959231296666869284777292351830127192996745860146263729054685415870619760878558435680913599066226145782306322886534437757015737235213162658559124987332384477490936333584585553569851630263154490495825578912370693399691675201849352442059343302222239789380599526130899937948344708661264414514023296647773745552533260687274866076233445882414147347339562842336054507124147156238365276703195638331183447602698137289848519384904921381323647477240420709749938698503671907813064420821127118318681986737564637349078028284322937028854137025043208683421387457583403091776358788533260691310448314629262631658290452219674678688068319126551992134261651809524922435183180336175646177009379556251719516430340230572934981768634101318592127027827777218691721251231788793269146757263078657325244672708937314307101358181836347319421868614590806589745376263186392731245802784915644611353473544785191796924789516125833639706335919312914803962915435038270775028101623538712253800720034668817279431999225037783851224805329663381663869931807033740197335311425989532872969070003085715066932900630946346369242598339734756179073065525170890026516853936086420520872754815504537430069910938572764296384953026644513062688268466151418214702275027082915615266517449601240794421155269810742899635752732412037726195685185823439670729156449144229126030581252958758922942855143283235192351138028841295892827957816727380296045834435709410733342923153531408197744618832774871780369590169723002491243611941982318597117359445255434795229928973166622472834561306542974873714149654357353985770177066775560901693432491697681993469855742344631977714225643734486892898273327967058766925232823318712228451752125184582813319826743018046038625346342097571187308762526376518243857365276669749274092763993626248364137933997891894372025751783985802514521504