#include <bits/stdc++.h>
using namespace std;
const int inf = 1000000001;
const int MOD = 1000000007;
vector<string> get() {
  string s1, s2;
  cin >> s1 >> s2;
  vector<string> ans;
  ans.push_back(s1);
  ans.push_back(s2);
  return ans;
}
set<vector<string> > all;
void go(vector<string> a, int moves) {
  all.insert(a);
  if (moves > 8) return;
  for (int i = (0); i <= ((int)((a).size()) - 1); ++i)
    for (int j = (0); j <= ((int)((a[0]).size()) - 1); ++j)
      if (a[i][j] == 'X') {
        for (int dx = (-1); dx <= (1); ++dx)
          for (int dy = (-1); dy <= (1); ++dy)
            if (abs(dx) + abs(dy) == 1) {
              int fx = i + dx;
              int fy = j + dy;
              if (fx >= 0 && fx <= 1 && fy >= 0 && fy <= 1) {
                swap(a[i][j], a[fx][fy]);
                go(a, moves + 1);
                swap(a[i][j], a[fx][fy]);
              }
            }
      }
}
int main() {
  vector<string> a = get();
  go(a, 0);
  vector<string> b = get();
  if (all.count(b))
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
