def bits(n)
  c = 0
  while n > 0
    c += n % 2
    n /= 2
  end
  c
end

def path(n)
  q = [[1, 1]]
  visited = []
  while head = q.shift
    i, d = head
    return d if i == n
    next if i < 1 || n < i || visited[i]
    visited[i] = n
    b = bits(i)
    q << [i + b, d + 1] << [i - b, d + 1]
  end
  -1
end

p path gets.to_i