Problem5513--违章建筑

5513: 违章建筑

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

你是 $B$ 市的市长,你拥有整个城市的建筑图,具体来说,建筑图是一个 $n\times m$ 的表格,每个格子中有一个数,表示这个位置的建筑物高度。
在这个城市里,很多人喜欢盖高自己的房子,但不能够将一个高度为 $0$ 的建筑物盖高,因为那里本身没有人。这些人也很聪明,他们知道你的办公室在整座城市的左下角,所以你只会从下往上或从左往右看,只要看不到这个盖高的违章建筑,那么这个建筑就可以被建造。(注意,从下往上看是从整个城市的下方往上方看,类似正视图,从左往右看类似)
现在你打算整顿整座城市的风气,将所有违章建筑全部拆掉,当然不包括原来不违章的部分。你想要知道,违章建筑的高度和最大是多少,以便准备好拖拉机。

Input

第一行两个整数 $n,m$,表示城市的长度和宽度。
下面 $n$ 行每行 $m$ 个数,每个数表示该位置的建筑物的高度。

Output

输出一行一个整数,表示违章建筑的最大高度和。

Constraints

对于 $40\%$ 的数据,满足 $n,\ m\ ≤4,\ a_i ≤ 2$。
对于 $60\%$ 的数据,满足 $n,m≤200$。
对于 $100\%$ 的数据,满足 $1≤n,m≤2×10^3,\ 0≤a_i≤10^9$。

Sample 1 Input

3 3
3 2 0
3 3 2
0 1 3

Sample 1 Output

2
最多可以在 $(12)$ 和 $(23)$ 两个位置分别建造高度为 $1$ 的违章建筑,$(13)$ 位置虽然建 $3$ 高度的违章建筑而不被看到,但是由于初始高度为 $0$ 所以不能建。

Sample 2 Input

4 5
5 4 3 2
0 1 2 3
2 1 3 2
4 0 0 1
3 2 1 2

Sample 2 Output

3

Source/Category