from collections import deque n = int(input()) inf = 10**10 dp = [inf]*(n+2) dp[1] = 1 q = deque([1]) while q: now = q.popleft() b = bin(now).count("1") if now+b <= n and dp[now+b] > dp[now]+1: dp[now+b] = dp[now]+1 q.append(now+b) if now-b > 0 and dp[now-b] > dp[now]+1: dp[now-b] = dp[now]+1 q.append(now-b) ans = dp[n] if ans == inf: ans = -1 print(ans)