#include <bits/stdc++.h>
int64_t sn(int64_t n) {
  int64_t s(0);
  int64_t n_d = n;
  while (n_d != 0) {
    s += n_d % 10;
    n_d /= 10;
  }
  return s;
}
void minM(int dig, int64_t& min, int64_t& s) {
  std::int64_t m_min = 1;
  for (int d = 1; d < dig; d++) {
    m_min *= 10;
  }
  int64_t m_max = m_min * 2;
  min = m_min;
  s = sn(min);
  for (int64_t m = m_min + 1; m < m_max; m++) {
    int64_t s_m = sn(m);
    if (m < (min * s_m) / s) {
      min = m;
      s = s_m;
    }
  }
}
int main(int argc, char* argv[]) {
  int64_t k;
  std::ios::sync_with_stdio(false);
  std::cin >> k;
  std::cout << 1 << std::endl;
  int64_t c(1);
  int64_t i(2);
  int64_t m_d = 2;
  int64_t m_i = 10;
  int64_t m_min, s_min;
  minM(2, m_min, s_min);
  int64_t s_m_i = sn(m_i);
  while (c < k) {
    if (i == m_min) {
      m_d++;
      minM(m_d, m_min, s_min);
    }
    if (i < (sn(i) * m_min) / s_min) {
      std::cout << i << std::endl;
      c++;
      if (c == k) {
        break;
      }
    }
    i++;
  }
  return 0;
}
