1302 - 腐烂的橘子

通过次数

20

提交次数

30

Time Limit : 1 秒
Memory Limit : 128 MB

在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:

  • 0 代表空单元格;

  • 1 代表新鲜橘子;

  • 2 代表腐烂的橘子。

每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。

输出 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,输出 -1

Input

第一行为2个整数m,n,表示grid的行和列

以下m行n列为grid的具体内容

Output

直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,输出 -1

Examples

Input

3 3
2 1 1
1 1 0
0 1 1

Output

4

Input

3 3
2 1 1
0 1 1
1 0 1

Output

-1

Input

1 2
0 2

Output

0

Hint

  • m == grid.length

  • n == grid[i].length

  • 1 <= m, n <= 10

  • grid[i][j] 仅为 012