#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef vector<char> vec;
typedef vector<vector<char>> mat;
typedef vector<vector<vector<char>>> vmat;
int n;
vmat s,t,u;
string a;
bool ch(vmat s,int x){
    if(x==1){
        for(int i=0;i<n;i++){
            if(s[1][n-1][i]=='X'&&s[0][0][i]=='X')return false;
        }
    }
    else if(x==2){
        for(int i=0;i<n;i++){
            if(s[2][i][0]=='X'&&s[0][i][n-1]=='X')return false;
            if(s[1][n-i-1][n-1]=='X'&&s[2][0][i]=='X')return false;
        }
    }
    else if(x==3){
        for(int i=0;i<n;i++){
            if(s[3][0][i]=='X'&&s[0][n-1][i]=='X')return false;
            if(s[2][n-1][i]=='X'&&s[3][i][n-1]=='X')return false;
        }
    }
    else if(x==4){
        for(int i=0;i<n;i++){
            if(s[4][i][n-1]=='X'&&s[0][i][0]=='X')return false;
            if(s[3][i][0]=='X'&&s[4][n-1][n-i-1]=='X')return false;
            if(s[4][0][i]=='X'&&s[1][i][0]=='X')return false;
        }
    }
    else if(x==5){
        for(int i=0;i<n;i++){
            if(s[5][0][i]=='X'&&s[1][0][i]=='X')return false;
            if(s[5][i][n-1]=='X'&&s[2][i][n-1]=='X')return false;
            if(s[5][n-1][i]=='X'&&s[3][n-1][i]=='X')return false;
            if(s[5][i][0]=='X'&&s[4][i][0]=='X')return false;
        }
    }
    return true;
}
void st(int a,int b,int c){
    if(c==0){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            t[b][i][j]=s[a][i][j];
        }
    }
    }
    else{
        for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            t[b][i][j]=s[a][i][n-j-1];
        }
    }
    }
    return ;
}
void sura(int a){
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            
        }
    }
}
void trot(int x){
    for(int i=0;i<n;i++){
        u[x][i][n-1]=t[x][0][i];
        u[x][n-1][n-i-1]=t[x][i][n-1];
        u[x][i][0]=t[x][n-1][i];
        u[x][0][n-i-1]=t[x][i][0];
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            t[x][i][j]=u[x][i][j];
        }
    }
    return ;
}
bool dfs(set<int> se){
    int L=se.size()+1;
    //cout<<L<<endl;
    if(L==6){return true;}
    for(int i=1;i<=5;i++){
        if(se.count(i))continue;
        for(int j=0;j<2;j++){
            st(i,L,j);
            for(int k=0;k<4;k++){
                trot(L);
                /*
                for(int i=0;i<n;i++){
                    for(int j=0;j<n;j++){
                        cout<<t[L][i][j]<<" ";
                    }
                    cout<<endl;
                }
                cout<<endl;*/
                //cout<<ch(t,L)<<" "<<L<<endl;
                if(ch(t,L)){
                    se.insert(i);
                    if(dfs(se))return true;
                    se.erase(i);
                }
            }
        }
    }
    return false;
}

int main(void){
    while(1){
    cin>>n;
    if(n==0)return 0;
    int cnt=8+12*(n-2);
    set<int>sese;
    s={};
    t={};
    u={};
    for(int i=0;i<6;i++){
        mat vm;
        for(int j=0;j<n;j++){
            cin>>a;
            vec v;
            for(int k=0;k<n;k++){
                if((k==0||k==n-1||j==0||j==n-1)&&a[k]=='X')cnt--;
                v.push_back(a[k]);
            }
            vm.push_back(v);
        }
        s.push_back(vm);
        t.push_back(vm);
        u.push_back(vm);
    }
    //cout<<cnt<<endl;
    if(cnt!=0)cout<<"No"<<endl;
    /*
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cout<<s[0][i][j];
        }
        cout<<endl;
    }
    cout<<endl;
    */
    else if(dfs(sese))cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    }
}



Measured memory_bytes: 3188