#include<cstdio>
#include<iostream>
#include<vector>
#define N 2147483648
using namespace std;
vector<int>v;
void dp()
{
v[0]=0;
v[1]=1;
v[2]=2;
v[3]=3;
v[4]=3;
int i,x,y;
for(i=5;i<=N;i=i+2)
{
x=v[i-1]+1;
y=v[(i+1)/2]+2;
v[i+1]=y-1;
if(x<y)
{
v[i]=x;
}
else
{
v[i]=y;
}
}
}
int main()
{
dp();
long long int s;
while(scanf("%lld",&s)!=EOF)
{
printf("%d",v[s]);
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGU8dmVjdG9yPgojZGVmaW5lIE4gMjE0NzQ4MzY0OAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8aW50PnY7CnZvaWQgZHAoKQp7CiAgICB2WzBdPTA7CiAgICB2WzFdPTE7CiAgICB2WzJdPTI7CiAgICB2WzNdPTM7CiAgICB2WzRdPTM7CiAgICBpbnQgaSx4LHk7CiAgICBmb3IoaT01O2k8PU47aT1pKzIpCiAgICB7CiAgICAgICAgeD12W2ktMV0rMTsKICAgICAgICB5PXZbKGkrMSkvMl0rMjsKICAgICAgICB2W2krMV09eS0xOwogICAgICAgIGlmKHg8eSkKICAgICAgICB7CiAgICAgICAgICAgIHZbaV09eDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgdltpXT15OwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGRwKCk7CiAgICBsb25nIGxvbmcgaW50IHM7CiAgICB3aGlsZShzY2FuZigiJWxsZCIsJnMpIT1FT0YpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZCIsdltzXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K