#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;
int k;
int main() {
  io.read(k);
  for (int i = (1); i <= (9); i += (1)) {
    printf("%d\n", i);
    if (--k <= 0) return 0;
  }
  long long bit = 10;
  for (; true; bit *= 10) {
    for (int i = (2); i <= (10); i += (1)) {
      printf("%d\n", bit * i - 1);
      if (--k <= 0) return 0;
    }
  }
  return 0;
}
