#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <string>

#define rep(x,to) for(int x=0;x<to;x++)
#define rep2(x,from,to) for(x=from;x<to;x++)

using namespace std;


int main(void){

string inl;
vector<string> svs;
string ww[3] ={"the","this","that"};
	getline(cin,inl);
//	stringstream ss(inl);   
//	string elem;
//	while (ss >> elem)  svs.push_back(elem);

	rep(i,26){
		rep(j,inl.size()){
			if(inl[j] >= 'a' && inl[j] <= 'z') inl[j] += 1;
			if(inl[j] > 'z' ) inl[j] -= 26;
			
			}
		if(inl.find(ww[0]) != string::npos || inl.find(ww[1]) != string::npos
			|| inl.find(ww[2]) != string::npos )  cout << inl << endl;
//		 cout << i << "::" << inl << endl;

	}

	
	return 0;
}