#include<iostream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
#define REP(i, j) for(int i = 0; i < j; i++)
#define FOR(i, j, k) for(int i = j; i < k; i++)
const int N = 26;

bool isOK(vector<string> v){
    REP(i, v.size()) if(v[i] == "the" || v[i] == "this" || v[i] == "that") return true;
    return false;
}

int main(){
    string str;
    while(getline(cin, str)){
        str = str.substr(0, str.size() - 1);
        REP(pls, N){
            string tmp;
            stringstream ss(str);
            vector<string> ans;
            while(ss >>tmp){
                REP(i, tmp.length()) tmp[i] = 'a' + ((tmp[i] - 'a'  + pls) % N);
                ans.push_back(tmp);
            }
            if(isOK(ans)){
                cout <<ans[0];
                FOR(i, 1, ans.size()) cout <<" " <<ans[i];
                cout <<'.' <<endl;
                break;
            }
        }
    }
    return 0;
}