import queue
N = int(input())
sugoroku = [0] * N
sugoroku[0] = 1

def bit(x):
    cnt = 0
    while x != 0:
        if x % 2 == 1:
            cnt += 1
        x = x // 2
    return cnt

q = queue.Queue()
q.put(0)
while not q.empty():
    pos = q.get()
    move = bit(pos + 1)
    if 0 <= pos - move <= N-1:
        if sugoroku[pos - move] == 0:
            sugoroku[pos - move] = sugoroku[pos] + 1
            q.put(pos - move)

    if 0 <= pos + move <= N-1:
        if sugoroku[pos + move] == 0:
            sugoroku[pos + move] = sugoroku[pos] + 1
            q.put(pos + move)

if sugoroku[N-1] == 0:
    print("-1")
else:
    print(sugoroku[N-1])