import math



N, K = list(map(int, input().split()))

R = N - K



if R == 0: #赤いボールが無い時

    print((1))

    for _ in range(1, K):

        print((0))

    exit()



if K == 1: #青いボールが1つのとき

    print((R+1))

    exit()





# K_1 = math.factorial(K-1)

# R_1 = math.factorial(R+1)

# print (K_1, R_1)

for i in range(1, K+1): #K回答えを出力

    if i > R+1:

        print((0))

        continue

    if i == 1:

        print((R + 1))

        continue

    # print (K_1, R_1, math.factorial(i))

    if i >= 2:

        position = R_1 = math.factorial(R+1)//(math.factorial(i) * math.factorial(R + 1- i))

        boal = math.factorial(K-1)//(math.factorial(i-1) * math.factorial(K - i))

    print(((position * boal)%(7 + 10 ** 9)))
N, K = list(map(int, input().split()))

R = N - K



if R == 0: #赤いボールが無い時

    print((1))

    for _ in range(1, K):

        print((0))

    exit()



if K == 1: #青いボールが1つのとき

    print((R+1))

    exit()



for i in range(1, K+1): #K回答えを出力

    if i > R+1:

        print((0))

        continue

    if i == 1:

        position = R + 1

        boal = 1

    if i >= 2:

        position = ((position * (R + 1 - (i-1))) // i) #%(7 + 10 ** 9)

        boal = ((boal * (K - (i-1)))// (i-1)) #%(7 + 10 ** 9) 

    print(((position * boal)%(7 + 10 ** 9)))
import math

N, K = list(map(int, input().split()))
R = N - K
if R == 0:  # 赤いボールが無い時
    print((1))
    for _ in range(1, K):
        print((0))
    exit()
if K == 1:  # 青いボールが1つのとき
    print((R + 1))
    exit()
# K_1 = math.factorial(K-1)
# R_1 = math.factorial(R+1)
# print (K_1, R_1)
for i in range(1, K + 1):  # K回答えを出力
    if i > R + 1:
        print((0))
        continue
    if i == 1:
        print((R + 1))
        continue
    # print (K_1, R_1, math.factorial(i))
    if i >= 2:
        position = R_1 = math.factorial(R + 1) // (
            math.factorial(i) * math.factorial(R + 1 - i)
        )
        boal = math.factorial(K - 1) // (math.factorial(i - 1) * math.factorial(K - i))
    print(((position * boal) % (7 + 10**9)))

N, K = list(map(int, input().split()))
R = N - K
if R == 0:  # 赤いボールが無い時
    print((1))
    for _ in range(1, K):
        print((0))
    exit()
if K == 1:  # 青いボールが1つのとき
    print((R + 1))
    exit()
for i in range(1, K + 1):  # K回答えを出力
    if i > R + 1:
        print((0))
        continue
    if i == 1:
        position = R + 1
        boal = 1
    if i >= 2:
        position = (position * (R + 1 - (i - 1))) // i  #%(7 + 10 ** 9)
        boal = (boal * (K - (i - 1))) // (i - 1)  #%(7 + 10 ** 9)
    print(((position * boal) % (7 + 10**9)))

-import math - -# K_1 = math.factorial(K-1) -# R_1 = math.factorial(R+1) -# print (K_1, R_1) -        print((R + 1)) -        continue -    # print (K_1, R_1, math.factorial(i)) +        position = R + 1 +        boal = 1 -        position = R_1 = math.factorial(R + 1) // ( -            math.factorial(i) * math.factorial(R + 1 - i) -        ) -        boal = math.factorial(K - 1) // (math.factorial(i - 1) * math.factorial(K - i)) +        position = (position * (R + 1 - (i - 1))) // i  #%(7 + 10 ** 9) +        boal = (boal * (K - (i - 1))) // (i - 1)  #%(7 + 10 ** 9)