#include<bits/stdc++.h>
using namespace std;
#define ll long long int
const int MAX = 1e5+7;
const int MOD = 1e9+7;
vector<vector<ll> > dp(MAX,vector<ll>(501,-1));
ll S;
int solve(int i,ll sm){
if(dp[i][sm]!=-1) return dp[i][sm];
if(i==0 && sm == S/2) return 1;
else if(i==0) return 0;
ll mn = (solve(i-1,sm + i) + solve(i-1,sm)%MOD)%MOD;
dp[i][sm] = mn;
return mn;
}
int main(){
int n;
cin>>n;
S = (n*(n+1))/2;
if(S%2) cout<<0<<'\n';
else cout<<solve(n,0)/2<<'\n';
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CmNvbnN0IGludCBNQVggPSAxZTUrNzsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owp2ZWN0b3I8dmVjdG9yPGxsPiA+IGRwKE1BWCx2ZWN0b3I8bGw+KDUwMSwtMSkpOwpsbCBTOwoKaW50IHNvbHZlKGludCBpLGxsIHNtKXsKCQoJaWYoZHBbaV1bc21dIT0tMSkgcmV0dXJuIGRwW2ldW3NtXTsKCWlmKGk9PTAgJiYgc20gPT0gUy8yKSByZXR1cm4gMTsKCWVsc2UgaWYoaT09MCkgcmV0dXJuIDA7CgkKCWxsIG1uID0gKHNvbHZlKGktMSxzbSArIGkpICsgc29sdmUoaS0xLHNtKSVNT0QpJU1PRDsKCWRwW2ldW3NtXSA9IG1uOwoJcmV0dXJuIG1uOwp9CgoKaW50IG1haW4oKXsKCQoJaW50IG47CgljaW4+Pm47CglTID0gKG4qKG4rMSkpLzI7CglpZihTJTIpIGNvdXQ8PDA8PCdcbic7CgllbHNlIGNvdXQ8PHNvbHZlKG4sMCkvMjw8J1xuJzsKCQoJcmV0dXJuIDA7Cn0=