#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
double nu[100000000];
double calc(int n) {
  if (nu[n] > 0) return nu[n];
  double num = n;
  double digit = 0;
  while (num > 0) {
    digit += (int)num % 10;
    num /= 10;
  }
  nu[n] = (double)(n) / digit;
  return nu[n];
}
int main() {
  long long K;
  cin >> K;
  vector<long long> sunukeNum;
  for (int i = (1); i < (9); ++i) {
    sunukeNum.push_back(i);
  }
  for (int i = (1); i < (10); ++i) {
    sunukeNum.push_back(i * 10 + 9);
  }
  for (int i = (1); i < (20); ++i) {
    sunukeNum.push_back(i * 100 + 99);
  }
  for (int j = (3); j < (16); ++j) {
    for (int i = (1); i < (10); ++i) {
      if (j == 3 && i == 1) continue;
      long long pushNum = 0;
      pushNum = (i * pow(10, j));
      int cnt = 0;
      for (int k = 0; k < (int)(j); k++) {
        pushNum += 9 * pow(10, cnt);
        cnt++;
      }
      sunukeNum.push_back(pushNum);
    }
  }
  for (int i = 0; i < (int)(K); i++) {
    cout << sunukeNum[i] << endl;
  }
  return 0;
}
