C. Рамзес и инвертирование углов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рамзес пришел в университет на пару по практике алгоритмов, и его любимый преподаватель, который является довольно известным программистом, задал ему такую задачу.

Даны две матрицы $$$A$$$ и $$$B$$$ размера $$$n \times m$$$, каждая состоит только из $$$0$$$ и $$$1$$$. Рамзес может сколько угодно раз применять к матрице $$$A$$$ следующую операцию: взять любую подматрицу матрицы $$$A$$$, содержащую хотя бы две строки и два столбца, и инвертировать значение в её углах (то есть все углы подматрицы, в которых раньше стоял $$$0$$$, после операции будут содержать $$$1$$$, а все углы подматрицы, в которых раньше стояла $$$1$$$, после операции будут содержать $$$0$$$). Требуется ответить, можно ли из матрицы $$$A$$$ получить матрицу $$$B$$$.

Пример операции. Выбранная подматрица выделена голубым и желтым, ее углы выделены желтым.

Так как Рамзес не хочет выполнять эти операции вручную, он просит вас ответить на этот вопрос.

Подматрицей матрицы $$$M$$$ называется матрица, образованная элементами на пересечении множества строк с номерами $$$x_1, x_1+1, \ldots, x_2$$$ матрицы $$$M$$$ и множества столбцов с номерами $$$y_1, y_1+1, \ldots, y_2$$$ матрицы $$$M$$$, где $$$x_1, x_2, y_1, y_2$$$ — крайние строки и столбцы подматрицы. Иными словами, подматрица — это набор ячеек исходной матрицы, которые образуют сплошной (без пустот) прямоугольник со сторонами, параллельными сторонам исходной матрицы, углами подматрицы являются клетки $$$(x_1, y_1)$$$, $$$(x_1, y_2)$$$, $$$(x_2, y_1)$$$, $$$(x_2, y_2)$$$, где клетка $$$(i,j)$$$ обозначает клетку на пересечении $$$i$$$-й строки и $$$j$$$-го столбца.

Входные данные

В первой строке находятся два целых числа $$$n$$$ и $$$m$$$, разделенных пробелом ($$$1 \leq n, m \leq 500$$$) — количество строк и столбцов в матрицах $$$A$$$ и $$$B$$$ соответственно.

В следующих $$$n$$$ строках находятся по $$$m$$$ целых чисел, разделенных пробелом: $$$j$$$-е число в $$$i$$$-й из этих строк обозначает $$$j$$$-й элемент $$$i$$$-й строки матрицы $$$A$$$ ($$$0 \leq A_{ij} \leq 1$$$).

В следующих $$$n$$$ строках находятся по $$$m$$$ целых чисел, разделенных пробелом: $$$j$$$-е число в $$$i$$$-й из этих строк обозначает $$$j$$$-й элемент $$$i$$$-й строки матрицы $$$B$$$ ($$$0 \leq B_{ij} \leq 1$$$).

Выходные данные

Выведите «Yes» (без кавычек), если вышеуказанными действиями можно превратить матрицу $$$A$$$ в матрицу $$$B$$$, и «No» (без кавычек), если нельзя. Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примеры
Входные данные
3 3
0 1 0
0 1 0
1 0 0
1 0 0
1 0 0
1 0 0
Выходные данные
Yes
Входные данные
6 7
0 0 1 1 0 0 1
0 1 0 0 1 0 1
0 0 0 1 0 0 1
1 0 1 0 1 0 0
0 1 0 0 1 0 1
0 1 0 1 0 0 1
1 1 0 1 0 1 1
0 1 1 0 1 0 0
1 1 0 1 0 0 1
1 0 1 0 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 0 1
Выходные данные
Yes
Входные данные
3 4
0 1 0 1
1 0 1 0
0 1 0 1
1 1 1 1
1 1 1 1
1 1 1 1
Выходные данные
No
Примечание

Примеры объяснены на рисунках ниже.

Пример 1.
Пример 2.
Пример 3.