// 从深度为2开始,当前叶子节点为2个。每加一层,每个叶子节点会增加三条路径
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int n;
int main(){
    cin>>n;
    if(n==1) cout<<0;
    else if(n==2) cout<<1;
    else{
        long long yezi=2,ans=1;
        for(int i=3;i<=n;i++){
            ans=(ans+yezi*3)%mod;
            yezi=(yezi*2)%mod;
        }
        cout<<ans%mod;
    }
    return 0;
}