#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 = 30;

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.length());
        string tmp;
        stringstream ss(str);
        vector<string> v;
        while(ss >>tmp) v.push_back(tmp);
        REP(z, N){
            REP(i, v.size()) REP(j, v[i].length()) v[i][j] = ++v[i][j] <= 'z'? v[i][j] : 'a';
            if(isOK(v)){
                cout <<v[0];
                FOR(i, 1, v.size()) cout <<" " <<v[i];
                cout <<'.' <<endl;
                break;
            }
        }
    }
    return 0;
}