Игорь учится в 11-м классе. Завтра ему предстоит написать контрольную работу по информатике у самого строгого преподавателя школы — Павла Денисовича.
Игорь заранее знает, как будет проходить контрольная: изначально преподаватель даст каждому ученику, включая Игоря, два целых положительных числа \(a\) и \(b\) (\(a < b\)). Затем ученик может неограниченное количество раз производить с числами следующие операции:
- \(a := a + 1\) (увеличить \(a\) на \(1\)),
- \(b := b + 1\) (увеличить \(b\) на \(1\)),
- \(a := a \ | \ b\) (заменить \(a\) на побитовое ИЛИ \(a\) и \(b\)).
Чтобы получить максимальный балл за контрольную работу, ученику необходимо за минимальное количество операций сделать \(a\) равным \(b\).
Игорь заранее знает, какие числа даст ему учитель, и, конечно же, хочет получить максимальный балл за контрольную работу. Помогите ему понять, какое минимальное количество операций необходимо, чтобы сделать \(a\) равным \(b\).
Примечание
В первом наборе оптимально применить третью операцию.
Во втором наборе оптимально применить первую операцию три раза подряд.
В третьем наборе оптимально применить вторую операцию и потом третью операцию.