#include <bits/stdc++.h>
using namespace std;
int n, X, Y, x2, y2;
char wind[100005];
int posx[100005], posy[100005];
int judge(long long day) {
  long long r = day / n, p = day % n;
  long long px = posx[n] * r + posx[p] + X, py = posy[n] * r + posy[p] + Y;
  long long dis = (long long)abs(px - x2) + (long long)abs(py - y2);
  if (day >= dis)
    return 1;
  else
    return 0;
}
int main() {
  cin >> X >> Y >> x2 >> y2;
  cin >> n;
  scanf("%s", wind + 1);
  int x = 0, y = 0;
  posx[0] = posy[0] = 0;
  for (int i = 1; i <= n; i++) {
    if (wind[i] == 'U')
      y++;
    else if (wind[i] == 'D')
      y--;
    else if (wind[i] == 'L')
      x--;
    else if (wind[i] == 'R')
      x++;
    posx[i] = x;
    posy[i] = y;
  }
  long long d1 = (long long)abs(X - x2) + (long long)abs(Y - y2);
  long long d2 =
      (long long)abs(X + posx[n] - x2) + (long long)abs(Y + posy[n] - y2);
  long long left = 1, right = 1e16;
  while (left <= right) {
    long long mid = (left + right) / 2;
    if (judge(mid))
      right = mid - 1;
    else
      left = mid + 1;
  }
  long long t = 1e16;
  if (left == t + 1)
    cout << -1 << endl;
  else
    cout << left << endl;
  return 0;
}
