from collections import Counter N=int(input()) A=[] for i in range(1,N+1): a=str(bin(i))[2:] C=Counter(a) A.append(C["1"]) visited=[N+2]*N visited[1-1] = 1 stack=[1] next_move=[] p=2 while stack: for i in stack: num = Counter(str(bin(i))[2:])["1"] if 0 <= i-num-1 < N and visited[i-num-1] == N+2: visited[i-num-1] = p next_move.append(i-num) if 0 <= i+num-1 < N and visited[i+num-1] == N+2: visited[i+num-1] = p next_move.append(i+num) p += 1 stack, next_move = next_move, [] print(visited[-1] if visited[-1] != N+2 else -1)