from collections import deque N=int(input()) dist=[-1]*(N+1) q=deque([(1,0)]) while q: pos,d=q.popleft() if dist[pos]!=-1: continue dist[pos]=d cnt=pos.bit_count() nx=pos+cnt mx=pos-cnt if nx<=N and dist[nx]==-1: q.append((nx,d+1)) if 0<=mx and dist[mx]==-1: q.append((mx,d+1)) print(dist[-1]+1 if dist[-1]>-1 else -1)