#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); i++) #define rep1(i, n) for (int i = 1; i <= (n); i++) #define rrep(i, n) for (int i = n - 1; i >= 0; i--) #define rrep1(i, n) for (int i = n; i >= 1; i--) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define eb emplace_back #define fi first #define se second #define sz(x) (int)(x).size() template using V = vector; template using VV = V>; typedef long long int ll; void speedUpIO() { cin.tie(nullptr); ios::sync_with_stdio(false); } template bool chmax(T &a, const T &b) { if (a < b) { a = b; return true; } return false; } template bool chmin(T &a, const T &b) { if (b < a) { a = b; return true; } return false; } /*--------------------------------------------------*/ typedef pair P; const int INF = 1e9; const ll LINF = 1e18; const int MX = 100010; int f(char c) { if (c == 'R') return 0; if (c == 'U') return 1; if (c == 'L') return 0; if (c == 'D') return 1; assert(false); } bool solve() { V x(2), y(2); V d(2); rep(i, 2) cin >> x[i] >> y[i] >> d[i]; if (f(d[0]) == f(d[1])) { if (f(d[0]) == 0) { if (y[0] != y[1]) return false; if (x[0] > x[1]) { swap(x[0], x[1]); swap(d[0], d[1]); } return d[0] == 'R' && d[1] == 'L'; } if (x[0] != x[1]) return false; if (y[0] > y[1]) { swap(y[0], y[1]); swap(d[0], d[1]); } return d[0] == 'U' && d[1] == 'D'; } if (f(d[0]) == 1) { swap(x[0], x[1]); swap(y[0], y[1]); swap(d[0], d[1]); } P is = {x[1], y[0]}; if (d[0] == 'R') { if (x[0] > is.fi) return false; } else { if (x[0] < is.fi) return false; } if (d[1] == 'U') { if (y[1] > is.se) return false; } else { if (y[1] < is.se) return false; } rep(i, 2) x[i] -= is.fi, y[i] -= is.se; return abs(x[0]) == abs(y[1]); } int main() { speedUpIO(); int t = 1; cin >> t; while (t--) { // solve(); // cout << solve() << "\n"; cout << (solve() ? "Yes" : "No") << "\n"; // cout << fixed << setprecision(15) << solve() << "\n"; } return 0; }