#include<iostream>
using namespace std;
int n,res;
int main()
{
cin >> n;
int tem = n + 1;
int end = tem;
int res = 1;
tem = 1;
while (tem != end) {
if (tem <= n) {
tem = 2 * tem;
}
else {
int zu = tem - n - 1;
zu = zu * 2 + 1;
tem = zu;
}
res++;
}
cout << res << endl;
return 0;
}
#洗牌m次后,如果任选一个数回归了原来的位置,则证明可以了,把牌的位置分两种情况讨论(x<=n的情况和x>n的情况,x可以选n+1这个数(好讨论),这样递归下去)