You are given an m×n grid, where each cell contains a directional sign indicating which neighboring cell to move to next. The sign in a cell grid[i][j] can be:
1: Move right, i.e., from grid[i][j] to grid[i][j + 1].
2: Move left, i.e., from grid[i][j] to grid[i][j - 1].
3: Move down, i.e., from grid[i][j] to grid[i + 1][j].
4: Move up, i.e., from grid[i][j] to grid[i - 1][j].
Note: Some signs may point outside the boundaries of the grid.
Your starting position is the top-left cell (0,0). A valid path is any sequence of moves beginning at (0,0) and ending at the bottom-right cell ...