J. Переворачивание карточек
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Поликарпа есть два набора из одинаковых карточек, каждый набор содержит n·m карточек. С одной стороны каждой карточки написано 0, с другой написано 1.

Поликарп сделал из этих наборов две таблички a и b размером n строк на m столбцов. Часть карт лежат стороной с 1 вверх, остальные — с 0. Поликарп может проводить операции следующего вида над таблицей a: можно взять любую строку или столбец и перевернуть все карты в ней/нем на другую сторону: все 0 переворачиваются в 1, а 1 в 0. Назовем подобную операцию переворотом.

Необходимо узнать, существует ли такая последовательность переворотов, которая превращает таблицу a в таблицу b.

Входные данные

В первой строке даны два числа n и m, 1 ≤ n, m ≤ 1000.

Далее в следующих n строках находятся по m целых чисел aij, — содержимое таблицы a, каждое число показывает, какой стороной вверх находится очередная карта. Числа разделены пробелами.

Следующие n строк описывают таблицу b в таком же формате, что и a.

Все числа в одной строке разделены пробелами между собой.

Выходные данные

Если решения нет, выведите " - 1" (без кавычек).

Если решение есть, то в первой строке выведите количество операций. Оно не должно превышать n + m. В последующих строках выведите сами операции в таком формате: если необходимо перевернуть i-ую строку, выведите "0 i"; если j-ый столбец — "1 j". Кавычки выводить не нужно. Каждая операция должна быть в отдельной строке.

Примеры
Входные данные
3 3
1 0 1
0 1 0
1 0 1
1 1 1
1 1 1
1 1 1
Выходные данные
2
0 2
1 2
Входные данные
3 3
1 0 1
0 1 0
1 0 1
1 1 1
1 0 1
1 1 1
Выходные данные
-1