Nasser te da una cuadrícula de filas y columnas que contiene números enteros.
Debes elegir una columna (1 \le c < m) para dividir la cuadrícula en dos partes:
Parte izquierda: las columnas de a (inclusive).
Parte derecha: las columnas de c+1 a (inclusive).
Dos celdas se consideran adyacentes si comparten un lado (arriba, abajo, izquierda o derecha). Dos celdas adyacentes que pertenecen a la misma parte están conectadas si contienen valores iguales. Una componente conexa es un grupo maximal de celdas en el que cada par de celdas se puede alcanzar mutuamente a través de una cadena de celdas adyacentes conectadas.
Por ejemplo, en la cuadrícula:
Si dividimos por la columna c=1, la parte izquierda es:
La mayor componente conexa de la parte izquierda tiene tamaño (los dos ). La parte derecha es:
La mayor componente conexa de la parte derecha tiene tamaño (los cuatro ).
Sea el tamaño de la mayor componente conexa de la parte izquierda y sea el tamaño de la mayor componente conexa de la parte derecha.
Tu tarea es elegir una columna que minimice |L - R|.
En el ejemplo anterior, si elegimos c=1, entonces L=2, R=4 y |L-R|=2. Si elegimos c=2, entonces y se calculan para la nueva división, y tomamos el mínimo sobre todas las elecciones de .
Cada prueba contiene múltiples casos de prueba. La primera línea contiene un único entero (1 \le t \le 10^4) — el número de casos de prueba. A continuación sigue la descripción de los casos de prueba.
La primera línea de cada caso de prueba contiene dos enteros y (1 \le n, 2 \le m, n \cdot m \le 2 \cdot 10^5) — el número de filas y de columnas.
Cada una de las siguientes líneas contiene enteros a_{i,1}, a_{i,2}, \ldots, a_{i,m} (1 \le a_{i,j} \le 10^9) — los elementos de la cuadrícula.
Se garantiza que la suma de n \cdot m sobre todos los casos de prueba no excede 2 \cdot 10^5.
Para cada caso de prueba, imprime un único entero — el mínimo valor posible de |L - R|.
Ejemplo 1
Subtarea ( puntos) : (n = 1)
Subtarea ( puntos) : (m \le 50)
Subtarea ( puntos) : Sin restricciones adicionales.