#include <bits/stdc++.h>
using namespace std;
bool flag;
int n, k, vis[10][105];
char s[10][105];
int judge(int x, int y) {
  if ((s[x][y] == '.' || s[x][y] == 's') && (x >= 1 && x <= 3))
    return 1;
  else
    return 0;
}
void dfs(int x, int y) {
  vis[x][y] = 1;
  if (y >= n - 1) {
    flag = 1;
    return;
  }
  if (!judge(x, y + 1)) return;
  if (flag == 1) return;
  if (judge(x, y + 1) && judge(x, y + 2) && judge(x, y + 3) && !vis[x][y + 3])
    dfs(x, y + 3);
  if (judge(x - 1, y + 1) && judge(x - 1, y + 2) && judge(x - 1, y + 3) &&
      !vis[x - 1][y + 3])
    dfs(x - 1, y + 3);
  if (judge(x + 1, y + 1) && judge(x + 1, y + 2) && judge(x + 1, y + 3) &&
      !vis[x + 1][y + 3])
    dfs(x + 1, y + 3);
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    cin >> n >> k;
    flag = 0;
    for (int i = 1; i <= 3; i++) {
      for (int j = 0; j < n; j++) cin >> s[i][j];
    }
    int x, y;
    for (int i = 1; i <= 3; i++) {
      for (int j = 0; j < n; j++) {
        if (s[i][j] == 's') x = i, y = j;
      }
    }
    for (int i = 1; i <= 3; i++)
      for (int j = n; j <= 104; j++) s[i][j] = '.';
    memset(vis, 0, sizeof(vis));
    dfs(x, y);
    if (flag == 1)
      cout << "YES" << endl;
    else
      cout << "NO" << endl;
  }
  return 0;
}
