#include <bits/stdc++.h>
const int INF = 1e9;
const int MOD = 1e9 + 7;
using LL = long long;
const LL LINF = 1e18;
using namespace std;
class PalseError {};
class Edge {
 public:
  int from, to, value;
  Edge(int a, int b, int c) {
    from = a;
    to = b;
    value = c;
  }
  Edge(int a, int b) {
    from = a;
    to = b;
  }
};
int main() {
  int(N);
  cin >> (N);
  int ins = 0;
  int count = 0;
  for (int a = 1; a <= INF; a++) {
    string s = to_string(a);
    int y = 0;
    for (auto&(b) : (s)) {
      y += b - '0';
    }
    double w = a / y;
    if (w - ins == 1) {
      cout << (a) << endl;
      ins = w;
      count++;
    }
    if (count >= N) break;
  }
  return 0;
}
