피라미드
시간 제한1초메모리 제한1024 MB
삼각형 블록 피라미드에서 같은 행의 두 블록을 교환하는 연산만으로 맞닿은 블록의 색이 모두 다르게 만드는 최소 교환 횟수를 구하거나, 불가능하면 -1을 출력한다.
문제

가지 색상의 블록으로 이루어진 블록 피라미드가 있다. 피라미드는 행으로 이루어져 있고, 행은 개의 블록으로 이루어져 있다.
또한, 행의 번째 블록을 로 표현했을 때, 는 아래와 같은 조건에 의해 최대 개의 다른 블록과 맞닿아 있다.
- 이고 라면, 와 맞닿아 있다.
- 이고 라면, 와 맞닿아 있다.
- 라면, 와 맞닿아 있다.
- 라면, 와 맞닿아 있다.
- 라면, , 와 맞닿아 있다.
당신은 아름다운 블록 피라미드를 만들기 위해, 피라미드의 맞닿아 있는 블록의 색상이 같은 경우가 없도록 블록들을 재배치하고 싶다. 당신이 할 수 있는 연산은 아래 한 가지 뿐이다.
- 행의 블록 개를 골라 교환한다.
이 때, 목표를 이루기 위한 연산 사용 횟수의 최솟값을 출력하라.
입력
첫 번째 줄에 정수 이 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 블록 피라미드의 각 행의 상태가 주어진다. 번째 줄에는 블록 피라미드의 행을 이루는 블록 개의 색상 정보가 공백을 사이에 두고 주어진다. 색상 정보는 , 또는 의 정수이며, 각각 가지의 다른 색상을 표현한다.
출력
피라미드의 맞닿아 있는 블록의 색깔이 같은 경우가 없도록 하기 위한 연산 사용 횟수의 최솟값을 출력하라. 해당 연산만으로 목표를 이루는 것이 불가능하다면 -1을 출력하라.