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



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





a = N - K + 1

b = K - 1

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

    if i > a:

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

            print((0))

        break

    print(((cmb(a, i) * cmb(b, i - 1)) % 1000000007))

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

mod = 10 ** 9 + 7



a = N - K + 1

b = 1

print(a)

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

    a = a * (N - K + 2 - i) // i

    b = b * (K - i + 1) // (i - 1)

    print((a * b % mod))
N, K = tuple(map(int, input().split()))


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


a = N - K + 1
b = K - 1
for i in range(1, K + 1):
    if i > a:
        for j in range(i, K + 1):
            print((0))
        break
    print(((cmb(a, i) * cmb(b, i - 1)) % 1000000007))

N, K = list(map(int, input().split()))
mod = 10**9 + 7
a = N - K + 1
b = 1
print(a)
for i in range(2, K + 1):
    a = a * (N - K + 2 - i) // i
    b = b * (K - i + 1) // (i - 1)
    print((a * b % mod))

-N, K = tuple(map(int, input().split())) - - -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 - - +N, K = list(map(int, input().split())) +mod = 10**9 + 7 -b = K - 1 -for i in range(1, K + 1): -    if i > a: -        for j in range(i, K + 1): -            print((0)) -        break -    print(((cmb(a, i) * cmb(b, i - 1)) % 1000000007)) +b = 1 +print(a) +for i in range(2, K + 1): +    a = a * (N - K + 2 - i) // i +    b = b * (K - i + 1) // (i - 1) +    print((a * b % mod))