#include <bits/stdc++.h>
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
using namespace std;
long long f(long long x) {
  long long ret;
  double b = 1e15;
  string s = to_string(x);
  int n = s.size();
  long long d = 1;
  for (int i = (int)(n - 1); i >= (int)(0); i--) {
    long long t = x / (d * 10) * (d * 10) + d - 1;
    int c = s[i] - '0';
    for (int j = (int)(c); j <= (int)(9); j++) {
      long long cand = t + d * c;
      string cs = to_string(cand);
      int sum = 0;
      for (int k = 0; k < (int)(cs.size()); k++) sum += cs[k] - '0';
      if (b > (double)cand / sum) {
        b = (double)cand / sum;
        ret = cand;
      }
    }
    d *= 10;
  }
  return ret;
}
int main(void) {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int k;
  cin >> k;
  int n = 0;
  while (k--) {
    cout << (n = f(n + 1)) << "\n";
  }
  return 0;
}
