#include<fstream>
using namespace std;
int m, n, k, i, j, nr;
int s[1001][1001], v[150], b[1001][1001];
char a[1001][1001], x;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int main(){
fin>> m >> n;
for(i = 1; i <= m; i++){
for(j = 1; j <= m; j++){
fin>> a[i][j];
}
}
for(i = 1; i <= n; i++){
for(j = 1; j <= n; j++){
fin>> x;
v[x]++;
}
}
for(k = 'a'; k <= 'z'; k++){
if(v[k] != 0){
for(i = 1; i <= m; i++){
for(j = 1; j <= m; j++){
s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1];
if(a[i][j] == k){
s[i][j]++;
}
}
}
for(i = n; i <= m; i++){
for(j = n; j <= m; j++){
if(b[i][j] == 0){
if((s[i][j] - s[i-n][j] - s[i][j-n] + s[i-n][j-n]) != v[k]){
b[i][j] = 1;
}
}
}
}
}
}
for(i = n; i <= m; i++){
for(j = n; j <= m; j++){
if(b[i][j] == 0){
nr++;
}
}
}
fout<< nr;
return 0;
}