#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
char mp[N][N];
int vis[N][N];
int n, m;
bool in(int x, int y) {
  if (x < 0 || x >= n || y < 0 || y >= m) return false;
  return true;
}
bool check(int x, int y) {
  if (!in(x, y) || mp[x][y] != '*') return false;
  for (int i = -1; i <= 0; i++)
    for (int j = -1; j <= 0; j++) {
      int cnt = 0;
      for (int k = 0; k < 2; k++)
        for (int z = 0; z < 2; z++)
          if (in(x + i + k, y + j + z) && mp[x + i + k][y + j + z] == '.')
            cnt++;
      if (cnt == 3) return true;
    }
  return false;
}
void dfs(int x, int y) {
  if (check(x, y) && !vis[x][y]) {
    vis[x][y] = 1;
    mp[x][y] = '.';
    for (int i = -1; i < 2; i++)
      for (int j = -1; j < 2; j++) dfs(x + i, y + j);
  }
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) scanf("%s", mp[i]);
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) dfs(i, j);
  for (int i = 0; i < n; i++) puts(mp[i]);
  return 0;
}
