#include <bits/stdc++.h>
using namespace std;
const long long N = (long long)(1e6) + 322;
const long long INF = 2e18 + 17;
const long long inf = 2e9 + 17;
const long long mod = 1000000007;
const double eps = 1e-9;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long binpow(long long a, long long n, long long mod) {
  long long res = 1;
  while (n) {
    if (n & 1) {
      res *= a;
      res %= mod;
    }
    a *= a;
    a %= mod;
    n >>= 1;
  }
  return res;
}
long long n, a[N], mx, m, k;
long long X, Y;
char ch[N];
long long x, y, x1, adsfasdf;
long long difx;
long long dify;
long long cntX = 0;
long long cntY = 0;
bool check(long long mid) {
  long long curX = x + mid * X;
  long long curY = y + mid * Y;
  long long all = n * mid;
  long long alldif = abs(curX - x1) + abs(curY - adsfasdf);
  return all >= alldif;
}
signed main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(0);
  cin >> x >> y >> x1 >> adsfasdf;
  cin >> n;
  for (long long i = 1; i <= n; ++i) {
    cin >> ch[i];
    if (ch[i] == 'L') X--;
    if (ch[i] == 'R') X++;
    if (ch[i] == 'D') Y--;
    if (ch[i] == 'U') Y++;
  }
  long long l = -1, r = inf;
  while (r - l > 1) {
    long long mid = (l + r) / 2;
    if (!check(mid)) {
      l = mid;
    } else {
      r = mid;
    }
  }
  if (l >= inf - 100) {
    cout << -1;
    return 0;
  }
  long long ans = n * l;
  long long curX = x + l * X;
  long long curY = y + l * Y;
  for (long long i = 1; i <= n; ++i) {
    if (ch[i] == 'L') curX--;
    if (ch[i] == 'R') curX++;
    if (ch[i] == 'D') curY--;
    if (ch[i] == 'U') curY++;
    long long all = n * l + i;
    long long alldif = abs(curX - x1) + abs(curY - adsfasdf);
    if (alldif <= all) {
      cout << ans + i;
      return 0;
    }
  }
  return 0;
}
