import Data.Char
import Data.List

fukugou :: Int -> [String] -> String
fukugou n x
  | or $ map (flip isInfixOf (concat $ map (map (chr . subtract n . ord)) x)) ["this", "the", "that"] = unwords $ map (map (chr . subtract n . ord)) x
  | otherwise = fukugou (n+1) x

solve :: [[String]] -> [String]
solve [] = []
solve (x:xs)
  | f x == [] = fukugou 1 x : solve xs
  | otherwise =	period (fukugou 1 x) (f x) : solve xs
    where f x = elemIndices '.' (unwords x)
          period xs [] = xs
          period xs (n:nx) = period (take n xs ++ "." ++ drop (n+1) xs) nx

main = getContents >>= mapM_ putStrLn . solve . map words . lines