#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  int i, j, a[501][501], b[501][501];
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      scanf("%d", &a[i][j]);
    }
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      scanf("%d", &b[i][j]);
    }
  }
  int c[501][501];
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {
      if (a[i][j] == b[i][j])
        c[i][j] = 0;
      else
        c[i][j] = 1;
    }
  }
  int count[501][2] = {0};
  for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) count[i][0] += c[i][j];
  }
  for (i = 0; i < m; i++) {
    for (j = 0; j < n; j++) count[i][1] += c[j][i];
  }
  int val = 1;
  for (i = 0; i < n; i++) {
    if (count[i][0] % 2) val = 0;
  }
  for (i = 0; i < m; i++) {
    if (count[i][1] % 2) val = 0;
  }
  if (val)
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
