#include<bits/stdc++.h>
#define mp make_pair
#define pb emplace_back
#define fi first
#define se second
#define ick cout << "ickbmi32.9\n"
using namespace std;
struct edge{
    double w = 1;
    int t = 0;
};

edge r[30][30], d[30][30];
int dx[]{0, 0, 1, -1};
int dy[]{1, -1, 0, 0};
char mv[]{'R', 'L', 'D', 'U'};

int getDist(int x, int y, int dir) {
    if(min(x + dx[dir], y + dy[dir]) < 0) return -1;
    if(max(x + dx[dir], y + dy[dir]) >= 30) return -1;
    if(dir == 0) return d[x][y].w;
    if(dir == 1) return d[x][y - 1].w;
    if(dir == 2) return r[x][y].w;
    if(dir == 3) return r[x - 1][y].w;
    return -1;
}

pair<string, vector<pair<int, int>>> path(int x1, int y1, int x2, int y2) {
    double dist[30][30];
    for(int i = 0; i < 30; i++) for(int j = 0; j < 30; j++) dist[i][j] = -1;
    priority_queue<pair<double, pair<int, int>>, vector<pair<double, pair<int, int>>>, greater<>>dij;
    dij.push(mp(0, mp(x1, y1)));
    while(!dij.empty()) {
        pair<double, pair<int, int>> now = dij.top();
        dij.pop();
        if(abs(dist[now.se.fi][now.se.se] + 1) > 1e-5) continue;
        dist[now.se.fi][now.se.se] = now.fi;
        for(int i = 0; i < 4; i++) {
            int di = getDist(now.se.fi, now.se.se, i);
            if(di == -1) continue;
            dij.push(mp(now.fi + di, mp(now.se.fi + dx[i], now.se.se + dy[i])));
        }
    }
    pair<int, int> now = mp(x2, y2);
    vector<pair<int, int>> pa;
    string pam;
    while(now != mp(x1, y1)) {
        //cout << now.fi << ' ' << now.se << endl;
        for(int i = 0; i < 4; i++) {
            int di = getDist(now.fi, now.se, i);
            if(di == -1) continue;
            if(abs(dist[now.fi][now.se] - di - dist[now.fi + dx[i]][now.se + dy[i]]) < 1e-5) {
                pam += mv[i ^ 1];
                now.fi += dx[i];
                now.se += dy[i];
                break;
            }
        }
        pa.pb(now);
    }
    reverse(pa.begin(), pa.end());
    reverse(pam.begin(), pam.end());
    return mp(pam, pa);
}

void upd(string ah, vector<pair<int, int>> ps, double avg) {
    for(int i = 0; i < ah.length(); i++) {
        if(ah[i] == 'R') {
            d[ps[i].fi][ps[i].se].w = (d[ps[i].fi][ps[i].se].w * d[ps[i].fi][ps[i].se].t + avg) / (d[ps[i].fi][ps[i].se].t + 1);
            d[ps[i].fi][ps[i].se].t++;
        }
        if(ah[i] == 'L') {
            d[ps[i].fi][ps[i].se - 1].w = (d[ps[i].fi][ps[i].se - 1].w * d[ps[i].fi][ps[i].se - 1].t + avg) / (d[ps[i].fi][ps[i].se - 1].t + 1);
            d[ps[i].fi][ps[i].se - 1].t++;
        }
        if(ah[i] == 'D') {
            r[ps[i].fi][ps[i].se].w = (r[ps[i].fi][ps[i].se].w * r[ps[i].fi][ps[i].se].t + avg) / (r[ps[i].fi][ps[i].se].t + 1);
            r[ps[i].fi][ps[i].se].t++;
        }
        if(ah[i] == 'U') {
            r[ps[i].fi - 1][ps[i].se].w = (r[ps[i].fi - 1][ps[i].se].w * r[ps[i].fi - 1][ps[i].se].t + avg) / (r[ps[i].fi - 1][ps[i].se].t + 1);
            r[ps[i].fi - 1][ps[i].se].t++;
        }
    }
}
void solve() {
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    pair<string, vector<pair<int, int>>> go = path(x1, y1, x2, y2);
    double in;
    cout << go.fi << '\n';
    fflush(stdout);
    cin >> in;
    upd(go.fi, go.se, in / go.fi.length());
}
int main() {
    for(int _ = 0; _ < 1000; _++) solve();
}
#include <bits/stdc++.h>
using namespace std;

#define lli long long int
#define REP(i,s,n) for(int i=s;i<n;i++)
#define NUM 2520
#define INF (1LL<<50)
#define DEBUG 0
#define mp(a,b) make_pair(a,b)
#define SORT(V) sort(V.begin(),V.end())
#define PI (3.141592653589794)
#define TO_STRING(VariableName) # VariableName
#define LOG(x) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<endl;
#define LOG2(x,y) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<endl;
#define LOG3(x,y,z) if(DEBUG)cout<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;
#define LOG4(w,x,y,z) if(DEBUG)cout<<TO_STRING(w)<<"="<<w<<" "<<TO_STRING(x)<<"="<<x<<" "<<TO_STRING(y)<<"="<<y<<" "<<TO_STRING(z)<<"="<<z<<endl;

template<class T>bool chmax(T & a, const T & b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }

int main(){

    lli k;
    k = 1000;
    //cin>>k;

    lli si,sj,ti,tj;
    REP(_,0,k){
        cin>>si>>sj>>ti>>tj;

        while(si < ti){
            si++;
            cout<<"D";
        }
        while(si > ti){
            si--;
            cout<<"U";
        }
        
        while(sj < tj){
            sj++;
            cout<<"R";
        }
        while(sj > tj){
            sj--;
            cout<<"L";
        }
        cout<<endl;
        lli test;
        cin>>test;
    }

    return 0;
}
