import Text.Regex
import Text.Regex.Posix
import Data.Char

main = do
  s <- getLine
  if s == "" then
    return()
    else do
      putStrLn $ cae s
      main

cae::String -> String
cae s = head . filter (\x->x =~ "that|the|this")
        $ [rot i s| i<-[0..25]]

rot::Int -> String -> String
rot _ [] = []
rot n (x:xs) = if (ord x) >= (ord 'a') &&  (ord x) <= (ord 'z') then
               (aux n x):(rot n xs)
             else
               x:(rot n xs)
  where
    aux::Int -> Char -> Char
    aux n c = (!! ((ord c) - (ord 'a') + n)) . cycle
              $ "abcdefghijklmnopqrstuvwxyz"