#include<iostream>
#include<string>
#include<sstream>

using namespace std;


template < typename T > std::string to_string( const T& n )
    {
        std::ostringstream stm ;
        stm << n ;
        return stm.str() ;
    }


class Dice {
    public:
    int a,b,c,d,e,f;
    int ans = 0;
    string a1,a2,a3,a4,a5,a6;
    int a11,a22,a33,a44,a55,a66;
    
    string answer;
    
    int dice[6];
    
    
    
    Dice(int aa,int bb,int cc,int dd,int ee,int ff) {
        
        dice[0] = aa;
        dice[1] = bb;
        dice[2] = cc;
        dice[3] = dd;
        dice[4] = ee;
        dice[5] = ff;
        
    }
    
    void move_n() {
        
        a = dice[1];
        b = dice[5];
        e = dice[0];
        f = dice[4];
        
        dice[0] = a;
        dice[1] = b;
        dice[4] = e;
        dice[5] = f;
        
    }
    
    void move_e() {
        
        a = dice[3];
        c = dice[0];
        d = dice[5];
        f = dice[2];
        
        dice[0] = a;
        dice[2] = c;
        dice[3] = d;
        dice[5] = f;
        
    }
    
    void move_w() {
        
        a = dice[2];
        c = dice[5];
        d = dice[0];
        f = dice[3];
        
        dice[0] = a;
        dice[2] = c;
        dice[3] = d;
        dice[5] = f;
        
    }
    
    void move_s() {
        
        a = dice[4];
        b = dice[0];
        e = dice[5];
        f = dice[1];
        
        dice[0] = a;
        dice[1] = b;
        dice[4] = e;
        dice[5] = f;
        
    }
    
    int top() {
        
        int top = dice[0];
        
        return top;
        
    }
    
    int right() {
        
        int right = dice[2];
        
        return right;
        
    }
    
    int left() {
        
        int left = dice[3];
        
        return left;
        
    }
    
    int under() {
        
        int under = dice[1];
        
        return under;
        
    }
    
    int back() {
        
        int back = dice[4];
        
        return back;
        
    }
    
    int bottom() {
        
        int bottom = dice[5];
        
        return bottom;
        
    }
    
    //時計回り
    void turn() {
        
        b = dice[2];
        c = dice[4];
        d = dice[1];
        e = dice[3];
        
        dice[1] = b;
        dice[2] = c;
        dice[3] = d;
        dice[4] = e;
        
        
    }
    
    string dicenum() {
        
        a11 = dice[0];
        
        a1 = to_string(a11);
        
        a22 = dice[1];
        
        a2 = to_string(a22);
        
        a33 = dice[2];
        
        a3 = to_string(a33);
        
        a44 = dice[3];
        
        a4 = to_string(a44);
        
        a55 = dice[4];
        
        a5 = to_string(a55);
        
        a66 = dice[5];
        
        a6 = to_string(a66);
        
        
        
        answer = a1 + a2 + a3 + a4 + a5 + a6;
        
        return answer;
        
    }
    
};


int main() {
    
    int a,b,c,d,e,f;
    
    int ans = 0;
    
    cin >> a >> b >> c >> d >> e >> f;
    
    Dice d1(a,b,c,d,e,f);
    
    
    cin >> a >> b >> c >> d >> e >> f;
    
    Dice d2(a,b,c,d,e,f);
    
    
    for (int i = 0; i < 4; i ++) {
        
        
        if (d1.dicenum() == d2.dicenum()) break;
        
        
        if (d1.top() == d2.under()) {
        
            d2.move_n();
        
        } else if (d1.top() == d2.right()) {
            
            d2.move_w();
            
        } else if (d1.top() == d2.left()) {
            
            d2.move_e();
            
        } else if (d1.top() == d2.back()) {
            
            d2.move_s();
            
        } else if (d1.top() == d2.top()) {
            
            
            
        } else {
            
            d2.move_n();
            d2.move_n();
            
        }
        
        
        
        
        
        if (d1.under() == d2.right()) {
            
            d2.turn();
            
        } else if (d1.under() == d2.left()) {
            
            d2.turn();
            d2.turn();
            d2.turn();
            
        } else if (d1.under() == d2.back()) {
            
            d2.turn();
            d2.turn();
            
        } else if (d1.under() == d2.under()) {
            
            
            
        } else {
            
            ans = 1;
            
        }
        
    }
    
    
    
    
    
    /*if ((d1.top() == d2.top()) && (d1.under() == d2.under()) && 
        (d1.right() == d2.right()) && (d1.left() == d2.left()) && 
        (d1.back() == d2.back()) && (d1.bottom() == d2.bottom())) {
        
        if (ans != 2) {
            
            ans = 2;
            
        } else {
            
            ans = 1;
            
        }
        
    }*/
    
    if (d1.dicenum() == d2.dicenum()) {
        
        if (ans != 2) {
            
            ans = 2;
            
        } else {
            
            ans = 1;
            
        }
        
    }
    
    
    
    
    
    
    
    if (ans == 2) {
        
        cout << "Yes" << endl;
        
    } else {
        
        cout << "No" << endl;
    }
    
    //cout << d1.dicenum() << d2.dicenum() << endl;
    
    
    return 0;
    
};




Measured memory_bytes: 3236