#include <iostream>
#include <set>
#include <stdio.h>
#include <utility>
#include <map>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
map<char,string> code;
map<string, char> rcode;
int main(){
code.insert(make_pair('A',".-"));
rcode.insert(make_pair(".-",'A'));
code.insert(make_pair('B',"-..."));
rcode.insert(make_pair("-...",'B'));
code.insert(make_pair('C',"-.-."));
rcode.insert(make_pair("-.-.",'C'));
code.insert(make_pair('D',"-.."));
rcode.insert(make_pair("-..",'D'));
code.insert(make_pair('E',"."));
rcode.insert(make_pair(".",'E'));
code.insert(make_pair('F',"..-."));
rcode.insert(make_pair("..-.",'F'));
code.insert(make_pair('G',"--."));
rcode.insert(make_pair("--.",'G'));
code.insert(make_pair('H',"...."));
rcode.insert(make_pair("....",'H'));
code.insert(make_pair('I',".."));
rcode.insert(make_pair("..",'I'));
code.insert(make_pair('J',".---"));
rcode.insert(make_pair(".---",'J'));
code.insert(make_pair('K',"-.-"));
rcode.insert(make_pair("-.-",'K'));
code.insert(make_pair('L',".-.."));
rcode.insert(make_pair(".-..",'L'));
code.insert(make_pair('M',"--"));
rcode.insert(make_pair("--",'M'));
code.insert(make_pair('N',"-."));
rcode.insert(make_pair("-.",'N'));
code.insert(make_pair('O',"---"));
rcode.insert(make_pair("---",'O'));
code.insert(make_pair('P',".--."));
rcode.insert(make_pair(".--.",'P'));
code.insert(make_pair('Q',"--.-"));
rcode.insert(make_pair("--.-",'Q'));
code.insert(make_pair('R',".-."));
rcode.insert(make_pair(".-.",'R'));
code.insert(make_pair('S',"..."));
rcode.insert(make_pair("...",'S'));
code.insert(make_pair('T',"-"));
rcode.insert(make_pair("-",'T'));
code.insert(make_pair('U',"..-"));
rcode.insert(make_pair("..-",'U'));
code.insert(make_pair('V',"...-"));
rcode.insert(make_pair("...-",'V'));
code.insert(make_pair('W',".--"));
rcode.insert(make_pair(".--",'W'));
code.insert(make_pair('X',"-..-"));
rcode.insert(make_pair("-..-",'X'));
code.insert(make_pair('Y',"-.--"));
rcode.insert(make_pair("-.--",'Y'));
code.insert(make_pair('Z',"--.."));
rcode.insert(make_pair("--..",'Z'));
code.insert(make_pair('_',"..--"));
rcode.insert(make_pair("..--",'_'));
code.insert(make_pair(',',".-.-"));
rcode.insert(make_pair(".-.-",','));
code.insert(make_pair('.',"---."));
rcode.insert(make_pair("---.",'.'));
code.insert(make_pair('?',"----"));
rcode.insert(make_pair("----",'?'));
string line;
while(cin >> line) {
stringstream ss;
string sl;
for (int i = 0; i < line.length(); ++i) {
ss << code[line[i]];
sl += code[line[i]].length();
}
reverse(sl.begin(), sl.end());
string mchar, res;
string str = ss.str();
int end = 0;
for (int i = 0; i < sl.length(); ++i) {
mchar = str.substr(end, sl[i]);
end += sl[i];
res += rcode[mchar];
}
cout << res << "\n";
}
return 0;
}