//树 左节点-6 右节点-8 #include <cstdio> #include <iostream> using namespace std; int tree[1000]; void fun(int n, int v) { tree[2 * n] = v - 6; tree[2 * n + 1] = v - 8; if (tree[2 * n] > 0) fun(2 * n, v - 6); if (tree[2 * n + 1] > 0) fun(2 * n + 1, v - 8); } int depth(int n) { int ans = 0; while (n != 1) { n = n / 2; ans++; } return ans; } int main() { int n; scanf("%d", &n); int ans = 100000; for (int i = 0; i < 1000; i++) tree[i] = -1; tree[1] = n; fun(1, n); for (int i = 0; i < 1000; i++) { if (tree[i] == 0) { int tmp = depth(i); if (tmp < ans) ans = tmp; } } if (ans == 100000) ans = -1; printf("%d\n", ans); return 0; }