goal = int(input()) visited = [1] tsugi1 = [1] tsugi2 = [] count = 1 while tsugi1: if goal in visited: break while tsugi1: node = tsugi1.pop() p = node + int(bin(node).count("1")) m = node - int(bin(node).count("1")) if p not in visited and 0 < p < goal+1: visited.append(p) tsugi2.append(p) if m not in visited and 0 < m < goal+1: visited.append(m) tsugi2.append(m) tsugi1 = tsugi2 tsugi2 = [] count += 1 print(count if goal in visited else -1)