n = int(input())
undamaged = []
for _ in range(n):
	number = list(input())
	undamaged.append(number)
	
q = int(input())
for _ in range(q):
	number = list(input())
	reversed = False
	possible = undamaged
	still_possible = []
	for i, character in enumerate(number):
		if character == "?":
			still_possible = possible
		elif character == "*":
			reversed = True
			number = number[::-1]
			still_possible = [x[::-1] for x in possible]
			break
		else:
			for suspect in possible:
				if character == suspect[i]:
					still_possible.append(suspect)
		
		possible = still_possible
		still_possible = []
	
	if reversed == True:
		possible = still_possible
		still_possible = []
		for i, character in enumerate(number):
			if character == "*":
				break
			else:
				for suspect in possible:
					if character == suspect[i]:
						still_possible.append(suspect)
		
			possible = still_possible
			still_possible = []
	
	print(len(possible))
				
