import sys,queue input=lambda:sys.stdin.readline().rstrip() def count(N): return bin(N).count('1') def con(a): return [a+count(a+1),a-count(a+1)] N=int(input()) dist=[float('inf') for i in range(N)] dist[0]=1 q=queue.SimpleQueue() q.put(0) while not q.empty(): temp=q.get() for i in con(temp): if 0<=idist[temp]+1: dist[i]=dist[temp]+1 q.put(i) print(dist[N-1] if dist[N-1]!=float('inf') else -1)