#include <bits/stdc++.h>
using namespace std;
int i, j, n, m;
bool inside(int i, int n) { return (i >= 0 && i < n && j >= 0 && j < n); }
const int N = 3e5 + 5;
bool vis[2][N];
bool f = 0;
string s[2];
void dfs(int i, int j, int k) {
  if (k > j || s[i][j] == 'X' || f || vis[i][j]) return;
  vis[i][j] = 1;
  if (j + m >= n) {
    f = 1;
    return;
  }
  dfs((i + 1) % 2, j + m, k + 1);
  dfs(i, j + 1, k + 1);
  dfs(i, j - 1, k + 1);
}
int main() {
  cin >> n >> m;
  cin >> s[0] >> s[1];
  dfs(0, 0, 0);
  cout << (f ? "YES" : "NO");
  return 0;
}
