#include<cstdio>
#include<iostream>
#include<vector>
#define N 1000000
using namespace std;
vector<int>v[N];
void dp()
{
v[0].push_back(0);
v[1].push_back(1);
v[2].push_back(2);
int i,x,y;
for(i=3;i<=N;i=i+2)
{
x=v[i-1][0]+1;
y=v[(i+1)/2][0]+2;
v[i+1].push_back(y-1);
if(x<y)
{
v[i].push_back(x);
}
else
{
v[i].push_back(y);
}
}
}
int main()
{
dp();
int s;
cin>>s;
cout<<v[s][0];
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGU8dmVjdG9yPgojZGVmaW5lIE4gMTAwMDAwMAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8aW50PnZbTl07CnZvaWQgZHAoKQp7CiAgICB2WzBdLnB1c2hfYmFjaygwKTsKICAgICB2WzFdLnB1c2hfYmFjaygxKTsKICAgICAgdlsyXS5wdXNoX2JhY2soMik7CiAgICBpbnQgaSx4LHk7CiAgICBmb3IoaT0zO2k8PU47aT1pKzIpCiAgICB7CiAgICAgICAgeD12W2ktMV1bMF0rMTsKICAgICAgICB5PXZbKGkrMSkvMl1bMF0rMjsKICAgICAgICB2W2krMV0ucHVzaF9iYWNrKHktMSk7CiAgICAgICAgaWYoeDx5KQogICAgICAgIHsKICAgICAgICAgICAgdltpXS5wdXNoX2JhY2soeCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHZbaV0ucHVzaF9iYWNrKHkpOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGRwKCk7CiAgICBpbnQgczsKICAgIGNpbj4+czsKICAgIGNvdXQ8PHZbc11bMF07CgogICAgcmV0dXJuIDA7Cn0K