import std.stdio, std.string, std.conv;

immutable long mod = 1_000_000_007;

long powmod(long x, long y) {
    long result = 1;
    while (y > 0) {
        if (y & 1) result = result * x % mod;
        x = x * x % mod;
        y >>= 1;
    }
    return result;
}

long modinv(long x) {
    return powmod(x, mod-2);
}

long comb(long x, long y) {
    long a = 1, b = 1, c = 1;
    foreach (i; 0 .. x) {
        a = (a * (x - i)) % mod;
    }
    foreach (i; 0 .. y) {
        b = (b * (y - i)) % mod;
    }
    foreach (i; 0 .. x-y) {
        c = (c * (x - y - i)) % mod;
    }
    return a * modinv(b*c) % mod;
}

void main() {
    int[] tmp = readln.split.to!(int[]);
    int n = tmp[0], k = tmp[1];
    foreach (i; 0 .. k) {
        writeln((comb(n-k+1, i+1) * comb(k-1, i)) % mod);
    }
}