#include long long int max(long long int a, long long int b) { if (a > b) return a; else return b; } long long int a[502][502]; long long int dp[2][502][502]; int main() { int h, w; scanf("%d %d", &h, &w); int i, j; for (i = 0; i < h; i++) for (j = 0; j < w; j++) scanf("%lld", &a[i][j]); for (i = 0; i <= h; i++) for (j = 0; j <= w; j++) dp[0][i][j] = dp[1][i][j] = 0; dp[0][0][0] = a[0][0]; for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { if (i == h - 1 && j == w - 1) break; if (i != 0 || j != 0) { if (dp[1][i][j] > a[i][j]) dp[1][i][j] += a[i][j]; else dp[1][i][j] = 0; if (dp[0][i][j] > a[i][j]) dp[0][i][j] += a[i][j]; else { dp[1][i][j] = max(dp[1][i][j], dp[0][i][j]); dp[0][i][j] = 0; } } dp[0][i + 1][j] = max(dp[0][i + 1][j], dp[0][i][j]); dp[0][i][j + 1] = max(dp[0][i][j + 1], dp[0][i][j]); dp[1][i + 1][j] = max(dp[1][i + 1][j], dp[1][i][j]); dp[1][i][j + 1] = max(dp[1][i][j + 1], dp[1][i][j]); } } if (max(dp[0][h - 1][w - 1], dp[1][h - 1][w - 1]) > a[h - 1][w - 1]) printf("Yes\n"); else printf("No\n"); return 0; }