#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

#include <bits/stdc++.h>
using namespace std;

int main(){
  string s;
  
  while(getline(cin,s)){
  
  rep(i,26){
    rep(j,s.size()){
      if(s[j]!=' ' && s[j]!='.'){
        if(s[j]!='z') s[j]++;
        else s[j]='a';
      }
    }
    if(s.find("the") != string::npos || s.find("this") != string::npos || s.find("that") != string::npos){
      break;
    }
  } 
  
  cout<<s<<endl;
  }
    
  return 0;
}
