#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
char s[N];
long long dx[N], dy[N];
long long x, y, ex, ey, n;
bool isok(long long bs) {
  long long nx = x + (bs / n) * dx[n], ny = y + (bs / n) * dy[n];
  nx += dx[bs % n];
  ny += dy[bs % n];
  if (abs(ex - nx) + abs(ey - ny) <= bs)
    return true;
  else
    return false;
}
long long getans() {
  long long l = 0, r = 1e15 + 7, mid;
  while (l + 1 < r) {
    mid = (l + r) >> 1;
    if (isok(mid))
      r = mid;
    else
      l = mid;
  }
  if (isok(l))
    return l;
  else if (isok(r))
    return r;
  else
    return -1;
}
int main() {
  cin >> x >> y >> ex >> ey >> n;
  scanf("%s", s + 1);
  for (int i = (1); i < (n + 1); ++i) {
    if (s[i] == 'U') {
      dy[i] = dy[i - 1] + 1;
      dx[i] = dx[i - 1];
    } else if (s[i] == 'D') {
      dy[i] = dy[i - 1] - 1;
      dx[i] = dx[i - 1];
    } else if (s[i] == 'L') {
      dx[i] = dx[i - 1] - 1;
      dy[i] = dy[i - 1];
    } else {
      dx[i] = dx[i - 1] + 1;
      dy[i] = dy[i - 1];
    }
  }
  cout << getans() << endl;
}
