给定一个 $n \times m$ 的网格,其中一些单元格已被阻塞。
你需要计算有多少种方法可以再阻塞两个不同的空闲单元格,使得从 $(1, 1)$ 到 $(n, m)$ 不再存在仅通过向右或向下移动经过空闲单元格的路径。
注意,阻塞 $(1, 1)$ 和 $(n, m)$ 单元格并不被禁止。它们也可能在初始状态下就是被阻塞的。
输入格式
第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 3000$),表示网格的行数和列数。
接下来的 $n$ 行,每行包含 $m$ 个字符。第 $i$ 行的第 $j$ 个字符如果为 '.',则表示单元格 $(i, j)$ 是空闲的;如果为 '*',则表示该单元格已被阻塞。
输出格式
输出一个整数:阻塞两个单元格的方法数,使得从 $(1, 1)$ 到 $(n, m)$ 不再存在仅通过向右或向下移动经过空闲单元格的路径。
样例
样例输入 1
3 3 ... ... ...
样例输出 1
17
样例输入 2
3 3 .** .*. ...
样例输出 2
15
样例输入 3
3 4 **** .... ****
样例输出 3
6
说明
在第一个样例中,如果你阻塞 $(1, 1)$ 或 $(3, 3)$ 以及任何其他单元格,将不会有合法的路径。这样的方法数为 $8 + 8 - 1$。
此外,如果你阻塞 $((1, 2) \text{ 和 } (2, 1))$ 或 $((3, 2) \text{ 和 } (2, 3))$,也不会有合法的路径,因此答案为 $8 + 8 - 1 + 2 = 17$。
在第二个样例中,如果你阻塞任意两个单元格,都不会有路径,因此答案为 $\binom{6}{2} = 15$。
在第三个样例中,初始时从 $(1, 1)$ 到 $(n, m)$ 就没有路径,因此在阻塞任意两个单元格后,依然不会有路径,所以答案为 $\binom{4}{2} = 6$。