#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, aux;
  cin >> n >> k;
  char w[2 * n];
  for (int i = 1; i <= 2 * n; i++) {
    cin >> w[i];
  }
  int d[2 * n + 1];
  d[1] = 0;
  for (int i = 2; i < 2 * n + 1; i++) {
    d[i] = n;
  }
  queue<int> cola;
  cola.push(1);
  while (cola.empty() == 0) {
    aux = cola.front();
    if (w[aux] == '-') {
      if (aux > n - k && aux <= n) {
        cout << "YES";
        return 0;
      } else if (aux > 2 * n - k && aux <= 2 * n) {
        cout << "YES";
        return 0;
      }
      if (aux <= n) {
        if (d[n + aux + k] > d[aux] + 1) {
          d[n + aux + k] = d[aux] + 1;
          if (d[n + aux + k] < aux + k) {
            cola.push(n + aux + k);
          }
        }
        if (d[aux + 1] > d[aux] + 1) {
          d[aux + 1] = d[aux] + 1;
          if (d[aux + 1] < aux + 1) {
            cola.push(aux + 1);
          }
        }
        if (aux > 1 && d[aux - 1] > d[aux] + 1) {
          d[aux - 1] = d[aux] + 1;
          if (d[aux - 1] < aux - 1) {
            cola.push(aux - 1);
          }
        }
      }
      if (aux > n) {
        if (d[aux - n + k] > d[aux] + 1) {
          d[aux - n + k] = d[aux] + 1;
          if (d[aux - n + k] < aux - n + k) {
            cola.push(aux - n + k);
          }
        }
        if (d[aux + 1] > d[aux] + 1) {
          d[aux + 1] = d[aux] + 1;
          if (d[aux + 1] < aux - n + 1) {
            cola.push(aux + 1);
          }
        }
        if (aux > 1 && d[aux - 1] > d[aux] + 1) {
          d[aux - 1] = d[aux] + 1;
          if (d[aux - 1] < aux - n - 1) {
            cola.push(aux - 1);
          }
        }
      }
    }
    cola.pop();
  }
  cout << "NO";
}
