/* بِسْمِ اللَّـهِ الرَّحْمَـٰنِ الرَّحِيم
(وَاصبِر فَإِنَّ اللَّهَ لا يُضيعُ أَجرَ المُحسِنينَ)
*/
#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
// ياعم صلي علي النبي
//alt + ctrl + l
using namespace std;
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
struct node {
int vertex;
int color;
};
const int N = 502;
char mat[N][N];
bool vis[N][N];
int n, m, k;
int nofdots = 0, cnt = 0;
bool isin(int i, int j) { return i >= 1 && i <= n && j >= 1 && j <= m; }
bool target = false;
void dfs(int i, int j) {
if (cnt >= nofdots - k )return;
vis[i][j] = true;
int x, y;
for (int d = 0; d < 4; d++) {
x = i + dx[d];
y = j + dy[d];
if(mat[x][y]=='.' and !vis[x][y]) {
cnt++;
dfs(x,y);
}
}
//time : O( V + E )
}
void solve() {
cin >> n >> m >> k;
int x,y;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> mat[i][j];
vis[i][j] = false;
if(mat[i][j] == '.')nofdots++,x=i,y=j;
}
}
dfs(1,1);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if(mat[i][j]=='#')cout<<'#';
else if(vis[i][j])cout<<'.';
else cout<<'X';
}
cout<<endl;
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin>>t;
while (t--) {
solve();
}
return 0;
}
/*
(وَأَنْ لَيْسَ لِلإِنسَانِ إِلَّا مَا سَعَى وَأَنَّ سَعْيَهُ سَوْفَ يُرَى)
*/
LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDYqNmQ2LPZktmF2ZAg2KfZhNmE2ZHZjtmA2YfZkCDYp9mE2LHZkdmO2K3ZktmF2Y7ZgNmw2YbZkCDYp9mE2LHZkdmO2K3ZkNmK2YUKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKNmI2Y7Yp9i12KjZkNixINmB2Y7YpdmQ2YbZkdmOINin2YTZhNmR2Y7Zh9mOINmE2Kcg2YrZj9i22YrYudmPINij2Y7YrNix2Y4g2KfZhNmF2Y/Yrdiz2ZDZhtmK2YbZjikKKi8KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINmK2KfYudmFINi12YTZiiDYudmE2Yog2KfZhNmG2KjZigovL2FsdCArIGN0cmwgKyBsCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBkeFtdID0gezEsIDAsIC0xLCAwfTsKaW50IGR5W10gPSB7MCwgMSwgMCwgLTF9OwoKc3RydWN0IG5vZGUgewogICAgaW50IHZlcnRleDsKICAgIGludCBjb2xvcjsKfTsKCmNvbnN0IGludCBOID0gNTAyOwpjaGFyIG1hdFtOXVtOXTsKYm9vbCB2aXNbTl1bTl07CmludCBuLCBtLCBrOwoKaW50IG5vZmRvdHMgPSAwLCBjbnQgPSAwOwpib29sIGlzaW4oaW50IGksIGludCBqKSB7IHJldHVybiBpID49IDEgJiYgaSA8PSBuICYmIGogPj0gMSAmJiBqIDw9IG07IH0KYm9vbCB0YXJnZXQgPSBmYWxzZTsKCnZvaWQgZGZzKGludCBpLCBpbnQgaikgewogICAgaWYgKGNudCA+PSBub2Zkb3RzIC0gayApcmV0dXJuOwogICAgdmlzW2ldW2pdID0gdHJ1ZTsKICAgIGludCB4LCB5OwogICAgCiAgICBmb3IgKGludCBkID0gMDsgZCA8IDQ7IGQrKykgewogICAgICAgIHggPSBpICsgZHhbZF07CiAgICAgICAgeSA9IGogKyBkeVtkXTsKICAgICAgICBpZihtYXRbeF1beV09PScuJyBhbmQgIXZpc1t4XVt5XSkgewogICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgZGZzKHgseSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvL3RpbWUgOiBPKCBWICsgRSApCn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBtID4+IGs7CiAgICBpbnQgeCx5OwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBtYXRbaV1bal07CiAgICAgICAgICAgIHZpc1tpXVtqXSA9IGZhbHNlOwogICAgICAgICAgICBpZihtYXRbaV1bal0gPT0gJy4nKW5vZmRvdHMrKyx4PWkseT1qOwogICAgICAgIH0KICAgIH0KCgogICAgZGZzKDEsMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBtOyBqKyspIHsKICAgICAgICAgICAgaWYobWF0W2ldW2pdPT0nIycpY291dDw8JyMnOwogICAgICAgICAgICBlbHNlIGlmKHZpc1tpXVtqXSljb3V0PDwnLic7CiAgICAgICAgICAgIGVsc2UgY291dDw8J1gnOwogICAgICAgIH0KICAgICAgICBjb3V0PDxlbmRsOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBpbnQgdCA9IDE7CgogICAgLy8gY2luPj50OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQoKLyoKICAgICAgICAgICAgKNmI2Y7Yo9mO2YbZkiDZhNmO2YrZktiz2Y4g2YTZkNmE2KXZkNmG2LPZjtin2YbZkCDYpdmQ2YTZkdmO2Kcg2YXZjtinINiz2Y7YudmO2Ykg2YjZjtij2Y7ZhtmR2Y4g2LPZjti52ZLZitmO2YfZjyDYs9mO2YjZktmB2Y4g2YrZj9ix2Y7ZiSkKKi8K