#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1e5 + 10;
long long x1, y11, x2, y2;
long long n;
pair<long long, long long> e;
string blow;
long long prex[maxn], prey[maxn];
long long length(pair<long long, long long> s, pair<long long, long long> e) {
  return abs(s.first - e.first) + abs(s.second - e.second);
}
pair<long long, long long> tp(long long t) {
  return {x1 + (t / n) * prex[n] + prex[t % n],
          y11 + (t / n) * prey[n] + prey[t % n]};
}
void init() {
  cin >> x1 >> y11;
  cin >> x2 >> y2;
  cin >> n;
  cin >> blow;
  e = {x2, y2};
  for (int i = 0; i < n; i++) {
    char c = blow[i];
    prex[i + 1] = prex[i];
    prey[i + 1] = prey[i];
    switch (c) {
      case 'U':
        prey[i + 1] = prey[i] + 1;
        break;
      case 'D':
        prey[i + 1] = prey[i] - 1;
        break;
      case 'L':
        prex[i + 1] = prex[i] - 1;
        break;
      case 'R':
        prex[i + 1] = prex[i] + 1;
        break;
    }
  }
}
void solve() {
  long long left = 1, right = 1e15;
  long long ans = -1;
  while (left <= right) {
    long long mid = (left + right) >> 1;
    pair<long long, long long> s = tp(mid);
    long long len = length(s, e);
    if (len <= mid) {
      right = mid - 1;
      ans = mid;
    } else
      left = mid + 1;
  }
  cout << ans << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  init();
  solve();
  return 0;
}
