Das Labyrinth füllen

Sie haben ein gitterförmiges Labyrinth mit Höhe h und Breite w, in dem Bodenfelder durch Punkte (.) und Wandfelder durch Rautezeichen (#) gekennzeichnet sind. Ihre Aufgabe ist es, k Bodenfelder als Wände zu markieren. Achten Sie jedoch darauf, dass die verbleibenden Bodenfelder weiterhin ein zusammenhängendes Gebiet bilden, damit keine Teile des Labyrinths versehentlich voneinander getrennt werden.
Es ist garantiert, dass alle Bodenfelder im ursprünglichen Labyrinth bereits ein zusammenhängendes Gebiet formen.

Eingabe

In der ersten Zeile der Eingabe stehen drei ganze Zahlen h, w (1 ≤ h, w ≤ 500) und k (0 ≤ k < n), wobei n die Anzahl der Bodenfelder im ursprünglichen Gitter ist.

Ausgabe

Das Programm soll ein gültiges Labyrinth ausgeben, in dem k Bodenfelder aus dem ursprünglichen Gitter in Wände umgewandelt wurden, ohne dass dabei getrennte Bereiche entstehen.
Die neu als Wand markierten Felder sollen mit X dargestellt werden.

Beispiele

Input

5 4 5
#...
#.#.
.#..
...#
.#.#
Output


#XXX
#X#X
.#..
...#
.#.#

Input

3 4 2
#..#
..#.
#...
Output


#XX#
..#.
#...
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue