#include using namespace std; int main(){ int N; cin >> N; int INF = 1000000000; vector dist(N+1,INF); dist[1] = 1; queue que; que.push(1); while(!que.empty()){ int v = que.front(); que.pop(); int cnt = 0; for(int i=0;i<20;i++) if(v & (1<= 1){ if(dist[v-cnt] == INF){ dist[v-cnt] = dist[v]+1; que.push(v-cnt); } } if(v+cnt <= N){ if(dist[v+cnt] == INF){ dist[v+cnt] = dist[v]+1; que.push(v+cnt); } } } if(dist[N] == INF) cout << -1 << endl; else cout << dist[N] << endl; }