# 順次計算するのでキャッシュしたら早くなる か？
@combi_cache = Hash::new{|h,k| h[k] = {}}

# aCb
def combi(a, b)
  return 0 if b<0 || a<b
  return @combi_cache[a][b] if @combi_cache[a][b]

  @combi_cache[a][b] = b == 0 ? 1 : combi(a, b - 1) * (a - b + 1) / b
end

# aをb個の1以上の整数に分ける場合の数
def count_how_to_split(a, b)
  # 単に組み合わせの数になる
  # 理由は、
  # 1. x < aをb-1個に分けると、あと(a-x)を足せばaになるので、b番目の数は一意に決まる
  # count_how_to_split(a, b) = sum (count_how_to_split(x, b-1)) | x=1..a-1
  # 2. = sum (count_how_to_split(x, b-1)) | x=1..a-2 + count_how_to_split(a-1, b-1)
  #    = count_how_to_split(a-1, b) + count_how_to_split(a-1, b-1)
  # 3. b=1なら1通りしかない
  # 4. a==bなら1通り(1+1+...+1)しかない
  # 5. a<bなら0通り
  # 6. 2-5を考慮すると、パスカルの三角形になる
  #
  #   b 1 2
  # a
  # 1   1
  # 2   1 1
  # 3   1 2 1
  # 3   1 3 3 1
  #
  # よって、結果は(a-1,b-1)の組み合わせの数と等しい

  combi(a - 1, b - 1)
end


def count_positions(n,k,i)
  blue = k
  red = n - k
  d(blue,i) * #blueのパターンは1通り
    (d(red, i+1) + #redのパターンは両端が赤の場合
     d(red,i) * 2 + #どちらかの端のみ赤の場合
     d(red,i-1) # 両端青の場合
    ) % (10**9+7)
end

N,K = gets
(1..K).each do |i|
  puts count_positions(N,K,i)
end