#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = double;
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cout << *it << " = " << a << endl;
  err(++it, args...);
}
const ll MODBASE = 1000000007LL;
const int MAXN = 200010;
const int MAXM = 100010;
const int MAXK = 510;
const int MAXQ = 200010;
vector<pair<int, ll> > b;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr);
  for (int cs = (1); cs <= (16); cs++) {
    int l = 1, r = cs * 9;
    for (int i = (l); i <= (r); i++) {
      vector<int> a(cs);
      a[0] = 1;
      int k = i - 1;
      for (int j = (cs - 1); j >= (1); j--) {
        if (k <= 9) {
          a[j] = k;
          k = 0;
          break;
        } else {
          a[j] = 9;
          k -= 9;
        }
      }
      if (k) a[0] += k;
      ll num = 0;
      for (int j = (0); j <= (cs - 1); j++) num = num * 10 + a[j];
      b.emplace_back(pair<int, ll>(i, num));
    }
  }
  int k;
  cin >> k;
  for (int i = (0); i <= (int((b).size()) - 1); i++) {
    bool co = true;
    for (int j = (i + 1); j <= (int((b).size()) - 1); j++) {
      if ((ll)b[i].second * b[j].first > (ll)b[i].first * b[j].second) {
        co = false;
        break;
      }
    }
    if (co) {
      cout << b[i].second << "\n";
      k--;
      if (k == 0) return 0;
    }
  }
  return 0;
}
