#include <cstdio>
#include <cmath>
#include <iostream>
#include <string>
#include <map>
#include <cstdlib>
using namespace std;
int main()
{
std::map<char, std::string> m1;
std::map<std::string, char> m2;
m1.insert(std::pair<char, std::string>('A', ".-"));
m1.insert(std::pair<char, std::string>('B', "-..."));
m1.insert(std::pair<char, std::string>('C', "-.-."));
m1.insert(std::pair<char, std::string>('D', "-.."));
m1.insert(std::pair<char, std::string>('E', "."));
m1.insert(std::pair<char, std::string>('F', "..-."));
m1.insert(std::pair<char, std::string>('G', "--."));
m1.insert(std::pair<char, std::string>('H', "...."));
m1.insert(std::pair<char, std::string>('I', ".."));
m1.insert(std::pair<char, std::string>('J', ".---"));
m1.insert(std::pair<char, std::string>('K', "-.-"));
m1.insert(std::pair<char, std::string>('L', ".-.."));
m1.insert(std::pair<char, std::string>('M', "--"));
m1.insert(std::pair<char, std::string>('N', "-."));
m1.insert(std::pair<char, std::string>('O', "---"));
m1.insert(std::pair<char, std::string>('P', ".--."));
m1.insert(std::pair<char, std::string>('Q', "--.-"));
m1.insert(std::pair<char, std::string>('R', ".-."));
m1.insert(std::pair<char, std::string>('S', "..."));
m1.insert(std::pair<char, std::string>('T', "-"));
m1.insert(std::pair<char, std::string>('U', "..-"));
m1.insert(std::pair<char, std::string>('V', "...-"));
m1.insert(std::pair<char, std::string>('W', ".--"));
m1.insert(std::pair<char, std::string>('X', "-..-"));
m1.insert(std::pair<char, std::string>('Y', "-.--"));
m1.insert(std::pair<char, std::string>('Z', "--.."));
m1.insert(std::pair<char, std::string>('_', "..--"));
m1.insert(std::pair<char, std::string>(',', ".-.-"));
m1.insert(std::pair<char, std::string>('.', "---."));
m1.insert(std::pair<char, std::string>('?', "----"));
for (std::map<char, std::string>::const_iterator it = m1.begin(); it != m1.end(); ++it)
m2.insert(std::pair<std::string, char>(it->second, it->first));
std::string line;
std::string enc;
std::string l;
while (getline(cin, line))
{
std::string enc;
std::string l;
for (std::string::const_iterator it = line.begin(); it != line.end(); ++it)
{
enc += m1[*it];
l += '0' + m1[*it].length();
}
size_t pos = 0;
for (std::string::reverse_iterator it = l.rbegin(); it != l.rend(); ++it)
{
printf("%c", m2[enc.substr(pos, *it - '0')]);
pos += *it - '0';
}
printf("\n");
}
return 0;
}