Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def C(n,m):
    arr = np.zeros((n+1,m+1),int)
    arr[0][0] = 1 
    i = 1 
    while(i < n+1):
        arr[i][0] = 1 
        j = 1 
        while(j< i+1):
            arr[i][j] = (arr[i-1][j] + arr[i-1][j-1]) % MAX 
            j+=1 
        i+=1 
    return(arr)  

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

arr = C(2000,2000)

for i in range(k):
    ans = ( arr[n-k+1][i+1] * arr[k-1][i] ) % MAX 
    print (ans)



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Runtime Error):
#atcoder_RedAndBlueBalls

import numpy as np 
from math import factorial as fact

MAX = pow(10,9)+7


def C(n,m):
    return (fact(n)//(fact(m)*fact(n-m))) 

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

for i in range(k):
    ans = (C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7
def fact(n):
    acc = 1 
    for i in range(n):
        acc*=i+1 
    return acc

def C(n,m):
    return (fact(n)//(fact(m)*fact(n-m))) 

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

for i in range(k):
    ans = (C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def C(n,m):
    arr = np.zeros((n+1,m+1),int)
    arr[0][0] = 1 
    i = 1 
    while(i < n+1):
        arr[i][0] = 1 
        j = 1 
        while(j< m+1):
            arr[i][j] = (arr[i-1][j] + arr[i-1][j-1]) % MAX 
            j+=1 
        i+=1 
    return(arr)  

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

arr = C(max(n-k+1,k-1),k) 

for i in range(k):
    ans = ( arr[n-k+1][i+1] * arr[k-1][i] ) % MAX 
    print(ans) 



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def C(n,m):
    arr = np.zeros((n+1,m+1),int)
    arr[0][0] = 1 
    i = 1 
    while(i < n+1):
        arr[i][0] = 1 
        j = 1 
        while(j< m+1):
            arr[i][j] = (arr[i-1][j] + arr[i-1][j-1]) % MAX 
            j+=1 
        i+=1 
    return(arr)  

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

arr = C(max(n-k+1,k-1),k) 

for i in range(k):
    ans = ( arr[n-k+1][i+1] * arr[k-1][i] ) % MAX 
    print(ans) 



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def C(n,m):
    arr = np.zeros((n+1,m+1),int)
    arr[0][0] = 1 
    i = 1 
    while(i < n+1):
        arr[i][0] = 1 
        j = 1 
        while(j< m+1):
            arr[i][j] = (arr[i-1][j] + arr[i-1][j-1]) % MAX 
            j+=1 
        i+=1 
    return(arr[n][m])  

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

for i in range(k):
    ans = (C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print(ans) 



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)

Buggy python submission (verdict: Time Limit Exceeded):
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def C(n,m):
    arr = np.zeros((n+1,m+1),int)
    arr[0][0] = 1 
    i = 1 
    while(i < n+1):
        arr[i][0] = 1 
        j = 1 
        while(j< m+1):
            arr[i][j] = (arr[i-1][j] + arr[i-1][j-1]) % MAX 
            j+=1 
        i+=1 
    return(arr[n][m])  

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

for i in range(k):
    ans = (C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print(ans) 



Fixed submission:
#atcoder_RedAndBlueBalls

import numpy as np 

MAX = pow(10,9)+7

def fact(n):
    ls = [1] 
    for i in range(1,n+1):
        ls.append(ls[i-1]*i) 
    return(ls) 

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

ls = fact(2000)

def C(n,m):
    return ((ls[n]//(ls[m]*ls[n-m])) % MAX)

for i in range(k):
    ans = ( C(n-k+1,i+1) * C(k-1,i) ) % MAX 
    print (ans)