#include <bits/stdc++.h>
using namespace std;
 
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define int long long

const int MOD = 1e9+7;

int n;
int cache[505][5][5][5];

int dp(int idx, int a, int b, int c) //Last, Second Last, Third Last
{
	if(idx==0)
		return 1;
	int &ans=cache[idx][a][b][c];
	if(ans != -1)
		return ans;
	ans = 0;
	for(int cur=0;cur<=3;cur++)
	{
		if(cur==b)
			continue;
		set<int> s;
		s.insert(a);
		s.insert(b);
		s.insert(c);
		s.insert(cur);
		if(s.size() == 4 && s.find(4)==s.end())
		{
			if(abs(a-c)==1 && abs(cur-b)==1)
				continue;
		}
		ans += dp(idx-1, b, c, cur);
		ans %= MOD;
	}
	return ans;
}

int32_t main()
{
	IOS;
	memset(cache, -1, sizeof(cache));
	for(int i=1;i<=10;i++)
		cerr<<dp(i, 4, 4, 4)<<endl;
	return 0;
}