#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int MAX = 1e6 + 10;
const double PI = acos(-1.0);
int check(int x, int y, int x1, int y1) {
  printf("? %d %d %d %d\n", x, y, x1, y1);
  fflush(stdout);
  char op[5];
  scanf("%s", op);
  if (op[0] == 'Y') return 1;
  return 0;
}
int n;
string pre, suf;
void dfs1(int x, int y) {
  if (abs(x - n) + abs(y - n) < n) return;
  if (y + 1 <= n && check(x, y + 1, n, n)) {
    pre += 'R';
    dfs1(x, y + 1);
    return;
  }
  pre += 'D';
  dfs1(x + 1, y);
  return;
}
void dfs2(int x, int y) {
  if (abs(x - 1) + abs(y - 1) < n) return;
  if (x - 1 >= 1 && check(1, 1, x - 1, y)) {
    suf += 'D';
    dfs2(x - 1, y);
    return;
  }
  suf += 'R';
  dfs2(x, y - 1);
  return;
}
int main() {
  cin >> n;
  pre = "";
  dfs1(1, 1);
  suf = "";
  dfs2(n, n);
  reverse(suf.begin(), suf.end());
  cout << "! " << pre + suf << endl;
  return 0;
}
