main = readLn >>= print . ps ps 1 = 2 ps n | odd n = center *% inner *% outer | otherwise = inner *% outer where center = 3 inner = powMod 5 (div n 2 - 1) outer = if n > 1 then 4 else 1 modulus :: Integer modulus = 1000000007 (+%) :: Integer -> Integer -> Integer (+%) x y = mod (x + y) modulus (*%) :: Integer -> Integer -> Integer (*%) x y = mod (x * y) modulus powMod :: Integer -> Integer -> Integer powMod x n | n == 0 = 1 | odd n = x *% powMod x (n-1) | otherwise = let y = powMod x (div n 2) in y *% y