#include <bits/stdc++.h>
long long pow10[17] = {1,
                       10,
                       100,
                       1000,
                       10000,
                       100000,
                       1000000,
                       10000000,
                       100000000,
                       1000000000,
                       10000000000,
                       100000000000,
                       1000000000000,
                       10000000000000,
                       100000000000000,
                       1000000000000000,
                       10000000000000000};
long long min[145];
int main(void) {
  long long K;
  scanf("%lld", &K);
  for (int r = 1; r <= 145; r++) {
    int i = r;
    int count = 0;
    while (i > 9) {
      i -= 9;
      min[r] += 9 * pow10[count++];
    }
    min[r] += i * pow10[count];
  }
  long long int N = 1;
  while (K > 0) {
    long long Sn = 0;
    for (int r = 1; r <= 16; r++) {
      Sn += (N / pow10[r - 1]) % 10;
    }
    char isSnuke = 1;
    for (int r = Sn; r <= 145; r++) {
      if (min[r] == N) continue;
      if (r * N > min[r] * Sn) {
        isSnuke = 0;
        break;
      }
    }
    if (isSnuke) {
      K--;
      printf("%lld\n", N);
    }
    N++;
  }
}
