from collections import deque n = int(input()) dp = [None for _ in range(n + 1)] dq = deque() src = 1 dp[src] = 0 dq.append(src) while len(dq) > 0: cur = dq.popleft() cnt = len([c for c in bin(cur) if c == '1']) for dir in [-1, 1]: nxt = cur + dir * cnt if 1 <= nxt <= n and dp[nxt] is None: dp[nxt] = dp[cur] + 1 dq.append(nxt) if dp[n] is None: print("-1") else: print(dp[-1] + 1)