A. Остров сокровищ
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Пират Джон Сильвер нашел карту, на которой изображен ровно один остров. Карта представляет собой кусок материи, разбитый на клетки: n клеток по вертикали и m клеток по горизонтали. Джон Сильвер знает, что каждая клетка карты обозначает либо сушу, либо воду, однако некоторые из клеток стерлись, и теперь совершенно невозможно разобрать, что же на этих клетках было нарисовано.

Помогите Джону Сильверу восстановить карту острова. Островом называется непустое связное в четырех направлениях (вверх, вниз, влево и вправо) множество клеток суши.

Входные данные

В первой строке записаны два целых числа n и m (1 ≤ n,  m ≤ 50) — размеры карты.

Каждая из следующих n строк содержит m символов и описывает карту. Символ равен «#», если клетка обозначает воду, «.», если эта клетка соответствует суше, и «?», если эта клетка стерлась.

Гарантируется, что входные данные содержат хотя бы один символ «.» и хотя бы один символ «?».

Выходные данные

Если карту нельзя восстановить так, чтобы на ней оказался изображен ровно один остров, выведите «Impossible».

Если карту можно восстановить единственным образом, выведите n строк по m символов в том же формате, что и во входных данных, заменяя символы «?» на «.» или «#».

Если же карту можно восстановить несколькими способами, выведите «Ambiguous».

Примеры
Входные данные
5 7

#######

#..#..#

#..?..#

#..#..#

#######
Выходные данные
#######

#..#..#

#.....#

#..#..#

#######
Входные данные
5 7

#######

#...#.#

#.?.?.#

#.#...#

#######
Выходные данные
Ambiguous
Входные данные
5 7

#######

#.#.#.#

#.#?#.#

#.#.#.#

#######
Выходные данные
Impossible