n = int(input()) b = [bin(i+1).count("1") for i in range(n)] cell = [-1] * n cell[0] = 0 queue = [[0, 2]] while queue: num, cost = queue.pop(0) if num == n - 1: break if num - b[num] >= 0 and cell[num - b[num]] == -1: cell[num - b[num]] = cost queue.append([num - b[num], cost + 1]) if num + b[num] < n and cell[num + b[num]] == -1: cell[num + b[num]] = cost queue.append([num + b[num], cost + 1]) print(cell[n-1])