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 {
    static final int MOD = 1000000007;
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[][][][] dp = new int[4][4][4][n];
	    for (int a = 0; a < 4; a++) {
	        for (int b = 0; b < 4; b++) {
	            for (int c = 0; c < 4; c++) {
	                if (a == 0 && b == 1 && c == 2) {
	                    continue;
	                } else if (a == 1 && b == 0 && c == 2) {
	                    continue;
	                } else if (a == 0 && b == 2 && c == 1) {
	                    continue;
	                }
	                dp[a][b][c][2] = 1;
	            }
	        }
	    }
		for (int i = 3; i < n; i++) {
		    for (int a = 0; a < 4; a++) {
		        for (int b = 0; b < 4; b++) {
		            for (int c = 0; c < 4; c++) {
    		            for (int d = 0; d < 4; d++) {
    		                if (a == 0 && c == 1 && d == 2) {
    		                    continue;
    		                } else if (a == 0 && b == 1 && d == 2) {
    		                    continue;
    		                } else if (b == 0 && c == 1 && d == 2) {
    		                    continue;
    		                } else if (b == 1 && c == 0 && d == 2) {
    		                    continue;
    		                } else if (b == 0 && c == 2 && d == 1) {
    		                    continue;
    		                }
    		                dp[b][c][d][i] += dp[a][b][c][i - 1];
    		                dp[b][c][d][i] %= MOD;
    		            }
		            }
		        }
		    }
		}
		int count = 0;
	    for (int a = 0; a < 4; a++) {
	        for (int b = 0; b < 4; b++) {
	            for (int c = 0; c < 4; c++) {
	                count += dp[a][b][c][n - 1];
	                count %= MOD;
	            }
	        }
	    }
	    System.out.println(count);
   }
}


