Componentes en la cuadrícula de Nasser#13101

Componentes en la cuadrícula de Nasser

2 segundos
256 megabytes

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:

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:

\begin{pmatrix} 1 & 1 & 2 \\ 1 & 2 & 2 \\ 3 & 3 & 2 \end{pmatrix}

Si dividimos por la columna c=1, la parte izquierda es:

\begin{pmatrix} 1 \\ 1 \\ 3 \end{pmatrix}

La mayor componente conexa de la parte izquierda tiene tamaño (los dos ). La parte derecha es:

\begin{pmatrix} 1 & 2 \\ 2 & 2 \\ 3 & 2 \end{pmatrix}

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 .

Entrada

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.

Salida

Para cada caso de prueba, imprime un único entero — el mínimo valor posible de |L - R|.

Ejemplos

Ejemplo 1

Loading
Loading

Puntuación

  1. Subtarea ( puntos) : (n = 1)

  2. Subtarea ( puntos) : (m \le 50)

  3. Subtarea ( puntos) : Sin restricciones adicionales.