import Control.Applicative import Data.List main :: IO () main = solve <$> readLn <*> readLn >>= print solve :: Integer -> Integer -> Integer solve n m = comb m (n `mod` (m * 1000) `div` 1000) comb :: Integer -> Integer -> Integer comb n m | n < m = 0 | m == 0 = 1 | n < 2 * m = comb n (n - m) | otherwise = flip mod d $ foldl' f 1 $ zip [n-m+1 .. n] [1 .. m] where f c (x, y) = c * x `div` y d = 10 ^ 9