import Data.Char

baseConvertTo :: Integer -> Integer -> [Integer]
baseConvertTo b n
  | n < b = [n]
  | otherwise =  (n `mod` b) : baseConvertTo b (n `div` b)

fill :: Int -> a -> [a] -> [a]
fill n y xs
  | l < n = take (n - l) (repeat y) ++ xs
  | otherwise = xs
  where l = length xs


f :: Integer -> [Char]
f n = g n 26 1
  where
    g n s k
      | n <= s = map (chr . (+ 0x61) . fromIntegral) $ fill k 0 $ reverse $ baseConvertTo 26 (n - 1)
      | otherwise = g (n - s) (s * 26) (k + 1)


main :: IO ()
main = do
  n <- readLn :: IO Integer
  
  putStrLn $ f n
