#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>
#define REP(i, n) for(int i = 0;i < n;i++)
#define REPR(i, n) for(int i = n;i >= 0;i--)
using namespace std;

int cipher(string s){
    string tmp;
    REP(i, 26){
        //tmp = s;
        REP(j, s.length()){
            s[j]++;
            if (s[j] > 'z') s[j] = 'a';
        }
        if (s == "the" || s == "this" || s == "that") return i+1;
    }
    return -1;
}

string convert(string s, int num){
    string con = s;
    REP(i, s.length()){
        if (s[i] >= 'a' && s[i] <= 'z'){
            if (s[i]+num > 'z') s[i] = 'a' + (s[i] + num - 'z' - 1);
            else s[i] += num;
        }
    }
    return s;
}

int main(){
    string s;
    int num;
    while (getline(cin, s)){
        string word = "";
        REP(i, s.length()){
            if (s[i] < 'a' || s[i] > 'z') {
                num = cipher(word);
                if (num >= 0) break;
                else word = "";
            } else {
                word += s[i];
            }
        }
        cout << convert(s, num) << endl;
    }
}
