#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <queue>
#include <map>
#include <assert.h>
using namespace std;
typedef long long int ll;

int h[4];
int w[4];
vector<string> M[4];
int used[4][10];
char fi[4][10];

int main(){
    for(int i=0;i<4;i++){
        cin >> h[i] >> w[i];
        for(int j=0;j<h[i];j++){
            string s; cin >> s;
            M[i].push_back(s);
        }
    }
    set<string> st;
    for(int i=0;i<4;i++){
        vector<int> kouho;

        for(int j=0;j<4;j++){
            if(i!=j)kouho.push_back(j);
        }

        for(int j=0;j<40;j++){
            int a1=j/10,b1=j%10;
            if(a1+h[kouho[0]]>4||b1+w[kouho[0]]>10)continue;

            for(int k=0;k<40;k++){
                int a2=k/10,b2=k%10;
                if(a2+h[kouho[1]]>4||b2+w[kouho[1]]>10)continue;

                for(int l=0;l<40;l++){
                    int a3=l/10,b3=l%10;
                    if(a3+h[kouho[2]]>4||b3+w[kouho[2]]>10)continue;

                    for(int a=0;a<4;a++){
                        for(int b=0;b<10;b++){
                            fi[a][b]='#';
                        }
                    }
                    bool ok=true;
                    for(int y=0;y<h[kouho[0]];y++){
                        for(int x=0;x<w[kouho[0]];x++){
                            if(fi[a1+y][b1+x]=='#'&&M[kouho[0]][y][x]=='#'){
                                fi[a1+y][b1+x]='.';
                            }
                            else if(fi[a1+y][b1+x]=='.'&&M[kouho[0]][y][x]=='#'){
                                ok=false;
                            }
                        }
                    }
                    for(int y=0;y<h[kouho[1]];y++){
                        for(int x=0;x<w[kouho[1]];x++){
                            if(fi[a2+y][b2+x]=='#'&&M[kouho[1]][y][x]=='#'){
                                fi[a2+y][b2+x]='.';
                            }
                            else if(fi[a2+y][b2+x]=='.'&&M[kouho[1]][y][x]=='#'){
                                ok=false;
                            }
                        }
                    }
                    for(int y=0;y<h[kouho[2]];y++){
                        for(int x=0;x<w[kouho[2]];x++){
                            if(fi[a3+y][b3+x]=='#'&&M[kouho[2]][y][x]=='#'){
                                fi[a3+y][b3+x]='.';
                            }
                            else if(fi[a3+y][b3+x]=='.'&&M[kouho[2]][y][x]=='#'){
                                ok=false;
                            }
                        }
                    }
                    if(ok){
                        string s="";
                        for(int i=0;i<4;i++){
                            for(int j=0;j<10;j++){
                                s+=fi[i][j];
                            }
                        }
                        assert(s.size()==40);
                        st.insert(s);
                    }
                }
            }
        }
    }

    int n; cin >> n;
    for(int i=0;i<n;i++){
        string s="";
        for(int j=0;j<4;j++){
            string t; cin >> t;
            s+=t;
        }
        if(st.count(s)){
            cout << "Yes" << endl;
        }
        else{
            cout << "No" << endl;
        }
    }
}

