#include <stdio.h>

void(*listen)(char c);

void error(char);
void blank(char);

void us(char c){ // ..--.-
	if(c=='.'||c=='-')listen=&error;
	else{
		putchar('_');
		listen=&blank;
	}
}

void apostrophe(char c){ // .----
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('\'');
	       listen=&blank;
	}
}

void one(char c){ // .----
	if(c=='.')listen=&apostrophe;
	else if(c=='-')listen=&error;
	else{
	       putchar('1');
	       listen=&blank;
	}
}

void j(char c){ // .---
	if(c=='.')listen=&error;
	else if(c=='-')listen=&one;
	else{
	       putchar('j');
	       listen=&blank;
	}
}

void at(char c){ // .--.-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('@');
	       listen=&blank;
	}
}

void ao(char c){ // .--.-
	if(c=='.')listen=&at;
	else if(c=='-')listen=&error;
	else{
	       //putchar('à');
		fputs("à",stdout);
	       listen=&blank;
	}
}

void p(char c){ // .--.
	if(c=='.')listen=&error;
	else if(c=='-')listen=&ao;
	else{
	       putchar('p');
	       listen=&blank;
	}
}

void w(char c){ // .--
	if(c=='.')listen=&p;
	else if(c=='-')listen=&j;
	else{
	       putchar('w');
	       listen=&blank;
	}
}

void el(char c){ // .-..-
	if(c=='.'||c=='-')listen=&error;
	else{
	       //putchar('è');
		fputs("è",stdout);
	       listen=&blank;
	}
}

void l(char c){ // .-..
	if(c=='.')listen=&error;
	else if(c=='-')listen=&el;
	else{
	       putchar('l');
	       listen=&blank;
	}
}

void dot(char c){ // .-.-.-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('.');
	       listen=&blank;
	}
}

void plus(char c){ // .-.-.
	if(c=='.')listen=&error;
	else if(c=='-')listen=&dot;
	else{
	       putchar('+');
	       listen=&blank;
	}
}

void ae(char c){ // .-.-
	if(c=='.')listen=&plus;
	else if(c=='-')listen=&error;
	else{
	       //putchar('ä');
		fputs("ä",stdout);
	       listen=&blank;
	}
}

void r(char c){ // .-.
	if(c=='.')listen=&l;
	else if(c=='-')listen=&ae;
	else{
	       putchar('r');
	       listen=&blank;
	}
}

void a(char c){ // .-
	if(c=='.')listen=&r;
	else if(c=='-')listen=&w;
	else{
	       putchar('a');
	       listen=&blank;
	}
}

void beta2(char c){ // ...--..
	if(c=='.'||c=='-')listen=&error;
	else{
		//putchar('ß');
		fputs("ß",stdout);
		listen=&blank;
	}
}

void beta1(char c){ // ...--.
	if(c=='.')listen=&beta2;
	else listen=&error;
}

void three(char c){ // ...--
	if(c=='.')listen=&beta1;
	else if(c=='-')listen=&error;
	else{
		putchar('3');
		listen=&blank;
	}
}

void v(char c){ // ...-
	if(c=='.')listen=&error;
	else if(c=='-')listen=&three;
	else{
		putchar('v');
		listen=&blank;
	}
}

void five(char c){ // .....
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('5');
	       listen=&blank;
	}
}

void four(char c){ // ....-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('4');
	       listen=&blank;
	}
}

void h(char c){ // ....
	if(c=='.')listen=&five;
	else if(c=='-')listen=&four;
	else{
	       putchar('h');
	       listen=&blank;
	}
}
void s(char c){ // ...
	if(c=='.')listen=&h;
	else if(c=='-')listen=&v;
	else{
	       putchar('s');
	       listen=&blank;
	}
}

void er(char c){ // ..-..
	if(c=='.'||c=='-')listen=&error;
	else{
	       //putchar('é');
	       fputs("é",stdout);
	       listen=&blank;
	}
}

void f(char c){ // ..-.
	if(c=='.')listen=&er;
	else if(c=='-')listen=&error;
	else{
	       putchar('f');
	       listen=&blank;
	}
}

void two(char c){ // ..---
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('2');
	       listen=&blank;
	}
}

void qm2(char c){ // ..--..
	if(c=='.'||c=='-')listen=&error;
	else{
		putchar('?');
		listen=&blank;
	}
}

void qm1(char c){ // ..--.
	if(c=='.')listen=&qm2;
	else if(c=='-')listen=&us;
	else listen=&error;
}

void ue(char c){ // ..--
	if(c=='.')listen=&qm1;
	else if(c=='-')listen=&two;
	else{
		//putchar('ü');
		fputs("ü",stdout);
		listen=&blank;
	}
}

void u(char c){ // ..-
	if(c=='.')listen=&f;
	else if(c=='-')listen=&ue;
	else{
	       putchar('u');
	       listen=&blank;
	}
}


void i(char c){ // ..
	if(c=='.')listen=&s;
	else if(c=='-')listen=&u;
	else{
	       putchar('i');
	       listen=&blank;
	}
}

void e(char c){ // .
	if(c=='.')listen=&i;
	else if(c=='-')listen=&a;
	else{
	       putchar('e');
	       listen=&blank;
	}
}

