fun main(args: Array<String>) {
    val MOD = 1000000007L
    val SIZE = 2002
    val c = Array<LongArray>(SIZE+1) { LongArray(SIZE+1) }
    c[0][0] = 1
    for (i in 0 until SIZE) {
        for (j in 0 until SIZE) {
            c[i + 1][j] += c[i][j]
            c[i + 1][j] %= MOD
            c[i + 1][j + 1] += c[i][j]
            c[i + 1][j + 1] %= MOD
        }
    }
    fun comb(n: Int, k: Int): Long = if (n < k) 0 else c[n][k]
    fun f2(n: Int, k: Int): Long = comb(n + k - 1, k - 1)
    fun f(n: Int, k: Int): Long = if (k < 1) 0 else f2(n-k, k)

    val (N, K) = listOfInt()
    for (i in 1..K) {
        val blue = f(K, i)
        val red = f2(N - K - (i - 1), i + 1)
        val ans = blue * red % MOD
        println(ans)
    }
}
fun next() = readLine()!!
fun listOfString() = next().split(" ")
fun listOfInt() = listOfString().map { Integer.parseInt(it) }
