import Control.Monad
import Control.Applicative
import Data.List
import Data.Char

main = do
  s <- getLine
  putStrLn $ solve s

solve :: String -> String
solve s | (or . map (flip isInfixOf ns)) ["the", "this", "that"] = ns
        | otherwise = solve ns
  where ns = cipher s

rot :: Int -> Char -> Char
rot n c | c `elem` tbl = tbl !! (ord c - ord 'a' + n)
        | otherwise = c
  where tbl = ['a'..'z'] ++ ['a'..'z']

cipher :: String -> String
cipher s = map (rot 1) s