#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;
}