#include<iostream>

int isThisOrThatOrThe(std::string s){
  int dif=0;
  char cro = s[0];
  while(true){
    if(cro == 't')break;
    cro+=1;
    if(cro > 'z')cro = 'a';
    dif++;
  }
  std::string cpys;
  for(int i=0;i<s.length();i++){
    if(s[i]+dif > (int)'z')cpys += (char)((s[i]+dif)%123+'a'); 
    else cpys += (char)(s[i] + dif);
  }
  if(cpys == "that" || cpys == "this" || cpys == "the")return dif;
  return -1;
}


int main(){
  std::string s;
  getline(std::cin,s,'\n');
  bool piri = false;
  int st=0,dif = -12;
  for(int i=0;i<=s.length();i++){
    if(s[i] == ' ' || i == s.length() || s[i] == '.'){
      dif = isThisOrThatOrThe(s.substr(st,i-st));
      if(dif != -1){
	break;
      }
      st = i+1;
    }
  }

  for(int i=0;i<s.length();i++){
    if(s[i] == ' ' || s[i] == '.'){
      std::cout << s[i];
      continue; 
    }
    s[i]+dif > (int)'z'?std::cout << (char)((s[i]+dif)%123+'a'):std::cout << (char)(s[i]+dif);
  }
  std::cout << std::endl;
  return 0;
}