You are given an integer N. Find the number of strings of length N that satisfy the following conditions, modulo 10^9+7:

* The string does not contain characters other than `A`, `C`, `G` and `T`.
* The string does not contain `AGC` as a substring.
* The condition above cannot be violated by swapping two adjacent characters once.

Constraints

* 3 \leq N \leq 100

Input

Input is given from Standard Input in the following format:


N


Output

Print the number of strings of length N that satisfy the following conditions, modulo 10^9+7.

Examples

Input

3


Output

61


Input

4


Output

230


Input

100


Output

388130742
import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    long MOD = (long)Math.pow(10, 9) + 7;
    long[][][][] dp = new long[100][4][4][4];
    for(int j = 0; j < 4; j++) {
      for(int k = 0; k < 4; k++) {
        for(int l = 0; l < 4; l++) {
          if(!(((j == 0) && (k == 2) && (l == 1)) || ((j == 2) && (k == 0) && (l == 1)) || ((j == 0) && (k == 1) && (l == 2)))) dp[2][j][k][l] = 1;
        }
      }
    }
    for(int i = 3; i < 100; i++) {
      for(int j = 0; j < 4; j++) {
        for(int k = 0; k < 4; k++) {
          for(int l = 0; l < 4; l++) {
            if(!(((j == 0) && (k == 2) && (l == 1)) || ((j == 2) && (k == 0) && (l == 1)) || ((j == 0) && (k == 1) && (l == 2)))) {
              if(l == 1) {
                if(k == 2) {
                  long sum = 0;
                  for(int m = 1; m < 4; m++) {
                    sum = (sum + dp[i - 1][m][j][k]) % MOD;
                  }
                  dp[i][j][k][l] = sum;                 
                } else {
                  if(j == 2) {
                    long sum = 0;
                    for(int m = 1; m < 4; m++) {
                      sum = (sum + dp[i - 1][m][j][k]) % MOD;
                    }
                    dp[i][j][k][l] = sum;                   
                  } else {
                    long sum = 0;
                    for(int m = 0; m < 4; m++) {
                      sum = (sum + dp[i - 1][m][j][k]) % MOD;
                    }
                    dp[i][j][k][l] = sum;                    
                  }
                }
              } else {
                long sum = 0;
                for(int m = 0; m < 4; m++) {
                  sum = (sum + dp[i - 1][m][j][k]) % MOD;
                }
                dp[i][j][k][l] = sum;
              }
            }
          }
        }
      }
    }
    long ans = 0;
    for(int j = 0; j < 4; j++) {
      for(int k = 0; k < 4; k++) {
        for(int l = 0; l < 4; l++) {
          ans = (ans + dp[n - 1][j][k][l]) % MOD;
        }
      }
    }
    System.out.println(ans);
  }
}