#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>

using namespace std;

#define sz size()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(c) (c).begin(), (c).end()
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define clr(a, b) memset((a), (b) ,sizeof(a))

#define MOD 1000000007

long long dp[1000005][10];

int main(){
  int n;
  cin>>n;
  n++;
  clr(dp,0);
  dp[0][0]=1;
  rep(i,1,n){
    dp[i][1]+=dp[i-1][0];
    dp[i][1]%=MOD;
    dp[i][2]+=dp[i-1][1];
    dp[i][2]%=MOD;
    dp[i][0]+=dp[i-1][1];
    dp[i][0]%=MOD;
    dp[i][0]+=dp[i-1][2];
    dp[i][0]%=MOD;
  }
  long long ans = 0;
  rep(i,0,3){
    ans += dp[n-1][i];
    ans%=MOD;
  }
  cout << ans << endl;
  return 0;
}