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

mod = 10**9+7

dp = [[0] * (K+1) for i in range(K+1)]  # the number of ways to split j into i parts

dp[0][0] = 1

for i in range(1, K+1):

    for j in range(1, K+1):

        dp[i][j] = dp[i][j-1] + dp[i-1][j-1]



combination = 1

for i in range(1, K+1):

    combination = (combination * (N-K-i+2) * pow(i, mod-2, mod)) % mod

    print(((dp[i][K] * combination) % mod))

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

mod = 10**9+7



ans = N-K+1

print(ans)

for i in range(2, K+1):

    ans = (ans * (N-K-i+2) * (K-i+1) * pow(i * (i-1), mod-2, mod)) % mod

    print(ans)

N, K = list(map(int, input().split()))
mod = 10**9 + 7
dp = [[0] * (K + 1) for i in range(K + 1)]  # the number of ways to split j into i parts
dp[0][0] = 1
for i in range(1, K + 1):
    for j in range(1, K + 1):
        dp[i][j] = dp[i][j - 1] + dp[i - 1][j - 1]
combination = 1
for i in range(1, K + 1):
    combination = (combination * (N - K - i + 2) * pow(i, mod - 2, mod)) % mod
    print(((dp[i][K] * combination) % mod))

N, K = list(map(int, input().split()))
mod = 10**9 + 7
ans = N - K + 1
print(ans)
for i in range(2, K + 1):
    ans = (ans * (N - K - i + 2) * (K - i + 1) * pow(i * (i - 1), mod - 2, mod)) % mod
    print(ans)

-dp = [[0] * (K + 1) for i in range(K + 1)]  # the number of ways to split j into i parts -dp[0][0] = 1 -for i in range(1, K + 1): -    for j in range(1, K + 1): -        dp[i][j] = dp[i][j - 1] + dp[i - 1][j - 1] -combination = 1 -for i in range(1, K + 1): -    combination = (combination * (N - K - i + 2) * pow(i, mod - 2, mod)) % mod -    print(((dp[i][K] * combination) % mod)) +ans = N - K + 1 +print(ans) +for i in range(2, K + 1): +    ans = (ans * (N - K - i + 2) * (K - i + 1) * pow(i * (i - 1), mod - 2, mod)) % mod +    print(ans)