import Data.Bits
import Data.List
import Control.Monad
import qualified Data.Vector.Unboxed as V
import Control.Monad.ST
import Data.Maybe (fromMaybe)
import qualified Data.ByteString.Lazy.Char8 as B
import Debug.Trace

main :: IO ()
main = do
  [n,k] <- map read.words <$> getLine :: IO [Int]
  let fact = V.fromList $ scanl (\x y -> mod' $ x * y) 1 [1..1999]
      perm a b = (fact V.! a)  `div` (fact V.! (a - b))
      comb a b = if (a-b) < 0 || b < 0 then 0 else (perm a b) `div` (fact V.! b)
  forM_ [1..k] $ \i -> do
    putStrLn $ show $ comb (k-1) (i-1) * ((comb (n-k-1) (i-2)) + 2*(comb (n-k-1) (i-1)) + (comb (n-k-1) i))

mod' :: Int -> Int
mod' n = if n < 1000000007 then n else n `mod` 1000000007
