Bobo compró un terreno de $n \times m$ en ICPCCamp, en el que algunas celdas contienen obstáculos.
Quiere elegir dos regiones rectangulares para construir dos casas. Evidentemente, las regiones destinadas a las casas no pueden contener obstáculos. Además, las dos regiones no pueden intersectarse (pero sí pueden ser adyacentes).
Bobo quiere saber el resto de dividir el número de todas las formas distintas posibles entre $(10^9 + 7)$.
Entrada
La entrada contiene como máximo $10$ casos de prueba.
La primera línea de cada caso de prueba contiene dos enteros $n, m$ ($1 \leq n, m \leq 10^3$).
La $i$-ésima de las siguientes $n$ líneas contiene una cadena $s_i$ de longitud $m$. Si el $j$-ésimo carácter de $s_i$ es 0, la celda de la fila $i$ y la columna $j$ está vacía; si es 1, esa celda contiene un obstáculo.
Salida
Para cada caso de prueba, imprime un entero que represente el valor solicitado.
Ejemplos
Entrada 1
2 2 00 01 3 4 1000 0001 0100
Salida 1
5 160