Проєкція
Усі знають, що ви фанат TensorFlow. Тому перед вами стоїть завдання відтворити логотип TensorFlow, використовуючи дві проекції.
Уявіть, що у вас є тривимірний простір розміром n * m * h, і дві проекції (дві матриці розміром n * m і n * h з елементами 0 і 1). Ваше завдання — визначити можливі набори кубів, які можна розмістити всередині цього 3D-простору так, щоб створений об'єкт відкидав тіні, вказані матрицями проекцій, коли світло падає зліва і спереду. Якщо це неможливо, виведіть -1. Якщо можливо, знайдіть два набори: один з максимальним числом кубів і один з мінімальним. Ви можете припустити, що гравітації немає (куби розташовані саме там, де їх розміщено, без потреби в підтримці). Вважаємо, що 1 означає тінь, а 0 — світло.
Якщо існує кілька рішень, виведіть лексикографічно найменше. Рішення a лексикографічно менше рішення b, якщо перше число, яке відрізняється між двома рішеннями, в a менше, ніж в b.
Наприклад, рішення [(0, 0, 0), (1, 1, 1)] менше рішення [(1, 1, 1), (0, 0, 0)].
Вхідні дані
У першому рядку записані три цілі числа n, m, h (1 ≤ n, m, h ≤ 100) — розміри простору.
Кожен з наступних n рядків містить m символів, кожен з яких представляє або 1 (область тіні), або 0 (область світла). Ця матриця описує проекцію предмета спереду.
Кожен з наступних n рядків містить h символів у тому ж форматі, що і вище, описуючи проекцію предмета зліва.
Вихідні дані
У першому рядку виведіть одне число: або -1, якщо рішення немає, або k[max]
— максимальне число кубів, які можна розташувати в просторі, щоб створити дві проекції, задані у вхідних даних.
Наступні k[max]
рядків повинні містити трійки чисел x, y, z (0 ≤ x < n, 0 ≤ y < m, 0 ≤ z < h), що представляють куби, вибрані в лексикографічно найменшому рішенні з максимальним числом кубів. Якщо рішення існує, виведіть ще один рядок, що містить k[min]
— мінімальне число кубів, які можна розташувати в просторі, щоб створити дві проекції, задані у вхідних даних.
Наступні k[min]
рядків повинні містити трійки чисел x, y, z (0 ≤ x < n, 0 ≤ y < m, 0 ≤ z < h), що представляють куби в лексикографічно найменшому рішенні з мінімальним числом кубів.
Приклади
Примітка
Куб з координатами (x, y, z) створить тінь у рядку x і стовпці y в проекції n * m і тінь у рядку x і стовпці z в проекції n * h (індексується з 0).