-- 剰余演算の分配則より (Wiki調べ) -- ab mod n = ((a mod n) (b mod n)) mod n factMod 0 = 1 factMod x = factMod (x - 1) * x `mod` (10^9 + 7) myMod a n = a `mod` n main = do str <- getLine let x = read str :: Integer print $ myMod (factMod x) (10^9 + 7)