#include <bits/stdc++.h>
int dir1[] = {0, 0, 1, -1};
int dir2[] = {1, -1, 0, 0};
int dir3[] = {0, 0, 1, 1, 1, -1, -1, -1};
int dir4[] = {-1, 1, -1, 0, 1, -1, 0, 1};
template <class T>
T power(T a, T b) {
  if (b == 0)
    return 1;
  else if (b % 2 == 1)
    return a * power(a, b - 1);
  else {
    T k = power(a, b / 2);
    return k * k;
  }
}
template <class T>
T find(T node, T parent[]) {
  return parent[node] =
             (parent[node] == node) ? node : find(parent[node], parent);
}
template <class T>
T gcd(T a, T b) {
  return b == 0 ? a : gcd(b, a % b);
}
template <class T>
T sqr(T a) {
  return a * a;
}
template <class T>
int set_bit(T N, T pos) {
  return N = N | (1 << pos);
}
template <class T>
bool check_bit(T N, T pos) {
  return N & (1 << pos);
}
template <class T>
int reset_bit(T N, T pos) {
  return N = N & ~(1 << pos);
}
using namespace std;
int main() {
  char arr[20][20];
  strcpy(arr[0], "zero");
  strcpy(arr[1], "one");
  strcpy(arr[2], "two");
  strcpy(arr[3], "three");
  strcpy(arr[4], "four");
  strcpy(arr[5], "five");
  strcpy(arr[6], "six");
  strcpy(arr[7], "seven");
  strcpy(arr[8], "eight");
  strcpy(arr[9], "nine");
  strcpy(arr[10], "ten");
  strcpy(arr[11], "eleven");
  strcpy(arr[12], "twelve");
  strcpy(arr[13], "thirteen");
  strcpy(arr[14], "fourteen");
  strcpy(arr[15], "fifteen");
  strcpy(arr[16], "sixteen");
  strcpy(arr[17], "seventeen");
  strcpy(arr[18], "eighteen");
  strcpy(arr[19], "nineteen");
  char arr2[20][20];
  strcpy(arr2[2], "twenty");
  strcpy(arr2[3], "thirty");
  strcpy(arr2[4], "forty");
  strcpy(arr2[5], "fifty");
  strcpy(arr2[6], "sixty");
  strcpy(arr2[7], "seventy");
  strcpy(arr2[8], "eighty");
  strcpy(arr2[9], "ninety");
  int n;
  while (1 == scanf("%d", &n)) {
    if (n < 20)
      printf("%s\n", arr[n]);
    else if (n % 10 != 0)
      printf("%s-%s\n", arr2[n / 10], arr[n % 10]);
    else
      printf("%s\n", arr2[n / 10]);
  }
  return 0;
}
