//uva 10082
#include<iostream>
#include<string>
using namespace std;
char b[26]={'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
bool isnum(char a)
{
if(a>='0'&&a<='9')
return true;
return false;
}
bool isletter(char a)
{
if(a>='A'&&a<='Z')
return true;
return false;
}
bool isop(char a)
{
if(!isnum(a)&&!isletter(a))
return true;
return false;
}
void output(string a)
{
cout<<a<<endl;
}
int main()
{
string a;
int i;
while(getline(cin,a))
{
for(i=0;i<a.length();i++)
{
if(isnum(a[i]))
{
switch(a[i])
{
case '1': a[i]='`';
break;
case '2': a[i]='1';
break;
case '3': a[i]='2';
break;
case '4': a[i]='3';
break;
case '5': a[i]='4';
break;
case '6': a[i]='5';
break;
case '7': a[i]='6';
break;
case '8': a[i]='7';
break;
case '9': a[i]='8';
break;
case '0': a[i]='9';
break;
}
}
if(a[i]==' ')
continue;
if(isletter(a[i]))
{
int j;
for(j=0;j<26;j++)
{
if(a[i]==b[j])
{
a[i]=b[j-1];
continue;
}
}
}
if(isop(a[i]))
{
switch(a[i])
{
case '-': a[i]='0';break;
case '=': a[i]='-';break;
case '[': a[i]='P';break;
case ']': a[i]='[';break;
case '\\':a[i]=']';break;
case ';':a[i]='L';break;
case '\'':a[i]=';';break;
case ',':a[i]='M';break;
case '.':a[i]=',';break;
case '/':a[i]='.';break;
}
}
}
output(a);
}
return 0;
}