#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define RALL(x) (x).rbegin(),(x).rend() #define ALL(x) (x).begin(),(x).end() #define repp(i,n) for(int (i)=1;(i)<=(n);(i)++) #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define rev(i,n) for(int (i)=(n-1);(i)>=0;(i)--) #define clr(a) memset((a), 0 ,sizeof(a)) #define found(s,e) ((s).find(e)!=(s).end()) typedef pair P; typedef vector > pii; typedef map mdi; const int mod=1000000007; int main(){ int n; vector dp(3); dp[0]=1; cin >> n; for(int i=0;i dp2(3); for(int j=0;j<3;j++){ if(j>0){ dp2[0]+=dp[j]; dp2[0]%=mod; } if(j<2){ dp2[j+1]+=dp[j]; dp2[j+1]%=mod; } } dp.swap(dp2); } int ans=0; for(int i=0;i<3;i++){ ans+=dp[i]; ans%=mod; } cout << ans << endl; return 0; }