import queue N = int(input()) v = [0] * (N + 1) v[1] = 1 q = queue.Queue() q.put(1) while not q.empty(): i = q.get() if i == N: break c = format(i,'b').count('1') if i + c <= N and v[i + c] == 0: q.put(i + c) v[i + c] = v[i] + 1 if i - c > 0 and v[i - c] == 0: q.put(i - c) v[i - c] = v[i] + 1 print(v[i] if i == N else -1)