Magiczne drzwi do jaskini skarbów to siatka $m\times n$ wypełniona różnymi klejnotami. Klejnoty dzielą się na trzy kategorie: zwykłe klejnoty różnych kolorów i kształtów oraz dwa specjalne rodzaje — klejnoty-bomby i klejnoty z vibranium.
Grupa co najmniej trzech pasujących klejnotów to trzy lub więcej identycznych zwykłych klejnotów ułożonych kolejno pionowo albo poziomo. Jeden klejnot może należeć jednocześnie do grupy poziomej i pionowej w ich punkcie przecięcia. Klejnoty-bomby nie tworzą takich grup. Klejnoty z vibranium także ich nie tworzą.
Początkowo w siatce nie ma grup pasujących klejnotów. Gdy po raz pierwszy dotkniesz ręką dwóch zwykłych klejnotów, zamienią się miejscami. Ta jedna zamiana wywołuje reakcję łańcuchową, podczas której klejnoty znikają z siatki zgodnie z określonymi zasadami.
Po początkowej zamianie następujący proces powtarza się, aż w siatce nie zachodzą już żadne zmiany:
Etap 1: Reakcje łańcuchowe grup pasujących klejnotów
Wszystkie klejnoty należące do dowolnej grupy pasujących klejnotów znikają jednocześnie.
Klejnoty wszystkich rodzajów znajdujące się nad znikniętymi klejnotami spadają w dół pod wpływem grawitacji, wypełniając puste pola. Każdy klejnot-bomba, który przesunie się w dół o co najmniej jedno pole, zostaje aktywowany.
Jeśli po opadnięciu klejnotów powstaną nowe grupy pasujących klejnotów, etap jest powtarzany od pierwszego kroku.
Jeśli nie powstaną kolejne grupy, przejdź do etapu 2.
Etap 2: Detonacja aktywowanych bomb
Wszystkie aktualnie aktywowane bomby wybuchają jednocześnie.
Każda wybuchająca bomba emituje promienie w kierunkach poziomych i pionowych.
Promienie biegną od położenia bomby do brzegu siatki.
Droga promienia zostaje zablokowana, jeśli trafi on w klejnot z vibranium.
Wszystkie zwykłe klejnoty i bomby na drodze promienia znikają wraz z wybuchającą bombą.
Niewybuchłe bomby trafione promieniem po prostu znikają, nie wybuchając.
Klejnoty nad znikniętymi klejnotami spadają pod wpływem grawitacji, wypełniając nowe puste pola. Każda bomba, która przesunie się w dół o co najmniej jedno pole, zostaje aktywowana. Następnie powtarza się etap 1.
Gdy etapy 1 i 2 nie powodują już zmian, cały proces się kończy. Klejnoty-bomby i klejnoty z vibranium nie są wybierane do początkowej zamiany i nie tworzą grup pasujących klejnotów. Klejnot z vibranium nigdy nie znika i stanowi barierę blokującą promienie bomb, lecz podlega grawitacji i spada do pustych pól pod nim.
Na przykład rozważ magiczne drzwi z siatką $6\times4$, jak na rysunku 1. Liczba $0$ oznacza klejnot-bombę, $-1$ klejnot z vibranium, a liczby dodatnie zwykłe klejnoty. Zaczynając od stanu (a), zamiana klejnotów w $(6,1)$ i $(5,4)$ daje stan (b). Położenie $(r,c)$ oznacza pole w $r$-tym wierszu od góry i $c$-tej kolumnie od lewej. Współrzędne są numerowane od 1. W tym stanie istnieje grupa trzech klejnotów $2$. Zgodnie z etapem 1 ich zniknięcie prowadzi do stanu (c). Wtedy bomba w $(4,3)$ zostaje aktywowana i powstaje nowa grupa trzech klejnotów $1$. Etap 1 ponownie usuwa trzy klejnoty $1$, dając stan (d). Ponieważ nie ma już grup pasujących klejnotów, bomba wybucha w etapie 2, dając stan (e). Powstają wtedy dwie grupy: trzech klejnotów $1$ i czterech klejnotów $3$. Gdy znikną w etapie 1, osiągany jest stan (f). Nie zachodzą już dalsze zmiany, więc jest to stan końcowy. Łącznie znika 18 klejnotów.
Rysunek 1. Reakcje łańcuchowe
Magiczne drzwi otwierają się, gdy zniknie określona liczba klejnotów. Napisz program, który na podstawie informacji o drzwiach i położeniach dwóch zwykłych klejnotów do zamiany obliczy liczbę klejnotów znikających do chwili całkowitego zakończenia reakcji łańcuchowej rozpoczętej jedną zamianą.
Wejście
Program ma czytać ze standardowego wejścia. Pierwszy wiersz zawiera dwie liczby całkowite $m,n$ ($3\le m\le80$; $3\le n\le80$), oznaczające liczbę wierszy i kolumn siatki. Każdy z kolejnych $m$ wierszy zawiera $n$ liczb całkowitych opisujących klejnoty w danym wierszu: $0$ oznacza bombę, $-1$ klejnot z vibranium, a liczby od $1$ do $9$, włącznie, zwykłe klejnoty. Ostatni wiersz zawiera cztery liczby całkowite $r_1,c_1,r_2,c_2$ ($1\le r_1,r_2\le m$; $1\le c_1,c_2\le n$), gdzie $(r_1,c_1)$ i $(r_2,c_2)$ to współrzędne dwóch różnych zwykłych klejnotów do zamiany. Współrzędne są numerowane od 1.
Wyjście
Program ma pisać na standardowe wyjście. Wypisz dokładnie jeden wiersz zawierający liczbę całkowitą oznaczającą łączną liczbę klejnotów, które znikną po zakończeniu wszystkich procesów.
Poniżej przedstawiono przykładowe wejście i wyjście dla dwóch przypadków testowych. (Przykładowe wejście 1 odpowiada rysunkowi 1(a).)
Przykład
Wejście 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
Wyjście 1
18
Wejście 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
Wyjście 2
15