#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
int used[2][200200];
int main() {
  int i, j, n, k, x, cw, tim;
  char w[2][200200];
  queue<int> qn, qw, tm;
  bool succ = false;
  scanf("%d%d%s%s", &n, &k, w[0], w[1]);
  used[0][0] = 1;
  qn.push(0);
  qw.push(0);
  tm.push(0);
  while (!qn.empty()) {
    x = qn.front();
    qn.pop();
    cw = qw.front();
    qw.pop();
    tim = tm.front();
    tm.pop();
    if (tim == n) break;
    if (x + k >= n) {
      succ = true;
      break;
    }
    if (w[cw][x + 1] == '-' && !used[cw][x + 1]) {
      qn.push(x + 1);
      qw.push(cw);
      tm.push(tim + 1);
      used[cw][x + 1] = true;
    }
    if (w[1 - cw][x + k] == '-' && !used[1 - cw][x + k]) {
      qn.push(x + k);
      qw.push(1 - cw);
      tm.push(tim + 1);
      used[1 - cw][x + k] = true;
    }
    if (x - 1 >= tim + 1 && w[cw][x - 1] == '-' && !used[cw][x - 1]) {
      qn.push(x - 1);
      qw.push(cw);
      tm.push(tim + 1);
      used[cw][x - 1] = true;
    }
  }
  if (succ)
    printf("YES");
  else
    printf("NO");
  return 0;
}
