fun readInts() = readLine()!!.split(' ').map(String::toInt)

fun pascalsTriangle(size: Int): Array<LongArray> {
    val t = Array(size) { LongArray(it + 1) }
    if (size == 0) return t
    t[0][0] = 1L
    for (y in 1 until size) {
        val p = t[y - 1]
        val q = t[y]
        for (x in 0 until y) {
            val a = p[x] + q[x]
            val b = p[x] + q[x + 1]
            q[x] = if (a < 1000000007L) a else a - 1000000007L
            q[x + 1] = if (b < 1000000007L) b else b - 1000000007L
        }
    }
    return t
}

fun main(args: Array<String>) {
    val (n, k) = readInts()
    val m = n - k
    val pt = pascalsTriangle(n + 1)
    fun c(n: Int, m: Int): Long {
        if (pt.size <= n || pt[n].size <= m) return 0
        return pt[n][m]
    }
    for (i in 1..k) {
        val blue = c(k - 1, i - 1)
        val red = c(m + 1, i)
        println(blue * red % 1000000007L)
    }
}
