D - Subrect I

Languages: C, C++, Java, Pascal, Python, Tiger, JavaScript, Haskell, C#
Time & Memory limits: (details)

Alan es un famoso constructor. El compro recientemente un pedazo de tierra y quiere construir una casa. La tierra tiene forma rectangular, N metros de ancho y M de largo. Puede ser dividida en N * M cuadrados. La casa de Alan debe tener forma rectangular, debe cumplir que tenga sus lados paralelos con los lados de la tierra y sus vértices deben coincidir con los vertices de los cuadrados. Toda la tierra cubierta por la casa de Alan debe tener la misma elevación para prevenir que se destruya. Calcule el numero de formas en que Alan puede construir su casa.

Input

La primera linea de entrada contiene dos enteros N y M .
Cada una de las siguientes N lineas contiene M enteros aij(1 ≤ Aij ≤ 10^9), la elevación de cada cuadrado de tierra.
• En el subproblema I se cumple (1 ≤ N ≤ 500);
• En el subproblema II se cumple (1 ≤ N ≤ 1000);

Output

Debe imprimir exactamente el número deseado.

Sample test(s)

Input
5 3 2 2 2 2 2 1 1 1 1 2 1 2 1 2 1
Output
27
Input
4 3 1 1 1 1 1 1 2 2 2 2 2 2
Output
36