"use strict";
function I(s,f){this._s=s.split("\n");this._c=0;this._l=0;this._f=f||Number}I.prototype.a=function(){var l=this._s[this._l];if(!l)return;var t=l.trim().split(" ");var a=t[this._c];this._c++;if(t.length===this._c){this._c=0;this._l++}return this._f(a)};I.prototype.l=function(){var l=this._s[this._l];if(!l)return;this._c=0;this._l++;return l.split(" ").map(this._f)};module.exports=I;

function main(input) {
  const o = new I(input, String);

  const N = o.a();

  const dp = [];
  dp[2] = [4, 4, 1, 3, 4];
  dp[3] = [16, 15, 3, 11, 16];
  
  for(let i = 4; i <= N; i++) {
    dp[i] = [];
    // __A
    dp[i][0] = (dp[i-1][0] + dp[i-1][1] + dp[i-1][2] + dp[i-1][3] + dp[i-1][4]) % 1000000007

    // __G
    dp[i][1] = (dp[i-1][0] - dp[i-2][2] + dp[i-1][1] + dp[i-1][3] - dp[i-2][2] + dp[i-1][4] - dp[i-2][2]) % 1000000007

    // _AC
    dp[i][2] = (dp[i-1][0] - dp[i-2][1]) % 1000000007

    // __C
    dp[i][3] = (dp[i-1][1] - dp[i-2][0] + dp[i-1][2] + dp[i-1][3] + dp[i-1][4]) % 1000000007

    // __T
    dp[i][4] = (dp[i-1][0] + dp[i-1][1] + dp[i-1][2] + dp[i-1][3] + dp[i-1][4]) % 1000000007
  }

  console.log(dp[N].reduce((acc, cur) => (cur + acc)% 1000000007 ));
}


main(require("fs").readFileSync("/dev/stdin", "utf8"));
