Mirko 拿到了他的驾照!为了庆祝这一欢乐的时刻,他的父母给他买了他的第一辆车:一辆怪兽卡车!Mirko 发现,虽然在交通拥堵时拥有一辆可以压扁其他所有车辆的车很爽,但要停放一辆尺寸相当于 4 辆普通轿车大小的车可能会有点棘手。
他的朋友 Slavko 在城市泊车公司兼职。他定期给 Mirko 发送一张标有已占用停车位的城市地图。该地图可以表示为一个具有 $R$ 行 $C$ 列的表格。每个单元格可以包含一栋建筑物(符号 #)、一辆已停放的汽车(符号 X)或一个空闲停车位(符号 .)。怪兽卡车非常庞大,具体来说,它需要占据 $2 \times 2$ 个单元格。
请帮助 Mirko 计算可能的停车位数量,并按照他为了停车而需要压扁的汽车数量进行分组。我们只关心 Mirko 在停车位上压扁的汽车数量,而不关心他在开过去的过程中压扁的汽车数量。然而,Mirko 不能把车停在建筑物上。即使是怪兽卡车也大到无法压扁建筑物!
输入格式
输入的第一行包含两个整数 $R$ 和 $C$($2 \le R, C \le 50$),表示地图的行数和列数。
接下来的 $R$ 行,每行包含 $C$ 个字符。输入中只会出现字符 #、X 和 .。请注意,X 始终为大写。
输出格式
输出包含五行,分别表示 Mirko 在满足以下条件时可以停放的停车位总数:
- 压扁 0 辆车(第一行)
- 压扁 1 辆车(第二行)
- 压扁 2 辆车(第三行)
- 压扁 3 辆车(第四行)
- 压扁 4 辆车(第五行)
样例
输入样例 1
4 4 #..# ..X. ..X. #XX#
输出样例 1
1 1 2 1 0
输入样例 2
4 4 .... .... .... ....
输出样例 2
9 0 0 0 0
输入样例 3
4 5 ..XX. .#XX. ..#.. .....
输出样例 3
2 1 1 0 1