def culc_factrial(n):

    factrial = [1] * (n+1)

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

        factrial[i] = factrial[i-1] * i

    return factrial





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



factrial = culc_factrial(2000)



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

    hoge = factrial[N-K+1] // (factrial[i]*factrial[N-K+1-i])

    fuga = factrial[K-1] // (factrial[i-1]*factrial[K-i])

    print((hoge*fuga % (1000000007)))

# 二項係数を"やるだけ"にしてくれるライブラリ

MAX = 3000

MOD = 1000000007

factrial = [0]*MAX

inverse = [0]*MAX

factrial_inverse = [0]*MAX





# テーブルを作る前処理

def COMinit():

    global factrial, inverse, factrial_inverse

    factrial[0] = 1

    factrial[1] = 1

    inverse[1] = 1

    factrial_inverse[0] = 1

    factrial_inverse[1] = 1

    for i in range(2, MAX):

        factrial[i] = factrial[i-1] * i % MOD

        inverse[i] = MOD - inverse[MOD % i] * (MOD//i) % MOD

        factrial_inverse[i] = factrial_inverse[i-1] * inverse[i] % MOD





# 二項係数計算

def COM(n, k):

    global factrial, inverse, factrial_inverse

    if n < k:

        return 0

    if n < 0 or k < 0:

        return 0

    return factrial[n] * (factrial_inverse[k] * factrial_inverse[n-k] % MOD) % MOD





# 前処理完了

COMinit()



N, K = list(map(int, input().split()))  # 合計N個のボール, K個の青いボール, N-K個の赤いボール



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

    print((COM(N-K+1, i) * COM(K-1, i-1) % MOD))

def culc_factrial(n):
    factrial = [1] * (n + 1)
    for i in range(1, n + 1):
        factrial[i] = factrial[i - 1] * i
    return factrial


N, K = list(map(int, input().split()))
factrial = culc_factrial(2000)
for i in range(1, K + 1):
    hoge = factrial[N - K + 1] // (factrial[i] * factrial[N - K + 1 - i])
    fuga = factrial[K - 1] // (factrial[i - 1] * factrial[K - i])
    print((hoge * fuga % (1000000007)))

# 二項係数を"やるだけ"にしてくれるライブラリ
MAX = 3000
MOD = 1000000007
factrial = [0] * MAX
inverse = [0] * MAX
factrial_inverse = [0] * MAX
# テーブルを作る前処理
def COMinit():
    global factrial, inverse, factrial_inverse
    factrial[0] = 1
    factrial[1] = 1
    inverse[1] = 1
    factrial_inverse[0] = 1
    factrial_inverse[1] = 1
    for i in range(2, MAX):
        factrial[i] = factrial[i - 1] * i % MOD
        inverse[i] = MOD - inverse[MOD % i] * (MOD // i) % MOD
        factrial_inverse[i] = factrial_inverse[i - 1] * inverse[i] % MOD


# 二項係数計算
def COM(n, k):
    global factrial, inverse, factrial_inverse
    if n < k:
        return 0
    if n < 0 or k < 0:
        return 0
    return factrial[n] * (factrial_inverse[k] * factrial_inverse[n - k] % MOD) % MOD


# 前処理完了
COMinit()
N, K = list(map(int, input().split()))  # 合計N個のボール, K個の青いボール, N-K個の赤いボール
for i in range(1, K + 1):
    print((COM(N - K + 1, i) * COM(K - 1, i - 1) % MOD))

-def culc_factrial(n): -    factrial = [1] * (n + 1) -    for i in range(1, n + 1): -        factrial[i] = factrial[i - 1] * i -    return factrial +# 二項係数を"やるだけ"にしてくれるライブラリ +MAX = 3000 +MOD = 1000000007 +factrial = [0] * MAX +inverse = [0] * MAX +factrial_inverse = [0] * MAX +# テーブルを作る前処理 +def COMinit(): +    global factrial, inverse, factrial_inverse +    factrial[0] = 1 +    factrial[1] = 1 +    inverse[1] = 1 +    factrial_inverse[0] = 1 +    factrial_inverse[1] = 1 +    for i in range(2, MAX): +        factrial[i] = factrial[i - 1] * i % MOD +        inverse[i] = MOD - inverse[MOD % i] * (MOD // i) % MOD +        factrial_inverse[i] = factrial_inverse[i - 1] * inverse[i] % MOD -N, K = list(map(int, input().split())) -factrial = culc_factrial(2000) +# 二項係数計算 +def COM(n, k): +    global factrial, inverse, factrial_inverse +    if n < k: +        return 0 +    if n < 0 or k < 0: +        return 0 +    return factrial[n] * (factrial_inverse[k] * factrial_inverse[n - k] % MOD) % MOD + + +# 前処理完了 +COMinit() +N, K = list(map(int, input().split()))  # 合計N個のボール, K個の青いボール, N-K個の赤いボール -    hoge = factrial[N - K + 1] // (factrial[i] * factrial[N - K + 1 - i]) -    fuga = factrial[K - 1] // (factrial[i - 1] * factrial[K - i]) -    print((hoge * fuga % (1000000007))) +    print((COM(N - K + 1, i) * COM(K - 1, i - 1) % MOD))