#include<iostream>
#define MAX 50
using namespace std;
void check(char a[MAX][MAX+1],char b[MAX][MAX+1],int n, int m);
bool check2(char a[MAX][MAX+1],char b[MAX][MAX+1],int n, int m, int k, int l);
int main(){
int n,m;
int i,j;
char a[MAX][MAX+1],b[MAX][MAX+1];
cin >> n >> m;
for(i=0;i<n;i++){
cin >> a[i];
}
for(i=0;i<m;i++){
cin >>b[i];
}
check(a,b,n,m);
return 0;
}
void check(char a[MAX][MAX+1],char b[MAX][MAX+1],int n, int m){
int i,j,k,l;
bool flag;
for(i=0; i<=n-m;i++){
for(j=0;j<n-m;j++){
if(check2(a,b,n,m,i,j)){
cout << "Yes" <<endl;
return;
}
}
}
cout << "No" << endl;
}
bool check2(char a[MAX][MAX+1],char b[MAX][MAX+1],int n, int m, int k, int l){
int i,j;
for(i=0; i<m;i++){
for(j=0; j<m;j++){
if( a[i+k][j+l] != b[i][j])
return false;
}
}
return true;
}