Hide

Problem C
Inspeção de Esteiras

Languages en pt

Uma empresa que fabrica esteiras transportadoras mantém $n \cdot m$ esteiras em um galpão que pode ser representado por uma matriz de $n$ linhas e $m$ colunas. Cada esteira ocupa exatamente uma posição da matriz e pode estar virada para o norte (N), sul (S), leste (E) ou oeste (W).

Se um objeto está na posição $(i, j)$ da matriz em $1$ segundo estará na posição $(i-1, j)$ se a esteira na posição inicial aponta para o norte, $(i+1, j)$ se aponta para o sul, $(i, j-1)$ se aponta para o leste e $(i, j+1)$ se aponta para o oeste. Note que essa nova posição pode estar fora da matriz, nesse caso o objeto sai dela.

João está estagiando como inspetor de esteiras e precisa inspecionar todas as esteiras que ele tem. Como é seu primeiro estágio, João não faz ideia do que está fazendo e decide coletar dados insignificantes para avaliar uma esteira.

Vamos chamar de $f(x)$ o tempo em segundos que um objeto colocado na esteira $x$ demora até sair da matriz ou visitar uma esteira que ele já visitou anteriormente. João quer saber a soma de $f(x)$ para todas as esteiras.

João é muito preguiçoso e não se deu ao trabalho nem de simular o processo nem de escrever um programa que simula. Ajude João a encontrar o valor que precisa.

Input

A primeira linha do input contém dois inteiros, $n$ e $m$ ($1 \leq n, m \leq 10^3$), o número de linhas e o número de colunas da matriz, respectivamente.

Seguirão $n$ linhas. A $i$-ésima linha contém $m$ letras. A $j$-ésima letra pode ser N, S, E ou W, e representa a direção em que a esteira na posição $(i, j)$ está apontando.

Output

Imprima um único inteiro, a soma de $f(x)$ para todas as $n \times m$ esteiras.

Sample Input 1 Sample Output 1
1 3
WWW
6
Sample Input 2 Sample Output 2
3 3
EES
NNS
NWW
73
Sample Input 3 Sample Output 3
3 3
ESN
NWW
NNW
38

Please log in to submit a solution to this problem

Log in