from collections import deque N = int(input()) INF = 10 ** 12 t = [INF] * N t[0] = 1 q = deque([0]) while q: a = q.popleft() d = bin(a + 1).count('1') if a - d > 0 and t[a - d] > t[a] + 1: t[a - d] = t[a] + 1 q.append(a - d) if a + d < N and t[a + d] > t[a] + 1: t[a + d] = t[a] + 1 q.append(a + d) if t[N - 1] == INF: print(-1) else: print(t[N - 1])