#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const int INF = 213456789;
const double eps = 1e-7;
int flag1 = 2, flag2 = 2, n, m;
template <class T>
T gcd(T a, T b) {
  if (!b) return a;
  return gcd(b, a % b);
}
int a[110][110];
int dy[] = {1, -1, 0, 0};
int dx[] = {0, 0, -1, 1};
int prex[110][110];
int prey[110][110];
int cost[110][110];
int dd[110][110];
bool over;
int edx, edy;
void print(int nx, int ny) {
  if (nx == edx && ny == edy) return;
  print(prex[nx][ny], prey[nx][ny]);
  if (flag1 && dd[nx][ny] == 0) printf("L\n");
  if (!flag1 && dd[nx][ny] == 0) printf("R\n");
  if (flag1 && dd[nx][ny] == 1) printf("R\n");
  if (!flag1 && dd[nx][ny] == 1) printf("L\n");
  if (flag2 && dd[nx][ny] == 2) printf("D\n");
  if (!flag2 && dd[nx][ny] == 2) printf("U\n");
  if (flag2 && dd[nx][ny] == 3) printf("U\n");
  if (!flag2 && dd[nx][ny] == 3) printf("D\n");
  fflush(stdout);
  int l, r;
  scanf("%d%d", &l, &r);
}
void bfs(int x, int y) {
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      cost[i][j] = INF;
    }
  }
  edx = x, edy = y;
  cost[x][y] = 0;
  queue<pair<int, int> > q;
  q.push(make_pair(x, y));
  while (!q.empty()) {
    pair<int, int> tmp = q.front();
    q.pop();
    for (int i = 0; i < 4; i++) {
      int nx = dx[i] + tmp.first, ny = dy[i] + tmp.second;
      if (nx > 0 && nx <= n && ny > 0 && ny <= m && cost[nx][ny] == INF &&
          a[nx][ny] != 3) {
        if (a[nx][ny] == 2) {
          dd[nx][ny] = i;
          prex[nx][ny] = tmp.first;
          prey[nx][ny] = tmp.second;
          cost[nx][ny] = cost[tmp.first][tmp.second] + 1;
          print(nx, ny);
          over = 1;
          return;
        }
        dd[nx][ny] = i;
        prex[nx][ny] = tmp.first;
        prey[nx][ny] = tmp.second;
        cost[nx][ny] = cost[tmp.first][tmp.second] + 1;
        q.push(make_pair(nx, ny));
      }
    }
  }
}
void check1() {
  int i = 1;
  while (a[i][2] == 3) {
    if (flag2)
      printf("U\n");
    else
      printf("D\n");
    fflush(stdout);
    int l, r;
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) {
      over = 1;
      return;
    }
    i++;
  }
  printf("L\n");
  fflush(stdout);
  int l, r;
  scanf("%d%d", &l, &r);
  if (a[l][r] == 2) {
    over = 1;
    return;
  }
  if (l == i && r == 2) {
    flag1 = 1;
    printf("R\n");
    fflush(stdout);
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) {
      over = 1;
      return;
    }
    bfs(l, r);
  } else {
    flag1 = 0;
    bfs(l, r);
  }
}
void check2() {
  int i = 1;
  while (a[2][i] == 3) {
    if (flag1)
      printf("L\n");
    else
      printf("R\n");
    fflush(stdout);
    int l, r;
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) {
      over = 1;
      return;
    }
    i++;
  }
  printf("U\n");
  fflush(stdout);
  int l, r;
  scanf("%d%d", &l, &r);
  if (a[l][r] == 2) {
    over = 1;
    return;
  }
  if (l == 2 && r == i) {
    flag2 = 1;
    printf("D\n");
    fflush(stdout);
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) {
      over = 1;
      return;
    }
    bfs(l, r);
  } else {
    flag2 = 0;
    bfs(l, r);
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      char c;
      cin >> c;
      if (c == '.')
        a[i][j] = 1;
      else if (c == 'F')
        a[i][j] = 2;
      else if (c == '*')
        a[i][j] = 3;
    }
  }
  if (a[1][2] == 1 || a[1][2] == 2) {
    printf("L\n");
    fflush(stdout);
    int l, r;
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) return 0;
    if (l == 1 && r == 1) {
      flag1 = 0;
    } else {
      flag1 = 1;
      printf("R\n");
      fflush(stdout);
      scanf("%d%d", &l, &r);
      if (a[l][r] == 2) return 0;
    }
  }
  if (a[2][1] == 1 || a[2][1] == 2) {
    printf("U\n");
    fflush(stdout);
    int l, r;
    scanf("%d%d", &l, &r);
    if (a[l][r] == 2) return 0;
    if (l == 1 && r == 1) {
      flag2 = 0;
    } else {
      flag2 = 1;
      printf("D\n");
      fflush(stdout);
      scanf("%d%d", &l, &r);
      if (a[l][r] == 2) return 0;
    }
  }
  if (flag1 == 2) check1();
  if (over) return 0;
  if (flag2 == 2) check2();
  if (over) return 0;
  if (flag1 != 2 && flag2 != 2) bfs(1, 1);
  return 0;
}
