167472162375159222776424820537540949833613045738683017805014568774541946785329780147307982104543446754243729262809078240880925972493076886219397925066420315079882431265229031117052486335689320110845985570433093835380844176578528246336989159110274609489621866091223753586211261387499416030308022728696200380033018994810717098084673608272581726182510003767456733503080024944012599773066386073207838831879522334513580898230413659351497203016896559900790156075591686403563389614139293766648668115358283338552855313750063941903827424033589174304218352026311098551121316039996445609239281308762525979422928606053162970595619848453876480024477545052119112784059434440729476061652045859514767751048203288279688961453361033100972990389967021795224492812171637536247923285151569890482420933071817259091098121270775527285953882355275142121542373527728514850407900435696686026032367556167024257762531080640226116282916714706841709326441097841017629161626846550694545672127449301786930313544222821492005797537775991696678641265820287623243564298308268616281438852492761697458738711055641055439817472321662514769154292851982317253188216144531614173246098269816771655205952693363956473608614345538609254493584133893820227272801498841495825863820682777670418980517697881376919819257211258916032234917815622569846778605508543181216173350648601309058732259906063181517245785112636800399532055029376780193704532594506471886060849602170748090097274886471078322580888279032259264012499415396847208774662821918832112079093114396600884255431010409485772682916800194752232818459852043669606815674595609299719942260414592987265061862816486047074774413999598498876755243335472631290209160458343423249311280561577835323356109416167236808371920200784889224542052887513891684205040775751921336719054617119844454340178564515155208306152635022843610752981630051041855429055139669922086960310051807889953658915851984240855235404526004135747436383649382217232826078196855941951731574157628153181411807230790248420344935428723858522910317474037288974652572983938436342471553073832395566344819501827437680651936659328077463033519468935080946211716290449777765542692727667875292310708224085341421746454351022105278405304951092872532489314434154823773913057209245325149771917552867860615155082446653718021643831756534662434101921462468335727050084688113327246137391560842487777472908319794270984378416466578706850393393462194806038219892767915993787819415197119865130812226760129565266368251557179005976035711998319289183393868146618134861362097802513367346242070664689130436988664821335226140656855094672538456351255871271460248549652801973588623470853680304893746965383487217577809197478317619596610741796889926370272289301942405357616003440633360062470855084477155180156814468898682646178770434026951326920636733289317485825208626034160634416163454086943866321745202274198690812089315321849217939725450065861271339418171205604123149145499720106241514436604157797867385483879851880519936719953996617757884058079377546490785541499193271129268069990325502300923083500462800219876075816071417769460555358435202848575910461801699250879829504237079126210292711306258413803208772799089543878541517276943241866317738791810004449142622558963693909378172568130466586846037960705280259503374342317099250200029516564380457143805941037740659715891892339609027076652960831831503128862183893072980272506139120632109854367039925411442530896294449765008391846372506364273196857046595144997308583583832338953079632549204012321667113808018993732444032375161683345228633899222114921016342023464339973865062178387903387254607439771877730569328168944069124510786582134986885370617885804187928966221982913444005893503435567995240004024548077795504678204539058227726330341376302558309974026487255373849006291836803645858789944846819537003914298861900065780202957156260576800745492067496274335230055800031675450162819118208823633017926201843396366524411643573013256906457564149937842251097525203332327014114552924231914886108155284186120633497266645552932634346158239805058432382880778049358023214214158317956169054628622041061309077584927626088659721173729638361697526333416031912030975137439732453460382999524358504519287480277505873974994432277130948278252260280738110576474125680703366749233317055535449323443798103622929030163558902514046615321300279668641662177211607807833861363419277947164426269456428108775231154047839965002646706439845503021959560318105831403143031670716405379951928637269051439375374477042150817611506457448842073838589320336900446628802404017185918628891055838477953525501581162569403610050572896570466371197172436668262574187921922510276251159902830298776283656046114876952506374204277152690614852757720236626029683465257735762597304151994603317186028088392985459453937972302146275299091121156476071055949912911221368500630607918199897232137386204433780324036674113687017263050780003257865913309779294642522664975336010961494681941814530657362385705814480192331753225660658555986886090377054296989405641933652248502241557149681916027061173860650720106707839923606813487987196833335332200735323024434984885047108151700205549338959651016454826224988827375454083019890101691367401470339740548690523146500157372615777187026133313153313443063517395914084799793111813394502351817904067423222703840509264619996371897566978815536208261794749656071730836712045026572713850433075435582410238285802741948137391314438805572817528839955515354773807174718936630969254174905364345770084803669848139387440208309860943758594667083645073996265525089551182799510661216830824151215651162851557368879181506155320327301177066138972323404699430710863786318198389117110636083322827921231172348622827460176763102192574494739296158513225674849671273182800578395792927646492337672843336202632835125593716395446686605792317558444468755432314108622277460734305263117519585665577802950457770510347754078226470725029137812648713541390592364059018865979261362351796151893571117516570112418296664139946260344336202911963185137286509428840544401770124909973756992992259060451704344170447776146696447068174089834343666769163246400355113970265482147100187442302754263264153392993393868512719208348460170864189066837965543150727521820834733954657347742829037760908668591614348508763229967715625237410904217499536342332366644223303883135239597187842980991312666502832672061960331925322641503461683073178636966907435279971803655144418261253086023888915304391191316588426188013746112149904163399024358103800924864692471941462540424684829251741362756192294888918991184086922514250865663775466882265236484559953611427821840156480897486573764599374011794853148907064291098437760731569498115038340144829583374493976012777641462242268243428614024923084138405212661969118907417380060471307405448460999245008291213533350601623545190543749422399947927022233818808565187381696079062794877009620630224511051781026495266209200527548459458638257632196789503782116712485767573512925683988142879048435092340601272753850528570796138264236469473613101235581319764774118938176538433908945372559232639955997371651641225378339933915226885777473496191845263967213891323231411554690914466561233478894222476531498602644869469820986463153843557132417743818019514465021317905635614601949197416324921751772348055701416510071583278207426055526767432974651258082371338857635641159648608990589219346371508550150346119089447880702910674896776598737616113414717996166771592481805682939408354055914141390824780719333629222535288185732170858805312450834715064407193189217779233053154992274887591358170236099716352314259616113642051207865137256207762200045976487486610959567284647383652825975106779671563987436483577755256538844600282999928616665226737485468888001656890825862781823791493945288028615771692482416393710071103096252378575067723887432279366917962143639902044563226974301058937730656075131980172395681789595594360269037758163875337670626658027493537736121550488317531090345779010976782985583239875050969678402504112563513235898533252249672050731041762321556029012190371269068208627600514136719611936014864325833736231318392095731795356714801416589369640868847446641279195622094333682936919517283970856285704754899257490404813036969289575753755216986322378166572162193214682018783582767489816219917831136188934254560243866778141866542956773321626368989810028687801250641545777956475862920992105704146848131837335172527512355827531483476414745105649154336427755568402676690743296672965338350495825185385204075365326342420499714124790695427639272760266703678007032350793635241813821244863516506165211963527984078310910657089912655502158875405111511326811459708746687520417155544414318984954647298999674322411352969460205932515163194958096011638266493792472079633453739874956812830542243886101357261587687303099845528265048467296010963830110688110306809007368766758236513451788560957470654729132728175036897730851079408998650159983162962380763509099793013247023497800077569043924143816698403737351322392477468414134684226515710860037438419987206683426649015469429641116579836330449997337316265416243109250364012021491448890272960524048304446545795719109753021476730281393951505860187170322609662656986119541431629539612615616776407629907083089369725207212182478649843106086165433773531533262601893182763281733202547078417832119510925554419286427002530844800523734259355656385430163449058646663715306476448256938097013191368290572521302819981902152610719367659359465756420601513549920784119154239265611155903332364460629359893612058385839985211895358166977363267384936610535156244226460798530893570694349832837217828527597873205469106179963653113897218911857151740108057191263987193458912968799915262572776783345934084012066875849828430047182126294953617034591557632248059142123955701358316431211801352234384378495353081569438348370919688770422723940000736562137394476976563541462429929720581127997823841343793130564909697922750571070025856027284372122325537346458334567727136705647415791813911545793291415758592823747831534831042085199034334952147224511958752460433787777904681351935410319772686232060211101487323250209872971388906205489691537614821939537598878750627582205286400260934913918739754139462154305558438264308336528523345251444050185818447934985894108919299151083218493165331762164799891265229783654767491149765794185308725965786847864257428065285463013917408415579959457752964591609793003946261671140893667413178576062448158202538356761484382965082237036165060680008651648239837279096585038049479781197214807812489754987177432540749168054949497147457436043990214862635759833996243045378655406390756091530492445570654173854540451516282166508648198834613494309662558104836639815983329666566768209539779547690388444989841898551304991487850987593884476890393658353442759683168840627303091485041165679537341959578680757009056160419717347434730563973233855662367151237941112279307495069023421197432886787849052882066316184735279955582920053375063999779036789554193301780709705739923431677476416061191866358255996902069575119131663754675029772281176844518732920706683220957022299954989716035732090885899097749371585609386728916483784816825279495854899678672916053897608559874529735317880606499600790648086018125149528403189531928312534273695629986772036066527246749260386306506597265880744641477157179952575975163484713338841585355501398648088432329194442609613587513146419081828093360329485712193110120358137096990472760839206280007084231774649054833785701413655078626434748578348270042188511745295184187349117686093002867908939164221555594712951710007755421525633381398899591486894514737453727779466706681603712129981418892496533897527149447748843456568654142803823133310353585738416591945330318654223393577752370036581165188880082024438442470696663795436570182824527113468820800121215060547813272327976903863857239639479169501768239778139174478797425020528555281358473411488211994277438598986119697345793775400453620161511910264383544785746192697333176038766262074336805858893871768124336778031942075174519792782296665099427538308948928392364582116464875467907758834161098227416895363694640340685648962178615207046164629251326919739744337962573243617566861915990127060176105454835027356441691438410375220114704288739792378669186146111532546587722885995643960633201592680575774140262718425331642834776941359138207237439416057515988204927959801312014049585439719697872877621682424888515142653095785940634493862552486340617459371138563450142909346848590971945228756149882963659502955731749300265321769473511185563326079572089073370920089086936446931375246084831247199394109772534570710885322722191405210516514865290346490117998198711379005281564983470528536703161029768072903819014996269190695367054333375258953008500815022111538694129068257523444823567875024116705813730085789278883301253454699940377581642080761187631627946343608351551494314749576773157449570779741863162072401619791361545118678876112656624465064830976965598503883264314564038088702593465786263893491896429107722164733749303957769255341725709795821742560107953603591539115026349438254860569105484774388670671800190489469167727389816470240284455967345523609813743769977774974533903939450029440058598590027609498641232925752357376532254371932628095062879188698813892880114607600318445656122257735585900900595825683217116623758014580511779237541019758539224760024796807236740765225464430038066969057555721461566175043081931033855848809153637550555337003748632790947470401410579186946328562761088034328273676772268021591088083233887538794765846530773980834495252936094220590271923721698123763486455931527015584904132737743014122434252170130646649777034432257143138641067916322935068316172392701617215871169298462050460355821797380019833292535272419329492374263940211528794989068981327663929602753501059559971870319460029251841192327761968002829039464464511929039042367667779051686198778179697867109260867705859668963536254050538773006618534493579789343066632702286015724869538567460843481585536222873001864336138469574289754006981953103127732377194327981783123382028734610431137352728446879095776574444111637281448575375202058999110622774397373274954014260860149782307167906693905088493651620342105633327047554173330035859416153334978500830944211689678926718615893628742480254955270328269852868330765504076098414087642943355333740713455115942241218773469409783028179193351530217237474948982463724761724597691159420057469696554275725471731504535702782069594511405975107362431033925864558090768929129396810771982096917434926668182800045668091209932433934625545861060031333006512887123903986331247985892458027748458072805239785350214153933234397870043718462082985338907181108072476102707925220132692519742195703194086189755924038226814893888994193657234338299751439553953996878111242749628998834994972426462975936542058932690474116072844148165816196071118008708566706210177461064715890509196598704567355322628617748391541085598093279432369087602362584252857465953697446268431332564011213052655962107395702892309561094838011429219959665857351051637980592566017956138023269711979403581453618136790080350318229243309771915833837555867724016772510279647040150467174671127544176492910166319061715210926735842804057317523060022987715807660108841591123048994440626890992088562546511623421483584326167134900001665512433118032460350800286300978534020789324756111368490211224303862550108867768343913596368955218357453063742261398587945135261550828087078407538693834738832409576384002884612476156423092356102620320230234685465080881288901727723386290580977918980731054854375098088822332493749089555938549517332786015729726558644050947600130772568031563964260902668768924868914283034460652905209142452580686202180016600162349128755863783863224271921571069873183433284138610615768729123612223851210513624722730683278378232866690388470612592651673493998683188988588425602334937368544518883924341568441560081606853230652246927056911719779246146624071121658965020267568368159217511110652939030061196060446840647091233261372237650699047911046805393114634009950874641691996490806426929323317363879896824217319089423199705050229403053709608669434138255539131342493935707165896584534840020869814354555186757752057830418318692284832726624426343599683044198267879174868510048879834260209251922414111846987127020013211244277949366218494360834263058007150926673547971660260620590287652719827139026900471322618847507107344370650748784906562421410497500047942721784491439732163618057269053018017620105519162887537786168495867117674644162404072237653551691999141076695231227714626616689130426180606401248375958043863182608350865725372878231215180999262359977186502715985135449320235977321375172049962398350243143209537943015385848591552954556227058066852972950301430145933154034168809930424690505786429406043749256157133970421612511930071182455671376698257984807059064377668068526493691005032385616572133291537224908799957789624356615344108344282387991693503445176803144875170201459568101315428122173843227997673419052778978515970030748815291414630860890735455889428374133375527839355041484216006545404435726197731775656803239104857919055772808821126559349795893505178644334477065991608985915871702584418676260227591413930373109751734230807842766730138673544034031010660287458179988823254060458016918539435320475600055428522419640907979410966233945882584165654453162933460382540518379441840977702808685999461223795876286995152373081994369603391238095643853007495810691165097437088635351205390680872340662431531496256688327964990427146890892805401422557376836590003975654225782044248390276546360056195306763688962660568447095144685621302226548729059192617691435020439615800589710198982882062926746532341518743751563224450426753018107352299361318232568244119704798017715095420823039494734212819858137762841507865936504952896453744685504076932816738942413468363847079796268937171428581306349388753247874924843995440530709886110341433082993155454222162563936727513338718952713112384796266776480426464384213208939663998219581080304438914325125716110632016914242600859948486987266588072531794647857465586797649337643957246636570099896963731574321096727605085992355113947466657263706642775522735646133305955079245958631444272797271846099755358582951638315105788560560665795196529843554903009136911695932841439738735476278818753178213335116297456058654090381809767646530028109898743245527084393972683993135265381451733327179227966026043418202618694863828795884696492008788392010105191418371435927134943720913752985369677007657230066213965668812686830843575421985700683137456240935092421176848047028198342647868338423424031331909811343649990129557649827761978928136056689646097200022586201297279097705423440289517912591821234226247131627523527520525103931118621047902129966361452039807690317629732899602514281815466116554226600759592627202066600853721055315560532446482377897465494610408300505596278893748560932005354745045882219643226056566100389529779038992335162229006225511144903657129241745841141900091312711167466106300607924805491468826772997691395887739659385479920313923088259945983701996603313646282696269764123279541458230981297220950400442745116026141137082124361207600668509239476989586911372221479995991656311355218686387881713828440493260525353048021186131626778378810507142460566505179206903447262237586573131004791825497677447184250287947454298704053285315332359307814829721344882990093603492341641616300202073887998921482197432932505152705327572389098693756629506073721311750214811209624519761362771967738806144926023540540915836090678335386551710821693579785605003426333296048364667005434927403680955655479069525743711598378209986708496112940074689270408773236561464402895548613046680983940666973452810685699127734264632531601292529230290133661575434205604840207004998070524259229207518744993549867669216047752264625900906489162084185550039870539636508285622901892886524353913060125060897433166693117680329841950031966186216667807421100898123692076222865194275886712867667520614396134089462081552938648700298671974292033528649240062029540533889643282258152897654733374635391699685641455803338940586433644767952125691129258567169600488531496658839752544981628515066512195602041767780892630516423854161399076449287840365644994331778310586434221869132052361679418196577661618421665628835832726391996009026462764060273048616429425775972668394929296245509341714955794476973947396100216245028285911997470156210969675286042106918426839333191201650479610876554221648618979467550879977951184713586937357518807993828580797513543780052687129697022952437700649496280681242961079198138659340444136789021814054346078700504650049556806473374879517593636491238931674479783586286477012620834572323793634451736907259004560712044152189802626619558495354464151930658268525093968237825717473476503375123794147817769113658975701145159249178486159362046550815638178707041758152041545581478072425158990234226527088187703550664100124685263510740510284801390351954028327474407857313623603514934457008378888730928688082487626335398869348954390980112975715480175037822102088989091142376706641976527676817223496836507382444862986056494527268047527138652066339861561957267790793201005590264529042967112153125230591084859542879823331306972485614086605174219107147531554164987490395835154306527209522283277822581013704203914132406021724031774479733735768676327935785768296451360029647996506025139459472802774249097975924071987239023043436861803704331268572980775444734990082280492130904802779311048519642355407959105222631232884344657449958506560694933143647473492900306092751671826582502804796250264902894283596266186311703068971634097553793951605121779649099237958994855399995093595802793345444613428736665253842760868339436088737767833914171696408775243063794283881843928345254187445507822402058065616410741398254504036747996798821602150705447339634283286801588584680761007503160750442129750670251604866080215130105902298445758662548288123268948022974526832296668390338489995969057168205661479407625236050955199364070595866729426855622262788517544515401934641771641880720250626803328272966807633500702723136644259065268486131135939691034042877430809574074411760416300801540529643866741661710923192520390503433232307418875731494822266133261632594737646338388661769918407101978194222666237144136569444516828374364268204804209682852855369810055961147224938077460234463160985992314416252558719571191333256673400414538723580569448217601987081025332914808196285257008250636871717442889723279763075049792759497734943994472658728984995746545408635955849619960250144474687675426843433209314682535783025697777214135502481109387705222980310330499377609788713818148860237980697203253545680732020922626538147932970030341053689010409258136771979799812649678918675692217706406194083304165248080391689554155229117671938645341378949270973053441794061469340546026301985221846159552980481850534916023150494029191088611048259099791057056875331623544207342690435832476139554453561545448994180801557501017709109118714187820373102324099156105668058718068109523029748127407072138025805146484710502264742710572915601699239774328804367562799614749128329877844199689151613584125477921517187647510211457895780359725525255143824246782803893035114339555955252297041770904941802524328050355241315050956576108028946236951214265048062916667842733670835739216799512847762775966411272417934096064080477500417134612358212129441042907718205192168955354669080409635401261538049038091846657008949057744196655807421465384028979415133198819262252758221525610563397211234863342019835094877072366402882194419323703434118576261940532646980205188188396558146564838764477932364407004036904243126488343287363967872900818480877481209922708730758566371772726574978023537250851360903583228148021389482119587712335476025812347466447261813015222780679736078721044427581850124478208900074667548397197657377290442519451227528954001992130134217331654395755031878846970737796997610263145981503428157388695503205280221787661783125627774622847470763757118498514922497414698711590055993809162536216091755693858176408812636598770866429026381783435306947764470121811693035438207266074699137815905635014723075149418429203330208382413081526931435002837022770611744211428641310077383662845207571330689306215759993493572622794285726855219102068742631907628047969872289705448089561099150315107666997867468467124219777444933129935421702627143402908917519952207344066843617847921593548015203369451230582929326575419160624254519426342873261112956088074623131665285476211014242929679181576173144295021356612695828845888576013892680550054797352283267427083243877941180797037400230709144463476720385591848775310240436309643879048828492949021893369939703901838202038589056628580412967011091352827531453512278078019151195292596701440880681173636542781669853867341126300612319610469170600475407000916445022645136861834036350362042141408908851791366031719443344842782997116089294755800788433733539712071527493001000890704633543653155539431825748181409443470226367190175458172920397893135990971691569155275131670604202979924446457055279658925706093969964107422829172673411289021734508709957334376862412620421957408478877182553947692088779737133965205905312641812953180434428356842071285364573976268104395929438364036866653512608640175954449064127787155221041131502118522017338595007984742736742293378632654529575790475560114253138119474131164077179458244877602285146517748914014482974228118800538084851658123793881984768921738371767312389553121228294960082438155730716794770896120687576412364635051145877658205217974249541042474000204362930429645562765446804093081859964925331945059236143882661995312779598203389896262111575446457539743669164585156852135184280830395519311499914396337009698717561393922531052464396207775148037863588486180790264746333454100053717315859489779851211918748628899638970689923335838562490403425147499117740069901483003178350353337985300453466701983758024540711949688646087896864385893898796530956323493163366551289306477273349766196143090394338629845414934740892006080714645801321023247656262158843383281876921802907101031310862478954704608491872225866908574511020148171628846354377384519036093455415167705870698680281436893930537064176294850964093691303071342753664113401433927125494510601888059086203951087862842127567479602729620168405946333045039168547495488285204052871272467035366925711548406421215711564854847001218295907898570769628830958407531685506113579019291987207202986530875054857954383877976862362869936684468465023613249257681605625433096257140102902110968610881780087701685309942343496935979395904864937421567551684272409261016006375579238514537595319002859190033063503140611586017925060644911028788357005130645105430790554681464845628490903767341770514702219126453383074324166239806864941726576494127252894015012684731707768179447120006711780664645187137689507398870328104948891394939412986650814959776402996200126629007580265643522175401884534520260792344451385238690907127087897857030788798350768372623648545925583126541502863193127047116408294612963728868528340622547796714418731893576646107736700866071658957310764396541563607516634984737372182717853547447308310219848067760051750701646084972955674795880561324098421540639895270356853802248752748483352892849312091706287001864842684827124820916939386272029862759838588890568414843318566088343343990037209575235438880425001776355743293029575020624056082170126740575819315565066893823016543231503373542408356690659189827361556602779659068367191144325364635862536307978163199124569249412420391037574871780978175623995928212700010672929495953438260361642125562151062490691007864940698532758472810559880031232650170514447513034882835330219424243784545059901250358750551793572650144020062105258020790716421611428167766467595356799482097895173754740892452547671052015208172338261864088750442038014911726767821052962971534413002581543096040923209275479858333527071857779118523183633819865536128190804456908276291520390378306000990754331758272219132521167506259165431891164493519131703193577884363778044545726621065974686750931400195401275148297480981618502785686540348548043003657543571441537223111117225930321827571531176692713896294575823230961906162683671052365513624987464122822926039254463335437902349804390489728306681825220103388900158864564739573840528084226999994299878943996865720509224988383846627272100740803057325219077785220944005436445370737801324716241763860569983337412042921171591032012744348838109182594209888987543551524433909962097557269899088668992689794169421038477257956659875760578707590162486864991952962815318351329566136011397330161405894229609267668255256502807343448732706803760103293070512986168534079208853348904892640169608667246166813621455173969025325287503949194502980239706218468013466588974411151705944960437081846893667567874037344037059511975661782973743056528772375261410744830301706941956192254007548402046535026718399232127657786511193919912076500226226052754680604263038117678333507880032305868420425024612074071752165791271679574156005102034312264359623715871643847485669948944928376054688534445258288209654140563572351659325132488632884969870339077660991137704112551716047179955671714765039921061352173351655442454088352939670083186769398562254090942841012632937278581217676778347395916011018864249803632770415090012219561771158374724595114474065215534360489103419927397020262086955627841322880532807871519689149618341954845588859829568421883850704670995674979781283122624047290446972345169782118096957994341025166278410026141625048151445234442999819153401382511709821167376796205949424432315076484094622339354701374200497074246786361129872992005575625717914556625269287847904644132700201419599338133354513253750112413853146278245580735305566337041358940650444339523645523275465408378925657664199273180044277859619620138182346573328852440138280303665603192116726318576887503308940503200739806112809289410583660718599809381096495382299566548592326105162053980947579355886174246497314375311390488440819830522049408684236015713373562941705189274937757627890089567965767454386441238734074671035932968113716901716652047618273233172745727464605152440714237732378221846516162785868039961542364414923988334416531135338553169957655821099449724974730430783308601257703107866119173506943452737778466012418858652410795881700648675581687315731057562412307646591531357801421606510142850918409338849300956189204903115047194009766812218878676749014132477877543053672010756892884787332981419198743761561864726151620901665657687381006791493112974883246392987973284759123250750645824860421080648964553840588247103976820736086484913982478311803407934105846165274451967511390641767282989674006434147879417675605584191331327152249937472320795980232152174220071055019131056789480099930661869911959826549692107718209181021666874691561929783942831044712674232713602539192365530046138274185784683386178677768145050632612954028496188917670679421759497150727788749085864984402820637868838651066597844264642771614839099002959922471086394566403386679983551423194179354496179640900319420494999554897334645459975674041089185914860839012434076406361307201565942516091128014846256278577892141603271094137553004690843362060227767667061640095400111007168747410497359171021501422771890310884143554907194007429167539473616033335813383122546287543814798608576875515075645825802693617037805102242153280527107644620564746658191227148530282298250071888738051283218177022439532565316231052551145652253207673605846730471306300394292914830495736447396712395857647364494458227965396734960720253306509798563554159605721749705083115988715436041068263494114405876287862011681197492195547431877132773181634989071409618735073032950109408986245805231885702997300891332969776927746028926436193943746319902522719037493595355356923789117798698015859441722839108921230919263485823429663199332370445563551692791138524748269250458176304780346257547353430440924761814039756991688721197704974449808823833713959341052849053012975719092526034525788690299596824876375510502511726322123732850204208852507861739969736290456427205986403930214100524297900112161687827268367654644057910227577540528249097225524339725331612787365633433035467647600375367874503279636233908262104167294377412828048016019108678084461195234863386836245526664727940257956169752485504625362286946532987137814707363522395409901921684279522995067463531219006984414723831476761161612751434354385787468742534643564197405634850394914086591357446434423220432283854938763034433199987177204858502701556658024737273385829791443839764986542701949800924261904775652189312954934097291351061565274236634195635089743460425152302771071074594712525459970759814070270795037388345184361579595347324905451102470431086311618268685570727957954301813232948479783110044240943449132811413115182859829131307795504467366325358748079203632742427580130297543970291383058660688991187165154514090556321968692431504776322148267637788877709969542748112521431334628235869409582798409338733417931057561831060651677860863589739039616725398412740430008851306431056737126272517705060774976624828832066069920401839855308810518188170548444909017341896721119052418792591054462414889699580146443292470220329160466958331542223395085734173572850900574323339618614426624037117699908279789511080836376531853446248806275425160739643383210640312160401868765616932743646761031036011357597735927261684376988264921737049440695596597068140625740982173729855775257763636219250977479275930222740466607686154302009736101922435306663065527139099047593297272058167218800904199364326054717515391007196415632743407850965302062256110944499278437881204478884633388195487500235649811946872530654419865542722955551996686976345015917145719626116655749111291619695832579241571049067536361313261226759429802784402695166415782516547101007199579428858649809999361049310215676683158144304666152811365135697484884708998070134969724359474977392046185611383881396575971506027472496402214638158958648162596019314808197100522427715414913036663754943079993470044426088576220296779242791122796653598827319899167001632826073730073148464590444402440888717461692842991297648381097955713238180213247164424970092617012976058955296549314703288398937734028499289764769601860262511639071324286696195917170271841934277143432180527062008638066246201367405294474007718215078261498459230358907227573117532774585341955244355307168550940493045747061561678111031202215365720033713317205295606711263777558206224375597649094753452523609335136777181808806774852820716319235053681219735195279448759576105002895334809316163674189039720876445543305227471339561948149552204286873836747235413467332291923126333367044699960028869172266047903251218630872630470982325179395259323507425905796662758013844561296010863872538159559971194815291209598426240419295201150560815481012620190956702841503301679931083829743485014968681834938645141416383797527868496073584714031982333608944280775806420952696582328798986755770065883465895335568681574729235282782923964232953253450679362691618192598274183404707809591983403508994741016483599584713970398206353719253496944617837454363276773249622521004359771061873972085975135101712154976008130338983355880461768374363911237973294117849007694740256600915122622719279901006335834668086211670067501660082972274611928862009848472290830690146837817505740899282407962101134230512191551374991003736702981473406478291756172587256879528561050910942943129931945997836975184204570313303289800555303248650276162807493000037840524787076623931211373478231011065183206440885995089669310602154272463744788117863485065407621649788611589083569670732335808920068195109830436219814858273870591397755248767393170353875697829440643008013682887119964247616850971477751902415384632503297034141500458341504852179953787389674440258127168787405763822265913919122443245888268361787889722572335987036922101579354269077393713163975426831916539728307738609791345391577010879676036085274219625168031497398173328930466633788088107130570933379132543526799315422966748709959469151771583072396181576841787382027663530851683049221933147978131219654775231002970192639185164680580298485075976484912172662308565575875030619637640909777160125448223550034120698106762981311190097332776188378292530591782614449138451550124629830405164529804996981241773602788785766658846402151726843304203196613953401181407607870234532121434130449790318520985008283672885772084832737888153185288283202158624175321979643796560029363014481702632271397718593366374952100497548845965420904525832952475907840007644979926874978965395818154456871361477508907140756651947601625422177176198246060935072786153846260081955193135017065155556669743993618834030330525513585393426254519149403647973248001525105623180495219072064087770470438187395081068714944674100291447434599151614838906975949337721348769366604518869380719960974377421160690817248875341148411702932381159652973879608173131507170748451493527881669895804505210640713374928532817006994138267976633247966513694740907239243646386113458558299455526887398620575192052478274005984836323834806514973224977017276560577685212741548272857566178366847295999145893637277999471485453945240558850036943178122308752333470489882155438127722043811573033558080973105252152981455427588183547219741417058374764730677334621811286226039197605110075700315143138070922024259920677636988263839953239302519888887365928795958787112360499816122717091655070242866870300698406165978683974180639993388202770448654752225633517530478504474014485984269526136901633725802506942496866480884413297338207724197084738427577486941866134884460659261605593476898725718963574083568830847847264214321494673230137231400917701525913986943371959335066771090628867272738998930509493888177358183167047512120596729873782579352224178409082627059368539873160979702975887723438921577854520517663478283663135825023804315777582762111942760765998962620281607129795599485990756928804715517697570658204255362211143648630223374757200042949757967166483744324565928591822217917576191116518175543126566848755868492426253012638546352568750867078987695414298979242499422125122153885798595311154798778092969248975485552033946511283724037583601848456158137356190699213936782273242391957640979189176948090538507096268607727274814286534817954861658528080376192088645045804951341043586977517649549697345890258281870466755589289211400740967050069819496246960710059315537648725859828522084584160980916452983681089951956617052587806858088492222859170718160814860958808448705652963060997107829582713122331685365762787119290132420098383999190482296120726171257111640735132433587412146633559850038210118316055155884383968613829933695893871781534379559807433890924108192672753295150710237213139156865101701442345050237171181189524981481634915124064654618739841363124414192444652613652908721883468599544702315835947856568347223744554558713768765524394045512286849070907000059143092740741069719705669782794405445310776853127335333639050329789393414936010965850600160233463132045477835667301916774128358297806918184874459124299695635163100674469438448245174436983502205970517011583186376773112999858946441887087505492531113108108594118663518581803447111931778334479855112344245390350061405004243804827945276611492438203886632024600907110099324975292952128759067244930146207562122401076991257142722516258487762588191797240938019129706016031167804279715436352359057688451241527823510154984200777764037484313885736460575191331254323194563211754571100139784720980151221740280175439885352795412789276071425990498168762332072029672689825246401234844659386374653489708471648496419077988236651789169178581514243578893410522931194049308347566829739168895545555636003502750790089638932627669117195747207090775526136332970246813752837626578083031951230972991314170398040085380683447902867575919283130503908533285303141219204609535440063303855296445572402486241265254694053609458577325123737587115709533348935519941499006284423335207992174965343192772275328179413547292038935858327357199602097139434249635635767586649981261230430798334899260915304221789842620426292772588429763767537466979952647359372079105470733547434343567532268989298230137898047222966524075567393038474468473884036896669465471809008396875304413552328598910255266105875467120336780878639633663965199021542767788060589117655831445143760161595085287484318209390318708545697700398515962444217717892519980317676570505365723199848125853432637727829363028268377775710504734363719353665958924919702978347798084302735831695953363401139385985152267479690141518277253608799138205626904372767807852083857566722622319240556552878816270511357678886691258829427001543456465166934136649798393174449867743767581876776768808816132383077800498404932104635308485972432313002925941694314929377429883447879058983401363314543431220961328420508359324376393759936767455284715292403903510281041404126267719663984254274961170018817611804321260088164848994490540828122564644769112461915129537715854467496005096817781345799992128588016635600332379635936878122228465944768501394629115457542889325910069616828942515145345768510642398858966575696083022489588338721509169280749794861684442915219668287763932509117689016488812300256449905977498798610362723929147415730617265954371956789959275558873278912205447208250906883917025983897254032322099496130677556798520259411787901097476320390867122613303996792151242667849183973312343452514158945455914639513223653724130731767753185711502879179531665110038425749488447440995348853140519372975728052118763666474742540790738192731150154980155221569898613028844942053422372521282573581388871664744313557213502861270365493935206336265604295763313564400976046988187543132384151818395803964265434478536943973861116813782757547447033883984146244278217656677930466967304483769309704142618509817731599252514326772984669887995551848141271016246535470583120381994736644012975749927322039749447614814128386423878269932006203339496945715612264275852662088585939434084303618318039898605738123195946670726116121981894496142311037981701158369071339296287308284685470568718073792904186634787347366575301059663175708940135588060964141773207404601372133709547973267493351503898142660466402592165533825886104059570285968261942452998815048215315338469800071588195675456791616084424613013236809194634729543195121764263654078128804916472964143296036898914758380886184853458877812624755805623452317503753984990028847434099266080104380709426160760295737842040762823718524586441520729269864388010221025342473069433810907981434646301263034414708438430255653975629957960067654785679384085062926694922962633822359583594023241404600550884935879390860697561713399965323234549397207406397106844012691907707012204206839216432991805090593472061693675127316146860771457008436529599807712574737914079352280073059239484624383495092353833957608433179251827089759625992352860739691949890252339321516142428015036520812569604448777517385926050833038888500700364344580898298540445092795564247601514266347456265660444289826061822810895625845675147347524405258361191033676553334483836438787984609756734582260439990991612587610532292963927965602013025811655230327547013834638116697027215762691155636652306193802083899430149774804785053352355909261927728654231789984672458604454129856418349498069528825031341883495761167946988637349740732384549278956941194063172757146891952301688845253364342496059825769016716592137647219546442236267485989808574160690830902230481394370912730439445924798860184711398536823291271118021670060260463616690216845226500670182842318284288734469373447314794674383907882554671790420898211464498044321041590017142874160937579244503525923820438435301647710936556596811199029411303202343578112514290064095722103947625347195494370880660155675883933063678067510614794017784782364006505307459403364033919879445398782283575743099634184069818512900953116302035577686881716251495937515641919555672903915490691328227222056568747616871961206309376584872666412804626592229379625314719683303846544833053893559318097163693844611304176700283753099699660653497188630517833030878294377198334011826118742014368163716350610348366689740859848788066320859989665409252155996810882574650609624608546482540118062095795367362814417462694848510161611480413158614325166962060918129546418725348592405621221153961719206363208158512945032012852122798908832694881782038642766452405969057287228560764040366104520460247981195083072669402788709937512974690906877867476983257664407903866207580653162511712834771950800564896758506961681598673002993719354799819943979579721237883772018788632702208563747858811859617729467187748876079662266605900892786854339079063139804488677457228918373403646161890814471592706798796369837281105761726768249465290279159990985349848570431232634314778340965027817297042729738589159696495376059946120236096585118748354894278357527859109883006216231019623064399753951340637716309335416750273630889976070358417508482660183900296295177341602472979190268650053376719316086099213063216427453999233916845623655248597418791485795415268182587954395813560387341813899274061274513377342445122681954655723258860191298520412314750621652822068501603975161185061932994491414767911193033747182937037287318651059223455429071823191514264614234232503092943994735394195642342459066027986088878577609154395387425148429814776614240789982793555713998858111595191743663053977566496994413670673942265631025438468095740483625074186672414359475999118211471366160786197995968975022288986838477532694036460097699170173358337540228015262676141293984327543160296987248683003175178965916515597839254599924323007738780285441217137849448066386704345369427241728421948082708082972180867182871386665884844826733692079172130818111802227403728294655284191792816663844233128214248991150802267544261770913497425687527488784620191267415710159197910939897094754795292086955185127808439041611732257881528798424676398605415115800351762007223704588902411470000648800491002187108584353048609119192693859223320522022737100542067763747578065144851988317038487028296338674317584853733775578805592756306255861312211439303214332214415843867253584194259617833323092358325884246186810029609241616936517777855259011802956985613741135612908370677524901732262403439733920726665784926035668239716599594718775260476394221565684544309457495245284268100871192490086366807761176481698562617874957633382433842730913014524679929724616255058714126114933488309585876161717574431480803006236880200606588322895373843603302551774049781109830811033019121861357153039156488515429414260387173579070556156726912481434753153188454904683065509066230200559363949710018111345932074452800867931418105658620394518462148897233224473432378889829744445121528589323692720199110922761751147226950029485155554190015776058497003037538219531826029174496214073846015830385819369156684076196779518735470353234362696202133384466004193032894158312398383312628790785054778695089379368451073876737168219205397309031256346169562747993331783532837084251379418681416528338816172358851679411825245188014183212544756951031490223651767136495347909332871951852502064921008370882781135346041994821960533985096443667079587655577973909674718285643422947869220798445566487547652879857383993514938369165342462755221312183285372665033396758329145618076858918714372701915080235611795386143326397717815699352957353040354520305986855412352418705080025893812632773701256779539815134104004933538912504997097586699165857145871596684988980325689108139442666669740582744794000685507555766841286879379075401261208705230395699635319485263520011867115498067357749237119837373511716188922947922232232703222086006345929876214088941210750226064723648540514271573393598270185535780934500130574378024516137045210228693385380284559502053652282939397390779985276244757492272243724392838062995173548014773743403261570547690941364519898546810530167947419068553413400023448533134412180216069297712948729094319053559884606221217513272662600220358559434729310163993221345983166091121340560109810600108819553713414258563291115659903255888741291463185061828212794438518995990425584069948478859670206441130541921934491371136999303153515756538114281301634634782528691660039188132840449482255722479111246475912447824555369929730632025900648242704796540942845085641233751778468703548876480713971723102855936930124822381555579291426800048980471348151526462191652446329843696032758412876932544082140554260555655690582498985388846862988474411875616431616369826056386370123713531857491809882843014207155893788782194341941996827376852784996599075779410828396055713717542266286852318183939658798388637293871789985800033347121375404182505791255135851506608062530472763031617560662500814677256654829092541467242261493879947028763642227029822731257825094318680729251166514937882572485752472185005932858287096484129662711640967827353831329329525076370990772789376070645062349196340875090739269296463005936591539346425247967566599269601693830156026407178002126353045690757565188104937561666731683502392198482934077311170916822890628001026171366015491607130624961542965738992915947005959340497625361038394181383957022730850506090200248858478897718018975752266628374999303457290325035251430003230010870888733757670577331335290296743373190612765029054914342373173796525936412028258040558086605119068787002959301204842156687857310062838422521269068259316605946041368899292587595900045751655465743459369690728789032645971099904440139380454902600296857444570127975389780260784244358413675618103532266374779142574377614094951313628697349326023080054180981550188953194182056026867544517929691816164561341824096313495704576393860944190588861764552882731566662276233245028721409682246378984680127109223877943568507848242399653863528171340888598017435808419416651610468618078898378271634328075043873864957100385220879922150189665494653860525939751545170045370699034592729127613520899193739013696075452579991277150126241580865211727157697140279552223797906098190705304082629908124742656829492330030974738985097639773512226091393981252328416204689056992586932759863079742286145501237010859833093777825879794654177298044414572474927515818370098509613726456642354086845304919326016965447128537975504349644609106530736653089208158716009303676078246911120725315961544486214286351540388258921922539294475025476732091618679781492211119495750052893742228694826194109924903162327344973607203878510417778139612080526313026235259385046053803332468947431394208469556138978303348193732947698222108473147379340970074909573744116377251322157512724537066923127281540401127582694332959544424627592937859833610502401072832088469000632172283041030381867377135690361519983449054545631821945475452345624610095144241646541522981618378961977257363606215622569740141676617600119786021451214120571109837989649310562790999217284671889254639194908814967619549095983010140939483890534258753244586226778577603927003676304699993515245923377987296855279292499077252978378987594851185128858630720726783062681880116630481709726969050295108511197811526088047707031710340864963743421451411765005792616180403144033302903538551121466104734261014230600289238612570948400310624763880686574341140446720791172473273580209281190261732447741422078854132675664430783541073082637858792466527877609038497836628632435656399827355242817379014039389851300866810038159706608165734280398489432176669875977219993780301799051383496784335589673058753928094340933234768969210821847305322400977140295706475523246956755359612500560658169701041315769550859137931405992713046102513971356657846043853383511144949950780765635695516983831289733294350905194311658983661159909293518059075253364122936969763306098539692305659662922139088488846213333571703319139498315837405768194469161595777813238822494074377038066543652378586375504184041417422143159436983941715054986305683628730740733904486802486463277430575949379562754516454723149245741222798396217639756003317259541537492742210776991689568785419514500856216394750172199925244797788448786835871007314012363560361742203369298315054062957674382160913566723248833784340312150603260328503114114216400222630108310147339323374094827298695399083533611854436975289179346786158509406706002897931273830688155612222921139330931684481051166755099591524239354701291746557973939968513809714568435996173843452643645801933855548431113236573708738645465141297869437067581210490339802134673071572801068925400097080967400716410562176175836796047275977953205825697445337589461086040039068927602245426183244325726465165020427970873659608408481348765742053846431179147403638644079969145989745874710647213825809380582355240548000243931423283260222318196686085781282680691635456403951015503420568159245001821743895545990821032178260783292664457345972224008992002962733109466862028180603111766789657119256897007872059422786835322070165908129590084403826797491425915675876189541245773249897143775675896077557550332039054207701459746317365846891773304466540477559690300539258448053185998688178267828133917034211072776849078657735170477724258563784334235183351273315409353597990707814280764269971890406587099614349364363586672234638536229258012883968966604262702575706403594219564230936248374765299873904154129939510687912141057516113064461619670560177655187840542858189070715997184404894741152433243408526890000329954206569187069418158523132612487114741059926587680707539692724157952441626012968051787725244344223937015241407833491759439993018478096271698601486658995424341082865877958316404257270521534257379918941400777031640398945982729460253496443851949195263013096713334703999525700816107048944969900650780003799091244018354051494145133113687822489729621353596449423669254832811947550636478807243531087269453906006051579989169356364224352725940981979664115089007513248425713798239628435240660191532132150751657990998602857150645636520245525587242822704435787710613103148146691828924432236993872495578698675159993727312249987904674403500931506271089572108662175209496072001317551261040745710969075690254594765050793975325901422289664013450397878369821836669560332070761192623580075284850008410011898025997801402953075768685721147484545449134299612516192880624768580013214719982800253657410564591671150370002817751708720519190547945482525295551764938839007350873222472685595056705994200710849589732589086783049056846729443092815738736900390708786345316300483979059824435608108520838205191720992808503309105418067915553118024096389497506017820276998285629033993235861588664455694636373498271199887451650529159217826417314434155156151641246881621338068104519897786832889384248373038243511930176279419074329814520971256563543953836728755755056328070380249371743298305255348742097034910269157048766147867439721918565074195905470676719776335933801771920194501162533108743637764448900075880395399118935061472339508611423573255520485572655536163686344226593751249062328783653803362043099315317704345526971208665344769845592125362085798434616445721449203461733925399938299719080232039837197066051736117369058957723882626559450353612673196933618150289276966466888576905679231638974391066904199946823382600332674575591774880538844454778835161502368099901188565777936918226238766398907248106374735147011706672265533193485875868731039152783686135762737204167090113570681575702983742958006581657101020529053984860688408280000465816019218082314173506650127495776655072460952815322839618524240485853670580052319980687545133532970492728706591266663288514804130863895943191770579887398669194836161905490383791805581841513106129581434274047977422030419180214816127917340463161070828691635802886378237290998720271161304736699222532785857651868037875071441868826192031479221439467845946502884114112587573166225421052679586409251853380535998625413123271467788239472123030275794638762310225255729758985905503791468164476160650244308191882338447185587129982151167071630533975600715659507715962445364099727211264948769923049897416270484318733047468365052359977699554463313934057205806326680882573878021352511501216526546790171640932042987756088685859705684712559308082617032069223711060961400629053303725517768378873252535654895908422608986432407725289603851541021891688016142264012330115270319762489395237184439135154143210218674293344009428433109395312482656263984487413117630604592757995610853387043009740364565997433193863612000388516107768719750326582372559859139396012219944866174221986338630323056112878882577373307539807432135649217354922884917726507941041753800933372365036902565036502119368690664129573236144605078352729642282455218564806992972536141699862040504327250712259364440143250812969473052349794517620105053854856054406709065691398891169273370532429519722420518222900769039865868902475861175660164376330754172388519501803386489546134107843492540508967051185052015887138688190507304428597661873242662992519902045866405933436273687264065244419818173808479114220723104180030198913025566804832386111636283909374073286589774905011525639173186670920389899728661070074783753764447610238178265450622707773536793477605786605760712139968689418177942253855486216586368300990425547994844069885062411803159783779541695593233523472503752388950361052430691380728260565325251067052421094385501107083648139428891438717477435703352288962932270740851375627095984300972202160506340891681109294895874320927317983570651685858782679230394531291270662031431289269151257777684746196605111252556129993712217597051487453714632239858220083142239030426849969361122397196003812558257712599177247953836349798995557602519138473505601142924014520919367614596055298142046211182247005725686855790858282458958344274375980624987830333163483366557287537170524011153014385109379546237732157528160072801066095305048847079972670193820337821799661326427902525306522489884905115768188823585926303268467467615130849177294354774923456154202642885439518301669377013981169152772340079364207131871719196762744298376555565711521241568602513998680943594784243378667232916042902007190603938583723183188346765997723977313422638409555954263843162708848868620142627631715908347318926811222850311968455622495651261898967986451412363032647601713706493161396572419642910500115622360784688136883455991192665241522667811092385052675449118646456764072306854353740436402327089618763230613671346533727163671898813857984872004184568091328178223406769260462716324147134567475055286037130536669127137340806980943201565222283216756840377626435803552891667939719165948600525423020731352682148036256684628255906758185223420981955452730885331244403738771064886962556517002979045803000933920512908064985829257971531329596277645785861481445684498375409803161758878907696876890878645533566856810938091508002520970209564700146776102208038464326338824803722201642457558127326971293588624004833375300919180247846151218928182527031276250894524772482200074936506634011112129904908765455179808072306279892692345705969886108076625606597981638940269242158465029708692675109166671892050473717112286830686566186952284734142727406409911444512687923550118717412896978162176287169066806690724661047268729989562541266368352482721981810637516117339485849441014294906643500631131285401044293544524547422569393038139374167275474616060618817508700134835832841655868459122291956662516479929683088620211090004676538058834470886156452928855870651113112015765706260931521344607989034232437328780041264480115811544080759238235887505730871069163152176470197881890927169628233940689794902369774755662369376147664690393956115576283128886301390572468803379939431956343040442197200512547786849260450200335166780610289698332302511822024409835952748085532275842908944106057610472051768908208645485594359663777716922953341081514045320917878174641884948149178341883399759313774712227061008210746996511500840313987911758769447995133277145053344859137673996843348401509262083406693632403578468851894732935098486880033647717346228113428257862359551107663151533341631199444005900671920401796570864752812612291705100267093118703909581817978154836199324431254807505876281766775974435620237563476476376915487915520827779364963454944192524993079252745655623715883479392205725532474727874521101550187355105969139139426096827515152643666937342401079361074256235406439963578425954414238245259760162210382140160202066684385568460066184742467422354056814529659800280942777871145805115873704645067454642520180298170828491710988270685048123542655104572256783846493317252609544824686015761410956015583856019283476284233246324466315922100332296099271758234067885740371438030152251272868378923047798386728037747670025864327837844953055774908626970994796398861933444390777685492517331948123430000034951255078217327390458717310686583457419177008536415158656572824597235631111294462111579453199283568099906002005728939580788395732465100742783741241381031777544297890865991207805908531518261110072540000372558239111963518840598341375674478476239502761898953794301055356770604049043858497138195495286012148989240308613560717386108057106842781505654570852898804303018395316518157196857799912929627535986235546557186528094473127856417844543366900213834068987156913026178408894017610809424001472666583495391514594494651748451022409316489352832566091011255287372283817028627456190872407903097685996157601139091778765686420135849758865080115276331880748434132094751587509736475937761259935722222716705470870783226165816721645279820564942658952741615849639565925880155785521098808386406656163506816049403951521165599783347951487091459828761993122731204054164892443577791079899571782343803922626638686705945577728052440443713907548592312111584247941892180103279063752799559290420509250182280331934841572975524497064772653532016063980633034021063689827023388374457379684058482877916126704276334361553893269881772690496970521444275562444605157454263558307362612681512958788349950492481969786768596542008351355146166483957296858021697877585096834768424020198217991686229400438959748389118916130760125236447132514046816027977421663137209290606628687569820705857092990415811424170657316818265236208109287057490514887604377055478088140165128746458345154474165275505489686384330594581494310022629751023935581886264338679437310485699158406944905739988034175857140999289957319171889612384748892973035649859917187427374021423975830672796600339929707262748091130444341948864698665454283722565182987524531233800719663401023472744569737092065028301700498389082437238444522339980750213108480375148537107292424020540201222821340761239695438532304761022221715892648867725582376598914008711075635257925166848520537783702270899272569719597304308828031111592399782045925461585543286795452791927685443612772966730927423191361587948679850107409415176932241088744593339871044267922860467775106080070782059086051219687083480316844275783575816571894012016277845004019868166272019609239525307551804759041983270266398532060115656760508750180668508201917078212693285340996568451176253328812329227049770020199132507445420511664613391706760748977211518536026505783950606191277489469618867641511450416985538716737665075913517256315846868458503570461743189399559054966977821615461972408754657943997847561941933691633882325990888893889354376152915618442296391692635100287386581230353691754153714841471469584440431559220895990582480507458375595079160070154335957460753642070055207803982806138189868375796826428418490758764461996576551288669573280512303133954994999102947975288531259979702514583230344497468766865377509992499517145894477775299891992333572458874666652554947240713042116882225559111933188941842496942917769603961196984157619864467231577847910295063964226915303594707135317506488851400125105219716104431826990222498233345558440929146432927290715457077050577704777828364188204595020294886175218293302497566934199811115097450699376792393053739924324143389648217634538814032178367425614831317800039769024401014914906794673248122601170448159293556688270154737593624170001316916290342127714437382855494199112422891315354214359774404791409440133810864732887825782164598090987894541013476356170924190341053331038801935964650760297601061221115163404314024125629175039897007394645759909184421831984744142270766394500446242535488260693315630026669270030536773685202906381485231798731001862688827509601448213661098320914280029862106383540054708856273957195961908855897055608772243974167894590202472804403658980977652295455899358400477760820018163090843637110727731222857480418796069469443149076921878543296040816891229379655881251943667858672610605150115161620132235911529963723811380927471869818292962366430746534416487028293568905194208397890352467991633549762819753863447639063502324002211101798007313497134540746784109002680069119949427103753864601756640338578265971993576699383749822293431712446214697871179284321096503538906876073640955381602007345943088767805856945773389351328992884855907544132526553400612592062459594405712916279616857933694340771330975995639847845669486237529881622374391686227338363166621648727353788375504985395997938722898402677084766179110025409570932031751111034998375538742422244494368977062878178776065941632956484463204554131324102764904821263128019470132589592801824188710173853093382603742791080135565176861755847045275820316389065432709040347712402907487675140008426738674387577788260939362528720589386227972379253486994459316493717548773720576730884656303056005875346950143583191012247251421609065337694024729831267204123370149959020704858841396254717751560458608089647315027410735486438406856599355782756849321922073638964370641241636168922806869158321609793559073784930010631151020387067551330803145686459899184520446020761910200246741366645910575412395381676885524341525303600889660880962564031227203952460542629803641491696131996381687966945630338798329617448131959044602726283060306307173501396959604841259552625205182898147551604632177413564379844013932394789823178329773508377929669022728717658796474862258018840164734019984567683828007857272211088780928585135267015693941072869459967516479183820320916649049261783530419402744992996775968695768462982815014414410424044321997513943017570152820888690180525310865079585673300009463074199491371241141788938321768383937322907579748725133403960699446008412275970393706855904311277014818310745795507567276540784681642438276282329467163671850874122883384315272979679005998677632668957945694915213257625865819941699071684236966078923400629049624364830868539173937193102881186757725120078843453485732653006277085129489793511847865872939187744421633524696930552088519784187721837574945857019459106512622122271220818437931180397794667677961757875501254261952767578188533251419142866814440829827277153822393830587711803304503050187872101934292755526723518483192609508244707674041826418839303007526058770890862749623572413571400860246650468497227775579326082041230371636512421522411946264800452081418365308302604341643077565084115284152554097499795833712138003109630184427563709211297862513984077342142147086758353716607325805113328394100711358720276680171817860249290873362295337437434825322629847163108880908003886989134444543494395203296742195236026248168036714454516178635059758185190331527420380261577540747662016716060955206418521919513007675422575953960029490904615942001747962604720727503199836488316233941270159159561083214787966283524889556010335043093840804146048924497833347229988419936782456700549095477149662363391321503956618610152780240635688809784881886810446826700410979147495176694513127683532890324392336621596457968330619314263880859326041617365821070595046521176840039708018275380897829616358463707365595871390925531137222361089528923702465432985581258602647721434008243346366468017763391874145528439596395829277931945740352622965767788225895896821057185384481709263243554391433103830591407414539321451410813129172305086973709630636396303533979444341467226492693593976197913471209950293469048530455039912140980304068091364703265247446955979395758731245914548228074678132077922663704217851286737014294854006757139941091946057564432732477925655438233261592348727187585066351285072531094616299659271160698209145012170433516262468953312655862438183806221166681064217741507968836410170266268127765493259092713554225030172615374387526672655092906521792106804742172872677171122311021687968814068852249677076971563816991778307436993755290421474139702298923125940980472178726568193981386326734344164061972531673814430370752515088219299327335363828239840582343874282161352627791686162802661815442534637559200369985970302907049476325044221777524278442844907441874648806399724846343478363665952995178814295987537575975620702851631240700851835756044361126219221447178941788807064831575356843020895754842057469289024934311939403823109501255622361559919594899988748840946347077412885046324152066669418774851314121303164947611830539066301395997368293357445804416097222796077756922902765318865264843966657481379830348844225201048085367929203701968427388368739088797780222448823576968257497399752330555219501909929536484156053626453085793169311842955022998850870548796512921651072046340525097920788455483207107984619495802180093401247497397641764331037116223225227197059479093744557671447204409899308717773492215758211643983873866143250073920811903892292712248383646312756933228602796835427569973837780842325434506274006313382317088725629290803987552872111573178434559279825957349616915750209738916659566666082098410725196645772452831279928798945384927111680693911553871546874239318487856328198607521059586445381306932596621915066132939920254499294014964961264010381233432303009554563636548906261771192520200206562902853489981867065758415919676818751228323302289310997506383233644808402590233143396699889200847076232619854917491799782254791720855160130054685222935382517888961295515147361198382403639893726468887532314092384457269930947076102435359402152192034862269900577893448890924586326283941640367366205291978937986800660097954222365703904329426428940863523642397463508916531646580200854267736512972664916877256425959360429736807932462985709825388555488099516285909515081518702194723198616040215350702861147695105312253489622759947892613072440555016704921301536586806014710814858639233998843225939421152320228370621820114417322381168190783164800091946622969026640914029684299848685449109441159554138535976706931522905842073667385398847539426061163937481777856646132278101703491209055414640872937340777379107067420334341334725823283325163721137614308938163632927197200383932991151033820748664119701061227275379980104097677360587210711504341687586451545303433382461814895640889784636209584732735798869190042601178247463581826311934625372074247520143911164203719885449773917530167489276189387890239853384703341440530363695161269973513515649717670739382133668166449194796381262286217354113576370562397096699762523830507742450446573612982959993139785465529566042736674816060394348273332022433559787824242847589464472463109466070617821267776181297434059480336028431355422431351700359548795895532682406706354771568628948484554927087226378720865511073436363589637836866543172637997690709605363564045257407465577776735157286769921680479466190312273408003200211264348783298326035982310272792219660698297624472471626242397550633235007696941945005117011549704228423238261068053096182333139151460324464938640930229952887667587617294080825942907518001367708879512181642770929481128908453319955855026989084582501833629261576932055873136597817205770925488088572228375259628244085374294213100439425253227259644139326292337071060641001588226594031080554390791323133984678503830567422496684198507620167816110493944375268070608598082816225084857284276585582106261246062814503365369412782900131614760623959243118542515999595770137323134110435357976128036968191261682008527389544437540253408606406138511338623159464668896961176967106662467398171943905126685088310900042588941650285209780964808492485590502596098709917358475141931887791842678534361902800514377795018827123220018415115569465851391653742878417178447039672513941363388399289763216070582897014110061358636472682611791760867429364516240224986672747397284777249867684856801060744017264044010876260567809281956771719807463104511764531836676856102703874305807968495340896917022206257543248476626883794494838013975661199102835458428293355501759039840614651039605039875996466553396795208270363428616698479673384499667804547421757850585229967555422663227599786076663615360983762245179000061435050762581143777741174959209128719300091394532012685117946817332738456362815638528798174930671275147840545387714000464344437533873719006005424616229682528869678291527070012422665802408972970830484536970250693088716876900469716910733548321564879120118059305717286180238191376364529263627979669584520781532733650120345152569449333649929415257967135808418409056346033822352679599641982296206954909090359046229583421025082236042059606931424132830098559958116656738023286996508050075279670069038834616142168100031456120051506786281011985989011114811507491392659159063457097315356588491596825389595717251372735815372346710398424744433263130589684992032837060178543957272331385486830963823570293563862975664420178705388042880838160507350924985532003902927539947602507537364777889125641930227764527244551134399657676036682813882199637790386322995529708997433439260587314729674840358852971362913474328541249688971934603174036460688428134194023266388145502547244249492049591554059461709174667655887071358288642336923373142487855333133606996391916354456772369932406185154588097928515709926008682068685947856008381652607648848207909478199766408852404103933669812635689953475229186513308094447573441700360058553956909457134671417130707342432361050955257566870504617436981129294268523438739524877573772968752435049012217973378085684729480980713326960778478213642870952905217282785679430830723966069032938344685245080765968131212527560113575275853713585792488296300237776990422786649692201747231386629983809329552478345633626096508297744671717868354363596296023966677289188182271519793165700831091962229443591793754118043269361754173117382716855389901713093196038801489367775610985053613704144845940321895424632825246941394856292897791992584376561755430033702327115307456944186452454898437426538639431064729353234137962215064263539578446155862854650740959168221961917649526069197068375656272920410116149680609550558073740296449932641734910481613766243290778883755068700532066779777943716748015566148714828202361650318754745008805266782933315262109858476767937576204157778066546691475902717894619156711087601796904824139449364965568642550174242010348829421243040887291810996044528499338664878025711277769761226315923093631633567061557068732017605523030431081046425561535555801092400553926615689088202040622298574871823049599992685180871734579208835023766376470287191199354855208494733931375834339839329927221422534061444753558585338036328286961148995469097329946848762720518084501336614285374382741230308953069731281569842050826374012929934229938765928492134262432769692184000668707603169005377634715667632850622679447582697868935689673919176644609244511891911455479088074000452864751777243933058219817286359957313186465486032429646156011910882998582378754129624966505211028788364947577996325130974074704991171087428058111942954512701303615503570651776612790980267778962297466066534125079493760223926631701074059394126675107519128573086494825510122333340526836269580661652316182168745707403256270487610781651293938617328886171071187989620968949546800166451394259821068118177307739953633226802438445152237842592431209176653555812854434607476832191577990861006589997708511928412117921480998884441831123527330541730285979806096774259735288949878208811594206432518036232649946382952322095083721943680962915535179321747367478396704994265038498223810453581966485186911444693557541526812404222730369370836678677216855643637605850258902534432494390915591813700102054081900040944473062834824411453081546452614098824439831150246711883232645311356212535132221772178839063628133235828578443760470600498977152525891868836004482622382210532934313621361672949579850110050967772482128599066093892284631162464622348492741078417269405267598742550275337206432132138228368188333972514556202303655266647763933286075975803070644925945546072510199004880002081982899461200925932529584368727533308131321076261097778546356768360470394218599809023566011906463941368230681787316856073805580222821786086757805008924900679688650026677793693117672798745407973761029731170885804034392639298958605741066932569662388697410461955633795227447674408470516295379504774213876610773266025847676561400978065980576836761920465684673667549168236902534298947290541512634445606695280136678291083601066724156826714508501053564696528986370939190917631983895824451096299873707443897657738291070498016677598820526657661394720516574044598868109299683707690178564419513295700553178456987668406058076376057604095229569253082872531902315192830696446203420704359647822757517553165618422929022215220837545352030435808664136051559856872164419278125211082970350295264519427363281001128425372133249366437958636322146798442202899180405460911368158868796670021562309970264064817757291748967161506207792785770328476342155217357865603474811953556635888941140880109403595238647042197836955108201922808482510201108796798699118749093204523635920629741376337895741279428186058454959154008414851639257931631061578910921166406872934405163477874624282636826677295526000756670902600707754625664717492786110423385310876757490263620870247030430632072926880903616820034737972991714313899763786284583009928753858074936234185721421619072708753240285836477549319212743439935291485617768376578171989678759555772394742973652474726435898421672746130737468922386160097499239863119433297433344389928201982525163884818411727774833227530556601047952227781506565322360248934977158670232785943875682667330471570384239419622164099756748896068800335420724683516559151997921003383176921517882140292745356052804609130483247284687028920775241046746702200622432069409442706521203454243595696856431727647778386975985441033084267513579471454028681407082852131018209266525566906503910311303127280133097119346706536365092883986127190488173094185548243332171057700415602501334169705430920389657911588095893590822509472503862954321764183662990089141940062686001452550426699527029636473281240850202126304809966309163874508087679799008270756560012918323483055604833409640663547246669477651131449078358801866562781272509932228936659645230165954792868887838283076587940104711049771486318901732153142730445982511056149622897254019627517633256703242091236278102086680001083847319232583828124618833820874773325819196751849421807668575770428561748659085997808845109636567891719862617145401513641108726986244810723332386681295386247029046908955491901439359508807617955515535443912669848435553929965541131694216623969391044726148970205866920325481332381223358028168276692056563266865333750098264139149518944661638072751860089581296983906905597319047084117925502234247677484171355383681228763958963143428578544294523991835899666330601339934600316521456489544588586084108718172489848735247920743959968859529968410716493512040047177345010969371427015462756817590255229946735227071283190884444493230088108110326424605826917274885406840961952681381075600032798735190198923631985327233893256624052351406053568829200590229044209604399608899876203742852026359653336479273976460158697749941397403029290711542758944324422931159503248291735076414657851216655069222314156572910026487476396058611611767908553814702894535159438495250158084890128854835792211670502965621527760875647343380238480111305953619068543960856065508838124402468434572582118902528934790414062723459390126537148439756663502642938030955430339277005976073058377682581541879369652466451946393157972909434885278076668729035341046708208916932704234931469362165978782580291686994530862287210276319972472125309862796639200419572075978579768589768635127318261323271212352530886279982643285363054688176157510757586126554083155688210738291545323128284217133270724649800643620444371080174477840953661288335452682406805782929327934751713056750130566743831630789451492212032640490310291932164890067378929216613188589739393416579474654985691398238761458773364218321352137457415363014293619618610796212403902024929710358392275392234938788239197975598771555174046721400504656741088685248845529558019727876413955490355952014915502279021674044512198528469285089743502373755639236920730895855072526025978174601036786152302684521776292927212488684914244601853239180958646186337246551010737747114156299643626272679671524059413161804918996097942094756049039462950231875037744337737400500942253423961010860792863588035673402768837054524875758924262379757636384364522101159655492131581392523943820651612603664076735996309463542120848316411597654511018989459979659736520838282690564185644041095216016507156842126115555123279303279164424014748962430668686023004949044936153907988579782262939795986911766669097176316191458827795677430083902885283348566429593955437659025285917240823667263947410605958734876445270821161987554234618123954772993695869426763975047233739959996352024255829080061229443619426009479326585571197258797008254793328954761686146839498075164835960414527763302137593827870574558051927715456484584527850439419977323678253498971759676151687604906476543303611211942457353774068998195534758066076375114915549752441823516928467224569765593974408119545069960110285803139406138601661270822456517499152583679321986208350180571067274091733976182899487683080196804343848410670040241936915079473613612986278283083961353981058853727424724015722701216411280763950052907521439372850306910338057462048727573678431379311608801228203823769073983170893766349741888670731067786725665073312371107477242083924148205000172317045880549279953622642250683857417031397731821320710881603345981071929318075261635099185111488612472552639324167053872003556700152363189817888368285277843340389015269753250476762414688491806188442606848082873248716593681760027329393954833584284082744040883069303625975420366674919951928074844618145733217646067235464749249656708650975022324632579814685575983757959307516231089614441175322204811619905161497077647622804898622615253511536757174247213796403965739722453320410106777301201299597282681241811475700332355954037378777760433772848894380904359956084656673814622336459563758988126954626508301669064464391206285501266147920733074676403616402646935291131803810863964638095185202395085205809106778600884146368913258357668829319195774876629581397716826577551144488402367090424170378933690705855044350909057913819311649279928730790781287368293085334652030151746526606123248680866656350806498717194680275150261785176678257180798676589288610366974822421036806937988341398971149457917292749800395420048357082148367178465659429319375776294448696125432074709609978504038481376297793088700161459399163522155167311731278642889095540301048648000932324283384190127937371267272346270622054065955310207126757683970473219856509010086965997803472578631902936872967198568739031375342633095674969946333842284632790939680101254588406618449536855288676007048240671695842860485212605897302732604700578845449877016189439547629236813364713064021506298315600204462407465382988383798982249578116618202356142831713903619266785420268283524197274815316204834990899783595370331630758218208794029884084912907637523389172856774105118331355300532211985330657216578519200674734419597979061466066121809792891595341294594874889779714161604524348636115574339116318801194462289182090678442735247802868828498006588150907797396379527945659935659513438993311599052211578006210246234584950203214014291451803517077911984013894881632604990514175644035104514893265390985466005046801880336034998575982488428162627017320349083049429553079485501934856112234309047653870142717630155870596402730707010641483035584486404152721338230847985049548753684885532161956121657075457346381816091879105337545557968838537195938209243499757712515784792296766552655286381940813003004406426459563419141607532391159544765358080354710782635425215777951378779792534339991615322411985310740888846759974733122649884096611492823310457373828751912166879915240047225025713114870645443288835144409862887406696261061237945060688024808830652861623497744576023030191739569011986064869522995778395838545188680490679502114853915714741412370513823043355828795631626693454685922677102215260359520045517697030491605983845211995840571711733663684224601101992970237070449213377847933872145140201861941270480610057331137316264234511967867946245333392832225512031134777705942907628983377257353779597872172623908421313763286278474389851494096481388971575146777998969360151125874073387287773858413841297028004551582551728894447543824926397507793110700462810276465455569146112470366115670536578543951194446391319691532965818123936881735547798618115494358039962922761415545522368195000586931043907572810045563166756320643798769880788506653516073140529686259765899675515390143123397798978972863268835820802411426876583288140595124613767088898330226788320790969603465628387647309181689767648705781580248554788875649007309646493450650801282328812177778742335147826375160958197821443248817934192756999303915686235592625966351376685950355266482720302139009618417109259717994634553134132609770312002312625649181129571197439188647775469107028020356999748018115332953397288324913501281105751310991965544189779621422693587593809364412448164260674953978350859619892985916003144585066299384494330825814479299176655101249844673412551828854274382071665722529284590091128874229238010899378532052880019710796915598614277366317455666774380303061647441272168062465055502097720489186868693019457873130112447297922731121066639024170374579435169949769275958850519471317570600258012248428178078490342562613630257300746646092080417503498607581895375037583084883969116681221303409497954062349521175570381428137032867355487871479158387672044968372203601987029822305287522197155766548097145857564392526289079795880495383056980544808231841921096350669760382446102057528451685890963078242425469927602831727034180223915323357638514186848503075099644130553956828659504078210911392197583577316531812080977961565202830253747375016619362370992347452121608854562373211051334430458218912941559018228445589655681191760430627091537716608371638972490221452712239034466185461755140975229376211952524155689893921972942272528091154978881355488698221594184040291378353233871459817609165390312573312708997937854070554284759351348672973879144432554085597738238213592931860245433843560253843939491103238448175213027958597871889325608496459361952049840466133921587759777442603052822965016300390363998884378517780426801911640271367856665502572311826415975740500548312335017784709658213755367856526845889731318527169359920448718313715917443827940949517323932229673640068194199464582854902521400308266183690053120556493049450403870951488692690507488343816496942800985131700401174588413046440202901607954662056510077494389798277289452977073742420435390124015861997023488441124960270579844733273248888450007600798631083441253234654429861779705212721701127044537793676021450270200521063471940234963767189650430553459249097277216163661487153616118801407751411831471575485556116133913234199259506864259910483890665375070120203048082930078315871355816757314454986419116571013580462879530719556835334786011774840834016032653502321401879625264218553989113078191255987533598128191962737475175758091535321525816169620409150689987342468250527321216439571908637515998571688260871951873044351163358507996642737919869781686842799844727140647348986583956726445417449606247827965625443863266489134980009593376994921150910411923387796449123224110261214130148233507281837805204887248917403964250759809859282889749160837410453592792704356177563221483715327927211332510226811131598216960193773644526647164113983182363090508289080530849120211748938833565432417435031082372074043218299852884811448471361814930544985615350428071180173321429580833746988755255713774406676527792461614442168311692879849157346067543871798207966253935221630269175471018631336738033862620052217035040128727190573555756374838139127293104795836035480055658741755430346493577886095869882244812437600640138489304553779250048076694181860643798184940334524359008915317515173197973088381565269921047664843664393509630475922412865620718875754763745134447278350338829209835924952237003243312283895737816361547182966123306659386883709510064430836648368360478942799291349493199785727713735021066848325058980627319526359191393564688640240349192866048874914175261944788180564696738447835735082711449287057339093829615080760286172644766373574880415164206704656864340871388831747438870776834827241871282639820967261111152693609508998114812257720174096957738022137073388525827145684356432365891770114890662260668048265798443273706571873658033353421709169388519807603192181722536244556734612908408308387744867103643593122846696428896343273145085560585581615433428977274544132328130664202217597574976080370139178960223786216337015166814060448585028923578017567751710747304859113728715405698879251609164028724640216295011245343460398297373952811635131965672054328043719338527259118649096385608693998403593226798232436439640190454999711829239900391321193281001818176761041402634405618590497560792446152301787349958569532979940355069736138672463719348473562596797400394726620915651835298251963510512303803051482146280551830413823438089775032935815482756979300499234862429119064224900301780831939134976701510180394964995929377850127115887254670582142695659540660356155842444310371152343295248400597000840519465721817124874230987540586209311584976686923664111556903343292062115461068485613967821534218940970165965383823003491682434529777732709960547849951565912648275980560538378440816314329944141587562488608950586566120524158626809303366426240538098785184739340350911338409628092464768829968629407240226732724203420791829628271008193337883256328890183617888844544765496038975940005220792356057310207012978215001523907169530352365232956303208802996748916776428475409751842518055537526435194896507440028462074235817655737760439865673787177951113473300190164754538003184713295084722434053999896886957463964642177935633809963379172520492135788881579050952259424079629449856398665655976144465761684392134754956599750691349268051790938739909189080659881491855889084830963204800704385679597299835606626827142808935614553040782662840906509917434913975137599890478608996836298137530851871224399040540134778575020955396229621502025842506986275997314436652701517028839077737491098400829520775832173291194249370237973088530043018064698269037467024717074188868492598935328954066672479701976810541416813042191588711716750888194130845764182068727109851126978982705044951368748554404363162361873391311476948036954058058376033740212185752594967391059676427284668208357567426792416860526124956294316873911799000901554289302459561330693543692549269271153452204081746074945646044562481301303948133801664926073023622593458827421333184940440310792760912178067032421876906215163420928371316691594316836431107565720659649438370939542102095874108318296630811355386622690702626639786440082360851208660241292375717292722935521500570614366330230504608606986047821130000480040316625089847394338943498954207657903787746555145429412109061275597853021818887830137580250236405203625701268850250421835244271695004762209077958206381795530252000118301543805648776761808269581601527545325159775319983939290092017820959723914187578330113957059646051657839755249439997361747368164254214542697349308207059443102274253895393891037345341817292523097768772163612670411752805788746004246379665416065605095846809616074849963880138059990342343653373112700785850476460720389355535552574209176879622199086359509877262576497344624753854669545021342922167080294104273721998363194192809749319135228104634248645313307733246595972730566440136696137703639932743339606408220108181701783830378624328955525341540524499193272670112833985143328901499308231446202816005235019444967055105183177600940620906539519790908574859591348047573403581016845359567712637598954146616977156599807105578691173111050089794723503169213049913344987178790231487479791921281654746350341152901764698717047793710996273383567098639685310389733144074165241582424429800519870601060327378304480268727560855678564191256089371938481389111871779282312018827947555937336492595498019961767053473974263278565197022506667837634697534013002639458976379564146583588146075789951497784098896385283066787957241413727639826515619645555483856404249253626997951407775425732765347275184461359018324732179430077105613533399504988973972162357711425187072191185736544331246850354224593744736321379980284235549798577035033238573948664282795086532558221389370635112452888631953330834920841669546171563924958268412326677615188726011616707651081715682498909123839722751004992576358707532380316597084336481128799564488304856360371979409181184836053979914684744102959097758758101119731191644068017704916543237302365046605255749688237956725381459082345122991083052528571723611890904481706223318129075516222515523509546439278973663907701179648166493526178146421800094138989393378759604217648022984791585852464882791130913909105001803185041197654474179594822823577560876303941642157499668391092264188741197583677248150610771924301856634875521181600034632069484151553445421552613141680578112020834992211088569400574416205565210469185183028075388004251583187284364855715731571189811252605173916178156916309564136021877360795501923360949853962528304489295641786135991550776972051127143004863305164348049385780793936952440676630847192821636067891481146302985809238307829532242378146235204517410714379247653701913936029675355214243984206894061014166602918248602470470217781322986649855135003771571615336197263446171884776878269712839273603545410575612519504782348296261424812437625046688919270806321592977336623883325011931169490118188121690099096653318241497652370923220990361809572264951770345810644462882785032498906857709627168724062363888367479110595685085163507722434731584858729175716341137308778815214889080251093281528105505389047189412966930677554282326252518010711247680719941065976000591619209092059445735794817063813016342066670863673891485132121721353342798221834147146079119519382341256405356982857572229095805650203363770982886114086540983769318181620508061794918995750105811549451692845842580352168623038214464538597427985049635695670572430164817479477288515934370006999657277916504084885669189203893970207033711070667761319607744038748996400056638722832451038160075452655857147395420222462708187873122432909703826555834756343061530322216498577558477764618441959534742458841141583287886582356901187619036014941670855185373633149902627848786880213045282176612229495777875558395173416704453315502074367650813561296236572925010668682038499589459995339211127617317584216147967245360236766902158113767020012387165763731597456659242430825940015511769977183328180576079268963623626812711511429553368958269293600891129166333413417184461703655206313305839524767151492226923952299312549608349241849360547444922829221608624773614228453089841638066933819153257165521954579223569739054277666487260152234950352991743541064417249822423162099635025207695095088134440068361665527813719399499641135125485426491195107266930280962571035664151405838420577783775166790144888742428266872322747210343556551804195130180391442951044216427850641787400114970480148296045015807011164659188890189334215182131879092143005985798338749235190939387863788693285017494204611424835987476212023530300801167483802706552649834390857703279255077496132201503488816982991980577967618231287614443131834155390925965769632365204615889754071955685440465525511433205294622971701460774231260335091577089719321772158742535090320222444103401768591510081942551267147177064323746731461624446046787164081821713965232464204086381100251653153595045394468594595149424122646527391592192126877249467688595296910082595315562938952720863309386922808388874745301354174567283017607103779666667999629231452701959032271200333273664876948560023979270199166606410521987367416369085654682714792473886549250400352310911965785431448567604038752365191810692804656980276564733236045715658255064553117733490855484124935836004407881063758632979972976379658499815291797414203309933287475333226915147301366047238514624591219447446209436755585634909908538943900198947061458506039310438832204485798734553532178747825380296509401521894642712848318215782008736255814057926538340631262379012604331272287950678879941995667304581247090033031505012164037069941646871410466808333913400247040043923227386881214743515849534491849241878282262812324708145588162299008328505996354613382915410781455636109455448019885786286952918143942334094411758278191757394960458647512884229543492322924141684644219312137323098504049099968517296726622740480085100148786030911578370979627912663575187747991198539453595393603636703556346366834178993745278070853098439728994617153503113575076772853456451191722887803655283371963835934492646890371649174659831874599893937235047116284516256709790108394225439675305514211706222259582893707713131477012038864597475422348954338904136076003875502420435871500188061772147906096561237764246184113086399996200744361008303561002536836249025397648218810493780539167761654057392064911812172461120180495272828132837133451070672476193324688945247562565367486588743601674607178281267722759614834779820624209519546244319711811793016672825764367622212155539113622126106777419695708500199760934775451036383196702696971646969029407337109023122856464950911679673494215714032037371667593660267282775770388553564291042785053854558330043443013306735812373377572784535673979914601357768030590440446538076530508622940213386812882375350022186448502317002312488215142891695448489603485155620060532686905426081126840005095054191819219957274080336402394014846713080209840436747221797581263848868961389207078669442925170573095102397024292138105462975255898144937355085261151910284526694446398121394394535982521146977953412388915760111795979813844761166895903358443213451522705714121322426921538010736405279651181379658777780618008232711964970256819477342174218769816864995509210160254079489934526840637663817644255174054775434094495401470189510710620967858141368690640058679349770725547272175256987161227677356884631883869653739301267163017542880753353080584931631216234906528541771770116508792950069239294141011992472383053307937451947847777595665986236947111504721508361924175476592698905383279258288151511095817875112064176131077374694100783873782166847537745744884408680703965711943983649080838854092343322210609902885554420490826929954155888670033156897683382473436483216734618928625332986478771459815447152843103069839249458141405355184149409453046700506869820140751922046897146240515959812054064040231541654464866629855072684544702400398816524941530300176237540123639470328037139572691056295367982321696523806709144567378717419071339126590607491098231606778060391333445045909469164240424738769579126178000652216038602576211403797234714102626679175651022931230832050329373453602026764610847956454895960155175889519938593011490910709783325392263990101640056482175810446907624296988789840014941647238324869588511808251283708902332881263355884492600733064055110192632170716341394828604040059137278009854914483408388201971055479304492007447887447359725282937233542368975281932589115711976970589776574905577171753502886703689349148650170877607907403128462471497647310245859717163837008702230525950607513111391895556797207025440019016335940342041983576559067393633919524942012196487046298230554481167610967938482506467339915389939816781897595197848417771582311256070070365089836102734071915658576674348884014033806215837919392322699172751529911870858193773488311363120093097397742082254909928937716003609218327676530337095112694217739541775817089151905606474836524498800434620317104375345060782541207984659425983417300273290782171089568267635673032519830391239621206113190537709874134667230442247633415017104943542062266838997883231896454178782668128047968780763585440783506880245545061636953219050282856051998259918276535381222323506058362583090056497861207634117393702150626814763127920436466162995104503968285904612801728586965725659383013155823906506388703957954529789790857739578884459274888596407604440565719466783805040003220321647462157082388417572914935996545809337455875858323777187413733181047174250085466577948005248888259724121120720357117524224830138533648317915707260473974860258130828530434633477789865068332357405877343894957949257820492115816504994442291649023758165461210379458923325120246575331904198136004955417782691508246206521233354584820675769591613630477681426275227446648172960926237811964495621750059824587289364242576627315984423443063811803184059626472605648643497860420097759519602547420462718078536772478996116967173091992508412099418290387199989522669300856278798732937720209390254612041677071810474627985170711758293457719808849610143276573756253478332453613150726333998731284160306391937701825013352480125389185252385583783513191428327792928307841296221964384374329170766228261209894570616082378706341981085358723016046420974388615015556409046408299886788352431896650562430893544223855962627007575215825947924214996893697495535512313695920625478985984780085237537479606442553259335344423281624254980056446333108853282666224336699204464877831942319180777259008