레드 로버

N, S, E, W로 이루어진 길이 100 이하의 경로가 주어질 때, 하나의 매크로 M과 그 정의를 선택적으로 사용하는 메시지의 최소 총 길이를 구한다.

보통6동적 계획법문자열아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

오래된 화성 탐사선 한 대가 임무를 거의 마치고, 화성 표면을 도는 마지막 탐사 명령을 기다리고 있다. 탐사 팀은 경로를 이미 정했고, 마지막 명령을 탐사선에 전송하는 일을 당신에게 맡겼다. 경로는 북, 남, 동, 서 네 방향의 이동을 차례로 나열한 것이고, 각 이동은 N, S, E, W 문자 하나로 전송한다.

문제는 전력이다. 신호를 받을 때마다 탐사선의 전력이 줄어드는데, 남은 양이 이미 위험할 만큼 적다. 다행히 제작진은 경로에 반복이 많을 때를 대비해 매크로 하나를 정의하는 기능을 넣어 두었다. 매크로는 쓰지 않아도 된다.

매크로를 쓰는 메시지는 문자열 두 개로 이루어진다. 첫 번째 문자열은 N, S, E, W, M으로 이루어지며 이동과 매크로 호출(M)을 나열한다. 두 번째 문자열은 N, S, E, W로 이루어지며 M이 펼쳐질 내용을 정한다. 예를 들어

WNMWMME
EEN

는 다음 경로를 나타낸다.

WNEENWEENEENE

매크로를 쓴 쪽은 문자 10개만 보내면 되지만, 원래 경로를 그대로 보내려면 13개가 필요하다.

전송 비용은 보낸 문자의 총 개수, 즉 두 문자열의 길이를 더한 값이다. 매크로를 쓰지 않으면 경로를 그대로 한 번만 보내므로 비용은 경로의 길이와 같다. 경로가 주어질 때 전송에 필요한 최소 문자 개수를 구하라.

입력

첫째 줄에 탐사선으로 전송할 경로가 주어진다. 경로는 N, S, E, W로만 이루어진 문자열이고, 길이는 1 이상 100 이하이다.

출력

경로를 전송하는 데 필요한 최소 문자 개수를 출력한다.