#codefestivalrelaye. [code_festival_relay_e]変な足し算

[code_festival_relay_e]変な足し算

问题

考虑一个由 hhww 列的正方形格子组成的棋盘。每个格子上都写着一个1位数(范围从0到9)或者点号.。棋盘的左上角格子坐标为(1,1)(1,1),右上角格子坐标为(1,w)(1,w),左下角格子坐标为(h,1)(h,1),右下角格子坐标为(h,w)(h,w)

重复以下步骤,直到棋盘上只剩下一个整数为止:

  1. 从所有格子中选择一对包含整数的格子组,使得该对格子的曼哈顿距离最大(曼哈顿距离定义为两个格子的坐标分别为(a,b)(a,b)(c,d)(c,d)时的ac+bd|a-c|+|b-d|)。
  2. 在选定的格子对中,将格子上的整数和写入较大整数所在的格子,并将较小整数所在的格子写入点号.。如果两个整数相等,则自由选择任意一个格子作为新整数的位置,同时另一个格子写入点号.

完成以上步骤后,请计算棋盘上可能剩余的整数中的最大值。


输入

输入以以下格式给出:

hh ww b1b_1 ... bhb_h

  • 第一行包含两个整数 hhww,分别表示棋盘的行数和列数 (1h,w1001 \leq h, w \leq 100)。
  • 接下来的 hh 行描述了棋盘上的信息。
  • bib_i 表示棋盘第 ii 行的内容,是一个由长度为 ww 的字符字符串组成,每个字符可以是数字0-9中的一个或点号.
  • 确保棋盘上至少包含一个整数。

输出

输出一行,表示可能剩余的整数中的最大值。

最后以换行符结束,不要包含额外的字符或空行。


示例1


2 3
12.
.5.

输出1


8

示例2


5 5
..3.9
.1..6
2.3.4
7..11
....8

输出2


45