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

mod = 10 ** 9 + 7



inv = [pow(i, mod - 2, mod) for i in range(1, N + 1)]

table = []

inv_table = []

tmp = 1

inv_tmp = 1

for i in range(N):

    tmp *= (i + 1)

    tmp %= mod

    table.append(tmp)

    inv_tmp *= inv[i]

    inv_tmp %= mod

    inv_table.append(inv_tmp)



def cmb(n, k):

    if n == 0:

        return 1

    if k == 0:

        return 1

    if n == k:

        return 1

    ans = table[n - 1]

    ans *= inv_table[k - 1]

    ans *= inv_table[n - k - 1]

    

    return ans % mod

    

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

    ans = 0

    tmp = cmb(K - 1, i - 1)

    if N - K < i - 1:

        print(ans)

        continue

    else:

        tmp_N = N - K - (i - 1)

        if tmp_N > 0:

            ans += cmb(tmp_N + i, i) * tmp

        else:

            ans += tmp

    print((ans % mod))

#!/usr/bin/env python3

# from itertools import combinations_with_replacement

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



def cmb(n, r, p):

    if (r < 0) or (n < r):

        return 0

    r = min(r, n - r)

    return fact[n] * factinv[r] * factinv[n-r] % p



p = 10 ** 9 + 7

tmp_N = N + 2  # N は必要分だけ用意する

fact = [1, 1]  # fact[n] = (n! mod p)

factinv = [1, 1]  # factinv[n] = ((n!)^(-1) mod p)

inv = [0, 1]  # factinv 計算用

 

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

    fact.append((fact[-1] * i) % p)

    inv.append((-inv[p % i] * (p // i)) % p)

    factinv.append((factinv[-1] * inv[-1]) % p)



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

    ans = cmb(N - K + 1, i, p) * cmb(K - 1, K - i, p) % p

    print(ans)
N, K = list(map(int, input().split()))
mod = 10**9 + 7
inv = [pow(i, mod - 2, mod) for i in range(1, N + 1)]
table = []
inv_table = []
tmp = 1
inv_tmp = 1
for i in range(N):
    tmp *= i + 1
    tmp %= mod
    table.append(tmp)
    inv_tmp *= inv[i]
    inv_tmp %= mod
    inv_table.append(inv_tmp)


def cmb(n, k):
    if n == 0:
        return 1
    if k == 0:
        return 1
    if n == k:
        return 1
    ans = table[n - 1]
    ans *= inv_table[k - 1]
    ans *= inv_table[n - k - 1]
    return ans % mod


for i in range(1, K + 1):
    ans = 0
    tmp = cmb(K - 1, i - 1)
    if N - K < i - 1:
        print(ans)
        continue
    else:
        tmp_N = N - K - (i - 1)
        if tmp_N > 0:
            ans += cmb(tmp_N + i, i) * tmp
        else:
            ans += tmp
    print((ans % mod))

#!/usr/bin/env python3
# from itertools import combinations_with_replacement
N, K = list(map(int, input().split()))


def cmb(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n - r] % p


p = 10**9 + 7
tmp_N = N + 2  # N は必要分だけ用意する
fact = [1, 1]  # fact[n] = (n! mod p)
factinv = [1, 1]  # factinv[n] = ((n!)^(-1) mod p)
inv = [0, 1]  # factinv 計算用
for i in range(2, tmp_N + 1):
    fact.append((fact[-1] * i) % p)
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p)
for i in range(1, K + 1):
    ans = cmb(N - K + 1, i, p) * cmb(K - 1, K - i, p) % p
    print(ans)

+#!/usr/bin/env python3 +# from itertools import combinations_with_replacement -mod = 10**9 + 7 -inv = [pow(i, mod - 2, mod) for i in range(1, N + 1)] -table = [] -inv_table = [] -tmp = 1 -inv_tmp = 1 -for i in range(N): -    tmp *= i + 1 -    tmp %= mod -    table.append(tmp) -    inv_tmp *= inv[i] -    inv_tmp %= mod -    inv_table.append(inv_tmp) -def cmb(n, k): -    if n == 0: -        return 1 -    if k == 0: -        return 1 -    if n == k: -        return 1 -    ans = table[n - 1] -    ans *= inv_table[k - 1] -    ans *= inv_table[n - k - 1] -    return ans % mod +def cmb(n, r, p): +    if (r < 0) or (n < r): +        return 0 +    r = min(r, n - r) +    return fact[n] * factinv[r] * factinv[n - r] % p +p = 10**9 + 7 +tmp_N = N + 2  # N は必要分だけ用意する +fact = [1, 1]  # fact[n] = (n! mod p) +factinv = [1, 1]  # factinv[n] = ((n!)^(-1) mod p) +inv = [0, 1]  # factinv 計算用 +for i in range(2, tmp_N + 1): +    fact.append((fact[-1] * i) % p) +    inv.append((-inv[p % i] * (p // i)) % p) +    factinv.append((factinv[-1] * inv[-1]) % p) -    ans = 0 -    tmp = cmb(K - 1, i - 1) -    if N - K < i - 1: -        print(ans) -        continue -    else: -        tmp_N = N - K - (i - 1) -        if tmp_N > 0: -            ans += cmb(tmp_N + i, i) * tmp -        else: -            ans += tmp -    print((ans % mod)) +    ans = cmb(N - K + 1, i, p) * cmb(K - 1, K - i, p) % p +    print(ans)