#include <bits/stdc++.h>
using namespace std;
int sum(int x) {
  int res = 0;
  while (x > 0) {
    res += x % 10;
    x /= 10;
  }
  return res;
}
void brute() {
  for (int i = (1); i <= (1000000); i++) {
    bool ok = 1;
    for (int j = (i + 1); j <= (i + 100000); j++) {
      if (i * sum(j) > j * sum(i)) {
        ok = 0;
        break;
      }
    }
    if (ok) cout << i << '\n';
  }
}
const int N = (int)1000;
long long int num[N];
vector<long long int> num2;
long long int pwr(long long int a, long long int b) {
  long long int res = 1;
  while (b > 0) {
    if (b & 1) res = res * a;
    a *= a;
    b >>= 1;
  }
  return res;
}
void solve(int testcase) {
  for (int i = (1); i <= (9); i++) num[i] = i;
  for (int i = (10); i <= (27); i++) num[i] = (num[i - 9] * 10) + 9;
  long long int tmp = 1000;
  while (tmp < 1000000000000LL) {
    long long int x = (long long int)log10(tmp);
    long long int yo = (long long int)pwr(10, x),
                  yoo = (long long int)pwr(10, (x - 1));
    for (int i = (1); i <= (x - 2); i++) {
      long long int xx = i * yo + (yoo - 1);
      num2.push_back(xx);
      for (int j = (1); j <= (9); j++) num2.push_back(xx + j * yoo);
    }
    for (int i = (x - 1); i <= (9); i++) {
      num2.push_back(i * yo + (yo - 1));
    }
    tmp *= 10;
  }
  int k;
  cin >> k;
  if (k <= 27) {
    for (int i = (1); i <= (k); i++) cout << num[i] << '\n';
  } else {
    k -= 27;
    for (int i = (1); i <= (27); i++) cout << num[i] << '\n';
    for (int i = (0); i <= (k - 1); i++) cout << num2[i] << '\n';
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cout << setprecision(10);
  clock_t b = clock();
  int t = 1;
  for (int tt = (1); tt <= (t); tt++) solve(tt);
  clock_t e = clock();
  cerr << (double(e - b) / CLOCKS_PER_SEC) << " sec";
  return 0;
}
