#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000005;
long long x_1, y_1, x_2, y_2, rd_x, rd_y, dx[MAXN], dy[MAXN];
char s[MAXN];
long long l;
bool check(long long day) {
  long long delta_x = day / l * rd_x;
  long long delta_y = day / l * rd_y;
  if (day % l) {
    delta_x += dx[day % l - 1];
    delta_y += dy[day % l - 1];
  }
  long long needx = abs(x_1 + delta_x - x_2);
  long long needy = abs(y_1 + delta_y - y_2);
  return needx + needy <= day;
}
int main() {
  scanf("%I64d %I64d", &x_1, &y_1);
  scanf("%I64d %I64d", &x_2, &y_2);
  if (x_1 == x_2 && y_1 == y_2) {
    printf("0\n");
    return 0;
  }
  scanf("%I64d", &l);
  scanf("%s", s);
  for (int i = 0; i < l; ++i) {
    if (i) dx[i] = dx[i - 1], dy[i] = dy[i - 1];
    if (s[i] == 'U') ++rd_y, ++dy[i];
    if (s[i] == 'D') --rd_y, --dy[i];
    if (s[i] == 'R') ++rd_x, ++dx[i];
    if (s[i] == 'L') --rd_x, --dx[i];
  }
  long long L = 1;
  long long R = (long long)1e16;
  while (L != R) {
    long long mid = (L + R) >> 1;
    if (check(mid)) {
      R = mid;
    } else {
      L = mid + 1;
    }
  }
  if (L != (long long)1e16)
    printf("%I64d\n", L);
  else {
    printf("-1\n");
  }
  return 0;
}
