from math import log, floor
from itertools import accumulate, chain, islice, repeat
 
k = int(input())
 
def f(n):
    ds = range(int(log(n+1, 10))+1)
    xs = [(10**(d+1))*floor(n/(10**(d+1)) + 1) - 1 for d in ds]
    return min(xs, key=lambda n:n / sum(map(int, str(n))))
 
snukes = chain(range(1, 9), accumulate(repeat(9), lambda x,_:f(x+1)))
 
for x in islice(snukes, k):
    print(x)