#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define FOR(i,a,b) for(ll i = (a);i <= (b);i++)
#define FOD(i,a,b) for(ll i = (b);i >= (a);i--)
#define el '\n'
const ll mang = 1e7 + 5;
const ll MAX = 1e18;
const ll MOD = 1e9 + 7;
ll n,k;
int main(){
cin.tie(0) -> sync_with_stdio(0);
// freopen("TREE.INP","r",stdin);
// freopen("TREE.OUT","w",stdout);
cin >> n;
ll prev0 = 1,prev1 = 0,prev2 = 0,prev3 = 0;
FOR(i,1,n){
ll x0 = prev0;
ll x1 = prev1;
ll x2 = prev2;
ll x3 = prev3;
prev0 = (x1 + x2 + x3) % MOD;
prev1 = (x0 + x2 + x3) % MOD;
prev2 = (x0 + x1 + x3) % MOD;
prev3 = (x0 + x1 + x2) % MOD;
}
cout << prev0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwojZGVmaW5lIEZPUihpLGEsYikgZm9yKGxsIGkgPSAoYSk7aSA8PSAoYik7aSsrKQojZGVmaW5lIEZPRChpLGEsYikgZm9yKGxsIGkgPSAoYik7aSA+PSAoYSk7aS0tKQojZGVmaW5lIGVsICdcbicKY29uc3QgbGwgbWFuZyA9IDFlNyArIDU7CmNvbnN0IGxsIE1BWCA9IDFlMTg7CmNvbnN0IGxsIE1PRCA9IDFlOSArIDc7CmxsIG4sazsKaW50IG1haW4oKXsKICAgIGNpbi50aWUoMCkgLT4gc3luY193aXRoX3N0ZGlvKDApOwovLyAgICBmcmVvcGVuKCJUUkVFLklOUCIsInIiLHN0ZGluKTsKLy8gICAgZnJlb3BlbigiVFJFRS5PVVQiLCJ3IixzdGRvdXQpOwogICAgY2luID4+IG47CiAgICBsbCBwcmV2MCA9IDEscHJldjEgPSAwLHByZXYyID0gMCxwcmV2MyA9IDA7CiAgICBGT1IoaSwxLG4pewogICAgICAgIGxsIHgwID0gcHJldjA7CiAgICAgICAgbGwgeDEgPSBwcmV2MTsKICAgICAgICBsbCB4MiA9IHByZXYyOwogICAgICAgIGxsIHgzID0gcHJldjM7CiAgICAgICAgcHJldjAgPSAoeDEgKyB4MiArIHgzKSAlIE1PRDsKICAgICAgICBwcmV2MSA9ICh4MCArIHgyICsgeDMpICUgTU9EOwogICAgICAgIHByZXYyID0gKHgwICsgeDEgKyB4MykgJSBNT0Q7CiAgICAgICAgcHJldjMgPSAoeDAgKyB4MSArIHgyKSAlIE1PRDsKCiAgICB9CiAgICBjb3V0IDw8IHByZXYwOwoKfQo=