#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

void print_dice(int dice[7]){
    for(int i=1; i<7; i++){
        printf("%d ", dice[i]);
    }
    printf("\n");
}

void move_E(int dice[7]){
    int new_dice[7];
    new_dice[2]=dice[2];
    new_dice[5]=dice[5];
    new_dice[3]=dice[1];
    new_dice[1]=dice[4];
    new_dice[4]=dice[6];
    new_dice[6]=dice[3];

    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void move_W(int dice[7]){
    int new_dice[7];
    new_dice[2]=dice[2];
    new_dice[5]=dice[5];
    new_dice[1]=dice[3];
    new_dice[4]=dice[1];
    new_dice[6]=dice[4];
    new_dice[3]=dice[6];

    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void move_N(int dice[7]){
    int new_dice[7];
    new_dice[3]=dice[3];
    new_dice[4]=dice[4];
    new_dice[1]=dice[2];
    new_dice[2]=dice[6];
    new_dice[6]=dice[5];
    new_dice[5]=dice[1];

    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void move_S(int dice[7]){
    int new_dice[7];
    new_dice[3]=dice[3];
    new_dice[4]=dice[4];
    new_dice[2]=dice[1];
    new_dice[6]=dice[2];
    new_dice[5]=dice[6];
    new_dice[1]=dice[5];

    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void rot(int dice[7]){
    int new_dice[7];
    new_dice[1]=dice[1];
    new_dice[6]=dice[6];
    new_dice[2]=dice[3];
    new_dice[3]=dice[5];
    new_dice[5]=dice[4];
    new_dice[4]=dice[2];

    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void rots(int dice[7], int count){
    int new_dice[7];
    for(int i=0; i<7; i++){
        new_dice[i]=dice[i];
    } 
    for(int i=0; i<count; i++){
        rot(new_dice);
    }
    for(int i=0; i<7; i++){
        dice[i]=new_dice[i];
    } 
}

void ad_1(int dice[7], int new_dice[7]){
    if(dice[1] == new_dice[1]){
        ;
    }
    else if(dice[2] == new_dice[1]){
        move_N(dice);
    }
    else if(dice[3] == new_dice[1]){
        move_W(dice);
    }
    else if(dice[4] == new_dice[1]){
        move_E(dice);
    }
    else if(dice[5] == new_dice[1]){
        move_S(dice);
    }
    else if(dice[6] == new_dice[1]){
        move_N(dice);
        move_N(dice);
    }
}


void ad_2(int dice[7], int new_dice[7]){
    if(dice[2] == new_dice[2]){
        ;
    }
    else if(dice[3] == new_dice[2]){
        rot(dice);
    }
    else if(dice[5] == new_dice[2]){
        for(int i=0; i<2; i++){
            rot(dice);
        }
    }
    else if(dice[4] == new_dice[2]){
        for(int i=0; i<3; i++){
            rot(dice);
        }
    }
}

int check(int dice[7], int new_dice[7]){
    int flag = 1;
    for(int i=1; i<7; i++){
        if(dice[i]!=new_dice[i]){
            flag=0;
            break;
        }
    }
    return (flag);
}

void copy_dice(int dice[], int dice_copy[]){
    for(int i=0; i<7; i++){
        dice_copy[i] = dice[i];
    }
}

void rot_check(int dice[], int dice_copy[], int new_dice[], int *all_flag){
    for(int i=0; i<4; i++){
        //printf("i:%d\n", i);
        //print_dice(dice);
        copy_dice(dice, dice_copy);
        //print_dice(dice_copy);
        rots(dice_copy, i);
        //print_dice(dice_copy);

        *all_flag = *all_flag + check(dice_copy, new_dice);
        //printf("%d\n", check(dice_copy, new_dice));
    }
}

int main()
{
    int dice[7], dice_copy[7];
    int new_dice[7];
    for(int i=1; i<7; i++){
        scanf("%d", &dice[i]);
    }
    for(int i=1; i<7; i++){
        scanf("%d", &new_dice[i]);
    }

    int all_flag=0;
    rot_check(dice, dice_copy, new_dice, &all_flag);

    move_N(dice);
    rot_check(dice, dice_copy, new_dice, &all_flag);

    move_N(dice);
    rot_check(dice, dice_copy, new_dice, &all_flag);

    move_N(dice);
    rot_check(dice, dice_copy, new_dice, &all_flag);

    move_N(dice);

    move_E(dice);
    rot_check(dice, dice_copy, new_dice, &all_flag);

    move_W(dice);
    move_W(dice);
    rot_check(dice, dice_copy, new_dice, &all_flag);

    if(all_flag > 0){
        printf("Yes\n");
    }
    else{
        printf("No\n");
    }

    return 0;

}


Measured memory_bytes: 2092