#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <deque>
using namespace std;
char buffer[1000];
deque<bool> morse;
deque<int> numbers;
int main()
{
while (scanf("%s\n", &buffer) == 1)
{
morse.clear(); numbers.clear();
string radek = buffer;
for(int i=0; i<radek.size(); i++)
{
switch (radek[i])
{
case 'A': morse.push_back(true);morse.push_back(false); numbers.push_back(2); break;
case 'B': morse.push_back(false);morse.push_back(true);morse.push_back(true);morse.push_back(true); numbers.push_back(4); break;
case 'C': morse.push_back(false);morse.push_back(true);morse.push_back(false);morse.push_back(true); numbers.push_back(4); break;
case 'D': morse.push_back(false);morse.push_back(true);morse.push_back(true); numbers.push_back(3); break;
case 'E': morse.push_back(true); numbers.push_back(1); break;
case 'F': morse.push_back(true);morse.push_back(true);morse.push_back(false);morse.push_back(true); numbers.push_back(4); break;
case 'G': morse.push_back(false);morse.push_back(false);morse.push_back(true); numbers.push_back(3); break;
case 'H': morse.push_back(true);morse.push_back(true);morse.push_back(true);morse.push_back(true); numbers.push_back(4); break;
case 'I': morse.push_back(true);morse.push_back(true); numbers.push_back(2); break;
case 'J': morse.push_back(true);morse.push_back(false);morse.push_back(false);morse.push_back(false); numbers.push_back(4); break;
case 'K': morse.push_back(false);morse.push_back(true);morse.push_back(false); numbers.push_back(3); break;
case 'L': morse.push_back(true);morse.push_back(false);morse.push_back(true);morse.push_back(true); numbers.push_back(4); break;
case 'M': morse.push_back(false);morse.push_back(false); numbers.push_back(2); break;
case 'N': morse.push_back(false);morse.push_back(true); numbers.push_back(2); break;
case 'O': morse.push_back(false);morse.push_back(false);morse.push_back(false); numbers.push_back(3); break;
case 'P': morse.push_back(true);morse.push_back(false);morse.push_back(false);morse.push_back(true); numbers.push_back(4); break;
case 'Q': morse.push_back(false);morse.push_back(false);morse.push_back(true);morse.push_back(false); numbers.push_back(4); break;
case 'R': morse.push_back(true);morse.push_back(false);morse.push_back(true); numbers.push_back(3); break;
case 'S': morse.push_back(true);morse.push_back(true);morse.push_back(true); numbers.push_back(3); break;
case 'T': morse.push_back(false); numbers.push_back(1); break;
case 'U': morse.push_back(true);morse.push_back(true);morse.push_back(false); numbers.push_back(3); break;
case 'V': morse.push_back(true);morse.push_back(true);morse.push_back(true);morse.push_back(false); numbers.push_back(4); break;
case 'W': morse.push_back(true);morse.push_back(false);morse.push_back(false); numbers.push_back(3); break;
case 'X': morse.push_back(false);morse.push_back(true);morse.push_back(true);morse.push_back(false); numbers.push_back(4); break;
case 'Y': morse.push_back(false);morse.push_back(true);morse.push_back(false);morse.push_back(false); numbers.push_back(4); break;
case 'Z': morse.push_back(false);morse.push_back(false);morse.push_back(true);morse.push_back(true); numbers.push_back(4); break;
case '_': morse.push_back(true);morse.push_back(true);morse.push_back(false);morse.push_back(false); numbers.push_back(4); break;
case ',': morse.push_back(true);morse.push_back(false);morse.push_back(true);morse.push_back(false); numbers.push_back(4); break;
case '.': morse.push_back(false);morse.push_back(false);morse.push_back(false);morse.push_back(true); numbers.push_back(4); break;
case '?': morse.push_back(false);morse.push_back(false);morse.push_back(false);morse.push_back(false); numbers.push_back(4); break;
default: break;
}
}
while(numbers.size() > 0)
{
string letter = "";
int size = numbers.back();
for (int i=0; i<size; i++)
{
if (morse.front())
letter += '.';
else
letter += '-';
morse.pop_front();
}
if (letter == ".-") printf("A");
else if (letter == "-...") printf("B");
else if (letter == "-.-.") printf("C");
else if (letter == "-..") printf("D");
else if (letter == ".") printf("E");
else if (letter == "..-.") printf("F");
else if (letter == "--.") printf("G");
else if (letter == "....") printf("H");
else if (letter == "..") printf("I");
else if (letter == ".---") printf("J");
else if (letter == "-.-") printf("K");
else if (letter == ".-..") printf("L");
else if (letter == "--") printf("M");
else if (letter == "-.") printf("N");
else if (letter == "---") printf("O");
else if (letter == ".--.") printf("P");
else if (letter == "--.-") printf("Q");
else if (letter == ".-.") printf("R");
else if (letter == "...") printf("S");
else if (letter == "-") printf("T");
else if (letter == "..-") printf("U");
else if (letter == "...-") printf("V");
else if (letter == ".--") printf("W");
else if (letter == "-..-") printf("X");
else if (letter == "-.--") printf("Y");
else if (letter == "--..") printf("Z");
else if (letter == "..--") printf("_");
else if (letter == ".-.-") printf(",");
else if (letter == "---.") printf(".");
else if (letter == "----") printf("?");
numbers.pop_back();
}
printf("\n");
}
return 0;
}