#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;
}