import math



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

mod = 1000000007





def nCr(n: int, r: int):

    if n == r:

        return 1

    if r > n:

        return 0

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





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

    print((nCr(N-K+1, i) * nCr(K-1, i-1) % mod))

import math



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

mod = 1000000007





def nCr(n: int, r: int):

    if n == r:

        return 1

    if r > n:

        return 0

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





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

    print((nCr(N-K+1, i) * nCr(K-1, i-1) % mod if N-K+1 >= i else 0))

import math

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


def nCr(n: int, r: int):
    if n == r:
        return 1
    if r > n:
        return 0
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))


for i in range(1, K + 1):
    print((nCr(N - K + 1, i) * nCr(K - 1, i - 1) % mod))

import math

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


def nCr(n: int, r: int):
    if n == r:
        return 1
    if r > n:
        return 0
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))


for i in range(1, K + 1):
    print((nCr(N - K + 1, i) * nCr(K - 1, i - 1) % mod if N - K + 1 >= i else 0))

-    print((nCr(N - K + 1, i) * nCr(K - 1, i - 1) % mod)) +    print((nCr(N - K + 1, i) * nCr(K - 1, i - 1) % mod if N - K + 1 >= i else 0))