#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
#define FAST_CODE ios_base::sync_with_stdio(false); cin.tie(NULL);
#define pb push_back
using namespace std;
constexpr ll MOD = 1e9+7;
constexpr ll ROW = 70002;
constexpr ll COL = 601;
ll dp[ROW][COL];
ll go(ll sum, ll i)
{
if(sum == 0 && i == 0)
{
return dp[sum][i] = 1;
}
if(sum < 0 || i < 0)
{
return 0;
}
if(dp[sum][i]!=-1)
{
return dp[sum][i];
}
return dp[sum][i] = (go(sum, i-1) + go(sum-i, i-1))%MOD;
}
int main()
{
FAST_CODE;
for(ll i=0; i<ROW; i++)
{
for(ll j=0; j<COL; j++)
{
dp[i][j] = -1;
}
}
ll lim;
cin>>lim;
ll sum = (lim*(lim+1))/2;
if(sum%2!=0)
{
cout<<0<<endl;
return 0;
}
// cout<<sum<<lim;
cout<<go(sum/2, lim)/2<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwojZGVmaW5lIEZBU1RfQ09ERSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKI2RlZmluZSBwYiBwdXNoX2JhY2sKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3RleHByIGxsIE1PRCA9IDFlOSs3Owpjb25zdGV4cHIgbGwgUk9XID0gNzAwMDI7CmNvbnN0ZXhwciBsbCBDT0wgPSA2MDE7CmxsIGRwW1JPV11bQ09MXTsKCmxsIGdvKGxsIHN1bSwgbGwgaSkKewoJCglpZihzdW0gPT0gMCAmJiBpID09IDApCgl7CgkJcmV0dXJuIGRwW3N1bV1baV0gPSAxOwoJfQoJCglpZihzdW0gPCAwIHx8IGkgPCAwKQoJewoJCXJldHVybiAwOwoJfQoKCWlmKGRwW3N1bV1baV0hPS0xKQoJewoJCXJldHVybiBkcFtzdW1dW2ldOwoJfQoJCglyZXR1cm4gZHBbc3VtXVtpXSA9IChnbyhzdW0sIGktMSkgKyBnbyhzdW0taSwgaS0xKSklTU9EOwkKCgkKfQoKCgppbnQgbWFpbigpIAp7CglGQVNUX0NPREU7Cglmb3IobGwgaT0wOyBpPFJPVzsgaSsrKQoJewoJCWZvcihsbCBqPTA7IGo8Q09MOyBqKyspCgkJewoJCQlkcFtpXVtqXSA9IC0xOwoJCX0KCX0KCQoJbGwgbGltOwoJY2luPj5saW07CglsbCBzdW0gPSAobGltKihsaW0rMSkpLzI7CgoJaWYoc3VtJTIhPTApCgl7CgkJY291dDw8MDw8ZW5kbDsKCQlyZXR1cm4gMDsKCX0KCS8vIGNvdXQ8PHN1bTw8bGltOwoJY291dDw8Z28oc3VtLzIsIGxpbSkvMjw8ZW5kbDsKCXJldHVybiAwOwp9