#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000001;
const float PI = 3.14;
typedef map<string, int> msi;
typedef vector<pair<int, int> > vii;
typedef priority_queue<pair<int, int>, vector<pair<int, int> >,
                       greater<pair<int, int> > >
    pq;
list<int>::iterator it;
list<int>::iterator it1;
vector<int>::iterator it2;
vector<int>::iterator it3;
set<int>::iterator it4;
map<string, int>::iterator it5;
vector<pair<int, int> >::iterator iter;
int main(int argc, char* argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int k;
  cin >> k;
  int licznik = 1;
  set<int> liczby;
  while (liczby.size() < k) {
    double i = licznik;
    while (i < 10000000000000000) {
      int temp = i;
      int temp2 = i + 1;
      double licznik1 = 0;
      double licznik2 = 0;
      while (temp > 0) {
        licznik1 += temp % 10;
        temp /= 10;
      }
      while (temp2 > 0) {
        licznik2 += temp2 % 10;
        temp2 /= 10;
      }
      if ((i / licznik1) <= ((i + 1) / licznik2)) {
        liczby.insert(i);
        licznik++;
        break;
      } else
        i++;
    }
  }
  set<int>::iterator ite;
  for (ite = liczby.begin(); ite != liczby.end(); ite++) {
    cout << *ite << endl;
  }
}
