#include <bits/stdc++.h>
using namespace std;
void read(int &x) {
  x = 0;
  char c = getchar();
  int p = 1;
  for (; c < 48; c = getchar())
    if (c == '-') p = -1;
  for (; c > 47; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
  x *= p;
}
void read(long long &x) {
  x = 0;
  char c = getchar();
  int p = 1;
  for (; c < 48; c = getchar())
    if (c == '-') p = -1;
  for (; c > 47; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
  x *= p;
}
void Min(int &x, int y) {
  if (x > y) x = y;
}
void Max(int &x, int y) {
  if (x < y) x = y;
}
void Min(long long &x, long long y) {
  if (x > y) x = y;
}
void Max(long long &x, long long y) {
  if (x < y) x = y;
}
long long po[18];
int l[18] = {1, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
    r[18] = {9,  9,  18,  28,  38,  48,  58,  68,  78,
             88, 98, 108, 118, 128, 138, 148, 158, 168};
int main() {
  int i, j, n;
  for (i = 1; i < 18; i++) {
    po[i] = po[i - 1] * 10 + 9;
  }
  read(n);
  for (i = l[0]; i <= r[0]; i++) {
    printf("%d\n", i);
    n--;
    if (!n) return 0;
  }
  for (i = 1;; i++) {
    for (j = l[i]; j <= r[i]; j++) {
      printf("%d%lld\n", j, po[i]);
      n--;
      if (!n) return 0;
    }
  }
  return 0;
}
