func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 200008;   int n, k, l, r;   char g[2][maxn];   bool f[2][maxn];   struct arr {     int t, s, x;   } h[maxn];   bool Add(int t, int s, int x) {     if (t >= x) return 0;     if (x > n) return 1;     if (f[s][x]) return 0;     if (g[s][x] ==  X ) return 0;     f[s][x] = 1;     ++r;     h[r].t = t;     h[r].s = s;     h[r].x = x;     return 0;   }   bool Work() {     h[1].t = 0;     h[1].s = 0;     h[1].x = 1;     l = 1, r = 1;     f[0][1] = 1;     while (l <= r) {       int t = h[l].t, s = h[l].s, x = h[l].x;       ++l;       if (Add(t + 1, s, x + 1)) return 1;       if (Add(t + 1, s, x - 1)) return 1;       if (Add(t + 1, s ^ 1, x + k)) return 1;     }     return 0;   }   int main() {     scanf( %d%d%*c , &n, &k);     scanf( %s , &g[0][1]);     scanf( %s , &g[1][1]);     if (Work())       printf( YES n );     else       printf( NO n );     return 0;   }   