울타리 문 만들기

최대 1000칸의 이동 경로가 만든 닫힌 영역 수를 세어 각 영역에 문 하나씩 내면 전체 목장을 연결합니다.

보통6BFS그래프시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

농부 John은 농장 일부를 둘러싸는 새 울타리를 세우기로 했다. 그런데 걷는 내내 정신이 팔린 탓에 울타리는 계획보다 훨씬 이상한 모양이 되고 말았다.

John은 (0,0)(0, 0)에서 출발해 NN번 움직인다. 한 번 움직일 때마다 북, 남, 동, 서 중 한 방향으로 한 칸 이동하고, 지나온 자리에 길이 1짜리 울타리를 놓는다. 첫 걸음이 북쪽이면 (0,0)(0, 0)에서 (0,1)(0, 1)까지 울타리 한 칸이 놓인다. 같은 점을 여러 번 지날 수도 있고, 같은 구간에 울타리를 여러 번 놓을 수도 있다. 이미 세운 울타리를 가로질러 걸어갈 수도 있다.

울타리를 다 세운 John은 농장이 여러 구역으로 갈라졌을 수 있다는 사실을 알아차렸다. 한 구역에서 다른 구역으로 가려면 울타리를 넘어야 하는 것이다. John은 문을 달아 이 문제를 해결하려 한다. 문은 그가 세운 길이 1짜리 울타리 구간 아무 곳에나 달 수 있고, 그 구간의 양쪽을 오갈 수 있게 해 준다.

모든 구역이 서로 오갈 수 있으려면 문을 최소 몇 개 달아야 하는지 구하여라.

입력

첫째 줄에 NN이 주어진다 (1N10001 \le N \le 1000).

둘째 줄에 John의 이동 경로를 나타내는 길이 NN인 문자열이 주어진다. 각 문자는 N(북), E(동), S(남), W(서) 중 하나이다.

출력

농장 전체를 다시 하나로 잇는 데 필요한 문의 최소 개수를 정수 하나로 출력한다. 처음부터 이어져 있었다면 0을 출력한다.