#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; }