#include <iostream>
#include <cassert>
#include <numeric>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <queue>
#include <map>
#include <cmath>
using namespace std;


int main() {
long long int n;
cin>>n;
long long int ans=0;
long long int s=0;
for (int i = 1; i <= sqrt(2*n); i++)
{
  
  
 if ((2*n)%i==0)
 {
  
 
     
   
   
   if (i%2==1)
   {
     ans++;
   }
   else
   {
     if (((2*n)/i)%2==1)
     {
       ans++;
     }
     
   }
   
 }
 
 
}


cout<<ans*2-s<<endl;
}
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;

const int maxn = 210;

int n;
ll dp[maxn][maxn];

ll read(){ ll s = 0, f = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ s = s * 10 + ch - '0'; ch = getchar(); } return s * f; }

int main(){
	n = read();
	dp[0][0] = 1;
	for(int i = 1 ; i < n ; ++i){
		for(int j = 1 ; j <= min(i, 11) ; ++j){
			for(int k = 0 ; k < i ; ++k){
				dp[i][j] += dp[k][j - 1];
			}
		}
	}
	
//	for(int i = 1 ; i < n ; ++i){
//		for(int j = 0 ; j <= min(i, 11) ; ++j){
//			printf("%d ", dp[i][j]);
//		} printf("\n");
//	}
	
	ll ans = 0;
	for(int i = 1 ; i < n ; ++i) ans += dp[i][11];
	printf("%lld\n", ans);
	
	return 0;
}