Problem 2: Nikhil's Dungeon, *(K Narayan Kumar, CMI)*

Nikhil has designed the following game. The game is played in a
set of rooms in a dungeon, arranged in an *M × N*
rectangular grid. In one of the rooms, the evil wazir has imprisoned
the princess. The noble prince is on his way to rescue the
princess.

The prince starts in the room at the top left corner of the grid, which is labelled (1,1). Each room contains some guards. It takes a certain amount of time before the prince can kill all the guards in the room he is in. The time taken to kill the guards varies from room to room. Once he has killed all the guards in a room, he can move on to any one of its neighbours by going left, right, up or down, provided, of course, that there is a neighbouring room in the corresponding direction.

The wazir, knowing that the prince is on his way, has set a time
bomb that will kill the princess after *T* seconds. You will
be given the position of the princess, the time left for the bomb to
go off and the time it takes for the prince to kill the guards in each
of the rooms in the dungeon. Your task is to determine if it is
possible for the prince to reach the princess and save her by defusing
the bomb before the *T* seconds expire.

For example, suppose the dungeon is described by the following grid of numbers.

2 3 2 2 5 1 5 3 1 3 1 1

The number at position *(i,j)* indicates the time taken for
the prince to overpower the guards in room *(i,j)*. Suppose the
princess is in the room at position (4,2). If *T* = 10. there
is no way the prince can reach the princess in time. However, if
*M* = 15, the prince can reach the princess with 4 seconds to
spare, as follows. Starting from (1,1), he moves right to (1,2) and
then (1,3), comes down all the way to (4,3) and then moves (4,2). This
takes 11 seconds (note that he must also overpower the guard in the
room where the princess is incarcerated). You can check that he cannot
reach the princess with more than 4 seconds to spare by any route.

Input format

The first line contains two integers *M* and *N*
indicating the number of rows and columns in the rectangular dungeon.
Lines 2,3,…,*M*+1 contain *N* positive
integers. The *j ^{th}* integer on line

Output format

If it is not possible for the prince to save the princess then
print a single line with the answer `NO`. Otherwise, print two
lines. The first line should say `YES`. The second line should
contain a single integer indicating the maximum possible time to
spare when the prince rescues the princess.

Test data

You may assume that 1 ≤ *N,K* ≤ 70.

Example

We now illustrate the input and output formats using the above example.

Sample input

4 3 2 3 2 2 5 1 5 3 1 3 1 1 4 2 15

Sample output

YES 4

Copyright (c) IARCS 2003-2020; Last Updated: 13 Apr 2006