N = int(input()) stack = [] answers = set() stack.append([1, 1]) ok_flag = False while stack: ceil = stack.pop() turn = ceil[0] now = ceil[1] dice = 0 for j in range(14): if (now >> j) & 1 == 1: dice += 1 f_now = now + dice p_now = now - dice if (f_now <= N) and (f_now not in answers): stack.append([turn + 1, f_now]) answers.add(f_now) if f_now == N: ok_flag = True break if (p_now >= 1) and (p_now not in answers): stack.append([turn + 1, p_now]) answers.add(p_now) if ok_flag: a = stack.pop() print(a[0]) else: print(-1)