#include <bits/stdc++.h>
using namespace std;
int n, k, vis[150][150];
char c[4][105];
bool bfs(int sx, int sy) {
  queue<pair<int, int>> q;
  q.push({sx, sy});
  vis[sx][sy] = 1;
  while (!q.empty()) {
    int x = q.front().first, y = q.front().second;
    q.pop();
    if (y >= n) return true;
    if (c[x][y + 1] == '.' && c[x][y + 2] == '.' && c[x][y + 3] == '.' &&
        !vis[x][y + 3])
      q.push({x, y + 3}), vis[x][y + 3] = 1;
    if (c[x][y + 1] == '.' && x + 1 <= 3 && c[x + 1][y + 1] == '.' &&
        c[x + 1][y + 2] == '.' && c[x + 1][y + 3] == '.' && !vis[x + 1][y + 3])
      q.push({x + 1, y + 3}), vis[x + 1][y + 3] = 1;
    if (c[x][y + 1] == '.' && x - 1 >= 1 && c[x - 1][y + 1] == '.' &&
        c[x - 1][y + 2] == '.' && c[x - 1][y + 3] == '.' && !vis[x - 1][y + 3])
      q.push({x - 1, y + 3}), vis[x - 1][y + 3] = 1;
  }
  return false;
}
int main() {
  int q;
  cin >> q;
  while (q--) {
    int x, y;
    cin >> n >> k;
    for (int i = 1; i <= 3; i++) {
      for (int j = 1; j <= n; j++) {
        cin >> c[i][j];
        if (c[i][j] == 's') x = i, y = j;
      }
    }
    memset(vis, 0, sizeof(vis));
    c[1][n + 1] = c[1][n + 2] = c[1][n + 3] = c[1][n + 4] = '.';
    c[2][n + 1] = c[2][n + 2] = c[2][n + 3] = c[2][n + 4] = '.';
    c[3][n + 1] = c[3][n + 2] = c[3][n + 3] = c[3][n + 4] = '.';
    if (bfs(x, y))
      cout << "YES" << endl;
    else
      cout << "NO" << endl;
  }
}
