from collections import deque def bit_count(self): return bin(self).count('1') n=int(input()) que=deque() que.append(1) dp=[0]*(n+1) dp[1]=1 while que: now=que.popleft() move=bit_count(now) if 1<=now+move<=n and not dp[now+move]: dp[now+move]=dp[now]+1 que.append(now+move) if 1<=now-move<=n and not dp[now-move]: dp[now-move]=dp[now]+1 que.append(now-move) print(dp[-1] if dp[-1] else -1)