#include <cstdio>
long long n, num, s;
int main()
{
scanf("%lld", &n);
while (n > 1)
{
if (n == 3)
{
num += 2;
printf("%lld\n", num);
return 0;
}
else if (n % 2)
{
s = 4;
while (!((n + 1) % s) && !((n - 1) % s))
{
s <<= 1;
}
if ((n + 1) % s)
{
n -= 1;
}
else
{
n += 1;
}
}
else
{
n /= 2;
}
num++;
}
printf("%lld\n", num);
return 0;
}
本来想看看数据水不水,顺便骗点分,没想到就骗满了。