#include <bits/stdc++.h>
using namespace std;
pair<long long int, int> nxt(pair<long long int, int> a, int idx) {
  long long int mul = 1;
  int add = 0;
  for (int i = 0;; i++) {
    if (mul > a.first && add == 1) break;
    if (i >= idx && add == 0) {
      a.first += mul;
      a.second++;
      add = 1;
    }
    if (a.first / mul % 10 == 0) {
      a.second -= 9;
      a.first += mul;
      a.second++;
    }
    mul *= 10;
  }
  return a;
}
double frac(pair<long long int, int> a) { return (double)a.first / a.second; }
int main() {
  int k;
  cin >> k;
  pair<long long int, int> cur;
  int idx = 0;
  cur = pair<long long int, int>(0, 1);
  while (k > 0) {
    k--;
    pair<long long int, int> tmp = cur;
    pair<long long int, int> prev;
    while (1 < 2) {
      prev = tmp;
      tmp = nxt(tmp, idx);
      while (frac(tmp) > frac(nxt(tmp, idx))) {
        idx++;
        tmp = nxt(prev, idx);
      }
      if (frac(prev) <= frac(tmp)) {
        break;
      }
    }
    cur = tmp;
    printf("%lld\n", cur.first);
  }
}
