#include<stdio.h>
#include<malloc.h>
#include<stdbool.h>
int main(void)
{
int n,m;
int **matris1;
int **matris2;
bool isequles=true;//设置一个开关,一开始设置为true,一旦被设为false则直接结束并且表示这两个矩阵不相等
scanf("%d %d",&n,&m);
matris1=(int **)malloc(sizeof(int *)*n);
for(int i=0;i<n;i++)
matris1[i]=(int *)malloc(sizeof(int)*m);
matris2=(int **)malloc(sizeof(int *)*n);
for(int i=0;i<n;i++)
matris2[i]=(int *)malloc(sizeof(int)*m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&matris1[i][j]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&matris2[i][j]);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(matris1[i][j]!=matris2[i][j])//
{
isequles=false;
break;
}
}
if(!isequles)
break;
}
if(isequles)
printf("Yes");
else
printf("No");
return 0;
}