#include #include #include using namespace std; vector h[666017], h1[666017]; int i,j,k,p1,p2,n,nr,Max,a[30]; char c,c1,s1[100004],s[30][10]; int main() { for (i=1;i<=26;i++) { scanf ("%c%c", &c, &c1); gets(s1); nr=strlen(s1); for (j=0;j<=(nr-1);j++) s[c-'a'][j]=s1[j]; a[c-'a']=nr; } scanf ("%d\n", &n); Max=-1; for (i=1;i<=n;i++) { gets(s1); nr=strlen(s1); p1=0; p2=0; for (j=0;j<=(nr-1);j++) { for (k=0;k<=(a[s1[j]-'a']-1);k++) { p1=p1*107+int(s[s1[j]-'a'][k]); p2=p1*109+int(s[s1[j]-'a'][k]); p1%=666013; p2%=100013; } } nr=h[p1].size(); for (j=0;j<=(nr-1);j++) { if (h[p1][j]==p2) { h1[p1][j]++; if (h1[p1][j]>Max) Max=h1[p1][j]; } } if (j==nr) { h[p1].push_back(p2); h1[p1].push_back(1); } } printf ("%d", Max); return 0; }