#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e3 + 10;
char s[maxn][maxn];
int n, m;
void dfs(int x, int y) {
  if (x < 0 || x >= n || y < 0 || y >= m) return;
  int cnt = 0;
  int i, j;
  for (i = (0); i <= (1); i++) {
    for (j = (0); j <= (1); j++) {
      if (s[i + x][j + y] == '.') cnt++;
    }
  }
  if (cnt == 3) {
    for (i = (0); i <= (1); i++) {
      for (j = (0); j <= (1); j++) {
        s[i + x][y + j] = '.';
      }
    }
    for (i = (-1); i <= (1); i++) {
      for (j = (-1); j <= (1); j++) {
        int nx = x + i;
        int ny = y + j;
        dfs(nx, ny);
      }
    }
  }
  return;
}
int main() {
  while (scanf("%d%d", &n, &m) == 2) {
    int i, j;
    for (i = (0); i <= (n - 1); i++) scanf("%s", s[i]);
    for (i = (0); i <= (n - 1); i++) {
      for (j = (0); j <= (m - 1); j++) {
        dfs(i, j);
      }
    }
    for (i = (0); i <= (n - 1); i++) {
      cout << s[i] << endl;
    }
  }
  return 0;
}
