#include <bits/stdc++.h>
using namespace std;
const long long int INF = 1LL << 60;
const long long int Mod = 1000000007;
using ll = long long int;
using ci = const int;
using vi = vector<int>;
using Vi = vector<long long int>;
using P = pair<int, int>;
using PLL = pair<ll, ll>;
using matrix = vector<vector<ll>>;
template <class T>
bool chmax(T &former, const T &b) {
  if (former < b) {
    former = b;
    return true;
  }
  return false;
}
template <class T>
bool chmin(T &former, const T &b) {
  if (b < former) {
    former = b;
    return true;
  }
  return false;
}
template <class T>
T sqar(T x) {
  return x * x;
}
template <class T>
inline void princ(T x) {
  cout << x << " ";
};
template <class T>
inline void print(T x) {
  cout << x << "\n";
};
template <class T>
inline void Yes(T condition) {
  if (condition)
    cout << "Yes" << endl;
  else
    cout << "No" << endl;
}
template <class T>
inline void YES(T condition) {
  if (condition)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
ll pow(ll x, ll y) {
  if (y == 0) return 1;
  if (y & 1) return x * pow(x, y - 1);
  ll p = pow(x, y / 2);
  return p * p;
}
void solve() {
  ll k;
  cin >> k;
  for (ll i = ll(1); i < ll(10); ++i) {
    print(i);
    k--;
    if (k == 0) return;
  }
  for (ll i = ll(1); i < ll(10); ++i) {
    print((ll)(i * 10 + 9));
    k--;
    if (k == 0) return;
  }
  for (ll i = ll(2); i < ll(16); ++i) {
    for (ll j = ll(i); j < ll(i * 10 + 1); ++j) {
      print((ll)j * pow(10ll, i) - 1);
      k--;
      if (k == 0) return;
    }
  }
  return;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  std::cout << std::fixed << std::setprecision(30);
  solve();
  return 0;
}
