A. Стрелочки
ограничение по времени на тест
1.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас в распоряжении табло размера n на m пикселей. Каждый пиксель может быть либо включён, либо выключен. Табло будет использоваться для отображения стрелок, указывающих направление движения. Всего есть четыре направления: вверх, вниз, влево и вправо.

Рассмотрим как устроена стрелка, указывающая вверх: вертикальный отрезок высотой в b пикселей, из которого сверху вниз под углом в 45 градусов, выходят два отрезка из a пикселей. Стрелки для остальных направлений можно получить поворотами на 90 градусов.

Например, так выглядят стрелки для всех направлений с параметрами a = 3 и b = 7

вверхвнизвлевовправо
...*......*.................
..***.....*.....*........*..
.*.*.*....*....*..........*.
...*......*...**************
...*....*.*.*..*..........*.
...*.....***....*........*..
...*......*.................

При этом, параметры стрелки должны обладать следующими ограничениями:

 — 2a ≤ b;

 — 2 ≤ a.

К сожалению, в табло, которое вам досталось, присутствуют битые пиксели, которые нельзя включать.

Для каждого направления вам нужно посчитать количество различных стрелок, которые можно отобразить на данном табло. Две стрелки с параметрами (a1, b1) и (a2, b2) считаются одинаковыми, если a1 = a2 и b1 = b2.

Входные данные

Первая строка содержит целые числа n и m — размеры табло (1 ≤ n, m ≤ 1 500).

Следующие n строк содержат по m символов: «.» означает битый пиксель, а «*» рабочий.

Выходные данные

Выведите четыре числа — количество различных стрелочек, которые возможно отобразить на данном табло для верхнего, нижнего, левого и правого направлений соответственно.

Примеры
Входные данные
5 7
...*...
.***.*.
*******
.*****.
...*...
Выходные данные
1
2
5
4
Входные данные
6 6
***.**
*.**.*
****.*
******
**.***
.***.*
Выходные данные
1
1
4
2
Входные данные
5 5
..*..
.***.
*.*.*
..*..
..*..
Выходные данные
2
0
0
0
Входные данные
4 4
****
****
****
****
Выходные данные
1
1
1
1