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



MAX = 2*10**5+1

MOD = 10**9+7

fact = [0 for i in range(MAX)]

inv = [0 for i in range(MAX)]

invfact = [0 for i in range(MAX)]



def comb_build(n):

  fact[0] = inv[0] = invfact[0] = 1

  fact[1] = inv[1] = invfact[1] = 1

  for i in range(2, n):

    fact[i] = fact[i-1]*i%MOD

    inv[i] = inv[MOD%i]*(MOD-MOD//i)%MOD

    invfact[i] = invfact[i-1]*inv[i]%MOD



def nCk(n, k):

  if n<k or n<0 or k<0:

    return 0

  return (((fact[n]*invfact[k])%MOD)*invfact[n-k])%MOD



comb_build(2010)



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

  if i>n-k+1:

    print((0))

  else:

    print(((nCk(k-1, i-1)*nCk(n-(k-1), i))%MOD))
n, k = list(map(int, input().split()))



MAX = 2*10**5+1

MOD = 10**9+7

fact = [0 for i in range(MAX)]

inv = [0 for i in range(MAX)]

invfact = [0 for i in range(MAX)]



def comb_build(n):

  fact[0] = inv[0] = invfact[0] = 1

  fact[1] = inv[1] = invfact[1] = 1

  for i in range(2, n):

    fact[i] = fact[i-1]*i%MOD

    inv[i] = inv[MOD%i]*(MOD-MOD//i)%MOD

    invfact[i] = invfact[i-1]*inv[i]%MOD



def nCk(n, k):

  if n<k or n<0 or k<0:

    return 0

  return (((fact[n]*invfact[k])%MOD)*invfact[n-k])%MOD



comb_build(2010)



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

  print(((nCk(k-1, i-1)*nCk(n-k+1, i))%MOD))
n, k = list(map(int, input().split()))
MAX = 2 * 10**5 + 1
MOD = 10**9 + 7
fact = [0 for i in range(MAX)]
inv = [0 for i in range(MAX)]
invfact = [0 for i in range(MAX)]


def comb_build(n):
    fact[0] = inv[0] = invfact[0] = 1
    fact[1] = inv[1] = invfact[1] = 1
    for i in range(2, n):
        fact[i] = fact[i - 1] * i % MOD
        inv[i] = inv[MOD % i] * (MOD - MOD // i) % MOD
        invfact[i] = invfact[i - 1] * inv[i] % MOD


def nCk(n, k):
    if n < k or n < 0 or k < 0:
        return 0
    return (((fact[n] * invfact[k]) % MOD) * invfact[n - k]) % MOD


comb_build(2010)
for i in range(1, k + 1):
    if i > n - k + 1:
        print((0))
    else:
        print(((nCk(k - 1, i - 1) * nCk(n - (k - 1), i)) % MOD))

n, k = list(map(int, input().split()))
MAX = 2 * 10**5 + 1
MOD = 10**9 + 7
fact = [0 for i in range(MAX)]
inv = [0 for i in range(MAX)]
invfact = [0 for i in range(MAX)]


def comb_build(n):
    fact[0] = inv[0] = invfact[0] = 1
    fact[1] = inv[1] = invfact[1] = 1
    for i in range(2, n):
        fact[i] = fact[i - 1] * i % MOD
        inv[i] = inv[MOD % i] * (MOD - MOD // i) % MOD
        invfact[i] = invfact[i - 1] * inv[i] % MOD


def nCk(n, k):
    if n < k or n < 0 or k < 0:
        return 0
    return (((fact[n] * invfact[k]) % MOD) * invfact[n - k]) % MOD


comb_build(2010)
for i in range(1, k + 1):
    print(((nCk(k - 1, i - 1) * nCk(n - k + 1, i)) % MOD))

-    if i > n - k + 1: -        print((0)) -    else: -        print(((nCk(k - 1, i - 1) * nCk(n - (k - 1), i)) % MOD)) +    print(((nCk(k - 1, i - 1) * nCk(n - k + 1, i)) % MOD))