{-# LANGUAGE BangPatterns #-}

main = print =<< sol <$> readLn <*> (filter (>='a') <$>  getLine)

sol k s = foldr ((+) . f k (length s)) 0 [0..k]
  
f k n i = choose (n+k-i-1) (n-1)*pwr 25 (k-i)*pwr 26 i

p = 10^9+7 :: Int

newtype Modulo = Modulo { getInt :: Int } deriving (Eq, Ord)

instance Num Modulo where
  Modulo a + Modulo b = Modulo ((a + b) `mod` p)
  Modulo a - Modulo b = Modulo ((a - b) `mod` p)
  Modulo a * Modulo b = Modulo ((a * b) `mod` p)
  abs = undefined
  signum = undefined
  fromInteger i = Modulo (fromIntegral i `mod` p)

instance Show Modulo where
  show (Modulo i) = show i

inv :: Modulo -> Modulo
inv 1 = 1
inv a = pwr a (p-2)

pwr :: Modulo -> Int -> Modulo
pwr !a !n
  | n == 0    = 1
  | odd n     = a*r
  | otherwise = r
  where
  q = pwr a (n `div` 2)
  r = q*q

fac :: Int -> Modulo
fac 0 = 1
fac n = Modulo n*fac (n-1)

fac' :: Int -> Int -> Modulo
fac' n 0 = Modulo 1
fac' n m = Modulo n*fac' (n-1) (m-1)

choose :: Int -> Int -> Modulo
choose n m = fac' n m' * inv (fac m')
  where 
  m' = min m (n-m)