你现在为一家电子游戏公司工作——这是每个程序员的梦想!你正在开发一款多人游戏,玩家需要合作进入迷宫,并尽可能快地吃掉所有的“点”。每位玩家从不同的入口进入迷宫。迷宫是随机生成的,因此吃掉所有点所需的最少玩家数量可能会有所不同,而且有些点可能根本无法到达。
你正在质量控制部门工作,负责分析这些随机生成的迷宫。为了进行分析,迷宫以文本形式表示。X 是不可逾越的墙。字母 A 到 W 是入口。玩家只能向上、下、左、右移动。玩家可以穿过空格和点;经过一个点时会将其吃掉。如果两个入口相邻,玩家不能从一个入口直接移动到另一个入口。例如:
XXXXXXXAXXXXXXXBXXXX X.. ..X.X...... ...X X.XXX...X.X.XXXXXX.X X.X.XXXXX.X.X....X.X X.X... ...X.X.XX.X.X X.X.X.XXXXXXX.XX.X.X X.X.X.X...X...X....X X.X.X.XXXXXXX.XXXX.X X...X.X X.. ..X..X.X XXXXXXXDXXXXXXXXCXXX
所有可到达的点都可以从入口 A 和 C(或者等价地,B 和 C)到达。有三个点是无法到达的。
计算吃掉所有可到达的点所需的最少玩家数量,以及有多少个点因为被墙围住而无法到达。
输入格式
第一行包含两个整数 $n$ 和 $m$ ($3 \le n, m \le 100$),其中 $n$ 是迷宫的行数,$m$ 是列数。
接下来的 $n$ 行,每行包含一个长度恰好为 $m$ 的字符串,仅由大写字母 A 到 X、空格或句点组成。这就是迷宫。迷宫的边界(第 $1$ 行和第 $n$ 行,第 $1$ 列和第 $m$ 列)保证仅由大写字母 A 到 X 组成。迷宫中间没有入口(A 到 W)。
输出格式
输出一行,包含两个用空格分隔的整数。第一个整数是吃掉所有可到达的点所需的最少入口数量(如果没有任何点可到达,则为 $0$),第二个整数是无法到达的点数量。
样例
样例输入 1
10 20 XXXXXXXAXXXXXXXBXXXX X.. ..X.X...... ...X X.XXX...X.X.XXXXXX.X X.X.XXXXX.X.X....X.X X.X... ...X.X.XX.X.X X.X.X.XXXXXXX.XX.X.X X.X.X.X...X...X....X X.X.X.XXXXXXX.XXXX.X X...X.X X.. ..X..X.X XXXXXXXDXXXXXXXXCXXX
样例输出 1
2 3
样例输入 2
3 5 XDRVX X.X.X XXXXX
样例输出 2
2 0
样例输入 3
3 5 NAQXX X X.X XXXXX
样例输出 3
0 1