import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Earthquake {
    static int amountOfMatches(String toFind, ArrayList<String> dictionary) {
        int cnt = 0;

        String correctRegex;
        correctRegex = toFind.replaceAll("\\*", ".*");
        correctRegex = correctRegex.replaceAll("\\?", ".");

        for (String candidateStr : dictionary) {
            if (candidateStr.matches(correctRegex)) {
                cnt++;
            }
        }

        return cnt;
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<String> undamagedArr = new ArrayList<>();
        List<String> damagedArr = new ArrayList<>();

        int unmgCnt = input.nextInt();
        for (int i = 0; i < unmgCnt; i++) {
            undamagedArr.add(input.next());
        }

        int dmgCnt = input.nextInt();
        for (int i = 0; i < dmgCnt; i++) {
            damagedArr.add(input.next());
        }

        for ( String damaged : damagedArr) {
            System.out.println(amountOfMatches(damaged, undamagedArr));
        }
    }
}