#include <bits/stdc++.h>
using namespace std;
long long K;
vector<long long> cand;
vector<long long> ans;
long long S(long long x) {
  long long res = 0;
  while (x > 0) {
    res += x % 10;
    x /= 10;
  }
  return res;
}
double g(long long x) { return (double)x / S(x); }
signed main() {
  cin >> K;
  long long p10 = 1, n = 0;
  for (long long i = 0; i <= 12; i++) {
    for (long long j = 1; j <= 999; j++)
      if (j * p10 + n <= 1e15 - 1) cand.push_back(j * p10 + n);
    n *= 10;
    n += 9;
    p10 *= 10;
  }
  sort(begin(cand), end(cand), greater<long long>());
  cand.erase(unique(begin(cand), end(cand)), end(cand));
  double m = g(cand[0]);
  for (long long i = 1; i < cand.size(); i++)
    if (g(cand[i]) <= m) m = g(cand[i]), ans.push_back(cand[i]);
  reverse(begin(ans), end(ans));
  for (long long i = 0; i < K; i++) cout << ans[i] << endl;
  return 0;
}
