func_code_string: #include <bits/stdc++.h>   using namespace std;   queue<int> qx, qy;   int d[2][110000];   char s[2][110000];   int n, k;   int main() {     gets(s[0]);     sscanf(s[0],  %d %d , &n, &k);     gets(s[0]);     gets(s[1]);     memset(d, 63, sizeof(d));     d[0][0] = 0;     qx.push(0);     qy.push(0);     for (; qx.size();) {       int x = qx.front();       int y = qy.front();       qx.pop();       qy.pop();       if (d[y][x] > x) continue;       if (x + k >= n) {         printf( YES n );         return 0;       }       if (s[y][x + 1] ==  - ) {         if (d[y][x + 1] > d[y][x] + 1) {           d[y][x + 1] = d[y][x] + 1;           qx.push(x + 1);           qy.push(y);         }       }       if (x > 0 && s[y][x - 1] ==  - ) {         if (d[y][x - 1] > d[y][x] + 1) {           d[y][x - 1] = d[y][x] + 1;           qx.push(x - 1);           qy.push(y);         }       }       if (s[y ^ 1][x + k] ==  - ) {         if (d[y ^ 1][x + k] > d[y][x] + 1) {           d[y ^ 1][x + k] = d[y][x] + 1;           qx.push(x + k);           qy.push(y ^ 1);         }       }     }     printf( NO n );     return 0;   }   