MOD =  10**9+7

def power(n, k)
  return 1 if k.zero?
  if k.even?
   power(n, k/2)**2%MOD
  else
    n*power(n,(k-1)/2)**2%MOD
  end
end

n, k = gets.strip.split.map(&:to_i)

@fac = [1, 1]
2.upto(n) do |num|
  @fac[num] = num * @fac[num-1] %MOD
end

#p @fac

@ifac = [1, 1]
@ifac [n] = power(@fac[n], MOD-2)%MOD
(n-1).downto(2) do |num|
  @ifac[num] = @ifac[num+1] * (num+1) % MOD
end

def comb(n, k)
  return 0 if n<k || n<0 || k<0
  up = @fac[n] % MOD
  down = (@ifac[n-k] * @ifac[k]) % MOD
  (up*down) % MOD
end


# n-k個並んだ赤いボールの両端を含めたn-k+1個のスペースから、i個選ぶ
# k個をそれらのスペースに配置する
# そのパターン数は 両端を含まないk-1個のスペースに(i-1)個の仕切をはさむのと同じ
# (n-k+1)Ci * (k-1)C(i-1) が任意のiに対するボールの配置パターン数

(1..k).each do |i|
  p (comb(n-k+1, i) * comb(k-1, i-1)) % MOD
end



