#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native")
#pragma GCC optimize("fast-math")
using namespace std;
template <typename T>
void uin(T &a, T b) {
  if (b < a) a = b;
}
template <typename T>
void uax(T &a, T b) {
  if (b > a) a = b;
}
int n;
bool can(int x1, int y1228, int x2, int y2) {
  cout << "? " << x1 << " " << y1228 << " " << x2 << " " << y2 << endl;
  string kek;
  cin >> kek;
  if (kek == "YES") {
    return 1;
  }
  return 0;
}
char go(int x1, int y1228, int x2, int y2) {
  if (x1 + 1 == x2) {
    return 'D';
  }
  return 'R';
}
void solve_(int x, int y) {
  vector<pair<int, int> > fir, sec;
  fir.push_back({1, 1});
  int i = 1, j = 1;
  while (!(i == x && j == y)) {
    if (i == x) {
      ++j;
      fir.push_back({i, j});
    } else if (j == y) {
      ++i;
      fir.push_back({i, j});
    } else {
      if (can(i, j + 1, n, n)) {
        ++j;
        fir.push_back({i, j});
      } else {
        ++i;
        fir.push_back({i, j});
      }
    }
  }
  i = n, j = n;
  sec.push_back({n, n});
  while (!(i == x && j == y)) {
    if (i == x) {
      --j;
      sec.push_back({i, j});
    } else if (j == y) {
      --i;
      sec.push_back({i, j});
    } else {
      if (can(1, 1, i - 1, j)) {
        --i;
        sec.push_back({i, j});
      } else {
        --j;
        sec.push_back({i, j});
      }
    }
  }
  sec.pop_back();
  reverse(sec.begin(), sec.end());
  vector<pair<int, int> > pts;
  for (auto p : fir) {
    pts.push_back(p);
  }
  for (auto p : sec) {
    pts.push_back(p);
  }
  string s = "";
  for (int i = 0; i < (int)pts.size() - 1; ++i) {
    s += go(pts[i].first, pts[i].second, pts[i + 1].first, pts[i + 1].second);
  }
  cout << "! " << s << endl;
}
void solve() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  int i = 1, j = n;
  while (i <= n) {
    if (can(i, j, n, n) && can(1, 1, i, j)) {
      solve_(i, j);
      return;
    }
    ++i;
    --j;
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  solve();
  return 0;
}
