#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main() {
	string str;
	while (getline(cin, str)) {//如果直接按照string进行输入,那么遇到空格时就会停止输入,这样会和题目的要求不符。这时,需要用到函数getline()来获取一行字符串
		if (str == "ENDOFINPUT") {
			break;
		}
		getline(cin, str);
		for (int i = 0; i < str.size(); i++) {
			//only process character.not space key
			if (str[i] >= 'A' && str[i] <= 'Z'){
				str[i] = (str[i] - 'A' - 5 + 26) % 26 + 'A';//str[i] - 'A' 在字母表中第几个字母
				         //str[i] - 'A' - 5 明文在密文基础上前推5个,负数表示从最后一个往前推
									//(str[i] - 'A' - 5 + 26) % 26 如果是负数,通过+26得到明文字符
									//                              正数则痛过取余抵消+26的效果
		}

		}
		//printf("%s", str);
        cout<<str<<endl;
		getline(cin, str);
	}
	return 0;
}