迷宫可以表示为一个 $r$ 行 $c$ 列的矩形。迷宫中的每个单元格要么是墙,要么是空地。题目保证第一行第一列的单元格和第 $r$ 行第 $c$ 列的单元格是空地。
如果两个空地单元格共享一条边(即一个坐标相同,另一个坐标相差 1),则可以在它们之间移动。不允许移动到有墙的单元格中。
Maria 计划移除恰好两堵墙,并将它们替换为空地。她有多少种选择两堵不同墙进行移除的方法(移除顺序无关紧要),使得移除后存在一条仅由空地组成的从单元格 $(1, 1)$ 到单元格 $(r, c)$ 的路径?
如果两种移除两堵墙的方法中,至少有一堵墙在一种方法中被移除而在另一种方法中未被移除,则这两种方法被视为不同。
输入格式
第一行包含两个整数 $r$ 和 $c$ ($1 \le r, c \le 500$)。接下来的 $r$ 行每行包含 $c$ 个字符,描述了迷宫。字符 ‘X’ 代表墙,字符 ‘.’ 代表空地。题目保证第一行第一列的单元格和最后一行最后一列的单元格是空地。
输出格式
输出一个整数:移除恰好两堵墙使得从单元格 $(1, 1)$ 到单元格 $(r, c)$ 之间存在路径的方法总数。
样例
样例输入 1
3 5 ..X.. .XX.. ..XX.
样例输出 1
7
样例输入 2
3 2 .. X. ..
样例输出 2
0