11485. Цифрове графіті
У нас є сітка з \(H\) рядками і \(W\) стовпцями. Нехай (\(i, j\)) — квадрат у \(i\)-му рядку та \(j\)-му стовпці. Кожен квадрат пофарбований в чорний або білий колір. Якщо \(S_{i, j}\) є \('\#'\), то (\(i, j\)) пофарбовано в чорний колір; якщо \(S_{i, j}\) є '.', то (\(i, j\)) пофарбовано в білий колір.
Гарантується, що крайні квадрати білі. Тобто квадрати, які можна представити у вигляді (\(1, j\)), (\(H, j\)), (\(i, 1\)) або (\(i, W\)) білі.
Розглянемо частину сітки, пофарбовану в чорний колір, як багатокутник. Скільки у нього сторін (принаймні)? Тут гарантується, що частина, пофарбована в чорний колір, утворює багатокутник без самоперетину, тобто виконується наступне:
хоча б один квадрат пофарбований у чорний колір;
ми можемо подорожувати між будь-якими двома квадратами, пофарбованими в чорний колір, багаторазово рухаючись вгору, вниз, вліво або вправо, проходячи тільки через чорні квадрати;
ми можемо подорожувати між будь-якими двома квадратами, пофарбованими в білий колір, багаторазово рухаючись вгору, вниз, вліво або вправо, проходячи тільки через білі квадрати. (Зверніть увагу, що крайні квадрати в сітці пофарбовані в білий колір.)
Формат вхідних даних
Перший рядок містить цілі числа \(H, W\) (\(3 \le H, W \le 10\))
Наступні \(H\) рядків містять по \(W\) символів \(S_{i,j}\) (\(S_{i,j} = '\#', '.'\))
Числа розділяються пропуском, символи не розділяються.
Формат вихідних даних
У вихідний потік виведіть шукану кількість сторін.
Приклад вхідних даних
5 5
.....
.###.
.###.
.###.
.....
Приклад вихідних даних
4
Коментарі