#include <bits/stdc++.h>
using namespace std;
long long S(long long n) {
  long long ret = 0;
  while (0 < n) {
    ret += n % 10;
    n /= 10;
  }
  return ret;
}
int main(void) {
  const long long MAX_N = 1e15 - 1;
  double the = MAX_N;
  long long i = MAX_N;
  vector<long long> snuke;
  while (0 < i) {
    double t = (double)(i) / (double)S(i);
    if (t < the + 1e-15) {
      the = t;
      snuke.push_back(i);
    }
    if (1e8 < i)
      i -= 1e8;
    else
      i--;
  }
  sort((snuke).begin(), (snuke).end());
  int K;
  (scanf("%d", &K));
  for (int i = (0); i < (int)(K); ++i) printf("%lld\n", snuke[i]);
  return 0;
}
