#include <algorithm>
#include <cstdio>
#include <cstring>
#include <queue>
#include <utility>
using namespace std;
int cost[501][501],xx,yy,n,m;
char mat[501][501];
bool visit[501][501],first = true;
int a[] = {-1,0,0,1}, b[] = {0,-1,1,0};
void check(int x,int y,int level) {
visit[x][y] = true;
cost[x][y] = level;
for(int i = 0; i < 4; ++i) {
xx = x + a[i];
yy = y + b[i];
if(0 <= xx and xx < n and 0 <= yy and yy < m and mat[xx][yy] == '.') {
if(level + 1 < cost[xx][yy] or !visit[xx][yy]) check(xx,yy,level + 1);
}
}
}
int max() {
int r = -1;
for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j) if(mat[i][j] == '.') r = max(r,cost[i][j]);
return r;
}
void show() {
if(!first) puts("---");
int r = max();
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j) {
if(cost[i][j] == r) printf("X");
else printf("%c",mat[i][j]);
}
puts("");
}
}
int main() {
while(scanf("%d %d",&n,&m) == 2) {
queue<pair<int,int> > cola;
for(int i = 0; i < n; ++i) {
scanf("\n");
for(int j = 0; j < m; ++j) {
scanf("%c",&mat[i][j]);
if(mat[i][j] == 'V') cola.push(make_pair(i,j));
}
}
memset(cost,-1,sizeof cost);
memset(visit,0,sizeof visit);
while(!cola.empty()) {
pair<int,int> aux = cola.front();
check(aux.first, aux.second,0);
cola.pop();
}
show();
first = false;
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHV0aWxpdHk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY29zdFs1MDFdWzUwMV0seHgseXksbixtOwpjaGFyIG1hdFs1MDFdWzUwMV07CmJvb2wgdmlzaXRbNTAxXVs1MDFdLGZpcnN0ID0gdHJ1ZTsKCmludCBhW10gPSB7LTEsMCwwLDF9LCBiW10gPSB7MCwtMSwxLDB9OwoKdm9pZCBjaGVjayhpbnQgeCxpbnQgeSxpbnQgbGV2ZWwpIHsKICB2aXNpdFt4XVt5XSA9IHRydWU7CiAgY29zdFt4XVt5XSA9IGxldmVsOwogIGZvcihpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHsKICAgIHh4ID0geCArIGFbaV07CiAgICB5eSA9IHkgKyBiW2ldOwogICAgaWYoMCA8PSB4eCBhbmQgeHggPCBuIGFuZCAwIDw9IHl5IGFuZCB5eSA8IG0gYW5kIG1hdFt4eF1beXldID09ICcuJykgewogICAgICBpZihsZXZlbCArIDEgPCBjb3N0W3h4XVt5eV0gb3IgIXZpc2l0W3h4XVt5eV0pIGNoZWNrKHh4LHl5LGxldmVsICsgMSk7CiAgICB9CiAgfQp9CgppbnQgbWF4KCkgewogIGludCByID0gLTE7CiAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkgZm9yKGludCBqID0gMDsgaiA8IG07ICsraikgaWYobWF0W2ldW2pdID09ICcuJykgciA9IG1heChyLGNvc3RbaV1bal0pOwogIHJldHVybiByOwp9Cgp2b2lkIHNob3coKSB7CiAgaWYoIWZpcnN0KSBwdXRzKCItLS0iKTsKICBpbnQgciA9IG1heCgpOwogIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIGZvcihpbnQgaiA9IDA7IGogPCBtOyArK2opIHsKICAgICAgaWYoY29zdFtpXVtqXSA9PSByKSBwcmludGYoIlgiKTsKICAgICAgZWxzZSBwcmludGYoIiVjIixtYXRbaV1bal0pOwogICAgfQogICAgcHV0cygiIik7CiAgfQp9CgppbnQgbWFpbigpIHsKICB3aGlsZShzY2FuZigiJWQgJWQiLCZuLCZtKSA9PSAyKSB7CiAgICBxdWV1ZTxwYWlyPGludCxpbnQ+ID4gY29sYTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgc2NhbmYoIlxuIik7CiAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBtOyArK2opIHsKICAgICAgICBzY2FuZigiJWMiLCZtYXRbaV1bal0pOwogICAgICAgIGlmKG1hdFtpXVtqXSA9PSAnVicpIGNvbGEucHVzaChtYWtlX3BhaXIoaSxqKSk7CiAgICAgIH0KICAgIH0KICAgIG1lbXNldChjb3N0LC0xLHNpemVvZiBjb3N0KTsKICAgIG1lbXNldCh2aXNpdCwwLHNpemVvZiB2aXNpdCk7CiAgICB3aGlsZSghY29sYS5lbXB0eSgpKSB7CiAgICAgIHBhaXI8aW50LGludD4gYXV4ID0gY29sYS5mcm9udCgpOwogICAgICBjaGVjayhhdXguZmlyc3QsIGF1eC5zZWNvbmQsMCk7CiAgICAgIGNvbGEucG9wKCk7CiAgICB9CiAgICBzaG93KCk7CiAgICBmaXJzdCA9IGZhbHNlOwogIH0KICByZXR1cm4gMDsKfQo=
NiA2Ci4uLi4uLgouLi4uLi4KLlYuLi4uCi4uLi4uLgouLi4uLi4KLi4uLi5WCgozIDEwCi4uLiMuLi4uLi4KLi4uIy4uIy5WLgouVi4uLi4jLi4uCgozIDEwClYjIyMuLi5WLi4KLi4uI1YuIy5WLgouVi5WLlYjLi4uCgozIDEwClYjIyMuVi5WLlYKLi4jI1YuIy5WLgouVi5WLlYjIy5WCjYgNgpWVlZWVlYKVi4uLi5WClYuLi4uVgpWLi4uLlYKVi4uLi5WClZWVlZWVgoKNiA1ClZWVlZWClYuLi5WClYuLi5WClYuLi5WClYuLi5WClZWVlZWCgo1IDYKLi4uLi4uCi4uLi4uLgouLi5WLi4KLi4uLi4uCi4uLi4uLgoKNSA2ClZWVlZWVgpWVlZWLlYKVi5WVi5WClYuIyMuVgpWVlZWVlYKCjUgNgpWVlZWVlYKVlZWLlZWClZWLi4uVgpWVlYuVlYKVlZWVlZWCjQgNgouLiMuLi4KIy4jVi4uCi5WIyMjIwpWLlYuLi4KCjkgOQouLi4uLi4uLi4KLiMjIyMjIyMuCi4jLi4uLi4jLgouIy4jIyMuIy4KViMuI1YjLiMuCi4jLiMjIy4jVgouI1YuLi4uIy4KLiMjIyMjIyMuCi4uLi5WLi4uLgo5IDIzCi4uIy4uLi4uLi4uLi4jLlYuVi4uLi4uCi4uLi4jLiMuLi4uLi4uLlYuLi5WIyMuCi4jLi5WLi4uLiMjVi4jLiNWLi4uLi4uCi4uLlYuLi4jLiMuVi4uIy4uLi4uIy4uCi4uLi4jVi5WLiMuLi4uLi4uLi4uLi4uCi4uIyMuVi4uLi4uLi4uLi4uLi4jLi4uCi4uLi4uIy4jLi4uIy4jLiMuIy4uLi4uCi4uLi4uLlYuLi4uIy4uLi4uLi4uLlYjCi4uLi5WLi4uIy4uLi4uLi4uLi4uLi4jCgo4IDM1Ci4uVlYuLi4uLiMuLi4uLi4uLi5WViMuLi4uLi4uVi4uIy4uCi4uLi5WLi4uLi4uLi4uLi4uLlYuLi4uLlYuLi4uLi5WLlYuCi4uLi4uLi5WLi4uLi4uLi4uLi4uLiMuLi4uLi4uLlYuLi5WCi4uLiMuLi4uLlYuLlYuLi4uLi4uLlYuLi4uLi4uLi4uLi4uCi4uLi4jLiMuLi4uLlYjLi4uLi4uLi4uLi4uLi4uVi4uLi5WCi4jLi4uVi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5WIy4uCi4uLi4uLi4uLi4jLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiMuLi4uLi4uIy4uLiNWLi4uLi4uIy4uLi4uLiMuLlYuLi4u
6 6
......
......
.V....
......
......
.....V
3 10
...#......
...#..#.V.
.V....#...
3 10
V###...V..
...#V.#.V.
.V.V.V#...
3 10
V###.V.V.V
..##V.#.V.
.V.V.V##.V
6 6
VVVVVV
V....V
V....V
V....V
V....V
VVVVVV
6 5
VVVVV
V...V
V...V
V...V
V...V
VVVVV
5 6
......
......
...V..
......
......
5 6
VVVVVV
VVVV.V
V.VV.V
V.##.V
VVVVVV
5 6
VVVVVV
VVV.VV
VV...V
VVV.VV
VVVVVV
4 6
..#...
#.#V..
.V####
V.V...
9 9
.........
.#######.
.#.....#.
.#.###.#.
V#.#V#.#.
.#.###.#V
.#V....#.
.#######.
....V....
9 23
..#..........#.V.V.....
....#.#........V...V##.
.#..V....##V.#.#V......
...V...#.#.V..#.....#..
....#V.V.#.............
..##.V.............#...
.....#.#...#.#.#.#.....
......V....#.........V#
....V...#.............#
8 35
..VV.....#.........VV#.......V..#..
....V.............V.....V......V.V.
.......V.............#........V...V
...#.....V..V........V.............
....#.#.....V#...............V....V
.#...V.........................V#..
..........#........................
#.......#...#V......#......#..V....