# encoding: utf-8
import math

K = int(input())

def Sn(x):
    # print("###")
    digits = []
    N_tmp = x
    while N_tmp > 0:
        digits.append(N_tmp % 10)
        N_tmp = N_tmp // 10
    return sum(digits)

# list of Sunuke Numbers
N_snk_list = list(range(1, 10))
cnt = 9

# parallelogram ABCD ex) A(0, 0), B(9, 9), C(19, 10), D(10, 1)
x_A = 10
y_A = 1 # Sn(x_A // 10)
x_C = x_A + 19
y_C = 11 # Sn(x_C) = Sn(x_A // 10 + 1) + 9
while True:
    # T : intersection of OC and AB
    # print("#", (x_A, y_A), (x_C, y_C), N_snk_list)
    # for n in range(math.floor(x_T), x_A + 10):
    #     if n > 0:
    #         N_snk_list.append(n)
    #         cnt += 1
    #     if cnt >= K: break
    if (y_A + 9) / (x_A + 9) >= y_C / x_C:
        print("##", x_A + 9)
        N_snk_list.append(x_A + 9)
        cnt += 1
    if cnt >= K: break
    # update x_A, x_C
    x_A += 10
    x_C += 10
    # update y_A
    if x_A % 100 == 0: y_A = Sn(x_A // 10)
    else: y_A += 1
    # update y_C
    if x_C % 100 == 9: y_C = Sn(x_C // 10)
    else: y_C += 1

if K < 10:
    for N_snk in range(1, K + 1): print(N_snk)
else:
    for N_snk in N_snk_list: print(N_snk)