#include <iostream>
#include <cstdio>
#include <cstring>
#define ll long long
using namespace std;
const int mod = 1000000007;
ll dp[1000+10][10];
int main(int argc, char** argv) {
int n;
cin>>n;
memset(dp,0,sizeof(dp));
/*
0 2
1 2 0
2 2 3
2 1 //0就没有位置放了;
3 2 0 1
4 2 0 3
5 2 0 1 3 //0不能放在第二位
*/
for(int i = 1;i <=1000;i++){
dp[i][0] = 1;
dp[i][1] = (dp[i-1][0] + dp[i-1][1]*2)%mod;
dp[i][2] = (dp[i-1][0] + dp[i-1][2])%mod;
dp[i][3] = (dp[i-1][1] + dp[i-1][3]*2)%mod; //第二位只能放0,由状态1转换而来;
dp[i][4] = (dp[i-1][1] + dp[i-1][2] + dp[i-1][4]*2)%mod;
dp[i][5] = (dp[i-1][3] + dp[i-1][4] + dp[i-1][5]*2)%mod;
}
cout<<dp[n][5]<<endl;
return 0;
}