import Control.Applicative import Data.List main :: IO () main = solve <$> readLn >>= putStrLn solve :: Int -> String solve x | x > 31 = "0 0" | otherwise = unwords . map show $ [comb 31 x, comb 30 (x-1) * 2147483647] comb :: Int -> Int -> Int comb n m | m == 0 = 1 | n > 2 * m = comb n (n-m) | otherwise = foldl' f 1 $ zip [n-m+1 .. n] [1 .. m] where f a (i,j) = a * i `div` j