#include <bits/stdc++.h>   using namespace std;   const int INFint = 2147483547;   const long long INF = 9223372036854775807ll;   const long long MOD = 1000000007ll;   const long double EPS = 1e-13;   string min_cyclic_shift(string s) {     s += s;     int n = (int)s.length();     int i = 0, ans = 0;     while (i < n / 2) {       ans = i;       int j = i + 1, k = i;       while (j < n && s[k] <= s[j]) {         if (s[k] < s[j])           k = i;         else           ++k;         ++j;       }       while (i <= k) i += j - k;     }     return s.substr(ans, n / 2);   }   int main() {     ios_base::sync_with_stdio(0);     vector<string> a(2), b(2);     for (int i = 0; i < 2; i++) cin >> a[i];     for (int i = 0; i < 2; i++) cin >> b[i];     string s;     for (int i = 0; i < 2; i++) {       if (a[0][i] ==  X ) continue;       s += a[0][i];     }     for (int i = 1; i > -1; i--) {       if (a[1][i] ==  X ) continue;       s += a[1][i];     }     string s1;     for (int i = 0; i < 2; i++) {       if (b[0][i] ==  X ) continue;       s1 += b[0][i];     }     for (int i = 1; i > -1; i--) {       if (b[1][i] ==  X ) continue;       s1 += b[1][i];     }     if (min_cyclic_shift(s) == min_cyclic_shift(s1)) {       cout <<  YES ;     } else       cout <<  NO ;     fprintf(stderr,   nTIME = %lf n , 1.0 * clock() / CLOCKS_PER_SEC);     ;     return 0;   }   