#include <iostream>
#include <vector>
using namespace std;
/* 获取对应数字的 英文 */
string get_value(int data)
{
string value;
switch(data)
{
case 1: value = "one"; break;
case 2: value = "two"; break;
case 3: value = "three"; break;
case 4: value = "four"; break;
case 5: value = "five"; break;
case 6: value = "six"; break;
case 7: value = "seven"; break;
case 8: value = "eight"; break;
case 9: value = "nine"; break;
case 10: value = "ten"; break;
case 11: value = "eleven"; break;
case 12: value = "twelve"; break;
case 13: value = "thirteen"; break;
case 14: value = "fourteen"; break;
case 15: value = "fifteen"; break;
case 16: value = "sixteen"; break;
case 17: value = "seventeen"; break;
case 18: value = "eighteen"; break;
case 19: value = "nineteen"; break;
case 20: value = "twenty"; break;
case 30: value = "thirty"; break;
case 40: value = "forty"; break;
case 50: value = "fifty"; break;
case 60: value = "sixty"; break;
case 70: value = "seventy"; break;
case 80: value = "eighty"; break;
case 90: value = "ninety"; break;
default: value = "";break;
}
return value;
}
/* 对应单位的 英文 */
string get_unit_value(int data)
{
string value;
switch(data % 3)
{
case 0: value = "hundred"; break;
case 1: value = "thousand"; break;
case 2: value = "million"; break;
case 3: value = "billion"; break;
default: value = "";break;
}
return value;
}
int main()
{
long num;
vector<string> en_num;
int index = 0;
while(cin >> num)
{
while(num)
{
int mod = num % 1000;
/* 获取个位英文 */
en_num.push_back(get_value(mod % 10));
if(mod >= 10)
{
int tmp;
if(mod % 100 < 20) /* 10-20 之间英文 */
{
tmp = mod % 100;
en_num.pop_back(); /* 注意10-20 时,需将前面已存 个位删除 */
en_num.push_back(get_value(tmp));
}
else /* 10和 20 - 99以上 英文 */
{
tmp = mod / 10 * 10 % 100;
en_num.push_back(get_value(tmp));
}
if(mod >= 100) /* 百位英文 */
{
if(tmp || mod % 10) /* 百位后面位数不为 0 需添加 and */
{
en_num.push_back("and");
}
en_num.push_back(get_unit_value(0));
en_num.push_back(get_value(mod / 100));
}
}
num /= 1000;
if(num)
{
++index;
en_num.push_back(get_unit_value(index));
}
}
for(auto s = en_num.rbegin(); s != en_num.rend(); s++)
{
if(*s != "") //可能存在 空字符,不应输出
{
cout << *s << " ";
}
}
cout << endl;
}
return 0;
}