fun main(args: Array<String>)
{
    val (n, k) = readNInts()

    val mod = 1000000007L
    val c = Array<LongArray>(2001, { LongArray(2001) })
    for (i in 0..2000) {
        for (r in 0..i) {
            if (r == 0 || r == i) {
                c[i][r] = 1L
                continue
            }

            c[i][r] = c[i-1][r-1] + c[i-1][r] % mod
        }
    }

    for (i in 1..k) {
        val a = c[n-k+1][i] % mod
        val b = c[k-1][i-1] % mod

        val ans: Long = (a * b) % mod
        println(ans)
    }
}


// Read an integer
// Usage: val a = readInt()
private fun readInt() = readLine()!!.toInt()

// Read N integers separated by " "
// Usage: val (a, b, c) = readNInts()
private fun readNInts() = readLine()!!.split(" ").map(String::toInt)

// Read a string
// Usage: val a = readString()
private fun readString() = readLine()!!
