#include<bits/stdc++.h>
#define rep(i, a, b) for(int i=a; i<b; i++)
#define repi(i, a, b) for(int i=a; i>b; i--)
#define db(x) (cerr << #x << ": " << x << '\n')
#define sync ios_base::sync_with_stdio(false), cin.tie(NULL)
#define ll long long
#define mp make_pair
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define sz size()
#define all(v) (v).begin(), (v).end()
#define pii pair<int, int>
#define pll pair<ll, ll>
#define vi vector<int>
#define vll vector<ll, ll>
#define vpii vector<pii>
#define vpll vector<pll>
#define vvi vector<vi>
#define fi first
#define se second
#define umap unordered_map
#define umapi umap<int, int>
#define mapi map<int, int>
#define uset unordered_set
#define useti uset<int>
#define seti set<int>
#define pqueue priority_queue
#define si(a) scanf("%d", &a)
#define sll(a) scanf("%lld", &a)
#define bitcount(x) __builtin_popcount(x)
#define cps CLOCKS_PER_SEC
#define PI acos(-1.0)
#define EPS 1e-9
#define mod 1000000007
#define MOD 1000000007
#define N 
using namespace std;

template<typename T>
using maxpq = priority_queue<T, vector<T>, greater<T>>;

template<typename T>
using minpq = priority_queue<T>;
#define int ll
inline int s(int n) {
	int ans = 0;
	while(n) {
		ans += n % 10;
		n /= 10;
	}
	return ans;
}

main()
{	
	#ifndef ONLINE_JUDGE
//		freopen("C:\\Users\\HP\\Desktop\\input.txt", "r", stdin);
//		freopen("C:\\Users\\HP\\Desktop\\output.txt", "w", stdout);
	#endif
	
	clock_t clk = clock();
	
	int n, k;
	n = 200;
	
	/*rep(i, n, 3*n+1) {
		cout << i << ' ' << double(i) / s(i) << '\n';
	}
	*/
	cin >> k;
	
	for(int i = 1; i < 10 && k--; i++) {
		cout << i << '\n';
	}
	
	int j = 1;
	for(int i = 1; k--; i++) {
		cout << i;
		rep(l, 0, j) {
			cout << 9;
		}
		cout << '\n';
		if(i == 9) {
			i = 0, j++;
		}
	}
	
	cerr << double(clock() - clk) * 1000.0 / cps << '\n';
}






