
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE BangPatterns #-}

module Main where

import Debug.Trace
--import Data.List
--import qualified Data.Set.Strict as Set
--import qualified Data.Map.Strict as Map

main :: IO ()
main = do
  a <- read <$> getLine
  --a `traceShow`
  putStrLn $ solve a

solve :: Int -> String
solve a = build a ""

char_range :: Int
char_range = fromEnum 'z' - fromEnum 'a' + 1

char_start :: Int
char_start = fromEnum 'a'

build :: Int -> String -> String
build a s
  -- | a <= 0 = s `traceShow` s
  | a <= 0 = s
  -- | otherwise = (a, m, d, s) `traceShow` build d ((toEnum (char_start + m)):s)
  | otherwise = build d ((toEnum (char_start + m)):s)
  where
    m = (a - 1) `mod` char_range
    d = (a - 1 - char_range) `div` char_range + 1


--toEnum (fromEnum 'a' + 2) :: Char
