#include <bits/stdc++.h>
using namespace std;
long long INV2 = 500000004;
long long INV6 = 166666668;
long long power(long long a, long long b, long long c) {
  long long x = 1, y = a;
  while (b > 0) {
    if (b & 1) x = (x * y) % 1000000007;
    y = (y * y) % 1000000007;
    b /= 2;
  }
  return x % c;
}
int main() {
  string be[2], el[2];
  cin >> be[0] >> be[1] >> el[0] >> el[1];
  vector<char> vb, ve;
  if (be[0][0] != 'X') vb.push_back(be[0][0]);
  if (be[0][1] != 'X') vb.push_back(be[0][1]);
  if (be[1][1] != 'X') vb.push_back(be[1][1]);
  if (be[1][0] != 'X') vb.push_back(be[1][0]);
  if (el[0][0] != 'X') ve.push_back(el[0][0]);
  if (el[0][1] != 'X') ve.push_back(el[0][1]);
  if (el[1][1] != 'X') ve.push_back(el[1][1]);
  if (el[1][0] != 'X') ve.push_back(el[1][0]);
  int pos = 0;
  for (int i = 0; i <= 2; ++i) {
    if (vb[i] == 'A') pos = i;
  }
  int pa = 0;
  for (int i = 0; i <= 2; ++i) {
    if (ve[i] == 'A') pa = i;
  }
  int cnt = 3, fl = 1, i = 0;
  while (cnt--) {
    if (ve[(pa + i) % 3] != vb[(pos + i) % 3]) {
      fl = 0;
      break;
    }
    ++i;
  }
  if (fl)
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
