#include <bits/stdc++.h>
 
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4")
 
#define ll long long
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define o cout<<"BUG"<<endl;
#define	IOS ios_base::sync_with_stdio(0);
#define en "\n"
#define FOR(i, j, n) for(int j = i; j < n; ++j)
#define forn(i, j, n) for(int j = i; j <= n; ++j)
#define nfor(i, j, n) for(int j = n; j >= i; --j)
#define sortv(vv) sort(vv.begin(), vv.end())
 
using namespace std;
int block;
const ll maxn=1e4+100,inf=1e18,LOG=20,mod=1e9+7;

#define  int ll

int n, dp[maxn][maxn];

main()
{
	cin >> n;
	forn(1, i, n)
	{
		dp[i][i] = 1;
		int sum = 0;
		forn(1, j, n)
		{
			if(i + j > n) break;
			dp[i + j][j] += sum;
			dp[i + j][j] %= mod;
			sum += dp[i][j];
			sum %= mod;
		}
	}
	int sum = 0;
	forn(1, i, n)
	{
		sum += dp[n][i];
		sum %= mod;
	}
	cout << sum;
}