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.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    final long M = 1_000_000_007;
    int N = scanner.nextInt();
    long[][][][] dp = new long[N + 1][4][4][4];
    dp[0][3][3][3] = 1;
    for (int i = 1; i <= N; i++) {
      for (int j = 0; j < 4; j++) {
        for (int k = 0; k < 4; k++) {
          for (int l = 0; l < 4; l++) {
            for (int m = 0; m < 4; m++) {
              if (k == 0 && l == 1 && m == 2) continue;
              if (k == 0 && l == 2 && m == 1) continue;
              if (k == 1 && l == 0 && m == 2) continue;
              if (j == 0 && k == 1 && m == 2) continue;
              if (j == 0 && l == 1 && m == 2) continue;
              dp[i][k][l][m] += dp[i - 1][j][k][l];
              if (dp[i][k][l][m] >= M) dp[i][k][l][m] -= M;
            }
          }
        }
      }
    }
    long res = 0;
    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < 4; j++) {
        for (int k = 0; k < 4; k++) {
          res += dp[N][i][j][k];
          if (res >= M) res -= M;
        }
      }
    }
    System.out.println(res);
  }
}
