import heapq
def sk(k):
    tempk = k
    ret = 0
    while tempk!=0:
        ret+=tempk%10
        tempk//=10
    return ret

ansl = []
heapq.heapify(ansl)
#maxnum=0
for i in range(1,100):
    temp =  i/sk(i)
    heapq.heappush(ansl,(temp,i))
for i in range(100,1000):
    for j in range(12):
        numstr = str(i)+''.join(['9']*j)
        num = int(numstr)
        #maxnum=max(maxnum,num)
        temp = num/sk(num)
        heapq.heappush(ansl,(temp,num))
#print('maxnum:',maxnum)
k= int(input())
i=1
while len(ansl)!=0:
    tempa = heapq.heappop(ansl)
    print(tempa[1])
    if i==k:
        break
    i+=1