"""
for i in range(9999999999999, 111000000000000, 1000000000000):
    print( "{} / {} = {}".format(i, sum(map(int, list(str(i)))), i/sum(map(int, list(str(i)))) ))
"""

# 桁数を返す
def intlen(n):
    return len(str(n))

# 10の累乗か否かを返す
def ispow10(n):
    while n>1:
        n /= 10
    if n==1:
        return True
    return False

# num: 出力する数の始点
num = 1
K = int(input())
for i in range(K):
    print(num)
    if intlen(num) <= 3:
        if ispow10(num+1):
            if num!=999:
                num += 10**intlen(num)
            else:
                num += 100
        else:
            num += 10**(intlen(num)-1)
    elif intlen(num) <= 12:
        if num//(10**(intlen(num)-2)) <= (intlen(num)-3)*10 + 8:
            num += 10**(intlen(num)-2)
        else:
            num += 10**(intlen(num)-1)
    else:
        if ispow10(num):
            num += 10**(intlen(num)-2)
        else:
            num += 10**(intlen(num)-1)
