Шахівниця#13093

Шахівниця

1 секунда
256 мегабайтів

Дано таблицю з рядків і стовпців. У кожній клітинці записано або .

Потрібно видалити рівно один рядок і рівно один стовпець. Після цього решта рядків і стовпців зсуваються так, щоб у таблиці не залишилося пропусків. Їхній початковий порядок зберігається.

Далі за одну операцію можна змінити значення однієї клітинки з на або навпаки.

Потрібно отримати таблицю, у якій:

Знайдіть мінімальну кількість таких операцій за умови оптимального вибору рядка та стовпця для видалення.

Вхідні дані

У першому рядку задано два цілі числа та (2 \leq n,m \leq 2000) — кількість рядків і стовпців таблиці.

У кожному з наступних рядків задано рядок довжини , який складається лише із символів та .

Вихідні дані

Виведіть одне ціле число — мінімальну кількість операцій зміни значень клітинок.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Примітка

У першому прикладі після видалення другого рядка та другого стовпця залишиться таблиця з рядками 01 та 10. Змінювати значення клітинок не потрібно.

У другому прикладі можна видалити третій рядок і п'ятий стовпець. У таблиці, що залишиться, достатньо змінити значення клітинки в третьому рядку та першому стовпці з на . Без змін отримати потрібну таблицю неможливо.

У третьому прикладі після будь-якого вибору рядка та стовпця для видалення залишиться одна клітинка зі значенням . Її потрібно змінити на .

Оцінювання

  1. балів — n,m \leq 20.

  2. балів — \min(n,m) \leq 20.

  3. балів — без додаткових обмежень.