nums = int(input()) tree = dict() def emplace(num, tree): for idx, char in enumerate(num): positions = tree.get(char, dict()) tree[char] = positions tree = positions def count(num, tree): if not num: return 1 char = num[0] substr = num[1:] if char == '?': total = 0 for _, sub in tree.items(): total += count(substr, sub) return total if char not in tree: return 0 return count(substr, tree[char]) for _ in range(nums): num = input() emplace(num, tree) nums = int(input()) def drop_ast(num): if '*' not in num: return num length = 9 - len(num) + 1 return ''.join([char if char != '*' else '?'*length for char in num]) for _ in range(nums): num = input() print(count(drop_ast(num), tree))