#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF 1e9 #define PI acos(-1) typedef long long ll; int bitCnt(int x) { int cnt = 0; for (int i = 0; i < 14; i++) { if (x & 1 << i)cnt++; } return cnt; } int main() { int n; cin >> n; vector check(n + 1, INT_MAX); queue c; check[1] = 1; c.push(1); while (!c.empty()) { int p = c.front(); c.pop(); int d = bitCnt(p); for (int i = -d; i <= d; i += 2 * d) { int np = p + i; if (np<1 || np>n)continue; if (check[np] != INT_MAX)continue; check[np] = check[p] + 1; c.push(np); } } cout << ((check[n] == INT_MAX) ? (-1) : check[n]) << endl; return 0; }