#include<cstdio>
#define MAXN 1010
#define SIGMA 30
using namespace std;
char a[MAXN][MAXN];
int vc[SIGMA];
int ok[MAXN][MAXN],sum[MAXN][MAXN];
int main(){
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
int n,m,i,j,k,answer=0;
char ch;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%s",a[i]+1);
scanf("%c",&ch);
for(i=1;i<=m;i++){
for(j=1;j<=m;j++){
scanf("%c",&ch);
vc[ch-'a'+1]++;
}
scanf("%c",&ch);
}
for(i=m;i<=n;i++)
for(j=m;j<=n;j++)
ok[i][j]=1;
for(k=1;k<=26;k++){
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
if(a[i][j]-'a'+1==k)
sum[i][j]++;
}
for(i=m;i<=n;i++)
for(j=m;j<=n;j++)
if(sum[i][j]-sum[i-m][j]-sum[i][j-m]+sum[i-m][j-m]!=vc[k])
ok[i][j]=0;
}
for(i=m;i<=n;i++)
for(j=m;j<=n;j++)
answer+=ok[i][j];
printf("%d",answer);
return 0;
}