#include <bits/stdc++.h>
using namespace std;
int d[4] = {'U', 'D', 'L', 'R'};
int dx[100], dy[100];
char wind[100010];
long long xi, yi;
long long xf, yf;
long long x, y;
long long n;
long long wx[100010];
long long wy[100010];
long long solve() {
  long long di = (abs(xf - xi) + abs(yf - yi));
  if (xi == xf && yi == yf) return 0;
  gets(wind);
  for (int i = 0; i < n; i++) {
    x += dx[wind[i]];
    y += dy[wind[i]];
    wx[i] = x;
    wy[i] = y;
    if (abs(xf - (xi + x)) + abs(yf - (yi + y)) <= i + 1) return i + 1;
  }
  long long apserie = di - (abs(xf - x) + abs(yf - y)) + n;
  if (apserie <= 0) return -1;
  long long minim = -1;
  for (int i = 0; i < n; i++) {
    int apw = di - (abs(xf - (xi + wx[i])) + abs(yf - (yi + wy[i]))) + i + 1;
    int aux = (di - apw) / apserie;
    if ((di - apw) % apserie == 0)
      minim = minim == -1 ? aux * n + i + 1 : min(minim, aux * n + i + 1);
    else
      minim = minim == -1 ? (aux + 1) * n + i + 1
                          : min(minim, (aux + 1) * n + i + 1);
  }
  return minim;
}
int main() {
  dy['U'] = 1;
  dy['D'] = -1;
  dx['L'] = -1;
  dx['R'] = 1;
  scanf("%lld%lld\n", &xi, &yi);
  scanf("%lld%lld\n", &xf, &yf);
  scanf("%lld\n", &n);
  printf("%lld\n", solve());
  return 0;
}
