//树 左节点-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;
}