#include <string.h>
#include <stdio.h>
#include <assert.h>
char morse[400][5];
char vyhladaj(char* x);
int main()
{
memset(morse, 0, 400*5);
strcpy(morse['A'], ".-");
strcpy(morse['B'] ,"-...");
strcpy(morse['C'] ,"-.-.");
strcpy(morse['D'] , "-..");
strcpy(morse['E'] ,".");
strcpy(morse['F'] ,"..-.");
strcpy(morse['G'] ,"--.");
strcpy(morse['H'] ,"....");
strcpy(morse['I'] ,"..");
strcpy(morse['J'] ,".---");
strcpy(morse['K'] ,"-.-");
strcpy(morse['L'] , ".-..");
strcpy(morse['M'] , "--");
strcpy(morse['N'] , "-.");
strcpy(morse['O'] , "---");
strcpy(morse['P'] , ".--.");
strcpy(morse['Q'] , "--.-");
strcpy(morse['R'] , ".-.");
strcpy(morse['S'] , "...");
strcpy(morse['T'] , "-");
strcpy(morse['U'] , "..-");
strcpy(morse['V'] , "...-");
strcpy(morse['W'] , ".--");
strcpy(morse['X'] , "-..-");
strcpy(morse['Y'] , "-.--");
strcpy(morse['Z'] , "--..");
strcpy(morse['_'] , "..--");
strcpy(morse[','] , ".-.-");
strcpy(morse['.'] , "---.");
strcpy(morse['?'] , "----");
int znak;
int c[1000];
int l = 0, i, posTrans = 0;
char trans[4000];
while (true) {
if ((znak=getc(stdin)) == EOF) return 0;
if (znak != '\n') {
//printf("%s", morse[znak]); fflush(stdout);
c[l] = strlen(morse[znak]);
strncpy( trans + posTrans, morse[znak], c[l]);
posTrans += c[l];
l++;
//printf("%c", znak); fflush(stdout);
} else {
posTrans= 0;
for (i = l - 1; i >= 0; i--) {
char prem[100];
strncpy(prem, trans + posTrans, c[i]);
prem[c[i]] = 0;
posTrans +=c[i];
putc(vyhladaj(prem), stdout);
}
l = 0;
posTrans = 0;
printf("\n");
}
//printf("%c", znak); fflush(stdout);
}
return 0;
}
char vyhladaj(char* input){
int i ;
for(i=0; i<255; i++){
if( morse[i])
if ( ! strcmp(morse[i], input))
return i;
}
return 0;
}