#include #include #include #include using namespace std; #define NMAX 100001 int main() { map map1; for (int i = 0; i < 26; ++i) { char c, *tmp = new char[5]; cin >> c >> tmp; map1.insert(map1.begin(), make_pair(c, tmp)); } vector vector1; vector vector2; int nr; char *tmp = new char[NMAX]; cin >> nr; for (int i = 0; i < nr; ++i) { cin >> tmp; char *s = new char[NMAX]; for (int j = 0; j < strlen(tmp); ++j) strcat(s, map1.find(tmp[j])->second); bool found = false; for (int j = 0; j < vector1.size(); ++j) if (strcmp(vector1[j], s) == 0) { vector2[j]++; found = true; break; } if (found) { delete s; continue; } vector1.push_back(s); vector2.push_back(1); } int max = vector2[0]; for (int i = 1; i < vector2.size(); ++i) if (max < vector2[i]) max = vector2[i]; if (max < 2) { cout << -1; return 0; } cout << max; return 0; }