from collections import deque n = int(input()) INF = 10000 dp = [INF]*(n+1) que = deque() que.append([1,1]) while len(que)>0: i,m = que.popleft() if dp[i] <= m: continue dp[i] = m bc = bin(i).count("1") if 1< i+bc <=n: que.append([i+bc,m+1]) if 1< i-bc <=n: que.append([i-bc,m+1]) if dp[n]==INF: print(-1) else: print(dp[n])