import math

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

MOD = 10**9 + 7



def nCr(n,r):

    if n <= 0 or r <= 0:

        return 1

    elif n-r < 0:

        return 0

    else:

        return (math.factorial(n)//(math.factorial(r)*math.factorial(n-r)))%MOD



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

    ans = 1

    b = K-i

    ans *= nCr(K-1,i-1)

    ans *= nCr(N-K+1,i)

    print((ans%MOD))

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

MOD = 10**9 + 7

fac = [1 for k in range(200010)]

inv = [1 for k in range(200010)]

finv = [1 for k in range(200010)]

for k in range(2,200010):

    fac[k] = (fac[k-1]*k)%MOD

    inv[k] = (MOD - inv[MOD%k] * (MOD // k))%MOD

    finv[k] = (finv[k - 1] * inv[k]) % MOD;

def nCr(n,r):

    return (fac[n]*finv[r]*finv[n-r])%MOD



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

    if k <= N-K+1:

        print(((nCr(N-K+1,k)*nCr(K-1,k-1))%MOD))

    else:

        print((0))

import math

N, K = list(map(int, input().split()))
MOD = 10**9 + 7


def nCr(n, r):
    if n <= 0 or r <= 0:
        return 1
    elif n - r < 0:
        return 0
    else:
        return (math.factorial(n) // (math.factorial(r) * math.factorial(n - r))) % MOD


for i in range(1, K + 1):
    ans = 1
    b = K - i
    ans *= nCr(K - 1, i - 1)
    ans *= nCr(N - K + 1, i)
    print((ans % MOD))

N, K = list(map(int, input().split()))
MOD = 10**9 + 7
fac = [1 for k in range(200010)]
inv = [1 for k in range(200010)]
finv = [1 for k in range(200010)]
for k in range(2, 200010):
    fac[k] = (fac[k - 1] * k) % MOD
    inv[k] = (MOD - inv[MOD % k] * (MOD // k)) % MOD
    finv[k] = (finv[k - 1] * inv[k]) % MOD


def nCr(n, r):
    return (fac[n] * finv[r] * finv[n - r]) % MOD


for k in range(1, K + 1):
    if k <= N - K + 1:
        print(((nCr(N - K + 1, k) * nCr(K - 1, k - 1)) % MOD))
    else:
        print((0))

-import math - +fac = [1 for k in range(200010)] +inv = [1 for k in range(200010)] +finv = [1 for k in range(200010)] +for k in range(2, 200010): +    fac[k] = (fac[k - 1] * k) % MOD +    inv[k] = (MOD - inv[MOD % k] * (MOD // k)) % MOD +    finv[k] = (finv[k - 1] * inv[k]) % MOD -    if n <= 0 or r <= 0: -        return 1 -    elif n - r < 0: -        return 0 -    else: -        return (math.factorial(n) // (math.factorial(r) * math.factorial(n - r))) % MOD +    return (fac[n] * finv[r] * finv[n - r]) % MOD -for i in range(1, K + 1): -    ans = 1 -    b = K - i -    ans *= nCr(K - 1, i - 1) -    ans *= nCr(N - K + 1, i) -    print((ans % MOD)) +for k in range(1, K + 1): +    if k <= N - K + 1: +        print(((nCr(N - K + 1, k) * nCr(K - 1, k - 1)) % MOD)) +    else: +        print((0))