#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <vector>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <math.h>
#include <string>
#include <map>
#include <set>
#include <iomanip>
using namespace std;

typedef long long ll;

double func(ll n){
	ll tmp=n, sum=0;
	while(tmp!=0){
		sum+=tmp%10;
		tmp/=10;
	}
	return (double)n/sum;
}

ll sunuke(ll N){//n以上の最小のすぬけ数
	ll n=N+(9-N%10);
	ll ans=n;
	double value=func(n);
	ll mul=100;
	while(n<=10*N){
		if(n%mul==mul-1){
			mul*=10;
			continue;
		}
		n+=mul/10;
		if(value>func(n)){
			value=func(n);
			ans=n;
		}
	}
	return ans;
}

int main()
{
    ll K;
	cin >> K;
	for(int i=1; i<min(K, (ll)10); i++){
		cout << i << endl;
	}
	if(K>=10){
		ll ans=9;
		for(int i=9; i<K; i++){
			ans=sunuke(ans+1);
			cout << ans << endl;
		}
	}
	

    

    return 0;
}
