#include <stdio.h>
const int N = 500 + 5;
int n, m;
int a[N][N], b[N][N];
void change(int x, int y)
{
a[x][y] = a[x][y] == 1 ? 0 : 1;
a[x + 1][y] = a[x + 1][y] == 1 ? 0 : 1;
a[x][y + 1] = a[x][y + 1] == 1 ? 0 : 1;
a[x + 1][y + 1] = a[x + 1][y + 1] == 1 ? 0 : 1;
}
int main()
{
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%d", &a[i][j]);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%d", &b[i][j]);
for (int i = 1; i < n; i++)
for (int j = 1; j < m; j++)
if (a[i][j] != b[i][j])
change(i, j);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (a[i][j] != b[i][j])
{
puts("No");
return 0;
}
puts("Yes");
return 0;
}
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |
387. First Unique Character in a String | 383. Ransom Note |
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |
733. Flood Fill | 206. Reverse Linked List |
83. Remove Duplicates from Sorted List | 116. Populating Next Right Pointers in Each Node |