#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int C = 1e7 + 10, MOD = 1000000007;
int N;
int p[4][4] = {// 状态转移矩阵
{1, 1, 1, 1},
{0, 0, 1, 1},
{0, 1, 0, 1},
{1, 0, 0, 0},
};
int f[C][4];
int main(){
cin >> N;
f[1][0] = 1;
for (int i = 2; i <= N + 1; i ++ ){
for (int j1 = 0; j1 < 1 << 2; j1 ++ ){
for (int j2 = 0; j2 < 1 << 2; j2 ++ ){
f[i][j1] = (f[i][j1] + f[i - 1][j2] * p[j2][j1]) % MOD;
}
}
}
cout << f[N + 1][0];
return 0;
}