import math 
def S(N):
    s = 0
    n = N
    while n != 0:
        s += n % 10
        n /= 10
        n = math.floor(n)
    return s

def t(N):
    # print("N", N)
    # print("SN", S(N))
    return N / S(N)

def isSnuke(n):
    if n == 1:
        return True

    first = n % 10
    firstIsNine = n + 9 - first

    second = int(n / 10) % 10
    firstSecondIsNine = firstIsNine + 90 - second * 10

    third = int(n / 100) % 10
    firstSecondThirdIsNine = firstSecondIsNine + 900 - third * 100
    m = 1
    while m <= n:
        m *= 10
    m -= 1
    
    checkers = range(firstIsNine, firstSecondThirdIsNine, 10)
    # print(checkers)
    for c in checkers:
        if t(n) > t(c):
            return False
    return True
    
#     # print(firstIsNine)
#     if t(n) > t(firstIsNine):
#         return False
#     nVal = n / S(n)
#     
#     mVal = m / S(m)
#     return (nVal <= mVal)
# 
def listSnuke(k):
    n = 0
    number = 0
    while number < k:
        n += 1
        if isSnuke(n):
            print(n)
            number += 1

listSnuke(int(input()))
