#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"};
	while(getline(cin,inl)){
		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;
}