#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
template <class T, class U>
inline void Max(T &a, U b) {
  if (a < b) a = b;
}
template <class T, class U>
inline void Min(T &a, U b) {
  if (a > b) a = b;
}
char s[3][105];
int ok[3][105], dp[105][3];
pair<int, int> b[3][105];
int main() {
  int T, i, j, k, m, n;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%d", &n, &m);
    for (i = 0; i < 3; i++) scanf("%s", s[i]);
    int st, c[3] = {0};
    for (i = 0; i < 3; i++)
      if (s[i][0] == 's') {
        st = i;
        break;
      }
    for (i = 0; i < 3; i++) {
      for (j = 0; j < n; j++)
        if (s[i][j] >= 'A' && s[i][j] <= 'Z') {
          k = j;
          while (k < n && s[i][k] == s[i][j]) k++;
          b[i][c[i]] = make_pair(j, k - 1);
          c[i]++;
          j = k - 1;
        }
    }
    memset(dp, 0, sizeof(dp));
    memset(ok, 0, sizeof(ok));
    dp[0][st] = 1;
    for (i = 0; i < n - 1; i++) {
      for (j = 0; j < 3; j++) {
        for (k = 0; k < c[j]; k++) {
          if (b[j][k].first <= i + 1 && b[j][k].second >= i + 1) {
            ok[j][i + 1] = 1;
          }
          if (b[j][k].first <= i && b[j][k].second >= i) {
            dp[i][j] = 0;
          }
        }
      }
      if (dp[i][0]) {
        if (!ok[0][i + 1]) {
          dp[i + 1][0] = 1;
          if (!ok[1][i + 1]) dp[i + 1][1] = 1;
        }
      }
      if (dp[i][1]) {
        if (!ok[1][i + 1]) {
          dp[i + 1][1] = 1;
          if (!ok[0][i + 1]) dp[i + 1][0] = 1;
          if (!ok[2][i + 1]) dp[i + 1][2] = 1;
        }
      }
      if (dp[i][2]) {
        if (!ok[2][i + 1]) {
          dp[i + 1][2] = 1;
          if (!ok[1][i + 1]) dp[i + 1][1] = 1;
        }
      }
      for (j = 0; j < 3; j++) {
        for (k = 0; k < c[j]; k++) b[j][k].first -= 2, b[j][k].second -= 2;
      }
    }
    if (dp[n - 1][0] || dp[n - 1][1] || dp[n - 1][2])
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
