import Control.Monad
import Control.Applicative

rotate :: Int -> Char -> Char
rotate i c
  | fromEnum c == 46 = c  -- c == '.'
--  | fromEnum c == 10 = c  -- c == '\n'
  | otherwise        = toEnum $ (fromEnum c - 97 + i) `mod` 26 + 97

caesar :: [String] -> Int -> [String]
caesar [] _ = []
caesar (x:xs) i = map (rotate i) x : caesar xs i


decode' :: Int -> [String] -> [String]
decode' _ [] = []
decode' 0  _ = []
decode' n xs =
  let cand = caesar xs n
      ans1 = "this" `elem` cand
      ans2 = "that" `elem` cand
      ans3 = "the"  `elem` cand
  in
      if ans1 || ans2 || ans3 then cand
      else decode' (n-1) xs

solver :: [[String]] -> [[String]]
solver = map (decode' 26)

main :: IO()
main = do
  inputs <- lines <$> getContents
  let inp' = map words inputs
  mapM_ (putStrLn . unwords)  (solver inp')