#include <algorithm>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#define _USE_MATH_DEFINES
#include <math.h>
#include <fstream>

#include <complex>
#include <functional>
using namespace std;

#define rep(i, x) for (int i = 0; i < x; ++i)
#define repn(i, x) for (int i = 1; i <= x; ++i)

const static int n_query = 1000;
const static int INF = 100000000;

vector<pair<int, int>> QS(1000), QT(1000);
vector<int> length(1000, INF);

void naive(string& path, int si, int sj, int ti, int tj) {
  int di = ti - si;
  int dj = tj - sj;

  if (di >= 0) {
    rep(i, di) { path += 'D'; }
  } else {
    rep(i, -di) { path += 'U'; }
  }

  if (dj >= 0) {
    rep(i, dj) { path += 'R'; }
  } else {
    rep(i, -dj) { path += 'L'; }
  }
}

string solve(int si, int sj, int ti, int tj) {
  string path = "";
  naive(path, si, sj, ti, tj);
  return path;
}


void make_output(string filename, const string& path) {
  fstream file_out;

  file_out.open(filename, std::ios_base::out);
  if (!file_out.is_open()) {
    cout << "failed to open " << filename << '\n';
  } else {
    file_out << path << endl;
  }
}

int main() {
  rep(i, n_query) {
    int si, sj, ti, tj;
    cin >> si >> sj >> ti >> tj;
    QS[i] = make_pair(si, sj);
    QT[i] = make_pair(ti, tj);

    string path = solve(si, sj, ti, tj);
    cout << path << endl;
    // make_output("output_naive.txt", path);

    int b;
    cin >> b;
    length[i] = b;
  }
}
#include <bits/stdc++.h>
// clang-format off
using namespace std; using ll=long long; using ull=unsigned long long; using pll=pair<ll,ll>; const ll INF=4e18;
void print0(){}; template<typename H,typename... T> void print0(H h,T... t){cout<<fixed<<setprecision(15)<<h;print0(t...);}
void print(){print0("\n");}; template<typename H,typename... T>void print(H h,T... t){print0(h);if(sizeof...(T)>0)print0(" ");print(t...);}
void perr0(){}; template<typename H,typename... T> void perr0(H h,T... t){cerr<<fixed<<setprecision(10)<<h;perr0(t...);}
void perr(){perr0("\n");}; template<typename H,typename... T>void perr(H h,T... t){perr0(h);if(sizeof...(T)>0)perr0(" ");perr(t...);}
void ioinit() { cout << fixed << setprecision(15); ios_base::sync_with_stdio(0); cin.tie(0); }
// clang-format on

const ll N = 30;
const ll K = 1000;
struct query {
    ll si;
    ll sj;
    ll ti;
    ll tj;
};

// ローカル用
const int LOCAL = 0;
vector<vector<ll>> lhori;
vector<vector<ll>> lver;
vector<query> lqueries;
struct lscorefunc {
    ll a;
    double e;
};
vector<lscorefunc> lscorefuncs;
ll local_qid = 0;
void init_local() {
    lhori.resize(N, vector<ll>(N - 1));
    lver.resize(N - 1, vector<ll>(N));
    for (ll i = 0; i < N; i++) {
        for (ll j = 0; j < N - 1; j++) {
            cin >> lhori[i][j];
        }
    }
    for (ll i = 0; i < N - 1; i++) {
        for (ll j = 0; j < N; j++) {
            cin >> lver[i][j];
        }
    }
    for (ll i = 0; i < K; i++) {
        ll si, sj, ti, tj, a;
        double e;
        cin >> si >> sj >> ti >> tj >> a >> e;
        lqueries.push_back(query({si, sj, ti, tj}));
        lscorefuncs.push_back(lscorefunc({a, e}));
    }
}
ll response_local(string &s, query q) {
    ll i = q.si;
    ll j = q.sj;
    ll length = 0;
    for (char c : s) {
        if (c == 'D') {
            i = i + 1;
            length += lver[i - 1][j];
        } else if (c == 'U') {
            i = i - 1;
            length += lver[i][j];
        } else if (c == 'R') {
            j = j + 1;
            length += lhori[i][j - 1];
        } else if (c == 'L') {
            j = j - 1;
            length += lhori[i][j];
        }
    }
    return length;
}
query get_query_local() {
    query q = lqueries[local_qid];
    local_qid++;
    return q;
}
//

ll response(string &s, query q) {
    if (LOCAL) {
        return response_local(s, q);
    }

    cout << s << "\n";
    cout.flush();
    ll length = 0;
    cin >> length;
    return length;
}
query get_query() {
    if (LOCAL) {
        return get_query_local();
    }

    ll si, sj, ti, tj;
    cin >> si >> sj >> ti >> tj;
    return query({si, sj, ti, tj});
}

int main() {
    ioinit();
    if (LOCAL) {
        init_local();
    }
    for (ll task = 0; task < K; task++) {
        query q = get_query();
        string s;
        if (q.si > q.ti) {
            for (ll h = 0; h < (q.si - q.ti); h++) {
                s.push_back('U');
            }
        } else if (q.si < q.ti) {
            for (ll h = 0; h < (q.ti - q.si); h++) {
                s.push_back('D');
            }
        }
        if (q.sj > q.tj) {
            for (ll i = 0; i < (q.sj - q.tj); i++) {
                s.push_back('L');
            }
        } else if (q.sj < q.tj) {
            for (ll i = 0; i < (q.tj - q.sj); i++) {
                s.push_back('R');
            }
        }
        ll length = response(s, q);
    }
}
