using System;
using System.Collections.Generic;
using System.Text;

namespace HJ42
{
    internal class Program
    {
        static Dictionary<int, string> numberMap01 = new Dictionary<int, string>()
        {
            {1,"one" },
            {2,"two"},
            {3,"three"},
            {4,"four"},
            {5,"five" },
            {6,"six" },
            {7,"seven" },
            {8,"eight" },
            {9,"nine" },
        };

        static Dictionary<int, string> numberMap02 = new Dictionary<int, string>()
        {
            {2,"twenty"},
            {3,"thirty"},
            {4,"forty"},
            {5,"fifty" },
            {6,"sixty" },
            {7,"seventy" },
            {8,"eighty" },
            {9,"ninety" },
        };

        //eleven
        static Dictionary<int, string> numberMap03 = new Dictionary<int, string>()
        {
            {10,"ten"},
            {11,"eleven"},
            {12,"twelve"},
            {13,"thirteen"},
            {14,"fourteen"},
            {15,"fifteen" },
            {16,"sixteen" },
            {17,"seventeen" },
            {18,"eighteen" },
            {19,"nineteen" },
        };

        static void Main(string[] args)
        {
            long inputLong = long.Parse(Console.ReadLine());
            long xBillion = inputLong / 1000000000;
            long xMillion = inputLong % 100000000 / 1000000;
            long xThousand = inputLong % 100000000 % 1000000 / 1000;
            long xHundred = inputLong % 100000000 % 1000000 % 1000;

            StringBuilder sb = new StringBuilder();

            string str = string.Empty;
            if (xBillion != 0)
            {
                sb.Append(GetHundredWords(xBillion) + " billion ");
            }

            if (xMillion != 0)
            {
                sb.Append(GetHundredWords(xMillion) + " million ");
            }

            if (xThousand != 0)
            {
                sb.Append(GetHundredWords(xThousand) + " thousand ");
            }

            if (xHundred != 0)
            {
                sb.Append(GetHundredWords(xHundred));
            }

            Console.WriteLine(sb.ToString().Trim());
        }

        static string GetHundredWords(long inputLong)
        {
            int a = (int)(inputLong / 100);

            int b = (int)(inputLong % 100 / 10);

            int c = (int)(inputLong % 100 % 10);

            string str = string.Empty;

            if (a != 0)
            {
                str += $"{numberMap01[a]} hundred";
            }

            if (b == 1)
            {
                int b2 = (int)(inputLong % 100);
                if (a==0)
                {
                    str += $"{numberMap03[b2]}";
                }
                else
                {
                    str += $" and {numberMap03[b2]}";
                }
                return str;
            }

            if (b != 0)
            {
                if(a == 0)
                {
                    str += $"{numberMap02[b]}";
                }
                else 
                {
                    str += $" and {numberMap02[b]}";
                }
               
                if (c != 0)
                {
                    str += $" {numberMap01[c]}";
                }
                return str;
            }

            if (c != 0)
            {
                if (a==0)
                {
                    str += $"{numberMap01[c]}";
                }
                else
                {
                    str += $" and {numberMap01[c]}";
                }
            }

            return str;
        }
    }
}