#include <bits/stdc++.h>
char a[2][100005];
bool use[2][100005];
int n, k, flag = 0;
void dfs(int x, int y, int s) {
  if (flag || a[x][y] == 'X' || y <= s || use[x][y]) return;
  if (y + k > n) {
    flag = 1;
    return;
  }
  use[x][y] = 1;
  dfs((x + 1) % 2, y + k, s + 1);
  dfs(x, y + 1, s + 1);
  dfs(x, y - 1, s + 1);
}
int main() {
  scanf("%d%d", &n, &k);
  scanf("%s%s", a[0], a[1]);
  dfs(0, 0, -1);
  if (flag)
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
