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

MOD = 10**9 + 7

kai = []

kai.append(1)

for idx in range(1, N+5):

	kai.append((kai[idx-1] * idx) % MOD)



#Mod pow

#def modpow(ori, po, mod):

#	res = 1;

#	while(po > 0):

#		if(po&1):

#			res *= ori;

#			res %= mod;

#		ori *= ori;

#		ori %= mod;

#		po >>= 1;

#	return res;







comb = [[0] * 2005 for i in range(2005)]



def combination():

	for i in range(2000):

		comb[i][0] = 1;

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

			comb[i][j] = comb[i-1][j-1] + comb[i-1][j];

			comb[i][j] %= MOD











#def comb(n, k):

#	return (kai[n] * modpow(kai[k], MOD-2, MOD) * modpow(kai[n-k], MOD-2, MOD))%MOD



combination()



for i in range(K):

	blue=comb[K-1][i]%MOD

	red=comb[N-K+1][i+1]%MOD

	print(((blue*red)%MOD))
N, K = list(map(int, input().split()))

MOD = 10**9 + 7

kai = []

kai.append(1)

for idx in range(1, N+5):

	kai.append((kai[-1] * idx) % MOD)



#Mod pow

def modpow(ori, po):

	res = 1;

	while(po > 0):

		if(po&1):

			res *= ori

			res %= MOD

		ori *= ori

		ori %= MOD

		po >>= 1

	return res



def comb(n, k):

	if(n == 0 and k == 0):

		return 1

	if(n < k or n < 0):

		return 0

	ans = kai[n]

	ans *= modpow(kai[k], MOD-2)

	ans %= MOD

	ans *= modpow(kai[n-k], MOD-2)

	ans %= MOD

	return ans



for i in range(K):

	blue=comb(K-1, i)%MOD

	red=comb(N-K+1, i+1)%MOD

	print(((blue*red)%MOD))
N, K = list(map(int, input().split()))
MOD = 10**9 + 7
kai = []
kai.append(1)
for idx in range(1, N + 5):
    kai.append((kai[idx - 1] * idx) % MOD)
# Mod pow
# def modpow(ori, po, mod):
# 	res = 1;
# 	while(po > 0):
# 		if(po&1):
# 			res *= ori;
# 			res %= mod;
# 		ori *= ori;
# 		ori %= mod;
# 		po >>= 1;
# 	return res;
comb = [[0] * 2005 for i in range(2005)]


def combination():
    for i in range(2000):
        comb[i][0] = 1
        for j in range(1, i + 1):
            comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j]
            comb[i][j] %= MOD


# def comb(n, k):
# 	return (kai[n] * modpow(kai[k], MOD-2, MOD) * modpow(kai[n-k], MOD-2, MOD))%MOD
combination()
for i in range(K):
    blue = comb[K - 1][i] % MOD
    red = comb[N - K + 1][i + 1] % MOD
    print(((blue * red) % MOD))

N, K = list(map(int, input().split()))
MOD = 10**9 + 7
kai = []
kai.append(1)
for idx in range(1, N + 5):
    kai.append((kai[-1] * idx) % MOD)
# Mod pow
def modpow(ori, po):
    res = 1
    while po > 0:
        if po & 1:
            res *= ori
            res %= MOD
        ori *= ori
        ori %= MOD
        po >>= 1
    return res


def comb(n, k):
    if n == 0 and k == 0:
        return 1
    if n < k or n < 0:
        return 0
    ans = kai[n]
    ans *= modpow(kai[k], MOD - 2)
    ans %= MOD
    ans *= modpow(kai[n - k], MOD - 2)
    ans %= MOD
    return ans


for i in range(K):
    blue = comb(K - 1, i) % MOD
    red = comb(N - K + 1, i + 1) % MOD
    print(((blue * red) % MOD))

-    kai.append((kai[idx - 1] * idx) % MOD) +    kai.append((kai[-1] * idx) % MOD) -# def modpow(ori, po, mod): -# 	res = 1; -# 	while(po > 0): -# 		if(po&1): -# 			res *= ori; -# 			res %= mod; -# 		ori *= ori; -# 		ori %= mod; -# 		po >>= 1; -# 	return res; -comb = [[0] * 2005 for i in range(2005)] +def modpow(ori, po): +    res = 1 +    while po > 0: +        if po & 1: +            res *= ori +            res %= MOD +        ori *= ori +        ori %= MOD +        po >>= 1 +    return res -def combination(): -    for i in range(2000): -        comb[i][0] = 1 -        for j in range(1, i + 1): -            comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j] -            comb[i][j] %= MOD +def comb(n, k): +    if n == 0 and k == 0: +        return 1 +    if n < k or n < 0: +        return 0 +    ans = kai[n] +    ans *= modpow(kai[k], MOD - 2) +    ans %= MOD +    ans *= modpow(kai[n - k], MOD - 2) +    ans %= MOD +    return ans -# def comb(n, k): -# 	return (kai[n] * modpow(kai[k], MOD-2, MOD) * modpow(kai[n-k], MOD-2, MOD))%MOD -combination() -    blue = comb[K - 1][i] % MOD -    red = comb[N - K + 1][i + 1] % MOD +    blue = comb(K - 1, i) % MOD +    red = comb(N - K + 1, i + 1) % MOD