小 A 正在参加一场迷宫探索竞赛。竞赛场地是一个由 N 行 M 列方格组成的矩形迷宫。在迷宫中,部分方格是平坦的通道(用 . 表示),部分方格则是坚硬的墙壁(用 # 表示)。
为了快速了解迷宫的结构,小 A 配备了一个高科技信号探测仪。小 A 可以将其放置在迷宫中的任意一个通道方格内。探测仪一旦启动,会同时向上、下、左、右四个方向发射直线脉冲信号。
信号的传播规则如下:
小 A 希望找出一个最佳的放置位置,使得探测仪单次发射信号能够记录到的通道方格数量最多。
请你编写程序,帮助小 A 计算出,探测仪能记录到的通道方格的最大数量。
输入第一行包含两个正整数 N 和 M,表示迷宫的行数和列数。
接下来的 N 行,每行包含一个长度为 M 的字符串,代表迷宫的布局。其中 . 表示通道,# 表示墙壁,输入保证字符串中只包含这两种字符。
输出一个整数,表示在最佳放置位置下,探测仪能够记录到的通道方格的最大数量。
4 6 #..#.. .....# ....#. #.#...
8
8 8 ..#...#. ....#... ##...... ..###..# ...#..#. ##....#. #...#... ###.#..#
13
12 15 ............... ...#........... .......#....... ............... .....#......... ............#.. ............... ..#............ ............... .......#....... ............... ....#..........
26
样例 1 说明:
若将探测仪放置在第 2 行第 2 列(行、列索引均从 1 开始计算):
.),共 5 个方格。.),共 4 个方格。经过验证,这是该迷宫中放置探测仪的最优方案。
| 测试点编号 | N,M |
|---|---|
| 1 | N=1,M=1 |
| 2 | N=1,M \le 2000 |
| 3 | N \le 2000,M = 1 |
| 4 | N \le 200,M \le 200 |
| 5 \sim 10 | N \le 2000,M \le 2000 |
对于 100\% 的数据,满足 1 \le N, M \le 2000。
输入数据保证迷宫中至少存在一个通道方格(.)。