output_description: Print K lines. The i-th line (1 \leq i \leq K) should contain the number of
  ways to arrange the N balls so that Takahashi will need exactly i moves to
  collect all the blue balls, modulo 10^9+7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
attempt: import sys
  
  stdin = sys.stdin
  
  sys.setrecursionlimit(10**7)
  
  
  def li():
      return map(int, stdin.readline().split())
  
  
  def li_():
      return map(lambda x: int(x) - 1, stdin.readline().split())
  
  
  def lf():
      return map(float, stdin.readline().split())
  
  
  def ls():
      return stdin.readline().split()
  
  
  def ns():
      return stdin.readline().rstrip()
  
  
  def lc():
      return list(ns())
  
  
  def ni():
      return int(stdin.readline())
  
  
  def nf():
      return float(stdin.readline())
  
  
  class CombTools(object):
      def __init__(self, cap: int, mod: int):
          self.cap = cap
          self.mod = mod
          self.inv = self._calc_inv()
          self.fac = self._calc_fac()
          self.fac_inv = self._calc_fac_inv()
  
      def _calc_inv(self):
          inv = [0, 1]
          for i in range(2, self.cap + 1):
              inv.append((self.mod - (self.mod // i) * inv[self.mod % i]) % self.mod)
  
          return inv
  
      def _calc_fac(self):
          fac = [1]
          for i in range(1, self.cap + 1):
              fac.append((i * fac[-1]) % self.mod)
  
          return fac
  
      def _calc_fac_inv(self):
          fac_inv = [1]
          for i in range(1, self.cap + 1):
              fac_inv.append((self.inv[i] * fac_inv[-1]) % self.mod)
  
          return fac_inv
  
      def nCr(self, n: int, r: int):
          # validation
          if r > n:
              raise ValueError("n must be larger than r (n={}, r={})".format(n, r))
  
          # calculation
          return self.fac[n] * self.fac_inv[n - r] * self.fac_inv[r] % self.mod
  
      def nPr(self, n: int, r: int):
          # validation
          if r > n:
              raise ValueError("n must be larger than r (n={}, r={})".format(n, r))
  
          # calculation
          return self.fac[n] * self.fac_inv[n - r] % self.mod
  
      def nHr(self, n: int, r: int):
          return self.nCr(n + r - 1, n)
  
  
  n, k = li()
  
  CAP = 10**5
  MOD = 10**9 + 7
  ct = CombTools(CAP, MOD)
  
  for i in range(1, k + 1):
      ans = ct.nHr(n - k - i + 1, i + 1) * ct.nHr(k - i, i)
      print(ans % MOD)
  
problem_description: Statement
  
  There are K blue balls and N-K red balls. The balls of the same color cannot
  be distinguished. Snuke and Takahashi are playing with these balls.
  
  First, Snuke will arrange the N balls in a row from left to right.
  
  Then, Takahashi will collect only the K blue balls. In one move, he can
  collect any number of consecutive blue balls. He will collect all the blue
  balls in the fewest moves possible.
  
  How many ways are there for Snuke to arrange the N balls in a row so that
  Takahashi will need exactly i moves to collect all the blue balls? Compute
  this number modulo 10^9+7 for each i such that 1 \leq i \leq K.
samples: [{"input": "5 3", "output": "3\n    6\n    1\n    \n\nThere are three ways to arrange the balls so that Takahashi will need exactly\none move: (B, B, B, R, R), (R, B, B, B, R), and (R, R, B, B, B). (R and B\nstands for red and blue, respectively).\n\nThere are six ways to arrange the balls so that Takahashi will need exactly\ntwo moves: (B, B, R, B, R), (B, B, R, R, B), (R, B, B, R, B), (R, B, R, B, B),\n(B, R, B, B, R), and (B, R, R, B, B).\n\nThere is one way to arrange the balls so that Takahashi will need exactly\nthree moves: (B, R, B, R, B).\n\n* * *"}, {"input": "2000 3", "output": "1998\n    3990006\n    327341989\n    \n\nBe sure to print the numbers of arrangements modulo 10^9+7."}]