from operator import mul

from functools import reduce



MOD = 10**9 + 7



def cmb(n, r):

    if n < r:

        return 0

    r = min(n-r, r)

    if r == 0:

        return 1

    numer = reduce(mul, list(range(n, n-r, -1)))

    denom = reduce(mul, list(range(1, r+1)))

    return numer // denom % MOD



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

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

    print((cmb(K-1, i-1) * cmb(N-K+1, i) % MOD))
from operator import mul

from functools import reduce

MOD = 10 ** 9 + 7



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



def cmb(n, r):

    if n < r:

        return 0

    r = min(r, n-r)

    if r == 0:

        return 1

    nume = reduce(mul, list(range(n, n-r, -1)))

    deno = reduce(mul, list(range(1, r+1)))

    

    return nume // deno % MOD



# 赤いボールの間と両端（N-K+1）の中からi個を選ぶ

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

    print((cmb((N-K+1), i) * cmb((K-1), i-1) % MOD))
from operator import mul
from functools import reduce

MOD = 10**9 + 7


def cmb(n, r):
    if n < r:
        return 0
    r = min(n - r, r)
    if r == 0:
        return 1
    numer = reduce(mul, list(range(n, n - r, -1)))
    denom = reduce(mul, list(range(1, r + 1)))
    return numer // denom % MOD


N, K = list(map(int, input().split()))
for i in range(1, K + 1):
    print((cmb(K - 1, i - 1) * cmb(N - K + 1, i) % MOD))

from operator import mul
from functools import reduce

MOD = 10**9 + 7
N, K = list(map(int, input().split()))


def cmb(n, r):
    if n < r:
        return 0
    r = min(r, n - r)
    if r == 0:
        return 1
    nume = reduce(mul, list(range(n, n - r, -1)))
    deno = reduce(mul, list(range(1, r + 1)))
    return nume // deno % MOD


# 赤いボールの間と両端（N-K+1）の中からi個を選ぶ
for i in range(1, K + 1):
    print((cmb((N - K + 1), i) * cmb((K - 1), i - 1) % MOD))

+N, K = list(map(int, input().split())) -    r = min(n - r, r) +    r = min(r, n - r) -    numer = reduce(mul, list(range(n, n - r, -1))) -    denom = reduce(mul, list(range(1, r + 1))) -    return numer // denom % MOD +    nume = reduce(mul, list(range(n, n - r, -1))) +    deno = reduce(mul, list(range(1, r + 1))) +    return nume // deno % MOD -N, K = list(map(int, input().split())) +# 赤いボールの間と両端（N-K+1）の中からi個を選ぶ -    print((cmb(K - 1, i - 1) * cmb(N - K + 1, i) % MOD)) +    print((cmb((N - K + 1), i) * cmb((K - 1), i - 1) % MOD))