#include<iostream>
using namespace std;
#include<string>

class dice
{
public:
    int F[6];
    int q;
    dice();
    void roll_a();
    void roll_b();
    bool check(const dice& d);
};

dice::dice()
{
    for(int i = 0; i < 6; i++) cin >> F[i];
    q = F[0] * F[5] + F[1] * F[4] + F[2] * F[3]; // invariant.
}

void dice::roll_a()
{
    static int i;
    i = F[0]; F[0] = F[2]; F[2] = F[1]; F[1] = i;
    i = F[3]; F[3] = F[4]; F[4] = F[5]; F[5] = i;
}

void dice::roll_b()
{
    static int j;
    j = F[0]; F[0] = F[5]; F[5] = j;
    j = F[1]; F[1] = F[3]; F[3] = j;
    j = F[2]; F[2] = F[4]; F[4] = j;
}
 
bool dice::check(const dice& d)
{
    static int l, m;
    if((d.F[0] != F[0]) || (d.F[5] != F[5])) return false;

    for(l = 1; l <= 4; l++){
        for(m = 1; m <= 4; m++){
            if(d.F[m] != F[(l * m) % 5]) break;
        }
        if(m == 5) return true;
    }
    return false;
}

int main()
{
    dice d1 = dice();
    dice d2 = dice();
    bool eq;

	if(d1.q != d2.q){
		eq = false;
	}else{
        for(int i = 0; i < 2; i++){
            eq = d1.check(d2);
            if(!eq){ d1.roll_a(); eq = d1.check(d2); }
            if(!eq){ d1.roll_a(); eq = d1.check(d2); }
            if(eq || (i == 1)) break;
            d1.roll_b();
        }
    }

    if(eq){ cout << "Yes" << endl; }else{ cout << "No" << endl; }

    return 0;
}