#import <Foundation/Foundation.h>
typedef long long INT;
#define M 1000000007
INT getBinomial(NSArray *binomials, INT index){
    if (index < 0 || index >= [binomials count]) {
        return 0;
    }
    return [[binomials objectAtIndex:index] longLongValue];
}
int main(){
    @autoreleasepool {
        INT n,k;
        scanf("%lld %lld",&n,&k);
        NSMutableArray *binomials = [NSMutableArray arrayWithObject:@[@1]];
        NSMutableArray *previousBinomials = [NSMutableArray arrayWithObject:@1];
        for(INT m=1;m<=MAX(n-k+1,k-1);m++){
            NSMutableArray *currentBinomials = [NSMutableArray array];
            for(INT j=0;j<=m;j++){
                INT b = (getBinomial(previousBinomials, j) + getBinomial(previousBinomials, j-1)) % M;
                [currentBinomials addObject:@(b)];
            }
            [binomials addObject:currentBinomials];
            previousBinomials = currentBinomials;
        }
        for(INT i=1;i<=k;i++){
            if(i>n-k+1) {
                puts("0");
                continue;
            }
            printf("%lld\n", [[[binomials objectAtIndex:n-k+1] objectAtIndex:i] longLongValue] * [[[binomials objectAtIndex:k-1] objectAtIndex:i-1] longLongValue] % M);
        }
    }
}