void dash(char c){ // -....-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('-');
	       listen=&blank;
	}
}

void six(char c){ // -....
	if(c=='.')listen=&error;
	else if(c=='-')listen=&dash;
	else{
	       putchar('6');
	       listen=&blank;
	}
}

void equal(char c){ // -...-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('=');
	       listen=&blank;
	}
}

void b(char c){ // -...
	if(c=='.')listen=&six;
	else if(c=='-')listen=&equal;
	else{
	       putchar('b');
	       listen=&blank;
	}
}

void slash(char c){ // -..-.
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('/');
	       listen=&blank;
	}
}

void x(char c){ // -..-
	if(c=='.')listen=&slash;
	else if(c=='-')listen=&error;
	else{
	       putchar('x');
	       listen=&blank;
	}
}

void d(char c){ // -..
	if(c=='.')listen=&b;
	else if(c=='-')listen=&x;
	else{
	       putchar('d');
	       listen=&blank;
	}
}

void semicolon2(char c){ // -.-.-.
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar(';');
	       listen=&blank;
	}
}

void semicolon1(char c){ // -.-.-
	if(c=='.')listen=&semicolon2;
	else listen=&error;
}

void c(char c){ // -.-.
	if(c=='.')listen=&error;
	else if(c=='-')listen=&semicolon1;
	else{
	       putchar('c');
	       listen=&blank;
	}
}

void rpar(char c){ // -.--.-
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar(')');
	       listen=&blank;
	}
}

void lpar(char c){ // -.--.
	if(c=='.')listen=&error;
	else if(c=='-')listen=&rpar;
	else{
	       putchar('(');
	       listen=&blank;
	}
}

void y(char c){ // -.--
	if(c=='.')listen=&lpar;
	else if(c=='-')listen=&error;
	else{
	       putchar('y');
	       listen=&blank;
	}
}

void k(char ch){ // -.-
	if(ch=='.')listen=&c;
	else if(ch=='-')listen=&y;
	else{
	       putchar('k');
	       listen=&blank;
	}
}

void n(char c){ // -.
	if(c=='.')listen=&d;
	else if(c=='-')listen=&k;
	else{
	       putchar('n');
	       listen=&blank;
	}
}

void seven(char c){ // --...
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('7');
	       listen=&blank;
	}
}

void comma2(char c){ // --..--
	if(c=='-'||c=='.')listen=&error;
	else{
		putchar(',');
		listen=&blank;
	}
}

void comma1(char c){ // --..-
	if(c=='-')listen=&comma2;
	else listen=&error;
}

void z(char c){ // --..
	if(c=='.')listen=&seven;
	else if(c=='-')listen=&comma1;
	else{
	       putchar('z');
	       listen=&blank;
	}
}

void nt(char c){ // --.--
	if(c=='.'||c=='-')listen=&error;
	else{
	       //putchar('ñ');
		fputs("ñ",stdout);
	       listen=&blank;
	}
}

void q(char c){ // --.-
	if(c=='.')listen=&error;
	else if(c=='-')listen=&nt;
	else{
	       putchar('q');
	       listen=&blank;
	}
}

void g(char c){ // --.
	if(c=='.')listen=&z;
	else if(c=='-')listen=&q;
	else{
	       putchar('g');
	       listen=&blank;
	}
}

void colon(char c){ // ---...
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar(':');
	       listen=&blank;
	}
}

void eight(char c){ // ---..
	if(c=='.')listen=&colon;
	else if(c=='-')listen=&error;
	else{
	       putchar('8');
	       listen=&blank;
	}
}

void oe(char c){ // ---.
	if(c=='.')listen=&eight;
	else if(c=='-')listen=&error;
	else{
	       //putchar('ö');
		fputs("ö",stdout);
	       listen=&blank;
	}
}

void nine(char c){ // ----.
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('9');
	       listen=&blank;
	}
}

void zero(char c){ // -----
	if(c=='.'||c=='-')listen=&error;
	else{
	       putchar('0');
	       listen=&blank;
	}
}

void ch(char c){ // ----
	if(c=='.')listen=&nine;
	else if(c=='-')listen=&zero;
	else{
	       fputs("ch",stdout);
	       listen=&blank;
	}
}

void o(char c){ // ---
	if(c=='.')listen=&oe;
	else if(c=='-')listen=&ch;
	else{
	       putchar('o');
	       listen=&blank;
	}
}

void m(char c){ // --
	if(c=='.')listen=&g;
	else if(c=='-')listen=&o;
	else{
	       putchar('m');
	       listen=&blank;
	}
}

void t(char c){ // -
	if(c=='.')listen=&n;
	else if(c=='-')listen=&m;
	else{
	       putchar('t');
	       listen=&blank;
	}
}

void blank(char c){
	if(c=='.')listen=&e;
	else if(c=='-')listen=&t;
	else putchar(' ');
}

void error(char c){
	if(c!='.'&&c!='-'){
		putchar('#');
		listen=&blank;
	}
}

int main(int argc, char** argv){
	if(isatty(0)){
		fprintf(stderr,"usage: %s < file",*argv);
		return 1;
	}
	int c;
	listen=&blank;
	while((c=getchar())!=EOF){
		listen(c);
	}
	listen(' ');
	putchar('\n');
	return 0;
}
