#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int fie[3][100000];
int main(){
    int N;
    cin>>N;
    for(int i=0;i<3;i++){
        for(int j=0;j<N;j++){
            cin>>fie[i][j];
        }
    }
    int pos[100000]={0};
    int pospos[100000]={0};
    int muki[100000]={0};
    for(int i=0;i<N;i++){
        if(fie[0][i]%3==1){
            if(fie[1][i]==fie[0][i]+1&&fie[2][i]==fie[0][i]+2){
                pos[fie[2][i]/3-1]=i;
                pospos[i]=fie[2][i]/3-1;
            }
            else{
                puts("No");
                goto exit;
            }
        }
        else if(fie[0][i]%3==0){
            if(fie[1][i]==fie[0][i]-1&&fie[2][i]==fie[0][i]-2){
                pos[fie[0][i]/3-1]=i;
                pospos[i]=fie[0][i]/3-1;
                muki[i]=1;
            }
            else{
                puts("No");
                goto exit;
            }
        }
        else{
            puts("No");
            goto exit;
        }
    }
    for(int i=0;i<N-2;i++){
        int a=pos[i];
        swap(muki[i],muki[a]);
        if((a-i)%2==1){
            puts("No");
            goto exit;
        }
        if(i!=pos[i]){
            int b=pospos[i];
            if(((max(a,i)-min(a,i))/2)%2==1){
                muki[i]=1-muki[i];
                muki[a]=1-muki[a];
            }
            swap(pospos[i],pospos[a]);
            pos[i]=i;
            pos[b]=a;
            muki[i+1]=1-muki[i+1];
        }
    }
    for(int i=0;i<N-2;i++){
        if(muki[i]){
            muki[i]=0;
            muki[i+2]=1-muki[i+2];
        }
    }

    if(muki[N-2]||muki[N-1])puts("No");
    else puts("Yes");
exit:
    return 0;
}

