#include <stdio.h>
int func(int a[1005][1005], int b[1005][1005], int n, int m);
int main() {
    int n, m, max, min, arr[1005][1005], i, j, b[1005][1005];
    scanf("%d%d", &n, &m);

    for (i = 0; i < m; i++) {
        for (j  = 0; j < n; j++) {
            scanf("%d", &arr[i][j]);
        }
    }
    for (i = 0; i < m; i++) {
        for (j  = 0; j < n; j++) {
            scanf("%d", &b[i][j]);
        }
    }
    int ret = func(arr, b, n, m);
    if (ret == 1) printf("No\n");
    else  printf("Yes\n");

}
int func(int a[1005][1005], int b[1005][1005], int n, int m) {
    int i, j;
    for (i = 0; i < m; i++) {
        for (j  = 0; j < n; j++) {
            if (a[i][j] != b[i][j]) {
                return 1;
            }
        }
    }
    return 0;
}