def nCr(n, r, mod):

    x, y = 1, 1

    for r_ in range(1, r+1):

        x = x*(n+1-r_)%mod

        y = y*r_%mod

    return x*pow(y, mod-2, mod)%mod



n, k = list(map(int, input().split()))

mod = 10**9+7

for i in range(1, k+1): print((nCr(n-k+1, i, mod)*nCr(k-1, i-1, mod)%mod))
def cmb(n, r, mod):

    if (r < 0 or r > n):

        return 0

    r = min(r, n-r)

    return g1[n] * g2[r] * g2[n-r] % mod

 

mod = 10**9+7  

num = 2*(10**3) # 制約に合わせよう

g1, g2, inverse = [1, 1] , [1, 1], [0, 1]

 

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

    g1.append((g1[-1] * i) % mod)

    inverse.append((-inverse[mod % i] * (mod//i)) % mod)

    g2.append((g2[-1] * inverse[-1]) % mod)

    

n, k = list(map(int, input().split()))

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

    print((cmb(n-k+1, i, mod) * cmb(k-1, i-1, mod) % mod))
def nCr(n, r, mod):
    x, y = 1, 1
    for r_ in range(1, r + 1):
        x = x * (n + 1 - r_) % mod
        y = y * r_ % mod
    return x * pow(y, mod - 2, mod) % mod


n, k = list(map(int, input().split()))
mod = 10**9 + 7
for i in range(1, k + 1):
    print((nCr(n - k + 1, i, mod) * nCr(k - 1, i - 1, mod) % mod))

def cmb(n, r, mod):
    if r < 0 or r > n:
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod


mod = 10**9 + 7
num = 2 * (10**3)  # 制約に合わせよう
g1, g2, inverse = [1, 1], [1, 1], [0, 1]
for i in range(2, num + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod // i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)
n, k = list(map(int, input().split()))
for i in range(1, k + 1):
    print((cmb(n - k + 1, i, mod) * cmb(k - 1, i - 1, mod) % mod))

-def nCr(n, r, mod): -    x, y = 1, 1 -    for r_ in range(1, r + 1): -        x = x * (n + 1 - r_) % mod -        y = y * r_ % mod -    return x * pow(y, mod - 2, mod) % mod +def cmb(n, r, mod): +    if r < 0 or r > n: +        return 0 +    r = min(r, n - r) +    return g1[n] * g2[r] * g2[n - r] % mod +mod = 10**9 + 7 +num = 2 * (10**3)  # 制約に合わせよう +g1, g2, inverse = [1, 1], [1, 1], [0, 1] +for i in range(2, num + 1): +    g1.append((g1[-1] * i) % mod) +    inverse.append((-inverse[mod % i] * (mod // i)) % mod) +    g2.append((g2[-1] * inverse[-1]) % mod) -mod = 10**9 + 7 -    print((nCr(n - k + 1, i, mod) * nCr(k - 1, i - 1, mod) % mod)) +    print((cmb(n - k + 1, i, mod) * cmb(k - 1, i - 1, mod) % mod))