#include <bits/stdc++.h>
using namespace std;
int n, m, k, d;
string a[1000];
bool mark[1000][1000];
vector<pair<int, int> > s;
pair<int, int> f;
void dfs(int x, int y) {
  mark[x][y] = 1;
  f.first = x;
  f.second = y;
  s.push_back(f);
  if (a[x - 1][y] == '.' && mark[x - 1][y] == 0) {
    dfs(x - 1, y);
  }
  if (a[x + 1][y] == '.' && mark[x + 1][y] == 0) {
    dfs(x + 1, y);
  }
  if (a[x][y - 1] == '.' && mark[x][y - 1] == 0) {
    dfs(x, y - 1);
  }
  if (a[x][y + 1] == '.' && mark[x][y + 1] == 0) {
    dfs(x, y + 1);
  }
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> m >> k;
  a[0] =
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "###############################################################";
  a[n + 1] =
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "########################################################################"
      "###############################################################";
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    a[i] = '#' + a[i];
    a[i] = a[i] + '#';
  }
  for (int i = 0; i < n; i++) {
    for (int o = 0; o < m; o++) {
      if (a[i][o] == '.') {
        dfs(i, o);
        d = 1;
      }
      if (d == 1) {
        break;
      }
    }
    if (d == 1) {
      break;
    }
  }
  for (int i = 0; i < k; i++) {
    f = s[s.size() - 1];
    a[f.first][f.second] = 'X';
    s.pop_back();
  }
  for (int i = 1; i <= n; i++) {
    for (int o = 1; o <= m; o++) {
      cout << a[i][o];
    }
    cout << endl;
  }
}
