#include <bits/stdc++.h>
using namespace std;
char s[2][100005];
int vis[2][100005];
int n, k;
void dfs(int x, int y, int d) {
  vis[x][y] = true;
  if (y + k >= n || y + 1 >= n) {
    puts("YES");
    exit(0);
  }
  if (d >= y) return;
  if (s[!x][y + k] == '-' && !vis[!x][y + k]) dfs(!x, y + k, d + 1);
  if (s[x][y - 1] == '-' && !vis[x][y - 1] && y - 1 >= 0) dfs(x, y - 1, d + 1);
  if (s[x][y + 1] == '-' && !vis[x][y + 1]) dfs(x, y + 1, d + 1);
}
int main() {
  int i, j;
  cin >> n >> k;
  cin >> s[0] >> s[1];
  dfs(0, 0, -1);
  puts("NO");
  return 0;
}
