import qualified Data.List as List main :: IO () main = do n <- readLn :: IO Integer print $ facMod 1000000007 n facMod :: Integer -> Integer -> Integer facMod n x = List.foldl' (prodMod n) 1 [1..x] prodMod :: Integer -> Integer -> Integer -> Integer prodMod n x y = ((x `mod` n) * (y `mod` n)) `mod` n