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 {

    private static int MOD = 1_000_000_007;

    public static void main(String[] args) {
        final Scanner scanner = new Scanner(System.in);
        solve(scanner);
    }


    // int N = Integer.parseInt(scanner.nextLine());
    // int N = scanner.nextInt(), M = scanner.nextInt();
    // scanner.nextLine();
    // int[] n = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
    static void solve(Scanner scanner) {
        int N = Integer.parseInt(scanner.nextLine());
        // 0: Null, 1: A, 2: G, 3: C, 4: T
        long[][][][] dp = new long[N + 1][5][5][5];
        dp[0][0][0][0] = 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 = 1; m <= 4; m++) {
                            // AGC, ACG, GAC, A*GC, AG*C
                            if ((k == 1 && l == 2 && m == 3)
                                    || (k == 1 && l == 3 && m == 2)
                                    || (k == 2 && l == 1 && m == 3)
                                    || (j == 1 && l == 2 && m == 3)
                                    || (j == 1 && k == 2 && m == 3)) {
                                continue;
                            }
                            dp[i][k][l][m] += dp[i - 1][j][k][l];
                            dp[i][k][l][m] %= MOD;
                        }

                    }
                }
            }
        }
        long ans = 0;
        for (int i = 0; i <= 4; i++) {
            for (int j = 0; j <= 4; j++) {
                for (int k = 0; k <= 4; k++) {
                    ans += dp[N][i][j][k];
                    ans %= MOD;
                }
            }
        }
        System.out.println(ans);
    }

}
