#include <bits/stdc++.h>
using namespace std;
struct qwe {
  long long x, y;
} tmp;
long long op[3][110], t, n, d, i, j, flag;
char q[3][110];
int main() {
  scanf("%lld", &t);
  while (t--) {
    scanf("%lld%lld", &n, &d);
    for (i = 0; i < 3; i++) scanf("%s", q[i]);
    memset(op, 0, sizeof(op));
    queue<qwe> qu;
    for (i = 0; i < 3; i++) {
      q[i][n + 1] = q[i][n] = q[i][n + 2] = q[i][n + 3] = '.';
      if (q[i][0] == 's') {
        tmp.x = i;
        tmp.y = 0;
        qu.push(tmp);
      }
    }
    flag = 0;
    while (!qu.empty()) {
      tmp = qu.front();
      qwe d = tmp;
      qu.pop();
      if (op[tmp.x][tmp.y] == 1) continue;
      op[tmp.x][tmp.y] = 1;
      if (tmp.y >= n - 1) {
        flag = 1;
        break;
      }
      if (q[tmp.x][tmp.y + 1] != '.') continue;
      tmp.y = tmp.y + 1;
      if (q[tmp.x][tmp.y + 1] == '.' && q[tmp.x][tmp.y + 2] == '.')
        d = tmp, d.y += 2, qu.push(d);
      if (tmp.x < 2)
        if (q[tmp.x + 1][tmp.y] == '.' && q[tmp.x + 1][tmp.y + 1] == '.' &&
            q[tmp.x + 1][tmp.y + 2] == '.')
          d.x = tmp.x + 1, d.y = tmp.y + 2, qu.push(d);
      if (tmp.x > 0)
        if (q[tmp.x - 1][tmp.y] == '.' && q[tmp.x - 1][tmp.y + 1] == '.' &&
            q[tmp.x - 1][tmp.y + 2] == '.')
          d.x = tmp.x - 1, d.y = tmp.y + 2, qu.push(d);
    }
    if (flag == 1)
      printf("YES\n");
    else {
      printf("NO\n");
    }
  }
  return 0;
}
