Ось продукт, який зробить вас Tensor
Більшість людей знають, як множити дві матриці. Однак існує альтернативний спосіб множення, відомий як тензорне множення, який працює так, як ви могли б очікувати від множення матриць. Нехай A — це матриця розміром p×q, а B — матриця розміром n×m, де жодна з матриць A або B не є матрицею 1×1. Тоді тензорний добуток AB є матрицею розміром pn×qm, яка утворюється шляхом заміни кожного елемента a_ij у A на матрицю (a_ij)·B. Нижче наведено два приклади, які також демонструють, що, як і звичайне множення матриць, тензорне множення є некомутативним:
Зверніть увагу, що немає обмеження, що кількість стовпців у першій матриці повинна дорівнювати кількості рядків у другій, як це є у випадку звичайного множення матриць. Завдання цієї проблеми полягає у визначенні кількості способів (якщо такі є), якими задана матриця може бути утворена в результаті тензорного множення.
Вхідні дані
Перша строка введення для тестового випадку міститиме два додатні цілі числа r і c, що вказують на кількість рядків і стовпців у матриці. Після цього буде r рядків, кожен з яких містить c додатних цілих чисел. Значення r і c будуть ≤ 500, кожен елемент у матриці не перевищуватиме 65,536, а останній тестовий випадок буде слідувати за строкою, що містить 0 0.
Вихідні дані
Для кожного тестового випадку виведіть кількість різних способів, якими матриця могла б бути тензорним добутком двох матриць з додатними цілими числами, жодна з яких не є матрицею 1×1.