Кольоровий граф#8561

Кольоровий граф

1 секунда
128 мегабайтів
Складна

Лора грає в онлайн-головоломку. У неї є неорієнтований граф з вершинами, пронумерованими від до . Граф влаштований так, що будь-які дві різні вершини з'єднані ребром, яке пофарбоване або в синій, або в червоний колір. Граф називається червоно-зв'язним, якщо від будь-якої вершини можна дістатися до будь-якої іншої, використовуючи тільки червоні ребра. Аналогічно, граф синьо-зв'язний, якщо від будь-якої вершини можна дістатися до будь-якої іншої, використовуючи тільки сині ребра. Стан графа визначається парою чисел , де:

Наприклад, стан означає, що граф є червоно-зв'язним, але не синьо-зв'язним.

За один клік по ребру Лора може змінити його колір (з синього на червоний або з червоного на синій). Мета гри полягає в тому, щоб, маючи початковий граф і бажаний стан, досягти цього стану за мінімальну кількість кліків. Необхідно написати програму, яка визначить, яка мінімальна кількість кліків потрібна Лорі, щоб вирішити головоломку.

Вхідні дані

Перший рядок містить додатне ціле число (3 \le n \le 250) – кількість вершин у графі. Далі йдуть рядків по цілих чисел, які задають кольори ребер. Позначимо -е число -го рядка як G_{ij}. Якщо G_{ij} = 0, то ребро між вершинами і червоне, якщо G_{ij} = 1, то ребро між вершинами і синє. Гарантується, що G_{ij} = G_{ji}. Для i = j значення G_{ij} не має значення, оскільки в графі немає петель. Останній рядок містить два цілі числа, розділені пробілом - і , що задають потрібний стан графа.

Вихідні дані

Якщо перетворити граф у потрібний стан неможливо, виведіть на єдиному рядку виводу.

Інакше перший рядок повинен містити ціле число - мінімальну кількість кліків, яку Лора повинна зробити, щоб перетворити граф у потрібний стан. Кожен з наступних рядків повинен містити два цілі числа - кінці ребра, яке слід перефарбувати черговим кліком. Якщо є декілька оптимальних рішень, можна вивести будь-яке з них. Ребра можна виводити в будь-якому порядку, аналогічно кінці ребер можна виводити в будь-якому порядку.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Примітка

Червоні ребра на рисунках зображені суцільними лініями, а сині - штрихованими. У першому прикладі початково граф знаходиться в стані :

prb8561.gif

Змінивши колір ребер - і -, ми перетворюємо граф у стан , і він виглядає так:

prb8561_1.gif

У другому прикладі легко зрозуміти, що граф з вершинами і станом не існує.

У третьому прикладі граф початково вже знаходиться в потрібному стані.