#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MS 1000

char oneDigit[][10] = {"Khong", "Mot", "Hai", "Ba", "Bon", "Nam", "Sau", "Bay", "Tam", "Chin"};
char base[][10] = {"", "Muoi", "Tram", "Nghin", "Muoi", "Tram", "Trieu", "Muoi", "Tram", "Ty"};

int checkString(char s[]) {
	for (int i = 0; i < strlen(s); i++)
		if (s[i] < '0' || s[i] > '9')
			return 0;
	return 1;
}

char *d2w(char s[]) {
	char *word = calloc(1, MS);
	int size = strlen(s);
	if (size == 0 || !checkString(s))
		return NULL;
	for (int i = 0; i < size; i++)
		s[i] -= '0';
	if (size == 1) {
		strcpy(word, oneDigit[(int)s[0]]);
		return word;
	}
	for (int i = 0, j = size - 1; i < j; i++, j--) {
		char t = s[i];
		s[i] = s[j];
		s[j] = t;
	}
	while (s[size - 1] == 0) {
		size--;
	}
	for (int i = size - 1; i >= 0; i--) {
		int k = i;
		while (k >= 10) {
			k -= 9;
		}
		if (!strcmp(oneDigit[(int)s[i]], "Khong") && !strcmp(base[k], "Muoi") && s[i - 1] != 0)
			strcat(word, "Linh ");
		else if (!strcmp(oneDigit[(int)s[i]], "Mot") && !strcmp(base[k], "Muoi"))
			strcat(word, "Muoi ");
		else if (s[i] != 0 || (!strcmp(base[k], "Tram") && (s[i - 2] != 0 || s[i - 1] != 0))) {
			if (s[i] == 5 && (i == 0 || s[i + 1] == 1)) {
				strcat(word, "Lam");
				strcat(word, " ");
			} else {
				strcat(word, oneDigit[(int)s[i]]);
				strcat(word, " ");
			}
			strcat(word, base[k]);
			strcat(word, " ");
		} else if (((i % 3 == 0) && (s[i + 1] != 0 || s[i + 2] != 0)) || (!strcmp(base[k - 6], "Nghin"))) {
			strcat(word, base[k]);
			strcat(word, " ");
		}
	}
	return word;
}

int main() {
	char s[MS];
	while (fscanf(stdin, "%s", s) != EOF) {
		int k = 0;
		while (s[k] == '0') {
			k++;
		}
		for (int i = k; i < strlen(s); i++)
			printf("%c", s[i]);
		printf(" in words is: %s\n", d2w(s));
	}
	return 0;
}
