{"trustable":true,"prependHtml":"\u003cstyle type\u003d\u0027text/css\u0027\u003e\n .input, .output {\n border: 1px solid #888888;\n }\n .output {\n margin-bottom: 1em;\n position: relative;\n top: -1px;\n }\n .output pre, .input pre {\n background-color: #EFEFEF;\n line-height: 1.25em;\n margin: 0;\n padding: 0.25em;\n }\n \u003c/style\u003e\n \u003clink rel\u003d\"stylesheet\" href\u003d\"//codeforces.org/s/96598/css/problem-statement.css\" type\u003d\"text/css\" /\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027$$$$$$\u0027, right: \u0027$$$$$$\u0027, display: true},\n {left: \u0027$$$\u0027, right: \u0027$$$\u0027, display: false},\n {left: \u0027$$\u0027, right: \u0027$$\u0027, display: true},\n {left: \u0027$\u0027, right: \u0027$\u0027, display: false}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\u003cp\u003e\u003cspan class\u003d\"tex-font-style-it\"\u003eNoGo\u003c/span\u003e 是一个游戏,其规则与 \u003cspan class\u003d\"tex-font-style-it\"\u003eGo\u003c/span\u003e 相反。在这个游戏中,玩家如果拿对手的棋子或者杀死自己的棋子,就会输掉比赛。\u003c/p\u003e\u003cp\u003e小 G 正在编写一个机器人来玩这个游戏。他现在正在研究这个游戏的简化版本。在简化版本中,小 G 有一个大小为 $$$n \\times m$$$ 的棋盘。每个交叉点只有两种状态:空的或者被他的棋子占据。如果两个交叉点在直角方向上相邻(上、下、左、右),则它们被认为是连接的。他相信,他的棋子可以分隔的空位置的连接组件越多,他赢得比赛的机会就越大。\u003c/p\u003e\u003cp\u003e现在给定了某一时刻棋盘的状态。你需要在一个空的交叉点放置一个棋子,并使得放置棋子后分隔的空连接组件数量尽可能大。\u003c/p\u003e"}},{"title":"输入","value":{"format":"HTML","content":"\u003cp\u003e第一行包含两个整数 $$$n$$$ 和 $$$m ~ (1 \\leq n, m \\leq 2000)$$$,表示棋盘的行数和列数。\u003c/p\u003e\u003cp\u003e接下来有 $$$n$$$ 行,每行包含一个长度为 $$$m$$$ 的字符串,表示棋盘上每个位置的状态。字符 \"$$$\\texttt{#}$$$\" 表示被占据的位置,字符 \"$$$\\texttt{.}$$$\" 表示空位置。保证至少有一个位置是空的。\u003c/p\u003e"}},{"title":"输出","value":{"format":"HTML","content":"\u003cp\u003e输出一行,只包含一个整数 - 放置一个棋子到当前棋盘后你可以获得的最大空连接组件数量。\u003c/p\u003e"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e3 3\n#..\n#.#\n..#\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e4 4\n#.##\n.#.#\n...#\n.#.#\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e4\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}},{"title":"注意","value":{"format":"HTML","content":"\u003cp\u003e对于第一个示例,一种可能的方法是将棋子放置在交叉点 $$$(2, 2)$$$(从 $$$1$$$ 开始索引),并获得两个空连接组件。\u003c/p\u003e\u003cp\u003e对于第二个示例,一种可能的方法是将棋子放置在交叉点 $$$(3, 1)$$$,并获得四个空连接组件。\u003c/p\u003e"}}]}