#include <bits/stdc++.h>
namespace Useful_Helpers {
void Unused(...) {}
template <typename DstTy, typename SrcTy>
DstTy set(DstTy &dst, const SrcTy &src) {
  return dst = static_cast<DstTy>(src);
}
namespace IO_Helper {
template <typename Ty>
void read(Ty &var);
template <>
void read<int>(int &i) {
  scanf("%d", &i);
};
template <>
void read<char>(char &i) {
  scanf("%c", &i);
};
template <>
void read<long long>(long long &i) {
  scanf("%lld", &i);
};
template <>
void read<char *>(char *&i) {
  scanf("%s", i);
}
template <int Size>
void read(char (&i)[Size]) {
  scanf("%s", i);
}
struct IO {
 private:
  void read() {}

 public:
  template <typename Ty, typename... Rest>
  void read(Ty &car, Rest &...cdr) {
    IO_Helper::read(car);
    this->read(cdr...);
  }
  template <typename Ty, int Size>
  void read(Ty (&arr)[Size], int beg, int end) {
    for (int i = (beg); i <= (end); i += (1)) this->read(arr[i]);
  }
} io;
}  // namespace IO_Helper
using IO_Helper::io;
}  // namespace Useful_Helpers
using namespace Useful_Helpers;
const int MaxN = int(1e5) + 7;
const long long Mod = int(1e9) + 7;
const int Inf = 0x3f3f3f3f;
const long long Inf64 = 0x3f3f3f3f3f3f3f3f;
const int pans[] = {
    1,  2,  3,  4,  5,   6,   7,   8,   9,   19,  29,  39,  49,  59,
    69, 79, 89, 99, 199, 299, 399, 499, 599, 699, 799, 899, 999,
};
int k;
int main() {
  io.read(k);
  for (int i = 0; i < k && i < 27; ++i) printf("%d\n", pans[i]);
  if (k <= 27)
    return 0;
  else
    k -= 27;
  long long base = 100;
  int bit = 2;
  for (; k; base *= 10, ++bit) {
    for (int ex = 10; ex < bit * 10 && k; ++ex, --k)
      printf("%lld\n", base * ex + base - 1);
    for (int ex = bit + 1; ex <= 10 && k; ++ex, --k)
      printf("%lld\n", base * 10 * ex - 1);
  }
  return 0;
}
