#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;
}