Заливка
Василько — програміст початківець. Останньою його ідеєю було написати графічний редактор чорно-білих зображень. На жаль, натхнення вистачило лише на один інструмент — заливку.
У вікні редактора картинка відображається як прямокутня таблиця M × N клітин; кожна з яких зафарбована або у чорний, або у білий колір. Дві клітинки назвемо сусідніми, якщо у них є спільна сторона. Областю ж будемо називати максимальну підмножину клітин одного кольору, таку, що з кожної можна попасти в кожну, переміщуючись лише по сусіднім клітинкам цієї області.
Заливка працює наступним чином: користувач вказує на довільну клітинку таблиці, після чого вся область, що містить дану клітинку, перефарбовується у протилежний колір.
Тепер Василько хоче навчитись витирати зображення при допомозі свого редактора. Картинка вважається чистою, якщо вона або повністю чорна, або повністю біла. Визначіть мінімальну кількість заливок, які потрібно для того, щоб зробити з даного зображення чисте.
Вхідні дані
Вводиться два натуральних числа N, M (1 ≤ N ≤ 100, 1 ≤ M ≤ 100) — кількість рядків і стовпчиків у таблиці, що відповідає даному зображенню. У наступних N рядках міститься по M символів. У i‑му рядку і j-му стовпчику стоїть 0, якщо відповідна клітинка біла, і 1, якщо чорна.
Вихідні дані
Виведіть одне число — мінімальну кількість заливок, потрібних для витирання даної картинки.