#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
};
int n, k;
char s[4][110];
bool vis[4][110], flag = 0;
void dfs(int a, int b) {
  vis[a][b] = 1;
  if (b >= n) {
    flag = true;
    return;
  }
  if (flag) return;
  if (s[a][b + 1] == '.' && a + 1 <= 3 && s[a + 1][b + 1] == '.' &&
      s[a + 1][b + 2] == '.' && s[a + 1][b + 3] == '.') {
    if (!vis[a + 1][b + 3]) {
      vis[a + 1][b + 3] = 1;
      dfs(a + 1, b + 3);
    }
  }
  if (s[a][b + 1] == '.' && s[a][b + 1] == '.' && s[a][b + 2] == '.' &&
      s[a][b + 3] == '.') {
    if (!vis[a][b + 3]) {
      vis[a][b + 3] = 1;
      dfs(a, b + 3);
    }
  }
  if (s[a][b + 1] == '.' && a - 1 >= 1 && s[a - 1][b + 1] == '.' &&
      s[a - 1][b + 2] == '.' && s[a - 1][b + 3] == '.') {
    if (!vis[a - 1][b + 3]) {
      vis[a - 1][b + 3] = 1;
      dfs(a - 1, b + 3);
    }
  }
}
int main() {
  int T;
  cin >> T;
  while (T--) {
    memset(vis, 0, sizeof(vis));
    point st;
    flag = 0;
    cin >> n >> k;
    for (int i = 1; i <= 3; i++) {
      for (int j = 1; j <= n + 3; j++) {
        if (j <= n)
          cin >> s[i][j];
        else
          s[i][j] = '.';
        if (s[i][j] == 's') st = {i, j};
      }
    }
    dfs(st.x, st.y);
    if (flag)
      cout << "YES\n";
    else
      cout << "NO\n";
  }
}
