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