#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;   }   