#include<bits/stdc++.h>
using namespace std;
const int N = 100 + 5;
int dx[5] = {1, -1, 0, 0};
int dy[5] = {0, 0, 1, -1};
char mp[N][N];
bool vis[N][N];
int c = 0;
int n, m, k;
void dfs(int x,int y){
for(int i = 0; i < 4; i++){
int fx = x + dx[i], fy = y + dy[i];
if(fx <= 0 || fy <= 0 || fx > n || fy > m) continue;
if(vis[fx][fy] == 1 || mp[fx][fy] == '#') continue;
vis[x][y] = 1;
dfs(fx, fy);
if(c < k){
c++;
mp[fx][fy] = 'X';
}
}
}
int main(){
cin>>n >>m >>k;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m ; j++){
cin>>mp[i][j];
}
}
int i1 = 1, j1 = 1;
while(mp[i1][j1] != '.'){
i1++, j1++;
}
dfs(i1, j1);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m ; j++){
cout<<mp[i][j];
}
cout<<endl;
}
return 0;
}