#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
int n, k;
char g[3][100005];
bool f;
bool isval(int i, int j) {
  if (j >= n) return true;
  if (j < 0) return false;
  if (g[i][j] == 'X') return false;
  return true;
}
void dfs(int i, int j, int t) {
  if (j >= n)
    f = true;
  else {
    g[i][j] = 'X';
    if (j + k > t && isval((i + 1) % 2, j + k))
      dfs((i + 1) % 2, (j + k), t + 1);
    if (j + 1 > t && isval(i, j + 1)) dfs(i, j + 1, t + 1);
    if (j - 1 > t && isval(i, j - 1)) dfs(i, (j - 1), t + 1);
  }
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < 2; i++) cin >> g[i];
  f = 0;
  dfs(0, 0, 0);
  if (!f)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
