#include <bits/stdc++.h>
using namespace std;
int n, m;
char g[100][100];
int p[100][100];
int dist[100][100];
bool is_valid(int x, int y) { return 0 <= x && x < n && 0 <= y && y < m; }
char cmd[] = {'U', 'R', 'D', 'L'};
int dx[] = {-1, 0, +1, 0}, dy[] = {0, +1, 0, -1};
void testh(int px, int py) {
  cout << 'L' << endl;
  int a, b;
  cin >> a >> b;
  --a;
  --b;
  if (a != px || b != py) {
    cout << 'R' << endl;
    cin >> a >> b;
    swap(cmd[1], cmd[3]);
  }
}
void print(int x, int y) {
  if (p[x][y] == -1) return;
  print(x - dx[p[x][y]], y - dy[p[x][y]]);
  cout << cmd[p[x][y]] << endl;
  int a, b;
  cin >> a >> b;
  if ((a == x && b == y) || (a == -1 && b == -1))
    while (true)
      ;
}
void testv(int px, int py) {
  cout << 'U' << endl;
  int a, b;
  cin >> a >> b;
  --a;
  --b;
  if (a != px || b != py) {
    cout << 'D' << endl;
    cin >> a >> b;
    swap(cmd[0], cmd[2]);
  }
}
int main() {
  int sx, sy;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j) {
      scanf(" %c", g[i] + j);
      if (g[i][j] == 'F') sx = i, sy = j;
    }
  if (m == 1 && n == 1) return 0;
  if (n == 1) {
    testh(0, 0);
    for (int i = 0; i < m - 1; ++i) cout << cmd[1] << endl;
    return 0;
  }
  if (m == 1) {
    testv(0, 0);
    for (int i = 0; i < n - 1; ++i) cout << cmd[2] << endl;
    return 0;
  } else {
    int a, b;
    int x = 0, y = 0;
    if (g[0][1] != '*' && g[1][0] != '*') {
      testh(0, 0);
      testv(0, 0);
    } else if (g[1][0] == '*') {
      testh(0, 0);
      for (y = 0; g[1][y] == '*'; ++y) {
        if (g[0][y] == 'F') return 0;
        cout << cmd[1] << endl;
        cin >> a >> b;
      }
      testv(0, y);
    } else {
      testv(0, 0);
      for (x = 0; g[x][1] == '*'; ++x) {
        if (g[x][0] == 'F') return 0;
        cout << cmd[2] << endl;
        cin >> a >> b;
      }
      testh(x, 0);
    }
    queue<pair<int, int>> q;
    q.push({x, y});
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < m; ++j) p[i][j] = -1, dist[i][j] = 1e9;
    dist[x][y] = 0;
    while (!q.empty()) {
      int ux = q.front().first, uy = q.front().second, d = dist[ux][uy];
      q.pop();
      if (g[ux][uy] == '*') continue;
      for (int i = 0; i < 4; ++i) {
        int nx = ux + dx[i];
        int ny = uy + dy[i];
        if (is_valid(nx, ny) && dist[nx][ny] > d + 1) {
          dist[nx][ny] = d + 1;
          q.push({nx, ny});
          p[nx][ny] = i;
        }
      }
    }
    print(sx, sy);
  }
  return 0;
}
