#include<bits/stdc++.h>

using namespace std;

typedef struct dice
{
    int a1,a2,a3,a4,a5,a6;
    int up=1;
    dice(int q,int w,int e,int r,int t,int y):a1(q),a2(w),a3(e),a4(r),a5(t),a6(y) {}
    dice() {}
} D;

bool same(int *a,int *b)
{
    int a2[4];
    a2[0]=a[2];
    a2[1]=a[3];
    a2[2]=a[5];
    a2[3]=a[4];

    int b2[4];
    int ok=0;

    if(b[1]==a[1])
    {
        b2[0]=b[2];
        b2[1]=b[3];
        b2[2]=b[5];
        b2[3]=b[4];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[6]==a[6])
            ok=1;
    }
    else if(b[2]==a[1])
    {
        b2[0]=b[6];
        b2[1]=b[3];
        b2[2]=b[1];
        b2[3]=b[4];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[5]==a[6])
            ok=1;
    }
    else if(b[3]==a[1])
    {
        b2[0]=b[2];
        b2[1]=b[6];
        b2[2]=b[5];
        b2[3]=b[1];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[4]==a[6])
            ok=1;
    }
    else if(b[4]==a[1])
    {
        b2[0]=b[2];
        b2[1]=b[1];
        b2[2]=b[5];
        b2[3]=b[6];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[3]==a[6])
            ok=1;
    }
    else if(b[5]==a[1])
    {
        b2[0]=b[1];
        b2[1]=b[3];
        b2[2]=b[6];
        b2[3]=b[4];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[2]==a[6])
            ok=1;
    }
    else if(b[6]==a[1])
    {
        b2[0]=b[2];
        b2[1]=b[4];
        b2[2]=b[5];
        b2[3]=b[3];
        int k=0;
        for(int i=0; i<4; i++)
        {
            int j;
            for(j=0; j<4; j++)
            {
                if(b2[j]!=a2[(i+j)%4])
                    break;
            }
            if(j==4)
            {
                k=1;
                break;
            }
        }
        if(k&&b[1]==a[6])
            ok=1;
    }
    if(ok)
        return true;
    return false;
}

int main()
{
    int c[1000];

//    freopen("in.txt","r",stdin);
    memset(c,0,sizeof(c));
    int a[10];
    int b[10];
    for(int i=1; i<=6; i++)
       {
            cin>>a[i];
            c[a[i]]++;
       }
    for(int i=1; i<=6; i++)
        {
            cin>>b[i];
            c[b[i]]++;
        }

        int maxn=0;
        for(int i=0;i<1000;i++)
        {
            maxn=max(maxn,c[i]);
        }

    if(maxn>=6||same(a,b))
        cout<<"Yes"<<endl;
    else
        cout<<"No"<<endl;

}




Measured memory_bytes: 3120