#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
string decodeMorse(string morse) {
if (morse[0] == '.') {
if (morse.length() == 1) {
return "E";
}
if (morse[1] == '.') {
if (morse.length() == 2) {
return "I";
}
if (morse[2] == '.') {
if (morse.length() == 3) {
return "S";
}
if (morse[3] == '.') {
return "H";
} else {
return "V";
}
} else {
if (morse.length() == 3) {
return "U";
}
if (morse[3] == '.') {
return "F";
} else {
return "_";
}
}
} else {
if (morse.length() == 2) {
return "A";
}
if (morse[2] == '.') {
if (morse.length() == 3) {
return "R";
}
if (morse[3] == '.') {
return "L";
} else {
return ",";
}
} else {
if (morse.length() == 3) {
return "W";
}
if (morse[3] == '.') {
return "P";
} else {
return "J";
}
}
}
} else {
if (morse.length() == 1) {
return "T";
}
if (morse[1] == '.') {
if (morse.length() == 2) {
return "N";
}
if (morse[2] == '.') {
if (morse.length() == 3) {
return "D";
}
if (morse[3] == '.') {
return "B";
} else {
return "X";
}
} else {
if (morse.length() == 3) {
return "K";
}
if (morse[3] == '.') {
return "C";
} else {
return "Y";
}
}
} else {
if (morse.length() == 2) {
return "M";
}
if (morse[2] == '.') {
if (morse.length() == 3) {
return "G";
}
if (morse[3] == '.') {
return "Z";
} else {
return "Q";
}
} else {
if (morse.length() == 3) {
return "O";
}
if (morse[3] == '.') {
return ".";
} else {
return "?";
}
}
}
}
}
string decode(string morse, string lengths) {
string ret;
int currLen = 0;
for (string::size_type i = 0; i < lengths.length(); i++) {
currLen = lengths[i] * 1;
ret += decodeMorse(morse.substr(0, currLen));
morse = morse.substr(currLen, morse.length());
}
return ret;
}
int main(int argc, char** argv) {
string vagner[100];
string line;
vagner[65] = ".-";
vagner[66] = "-...";
vagner[67] = "-.-.";
vagner[68] = "-..";
vagner[69] = ".";
vagner[70] = "..-.";
vagner[71] = "--.";
vagner[72] = "....";
vagner[73] = "..";
vagner[74] = ".---";
vagner[75] = "-.-";
vagner[76] = ".-..";
vagner[77] = "--";
vagner[78] = "-.";
vagner[79] = "---";
vagner[80] = ".--.";
vagner[81] = "--.-";
vagner[82] = ".-.";
vagner[83] = "...";
vagner[84] = "-";
vagner[85] = "..-";
vagner[86] = "...-";
vagner[87] = ".--";
vagner[88] = "-..-";
vagner[89] = "-.--";
vagner[90] = "--..";
vagner[95] = "..--";
vagner[44] = ".-.-";
vagner[46] = "---.";
vagner[63] = "----";
while(getline(cin, line)) {
string morse;
string lengths;
string lengthsRev;
for(string::size_type i = 0; i < line.length(); i++) {
char c = line[i];
string encoded = vagner[(int)c];
morse += encoded;
lengths += encoded.length();
}
for(int i = lengths.length() - 1; i >= 0; i--) {
lengthsRev += lengths[i];
}
cout << decode(morse, lengthsRev) << endl;
}
return 0;
}