You are given an m x n grid where each cell can have one of three values:
- 0 representing an empty cell
- 1 representing a fresh orange
- 2 representing a rotten orange
Every minute, any fresh orange that is 4-directionally adjacent to a rotten orange becomes rotten.
Return the minimum number of minutes that must elapse until no cell has a fresh orange. If this is impossible, return -1.
Example 1:
Input: 3 3 2 1 1 1 1 0 0 1 1 Output: 4
Example 2:
Input: 3 3 2 1 1 0 1 1 1 0 1 Output: -1
Constraints:
- m == grid.length, n == grid[i].length
- 1 ≤ m, n ≤ 10
- grid[i][j] is 0, 1, or 2
Input format: First line: m n. Then m lines each with n space-separated integers (0, 1, or 2).
Output format: Minimum minutes or -1.