import std.stdio, std.algorithm, std.range, std.conv, std.string, std.math, std.container, std.typecons;
import core.stdc.stdio;
// foreach, foreach_reverse, writeln

void main() {
	const int N = 15*9+1;
	int K;
	scanf("%d", &K);
	long[] x = new long[N];
	long f(int s) {
		int n = s/9, r = s%9;
		return (10L^^n)*r + (10L^^n - 1);
	}
	foreach (i ; 1..N) {
		x[i] = f(i);
	}
	int k = N-1;
	foreach_reverse (i; 1..N) {
		if (x[i]*k <= x[k]*i) {
			k = i;
		} else {
			x[i] = -1;
		}
	}
	k = 1;
	foreach (i; 0..K) {
		writeln(x[k]);
		if (i == K-1) break;
		k++;
		while (x[k] == -1) k++;
	}
}