using System;
class Program{
	static long m=1400;
	static double[] da=new double[m];
	static void Main(){
		long s=long.Parse(Console.ReadLine());
		long[][] arr=new long[m][];
		long i=0,n=1,t=1;

		while(i<m){
			if(n/t==99){t*=10;}

			string st=n.ToString();
			int a=0;
			for(var j=0;j<st.Length;j=(j+1)|0){a+=int.Parse(st[j].ToString());}

			arr[i]=new long[2];
			arr[i][0]=i;arr[i][1]=n;
			da[i]=1.0*n/a;
			
			i++;
			n+=t;
		}
		
		Array.Sort(arr,ca1);
		
		long b=0,k=0;
		for (int j=0;k<s;j++){
			if(b<arr[j][1]){
				Console.WriteLine("{0}",arr[j][1]);
				b=arr[j][1];
				k++;
			}
		}
	}
	static int ca1(long[] a,long[] b){
		if(da[a[0]]>da[b[0]]){return 1;}
		else if(da[a[0]]<da[b[0]]){return -1;}
		else{
			if(a[0]>b[0]){return 1;}
			else if(a[0]<b[0]){return -1;}
			else{return 0;}
		}
	}
}