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


int main()
{
	string s, line[81];
	while (getline(std::cin, s)){
		fill(line, line + 81, "");
		int counter = 0;
		s += "\n";

		//入力内容を配列にとる．
		string word = "";
		for (int i = 0; i < (signed)s.length(); i++){
			if (s[i] == ' ' || s[i] == '\n'){
				line[counter++] = word;
				word = "";
			}
			else{
				word += s[i];
			}
		}



		//ずらす数を探す
		int slide;
		for (int i = 0; i <= 26; i++){
			for (int j = 0; j < counter; j++){
				string word = "";
				for (int k = 0; k < (signed)line[j].length(); k++){
					if (line[j][k] != '.' && line[j][k] != ' '&& line[j][k] != '\n'){
						word += 'a' + (line[j][k] + i - 'a') % 26;
					}
					else{
						word += line[j][k];
					}
				}
				if (word == "the" || word == "this" || word == "that"){
					slide = i;
					goto jump;
				}

			}
		}

	jump:

		//ずらすべき数だけずらす
		for (int i = 0; i < counter; i++){
			for (int j = 0; j < (signed)line[i].length(); j++){
				if (line[i][j] != '.' && line[i][j] != ' '&& line[i][j] != '\n'){
					line[i][j] = 'a' + (line[i][j] + slide - 'a') % 26;
				}
			}
		}

		//出力
		for (int i = 0; i < counter - 1; i++){
			cout << line[i] << " ";
		}
		cout << line[counter - 1] << endl;

	}
	return 0;
}