#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;
}