#include using namespace std; bool used[10001]; int N; int bitcount(int a) { int cnt = 0; while (a) { cnt += a & 1; a >>= 1; } return cnt; } int rec(int depth, int i) { if (i == N) return depth + 1; if (i < 1 || i > N || used[i]) return -1e9; used[i] = true; int a = bitcount(i); return max(rec(depth + 1, i + a), rec(depth + 1, i - a)); } int main() { cin >> N; cout << max(rec(0, 1), -1) << endl; }