#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
vector <int> 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;
}