def digitsum(n):#nは正の整数、各位の和、許容は１０＾１０００
    if n<10:
        return n
    else:
        m=n//10
        return n%10+digitsum(m)

snuke=[]
for i in range(4,16):
    #i桁のsnuke数を調べる
    #10**i-1はsnuke数
    #上三桁以外は9で確定なので10**i-1から順に調べればよい
    snuke.append(10**i-1)
    min=10**i-1
    k=998
    while k>=100:
        test=k*10**(i-3)+10**(i-3)-1
        if min*digitsum(test)>=test*digitsum(min):
            snuke.append(test)
            min=test
        k-=1


snuke.append(999)
min=999
k=998
while k>0:
    if min*digitsum(k)>=k*digitsum(min):
        snuke.append(k)
        min=k
    k-=1

snuke.sort()

K=int(input())
for i in range(0,K):
    print(snuke[i])