/// no time to waste
#include <bits/stdc++.h>
using namespace std;
const int MX = 1e5 + 7;
const int MOD = 1e9 + 7;
int n;
long long dp[MX][4][2];
/// dp[i][j][k] : số lượng số may mắn độ dài i, kết thúc bằng số j, và tổng % 2 đang là k
/// i = [0...n] | j = [1...3] | k = [0, 1]
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
freopen("mayman.inp", "r", stdin);
freopen("mayman.out", "w", stdout);
cin >> n;
dp[1][1][1] = dp[1][3][1] = dp[1][2][0] = 1;
for(int i=2;i<=n;i++) {
for(int j=1;j<=3;j++) {
for(int last_number = 1; last_number <= 3; last_number++) {
if(last_number == j && j == 3) {
continue;
/// đề không cho 2 số 3 cạnh nhau
}
for(int k=0;k<2;k++) {
int new_sum_mod_2 = (k + j) % 2;
dp[i][j][new_sum_mod_2] += dp[i - 1][last_number][k];
}
}
dp[i][j][0] %= MOD;
dp[i][j][1] %= MOD;
}
}
cout << (dp[n][1][0] + dp[n][2][0] + dp[n][3][0]) % MOD;
return 0;
}
Ly8vIG5vIHRpbWUgdG8gd2FzdGUKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTVggPSAxZTUgKyA3Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKaW50IG47CmxvbmcgbG9uZyBkcFtNWF1bNF1bMl07Ci8vLyBkcFtpXVtqXVtrXSA6IHPhu5EgbMaw4bujbmcgc+G7kSBtYXkgbeG6r24gxJHhu5kgZMOgaSBpLCBr4bq/dCB0aMO6YyBi4bqxbmcgc+G7kSBqLCB2w6AgdOG7lW5nICUgMiDEkWFuZyBsw6AgawovLy8gaSA9IFswLi4ubl0gIHwgIGogPSBbMS4uLjNdICB8ICBrID0gWzAsIDFdCgppbnQzMl90IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApLCBjb3V0LnRpZSgwKTsKICAgIGZyZW9wZW4oIm1heW1hbi5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIm1heW1hbi5vdXQiLCAidyIsIHN0ZG91dCk7CgogICAgY2luID4+IG47CiAgICBkcFsxXVsxXVsxXSA9IGRwWzFdWzNdWzFdID0gZHBbMV1bMl1bMF0gPSAxOwogICAgZm9yKGludCBpPTI7aTw9bjtpKyspIHsKICAgICAgICBmb3IoaW50IGo9MTtqPD0zO2orKykgewogICAgICAgICAgICBmb3IoaW50IGxhc3RfbnVtYmVyID0gMTsgbGFzdF9udW1iZXIgPD0gMzsgbGFzdF9udW1iZXIrKykgewogICAgICAgICAgICAgICAgaWYobGFzdF9udW1iZXIgPT0gaiAmJiBqID09IDMpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAvLy8gxJHhu4Ega2jDtG5nIGNobyAyIHPhu5EgMyBj4bqhbmggbmhhdQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvcihpbnQgaz0wO2s8MjtrKyspIHsKICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3N1bV9tb2RfMiA9IChrICsgaikgJSAyOwogICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdW25ld19zdW1fbW9kXzJdICs9IGRwW2kgLSAxXVtsYXN0X251bWJlcl1ba107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZHBbaV1bal1bMF0gJT0gTU9EOwogICAgICAgICAgICBkcFtpXVtqXVsxXSAlPSBNT0Q7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgKGRwW25dWzFdWzBdICsgZHBbbl1bMl1bMF0gKyBkcFtuXVszXVswXSkgJSBNT0Q7CiAgICByZXR1cm4gMDsKfQ==