#include <bits/stdc++.h>
using std::list;
using std::max;
using std::min;
using std::vector;
long long compute_s(long long n) {
  long long result = 0;
  while (0 < n) {
    result += n % 10;
    n = n / 10;
  }
  return result;
}
double compute_snuke(long long n) { return (double)n / (double)compute_s(n); }
long long power(long long base, long long n) {
  long long result = 1;
  for (long long i = 0; i < n; i++) {
    result = result * base;
  }
  return result;
}
int main() {
  long long n;
  scanf("%lld", &n);
  for (long long i = 1; i < 10; i++) {
    printf("%lld\n", i);
  }
  n -= 9;
  long long largest_digit = 1;
  long long ndigit = 1;
  bool flag = false;
  for (long long i = 0; i < n; i++) {
    printf("%lld", largest_digit);
    for (int i = 0; i < ndigit; i++) {
      putchar('9');
    }
    putchar('\n');
    if (flag) {
      largest_digit++;
    } else {
      if (largest_digit == 9) {
        largest_digit = 1;
        ndigit++;
        long long new_large = 12 * power(10, ndigit) - 1;
        long long old_large = 20 * power(10, ndigit) - 1;
        flag = compute_snuke(new_large) < compute_snuke(old_large);
      } else {
        largest_digit++;
      }
    }
  }
  return 0;
}
