from math import factorial



N, K = [int(_) for _ in input().split()]

# N = 10

MOD = 10 ** 9 + 7



kaijo = [0] * (N + 1)

kaijo[0] = kaijo[1] = 1

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

    kaijo[i] = (kaijo[i - 1] * i) % MOD



gyaku = [0] * (N + 1)

gyaku[0] = gyaku[1] = 1



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

    # gyaku[i] = (gyaku[i - 1] * pow(i, MOD - 2, MOD)) % MOD

    gyaku[i] = pow(kaijo[i], MOD - 2, MOD)





def calc(n, k):

    # return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD

    return factorial(n) // (factorial(n - k) * factorial(k))





def solve():

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

        n = N - K + 1

        k = i

        if k <= n:

            print(((calc(n, k) * calc(K - 1, i - 1)) % MOD))

        else:

            print((0))





solve()

from math import factorial



N, K = [int(_) for _ in input().split()]

# N = 10

MOD = 10 ** 9 + 7



kaijo = [0] * (N + 1)

kaijo[0] = kaijo[1] = 1

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

    kaijo[i] = (kaijo[i - 1] * i) % MOD



gyaku = [0] * (N + 1)

gyaku[0] = gyaku[1] = 1



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

    # gyaku[i] = (gyaku[i - 1] * pow(i, MOD - 2, MOD)) % MOD

    gyaku[i] = pow(kaijo[i], MOD - 2, MOD)





def calc(n, k):

    return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD

    # return factorial(n) // (factorial(n - k) * factorial(k))





def solve():

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

        n = N - K + 1

        k = i

        if k <= n:

            print(((calc(n, k) * calc(K - 1, i - 1)) % MOD))

        else:

            print((0))





solve()

from math import factorial

N, K = [int(_) for _ in input().split()]
# N = 10
MOD = 10**9 + 7
kaijo = [0] * (N + 1)
kaijo[0] = kaijo[1] = 1
for i in range(2, N + 1):
    kaijo[i] = (kaijo[i - 1] * i) % MOD
gyaku = [0] * (N + 1)
gyaku[0] = gyaku[1] = 1
for i in range(2, N + 1):
    # gyaku[i] = (gyaku[i - 1] * pow(i, MOD - 2, MOD)) % MOD
    gyaku[i] = pow(kaijo[i], MOD - 2, MOD)


def calc(n, k):
    # return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD
    return factorial(n) // (factorial(n - k) * factorial(k))


def solve():
    for i in range(1, K + 1):
        n = N - K + 1
        k = i
        if k <= n:
            print(((calc(n, k) * calc(K - 1, i - 1)) % MOD))
        else:
            print((0))


solve()

from math import factorial

N, K = [int(_) for _ in input().split()]
# N = 10
MOD = 10**9 + 7
kaijo = [0] * (N + 1)
kaijo[0] = kaijo[1] = 1
for i in range(2, N + 1):
    kaijo[i] = (kaijo[i - 1] * i) % MOD
gyaku = [0] * (N + 1)
gyaku[0] = gyaku[1] = 1
for i in range(2, N + 1):
    # gyaku[i] = (gyaku[i - 1] * pow(i, MOD - 2, MOD)) % MOD
    gyaku[i] = pow(kaijo[i], MOD - 2, MOD)


def calc(n, k):
    return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD
    # return factorial(n) // (factorial(n - k) * factorial(k))


def solve():
    for i in range(1, K + 1):
        n = N - K + 1
        k = i
        if k <= n:
            print(((calc(n, k) * calc(K - 1, i - 1)) % MOD))
        else:
            print((0))


solve()

-    # return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD -    return factorial(n) // (factorial(n - k) * factorial(k)) +    return (kaijo[n] * gyaku[n - k] * gyaku[k]) % MOD +    # return factorial(n) // (factorial(n - k) * factorial(k))