'use strict'
const ncr = (n, r, mod) => {
  mod = mod || 1e9+7
  const a = Math.max(n, r)
  const b = Math.min(n, r)
  const p = Math.min(b, a-b)
  const nu = new Array(p + 1)
  const de = new Array(p + 1)
  let dest = 1
  if (p > 0) {
    for (let i = 1; i <= p; i++) {
      nu[i] = a - p + i 
      de[i] = i
    }
    for (let k = 2; k <= p; k++) {
      const piv = de[k]
      const j = (piv > 1) ? -((a - p) % k) : 0
      for (let i = k; i <= p; i += k) {
        nu[i + j] /= piv; de[i] /= piv
      }
    }
    for (let i = 1; i <= p; i++) {
      if (nu[i] > 1) dest = dest * nu[i] % mod
    }
  }
  return dest
}

function main(input) {
  input = input.trim().split(' ')
  const N = Number(input[0])
  const K = Number(input[1])

  for (let i = 1; i <= K; i++) {
    console.log(ncr(N - K + 1, i) * ncr(K-1, i-1))
  }
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
