#include <bits/stdc++.h>
using namespace std;
int ans[2010][2], n;
bool vis[510][510];
bool query(int x1, int y1, int x2, int y2) {
  printf("? %d %d %d %d\n", x1, y1, x2, y2);
  fflush(stdout);
  char ch[5];
  scanf("%s", ch);
  if (ch[0] == 'Y')
    return 1;
  else
    return 0;
}
void out() {
  int x = 1, y = 1;
  printf("! ");
  while ((x != n) || (y != n)) {
    if ((x != n) && (vis[x + 1][y])) {
      printf("D");
      x++;
    } else {
      printf("R");
      y++;
    }
  }
  printf("\n");
  fflush(stdout);
}
int main() {
  int now = 1;
  scanf("%d", &n);
  int x = 1, y = 1;
  memset(vis, 0, sizeof(vis));
  vis[0][0] = 1;
  vis[n][n] = 1;
  ans[1][0] = 1;
  ans[1][1] = 1;
  while (x + y <= n) {
    bool flag = query(x + 1, y, n, n);
    if (flag) {
      x++;
      vis[x][y] = 1;
    } else {
      y++;
      vis[x][y] = 1;
    }
    now++;
    ans[now][0] = x;
    ans[now][1] = y;
  }
  x = n;
  y = n;
  now--;
  while (x + y > n + 1) {
    if (query(ans[now][0], ans[now][1], x, y - 1))
      y--;
    else
      x--;
    vis[x][y] = 1;
    now--;
  }
  out();
  return 0;
}
