657283702785560527482310138558683993287695062533276146019753166992504180937736414304960129813246386300315341194158395986054793155529962144747287898330277397663451398628282943280579527344913238276233828329229629772614439189787696596217611464893196656777804224173414195374363247766402541182301007587465681273415423873105728500172624949338284853814526674245914882407246389168121163967404330236516414704695896568109774767767033614669216911697577701709752749301414235447315173520943478865251746637037829525920465886438495954203782889695311872224876936776604527681542693910877108442894811493560403997615471469352168114385710016604721056479781694269856879074081347025539381071381352217021259325344656515897104702574951429983175956204939432299964798645684073674867359899688854897388779582753544026697331351738266601253581318545680436750640342119041913825884561499773933780658382303661701055853822699683133543859947416717329721488242688333846452049138822556961281842845083993105544189752704124795882368390661349461891761879092635847678943557183139449481798974592651332673075491769508956631049864971122522031909663123860921893266044817493979083073237541956578006950577880674352696872457952265367581099882863611495658130112811670550177134106126348149980694387254865068841735217273488320452174815079468171122814803820574558328211235163227451725578875728893967862042437997585304707458274767927198981623873471439635505695582012919149974809924903916416673463922044493214374217462278799241736949741054993041281314482517375336516822532299679672247173339621129149877810939782023717042718218447599286441190759934284294344531959353041831553603864719644163739710474934951736569377134233556281486666537676262569023629583903167868002546825338057738632924546218270776480144490513336164517697288492957327380342128930461702313725657147040791162908224202142449248901239991521475188241479174529630385746737850253306935684225881142626463033915449329675404772589085517112205813868649342513180287495985434688363666776921452824213839471085130711665158805690733925953137659643498696098608115465849357016882842345380617744559045888618364447996912336732237692575414670617572997769338959404548549351899327465292439558994667624198380282295243556391708776393925107414346949916119930785302914320461523366303893911456852315298566507018865537284794169377503445851474847043177887551045007722169067995808350396764412373843689568363415122642518948442019314265824501218687851939997833485178476663972984380114983600495128703969718140576870389239112419731779306284300587334458724422482242168942193254775917568664404375173117986607596176915515630085256594045905804504427635743900517655158208384888853455959978879791534677309746158793820769594506977083685868361654154111428187830353492423812769827068298889912572069716368523930843608302347556175464939342533938430563800929570873395689268313342336394406052428726588571975262876600103748867045886708410289085600822486120684288725014637210771248900670238614730755875140177047353399845556145599201348043037515235128222427509987927229414989740158821476979484009661339853962273993961697067021115928584949293334161781447113118024199043650835544120148341361622252012923818597963858712398228873937149197619341999997661515013485554750482665387870125154476675076533406894515853146149875232988694495952153567528412784497036577004785758516092820335197343346528686611682056097147347968384119674685463179529195647335185856177189175559749922619385705613830777213363236756883509432705123197443004514116438173634221151797205825068781300928862034536556136253682948990210691682495221349738937637714879823663659121965240265966337642049873476357516414694645212379064373360076700516309283968299345284114025949191015932504315973801965083179722386135601981074143302687738008170127743941126812627624559265162690657720736871001347529078565031535293845997332758594366253259957247423852998935922217313777320639773802827743784501943465222205447860772672583063515134470158922816693597619060662935205991646265731672064973752529037115157601387791870295568934428897648915310731498721947206134442188002269135011512044103363716651266741488067676549514471782587064673190301412552281575008562813735496960264961963830277189288740347809722318927675504194935816490554415172092572282135384909338590194032120297546033172712354631791749786756109330608389263589319023826570370778371359872741574999294975662589851772441778587620747158886071145716156227222430430050172549634340575562780849748949925863875722500374321763948641229301767384194754256887822236231576576808784913102673753750313197289769414969348872314909369874129673969848293513136784721574285916678740174346108859243393751729890768989923713873014152151395457600435552301430242945600738478429301849251879783331514527167525506686944093302236751681370929614174143737793183599357141883356782592079537971574128048036341839239277712774926622710753448548740888768462201371935604128200649691997913870572646509114581980522926871138126990415014242810275842921872847624050176509379115724887431307972624015478413037031195820314026394436370508693561549712445793986534952541313969813625162277433191618819186918261206923799036957852869839287607826571813051317598578638161244908931105461922443518389465941562677326189933246486972890625758953252538392223337571202473987017261761928598445359208484507801776995282710899299739213594032729695425094397092880968142463372098300689148913518371263309984491138981129511272874807257724570456951716687362505765887298633283807492029794467283527013886466262838155391893452054587377552738361268987772745333223139037593340677558683256791079494125369180472625278438932355424987281096892642351387549382956314219703528562573340874067517253566296412818776794758524431550381297434551423136802351309435603088600459553492325939193714990806321817814556386354131452977953884237027500111571314458517792298462012455151