팬케이크 쌓기

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

지용이는 팬케이크를 잘 굽는 제빵사다. 어느 날 지용이는 크기가 모두 다르고 앞뒤 구분이 있는 팬케이크를 NN개 구웠다. 이 NN개의 크기를 작은 것부터 나열하면 1,2,,N1, 2, \dots, N이다. 지용이는 아무 생각 없이 구운 순서의 역순으로 팬케이크를 쌓았기 때문에, 쌓인 순서가 크기 순이 아닐 수도 있다. 지용이는 최소 횟수의 뒤집기로 위로 갈수록 크기가 작아지고 모든 팬케이크가 앞면을 위로 향한 상태를 만들고 싶다.

뒤집기는 다음과 같다. 1iN1 \le i \le Nii를 하나 골라 위에서부터 ii번째까지의 팬케이크를 통째로 떠서 뒤집는다. 그러면 그 ii개의 순서가 완전히 거꾸로 되고 앞뒤도 함께 바뀐다. 예를 들어 위에서부터 1(+) 2(+) 3(+) 4(+) 5(+)로 쌓여 있을 때 i=3i = 3을 고르면 3(-) 2(-) 1(-) 4(+) 5(+)가 된다. 여기서 +는 앞면이 위를 향한 상태, -는 뒷면이 위를 향한 상태를 뜻한다.

지용이를 도와 필요한 뒤집기의 최소 횟수를 구하라.

입력

첫째 줄에 팬케이크의 개수 NN이 주어진다. (1N61 \le N \le 6)

다음 NN개의 줄에는 쌓여 있는 팬케이크를 위에서부터 차례로 하나씩, 크기와 현재 방향이 공백으로 구분되어 주어진다. 방향은 앞면이 위를 향하면 +, 뒷면이 위를 향하면 -다. 크기는 11부터 NN까지의 수가 각각 정확히 한 번 나타난다.

출력

조건을 만족시키는 뒤집기의 최소 횟수를 한 줄에 출력한다.