func_code_string: #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;   }   