#include <bits/stdc++.h>
using namespace std;
const int dir[4][2] = {{1, 0}, {0, 1}, {0, -1}, {-1, 0}};
const string cc = "RUDL";
queue<pair<int, int> > q;
bool vis[310][310], mp[310][310];
pair<int, int> from[310][310];
int predir[310][310];
bool inarea(pair<int, int> c) {
  return c.first >= 0 && c.first <= 300 && c.second >= 0 && c.second <= 300;
}
int sx, sy, tx, ty, n;
vector<int> p;
pair<int, int> P[4];
bool bfs() {
  q.push(make_pair(sx, sy));
  while (!q.empty()) {
    pair<int, int> fr = q.front();
    q.pop();
    for (int d = 0; d < 4; d++) {
      pair<int, int> nxt =
          make_pair(fr.first + dir[d][0], fr.second + dir[d][1]);
      if (inarea(nxt) && !vis[nxt.first][nxt.second]) {
        q.push(nxt);
        vis[nxt.first][nxt.second] = 1;
        predir[nxt.first][nxt.second] = d;
        from[nxt.first][nxt.second] = fr;
        if (nxt == make_pair(tx, ty)) {
          for (; nxt != make_pair(sx, sy); nxt = from[nxt.first][nxt.second])
            p.push_back(predir[nxt.first][nxt.second]);
          reverse(p.begin(), p.end());
          return 1;
        }
      }
    }
  }
  return 0;
}
bool move(int k) {
  sx += dir[k][0];
  sy += dir[k][1];
  tx += dir[k][0];
  ty += dir[k][1];
  putchar(cc[k]);
  if (inarea(make_pair(tx, ty)) && mp[tx][ty]) {
    tx -= dir[k][0];
    ty -= dir[k][1];
    return 0;
  }
  return 1;
}
void pre() {
  while ((0 <= sx && sx <= 300) || (0 <= tx && tx <= 300)) move(0);
  while ((0 <= sy && sy <= 300) || (0 <= ty && ty <= 300)) move(1);
}
void ud(int d) {
  pre();
  while ((d == 2 && 0 <= ty) || (d == 1 && ty <= 300)) move(d);
  while (tx != P[d].first) move(tx < P[d].first ? 0 : 3);
  while (sy != ty) move(3 - d);
}
void lr(int d) {
  pre();
  while ((d == 3 && 0 <= tx) || (d == 0 && tx <= 300)) move(d);
  while (ty != P[d].second) move(ty < P[d].second ? 1 : 2);
  while (sx != tx) move(3 - d);
}
int main() {
  scanf("%d%d%d%d%d", &sx, &sy, &tx, &ty, &n);
  sx += 150;
  sy += 150;
  tx += 150;
  ty += 150;
  pair<int, int> L = make_pair(1000000000, 0), R = make_pair(-1000000000, 0);
  pair<int, int> D = make_pair(0, 1000000000), U = make_pair(-1000000000, 0);
  for (int i = 1; i <= n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    x += 150;
    y += 150;
    if (x < L.first) L = make_pair(x, y);
    if (x > R.first) R = make_pair(x, y);
    if (y < D.second) D = make_pair(x, y);
    if (y > U.second) U = make_pair(x, y);
    vis[x][y] = mp[x][y] = 1;
  }
  P[0] = R;
  P[1] = U;
  P[2] = D, P[3] = L;
  if (!n || !bfs()) {
    puts("-1");
    return 0;
  }
  bool f = 0;
  for (int i = 0; i < p.size(); i++) {
    if (move(p[i])) p.push_back(p[i]);
    if (sx == tx && sy == ty) {
      f = 1;
      break;
    }
    if (!inarea(make_pair(sx, sy))) break;
  }
  if (!f) {
    if (sy < ty) ud(2);
    if (sy > ty) ud(1);
    if (sx < tx) lr(3);
    if (sx > tx) lr(0);
  }
  return 0;
}
