#include <bits/stdc++.h>
const int inf = 0x3f3f3f3f;
const int N = 110;
const int MOD = 1e9 + 7;
using namespace std;
int n, m, x, y, ex, ey, col[N][N];
char a[N][N];
queue<pair<int, int> > q;
stack<pair<int, int> > stk;
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) scanf("%s", a[i] + 1);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (a[i][j] == 'F') ex = i, ey = j;
    }
  }
  q.push(make_pair(1, 1));
  col[1][1] = 1;
  while (!q.empty()) {
    pair<int, int> now = q.front();
    q.pop();
    for (int i = 0; i < 4; i++) {
      int tx = now.first + dx[i], ty = now.second + dy[i];
      if (tx >= 1 && ty >= 1 && tx <= n && ty <= m && !col[tx][ty] &&
          a[tx][ty] != '*') {
        col[tx][ty] = col[now.first][now.second] + 1;
        q.push(make_pair(tx, ty));
      }
    }
  }
  int nx = ex, ny = ey;
  stk.push(make_pair(ex, ey));
  while (1) {
    for (int i = 0; i < 4; i++) {
      int tx = nx + dx[i], ty = ny + dy[i];
      if (tx >= 1 && ty >= 1 && tx <= n && ty <= m &&
          col[tx][ty] == col[nx][ny] - 1) {
        stk.push(make_pair(tx, ty));
        nx = tx, ny = ty;
        break;
      }
    }
    if (nx == 1 && ny == 1) break;
  }
  int lr = 0, ud = 0;
  if (n == 1 && m == 1) return 0;
  nx = 1, ny = 1;
  if (stk.size() == 2) {
    printf("L\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == ex && y == ey)
      return 0;
    else if (!(x == 1 && y == 1)) {
      printf("R\n");
      fflush(stdout);
      scanf("%d%d", &x, &y);
    }
    printf("R\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == ex && y == ey)
      return 0;
    else if (!(x == 1 && y == 1)) {
      printf("L\n");
      fflush(stdout);
      scanf("%d%d", &x, &y);
    }
    printf("U\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == ex && y == ey)
      return 0;
    else if (!(x == 1 && y == 1)) {
      printf("D\n");
      fflush(stdout);
      scanf("%d%d", &x, &y);
    }
    printf("D\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == ex && y == ey)
      return 0;
    else if (!(x == 1 && y == 1)) {
      printf("U\n");
      fflush(stdout);
      scanf("%d%d", &x, &y);
    }
  }
  if (n == 1 || a[2][1] == '*') {
    printf("R\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == 1 && y == 1)
      lr = 1;
    else
      nx = 1, ny = 2, stk.pop();
    int ok = 0;
    while (!stk.empty()) {
      if (a[2][ny] == '.' && !ok) {
        ok = 1;
        printf("D\n");
        fflush(stdout);
        scanf("%d%d", &x, &y);
        if (x == nx && y == ny)
          ud = 1;
        else {
          printf("U\n");
          fflush(stdout);
          scanf("%d%d", &x, &y);
        }
      }
      pair<int, int> now = stk.top();
      stk.pop();
      if (now.first == nx && now.second == ny + 1) {
        if (lr)
          printf("L\n");
        else
          printf("R\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx && now.second == ny - 1) {
        if (lr)
          printf("R\n");
        else
          printf("L\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx + 1 && now.second == ny) {
        if (ud)
          printf("U\n");
        else
          printf("D\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx - 1 && now.second == ny) {
        if (ud)
          printf("D\n");
        else
          printf("U\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
    }
  } else {
    printf("D\n");
    fflush(stdout);
    scanf("%d%d", &x, &y);
    if (x == 1 && y == 1)
      ud = 1;
    else {
      printf("U\n");
      fflush(stdout);
      scanf("%d%d", &x, &y);
    }
    int ok = 0;
    while (!stk.empty()) {
      if (a[nx][2] == '.' && !ok) {
        ok = 1;
        printf("R\n");
        fflush(stdout);
        scanf("%d%d", &x, &y);
        if (x == nx && y == ny)
          lr = 1;
        else {
          printf("L\n");
          fflush(stdout);
          scanf("%d%d", &x, &y);
        }
      }
      pair<int, int> now = stk.top();
      stk.pop();
      if (now.first == nx && now.second == ny + 1) {
        if (lr)
          printf("L\n");
        else
          printf("R\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx && now.second == ny - 1) {
        if (lr)
          printf("R\n");
        else
          printf("L\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx + 1 && now.second == ny) {
        if (ud)
          printf("U\n");
        else
          printf("D\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
      if (now.first == nx - 1 && now.second == ny) {
        if (ud)
          printf("D\n");
        else
          printf("U\n");
        fflush(stdout);
        nx = now.first;
        ny = now.second;
        scanf("%d%d", &x, &y);
      }
    }
  }
}
