#include <bits/stdc++.h>
using namespace std;
template <class T, class U>
ostream &operator<<(ostream &os, const pair<T, U> &p) {
  os << "(" << p.first << "," << p.second << ")";
  return os;
}
signed main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  vector<string> ans = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
  for (int i = 1; i <= 10; i++) {
    for (int j = 1; j < i * 10; j++) {
      ans.emplace_back(to_string(j) + string(i, '9'));
    }
  }
  for (int j = 1; j < 200; j++)
    ans.emplace_back(to_string(j) + string(11, '9'));
  for (int j = 1; j < 300; j++)
    ans.emplace_back(to_string(j) + string(12, '9'));
  sort(ans.begin(), ans.end(), [](string a, string b) {
    if (a.length() == b.length()) return a < b;
    return a.length() < b.length();
  });
  ans.erase(unique(ans.begin(), ans.end()), ans.end());
  int K;
  cin >> K;
  for (int i = 0; i < K; i++) cout << ans[i] << '\n';
  return 0;
}
