#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const int MOD = 1e9 + 7;
const int N = 5e5 + 5;
int n;
int cnt = 0;
bool type = 0;
int query(int r, int c) {
  ++cnt;
  assert(cnt < 4 * n);
  if (type == 0) {
    if (n - r + n - c >= n - 1)
      cout << "? " << r << ' ' << c << ' ' << n << ' ' << n << endl;
    else
      cout << "? " << 1 << ' ' << 1 << ' ' << r << ' ' << c << endl;
  } else {
    if (r - 1 + c - 1 >= n - 1)
      cout << "? " << 1 << ' ' << 1 << ' ' << r << ' ' << c << endl;
    else
      cout << "? " << r << ' ' << c << ' ' << n << ' ' << n << endl;
  }
  string res;
  cin >> res;
  assert(res != "BAD");
  return res == "YES";
}
int main() {
  cin >> n;
  string ans1, ans2;
  {
    int r = 1, c = 1;
    while (r < n && c < n) {
      if (query(r + 1, c)) {
        r++;
        ans1 += "D";
      } else {
        c++;
        ans1 += "R";
      }
    }
    while (r < n) {
      ans1 += "D";
      ++r;
    }
    while (c < n) {
      ans1 += "R";
      ++c;
    }
  }
  {
    type = 1;
    int r = n, c = n;
    while (r > 1 && c > 1) {
      if (query(r, c - 1)) {
        c--;
        ans2 += "R";
      } else {
        r--;
        ans2 += "D";
      }
    }
    while (r > 1) {
      ans2 += "D";
      --r;
    }
    while (c > 1) {
      ans2 += "R";
      --c;
    }
  }
  reverse((ans2).begin(), (ans2).end());
  string ans = ans1.substr(0, n - 1) + ans2.substr(n - 1, n - 1);
  cout << "! " << ans << endl;
}
