#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define sr(a) sort(a.begin(), a.end())
#define rv(a) reverse(a.begin(), a.end())
#define all(a) a.begin(), a.end()
#ifndef ONLINE_JUDGE
#include "debug.cpp"
#else
#define debug(...)
#define debugArr(...)
#endif
int n,m,k;
vector<vector<char>> a;
vector<vector<bool>> vis;
int dx[] = {0,1,0,-1};
int dy[] = {-1,0,1,0};
void dfs(int i,int j)
{
if(vis[i][j]) return;
vis[i][j] = true;
for(int t = 0; t<4; t++)
{
int new_x = i + dx[t];
int new_y = j + dy[t];
if(new_x >= 0 && new_x < n && new_y >= 0 && new_y < m)
{
if(a[new_x][new_y] == '.')
{
dfs(new_x,new_y);
}
}
}
if(k>0)
{
k--;
a[i][j] = 'X';
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// freopen("input.in", "r", stdin);
// freopen("output.out", "w", stdout);
cin>>n>>m>>k;
a.resize(n+1,vector<char>(m+1));
vis.resize(n+1,vector<bool>(m+1,false));
for(int i = 0 ; i <n; i++)
{
for(int j = 0; j<m; j++)
{
cin>>a[i][j];
}
}
for(int i = 0 ; i <n; i++)
{
for(int j = 0; j<m; j++)
{
if(!vis[i][j] && a[i][j] == '.')
{
dfs(i,j);
}
}
}
for(int i = 0 ; i <n; i++)
{
for(int j = 0; j<m; j++)
{
cout << a[i][j];
}
cout <<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3IoYSkgc29ydChhLmJlZ2luKCksIGEuZW5kKCkpCiNkZWZpbmUgcnYoYSkgcmV2ZXJzZShhLmJlZ2luKCksIGEuZW5kKCkpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQoKCgoKI2lmbmRlZiBPTkxJTkVfSlVER0UKI2luY2x1ZGUgImRlYnVnLmNwcCIKI2Vsc2UKI2RlZmluZSBkZWJ1ZyguLi4pCiNkZWZpbmUgZGVidWdBcnIoLi4uKQojZW5kaWYKaW50IG4sbSxrOwp2ZWN0b3I8dmVjdG9yPGNoYXI+PiBhOwp2ZWN0b3I8dmVjdG9yPGJvb2w+PiB2aXM7CmludCBkeFtdID0gezAsMSwwLC0xfTsKaW50IGR5W10gPSB7LTEsMCwxLDB9OwoKdm9pZCBkZnMoaW50IGksaW50IGopCnsKICAgIGlmKHZpc1tpXVtqXSkgcmV0dXJuOwogICAgdmlzW2ldW2pdID0gdHJ1ZTsKICAgIGZvcihpbnQgdCA9IDA7IHQ8NDsgdCsrKQogICAgewogICAgICAgIGludCBuZXdfeCA9IGkgKyBkeFt0XTsKICAgICAgICBpbnQgbmV3X3kgPSBqICsgZHlbdF07CiAgICAgICAgaWYobmV3X3ggPj0gMCAmJiBuZXdfeCA8IG4gJiYgbmV3X3kgPj0gMCAmJiBuZXdfeSA8IG0pCiAgICAgICAgewogICAgICAgICAgICBpZihhW25ld194XVtuZXdfeV0gPT0gJy4nKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkZnMobmV3X3gsbmV3X3kpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYoaz4wKQogICAgewogICAgICAgIGstLTsKICAgICAgICBhW2ldW2pdID0gJ1gnOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgLy8gZnJlb3BlbigiaW5wdXQuaW4iLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIm91dHB1dC5vdXQiLCAidyIsIHN0ZG91dCk7CgogICAgY2luPj5uPj5tPj5rOwogICAgYS5yZXNpemUobisxLHZlY3RvcjxjaGFyPihtKzEpKTsKICAgIHZpcy5yZXNpemUobisxLHZlY3Rvcjxib29sPihtKzEsZmFsc2UpKTsKICAgIGZvcihpbnQgaSA9IDAgOyBpIDxuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgajxtOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PmFbaV1bal07CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpID0gMCA7IGkgPG47IGkrKykKICAgIHsKICAgICAgICBmb3IoaW50IGogPSAwOyBqPG07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKCF2aXNbaV1bal0gJiYgYVtpXVtqXSA9PSAnLicpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRmcyhpLGopOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgaSA9IDAgOyBpIDxuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgajxtOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8IGFbaV1bal07CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0K