from collections import deque N = int(input()) Dice = [0]*(N+1) Seen = [0]*(N+1) Todo = deque([]) for i in range(N+1): Dice[i] = int(bin(i).count('1')) Todo.append(1) Seen[1] = 1 while len(Todo) >= 1: A = Todo.popleft() if A + Dice[A] <= N: if Seen[A+Dice[A]] == 0 or Seen[A+Dice[A]] > Seen[A] +1: Todo.append(A+Dice[A]) Seen[A+Dice[A]] = Seen[A] + 1 if A - Dice[A] <= N: if Seen[A-Dice[A]] == 0 or Seen[A-Dice[A]] > Seen[A] +1: Todo.append(A-Dice[A]) Seen[A-Dice[A]] = Seen[A] + 1 if Seen[N] == 0: print(-1) else: print(Seen[N])