99991330 - 铲雪

通过次数

20

提交次数

36

时间限制 : 1 秒
内存限制 : 128 MB

一场暴风雪袭击了小玉的家乡,将一块 N \times M 的地面覆盖了厚厚的白雪。雪花飘落在不同的位置,形成了不同的高度,h[i][j](1\leq i \leq N, 1 \leq j \leq M) 表示第 i 行,第 j 列的雪的高度。

小玉是一个发明天才,他设计了一种铲雪机器,这个机器能够在一个 2 \times 2 的雪地上,将其中一个对角线上的 1 个单位高度的雪,移动到另一个对角线上。

具体地说,使用这个铲雪机,需要在 N \times M 的雪地上选择出一个 2 \times 2 的雪地,用 f[i][j]  (1 \leq i, j \leq 2)  表示所选出来的四块雪的高度。每次操作,你可以选择使得

  • f[1][1]f[2][2] 增加 1, 同时 f[1][2]f[2][1] 减少1;或者

  • f[1][1]f[2][2] 减少 1, 同时 f[1][2]f[2][1] 增加1。

小玉想要把整块 N \times M 的雪地铲平,也就是在若干次操作后,h[i][j] 的值均为同一个整数 k。请问他能否做到?

输入

输入的第一行包含两个整数 N, M(2\leq N, M \leq 100),表示地面的长和宽。

接下来 N 行,每行包含 M 个整数。代表每个位置的雪的高度。

对于所有的 i, j1 \leq h[i][j] \leq 10000

输出

如果小玉能够使用他的铲雪机器使得所有雪地能达到一致的高度,输出一行"Yes",否则输出一行"No"(不含引号)。

样例

输入

3 3
2 2 2
3 1 2
1 3 2

输出

Yes