N = int(input()) stack = [] ceil_dist = dict() answer = 1000000 for j in range(1, 10001): ceil_dist[j] = 1000000 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 (turn + 1 < ceil_dist[f_now]): stack.append([turn + 1, f_now]) ceil_dist[f_now] = turn + 1 if f_now == N: if turn + 1 < answer: answer = turn + 1 ok_flag = True if (p_now >= 1) and (turn + 1 < ceil_dist[p_now]): stack.append([turn + 1, p_now]) ceil_dist[p_now] = turn + 1 if ok_flag: print(answer) else: print(-1)