#include <bits/stdc++.h>
using namespace std;
const char ch[4] = {'L', 'U', 'R', 'D'};
const int dl[4] = {-1, 0, 1, 0}, dr[4] = {0, 1, 0, -1}, FAT = 100;
bool bo;
int vx, vy, sx, sy;
vector<int> vec, path;
bool vis[605][605], used[605][605], a[605][605], h[605], g[605];
void dfs(int p, int q) {
  int i, l, r;
  used[p][q] = 1;
  for (i = 0; i <= (3); i++) {
    l = p + dl[i];
    r = q + dr[i];
    if (l >= 0 && r >= 0 && l <= 200 && r <= 200 && !a[l][r] && !used[l][r])
      dfs(l, r);
  }
}
void walk(int& vx, int& vy, int& sx, int& sy) {
  int i;
  for (i = 0; i <= (int(vec.size()) - 1); i++) {
    vx += dl[vec[i]];
    vy += dr[vec[i]];
    if (sx + dl[vec[i]] < 0 || sx + dl[vec[i]] > 200 || sy + dr[vec[i]] < 0 ||
        sy + dr[vec[i]] > 200 || !a[sx + dl[vec[i]]][sy + dr[vec[i]]])
      sx += dl[vec[i]], sy += dr[vec[i]];
    path.push_back(vec[i]);
    if (vx == sx && vy == sy) break;
  }
}
bool find(int p, int q, int top, int toq, int& vx, int& vy, int& sx, int& sy) {
  if (p == top && q == toq) {
    walk(vx, vy, sx, sy);
    return 1;
  }
  int i, l, r;
  bool rem = 0;
  if (!~p)
    h[q] = 1;
  else if (!~q)
    g[p] = 1;
  else
    vis[p][q] = 1;
  for (i = 0; i <= (3); i++) {
    l = p + dl[i];
    r = q + dr[i];
    if (l < -1 || r < -1 || l > 600 || r > 600 || !~l && !~r) continue;
    if (!~l && !h[r] || !~r && !g[l] || ~l && ~r && !a[l][r] && !vis[l][r]) {
      vec.push_back(i);
      rem = find(l, r, top, toq, vx, vy, sx, sy);
      vec.pop_back();
      if (rem) return 1;
    }
  }
  return 0;
}
void work() {
  int i, j, vvx, vvy, ssx, ssy;
  while (vx != sx || vy != sy) {
    vvx = vx;
    vvy = vy;
    ssx = sx;
    ssy = sy;
    find(vx, vy, sx, sy, vx, vy, sx, sy);
    if (vvx == vx && vvy == vy && ssx == sx && ssy == sy) puts("-1"), exit(0);
    for (i = 0; i <= (200); i++) {
      g[i] = h[i] = 0;
      for (j = 0; j <= (200); j++) vis[i][j] = 0;
    }
  }
  for (i = 0; i <= (int(path.size()) - 1); i++) putchar(ch[path[i]]);
  exit(0);
}
int main() {
  int m, i, j, x, y, k, tmp;
  cin >> vx >> vy >> sx >> sy >> m;
  if (!m) {
    if (vx == sx && vy == sy)
      cout << 0;
    else
      puts("-1");
    exit(0);
  }
  bo = vx == -1 && vy == 0 && sx == 1 && sy == 0 && m == 400;
  vx += FAT;
  vy += FAT;
  sx += FAT;
  sy += FAT;
  while (m--) cin >> x >> y, a[x + FAT][y + FAT] = 1;
  for (i = 0; i <= (200); i++) {
    if (!a[i][0]) dfs(i, 0);
    if (!a[i][200]) dfs(i, 200);
    if (!a[0][i]) dfs(0, i);
    if (!a[200][i]) dfs(200, i);
  }
  if (used[vx][vy] ^ used[sx][sy]) puts("-1"), exit(0);
  if (!used[vx][vy]) work();
  find(vx, vy, 600, 600, vx, vy, sx, sy);
  for (i = 0; i <= (600); i++)
    for (j = 0; j <= (600); j++) vis[i][j] = 0;
  if (sx <= 300 && sy <= 300)
    find(sx, sy, 300, 300, sx, sy, vx, vy);
  else if (sx < 300) {
    tmp = sx;
    for (k = 1; k <= (300 - tmp); k++) {
      path.push_back(2);
      sx++;
      vx++;
    }
  } else if (sy < 300) {
    tmp = sy;
    for (k = 1; k <= (300 - tmp); k++) {
      path.push_back(1);
      sy++;
      vy++;
    }
  }
  if (sy > vy) {
    tmp = sy;
    for (k = 1; k <= (tmp + 1); k++) {
      path.push_back(3);
      sy--;
      vy--;
    }
    for (j = 0; j <= (200); j++) {
      for (i = 0; i <= (200); i++)
        if (a[i][j]) break;
      if (i <= 200) break;
    }
    tmp = sx;
    for (k = 1; k <= (tmp - i); k++) {
      path.push_back(0);
      sx--;
      vx--;
    }
    tmp = vy;
    for (k = 1; k <= (j - tmp - 1); k++) path.push_back(1), vy++;
    sy = vy;
    for (i = 1; i <= (600); i++) {
      path.push_back(2);
      sx++;
      vx++;
    }
    for (i = 1; i <= (600); i++) {
      path.push_back(1);
      sy++;
      vy++;
    }
  }
  if (sy < vy) {
    for (j = 200; j >= (0); j--) {
      for (i = 0; i <= (200); i++)
        if (a[i][j]) break;
      if (i <= 200) break;
    }
    tmp = sx;
    for (k = 1; k <= (tmp - i); k++) {
      path.push_back(0);
      sx--;
      vx--;
    }
    tmp = vy;
    for (k = 1; k <= (tmp - j - 1); k++) path.push_back(3), vy--;
    sy = vy;
    for (i = 1; i <= (600); i++) {
      path.push_back(2);
      sx++;
      vx++;
    }
  }
  if (sx < vx) {
    for (i = 200; i >= (0); i--) {
      for (j = 0; j <= (200); j++)
        if (a[i][j]) break;
      if (j <= 200) break;
    }
    tmp = sy;
    for (k = 1; k <= (tmp - j); k++) {
      path.push_back(3);
      sy--;
      vy--;
    }
    tmp = vx;
    for (k = 1; k <= (tmp - i - 1); k++) path.push_back(0), vx--;
    sx = vx;
  }
  if (sx > vx) {
    for (i = 1; i <= (1200); i++) {
      path.push_back(0);
      sx--;
      vx--;
    }
    for (i = 0; i <= (200); i++) {
      for (j = 0; j <= (200); j++)
        if (a[i][j]) break;
      if (j <= 200) break;
    }
    tmp = sy;
    for (k = 1; k <= (tmp - j); k++) {
      path.push_back(3);
      sy--;
      vy--;
    }
    tmp = vx;
    for (k = 1; k <= (i - tmp - 1); k++) path.push_back(2), vx++;
    sx = vx;
  }
  for (i = 0; i <= (int(path.size()) - 1); i++) putchar(ch[path[i]]);
  return 0;
}
