#include //#define int long long using namespace std; using LL = long long; using P = pair; using Tapris = tuple; #define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i) #define REP(i, n) FOR(i, 0, n) #define pb(a) push_back(a) #define all(x) (x).begin(),(x).end() const int INF = (int)1e9; const LL INFL = (LL)1e15; const int MOD = 1e9 + 7; int dy[]={0, 0, 1, -1, 0}; int dx[]={1, -1, 0, 0, 0}; /*************** using variables ***************/ int n; LL dp[1000005][3]; // dp[i][j] := iマス目のときj(0: パ, 1~2: ケンj回目)となる組み合わせの総数 /**********************************************/ signed main(){ cin.tie(0); ios::sync_with_stdio(false); cin >> n; REP(i, 1000005) REP(j, 3) dp[i][j] = 0; dp[1][1] = 1; for(int i = 2; i <= n; i++){ dp[i][0] = (dp[i-1][1] + dp[i-1][2]) % MOD; dp[i][1] = dp[i-1][0]; dp[i][2] = dp[i-1][1]; } cout << (dp[n][0] + dp[n][1] + dp[n][2]) % MOD << endl; }