local mod = 1000000007
local mfl = math.floor

local function bmul(x, y)
  local x0, y0 = x % 31623, y % 31623
  local x1, y1 = mfl(x / 31623), mfl(y / 31623)
  return (x1 * y1 * 14122 + (x1 * y0 + x0 * y1) * 31623 + x0 * y0) % mod
end

local function badd(x, y)
  return (x + y) % mod
end

local function bsub(x, y)
  return x < y and x - y + mod or x - y
end

local function modpow(src, pow)
  local res = 1
  while (0 < pow) do
    if (pow % 2 == 1) then
      res = bmul(res, src)
      pow = pow - 1
    end
    src = bmul(src, src)
    pow = mfl(pow / 2)
  end
  return res;
end

local function modinv(src)
  return modpow(src, mod - 2)
end

local function getComb(n, k)
  local ret = 1
  for i = 1, k do
    ret = bmul(ret, n + 1 - i)
    ret = bmul(ret, modinv(i))
  end
  return ret
end

local n, k = io.read("*n", "*n")
local red = n - k
local redres = {}
for i = 0, k do
  redres[1 + i] = getComb(red - 1, i)
end
local blue_cnt = 1
for i = 1, k do
  if 1 < i then
    blue_cnt = blue_cnt * (k - i + 1) / (i - 1)
  end
  local red_1 = redres[i]
  local red_2 = redres[i + 1]
  local red_3 = 0
  if i ~= 1 then
    red_3 = redres[i - 1]
  end
  local sum = bmul(blue_cnt, (red_1 * 2 + red_2 + red_3) % mod)
  print(sum)
end
