#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const double EPS = 1e-9; typedef vector vint; typedef vector> v2int; typedef vector vll; typedef vector> v2ll; typedef list liint; typedef pair pint; const int INF = int(2e9); const ll LINF = ll(2e9) * ll(2e9); #define rep(i, n) REP(i, 0, n) #define ALL(v) v.begin(), v.end() #define MSG(a) cout << #a << " " << a << endl; #define REP(i, x, n) for(int i = x; i < n; i++) template void chmax(T& a, C b) { a > b ? : a = b; } template void chmin(T& a, C b) { a < b ? : a = b; } int main() { int N; cin >> N; ll p = 1000000007; v2int dp(N + 1, vint(2, 0)); dp[1][0] = 1; if (N > 1) { dp[2][0] = 1; dp[2][1] = 1; } REP(i, 3, N + 1) { dp[i][0] = int((ll(dp[i - 1][1]) + ll(dp[i - 2][1])) % p); dp[i][1] = dp[i - 1][0]; } int count; count = int((ll(dp[N][0]) + ll(dp[N][1])) % p); cout << count << endl; return 0; }