You are about to cross an by meter field. However, you are not sure if it's actually possible to do so. Each square meter of the field has an elevation value — you may only cross into an adjacent square meter if the distance between the centres of the squares is equal to one and if the elevation difference between the squares is less than or equal to .

Determine whether it is possible to cross the field or not if you start at the top left corner, square , and end in the bottom right corner, square .

#### Input Specification

The first line of input will contain 2 integers: and .

The next lines will contain integers each, the elevation of that square meter of the field. The elevation will be an integer between and .

#### Output Specification

On a single line, output `yes`

if you can cross the field; otherwise, output `no`

.

#### Constraints

Test Case Batch | Marks | Constraints |
---|---|---|

1 [5 + 10 cases] | 80 | |

2 [2 + 12 cases] | 20 |

#### Sample Input

```
4 3
3 6 4 9
7 1 2 3
7 7 2 2
7 7 1 5
```

#### Sample Output

`yes`

#### Explanation for Sample Output

From the top left square, you can go right, right, down, down, right, down to reach the bottom right square.

## Comments

Since the original test data was weak, 2 more cases were added to the second batch.

Since the original data were weak, new test cases were added to each batch.

Does diagnol count as going to an adjacent square?

No

On Batch 1 Case 4 and Batch 2 Case 1, I keep getting an Invalid Return. I have reviewed my code and I can't find the problem. Could you give me a hint as to what's wrong with my program? Am I forgetting a certain edge case? Thanks

Put this at the top of your code.

Your code is exceeding python's built in recursion limit, which is 999.

Thanks!