#include <bits/stdc++.h>
const int mod = 1e9+7;
double begintime, endtime;
using namespace std;
inline void CALC_TIME()
{
endtime = clock();
cout<<"\nexecution time : "<<(endtime-begintime+1)/1000<<" s";
}
int n, f[10008][10008];
int dq(int i, int j)
{
if(j >= n)return (j == n);
if(f[i][j] != -1)return f[i][j];
if(i+j > n)return f[i][j] = 0;
f[i][j] = dq(i+1, j)+dq(i+2, j+i);
if(f[i][j] >= mod)f[i][j] -= mod;
return f[i][j];
}
int main()
{
begintime = clock();
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
memset(f, -1, sizeof(f));
cin>>n;
cout<<dq(1, 0);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CmNvbnN0IGludCBtb2QgPSAxZTkrNzsKZG91YmxlIGJlZ2ludGltZSwgZW5kdGltZTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmlubGluZSB2b2lkIENBTENfVElNRSgpCnsgICAgCiAgICBlbmR0aW1lID0gY2xvY2soKTsKICAgIGNvdXQ8PCJcbmV4ZWN1dGlvbiB0aW1lIDogIjw8KGVuZHRpbWUtYmVnaW50aW1lKzEpLzEwMDA8PCIgcyI7Cn0KaW50IG4sIGZbMTAwMDhdWzEwMDA4XTsKaW50IGRxKGludCBpLCBpbnQgaikKewogICAgaWYoaiA+PSBuKXJldHVybiAoaiA9PSBuKTsKICAgIGlmKGZbaV1bal0gIT0gLTEpcmV0dXJuIGZbaV1bal07CiAgICBpZihpK2ogPiBuKXJldHVybiBmW2ldW2pdID0gMDsKICAgIGZbaV1bal0gPSBkcShpKzEsIGopK2RxKGkrMiwgaitpKTsKICAgIGlmKGZbaV1bal0gPj0gbW9kKWZbaV1bal0gLT0gbW9kOwogICAgcmV0dXJuIGZbaV1bal07Cn0KaW50IG1haW4oKQp7CiAgICBiZWdpbnRpbWUgPSBjbG9jaygpOwogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIG1lbXNldChmLCAtMSwgc2l6ZW9mKGYpKTsKICAgIGNpbj4+bjsKICAgIGNvdXQ8PGRxKDEsIDApOwogICAgcmV0dXJuIDA7Cn0K