#include <iostream>
using namespace std;
int main()
{
string kod;
cin >> kod;
int dlugoscKodu = kod.length();
string tablicaZnakow = "ABCDEFGHIJKLMNOP";
int tablicaWartosciPierwszegoZnakuWparze[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int tablicaWartosciDrugiegoZnakuWparze[] = {0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240};
int wartoscPierwszegoZnaku = 0, wartoscDrugiegoZnaku = 0, sumaWartosciDwochZnakow=0;
for (int i =0; i<dlugoscKodu; i=i+2)
{
int k=0;
while (k<=15)
{
if (kod[i] == tablicaZnakow[k])
{
wartoscPierwszegoZnaku = tablicaWartosciPierwszegoZnakuWparze[k];
break;
}
k++;
}
int p=0;
while (p<=15)
{
if (kod[i+1] == tablicaZnakow[p])
{
wartoscDrugiegoZnaku = tablicaWartosciDrugiegoZnakuWparze[p];
break;
}
p++;
}
sumaWartosciDwochZnakow = wartoscPierwszegoZnaku + wartoscDrugiegoZnaku;
cout << (char)sumaWartosciDwochZnakow;
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewpzdHJpbmcga29kOwpjaW4gPj4ga29kOwppbnQgZGx1Z29zY0tvZHUgPSBrb2QubGVuZ3RoKCk7CnN0cmluZyB0YWJsaWNhWm5ha293ID0gIkFCQ0RFRkdISUpLTE1OT1AiOwppbnQgdGFibGljYVdhcnRvc2NpUGllcndzemVnb1puYWt1V3BhcnplW10gPSB7MCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNX07CmludCB0YWJsaWNhV2FydG9zY2lEcnVnaWVnb1puYWt1V3BhcnplW10gPSB7MCwxNiwzMiw0OCw2NCw4MCw5NiwxMTIsMTI4LDE0NCwxNjAsMTc2LDE5MiwyMDgsMjI0LDI0MH07CmludCB3YXJ0b3NjUGllcndzemVnb1puYWt1ID0gMCwgd2FydG9zY0RydWdpZWdvWm5ha3UgPSAwLCBzdW1hV2FydG9zY2lEd29jaFpuYWtvdz0wOwoKZm9yIChpbnQgaSA9MDsgaTxkbHVnb3NjS29kdTsgaT1pKzIpCnsKICAgIGludCBrPTA7CiAgICB3aGlsZSAoazw9MTUpCiAgICB7CiAgICAgICAgaWYgKGtvZFtpXSA9PSB0YWJsaWNhWm5ha293W2tdKQogICAgICAgIHsKICAgICAgICAgICAgd2FydG9zY1BpZXJ3c3plZ29abmFrdSA9IHRhYmxpY2FXYXJ0b3NjaVBpZXJ3c3plZ29abmFrdVdwYXJ6ZVtrXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGsrKzsKICAgIH0KICAgIGludCBwPTA7CiAgICB3aGlsZSAocDw9MTUpCiAgICB7CiAgICAgICAgaWYgKGtvZFtpKzFdID09IHRhYmxpY2FabmFrb3dbcF0pCiAgICAgICAgewogICAgICAgICAgICB3YXJ0b3NjRHJ1Z2llZ29abmFrdSA9IHRhYmxpY2FXYXJ0b3NjaURydWdpZWdvWm5ha3VXcGFyemVbcF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBwKys7CiAgICB9CiAgICBzdW1hV2FydG9zY2lEd29jaFpuYWtvdyA9IHdhcnRvc2NQaWVyd3N6ZWdvWm5ha3UgKyB3YXJ0b3NjRHJ1Z2llZ29abmFrdTsKCiAgICBjb3V0IDw8IChjaGFyKXN1bWFXYXJ0b3NjaUR3b2NoWm5ha293Owp9CmNvdXQgPDwgZW5kbDsKCnJldHVybiAwOwp9