#include <bits/stdc++.h>
using namespace std;
int n, m;
char inp[2005][2005];
queue<pair<int, int> > que;
void bfs(int r, int c) {
  que.push(make_pair(r, c));
  while (!que.empty()) {
    pair<int, int> f = que.front();
    que.pop();
    if (!(0 <= f.first && f.first < n && 0 <= f.second && f.second < m))
      continue;
    int cnt = 0;
    for (int q = 0; q < 2; q++) {
      for (int w = 0; w < 2; w++) {
        if (inp[f.first + q][f.second + w] == '.') cnt++;
      }
    }
    if (cnt == 3) {
      for (int q = 0; q < 2; q++) {
        for (int w = 0; w < 2; w++) {
          inp[f.first + q][f.second + w] = '.';
        }
      }
      for (int q = -1; q < 2; q++) {
        for (int w = -1; w < 2; w++) {
          que.push(make_pair(f.first + q, f.second + w));
        }
      }
    }
  }
}
int main() {
  cin >> n >> m;
  for (int q = 0; q < n; q++) {
    cin >> inp[q];
  }
  for (int q = 0; q < n; q++) {
    for (int w = 0; w < m; w++) {
      bfs(q, w);
    }
  }
  for (int q = 0; q < n; q++) {
    for (int w = 0; w < m; w++) {
      cout << inp[q][w];
    }
    cout << "\n";
  }
  return 0;
}
