#include <stdio.h>
#include <stdlib.h>
int judge(int*F)
{
if(*F==0||*F==1)return;
else{*F=0;F++;(*F)+=1;judge(*F);return;}
}
int A(int*a,int p)
{
(*a)++;
if(*a>p){*a=0;a++;(*a)++;p*=2;A(*a,p);}
}
int COUNT(int *F,long int count)
{
for(int i=0;i<60;i++)
{
if(*F==1)count++;
F++;
}
return count;
}
int main()
{
long int n;scanf("%ld",&n);
int F[60]={0};
int a[60]={0};
long int count=0;
for(long int i=0;i<n;i++)
{
A(*a,1);
F[0]++;judge(*F);
count+=COUNT(*F,count);
}
printf("%ld",count);
}