num2words1 = {0:'zero',1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five',6: 'six', 7: 'seven', 8: 'eight', 9: 'nine', 10: 'ten',11: 'eleven', 12: 'twelve', 13: 'thirteen', 14:'fourteen',15: 'fifteen', 16: 'sixteen', 17: 'seventeen', 18: 'eighteen', 19: 'nineteen'}
num2words2 = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
n = int(input())
if(n<=19):
print(num2words1[n])
else:
k=int(str(n)[0])
l=int(str(n)[1])
if(n%10==0):
print(num2words2[k-2])
else:
print(str(num2words2[k-2])+"-"+str(num2words1[l]))
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
string o[10]={"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine"};
string d[10]={"ten", "eleven", "twelve", "thirteen", "fourteen",
"fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
string t[10]={"", "", "twenty", "thirty", "forty",
"fifty", "sixty", "seventy", "eighty", "ninety"};
if(n<10){
cout<<o[n]<<endl;
}
else if(n>=10 && n<=19){
cout<<d[n-10]<<endl;
}
else if(n%10==0){
cout<<t[n/10]<<endl;
}
else{
cout<<t[n/10]<<"-"<<o[n%10]<<endl;
}
return 0;
}
1716A - 2-3 Moves | 1670B - Dorms War |
1716B - Permutation Chain | 987A - Infinity Gauntlet |
1676G - White-Black Balanced Subtrees | 1716D - Chip Move |
1352F - Binary String Reconstruction | 1487B - Cat Cycle |
1679C - Rooks Defenders | 56A - Bar |
1694B - Paranoid String | 35A - Shell Game |
1684A - Digit Minimization | 43B - Letter |
1017A - The Rank | 1698B - Rising Sand |
235A - LCM Challenge | 1075B - Taxi drivers and Lyft |
1562A - The Miracle and the Sleeper | 1216A - Prefixes |
1490C - Sum of Cubes | 868A - Bark to Unlock |
873B - Balanced Substring | 1401D - Maximum Distributed Tree |
1716C - Robot in a Hallway | 1688B - Patchouli's Magical Talisman |
99A - Help Far Away Kingdom | 622B - The Time |
1688C - Manipulating History | 1169D - Good Triple |