#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

typedef long long ll;

int snuke(ll N) {
	int res = 0;
	if (N > 0) {
		res = N % 10 + snuke(N / 10);
	}
	return res;
}

int main() {
	int K;
	cin >> K;
	ll res = 1;
	for (int i = 0; i < K; i++) {
		if (res < 10) {
			cout << res++ << endl;
		}
		else {
			vector<ll> koho;
			ll temp = res;
			ll x = 10;
			for (int j = 0; j < 17; j++) {
				ll t = (temp / x) * x + x - 1;
				if (t > 1e+18) break;
				koho.push_back(t);
				x *= 10;
			}
			ll min = 1e+18;
			for (ll x : koho) {
				if (x / (double)snuke(x) < min / (double)snuke(min)) {
					min = x;
				}
			}
			res = min;
			cout << res << endl;
			res++;
		}
	}
}