#include<bits/stdc++.h>
using namespace std;

int main() {
	string x,y;
	cin>>x>>y;
	int l,m,q,h[27]={0};
	l=x.length();
	m=y.length();
	for(int i=0;i<l;i++)
	h[x[i]-'a']=1;
	cin>>q;
	while(q--)
	{
		string z,tp;
		cin>>z;
		tp=y;
		int n=z.length(),f=1;
		if(m==n || m==n+1)
		{
		 if(m==n+1)
		 {
		  if(tp.find('*')!=string::npos)
	 	  tp.erase(tp.find('*'));
		 }
		 int lx=tp.length();
		 //cout<<tp<<" "<<lx<<endl;
		 for(int i=0;i<lx;i++)
		 {
		 	if(!(tp[i]=='?' || tp[i]=='*'))
		 	{
		 	    if(tp[i]!=z[i]) f=0;
		 	}
		 	else
		 	{
		 		if(tp[i]=='?' && !h[z[i]-'a']) f=0;
		 		if(tp[i]=='*' && h[z[i]-'a']) f=0;
		 	}
		 }
		 if(f)
		 cout<<"YES"<<endl;
		 else
		 cout<<"NO"<<endl;
	    }
	    else
	    cout<<"NO"<<endl;
	}
	return 0;
}