Today Tavas got his test result as an integer score and he wants to share it with his girlfriend, Nafas.

His phone operating system is Tavdroid, and its keyboard doesn't have any digits! He wants to share his score with Nafas via text, so he has no choice but to send this number using words.

<image>

He ate coffee mix without water again, so right now he's really messed up and can't think.

Your task is to help him by telling him what to type.

Input

The first and only line of input contains an integer s (0 ≤ s ≤ 99), Tavas's score. 

Output

In the first and only line of output, print a single string consisting only from English lowercase letters and hyphens ('-'). Do not use spaces.

Examples

Input

6


Output

six


Input

99


Output

ninety-nine


Input

20


Output

twenty

Note

You can find all you need to know about English numerals in <http://en.wikipedia.org/wiki/English_numerals> .
#include <bits/stdc++.h>
int gcd(int a, int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int lcd(int a, int b) { return a * b / gcd(a, b); }
int lcd(int a, int b, int c) {
  int l = lcd(a, b);
  return c * l / gcd(c, l);
}
int lcd(int a, int b, int c, int d) {
  int l = lcd(a, b, c);
  return d * l / gcd(d, l);
}
bool isOdd(int a) { return a & 1; }
bool isEven(int a) { return !isOdd(a); }
unsigned long long binominal(long long fromN, long long toK) {
  unsigned long long res = 1;
  while (fromN > toK) {
    res *= fromN--;
  }
  while (toK > 0) res /= toK--;
  return res;
}
template <typename T, typename F>
int count_if_n(T val, size_t n, F f) {
  size_t count = 0;
  for (int i = 0; i < n; ++i) {
    if (f(*val)) ++count;
    if (i != n) ++val;
  }
  return count;
}
template <typename T, typename F>
int read_count_if_n(F f) {
  size_t size;
  std::cin >> size;
  return count_if_n(std::istream_iterator<T>(std::cin), size, f);
}
template <typename T, typename F>
int read_count_if_n(size_t n, F f) {
  return count_if_n(std::istream_iterator<T>(std::cin), n, f);
}
template <typename T = int>
std::vector<T> read_vector(size_t n = 0) {
  if (n == 0) std::cin >> n;
  std::vector<T> ret(n);
  copy_n(std::istream_iterator<T>(std::cin), n, ret.begin());
  return ret;
}
int MaxOnes(const std::string &s, size_t current, bool Changing = false) {
  if (current == 0) {
    if (Changing) return 1;
    return static_cast<int>(s[0] == '0');
  }
  static std::unordered_map<size_t, int> withChanging, withoutChanging;
  int ret;
  if (Changing) {
    auto found = withChanging.find(current);
    if (found != withChanging.end()) return found->second;
    int contChange = MaxOnes(s, current - 1, Changing) + (s[current] == '0');
    int interruptChange = std::count(s.begin(), s.begin() + (current + 1), '1');
    ret = std::max(contChange, interruptChange);
    withChanging[current] = ret;
  } else {
    auto found = withoutChanging.find(current);
    if (found != withoutChanging.end()) return found->second;
    ret = MaxOnes(s, current - 1, false) + (s[current] == '1');
    if (s[current] == '0')
      ret = std::max(ret, MaxOnes(s, current - 1, true) + 1);
    withoutChanging[current] = ret;
  }
  return ret;
}
unsigned long long numQuad(unsigned long long a, unsigned long long b) {
  auto min = std::min(a, b);
  auto max = a + b - min;
  if (a == 0 || b == 0) return 0;
  return max / min + numQuad(max % min, min);
}
int numLines(int n, int a, int b, int c) {
  if (n < 0) return std::numeric_limits<int>::min();
  if (n == 0) return 0;
  static int res[4001]{};
  if (res[n] != 0) return res[n];
  return (res[n] =
              (std::max({numLines(n - a, a, b, c), numLines(n - b, a, b, c),
                         numLines(n - c, a, b, c)}) +
               1));
}
std::string Int2Alpha(const std::string &s) {
  int i = std::stoi(s) - 1;
  std::string res;
  while (i >= 0) {
    res += 'A' + i % 26;
    i /= 26;
    i -= 1;
  }
  std::reverse(res.begin(), res.end());
  return res;
}
std::string Alpha2Int(const std::string &s) {
  int res = 0;
  for (char c : s) {
    res = res * 26 + c - 'A' + 1;
  }
  return std::to_string(res);
}
unsigned long long numDigits(unsigned long long x) {
  if (x < 10) return x;
  return numDigits(x / 10) * 10 + 2 * (x % 10) * x / 10 + x / 10;
}
int main() {
  using namespace std;
  cin.sync_with_stdio(false);
  cout.sync_with_stdio(false);
  unsigned long long n;
  cin >> n;
  std::map<int, string> nums{
      make_pair(0, "zero"),      make_pair(1, "one"),
      make_pair(2, "two"),       make_pair(3, "three"),
      make_pair(4, "four"),      make_pair(5, "five"),
      make_pair(6, "six"),       make_pair(7, "seven"),
      make_pair(8, "eight"),     make_pair(9, "nine"),
      make_pair(10, "ten"),      make_pair(11, "eleven"),
      make_pair(12, "twelve"),   make_pair(13, "thirteen"),
      make_pair(14, "fourteen"), make_pair(15, "fifteen"),
      make_pair(16, "sixteen"),  make_pair(17, "seventeen"),
      make_pair(18, "eighteen"), make_pair(19, "nineteen"),
      make_pair(20, "twenty"),   make_pair(30, "thirty"),
      make_pair(40, "forty"),    make_pair(50, "fifty"),
      make_pair(60, "sixty"),    make_pair(70, "seventy"),
      make_pair(80, "eighty"),   make_pair(90, "ninety")};
  if (nums.count(n) > 0) {
    std::cout << nums[n] << endl;
  } else {
    std::cout << nums[n - n % 10] << "-" << nums[n % 10] << std::endl;
  }
  return 0;
}
