from collections import deque N = int(input()) num = [N+1] * (N+1) num[1] = 1 k = 1 while 2 ** k < N: k += 1 def keta(x): count = 0 for i in range(k + 1): if x & (1 << i): count += 1 return count q = deque() q.append(1) while len(q): x = q.popleft() c = keta(x) if x - c > 0: if num[x] + 1 < num[x - c]: num[x-c] = num[x] + 1 q.append(x - c) if x + c <= N: if num[x] + 1 < num[x + c]: num[x + c] = num[x] + 1 q.append(x + c) if num[N] == N+1: print(-1) else: print(num[N])