/*																													   
 Templatka c++ Kacper Fis																							   																											   //
*/																													  
#include <functional>																							   
#include <bits/stdc++.h>																							   
																													   
using namespace std; 																								   
																													   
const int INF = 1000000001;																						   
const float PI = 3.14;	
const int mod = 1e9+7;																							   
typedef long long LL;																								   
																													   
typedef vector<int> vi;																								   
typedef list<int> li;																								   
typedef queue<int> qi; 																								   
typedef pair<int,int> ii; 																							   
typedef map<string,int> msi; //np msi['nazwa'] = 'liczba'															   
typedef vector<ii> vii; //vector par<int>, do tworzenia tablicy dla grafów wagowych #dijkstra #Bellman_Ford			   
typedef priority_queue< ii, vector<ii>, greater<ii> > pq; //kolejka priorytetowa vectorów par(top()=min) #dijkstra																													   																				   list<int>::iterator it;																								   
																				   
vector<ii>::iterator iter;																							   
																													   																				   
#define print_list(x) for(it = (x).begin(); it != (x).end(); it++) {cout << *it << " ";}							   
#define print_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++) {cout << *it2 << " ";}						   
#define search_list(x) for(it = (x).begin(); it != (x).end(); it++)													   
#define search_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++);											   
#define pb(x) push_back(x) 																							   
#define pf(x) push_front(x)																							   
#define mp(x, y) make_pair(x, y)                                                                                       
///////////////////////////////////////////////GLOBAL DEFINITIONS//////////////////////////////////////////////////////

int dp[105][4][4][4];

///////////////////////////////////////////////FUNCTIONS/////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])																					 
{ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);                  												       
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	int n;
	cin >> n;
	dp[0][3][3][3] = 1;
	for(int i = 0; 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(dp[i][j][k][l] == 0) continue;
					for(int a = 0; a < 4; a++){
						if(a == 2 && j == 1 && k == 0) continue;
						if(a == 2 && j == 0 && k == 1) continue;
						if(a == 1 && j == 2 && k == 0) continue;
						if(a == 2 && j == 1 && l == 0) continue;
						if(a == 2 && k == 1 && l == 0) continue;
						
						dp[i+1][a][j][k] += dp[i][j][k][l];
						dp[i+1][a][j][k] %= mod;
					}
				}
						int 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;
											}cout << ans << endl;
						
	return 0;
}


Measured memory_bytes: 256