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) throws Exception {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();

		// A, T, G, C
		long[][] dp = new long[n + 1][4];
		dp[1] = new long[]{1, 1, 1, 1};
		dp[2] = new long[]{4, 4, 4, 4};
		dp[3] = new long[]{16, 16, 15, 14};
		for (int i = 4; i <= n; i++) {
			// A, T
			long sum = 0;
			for (int j = 0; j < 4; j++) {
				sum += dp[i - 1][j];
			}
			sum = getMod(sum);
			dp[i][0] = sum;
			dp[i][1] = sum;

			// G
			dp[i][2] = getMod(sum - dp[i - 2][0] + dp[i - 3][2]);

			// C
			dp[i][3] = getMod(sum - dp[i - 2][0] - dp[i - 2][2] - dp[i - 3][0] * 3);
		}

		long sum = 0;
		for (int j = 0; j < 4; j++) {
			sum += dp[n][j];
		}
		sum = getMod(sum);
		System.out.println(sum);
	}

	static long getMod(long val) {
		int mod = 1000000007;
		while (val < 0) {
			val += mod;
		}
		return val % mod;
	}
}
