#include <bits/stdc++.h>
using namespace std;
const int delta = 101;
const int L = 233, AL = 1e6 + 10;
const int vx[4] = {1, -1, 0, 0};
const int vy[4] = {0, 0, 1, -1};
const char vc[4] = {'D', 'U', 'R', 'L'};
int sx, sy, tx, ty, n, x[440], y[440];
int flat[L][L], vis[L][L], V, qx[L * L], qy[L * L], ql, qr, dis[L][L];
char sv[AL], ans[AL];
int mark[AL], svt, an;
bool inmap(int x, int y) {
  return 0 <= x && x <= (delta << 1) && 0 <= y && y <= (delta << 1);
}
bool empty(int x, int y) { return !inmap(x, y) || !flat[x][y]; }
void bfs(int gox, int goy) {
  vis[gox][goy] = ++V;
  dis[gox][goy] = 0;
  ql = qr = 1;
  qx[ql] = gox;
  qy[ql] = goy;
  while (ql <= qr) {
    for (int l = 0; l < 4; ++l) {
      int nx = qx[ql] + vx[l];
      int ny = qy[ql] + vy[l];
      if (inmap(nx, ny) && vis[nx][ny] != V && !flat[nx][ny]) {
        vis[nx][ny] = V;
        qx[++qr] = nx, qy[qr] = ny;
        dis[nx][ny] = dis[qx[ql]][qy[ql]] + 1;
      }
    }
    ql++;
  }
}
void move(int& x, int& y, char c) {
  if (c == 'U') --x;
  if (c == 'D') ++x;
  if (c == 'L') --y;
  if (c == 'R') ++y;
}
void run(char dc, int step = 1) {
  int dr;
  for (int l = 0; l < 4; ++l)
    if (vc[l] == dc) {
      dr = l;
      break;
    }
  for (int i = 1; i <= step; ++i) {
    sx += vx[dr], sy += vy[dr];
    if (empty(tx + vx[dr], ty + vy[dr])) {
      tx += vx[dr], ty += vy[dr];
    }
    ans[++an] = vc[dr];
  }
}
void outer_universe() {
  if (!n) {
    printf("-1\n");
    exit(0);
  }
  int x0 = 1, x1 = 1;
  int y0 = 1, y1 = 1;
  for (int i = 1; i <= n; ++i) {
    if (y[i] < y[x0]) x0 = i;
    if (y[i] > y[x1]) x1 = i;
    if (x[i] < x[y0]) y0 = i;
    if (x[i] > x[y1]) y1 = i;
  }
  while ((0 <= sx && sx <= 2 * delta) || (0 <= tx && tx <= 2 * delta)) run('U');
  if (ty < sy) {
    run('R', 6 * delta);
    while (tx < x[x1]) run('D');
    while (tx > x[x1]) run('U');
    int cnt = 0;
    while (ty != sy) {
      ++cnt;
      run('L');
    }
    run('R', cnt);
  } else {
    run('L', 6 * delta);
    while (tx < x[x0]) run('D');
    while (tx > x[x0]) run('U');
    int cnt = 0;
    while (ty != sy) {
      ++cnt;
      run('R');
    }
    run('L', cnt);
  }
  if (tx < sx) {
    run('D', 12 * delta);
    while (ty < y[y1]) run('R');
    while (ty > y[y1]) run('L');
    while (tx != sx) run('U');
  } else if (tx > sx) {
    run('U', 12 * delta);
    while (ty < y[y0]) run('R');
    while (ty > y[y0]) run('L');
    while (tx != sx) run('D');
  }
}
int main() {
  scanf("%d %d %d %d %d", &sx, &sy, &tx, &ty, &n);
  sx += delta;
  sy += delta;
  tx += delta;
  ty += delta;
  for (int i = 1; i <= n; ++i) {
    scanf("%d %d", &x[i], &y[i]);
    x[i] += delta;
    y[i] += delta;
    flat[x[i]][y[i]] = 1;
  }
  bfs(sx, sy);
  if (vis[tx][ty] != V) {
    printf("-1\n");
    return 0;
  }
  while (sx != tx || sy != ty) {
    bfs(tx, ty);
    int nsx = tx, nsy = ty;
    svt = 0;
    while (sx != nsx || sy != nsy) {
      int dr;
      for (int l = 0; l < 4; ++l) {
        int x = sx + vx[l];
        int y = sy + vy[l];
        if (inmap(x, y) && vis[x][y] == V && dis[x][y] == dis[sx][sy] - 1) {
          dr = l;
          break;
        }
      }
      sv[++svt] = vc[dr];
      ans[++an] = vc[dr];
      sx += vx[dr];
      sy += vy[dr];
      if (empty(tx + vx[dr], ty + vy[dr])) {
        tx += vx[dr];
        ty += vy[dr];
        mark[svt] = 1;
      } else {
        mark[svt] = 0;
      }
    }
    if (!inmap(tx, ty)) {
      for (int i = 1; i <= svt; ++i)
        if (mark[i]) {
          move(sx, sy, sv[i]);
          ans[++an] = sv[i];
          move(tx, ty, sv[i]);
        }
      outer_universe();
      break;
    }
  }
  for (int z = 1; z <= an; ++z) {
    char c = ans[z];
    if (c == 'U')
      c = 'L';
    else if (c == 'D')
      c = 'R';
    else if (c == 'L')
      c = 'D';
    else if (c == 'R')
      c = 'U';
    printf("%c", c);
  }
}
