#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;scanf("%d",&n);
int F[60]={0};
int b[60]={0};int p=1;for(int i=0;i<60;i++){b[i]=p;p*=2;}
int a[60]={0};
int count=0;
for(int i=0;i<n;i++)
{
A(*a,1);
F[0]++;judge(*F);
for(int p=0;p<60;p++)if(F[p]==1)count++;
}
printf("%d",count);
}
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)++;A(*a,p*=2);}
}