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 final long mod = (long)1e9+7;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt(); int ans = 0;
		long dp[][][][] = new long[n+1][4][4][4];
		for (int j = 0; j < 4; j++) {
			for (int k = 0; k < 4; k++) {
				for (int l = 0; l < 4; l++) {
					dp[1][j][k][l] = 1;
					dp[2][j][k][l] = 1;
					dp[3][j][k][l] = 1;
				}
			}
		}
		dp[3][0][1][2] = 0; dp[3][1][0][2] = 0; dp[3][0][2][1] = 0;
		for (int i = 3; i < n; i++) {
			for (int j = 0; j < 4; j++) {
				for (int k = 0; k < 4; k++) {
					for (int l = 0; l < 4; l++) {
						if(k!=0||l!=2) {
							dp[i+1][k][l][1] += dp[i][j][k][l];
						}
						if((k!=0||l!=1)&&(k!=1||l!=0)&&(j!=0||l!=1)&&(j!=0||k!=1)){
							dp[i+1][k][l][2] += dp[i][j][k][l];
						}
						dp[i+1][k][l][0] += dp[i][j][k][l];
						dp[i+1][k][l][3] += dp[i][j][k][l];
						for (int m = 0; m < 4; m++) dp[i+1][k][l][m] %= mod;
					}
				}
			}
		}
		for (int j = 0; j < 4; j++) {
			for (int k = 0; k < 4; k++) {
				for (int l = 0; l < 4; l++) {
					ans += dp[n][j][k][l];
					ans %= mod;
				}
			}
		}
		System.out.println(ans);
		sc.close();
	}
}