n = int(input()) grid = [ bin(i+1).count("1") for i in range(n) ] step = [1] + [-1 for i in range(n-1)] for i in range(1,n): s = 0 for j in range(n): if step[j] == i: if j-grid[j] > 0 and step[j-grid[j]] == -1: step[j-grid[j]] = i+1 s = 1 if j+grid[j] < n and step[j+grid[j]] == -1: step[j+grid[j]] = i+1 s = 1 if s == 0: break print(step[-1])