import Control.Applicative ((<$>)) import Data.List (foldl') main :: IO () main = solve <$> readLn >>= print solve :: Int -> Int solve n = fst $ foldl' f (1, (1, 0)) [2 .. n] where m = 1000000007 f (_, (so, se)) x | even x = let a = x * so `mod` m in (a, (so, (se + a) `mod` m)) | otherwise = let a = x * se `mod` m in (a, ((so + a) `mod` m, se))