#include <fstream>
#include <map>
#include <string>
using namespace std;

ifstream cin("C:\\dev-C++\\UVa\\cin.txt");
ofstream cout("C:\\dev-C++\\UVa\\cout.txt");

int main() {
	map<char, string>  Morse;
	map<string, int> counter;

	int N;
	char c;
	string s;
	string build;
	build.reserve(100001);

	for (int i = 0; i < 26; i++) {
		cin >> c >> s;
		Morse[c] = s;
	}
	cin >> N;
	while (N--) {
		cin >> s;
		for (int i = 0; i < (int)s.size(); i++) 	build += Morse[s[i]];
		if (counter.find(build) == counter.end()) counter[build] = 1;
		else counter[build] ++;
		build.clear();
	}
	N = 0;
	for (map<string, int>::iterator it = counter.begin(); it != counter.end(); ++it) {
		if (it->second > N) N = it->second;
	}
	if(N>1) cout << N;
	else cout << -1;

	return 0;
}