Taeyang rozpoczyna grę z $MN$ białymi i czarnymi kamieniami umieszczonymi na siatce $M\times N$, jak poniżej.
Dla dowolnego kamienia $X$ jego sąsiadami nazywamy $4$ kamienie bezpośrednio nad nim, pod nim, z lewej i z prawej strony. Taeyang może wybrać jeden kamień i zmienić jego kolor. Jego sąsiedzi o tym samym pierwotnym kolorze również zmieniają kolor na nowy. Proces powtarza się: sąsiedzi kamieni, które zmieniły kolor, również go zmieniają, jeśli mieli ten sam pierwotny kolor.
Na przykład po zmianie kamienia $A$ na biały czarne kamienie w kształcie „ㄷ” stają się białe, jak poniżej.
Następnie zmiana kamienia $C$ na biały daje poniższy obraz.
Potem zmieniamy kamień $F$ na biały, a na końcu kamień $E$ na biały. Wszystkie kamienie stają się białe. Zatem cztery zmiany koloru wystarczyły, aby wszystkie kamienie stały się białe.
Można jednak nadać wszystkim kamieniom ten sam kolor już w dwóch zmianach. Najpierw zmiana kamienia $B$ na czarny daje poniższy obraz.
Następnie można zmienić kamień $A$ na biały, aby wszystkie kamienie były białe, albo kamień $D$ na czarny, aby wszystkie były czarne. Zatem dwie zmiany koloru wystarczają do ujednolicenia koloru wszystkich kamieni.
Napisz program, który dla białych i czarnych kamieni na siatce $M\times N$ obliczy minimalną liczbę zmian koloru potrzebnych do nadania wszystkim kamieniom tego samego koloru.
Wejście
Pierwszy wiersz zawiera dwie dodatnie liczby całkowite $M$ i $N$, opisujące siatkę $M\times N$, oddzielone spacją. Obie są od $2$ do $100$ włącznie. Każdy z kolejnych $M$ wierszy zawiera $N$ wartości oddzielonych spacjami, opisujących jeden wiersz siatki: $0$ oznacza biały kamień, a $1$ czarny.
Wyjście
W pierwszym wierszu wypisz minimalną liczbę zmian koloru potrzebnych do nadania wszystkim kamieniom tego samego koloru.
Przykład
Wejście 1
5 6 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1
Wyjście 1
2