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

Водні області повинні утворювати один зв'язаний регіон. (Усі чорні клітинки повинні бути зв'язані.)
Кожна пронумерована клітинка повинна бути частиною острова.
Кількість клітинок в острові дорівнює числу, яке він містить.
Кожен регіон (острів) білих клітинок (земля) повинен містити рівно одне число.
Два острови не можуть бути з'єднані.
2 \times 2 блоки чорних квадратів не допускаються.
Зверніть увагу, що діагональна суміжність не вважається зв'язаністю. Ви можете бути впевнені, що для кожної головоломки завжди існує унікальне рішення.
У вхідних даних кілька тестових випадків. Перша строка кожного тестового випадку містить два числа , (3 \le n, m \le 9), які визначають розміри головоломки, за якими слідують рядків, кожен з яких містить символів, включаючи '.' (що позначає порожню клітинку) та -значні числа.
Остання строка вхідних даних містить два нульових числа.
Вихід для кожного тестового випадку повинен показувати розв'язану головоломку. Позначайте чорні (водні) клітинки символом '#'. Додайте порожній рядок у виході після кожної головоломки.
Приклад 1