import Data.STRef
import Control.Monad
import Control.Monad.ST
import Data.Maybe

rmChar :: Char -> String -> String
rmChar c xs = takeWhile (< c) xs ++ dropWhile (<= c) xs

smallest :: String -> Maybe Char
smallest s = runST $ do
  alphabetsRef <- newSTRef ['a'..'z']

  forM_ s $ \c -> do
    alphabets <- readSTRef alphabetsRef
    let newAlphabets = rmChar c alphabets

    writeSTRef alphabetsRef newAlphabets

  alphabetsRemnant <- readSTRef alphabetsRef

  if null alphabetsRemnant
    then return Nothing
    else return $ Just (head alphabetsRemnant)

main :: IO ()
main = do
  s <- getLine

  maybe (putStr "None") putChar $ smallest s
