#include<iostream>
#include<string>
using namespace std;
char data[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int main(){
  string s[80];
  int count = 0;
  while(cin >> s[count]) count++;
  bool roop = true;
  while(roop){
    for(int i=0;i<=count;i++){
      for(int j=0;j<s[i].size();j++){
	if(s[i][j]=='z') s[i][j] = 'a';
	if(s[i][j]=='.') continue;
	else s[i][j] = data[int(s[i][j]-'`')]; 
	//cout << s[i][j] << endl;
      }
      if(s[i]=="the"||s[i]=="this"||s[i]=="that") roop = false;
    }
  }
  for(int i=0;i<=count;i++){
    cout << s[i];
    if(i!=count) cout << ' ';
  }
  cout << endl;
  return 0;
}