#include<cstdio>
#include<iostream>
using namespace std;
int p,k,n,m,sum[210][210],f[210][50];
string s,a[10];
bool check(int l,int r) {
string x = s.substr(l,r - l + 1);
for(int i = 1;i <= n; i++) if(!x.find(a[i])) return true;
return false;
}
void inin() {
string ch;
s += '0';
scanf("%d%d",&p,&k);
for(int i = 1;i <= p; i++) {
cin >> ch;
s += ch;
}
scanf("%d",&n); m = s.length() - 1;
for(int i = 1;i <= n; i++) cin >> a[i];
for(int i = m;i >= 1; i--)
for(int j = i;j >= 1; j--) {
sum[j][i] = sum[j+1][i];
if(check(j,i)) sum[j][i]++;
}
}
void dp() {
f[0][0] = 0;
for(int i = 1;i <= k; i++) f[i][i] = f[i-1][i-1] + sum[i][i];
for(int i = 1;i <= m; i++) f[i][1] = sum[1][i];
for(int i = 1;i <= m; i++)
for(int j = 1;j <= k && j < i; j++)
for(int l = j;l < i; l++)
f[i][j] = max(f[i][j],f[l][j-1] + sum[l+1][i]);
printf("%d\n",f[m][k]);
}
int main()
{
inin();
dp();
return 0;
}