#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;
const int NE[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
char ch[4] = {'U', 'D', 'L', 'R'};
int n, m;
char mp[MAXN][MAXN];
bool vis[MAXN][MAXN];
int gx, gy, rt[MAXN * MAXN], len;
pair<int, int> fr[MAXN][MAXN];
void dfs(int x, int y) {
  vis[x][y] = 1;
  if (x == gx && y == gy) return;
  for (int k = 0, nx, ny; k < 4; k++) {
    nx = x + NE[k][0], ny = y + NE[k][1];
    if (nx < 1 || nx > n || ny < 1 || ny > m || vis[nx][ny] ||
        mp[nx][ny] == '*')
      continue;
    fr[nx][ny] = make_pair(x, y), dfs(nx, ny);
  }
}
void find_route(int x, int y, int to_x, int to_y) {
  if (x != 1 || y != 1) find_route(fr[x][y].first, fr[x][y].second, x, y);
  for (int k = 0, nx, ny; k < 4; k++) {
    nx = x + NE[k][0], ny = y + NE[k][1];
    if (nx == to_x && ny == to_y) rt[++len] = k;
  }
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    scanf("%s", mp[i] + 1);
    for (int j = 1; j <= m; j++)
      if (mp[i][j] == 'F') gx = i, gy = j;
  }
  dfs(1, 1);
  find_route(gx, gy, 0, 0);
  int x = 1, y = 1, nx, ny, to_x, to_y;
  for (int i = 1; i <= len; i++) {
    to_x = x + NE[rt[i]][0], to_y = y + NE[rt[i]][1];
    printf("%c\n", ch[rt[i]]);
    cin >> nx >> ny;
    if (nx == x && ny == y) {
      swap(ch[rt[i]], ch[rt[i] ^ 1]);
      printf("%c\n", ch[rt[i]]);
      cin >> nx >> ny;
    } else if (nx != to_x && ny != to_y) {
      swap(ch[rt[i]], ch[rt[i] ^ 1]);
      printf("%c\n", ch[rt[i]]);
      cin >> nx >> ny;
      printf("%c\n", ch[rt[i]]);
      cin >> nx >> ny;
    }
    x = to_x, y = to_y;
  }
  return 0;
}
