
undamaged = [[set() for num in range(10)] for dig in range(9)]

un_cnt = int(input())
for un_c in range(un_cnt):
    un = input().strip()

    undamaged[0][int(un[0])].add(un)
    undamaged[1][int(un[1])].add(un)
    undamaged[2][int(un[2])].add(un)
    undamaged[3][int(un[3])].add(un)
    undamaged[4][int(un[4])].add(un)
    undamaged[5][int(un[5])].add(un)
    undamaged[6][int(un[6])].add(un)
    undamaged[7][int(un[7])].add(un)
    undamaged[8][int(un[8])].add(un)

def process_coffee(undamaged, d):
    d_set = None
    for i in range(9):
        if d[i] == '?':
            continue
        if d_set == None:
            d_set = undamaged[i][int(d[i])]
        else:
            d_set = d_set.intersection(undamaged[i][int(d[i])])
    return d_set.__len__()

def process_juice(undamaged, d):
    d_set = None
    for i in range(9):
        if d[i] == '*':
            break
        if d_set == None:
            d_set = undamaged[i][int(d[i])]
        else:
            d_set = d_set.intersection(undamaged[i][int(d[i])])
    
    for i in range(-1, -len(d), -1):
        if d[i] == '*':
            break
        if d_set == None:
            d_set = undamaged[i][int(d[i])]
        else:
            d_set = d_set.intersection(undamaged[i][int(d[i])])
    if d_set == None:
        return un_cnt
    return d_set.__len__()


answers_cnt = int(input())
ans = [0] * answers_cnt
for d_cnt in range(answers_cnt):
    d = input().strip()
    if '*' in d:
        ans[d_cnt] = process_juice(undamaged, d)
    else:
        ans[d_cnt] = process_coffee(undamaged, d)

for a in ans:
    print(a)
