   Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

Language:
Here's a Product Which Will Make You Tensor
 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 287 Accepted: 45

Description

Most people are familiar with how to multiply two matrices together. However, an alternate form of multiplication known as tensor multiplication exists as well, and works more like you would expect matrix multiplication should. Let A be a p×q matrix and B be an n×m matrix, where neither A nor B is a 1 × 1 matrix. Then the tensor product A ⊗ B is a pn × qm matrix formed by replacing each element aij in A with the matrix (aij) * B. Two examples are shown below, which also demonstrate that, like normal matrix multiplication, tensor multiplication is non-commutative: Note that there is no restriction that the number of columns in the first matrix must equal the number of rows in the second, as there is with normal matrix multiplication. The object of this problem is to determine the number of ways (if any) a given matrix can be formed as a result of a tensor multiplication.

Input

The first line of input for a test case will contain two positive integers r and c indicating the number of rows and columns in the matrix. After this will follow r lines each containing c positive integers. The values of r and c will be ≤ 500, each entry in the matrix will be no greater than 65,536, and the last test case is followed by a line containing 0 0.

Output

For each test case, output the number of different ways the matrix could be the tensor product of two positive integer matrices, neither of which is a 1 × 1 matrix.

Sample Input

```6 6
1 1 1 2 2 2
1 1 1 2 2 2
1 1 2 2 2 4
3 3 3 4 4 4
3 3 3 4 4 4
3 3 6 4 4 8
2 2
3 6
4 9
2 4
15 18 30 36
20 24 40 48
0 0```

Sample Output

```1
0
4```

Source

[Submit]   [Go Back]   [Status]   [Discuss] Home Page Go Back To top