#include <bits/stdc++.h>
using namespace std;
struct cell {
  int x, y;
  cell() {}
  cell(int x, int y) : x(x), y(y) {}
  bool operator==(cell &other) { return (other.x == x && other.y == y); }
};
cell ask(char dir) {
  cout << dir << "\n";
  cout.flush();
  int x, y;
  cin >> x >> y;
  return cell(x, y);
}
int N, M;
char a[110][110];
bool v[110][110];
int dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, -1, 1};
char dir[4] = {'U', 'D', 'L', 'R'};
cell to[110][110];
int main() {
  cin >> N >> M;
  int i, j;
  cell st;
  for (i = 1; i <= N; i++)
    for (j = 1; j <= M; j++) {
      cin >> a[i][j];
      if (a[i][j] == 'F') st = cell(i, j);
    }
  cell q[10010];
  int K = 1;
  q[1] = st;
  v[st.x][st.y] = 1;
  for (i = 1; i <= K; i++) {
    cell cr = q[i], nxt;
    for (j = 0; j < 4; j++) {
      nxt = cell(cr.x + dx[j], cr.y + dy[j]);
      if (nxt.x < 1 || nxt.x > N || nxt.y < 1 || nxt.y > M ||
          a[nxt.x][nxt.y] == '*' || v[nxt.x][nxt.y])
        continue;
      to[nxt.x][nxt.y] = cr;
      v[nxt.x][nxt.y] = 1;
      q[++K] = nxt;
    }
  }
  cell cr = cell(1, 1);
  while (!(cr == st)) {
    cell nxt = to[cr.x][cr.y];
    for (j = 0; j < 4; j++)
      if (nxt.x - cr.x == dx[j] && nxt.y - cr.y == dy[j]) {
        cell ans = ask(dir[j]);
        if (!(ans == nxt)) {
          swap(dir[j], dir[j ^ 1]);
          ask(dir[j]);
        }
        cr = nxt;
        break;
      }
  }
  return 0;
}
