from collections import deque N = int(input()) def bfs(): visited = [0]*(N+1) visited[1] = 1 d = deque() d.append(1) def f(v,x): if 0<v<=N and visited[v]==0: d.append(v) visited[v]=visited[x]+1 while d: x = d.popleft() if x==N: return visited[x] cnt = str(bin(x)).count('1') v1,v2 = x+cnt,x-cnt f(v1,x) f(v2,x) return -1 print(bfs())