{-
  A,C,G,T にそれぞれ 0,1,2,3 を対応させ、4進で表現する。

  状態を文字列の最後3文字の状態遷移を考える。（状態数 4^3 = 64）
  遷移先が pqr だとすると、入力は r で遷移元は 0pq, 1pq, 2pq, 3pq

  どの遷移元からも許されない遷移先は 021, 012, 102
  遷移元 0pq からだけは許されない遷移先は 132, 112, 212, 312
-}

ds1 = [d (0,2,1), d (0,1,2), d (1,0,2)]
ds2 = [d (1,3,2), d (1,1,2), d (2,1,2), d (3,1,2)]

d (a,b,c) = 16 * a + 4 * b + c

dp3 = [if elem i ds1 then 0 else 1 | i <- [0..63]]

f xs = map g [0..63] where
  g i
    | elem i ds1 = 0
    | elem i ds2 = h [16,32,48]
    | otherwise = h [0,16,32,48]
    where
      pq = i `div` 4
      h os = sum [xs !! (pq + o) | o <- os] `mod` 1000000007

solve n =  (`mod` 1000000007) $ sum $ (!! (n - 3)) $ iterate f dp3

main = do
  n <- read <$> getLine
  print $ solve n