#include <bits/stdc++.h>
using namespace std;
vector<long long> vl;
vector<int> vn;
const long long num = 1e15;
long long get_ans(int n) {
  stack<int> digit;
  while (n > 0) {
    if (n < 9) {
      digit.push(n);
    } else
      digit.push(9);
    n -= 9;
  }
  long long ans = 0;
  while (!digit.empty()) {
    int d = digit.top();
    digit.pop();
    ans = ans * 10 + d;
  }
  return ans;
}
bool bigger(double x, double y) { return x - 1e-9 > y; }
int main() {
  int n = 1;
  while (true) {
    long long ans = get_ans(n);
    if (ans > num) break;
    double frac = (double)ans / n;
    while (!vl.empty() && bigger((double)vl.back() / vn.back(), frac)) {
      vl.pop_back();
      vn.pop_back();
    }
    vl.push_back(ans);
    vn.push_back(n);
    n++;
  }
  int q;
  scanf("%d", &q);
  for (int i = (0); i < (q); i++) {
    printf("%lld\n", vl[i]);
  }
  return 0;
}
