#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;   }   