#include <bits/stdc++.h>
using namespace std;
const long long MAX_V = 100000;
const long long INF = 1e9;
const long long MOD = 998244353;
int main() {
  int k;
  cin >> k;
  vector<long long> su;
  vector<long long> ans;
  for (int i = (int)(1); i < (int)(10); ++i) su.push_back(i);
  for (int i = (int)(1); i < (int)(1000); ++i) {
    for (int j = (int)(1); j < (int)(13); ++j) {
      long long nine = pow(10, j) - 1;
      su.push_back(i * pow(10, j) + nine);
    }
  }
  sort((su).begin(), (su).end());
  for (int i = su.size() - 2; i >= 0; i--) {
    if (su[i] == su[i + 1]) su.erase(su.begin() + i + 1);
  }
  double mindiv;
  for (int i = su.size() - 1; i >= 0; i--) {
    int s = 0;
    long long tmp = su[i];
    while (tmp > 0) {
      s += tmp % 10;
      tmp /= 10;
    }
    if (i == su.size() - 1)
      mindiv = su[i] / double(s);
    else if (su[i] / double(s) <= mindiv) {
      ans.push_back(su[i]);
    }
    mindiv = min(mindiv, su[i] / double(s));
  }
  sort((ans).begin(), (ans).end());
  for (int i = 0; i < (int)(k); ++i) cout << ans[i] << endl;
}
