import std.stdio;
import std.string;
import std.array;
import std.algorithm;
import std.container : SList;

void main() {
    char[] str = readln().dup;
    char[] ans = resolve(str);
    writeln(ans);
}

char[] resolve(char[] str) {
    for (int c = 0; c < 'z'-'a' + 1; ++c) {
        for (int i = 0; i < str.length; ++i) {
            if ('a' <= str[i] && str[i] <= 'z') {
                if (str[i] == 'z') {
                    str[i] = 'a';
                } else {
                    str[i] += 1;
                }
            }
        }
        char[][] sxx = split(str);
        if (contains_any(sxx, "the".dup, "this".dup, "that".dup)) {
            break;
        }
    }
    return str;
}

bool contains_any(T, U...)(T[] arr, U elms) {
    foreach(elm ; elms) {
        if (!find(arr, elm).empty) {
            return true;
        }
    }
    return false;
}