#include <bits/stdc++.h>
#define ll long long
#define read(v) for(auto &i:v)cin>>i
#define Ebraam ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0);
#define print(v) for(auto i:v)cout<<i<<' '
#define rall(v) v.rbegin(), v.rend()
#define all(v) v.begin(), v.end()
#define pb push_back
const ll N = 2e5 + 3, MOD = 1e9+7;
using namespace std;
int dx[]={1,1,-1,-1,0,0,1,-1};
int dy[]={1,-1,1,-1,1,-1,0,0};
int n,m,k,f=0,ans=0;
vector<vector<char>>grid;
vector<vector<bool>>vis;
bool valid(int x,int y){
return x>0&&y>0&&x<=n&&y<=m;
}
void dfs(int x,int y){
if(ans==f-k)return;
vis[x][y]=true;
ans++;
for(int k=4; k<8; k++){
int nx=x+dx[k],ny=y+dy[k];
if(valid(nx,ny)&&!vis[nx][ny]&&grid[nx][ny]=='.')dfs(nx,ny);
}
}
void solve() {
cin>>n>>m>>k;
grid=vector<vector<char>>(n+1,vector<char>(m+1));
vis=vector<vector<bool>>(n+1,vector<bool>(m+1));
for(int i=1; i<=n; i++)for(int j=1; j<=m; j++)cin>>grid[i][j],f+=(grid[i][j]=='.');
for(int i=1; i<=n; i++)for(int j=1; j<=m; j++)if(!vis[i][j]&&grid[i][j]=='.')dfs(i,j);
for(int i=1; i<=n; i++)for(int j=1; j<=m; j++)if(!vis[i][j]&&grid[i][j]=='.')grid[i][j]='X';
for(int i=1; i<=n; i++)for(int j=1; j<=m; j++)cout<<grid[i][j]<<" \n"[j==m];
}
int main() {
Ebraam
int t = 1;
// cin >> t;
while (t--) {
solve();cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIHJlYWQodikgZm9yKGF1dG8gJmk6diljaW4+PmkKI2RlZmluZSBFYnJhYW0gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IGNpbi50aWUoMCksIGNvdXQudGllKDApOwojZGVmaW5lIHByaW50KHYpIGZvcihhdXRvIGk6diljb3V0PDxpPDwnICcKI2RlZmluZSByYWxsKHYpIHYucmJlZ2luKCksIHYucmVuZCgpCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSwgdi5lbmQoKQojZGVmaW5lIHBiIHB1c2hfYmFjawpjb25zdCBsbCBOID0gMmU1ICsgMywgTU9EID0gMWU5Kzc7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBkeFtdPXsxLDEsLTEsLTEsMCwwLDEsLTF9OwppbnQgZHlbXT17MSwtMSwxLC0xLDEsLTEsMCwwfTsKaW50IG4sbSxrLGY9MCxhbnM9MDsKdmVjdG9yPHZlY3RvcjxjaGFyPj5ncmlkOwp2ZWN0b3I8dmVjdG9yPGJvb2w+PnZpczsKYm9vbCB2YWxpZChpbnQgeCxpbnQgeSl7CiAgcmV0dXJuIHg+MCYmeT4wJiZ4PD1uJiZ5PD1tOwp9CnZvaWQgZGZzKGludCB4LGludCB5KXsKICBpZihhbnM9PWYtaylyZXR1cm47CiAgdmlzW3hdW3ldPXRydWU7CmFucysrOwogIGZvcihpbnQgaz00OyBrPDg7IGsrKyl7CiAgICBpbnQgbng9eCtkeFtrXSxueT15K2R5W2tdOwogICAgaWYodmFsaWQobngsbnkpJiYhdmlzW254XVtueV0mJmdyaWRbbnhdW255XT09Jy4nKWRmcyhueCxueSk7CiAgfQp9CnZvaWQgc29sdmUoKSB7CiAgY2luPj5uPj5tPj5rOwogIGdyaWQ9dmVjdG9yPHZlY3RvcjxjaGFyPj4obisxLHZlY3RvcjxjaGFyPihtKzEpKTsKICB2aXM9dmVjdG9yPHZlY3Rvcjxib29sPj4obisxLHZlY3Rvcjxib29sPihtKzEpKTsKICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKWZvcihpbnQgaj0xOyBqPD1tOyBqKyspY2luPj5ncmlkW2ldW2pdLGYrPShncmlkW2ldW2pdPT0nLicpOwogIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspZm9yKGludCBqPTE7IGo8PW07IGorKylpZighdmlzW2ldW2pdJiZncmlkW2ldW2pdPT0nLicpZGZzKGksaik7CiAgZm9yKGludCBpPTE7IGk8PW47IGkrKylmb3IoaW50IGo9MTsgajw9bTsgaisrKWlmKCF2aXNbaV1bal0mJmdyaWRbaV1bal09PScuJylncmlkW2ldW2pdPSdYJzsKICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKWZvcihpbnQgaj0xOyBqPD1tOyBqKyspY291dDw8Z3JpZFtpXVtqXTw8IiBcbiJbaj09bV07CiAgCgp9CmludCBtYWluKCkgewogICAgRWJyYWFtIAogICAgaW50IHQgPSAxOwogICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpO2NvdXQgPDwgJ1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9IAo=