#include <cstdio> #include <cstring> #include <map> #include <vector> using namespace std; const int baza=3,mod1=593082239,mod2=269943287; map<pair<int,int>,int> h; vector<int> v[30]; char sir[100010]; int main() { //freopen("file.in", "r", stdin); //freopen("file.out", "w", stdout); for(int i=0;i<26;i++) { char c; scanf("%c %s\n",&c,sir); int nr=strlen(sir); for(int j=0;j<nr;j++) if(sir[j]=='.') v[c-'a'].push_back(1); else v[c-'a'].push_back(2); } int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("\n%s",sir); int nr=strlen(sir); pair<int,int> a={0,0}; for(int j=0;j<nr;j++) { for(int k=0;k<v[sir[j]-'a'].size();k++) { a.first=(1LL*a.first*baza+v[sir[j]-'a'][k])%mod1; a.second=(1LL*a.second*baza+v[sir[j]-'a'][k])%mod2; } } h[a]++; } int sol=-1; for(map<pair<int,int>,int>::iterator it=h.begin();it!=h.end();it++) if(it->second>1) sol=max(sol,it->second); printf("%d",sol); return 0; }