#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
struct __INIT {
  __INIT() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(15);
  }
} __init;
int main(void) {
  long long K;
  cin >> K;
  long long snuke = 0;
  long long pow10[17];
  pow10[0] = 1;
  for (int(i) = 0; (i) < (16); (i)++) pow10[i + 1] = pow10[i] * 10;
  pair<double, long long> able[1000];
  for (int(i) = 0; (i) < (1000); (i)++)
    able[i].first = (1LL << 60), able[i].second = (1LL << 60);
  for (int(i) = 0; (i) < (160); (i)++) {
    snuke += pow10[i / 9];
    able[i].first = (double)snuke / (i + 1), able[i].second = snuke;
  }
  sort(able, able + 1000);
  double mini = (1 << 30);
  int count = 0, p = 0;
  while (count < K) {
    bool check = true;
    for (int i = p + 1; i < 1000; i++)
      if (able[p].first > able[i].first) check = false;
    if (check) {
      count++;
      cout << able[p].second << "\n";
    }
    p++;
  }
}
