#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
long long num;
cin >> num;
vector<string> value;
value.push_back("ling");
value.push_back("yi");
value.push_back("er");
value.push_back("san");
value.push_back("si");
value.push_back("wu");
value.push_back("liu");
value.push_back("qi");
value.push_back("ba");
value.push_back("jiu");
vector<string> Danwei;
Danwei.push_back("");
Danwei.push_back("shi");
Danwei.push_back("bai");
Danwei.push_back("qian");
Danwei.push_back("wan");
Danwei.push_back("shi");
Danwei.push_back("bai");
Danwei.push_back("qian");
Danwei.push_back("yi");
Danwei.push_back("shi");
int t;
int k = 0;
string a = "";//结果存放在该字符串中
int j = 0;//用来取单位
while (num != 0)
{
t = num % 10;//取出一位数字
if (t == 0 && k != 0)//当这位数字为零时,如果其前面也是零就不做任何处理,如果前面不为零,只加上其值不加上其单位。
a = value[t]+" " + a;
else if (t == 0 && j == 4&&num%10000!=0)//这是对单位为万且t为零时的特判
a = "wan " + a;
else if (t == 0 && j == 8&&num%10000!=0)//单位为亿且t为零的特判
a = "yi " + a;
else if (t != 0)
{
if((t==1&&num<10)&&(j==1||j==5||j==9))//对类似12,120000等,把一十去掉的特判
a = Danwei[j] + " " + a;
else
{
a = value[t] + " " + Danwei[j] + " " + a;//正常情况下
}
}
j++;
num /= 10;
k = t;
}
cout << a;
return 0;
}
/*
思想:模拟
从后面开始模拟,对每个数来说,先加其值,再加其单位。
*/