# Appreciation
# Code
#include <iostream>
#include <cstring>
using namespace std;
#define endl '\n' << flush
enum { U, R, D, L };
int N, M;
#define MAX 500
char G[MAX][MAX];
int dy[4] = {-1, 0, +1, 0};
int dx[4] = {0, +1, 0, -1};
int T[4][2] = {
{R, L},
{U, D},
{L, R},
{D, U}
};
#define INF 987654321
bool isValid(int y, int x);
int getTime(int cy, int cx, int cd);
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> N >> M;
for (int i=0; i<N; i++)
for (int j=0; j<M; j++)
cin >> G[i][j];
int PR, PC;
cin >> PR >> PC;
int sy = PR-1, sx = PC-1;
int ans_dir = -1, ans_time = -1;
for (int sd=0; sd<4; sd++) {
int tmp_time = getTime(sy, sx, sd);
if (ans_time == -1 || ans_time < tmp_time) {
ans_dir = sd;
ans_time = tmp_time;
if (ans_time == INF) break;
}
}
switch (ans_dir) {
case 0: cout << 'U' << endl; break;
case 1: cout << 'R' << endl; break;
case 2: cout << 'D' << endl; break;
case 3: cout << 'L' << endl; break;
} cout << ((ans_time == INF) ? "Voyager" : to_string(ans_time)) << endl;
}
bool isValid(int y, int x)
{
return y >= 0 && y < N && x >= 0 && x < M;
}
int getTime(int cy, int cx, int cd)
{
bool isVisited[N][M][4];
memset(isVisited, false, sizeof(isVisited));
int time = 0;
while (isValid(cy, cx)) {
if (isVisited[cy][cx][cd]) return INF;
isVisited[cy][cx][cd] = true;
if (G[cy][cx] == 'C') break;
time++;
switch (G[cy][cx]) {
case '/': cd = T[cd][0]; break;
case '\\': cd = T[cd][1]; break;
}
cy += dy[cd];
cx += dx[cd];
}
return time;
}