def cmb(n, r):

    if n < r:

        return 0 # <-直した

    if r > n - r:

        return cmb(n, n - r)

    if r == 0:

        return 1

    if r == 1:

        return n

    res = f[n]

    res *= invs[r]

    res %= MOD

    res *= invs[n - r]

    res %= MOD

    return res





MOD = 10 ** 9 + 7



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



f = [-1] * (N * 2 + 1)

f[0] = 1

t = 1

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

    t *= i

    t %= MOD

    f[i] = t



inv = pow(t, MOD - 2, MOD)

invs = [-1] * (N * 2 + 1)

invs[N * 2] = inv

for i in range(N * 2 - 1, 0, -1):

    inv *= (i + 1) # <-直した

    inv %= MOD

    invs[i] = inv



print((N - K + 1))

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

    print((cmb(K - 1, i - 1) * cmb(N - K + 1, i) % MOD))

from collections import defaultdict



mod = 10 ** 9 + 7



memo = defaultdict(int)





def cmb(n, r):

    if (n, r) in memo:

        return memo[(n, r)]



    if n < r or r < 0:

        return 0



    if r > n - r:

        return cmb(n, n - r)



    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod

    memo[(n, r)] = res

    return res





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



f = [1]

for i in range(1, 4000 + 10):

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



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

    print((cmb(n - k + 1, i) * cmb(k - 1, i - 1) % mod))

def cmb(n, r):
    if n < r:
        return 0  # <-直した
    if r > n - r:
        return cmb(n, n - r)
    if r == 0:
        return 1
    if r == 1:
        return n
    res = f[n]
    res *= invs[r]
    res %= MOD
    res *= invs[n - r]
    res %= MOD
    return res


MOD = 10**9 + 7
N, K = list(map(int, input().split()))
f = [-1] * (N * 2 + 1)
f[0] = 1
t = 1
for i in range(1, N * 2 + 1):
    t *= i
    t %= MOD
    f[i] = t
inv = pow(t, MOD - 2, MOD)
invs = [-1] * (N * 2 + 1)
invs[N * 2] = inv
for i in range(N * 2 - 1, 0, -1):
    inv *= i + 1  # <-直した
    inv %= MOD
    invs[i] = inv
print((N - K + 1))
for i in range(2, K + 1):
    print((cmb(K - 1, i - 1) * cmb(N - K + 1, i) % MOD))

from collections import defaultdict

mod = 10**9 + 7
memo = defaultdict(int)


def cmb(n, r):
    if (n, r) in memo:
        return memo[(n, r)]
    if n < r or r < 0:
        return 0
    if r > n - r:
        return cmb(n, n - r)
    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod
    memo[(n, r)] = res
    return res


n, k = list(map(int, input().split()))
f = [1]
for i in range(1, 4000 + 10):
    f.append(f[-1] * i % mod)
for i in range(1, k + 1):
    print((cmb(n - k + 1, i) * cmb(k - 1, i - 1) % mod))

+from collections import defaultdict + +mod = 10**9 + 7 +memo = defaultdict(int) + + -    if n < r: -        return 0  # <-直した +    if (n, r) in memo: +        return memo[(n, r)] +    if n < r or r < 0: +        return 0 -    if r == 0: -        return 1 -    if r == 1: -        return n -    res = f[n] -    res *= invs[r] -    res %= MOD -    res *= invs[n - r] -    res %= MOD +    res = f[n] * pow(f[n - r], mod - 2, mod) * pow(f[r], mod - 2, mod) % mod +    memo[(n, r)] = res -MOD = 10**9 + 7 -N, K = list(map(int, input().split())) -f = [-1] * (N * 2 + 1) -f[0] = 1 -t = 1 -for i in range(1, N * 2 + 1): -    t *= i -    t %= MOD -    f[i] = t -inv = pow(t, MOD - 2, MOD) -invs = [-1] * (N * 2 + 1) -invs[N * 2] = inv -for i in range(N * 2 - 1, 0, -1): -    inv *= i + 1  # <-直した -    inv %= MOD -    invs[i] = inv -print((N - K + 1)) -for i in range(2, K + 1): -    print((cmb(K - 1, i - 1) * cmb(N - K + 1, i) % MOD)) +n, k = list(map(int, input().split())) +f = [1] +for i in range(1, 4000 + 10): +    f.append(f[-1] * i % mod) +for i in range(1, k + 1): +    print((cmb(n - k + 1, i) * cmb(k - 1, i - 1) % mod))