Дано таблицю з рядків і стовпців. У кожній клітинці записано або .
Потрібно видалити рівно один рядок і рівно один стовпець. Після цього решта рядків і стовпців зсуваються так, щоб у таблиці не залишилося пропусків. Їхній початковий порядок зберігається.
Далі за одну операцію можна змінити значення однієї клітинки з на або навпаки.
Потрібно отримати таблицю, у якій:
у верхній лівій клітинці записано ;
будь-які дві клітинки зі спільною стороною містять різні числа.
Знайдіть мінімальну кількість таких операцій за умови оптимального вибору рядка та стовпця для видалення.
У першому рядку задано два цілі числа та (2 \leq n,m \leq 2000) — кількість рядків і стовпців таблиці.
У кожному з наступних рядків задано рядок довжини , який складається лише із символів та .
Виведіть одне ціле число — мінімальну кількість операцій зміни значень клітинок.
Приклад 1
Приклад 2
Приклад 3
У першому прикладі після видалення другого рядка та другого стовпця залишиться таблиця з рядками 01 та 10. Змінювати значення клітинок не потрібно.
У другому прикладі можна видалити третій рядок і п'ятий стовпець. У таблиці, що залишиться, достатньо змінити значення клітинки в третьому рядку та першому стовпці з на . Без змін отримати потрібну таблицю неможливо.
У третьому прикладі після будь-якого вибору рядка та стовпця для видалення залишиться одна клітинка зі значенням . Її потрібно змінити на .
балів — n,m \leq 20.
балів — \min(n,m) \leq 20.
балів — без додаткових обмежень.