from collections import deque n=int(input()) def bit_cnt(n): result=0 while(n!=0): if n%2==1: result+=1 n//=2 return result inf=float("inf") dist=[inf for _ in range(n)] dist[0]=1 Q=deque() Q.append(0) while(Q): a=Q.popleft() x=bit_cnt(a+1) if 0<=a+xdist[a]+1: dist[a+x]=dist[a]+1 Q.append(a+x) if 0<=a-xdist[a]+1: dist[a-x]=dist[a]+1 Q.append(a-x) ans=dist[n-1] if ans==inf: print(-1) else: print(ans)