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

Павел обожает клетчатые лабиринты. Клетчатый лабиринт — это прямоугольный лабиринт размера n × m, где каждая клетка либо свободна, либо является стеной, а перемещаться из одной клетки в другую можно только в том случае, если они обе свободные и имеют общую сторону.

Павел нарисовал клетчатый лабиринт, все свободные клетки которого образуют связную область, то есть из любой свободной клетки можно добраться до любой другой. Павлу не нравится, что в его лабиринте слишком мало стен. Он хочет превратить ровно k свободных клеток в стены таким образом, чтобы все оставшиеся свободные клетки по прежнему образовывали бы связную область. Помогите ему.

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

В первой строке находятся три целых числа n, m, k (1 ≤ n, m ≤ 500, 0 ≤ k < s), где n и m — соответственно высота и ширина лабиринта, k — количество стен, которое Павел хочет добавить в лабиринт, а буквой s обозначено количество свободных клеток в исходном лабиринте.

Далее следуют n строк по m символов каждая, задающие исходный лабиринт. Если символ в строке равен «.», то соответствующая клетка свободная, а если он равен «#», то эта клетка является стеной.

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

Выведите n строк по m символов каждая: новый лабиринт, удовлетворяющий всем требованиям Павла. Пустые клетки, которые после преобразования стали стенами, обозначайте «X», а остальные клетки оставляйте без изменения (то есть «.» и «#»).

Гарантируется, что решение существует. Если существует несколько решений, разрешается вывести любое.

Примеры
Входные данные
3 4 2
#..#
..#.
#...
Выходные данные
#.X#
X.#.
#...
Входные данные
5 4 5
#...
#.#.
.#..
...#
.#.#
Выходные данные
#XXX
#X#.
X#..
...#
.#.#