#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; queue que; vector dst(n + 1, -1); que.push(1); dst[1] = 1; int crr = 1; int nxt; while(!que.empty()) { crr = que.front(); que.pop(); int dif = bitset<32> (crr).count(); nxt = crr + dif; if (nxt <= n && dst[nxt] == -1) { que.push(nxt); dst[nxt] = dst[crr] + 1; } nxt = crr - dif; if (0 < nxt && dst[nxt] == -1) { que.push(nxt); dst[nxt] = dst[crr] + 1; } } cout << dst[n] << '\n'; return 0; }