#include<iostream>
#include<string>
#include<sstream>
using namespace std;
string lessThanHundred(int num){
string digitNum[20]={"zero","one","two","three","four","five","six","seven","eight","nine","ten",\
"eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
string tens[8]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
if(num<20)
return digitNum[num];
else{
stringstream ss;
ss<<num;
if(stoi(ss.str().substr(1))==0){
return tens[stoi(ss.str().substr(0,1))-2];
}
else{
return tens[stoi(ss.str().substr(0,1))-2] +" "+ digitNum[stoi(ss.str().substr(1))];
}
}
}
string threeBitnum(int num){
string digitNum[9]={"one","two","three","four","five","six","seven","eight","nine"};
if(num<100)
return lessThanHundred(num);
else if(num%100==0){
return digitNum[num/100-1] + " hundred";
}
else{
stringstream ss;
ss<<num;
return digitNum[stoi(ss.str().substr(0,1))-1] + " hundred and "+lessThanHundred(stoi(ss.str().substr(1,2)));
}
}
string numToEnglish(long num){
stringstream ss;
ss<<num;
int length=ss.str().size();
if(length<=0 || length>9 || (length>1 && ss.str().substr(0,1)=="0"))
return "error";
for(int i=0;i<length;i++){
if(!isdigit(ss.str()[i]))
return "error";
}
if(length<4)
return threeBitnum(num);
else if(length>=4 && length<7){
if(num%1000==0){
return threeBitnum(stoi(ss.str().substr(0,length-3)))+" thousand";
}
else{
return threeBitnum(stoi(ss.str().substr(0,length-3)))+" thousand "+threeBitnum(stoi(ss.str().substr(length-3)));
}
}
else{
if(num%1000000==0)
return threeBitnum(stoi(ss.str().substr(0,length-6)))+" million";
else if(stoi(ss.str().substr(length-6))%1000==0)
return threeBitnum(stoi(ss.str().substr(0,length-6)))+" million "+\
threeBitnum(stoi(ss.str().substr(length-6,3)))+" thousand ";
else
return threeBitnum(stoi(ss.str().substr(0,length-6)))+" million "+\
threeBitnum(stoi(ss.str().substr(length-6,3)))+" thousand "+\
threeBitnum(stoi(ss.str().substr(length-3)));
}
}
int main(){
long num;
while(cin>>num)
cout<<numToEnglish(num)<<endl;
return 0;
}