#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 100 * 1000 + 10;
long long xp[MAXN], yp[MAXN], x11, y11, x22, y22, n;
bool f(long long a) {
  long long s11 = (xp[n] * (a / n)) + xp[a % n],
            s22 = (yp[n] * (a / n)) + yp[a % n];
  if (abs(x22 - s11) + abs(y22 - s22) > a) return false;
  return true;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string str;
  cin >> x11 >> y11 >> x22 >> y22 >> n >> str;
  x22 -= x11, y22 -= y11;
  for (long long i = 1; i <= n; i++) {
    xp[i] = xp[i - 1];
    yp[i] = yp[i - 1];
    if (str[i - 1] == 'U')
      yp[i]++;
    else if (str[i - 1] == 'D')
      yp[i]--;
    else if (str[i - 1] == 'R')
      xp[i]++;
    else
      xp[i]--;
  }
  long long l = -1, r = (abs(x22) + abs(y22)) * (abs(x22) + abs(y22)) + 10;
  bool poss = false;
  while (r - l > 1) {
    long long mid = (l + r) / 2;
    if (f(mid)) {
      poss = true;
      r = mid;
    } else
      l = mid;
  }
  cout << (poss ? r : -1) << endl;
  return 0;
}
