10848. Блокада
Держава Флатландія є прямокутником розміром \(𝑀 \times 𝑁\) , що складається з одиничних квадратиків. Флатландія розділена на \(K\) провінцій (\(2 \le 𝐾 \le 100\)). Кожна провінція є зв'язна сукупність квадратиків, тобто. з кожної точки провінції можна дійти до будь-якої іншої точки, при цьому дозволяється переходити з квадратика на квадратик, тільки якщо вони мають спільну сторону (загальної вершини недостатньо). У Флатландії немає точки, яка межувала б з більш ніж трьома провінціями (тобто чотири квадратики, що мають спільну вершину, не можуть належати чотирьом різним провінціям).
Кожна провінція має власний знак. Столиця Флатландії знаходиться в провінції, якій належить символ \(𝐴\) (велика латинська літера \(𝐴\) ). Провінція називається прикордонною, якщо вона містить граничні квадратики. Провінція, де знаходиться столиця Флатландії, не є прикордонною.
Король сусіднього з Флатландією королівства Ректиланія вирішив завоювати Флатландію. І тому він хоче захопити столицю Флатландії. Однак він знає, що сил його армії недостатньо, щоб зробити це одразу. Тому спочатку він хоче оточити столичну провінцію, щоб послабити сили супротивника довгою блокадою, а потім захопити столицю.
Щоб оточити провінцію, потрібно захопити всі провінції, з якими вона межує. Дві провінції межують, якщо існує два квадратики, що мають спільну сторону, один з яких належить першій з них, а другий - другій. Щоб захопити провінцію, треба щоб виконувалася одна з двох умов: або вона прикордонна, або межує з якоюсь уже захопленою провінцією.
Щоб зберегти сили своєї армії, король Ректиланії хоче встановити блокаду столичної провінції, захопивши якнайменше провінцій. Допоможіть йому дізнатися, скільки провінцій потрібно захопити. Захоплювати столичну провінцію не можна, оскільки для цього сил армії Ректиланії поки що недостатньо.
Формат вхідних даних
У першому рядку вводяться числа \(𝑀\) і \(𝑁\) (\(3 \le 𝑀 , 𝑁 \le 200\)).
Наступні \(𝑀\) рядків містять \(𝑁\) символів кожен та задають карту Флатландії. Символ, що знаходиться в 1-му рядку вхідних даних на \(𝑗\)-му місці, є символом провінції, якій належить квадратик (\(𝑖 , 𝑗 \)). Всі символи мають ASCII-код більше 32 (пробілу).
Формат вихідних даних
Виведіть кількість провінцій, які потрібно захопити. Якщо блокаду встановити неможливо, виведіть "-1".
Приклад вхідних даних
3 3
BBB
BAB
BBB
Приклад вихідних даних
1
Коментарі