La puerta mágica de una cueva del tesoro es una cuadrícula de $m\times n$ llena de gemas variadas. Las gemas pertenecen a tres categorías: gemas normales de diversos colores y formas, y dos tipos especiales: gemas bomba y gemas de vibranium.
Un grupo de tres o más coincidencias es un grupo de al menos tres gemas normales idénticas alineadas consecutivamente en dirección vertical u horizontal. Una gema puede pertenecer a un grupo horizontal y a uno vertical en su intersección. Las gemas bomba no forman estos grupos. Las gemas de vibranium tampoco.
En el estado inicial de la cuadrícula no hay grupos de coincidencias. Cuando inicialmente tocas dos gemas normales con la mano, intercambian sus posiciones. Este único intercambio desencadena una reacción en cadena que hace desaparecer gemas de la cuadrícula según unas reglas específicas.
Después del intercambio inicial, el siguiente proceso se repite hasta que ya no se produzcan cambios en la cuadrícula:
Etapa 1: Reacciones en cadena de grupos de coincidencias
Todas las gemas que pertenecen a cualquier grupo de coincidencias desaparecen simultáneamente.
Las gemas de todos los tipos situadas sobre las que han desaparecido caen por gravedad y llenan los espacios vacíos. Durante este proceso, cualquier gema bomba que baje al menos una casilla queda activada.
Si se forman nuevos grupos de coincidencias después de la caída, esta etapa se repite desde el primer subpaso.
Si no se forman más grupos, se pasa a la etapa 2.
Etapa 2: Detonación de bombas activadas
Todas las bombas que están activadas explotan simultáneamente.
Cada bomba que explota emite rayos en las direcciones horizontal y vertical.
Los rayos viajan desde la posición de la bomba hasta el borde de la cuadrícula.
La trayectoria de un rayo queda bloqueada si alcanza una gema de vibranium.
Todas las gemas normales y bombas en la trayectoria del rayo desaparecen junto con la bomba que ha explotado.
Las bombas que aún no han explotado y son alcanzadas por un rayo simplemente desaparecen sin explotar.
Las gemas situadas sobre las que han desaparecido caen por gravedad y llenan los nuevos espacios vacíos. Durante este proceso, cualquier bomba que baje al menos una casilla queda activada. Después se repite la etapa 1.
Cuando las etapas 1 y 2 ya no producen cambios, termina todo el proceso. Las gemas bomba y de vibranium no se seleccionan para el intercambio inicial y no forman grupos de coincidencias. Además, una gema de vibranium nunca desaparece y actúa como barrera que bloquea los rayos de las bombas, pero está afectada por la gravedad y cae en los espacios vacíos que tenga debajo.
Por ejemplo, considera una puerta mágica con una cuadrícula de $6\times4$, como en la figura 1. En ella, $0$ representa una gema bomba, $-1$ una gema de vibranium y los números positivos gemas normales. Partiendo del estado inicial (a), intercambiar las gemas de $(6,1)$ y $(5,4)$ produce el estado (b). La posición $(r,c)$ indica la casilla de la fila $r$ desde arriba y la columna $c$ desde la izquierda. Las coordenadas empiezan en 1. Este estado contiene un grupo de tres gemas $2$. Según la etapa 1, cuando desaparecen se alcanza el estado (c). En ese momento se activa la bomba de $(4,3)$ y se forma un nuevo grupo de tres gemas $1$. La etapa 1 elimina de nuevo las tres gemas $1$, dando el estado (d). Como ya no hay grupos de coincidencias, la bomba explota en la etapa 2, produciendo el estado (e). Aquí se forman dos grupos, de tres gemas $1$ y cuatro gemas $3$. Cuando vuelven a desaparecer en la etapa 1, se alcanza el estado (f). Ya no se producen cambios, por lo que es el estado final. En total desaparecen 18 gemas durante el proceso.
Figura 1. Reacciones en cadena
La puerta mágica se abre cuando desaparece un número específico de gemas. Tu tarea es escribir un programa que, dada la información sobre la puerta mágica y las posiciones de las dos gemas normales que se van a intercambiar, calcule cuántas gemas han desaparecido cuando se detenga por completo toda la reacción en cadena iniciada por un único intercambio.
Entrada
El programa debe leer de la entrada estándar. La entrada empieza con dos enteros $m,n$ ($3\le m\le80$; $3\le n\le80$), que representan el número de filas y columnas de la cuadrícula. Las siguientes $m$ líneas contienen $n$ enteros cada una y representan las gemas de cada fila: $0$ es una gema bomba, $-1$ una gema de vibranium, y los enteros entre $1$ y $9$, inclusive, representan gemas normales. La última línea contiene cuatro enteros $r_1,c_1,r_2,c_2$ ($1\le r_1,r_2\le m$; $1\le c_1,c_2\le n$), donde $(r_1,c_1)$ y $(r_2,c_2)$ son las coordenadas de las dos gemas normales distintas que se van a intercambiar. Las coordenadas empiezan en 1.
Salida
El programa debe escribir en la salida estándar. Imprime exactamente una línea. Debe contener un entero que represente el número total de gemas que desaparecerán al completarse todos los procesos.
A continuación se muestran la entrada y la salida de ejemplo de dos casos de prueba. (La entrada de ejemplo 1 corresponde a la figura 1(a).)
Ejemplos
Entrada 1
6 4 1 1 2 2 3 2 -1 1 3 1 0 2 1 1 3 1 3 2 2 3 2 1 2 1 6 1 5 4
Salida 1
18
Entrada 2
4 5 0 2 1 2 2 0 1 2 2 0 1 1 2 1 0 2 -1 -1 -1 2 3 3 3 4
Salida 2
15