from math import factorial

import sys



sys.setrecursionlimit(2000)

mod = 10**9+7

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



memo = {}

def combination(n,k):

  if n < k:

    return 0

  if n / 2 < k:

    k = n - k

  if n in memo and k in memo[n]:

    return memo[n][k]

  v = 0

  if k == 0:

    v = 1

  elif k == 1:

    v = n

  else:

    v = combination(n-1,k) + combination(n-1,k-1)

  return memo.setdefault(n, {}).setdefault(k, v)



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

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

from math import factorial



mod = 10**9+7

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



def combination(n,k):

  if n < k:

    return 0

  if k == 0 or k == n:

    return 1

  if k == 1:

    return n

  return factorial(n)//factorial(k)//factorial(n-k)



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

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

from math import factorial
import sys

sys.setrecursionlimit(2000)
mod = 10**9 + 7
n, k = list(map(int, input().split()))
memo = {}


def combination(n, k):
    if n < k:
        return 0
    if n / 2 < k:
        k = n - k
    if n in memo and k in memo[n]:
        return memo[n][k]
    v = 0
    if k == 0:
        v = 1
    elif k == 1:
        v = n
    else:
        v = combination(n - 1, k) + combination(n - 1, k - 1)
    return memo.setdefault(n, {}).setdefault(k, v)


for i in range(1, k + 1):
    print((combination(n - k + 1, i) * combination(k - 1, i - 1) % mod))

from math import factorial

mod = 10**9 + 7
n, k = list(map(int, input().split()))


def combination(n, k):
    if n < k:
        return 0
    if k == 0 or k == n:
        return 1
    if k == 1:
        return n
    return factorial(n) // factorial(k) // factorial(n - k)


for i in range(1, k + 1):
    print((combination(n - k + 1, i) * combination(k - 1, i - 1) % mod))

-import sys -sys.setrecursionlimit(2000) -memo = {} -    if n / 2 < k: -        k = n - k -    if n in memo and k in memo[n]: -        return memo[n][k] -    v = 0 -    if k == 0: -        v = 1 -    elif k == 1: -        v = n -    else: -        v = combination(n - 1, k) + combination(n - 1, k - 1) -    return memo.setdefault(n, {}).setdefault(k, v) +    if k == 0 or k == n: +        return 1 +    if k == 1: +        return n +    return factorial(n) // factorial(k) // factorial(n - k)