#include <iostream>
#include <string>
using namespace std;

int main()
{
    string Alphabet = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
    string THE[26];
    string THIS[26];
    string THAT[26];
    //Generate THE
    for(int x = 0; x < 26; x++)
    {
        THE[x] = THE[x] + Alphabet[26+x] + Alphabet[26+7-19+x] + Alphabet[26+4-19+x];
    }

    //Generate THIS
    for(int y = 0; y < 26; y++)
    {
        THIS[y] = THIS[y] + Alphabet[26+y] + Alphabet[26+7-19+y] + Alphabet[26+8-19+y] + Alphabet[26+18-19+y];
    }

    //Generate THAT
    for(int z = 0; z < 26; z++)
    {
        THAT[z] = THAT[z] + Alphabet[26+z] + Alphabet[26+7-19+z] + Alphabet[26-19+z] + Alphabet[26+z];
    }




    string Text;
    //Input
    getline(cin,Text);

    int Different = 0;

    //Find THE THIS THAT

    for(int A = 0; A < 26; A++)
    {
        if(Text.find(THE[A]) < Text.length())
        {
            break;
        }
        else if(Text.find(THIS[A]) < Text.length())
        {
            break;
        }
        else if(Text.find(THAT[A]) < Text.length())
        {
            break;
        }
        Different++;
    }


    //Convert Sentence

    for(unsigned int B = 0; B < Text.length(); B++)
    {
        for(int N = 0; N < 26; N++)
        {
            if(Text[B] == Alphabet[N])
            {
                Text[B] = Alphabet[N+Different-1];
                break;
            }

        }
    }

    cout << Text << endl;
}