#include <iostream>
#include <string>
#include <sstream>

using namespace std;

string doCaesar ( string s, int n )
{
	for (int i = 0, I = s.size(); i < I; ++i) {
		if (s[i] < 'a' || 'z' < s[i]) { continue; }
		s[i] = (s[i] - 'a' + n) % 26 + 'a';
	}
	return s;
}

int main ( void )
{
	string S[] = { "the", "the.", "this", "this.", "that", "that." };

	istringstream iss;
	string s;

	while (getline(cin, s)) {
		bool hit = false;
		for (int i = 0; i < 26 && !hit; ++i) {
			string t;
			iss.clear();
			iss.str(doCaesar(s, 26-i));
			while(iss >> t && !hit) {
				for (int w = 0, W = sizeof(S)/sizeof(string); w < W && !hit; ++w) {
					if (S[w] == t) {
						hit = true;
					}
				}
			}
			if (hit) {
				cout << doCaesar(s, 26-i) << endl;
			}
		}
	}

	return 0;
}