#include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); long long N; cin>>N; queuebfs; bfs.push(N); unordered_mapdist; dist[N]=0; while(bfs.size()){ long long v=bfs.front(); if(v==1)break; bfs.pop(); if(v%2==0){ long long k=v&-v; if(dist.find(v/k)==dist.end()){ dist[v/k]=dist[v]+1; bfs.push(v/k); } }else{ long long t=v-1; long long k=(t&-t)-1; if(dist.find(v*k+1)==dist.end()){ dist[v*k+1]=dist[v]+1; bfs.push(v*k+1); } } } cout<