object Main extends App {
  val words = Seq("the", "this", "that")
  def caesar(ch: Char): Char = ch match {
    case 'a' => 'b'
    case 'b' => 'c'
    case 'c' => 'd'
    case 'd' => 'e'
    case 'e' => 'f'
    case 'f' => 'g'
    case 'g' => 'h'
    case 'h' => 'i'
    case 'i' => 'j'
    case 'j' => 'k'
    case 'k' => 'l'
    case 'l' => 'm'
    case 'm' => 'n'
    case 'n' => 'o'
    case 'o' => 'p'
    case 'p' => 'q'
    case 'q' => 'r'
    case 'r' => 's'
    case 's' => 't'
    case 't' => 'u'
    case 'u' => 'v'
    case 'v' => 'w'
    case 'w' => 'x'
    case 'x' => 'y'
    case 'y' => 'z'
    case 'z' => 'a'
    case x => x
  }

  def isDecoded(input: String): Boolean = {
    val arr = input.split(' ')
    arr.foreach { a =>
      if (a == words(0) || a == words(1) || a == words(2)) {
        return true
      }
    }
    return false
  }

  def loop(input: String): String = {
    if (isDecoded(input)) {
      println(input)
      input
    }
    else {
      loop(input map caesar)
    }
  }

  loop(readLine())

}