#include using namespace std; #define rep(i,n) for(int i = 0; i < n; i++) using ll = long long; using graph = vector>; const ll mod = 1000000007; const int INF = 1001001001; ll modpow(ll a, ll p){ ll ret = 1; while(p){ if(p&1) ret = ret * a % mod; a = a * a % mod; p >>= 1; } return ret; } ll dp[1000007]; int main() { dp[0] = 1; ll n; cin >> n; //i秒後にAにいる場合の数 for(int i = 0; i <= n; i++){ dp[i+1] = (mod + modpow(3, i) - dp[i]) % mod; } cout << dp[n] << endl; }