main :: IO () main = do n <- readLn putStrLn $ if n < 50 then fact12 n else replicate 12 '0' prod12 :: String -> String -> String prod12 x y = reverse . take 12 . reverse . show $ xr*yr where xr = read x :: Int yr = read y :: Int fact12 :: Int -> String fact12 0 = "1" fact12 n = (show n) `prod12` fact12 (n-1)