#include <iostream>
#include <string>

const char *table = "abcdefghijklmnopqrstuvwxyz";

inline char shift(char c, int n)
{
    return table[(c - 'a' - n) % 26];
}

void shift(std::string &s, int n)
{
    for (unsigned i = 0; i < s.size(); ++i) {
        if (s[i] != ' ' && s[i] != '.') s[i] = shift(s[i], n);
    }
}

int search_number(const std::string &s)
{
    for (unsigned i = 0; i < s.size() - 3; ++i) {
        int n = s[i] - 't';
        if (shift(s[i + 1], n) == 'h') {
            if (shift(s[i + 2], n) == 'e'
                    || (i < s.size() - 3 && shift(s[i + 2], n) == 'i' && shift(s[i + 3], n) == 's')
                    || (i < s.size() - 3 && shift(s[i + 2], n) == 'a' && shift(s[i + 3], n) == 't'))
                return n;
        }
    }
    return s[s.size() - 3] - 't';
}

int main()
{
    std::string s;
    while (getline(std::cin, s)) {
        shift(s, search_number(s));
        std::cout << s << std::endl;
    }
}