#include <bits/stdc++.h>
using namespace std;

#define rep( i, n ) for( int i = 0; i < ( n ); i++ )
#define PI 3.14159265
typedef long long ll;

struct Dice {
    int num[ 6 ];

    //転がす処理
    void roll( char c ) {
        int temp; //置き換え用
        if( c == 'E' ) {
            temp     = num[ 0 ];
            num[ 0 ] = num[ 3 ];
            num[ 3 ] = num[ 5 ];
            num[ 5 ] = num[ 2 ];
            num[ 2 ] = temp;
        } else if( c == 'W' ) {
            temp     = num[ 0 ];
            num[ 0 ] = num[ 2 ];
            num[ 2 ] = num[ 5 ];
            num[ 5 ] = num[ 3 ];
            num[ 3 ] = temp;
        } else if( c == 'N' ) {
            temp     = num[ 0 ];
            num[ 0 ] = num[ 1 ];
            num[ 1 ] = num[ 5 ];
            num[ 5 ] = num[ 4 ];
            num[ 4 ] = temp;
        } else if( c == 'S' ) {
            temp     = num[ 0 ];
            num[ 0 ] = num[ 4 ];
            num[ 4 ] = num[ 5 ];
            num[ 5 ] = num[ 1 ];
            num[ 1 ] = temp;
        }
    }

    int search( int tp, int fw ) {
        if( tp == num[ 0 ] ) {
            if( fw == num[ 1 ] )
                return num[ 2 ];
            else if( fw == num[ 2 ] )
                return num[ 4 ];
            else if( fw == num[ 4 ] )
                return num[ 3 ];
            else
                return num[ 1 ];
        } else if( tp == num[ 1 ] ) {
            if( fw == num[ 5 ] )
                return num[ 2 ];
            else if( fw == num[ 2 ] )
                return num[ 0 ];
            else if( fw == num[ 0 ] )
                return num[ 3 ];
            else
                return num[ 5 ];
        } else if( tp == num[ 2 ] ) {
            if( fw == num[ 0 ] )
                return num[ 1 ];
            else if( fw == num[ 1 ] )
                return num[ 5 ];
            else if( fw == num[ 5 ] )
                return num[ 4 ];
            else
                return num[ 0 ];
        } else if( tp == num[ 3 ] ) {
            if( fw == num[ 5 ] )
                return num[ 1 ];
            else if( fw == num[ 1 ] )
                return num[ 0 ];
            else if( fw == num[ 0 ] )
                return num[ 4 ];
            else
                return num[ 5 ];
        } else if( tp == num[ 4 ] ) {
            if( fw == num[ 0 ] )
                return num[ 2 ];
            else if( fw == num[ 2 ] )
                return num[ 5 ];
            else if( fw == num[ 5 ] )
                return num[ 3 ];
            else
                return num[ 0 ];
        } else if( tp == num[ 5 ] ) {
            if( fw == num[ 1 ] )
                return num[ 3 ];
            else if( fw == num[ 3 ] )
                return num[ 4 ];
            else if( fw == num[ 4 ] )
                return num[ 2 ];
            else
                return num[ 1 ];
        }
    }
    int top() { return num[ 0 ]; }
};

//*******************
//エントリーポイント
//*******************
int main( void ) {

    Dice d1, d2;
    rep( i, 6 ) cin >> d1.num[ i ];
    rep( i, 6 ) cin >> d2.num[ i ];
    bool ans = true;

    // d1の上基準
    rep( j, 6 ) {
        if( d1.num[ 0 ] != d2.num[ j ] ) continue;
        if( d1.num[ 0 ] == d2.num[ j ] ) {
            for( int k = 1; k < 6; k++ ) {
                if( d1.num[ 0 ] + d1.num[ k ] == 7 ) continue;
                rep( l, 6 ) {
                    if( j == l || j + l == 7 ) continue;
                    if( d1.num[ k ] == d2.num[ l ] ) {
                        int d1r = d1.search( d1.num[ 0 ], d1.num[ k ] );
                        int d2r = d2.search( d2.num[ j ], d2.num[ l ] );
                        if( d1r != d2r ) {
                            ans = false;
                            break;
                        }
                    }
                }
            }
        }
    }

    puts( ans ? "Yes" : "No" );
    return 0;
}



Measured memory_bytes: 3092