#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
typedef struct morse{
    char chr[30];
}morse;
int main()
{
    morse *Alphabet;
    Alphabet = (morse*)malloc(sizeof(morse*)*(26));
    for(int i=0;i<= 26;i++)
        cin>>Alphabet[i].chr;
    int n;
    cin>>n;
    morse *words = (morse*)malloc(sizeof(morse*)*(n));
    for(int i=0;i<= n;i++)
        cin>>words[i].chr;
    int aparitii[3];
    aparitii[0]=0;
    aparitii[1]=0;
    int c = 0,maxi = 0;
    for(int i=1;i<= n;i++)
    {
        int l = 0;
        aparitii[0]=0;
        aparitii[1]=0;
        while(l <= strlen(words[i].chr)){
            int j = 0;
            int poz = words[i].chr[l] - 'a';
            while(j<= strlen(Alphabet[poz].chr))
            {
                if(words[i].chr[j] == '.')
                    aparitii[0]++;
                else aparitii[1]++;
                j++;
            }
            l++;
        }
        l = 0;
        while(l <= strlen(words[i+1].chr)){
            int j = 0;
            int poz = words[i+1].chr[l] - 'a';
            while(j<= strlen(Alphabet[poz].chr))
            {
                if(words[i+1].chr[j] == '.')
                    aparitii[0]--;
                else if(words[i+1].chr[j] == '-')
                        aparitii[1]--;
                j++;
            }
            l++;
        }
        if (aparitii[0] == 0 and aparitii[1] == 0){
            c++;
            if(c > maxi)
                maxi = c;
        }
        else c=0;
    }
    cout<<maxi;
    free(Alphabet);
    free(words);
    return 0;
}