#include <iostream>
#include <string>
using namespace std;

#define UKWN_RTO 0.9
#define SMPL_EXEC_CNT 150

int si, sj, ti, tj, ch[29][30]={0}, cw[30][29]={0}, len, tc=0;
double lh[29][30]={0}, lw[30][29]={0}, pl[30][30], tmp, tl=0;
string pp[30][30];

bool gl(int pi, int pj)
{
	return pj > tj;
}

double ll(int pi, int pj)
{
	if (tc == 0)
		return 1;
		
	if (cw[pi][pj-1] == 0)
		return tl / tc * UKWN_RTO;

	return lw[pi][pj-1] / cw[pi][pj-1];
}

bool gr(int pi, int pj)
{
	return pj < tj;
}

double lr(int pi, int pj)
{
	if (tc == 0)
		return 1;
		
	if (cw[pi][pj] == 0)
		return tl / tc * UKWN_RTO;

	return lw[pi][pj] / cw[pi][pj];
}

bool gu(int pi, int pj)
{
	return pi > ti;
}

double lu(int pi, int pj)
{
	if (tc == 0)
		return 1;
		
	if (ch[pi-1][pj] == 0)
		return tl / tc * UKWN_RTO;

	return lh[pi-1][pj] / ch[pi-1][pj];
}

bool gd(int pi, int pj)
{
	return pi < ti;
}

double ld(int pi, int pj)
{
	if (tc == 0)
		return 1;
		
	if (ch[pi][pj] == 0)
		return tl / tc * UKWN_RTO;

	return lh[pi][pj] / ch[pi][pj];
}

void calc2(int pi, int pj)
{
	while (true)
	{
		while(true)
		{
			if (gu(pi, pj))
			{
				tmp = pl[pi][pj] + lu(pi, pj);
				if (tmp < pl[pi-1][pj])
				{
					pl[pi-1][pj] = tmp;
					pp[pi-1][pj] = pp[pi][pj];
					pp[pi-1][pj] += 'U';
				}
			}

			else if (gd(pi, pj))
			{
				tmp = pl[pi][pj] + ld(pi, pj);
				if (tmp < pl[pi+1][pj])
				{
					pl[pi+1][pj] = tmp;
					pp[pi+1][pj] = pp[pi][pj];
					pp[pi+1][pj] += 'D';
				}
			}

			if (gl(pi, pj))
			{
				tmp = pl[pi][pj] + ll(pi, pj);
				pj--;
				if (tmp < pl[pi][pj])
				{
					pl[pi][pj] = tmp;
					pp[pi][pj] = pp[pi][pj+1];
					pp[pi][pj] += 'L';
				}
			}

			else if (gr(pi, pj))
			{
				tmp = pl[pi][pj] + lr(pi, pj);
				pj++;
				if (tmp < pl[pi][pj])
				{
					pl[pi][pj] = tmp;
					pp[pi][pj] = pp[pi][pj-1];
					pp[pi][pj] += 'R';
				}
			}

			else
				break;
		}

		pj = sj;
		if (gu(pi, pj))
			pi--;
		else if (gd(pi, pj))
			pi++;
		else
			break;
	}
}

void calc3()
{
	bool f[30][30];
	for (int j=0; j<30; j++)
		for (int k=0; k<30; k++)
			f[j][k] = true;

	for (int i=0; i<900; i++)
	{
		int pi, pj;
		double d = 1e100;
		for (int j=0; j<30; j++)
			for (int k=0; k<30; k++)
				if (f[j][k] && pl[j][k] < d)
				{
					pi = j;
					pj = k;
					d = pl[j][k];
				}

		f[pi][pj] = false;

		if (pi > 0)
		{
			tmp = pl[pi][pj] + lu(pi, pj);
			if (tmp < pl[pi-1][pj])
			{
				pl[pi-1][pj] = tmp;
				pp[pi-1][pj] = pp[pi][pj];
				pp[pi-1][pj] += 'U';
			}
		}

		if (pi < 29)
		{
			tmp = pl[pi][pj] + ld(pi, pj);
			if (tmp < pl[pi+1][pj])
			{
				pl[pi+1][pj] = tmp;
				pp[pi+1][pj] = pp[pi][pj];
				pp[pi+1][pj] += 'D';
			}
		}

		if (pj > 0)
		{
			tmp = pl[pi][pj] + ll(pi, pj);
			if (tmp < pl[pi][pj-1])
			{
				pl[pi][pj-1] = tmp;
				pp[pi][pj-1] = pp[pi][pj];
				pp[pi][pj-1] += 'L';
			}
		}

		if (pj < 29)
		{
			tmp = pl[pi][pj] + lr(pi, pj);
			if (tmp < pl[pi][pj+1])
			{
				pl[pi][pj+1] = tmp;
				pp[pi][pj+1] = pp[pi][pj];
				pp[pi][pj+1] += 'R';
			}
		}
	}
}

int main()
{
	for (int i=0; i<1000; i++)
	{
		cin >> si >> sj >> ti >> tj;
		for (int j=0; j<30; j++)
			for (int k=0; k<30; k++)
			{
				pp[j][k] = "X";
				pl[j][k] = 1e100;
			}
		pl[si][sj] = 0;
		pp[si][sj] = "";
		if (i < SMPL_EXEC_CNT)
			calc2(si, sj);
		else
			calc3();

		string path = pp[ti][tj];
		cout << path << endl;
		cin >> len;
		len /= path.length();
		tc++;
		tl += len;
		for (int j=0; j<path.length(); j++)
			switch (path[j])
			{
				case 'U':
					si--;
					ch[si][sj]++;
					lh[si][sj] += len;
					break;
				case 'D':
					ch[si][sj]++;
					lh[si][sj] += len;
					si++;
					break;
				case 'L':
					sj--;
					cw[si][sj]++;
					lw[si][sj] += len;
					break;
				case 'R':
					cw[si][sj]++;
					lw[si][sj] += len;
					sj++;
					break;
			}
	}
	return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false); cin.tie(nullptr);
#define FOR(i,s,n) for(int i = (s); i < (n); i++)
#define REP(i,n) FOR(i,0,n)
#define RREP(i,n) for(int i = (n); i >= 0; i--)
#define ALL(n) (n).begin(), (n).end()
#define RALL(n) (n).rbegin(), (n).rend()
#define ATYN(n) cout << ( (n) ? "Yes":"No") << '\n';
#define CFYN(n) cout << ( (n) ? "YES":"NO") << '\n';
#define OUT(n) cout << (n) << '\n';
using ll = long long;
using ull = unsigned long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;

const int HW = 30;
const int Q = 1000;

void out(string s) {
    cout << s << '\n';
    cout.flush();
}

struct route {
    pii xy;
    string r;
};

int main(void)
{
    REP(i,Q) {
        pii s,t;
        cin >> s.first >> s.second >> t.first >> t.second;
        cin.ignore();

        string ans = "";
        if (s.first < t.first) ans += string(t.first-s.first,'D');
        else ans += string(s.first-t.first,'U');
        if (s.second < t.second) ans += string(t.second-s.second,'R');
        else ans += string(s.second-t.second,'L');

        out(ans);
        int score;
        cin >> score;
        cin.ignore();
    }

    return 0;
}