#include <bits/stdc++.h>
using namespace std;
const int N = 1000000;
const int mod = 1000000007;
const int INF = 1 << 30;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
string YN(bool b) { return (b ? "YES" : "NO"); }
string yn(bool b) { return (b ? "Yes" : "No"); }
long long int k;
vector<long long int> v;
int main() {
  cin >> k;
  for (long long int i = (long long int)0; i < (long long int)9; ++i)
    v.push_back(i + 1);
  for (long long int i = (long long int)0; i < (long long int)9; ++i)
    v.push_back((i + 1) * 10 + 9);
  for (long long int i = (long long int)0; i < (long long int)9; ++i)
    v.push_back((i + 1) * 100 + 9);
  long long int n = 99, m = 999;
  for (long long int j = (long long int)0; j < (long long int)9; ++j) {
    for (int i = 10; i <= 18 + j * 10; ++i) v.push_back(pow(10, 2 + j) * i + n);
    for (int i = j + 1; i <= 9; ++i) v.push_back(pow(10, 3 + j) * i + m);
    if (j != 8) n += pow(10, 2 + j) * 9;
    m += pow(10, 3 + j) * 9;
  }
  for (long long int j = (long long int)0; j < (long long int)3; ++j) {
    for (int i = 10; i <= 99; ++i) v.push_back(pow(10, j + 11) * i + m);
    for (int i = 100; i <= 108 + 10 * j; ++j)
      v.push_back(pow(10, j + 10) * i + n);
    n += pow(10, 11 + j) * 9;
    m += pow(10, 10 + j) * 9;
  }
  for (long long int i = (long long int)0; i < (long long int)k; ++i)
    cout << v[i] << endl;
  return 0;
}
