def cmb(n, r):

  if r == 0: return 1

  if r == 1: return n

  if n < r: return 0

  if n - r < r: r = n - r



  numerator = [n - r + k + 1 for k in range(r)]

  denominator = [k + 1 for k in range(r)]



  for p in range(2,r+1):

    pivot = denominator[p - 1]

    if pivot > 1:

      offset = (n - r) % p

      for k in range(p-1,r,p):

        numerator[k - offset] /= pivot

        denominator[k] /= pivot



  result = 1

  for k in range(r):

    if numerator[k] > 1:

      result *= int(numerator[k])



  return result



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

blue = k

red = n-k



print((red+1))

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

  tmp = (cmb(red+1,i)%(10**9+7)) * (cmb(blue-1,i-1)%(10**9+7))

  print((tmp % (10**9+7)))

import math



def cmb(n, r):

  if r == 0: return 1

  if r == 1: return n

  if n < r: return 0

  return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))



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

blue = k

red = n-k



print((red+1))

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

  print(((cmb(red+1,i)%(10**9+7)) * (cmb(blue-1,i-1)%(10**9+7))% (10**9+7)))

def cmb(n, r):
    if r == 0:
        return 1
    if r == 1:
        return n
    if n < r:
        return 0
    if n - r < r:
        r = n - r
    numerator = [n - r + k + 1 for k in range(r)]
    denominator = [k + 1 for k in range(r)]
    for p in range(2, r + 1):
        pivot = denominator[p - 1]
        if pivot > 1:
            offset = (n - r) % p
            for k in range(p - 1, r, p):
                numerator[k - offset] /= pivot
                denominator[k] /= pivot
    result = 1
    for k in range(r):
        if numerator[k] > 1:
            result *= int(numerator[k])
    return result


n, k = list(map(int, input().split()))
blue = k
red = n - k
print((red + 1))
for i in range(2, blue + 1):
    tmp = (cmb(red + 1, i) % (10**9 + 7)) * (cmb(blue - 1, i - 1) % (10**9 + 7))
    print((tmp % (10**9 + 7)))

import math


def cmb(n, r):
    if r == 0:
        return 1
    if r == 1:
        return n
    if n < r:
        return 0
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))


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

+import math + + -    if n - r < r: -        r = n - r -    numerator = [n - r + k + 1 for k in range(r)] -    denominator = [k + 1 for k in range(r)] -    for p in range(2, r + 1): -        pivot = denominator[p - 1] -        if pivot > 1: -            offset = (n - r) % p -            for k in range(p - 1, r, p): -                numerator[k - offset] /= pivot -                denominator[k] /= pivot -    result = 1 -    for k in range(r): -        if numerator[k] > 1: -            result *= int(numerator[k]) -    return result +    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r)) -    tmp = (cmb(red + 1, i) % (10**9 + 7)) * (cmb(blue - 1, i - 1) % (10**9 + 7)) -    print((tmp % (10**9 + 7))) +    print( +        ( +            (cmb(red + 1, i) % (10**9 + 7)) +            * (cmb(blue - 1, i - 1) % (10**9 + 7)) +            % (10**9 + 7) +        ) +    )