#include <iostream>
#include <string>
#include <map>
#include <cctype>
using namespace std;
map <char, string> morze = {
{ 'a', ".-"},
{ 'b', "-..."},
{ 'w', ".--"},
{ 'g', "--."},
{ 'd', "-.."},
{ 'e', "."},
{ 'v', "...-"},
{ 'z', "--.."},
{ 'i', ".."},
{ 'j', ".---"},
{ 'k', "-.-"},
{ 'l', ".-.."},
{ 'm', "--"},
{ 'n', "-."},
{ 'o', "---"},
{ 'p', ".--."},
{ 'r', ".-."},
{ 's', "..."},
{ 't', "-"},
{ 'u', "..-"},
{ 'f', "..-."},
{ 'h', "...."},
{ 'c', "-.-."},
{ 'q', "--.-"},
{ 'y', "-.--"},
{ 'x', "-..-"},
{ '1', ".----"},
{ '2', "..---"},
{ '3', "...--"},
{ '4', "....-"},
{ '5', "....."},
{ '6', "-...."},
{ '7', "--..."},
{ '8', "---.."},
{ '9', "----."},
{ '0', "-----"},
{ '.', "......"},
{ ',', ".-.-.-"},
{ ':', "---..."},
{ ';', "-.-.-."},
{ '(', "-.--.-"},
{ ')', "-.--.-"},
{ '"', ".-..-."},
{ '-', "-....-"},
{ '/', "-..-."},
{ '?', "..--.."},
{ '!', "--..--"},
{ ' ', "-...-"},
{ '@', ".--.-."},
};
int main() {
string text;
while(cin >> text) {
for(int i = 0; i < text.length(); i++) {
text[i] = tolower(text[i]);
cout << morze.find( text[i] )->second <<" ";
}
cout << morze.find(' ')->second << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8Y2N0eXBlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbWFwIDxjaGFyLCBzdHJpbmc+IG1vcnplID0gewogICAgCXsgJ2EnLCAiLi0ifSwKICAgIAl7ICdiJywgIi0uLi4ifSwKICAgIAl7ICd3JywgIi4tLSJ9LAogICAgCXsgJ2cnLCAiLS0uIn0sCiAgICAJeyAnZCcsICItLi4ifSwKICAgIAl7ICdlJywgIi4ifSwKICAgIAl7ICd2JywgIi4uLi0ifSwKICAgIAl7ICd6JywgIi0tLi4ifSwKICAgIAl7ICdpJywgIi4uIn0sCiAgICAJeyAnaicsICIuLS0tIn0sCiAgICAJeyAnaycsICItLi0ifSwKICAgIAl7ICdsJywgIi4tLi4ifSwKICAgIAl7ICdtJywgIi0tIn0sCiAgICAJeyAnbicsICItLiJ9LAogICAgCXsgJ28nLCAiLS0tIn0sCiAgICAJeyAncCcsICIuLS0uIn0sCiAgICAJeyAncicsICIuLS4ifSwKICAgIAl7ICdzJywgIi4uLiJ9LAogICAgCXsgJ3QnLCAiLSJ9LAogICAgCXsgJ3UnLCAiLi4tIn0sCiAgICAJeyAnZicsICIuLi0uIn0sCiAgICAJeyAnaCcsICIuLi4uIn0sCiAgICAJeyAnYycsICItLi0uIn0sCiAgICAJeyAncScsICItLS4tIn0sCiAgICAJeyAneScsICItLi0tIn0sCiAgICAJeyAneCcsICItLi4tIn0sCiAgICAJeyAnMScsICIuLS0tLSJ9LAogICAgCXsgJzInLCAiLi4tLS0ifSwKICAgIAl7ICczJywgIi4uLi0tIn0sCiAgICAJeyAnNCcsICIuLi4uLSJ9LAogICAgCXsgJzUnLCAiLi4uLi4ifSwKICAgIAl7ICc2JywgIi0uLi4uIn0sCiAgICAJeyAnNycsICItLS4uLiJ9LAogICAgCXsgJzgnLCAiLS0tLi4ifSwKICAgIAl7ICc5JywgIi0tLS0uIn0sCiAgICAJeyAnMCcsICItLS0tLSJ9LAogICAgCXsgJy4nLCAiLi4uLi4uIn0sCiAgICAJeyAnLCcsICIuLS4tLi0ifSwKICAgIAl7ICc6JywgIi0tLS4uLiJ9LAogICAgCXsgJzsnLCAiLS4tLi0uIn0sCiAgICAJeyAnKCcsICItLi0tLi0ifSwKICAgIAl7ICcpJywgIi0uLS0uLSJ9LAogICAgCXsgJyInLCAiLi0uLi0uIn0sCiAgICAJeyAnLScsICItLi4uLi0ifSwKICAgIAl7ICcvJywgIi0uLi0uIn0sCiAgICAJeyAnPycsICIuLi0tLi4ifSwKICAgIAl7ICchJywgIi0tLi4tLSJ9LAogICAgCXsgJyAnLCAiLS4uLi0ifSwKICAgIAl7ICdAJywgIi4tLS4tLiJ9LAp9OwoKaW50IG1haW4oKSB7CglzdHJpbmcgdGV4dDsKCQoJd2hpbGUoY2luID4+IHRleHQpIHsKCSAgICBmb3IoaW50IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgaSsrKSB7CgkgICAgCXRleHRbaV0gPSB0b2xvd2VyKHRleHRbaV0pOwoJICAgIAljb3V0IDw8IG1vcnplLmZpbmQoIHRleHRbaV0gKS0+c2Vjb25kIDw8IiAgIjsKCSAgICB9CgkgICAgY291dCA8PCBtb3J6ZS5maW5kKCcgJyktPnNlY29uZCA8PCAiICAiOwoJfQoJCglyZXR1cm4gMDsKfQoKCg==