#include <bits/stdc++.h>
using namespace std;
vector<long long int> v(26, 0);
long long int n, m;
bool myFun(string &a, string &s, long long int i, long long int j) {
  if (i >= n && j >= m) {
    return true;
  }
  if (j >= m) {
    return false;
  }
  if (i >= n) {
    while (j < m) {
      if (s[j] != '*') {
        return false;
      }
      j++;
    }
    return true;
  }
  if (a[i] == s[j]) {
    return myFun(a, s, i + 1, j + 1);
  }
  if (s[j] == '?') {
    long long int temp = a[i] - 'a';
    if (v[temp]) {
      return myFun(a, s, i + 1, j + 1);
    }
    return false;
  }
  if (s[j] == '*') {
    long long int temp = a[i] - 'a';
    if (v[temp]) {
      return myFun(a, s, i, j + 1);
    } else {
      return (myFun(a, s, i + 1, j + 1) || myFun(a, s, i, j + 1)) ||
             myFun(a, s, i + 1, j);
    }
  }
  return false;
}
int main() {
  string s;
  cin >> s;
  for (long long int i = 0; i < s.length(); i++) {
    long long int temp = s[i] - 'a';
    v[temp] = 1;
  }
  cin >> s;
  long long int k;
  cin >> k;
  for (long long int i = 0; i < k; i++) {
    string a;
    cin >> a;
    n = a.length();
    m = s.length();
    if (myFun(a, s, 0, 0)) {
      cout << "YES" << endl;
    } else {
      cout << "NO" << endl;
    }
  }
  return 0;
}
