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

default_div = 10**9+7
count_arr=[]
# i箇所にjこの数を配置する。
1.upto(k+1) do |i|
  i_arr=[]
  0.upto([k-i+1,n-k-(i-1)+1].max) do |j|
    if j==0
      i_arr << 1
    elsif i==1
      i_arr << 1
    elsif i==2
      i_arr << j + 1
    else
      i_arr << count_arr[i-2][0..j].inject(:+) % default_div
    end
  end
  count_arr << i_arr
end
#puts count_arr.to_s

1.upto(k) do |i|
  # 青:i箇所に1個配置する
  #   残りの青(k-i)をi箇所に配置する組み合わせを求める
  # 赤:i-1箇所に１個配置する
  #   残りの赤(n-k-(i-1))をi+1箇所に配置する組み合わせを求める
  # ↑２つの積
  if n-k-(i-1)<0
    puts 0
    next
  end

  bl_conb = count_arr[i-1][k-i]
  red_conb = count_arr[i+1-1][n-k-(i-1)]

  puts bl_conb * red_conb % default_div
end