import sys

sys.setrecursionlimit(100000)



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



red = n - blue



waru = 10**9+7



def cmb(n, r):

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

    if r == 0: return 1

    if r == 1: return n



    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





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

    if red + 1 < i:

        print((0)) 

    else:

        ans = cmb(red+1, i) * cmb(blue-1, i-1)

        #print(i)

        print((ans%waru))

from math import factorial

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



red = n - blue



mod = 10**9+7



def cmb(n, r):

    result = factorial(n) // (factorial(n-r)*factorial(r)) 

    return result





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

    if red + 1 < i:

        print((0)) 

    else:

        ans = cmb(red+1, i) * cmb(blue-1, i-1)

        #print(i)

        print((ans % mod))

import sys

sys.setrecursionlimit(100000)
n, blue = list(map(int, input().split()))
red = n - blue
waru = 10**9 + 7


def cmb(n, r):
    if n - r < r:
        r = n - r
    if r == 0:
        return 1
    if r == 1:
        return n
    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


for i in range(1, blue + 1, 1):
    if red + 1 < i:
        print((0))
    else:
        ans = cmb(red + 1, i) * cmb(blue - 1, i - 1)
        # print(i)
        print((ans % waru))

from math import factorial

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


def cmb(n, r):
    result = factorial(n) // (factorial(n - r) * factorial(r))
    return result


for i in range(1, blue + 1, 1):
    if red + 1 < i:
        print((0))
    else:
        ans = cmb(red + 1, i) * cmb(blue - 1, i - 1)
        # print(i)
        print((ans % mod))

-import sys +from math import factorial -sys.setrecursionlimit(100000) -waru = 10**9 + 7 +mod = 10**9 + 7 -    if n - r < r: -        r = n - r -    if r == 0: -        return 1 -    if r == 1: -        return n -    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]) +    result = factorial(n) // (factorial(n - r) * factorial(r)) -        print((ans % waru)) +        print((ans % mod))