#include<iostream>
#include<vector>
using namespace std;
int H,W;
char t[20][20];

char u[40][20][20];

int  h[40],w[40];
int n,m,a,b;

int v[10];

bool ans[2048];

void input();
void init();
void rotate(int,int);

void dfs(int,int,int);

void check();
bool on_check(int,int,int);

void on_tab(int,int,int);
void off_tab(int,int,int);


int main(){
  int S;
  while(cin>>H>>W){
    if(H==0&&W==0)break;

    input();
    init();

    dfs(0,0,0);

    cin>>m;
    for(int i=0;i<m;i++){
      cin>>a;
      S=0;
      for(int j=0;j<a;j++){
	cin>>v[j];
	v[j]--;
	S+=(1<<v[j]);
      }
      
      if(ans[S])cout<<"YES"<<endl;
      else cout<<"NO"<<endl;
    }
    
  }
  return 0;
}


void dfs (int S,int y,int x){

  if(y==H){
    ans[S]=true;
    return;
  }
  
  if(t[y][x]=='#')dfs(S,(x+1==W?y+1:y),(x+1==W?0:x+1));
  
  for(int i=0;i<n;i++){
    if((S>>i)&1==1)continue;

    for(int j=0;j<4;j++){
      if(on_check(y,x,4*i+j)==false)continue;
       on_tab(y,x,4*i+j);
      dfs(S+(1<<i),y,x);
      off_tab(y,x,4*i+j);
    }
  }

}



void rotate(int a,int b){
  for(int i=0;i<h[a];i++){
    for(int j=0;j<w[a];j++){
      u[a][i][j]=u[b][j][h[a]-i-1];
    }
  }
}


void init(){
  for(int i=0;i<2048;i++)ans[i]=false;
}


void input(){
  string str;
  for(int i=0;i<H;i++){
    cin>>str;
    for(int j=0;j<W;j++){
      t[i][j]=str[j];
    }
  }
  cin>>n;
  for(int k=0;k<n;k++){
    cin>>h[k*4]>>w[k*4];
    for(int i=0;i<h[k*4];i++){
      cin>>str;
      for(int j=0;j<w[k*4];j++){
	u[k*4][i][j]=str[j];
      }
    }
    for(int i=1;i<4;i++){
      h[k*4+i]=w[k*4+i-1];
      w[k*4+i]=h[k*4+i-1];
      rotate(k*4+i,k*4+i-1);
    }
  }
}

bool on_check(int y,int x,int A){
  if(y+h[A]>H||x+w[A]>W)return false;
  for(int i=y;i<y+h[A];i++){
    for(int j=x;j<x+w[A];j++){
      if(u[A][i-y][j-x]=='#'&&t[i][j]=='#')return false;
    }
  }
  return true;
}


void on_tab(int y,int x,int A){
  for(int i=y;i<y+h[A];i++){
    for(int j=x;j<x+w[A];j++){
      if(u[A][i-y][j-x]=='#')t[i][j]='#';
    }
  }
}


void off_tab(int y,int x,int A){
  for(int i=y;i<y+h[A];i++){
    for(int j=x;j<x+w[A];j++){
      if(u[A][i-y][j-x]=='#')t[i][j]='.';
    }
  }
}