'''
解题思路:
1、关键是1~3位数的表达,首先考虑1~19,20、30、……90建立字典
2、然后将1~3位填充成3位,再分别考虑每一位是否为0的情况
3、and的位置:百位数个数基数词形式加“hundred”,表示几百,在几十几与百位间加上and
例如:2,648 two thousand six hundred and forty eight
'''
D = {'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','20':'twenty','30':'thirty','40':'forty',
     '50':'fifty','60':'sixty','70':'seventy','80':'eighty','90':'ninety'}

def f3(L):
    L = L.zfill(3)
    t = str(int(L))
    out = ''
    if t in D:
        return D[t]
    else:
        if L[0] != '0' and int(L[1:]) == 0:            # 100
            out += D[L[0]]+' hundred'
        if L[0] != '0' and int(L[1:]) != 0:            # 101、121、120
            #---------------------------------------------------------------
            # 只有百和十之间有and
            out += D[L[0]]+' hundred and '
        if L[1] != '0' and L[2] != '0':                # 11*、12*
            if int(L[1:])>=10 and int(L[1:])<=20:      # 110~120
                out += D[L[1:]]
            else:
                out += D[L[1]+'0'] + ' ' + D[L[2]]     # 125、135、146
        if L[1] == '0' and L[2] != '0':                # 101、102、103
            out += D[L[2]]
        if L[1] != '0' and L[2] == '0':                # 110、120、130
            out += D[L[1:]]
    return out

def f9(L):
    L = L.zfill(9)
    L1 = L[:3]
    L2 = L[3:6]
    L3 = L[6:9]
    out = ''
    if int(L1)>0:
        out += f3(L1)+' million '
    if int(L2)>0:
        out += f3(L2)+' thousand '
    if int(L3)>0:
        out += f3(L3)
    return out

while 1:
    try:
        pass

        L = input()
        if len(L)<=9 and int(L)>0 and L.isdigit():
            print(f9(L))
        else:
            print('error')

    except:
        break