Василько — програміст-початківець. Його останньою ідеєю було створити графічний редактор для чорно-білих зображень. На жаль, йому вдалося реалізувати лише один інструмент — операцію заливки.
Зображення в редакторі представлено у вигляді прямокутної таблиці розмірами N \times M; кожна клітинка є або чорною, або білою. Дві клітинки вважаються сусідніми, якщо вони мають спільний бік. Область визначається як максимальна підмножина клітин одного кольору, така що з будь-якої клітинки цієї області можна дістатись до будь-якої іншої, переходячи тільки через сусідні клітинки тієї ж області.
Інструмент заливки працює так: користувач вибирає будь-яку клітинку у таблиці, а потім вся область, що містить цю клітинку, перекрашується у протилежний колір.
Тепер Василько хоче навчитись стирати зображення за допомогою свого редактора. Зображення вважається стертим, якщо воно або повністю чорне, або повністю біле. Визначте мінімальну кількість заливок, необхідну для стирання даного зображення.
Дано два натуральних числа , (1 \leq N \leq 100, 1 \leq M \leq 100) — кількість рядків і стовпців у таблиці, що представляє зображення. Далі йдуть рядків, кожен з яких містить символів. На -му рядку і -му стовпці символ означає білу клітинку, а — чорну.
Виведіть одне число — мінімальну кількість заливок, необхідну для стирання цього зображення.
Приклад 1