#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll x_1, y_1, x2, y2, n;
vector<pair<ll, ll>> s;
bool check(ll d) {
  ll a = floor(d / n);
  ll r = d % n;
  ll x = x_1 + (a * s[n].first + s[r].first);
  ll y = y_1 + (a * s[n].second + s[r].second);
  if (abs(x2 - x) + abs(y2 - y) <= d)
    return true;
  else
    return false;
}
ll firstTrue(ll L, ll R) {
  ll M = (L + R) / 2;
  if (L == R) {
    if (check(M) == true and check(M - 1) == false)
      return M;
    else
      return -1;
  } else {
    if (check(M) == true and check(M - 1) == false)
      return M;
    else if (check(M) == true and check(M - 1) == true)
      R = M;
    else
      L = M + 1;
    return firstTrue(L, R);
  }
}
int main() {
  cin >> x_1 >> y_1 >> x2 >> y2 >> n;
  char c;
  s.push_back({0, 0});
  for (int i = 1; i <= n; i++) {
    cin >> c;
    pair<int, int> p = s[i - 1];
    if (c == 'U') p.second++;
    if (c == 'D') p.second--;
    if (c == 'L') p.first--;
    if (c == 'R') p.first++;
    s.push_back(p);
  }
  cout << firstTrue(1, 2 * pow(10, 14));
}
