#include #include using namespace std; using namespace atcoder; int main(){ int H, W; cin >> H >> W; vector S(H); for (auto& s : S) cin >> s; dsu uf(H*W); auto id = [&](int i, int j){ return i*W+j; }; for (int i = 0; i < H; i++){ for (int j = 0; j < W; j++){ if (i > 0 && S[i][j] == S[i-1][j]) uf.merge(id(i, j), id(i-1, j)); if (j > 0 && S[i][j] == S[i][j-1]) uf.merge(id(i, j), id(i, j-1)); if (i+1 < H && S[i][j] == S[i+1][j]) uf.merge(id(i, j), id(i+1, j)); if (j+1 < W && S[i][j] == S[i][j+1]) uf.merge(id(i, j), id(i, j+1)); } } for (int i = 0; i < H; i++){ for (int j = 0; j < W; j++){ if (uf.size(id(i, j)) >= 4) S[i][j] = '.'; } } for (auto s : S) cout << s << endl; }