eolymp
bolt
Try our new interface for solving problems
Problems

Pouring (RU)

Pouring (RU)

Вася --- начинающий программист. Последней его идеей было написать графический редактор черно-белых изображений. К сожалению, вдохновения хватило только на один инструмент --- заливку. В окне редактора картинка отображается как прямоугольная таблица \textbf{M} × \textbf{N} клеток; каждая покрашена либо в чёрный, либо в белый цвет. Две клетки назовём соседними, если у них имеется общая сторона. Областью же будем называть максимальное подмножество клеток одного цвета, такое, что из каждой можно попасть в каждую, перемещаясь только по соседним клеткам этой области. Заливка работает следующим образом: пользователь указывает на произвольную клетку таблицы, после чего вся область, содержащая данную клетку, перекрашивается в противоположный цвет. Теперь Вася хочет научиться стирать изображения с помощью своего редактора. Картинка считается чистой, если она либо полностью чёрная, либо полностью белая. Определите минимальное число заливок, которое потребуется для того, чтобы сделать из данного изображения чистое. \InputFile Вводятся два натуральных числа \textbf{N}, \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{100}, \textbf{1} ≤ \textbf{M} ≤ \textbf{100}) --- количество строк и столбцов у таблицы, соответствующей данному изображению. В следующих \textbf{N} строках содержатся по \textbf{M} символов. В \textbf{i}‑й строке и \textbf{j}-м столбце стоит \textbf{0}, если соответствующая клетка белая, и \textbf{1}, если чёрная. \OutputFile Выведите одно число --- минимальное количество заливок, требуемых для стирания данной картинки.
Time limit 2 seconds
Memory limit 64 MiB
Input example #1
3 5
10101
01010
10101
Output example #1
3