#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,v[26],f[1002][1002][26],s,rez,i2,j2;
char g[1002][1002],c;
bool ok;
int main()
{
fin>>m>>n;
for (int i=1;i<=m;i++)
{
for (int j=1;j<=m;j++)
{
fin>>g[i][j];
}
}
for (int i=1;i<=n*n;i++)
{
fin>>c;
v[c-'a']++;
}
for (int i=1;i<=m;i++)
{
for (int j=1;j<=m;j++)
{
for (int k=0;k<=25;k++)
{
f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]-f[i-1][j-1][k];
}
f[i][j][g[i][j]-'a']++;
}
}
for (int i=n;i<=m;i++)
{
for (int j=n;j<=m;j++)
{
ok=1;
for (int k=0;k<=25 && ok==1;k++)
{
i2=i-n+1;
j2=j-n+1;
s=f[i][j][k]-f[i][j2-1][k];
s-=f[i2-1][j][k];
s+=f[i2-1][j2-1][k];
if (s!=v[k])
{
ok=0;
}
}
rez+=ok;
}
}
fout<<rez;
return 0;
}