#include <iostream>
#include <iomanip>
#include <vector>
#include <set>
#include <string>
#include <queue>
#include <algorithm>
#include <map>
#include <cmath>
#include <numeric>
#include <list>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cstring>

#define rep(i, n) for (int i = 0; i < n; i++)
#define rep1(i, n) for (int i = 1; i <= n; i++)

using namespace std;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef long long ll;
typedef pair<long long, long long> pll;

const int INF = 1 << 30;
const long long INFL = 1LL << 62;
const int MOD = 1000000007;
const int MAX = 100000;
const int N = 100;

double get_snuke(ll n){
	ll tn=n,s=0;
	while(tn>0){s+=tn%10;tn/=10;}
	return (double)n/s;
}

int main() {
	int k;cin>>k;
	ll ans=0,d=1;
	while(k>0){
		if(get_snuke(ans+d)>get_snuke(ans+10*d)) d*=10;
		ans+=d;
		cout<<ans<<endl;
		k--;
	}
}
