#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
int tt;
cin >> tt;
while (tt--) {
string d;
int n, m, i1, j1, i2, j2;
cin >> n >> m >> i1 >> j1 >> i2 >> j2 >> d;
map<string, int> mp;
mp["DL"] = 0, mp["DR"] = 1, mp["UL"] = 0, mp["UR"] = 1;
vector<vector<vector<bool> > > vis(n, vector<vector<bool> > (m, vector<bool> (4, 0)));
n--, m--, i2--, j2--;
int x = i1 - 1, y = j1 - 1;
int ans = -1, cnt = 0;
while (true) {
if (vis[x][y][mp[d]]) break;
vis[x][y][mp[d]] = true;
if (d == "DL") {
int tmp = min(n - x, y);
if (i2 - x == y - j2 && i2 >= x) {
ans = cnt;
break;
}
x += tmp, y -= tmp;
if (x == n) d[0] = 'U';
if (y == 0) d[1] = 'R';
} else if (d == "DR") {
int tmp = min(n - x, m - y);
if (i2 - x == j2 - y && i2 >= x) {
ans = cnt;
break;
}
x += tmp, y += tmp;
if (x == n) d[0] = 'U';
if (y == m) d[1] = 'L';
} else if (d == "UL") {
int tmp = min(x, y);
if (x - i2 == y - j2 && i2 <= x) {
ans = cnt;
break;
}
x -= tmp, y -= tmp;
if (x == 0) d[0] = 'D';
if (y == 0) d[1] = 'R';
} else if (d == "UR") {
int tmp = min(x, m - y);
if (x - i2 == j2 - y && i2 <= x) {
ans = cnt;
break;
}
x -= tmp, y += tmp;
if (x == 0) d[0] = 'D';
if (y == m) d[1] = 'L';
}
cnt++;
}
cout << ans << endl;
}
return 0;
}