func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:102400000,102400000 )   using namespace std;   template <class T, class U>   inline void Max(T &a, U b) {     if (a < b) a = b;   }   template <class T, class U>   inline void Min(T &a, U b) {     if (a > b) a = b;   }   char s[3][105];   int ok[3][105], dp[105][3];   pair<int, int> b[3][105];   int main() {     int T, i, j, k, m, n;     scanf( %d , &T);     while (T--) {       scanf( %d%d , &n, &m);       for (i = 0; i < 3; i++) scanf( %s , s[i]);       int st, c[3] = {0};       for (i = 0; i < 3; i++)         if (s[i][0] ==  s ) {           st = i;           break;         }       for (i = 0; i < 3; i++) {         for (j = 0; j < n; j++)           if (s[i][j] >=  A  && s[i][j] <=  Z ) {             k = j;             while (k < n && s[i][k] == s[i][j]) k++;             b[i][c[i]] = make_pair(j, k - 1);             c[i]++;             j = k - 1;           }       }       memset(dp, 0, sizeof(dp));       memset(ok, 0, sizeof(ok));       dp[0][st] = 1;       for (i = 0; i < n - 1; i++) {         for (j = 0; j < 3; j++) {           for (k = 0; k < c[j]; k++) {             if (b[j][k].first <= i + 1 && b[j][k].second >= i + 1) {               ok[j][i + 1] = 1;             }             if (b[j][k].first <= i && b[j][k].second >= i) {               dp[i][j] = 0;             }           }         }         if (dp[i][0]) {           if (!ok[0][i + 1]) {             dp[i + 1][0] = 1;             if (!ok[1][i + 1]) dp[i + 1][1] = 1;           }         }         if (dp[i][1]) {           if (!ok[1][i + 1]) {             dp[i + 1][1] = 1;             if (!ok[0][i + 1]) dp[i + 1][0] = 1;             if (!ok[2][i + 1]) dp[i + 1][2] = 1;           }         }         if (dp[i][2]) {           if (!ok[2][i + 1]) {             dp[i + 1][2] = 1;             if (!ok[1][i + 1]) dp[i + 1][1] = 1;           }         }         for (j = 0; j < 3; j++) {           for (k = 0; k < c[j]; k++) b[j][k].first -= 2, b[j][k].second -= 2;         }       }       if (dp[n - 1][0] || dp[n - 1][1] || dp[n - 1][2])         puts( YES );       else         puts( NO );     }     return 0;   }   