#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:100000000")
int matrix[900][900];
int tmp[900][900];
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
vector<pair<int, int> > all;
void go(int x, int y) {
  queue<pair<int, int> > q;
  tmp[x][y] = 1;
  q.push(make_pair(x, y));
  all.push_back(make_pair(x, y));
  while (!q.empty()) {
    x = q.front().first;
    y = q.front().second;
    q.pop();
    for (int i = 0; i < 4; i++) {
      if (x + dx[i] >= 290 && x + dx[i] <= 510 && y + dy[i] >= 290 &&
          y + dy[i] <= 510) {
        if (matrix[x + dx[i]][y + dy[i]] != 255 &&
            tmp[x + dx[i]][y + dy[i]] == 0) {
          tmp[x + dx[i]][y + dy[i]] = 1;
          q.push(make_pair(x + dx[i], y + dy[i]));
          all.push_back(make_pair(x + dx[i], y + dy[i]));
        }
      }
    }
  }
}
vector<int> path;
int cnt = 0;
void bfs(int x1, int y1, int x2, int y2) {
  for (int i = 0, maxi = (int)(all).size(); i < maxi; i++) {
    int x = all[i].first;
    int y = all[i].second;
    tmp[x][y] = 0;
  }
  all.clear();
  path.clear();
  cnt = 0;
  queue<pair<int, int> > q;
  q.push(make_pair(x1, y1));
  tmp[x1][y1] = 111;
  all.push_back(make_pair(x1, y1));
  while (!q.empty()) {
    for (int i = 0, maxi = (int)(q).size(); i < maxi; i++) {
      int x = q.front().first;
      int y = q.front().second;
      q.pop();
      if (x == x2 && y == y2) {
        cnt = 0;
        while (x != x1 || y != y1) {
          int j = tmp[x][y] - 1;
          cnt++;
          path.push_back(j);
          x = x - dx[j];
          y = y - dy[j];
        }
        return;
      }
      for (int j = 0; j < 4; j++) {
        if (x + dx[j] >= 290 && x + dx[j] <= 510 && y + dy[j] >= 290 &&
            y + dy[j] <= 510) {
          if (matrix[x + dx[j]][y + dy[j]] != 255 &&
              tmp[x + dx[j]][y + dy[j]] == 0) {
            tmp[x + dx[j]][y + dy[j]] = j + 1;
            q.push(make_pair(x + dx[j], y + dy[j]));
            all.push_back(make_pair(x + dx[j], y + dy[j]));
          }
        }
      }
    }
  }
}
string ans = "";
int main() {
  int x1, y1, x2, y2;
  scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
  x1 += 400;
  y1 += 400;
  x2 += 400;
  y2 += 400;
  int m;
  scanf("%d", &m);
  int max_x = 0, min_x = 800, max_y = 0, min_y = 800;
  for (int i = 0; i < m; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    x += 400;
    y += 400;
    min_x = min(min_x, x);
    max_x = max(max_x, x);
    min_y = min(min_y, y);
    max_y = max(max_y, y);
    matrix[x][y] = 255;
  }
  go(x1, y1);
  if (m == 0 || tmp[x1][y1] != tmp[x2][y2]) {
    printf("-1");
    return 0;
  }
  while (true) {
    bfs(x1, y1, x2, y2);
    reverse(path.begin(), path.end());
    for (int i = 0; i < cnt; i++) {
      if (path[i] == 0)
        ans += "R";
      else if (path[i] == 1)
        ans += "U";
      else if (path[i] == 2)
        ans += "L";
      else if (path[i] == 3)
        ans += "D";
      int j = path[i];
      x1 += dx[j];
      y1 += dy[j];
      if (matrix[x2 + dx[j]][y2 + dy[j]] != 255) {
        x2 += dx[j];
        y2 += dy[j];
        path.push_back(j);
        cnt++;
      }
      if (min(y1, y2) > max_y || max(y1, y2) < min_y || min(x1, x2) > max_x ||
          max(x1, x2) < min_x || x1 == x2 && y1 == y2)
        break;
    }
    if (x1 == x2 && y1 == y2) {
      cout << ans;
      return 0;
    }
    bool flag = false;
    if (min(y1, y2) > max_y) {
      if (max(x1, x2) >= min_x) {
        int diff = max(x1, x2) - min_x + 1;
        x1 -= diff;
        x2 -= diff;
        for (int i = 0; i < diff; i++) ans += "L";
      }
      if (max(y1, y2) >= min_y) {
        int diff = max(y1, y2) - min_y + 1;
        y1 -= diff;
        y2 -= diff;
        for (int i = 0; i < diff; i++) ans += "D";
      }
      flag = true;
    } else if (max(y1, y2) < min_y) {
      if (max(x1, x2) >= min_x) {
        int diff = max(x1, x2) - min_x + 1;
        x1 -= diff;
        x2 -= diff;
        for (int i = 0; i < diff; i++) ans += "L";
      }
      if (max(y1, y2) >= min_y) {
        int diff = max(y1, y2) - min_y + 1;
        y1 -= diff;
        y2 -= diff;
        for (int i = 0; i < diff; i++) ans += "D";
      }
      flag = true;
    } else if (min(x1, x2) > max_x) {
      if (max(y1, y2) >= min_y) {
        int diff = max(y1, y2) - min_y + 1;
        y1 -= diff;
        y2 -= diff;
        for (int i = 0; i < diff; i++) ans += "D";
      }
      if (max(x1, x2) >= min_x) {
        int diff = max(x1, x2) - min_x + 1;
        x1 -= diff;
        x2 -= diff;
        for (int i = 0; i < diff; i++) ans += "L";
      }
      flag = true;
    } else if (max(x1, x2) < min_x) {
      if (max(y1, y2) >= min_y) {
        int diff = max(y1, y2) - min_y + 1;
        y1 -= diff;
        y2 -= diff;
        for (int i = 0; i < diff; i++) ans += "D";
      }
      if (max(x1, x2) >= min_x) {
        int diff = max(x1, x2) - min_x + 1;
        x1 -= diff;
        x2 -= diff;
        for (int i = 0; i < diff; i++) ans += "L";
      }
      flag = true;
    }
    if (flag) {
      if (y2 > y1) {
        int y = min_y;
        int x;
        for (int i = 290; i < 510; i++) {
          if (matrix[i][y] == 255) {
            x = i;
            break;
          }
        }
        if (x2 < x) {
          int diff = x - x2;
          x1 += diff;
          x2 += diff;
          for (int i = 0; i < diff; i++) ans += "R";
        }
        if (y2 != y1) {
          int diff = y - y1 - 1;
          y2 = y - 1;
          y1 = y2;
          for (int i = 0; i < diff; i++) ans += "U";
        }
      } else {
        if (min(y1, y2) <= max_y) {
          int diff = max_y - min(y1, y2) + 1;
          y1 += diff;
          y2 += diff;
          for (int i = 0; i < diff; i++) ans += "U";
        }
        int y = max_y;
        int x;
        for (int i = 290; i < 510; i++) {
          if (matrix[i][y] == 255) {
            x = i;
            break;
          }
        }
        if (x2 < x) {
          int diff = x - x2;
          x1 += diff;
          x2 += diff;
          for (int i = 0; i < diff; i++) ans += "R";
        }
        if (y2 != y1) {
          int diff = y1 - y - 1;
          y1 -= diff;
          y2 = y + 1;
          for (int i = 0; i < diff; i++) ans += "D";
        }
      }
      if (x2 > x1) {
        if (max(x1, x2) >= min_x) {
          int diff = max(x1, x2) - min_x + 1;
          x2 -= diff;
          x1 -= diff;
          for (int i = 0; i < diff; i++) ans += "L";
        }
        if (max(y1, y2) >= min_y) {
          int diff = max(y1, y2) - min_y + 1;
          y2 -= diff;
          y1 -= diff;
          for (int i = 0; i < diff; i++) ans += "D";
        }
        int x = min_x;
        int y;
        for (int i = 290; i < 510; i++) {
          if (matrix[x][i] == 255) {
            y = i;
            break;
          }
        }
        if (y1 < y) {
          int diff = y - y1;
          y1 += diff;
          y2 += diff;
          for (int i = 0; i < diff; i++) ans += "U";
        }
        if (x2 != x1) {
          int diff = x - x1 - 1;
          x1 += diff;
          x2 = x - 1;
          for (int i = 0; i < diff; i++) ans += "R";
        }
        cout << ans;
        return 0;
      } else {
        if (min(x1, x2) <= max_x) {
          int diff = max_x - min(x1, x2) + 1;
          x1 += diff;
          x2 += diff;
          for (int i = 0; i < diff; i++) ans += "R";
        }
        if (max(y1, y2) >= min_y) {
          int diff = max(y1, y2) - min_y + 1;
          y2 -= diff;
          y1 -= diff;
          for (int i = 0; i < diff; i++) ans += "D";
        }
        int x = max_x;
        int y;
        for (int i = 290; i < 510; i++) {
          if (matrix[x][i] == 255) {
            y = i;
            break;
          }
        }
        if (y1 < y) {
          int diff = y - y1;
          y1 += diff;
          y2 += diff;
          for (int i = 0; i < diff; i++) ans += "U";
        }
        while (x2 != x1) {
          int diff = x1 - x - 1;
          x1 -= diff;
          x2 = x + 1;
          for (int i = 0; i < diff; i++) ans += "L";
        }
        cout << ans;
        return 0;
      }
    }
  }
  return 0;
}
