#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <map>
#include <iomanip>
#include <math.h> 
#include <stack>
#include <queue>
#include <bitset>
#include <cstdlib>
#include <tuple>
#include <cctype>
#include <ctype.h>
#include <set>
#include <sstream>

using namespace std;


int main(){
	int i, j;
	int n;
	vector<int>dp(1000006, 0);


	cin >> n;

	//dp[1] = 1;
	//dp[2] = 1;

	//for (i = 1; i < n; i++) {
	for (i = 1; i < n; i++) {

		for (j = i + 2; j<n && j <= i + 3; j++) {
			dp[j] =  dp[i] + 1  +  ( dp[j] );
			//dp[j] = dp[i] + 1;
			dp[j] %= 1000000007;
		}

	}


	//cout << dp[n + 1 - ((n + 1) % 3)] << endl;
	cout << dp[n - 1] + 2 << endl;

	long maxn = 0, index = 0;

	/*for (i = n - 2; i <= n + 1; i++) {
		if (maxn < dp[i]) {
			maxn = dp[i];
			index = i;
		}
	}

	if (index < n) {
		cout << maxn + ((n + 1) - index) << endl;
	}
	else {
		cout << maxn << endl;
	}
*/
	//cout << dp[n + 1] << endl;

	//long sum = 0;

	/*for (i = 0; i < n; i++) {
		sum += dp[i];
		sum %= 1000000007;
	}
	cout << sum << endl;
*/







	getchar();
	getchar();
	return 0;
}