Нурікабе#6915

Нурікабе

1 секунда
64 мегабайти
Складна

Ваше завдання — створити розв'язувач для Нурікабе, головоломки, що визначає бінарність. Гра відбувається на сітці, зазвичай прямокутній (без стандартного розміру), яка містить порожні та пронумеровані клітинки. Ви повинні визначити для кожної клітинки, чи є вона білою (земля) чи чорною (вода), дотримуючись наступних умов. Острів — це максимальна зв'язана область білих клітинок.

Зверніть увагу, що діагональна суміжність не вважається зв'язаністю. Ви можете бути впевнені, що для кожної головоломки завжди існує унікальне рішення.

Вхідні дані

У вхідних даних кілька тестових випадків. Перша строка кожного тестового випадку містить два числа , (3 \le n, m \le 9), які визначають розміри головоломки, за якими слідують рядків, кожен з яких містить символів, включаючи '.' (що позначає порожню клітинку) та -значні числа.

Остання строка вхідних даних містить два нульових числа.

Вихідні дані

Вихід для кожного тестового випадку повинен показувати розв'язану головоломку. Позначайте чорні (водні) клітинки символом '#'. Додайте порожній рядок у виході після кожної головоломки.

Приклади

Приклад 1

Loading
Loading