EduBrick

G. Логическое дерево

1000 мс · 256 МБ · всё или ничего

Дано двоичное дерево, в котором вершина ii имеет детей 2i2i и 2i+12i+1. Листья хранят значения 0 или 1, внутренние вершины — операцию «И» или «ИЛИ». Значение внутренней вершины — результат её операции над значениями детей.

Некоторые операции разрешено менять на противоположные. Найдите наименьшее число замен, чтобы корень принял заданное значение, или сообщите, что это невозможно.

Формат ввода

В первой строке nn и vv (1≤n≤10 0001 \le n \le 10\,000, 0≤v≤10 \le v \le 1) — число вершин и требуемое значение корня; nn нечётно.

Далее (n−1)/2(n-1)/2 строк описывают внутренние вершины с номерами от 1 до (n−1)/2(n-1)/2: числа gg и cc. Если g=1g = 1, вершина хранит «И», иначе «ИЛИ». Если c=1c = 1, операцию разрешено менять.

Далее (n+1)/2(n+1)/2 строк описывают листья с номерами от (n+1)/2(n+1)/2 до nn: по одному числу 0 или 1.

Формат вывода

Выведите наименьшее число замен или IMPOSSIBLE.

Примеры

ввод
9 1
1 0
1 1
1 1
0 0
1
0
1
0
1
вывод
1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.