#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
template <class T>
inline T sqr(T x) {
  return x * x;
}
const double PI = acos(-1.0);
int main(void) {
  int K, c = 1, p, k = 1, f = 0, sum = 0, counter = 0, inic = 1;
  float sunuke, msunuke;
  cin >> K;
  while (1) {
    f = 0;
    sum = 0;
    c = inic;
    for (int i = (0); i < (k + 1); ++i) {
      p = pow(10, k - i);
      if (p != 9) f = 1;
      sum += c / p;
      c %= p;
    }
    cerr << "sum"
         << " = " << (sum) << endl;
    sunuke = float(inic) / float(sum);
    cerr << "sunuke"
         << " = " << (sunuke) << endl;
    if (msunuke <= sunuke) {
      msunuke = sunuke;
      cout << inic << endl;
      counter++;
    }
    if (counter == K) break;
    if (f == 0) k++;
    inic++;
  }
  return 0;
}
