#include <bits/stdc++.h>
using i32 = std::int_fast32_t;
using u32 = std::uint_fast32_t;
using i64 = std::int_fast64_t;
using u64 = std::uint_fast64_t;
using isize = std::ptrdiff_t;
using usize = std::size_t;
int main() {
  u32 k;
  std::cin >> k;
  std::vector<u64> ans = {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};
  u64 base = 1099, plu = 100, count = 1;
  while (ans.size() < k) {
    for (u64 value = base, i = 0; i < 10 * count; value += plu, i++) {
      ans.push_back(value);
    }
    plu *= 10;
    count++;
    for (u64 value = plu * (count + 1) - 1, i = count; i < 10;
         value += plu, i++) {
      ans.push_back(value);
    }
    if (count == 11) count = 0;
    base = (base * 10) + 9;
  }
  for (usize i = 0; i < k; i++) {
    std::cout << ans[i] << '\n';
  }
}
