import std.stdio, std.conv, std.string, std.range, std.algorithm, std.array,
  std.functional, std.container, std.typecons;

enum MOD = 1000000007;

ulong f(ulong n) {
  if(n == 0) return 1;
  return (n * f(n-1)) % MOD;
}

/// a^{-1}
ulong r(ulong a) {
  ulong r = 1, b = a, k = MOD - 2;
  while(k > 0) {
    if(k & 1) r = (r * b) % MOD;
    b = (b * b) % MOD;
    k >>= 1;
  }
  return r;
}

ulong c(ulong n, ulong k) {
  return (f(n) * r((f(n-k) * f(k)) % MOD)) % MOD;
}

void main() {
  auto input = readln.split.to!(int[]);
  int N = input[0], K = input[1];

  ulong calc(int i) {
   return (c(N-K+1, i) * c(K-1, i-1)) % MOD;
  }

  foreach(i; 1..(K+1)) {
    calc(i).writeln;
  }
}
