#include #include #include #include #define LMAX 100005 using namespace std; int i, n, x, ans = 0, curr = 1; char c[500][LMAX], ch, cit[LMAX]; vector < string > v; int main() { for (i = 1; i <= 26; ++ i) { cin >> ch; cin.get(); cin.getline(c[ch], LMAX - 4); } cin >> n; cin.get(); for (i = 1; i <= n; ++ i) { cin.getline(cit, LMAX - 4); x = strlen(cit); char aux[LMAX]; memset(aux, '\0', sizeof(aux)); for (int j = 0; j < x; ++ j) strcat(aux, c[cit[j]]); v.push_back(aux); } sort(v.begin(), v.end()); n = v.size(); for (i = 1; i < n; ++ i) if (v[i] == v[i - 1]) curr ++; else ans = max(ans, curr), curr = 1; if (ans == 1) cout << -1; else cout << ans; return 0; }