EduBrick

M. Робинзон и крокодилы

3000 мс · 256 МБ · всё или ничего

На острове размером n×mn \times m спят крокодилы. Каждый крокодил, если его напугать, бежит строго в свою сторону — на север, юг, запад или восток — пока не окажется в воде за краем острова.

Если на пути напуганного крокодила окажется другой крокодил, они столкнутся и нападут на Робинзона. Поэтому пугать можно только того, у кого путь до воды свободен. Крокодилы пугаются по одному: следующий орех летит, только когда предыдущий уже в воде.

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

Прямое моделирование «пройти по всем и проверить путь» слишком медленно. Заметьте, что путь крокодила свободен ровно тогда, когда в его направлении нет ближайшего крокодила; а когда крокодил уходит, освободиться может только тот, кто смотрел на него. Это очередь, как в обходе в ширину.

Формат ввода

Первая строка содержит числа nn и mm (1≤n,m≤10001 \le n, m \le 1000).

Далее идут nn строк по mm символов: . — пусто, N, S, E, W — крокодил и его направление.

Формат вывода

Одно число — наибольшее количество прогнанных крокодилов.

Примеры

ввод
5 7
.......
...S...
..WE...
...N...
.......
вывод
2
ввод
2 2
ES
NW
вывод
0
Войдите, чтобы отправлять решения.