마트료시카

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

문제

러시아의 전통 목각 인형인 마트료시카는 안에 점점 작아지는 인형이 겹겹이 들어 있는 인형이다. 마트료시카를 열면 그 안에 더 작은 인형이 들어 있고, 그 인형을 열면 또 그 안에 더 작은 인형이 들어 있으며, 더 이상 안에 인형이 없을 때까지 이 구조가 반복된다.

한 박물관이 겉모습은 비슷하지만 인형 개수는 서로 다른 마트료시카 세트 여러 개를 모아 전시했다. 그런데 아이들이 이 세트들을 모두 분해해 하나의 줄로 늘어놓아 버렸다. 이제 줄에는 인형 nn개가 한 줄로 놓여 있고(각 인형의 크기는 정수로 나타낸다), 원래 세트가 몇 개였는지, 각 세트에 인형이 몇 개씩 들어 있었는지는 알 수 없다. 확실한 것은, 완전한 마트료시카 세트 하나에 들어 있는 인형들의 크기가 항상 11부터 어떤 정수 mm까지의 연속한 정수라는 사실뿐이다. 물론 mm은 세트마다 다를 수 있다.

이제 줄에 놓인 인형들을 다시 완전한 세트들로 재조립해야 한다. 재조립할 때는 다음 규칙을 지켜야 한다.

  • 작은 인형 안에 그보다 큰 인형을 넣을 수 없다.
  • 두 그룹(부분적으로 조립된 인형 묶음)을 합치려면, 두 그룹이 줄에서 서로 인접해 있어야 한다.
  • 인형이 어떤 그룹에 한 번 들어가면, 그 그룹을 다른 그룹과 합칠 때를 제외하고는 다른 그룹으로 옮기거나 따로 분리할 수 없다.

작업이 오래 걸릴수록 손해이므로, 인형을 여는 횟수를 최소로 해야 한다. 여기서는 인형을 열고 닫는 데 드는 시간만 고려하므로, 여는 횟수만 최소화하면 된다. 두 그룹을 합칠 때 필요한 최소 여는 횟수의 예를 들면 다음과 같다. 그룹 [1,2,6][1, 2, 6][4][4]를 합칠 때 필요한 최소 여는 횟수는 22이다. 크기 66인 인형과 크기 44인 인형을 열어야 하기 때문이다. 그룹 [1,2,5][1, 2, 5][3,4][3, 4]를 합칠 때 필요한 최소 여는 횟수는 33이다.

분해된 마트료시카들을 완전한 세트들로 다시 조립하기 위해 인형을 여는 최소 횟수를 구하여라.

입력

첫째 줄에 줄로 놓인 인형의 개수 nn이 주어진다 (1n5001 \le n \le 500).

둘째 줄에 각 인형의 크기가 줄에 놓인 순서대로 공백으로 구분되어 주어진다. 각 크기는 11 이상 500500 이하의 정수이다.

출력

인형들을 완전한 마트료시카 세트들로 다시 조립하기 위해 인형을 여는 최소 횟수를 출력한다. 재조립이 불가능하면(일부 인형을 도난당했을 수도 있다) impossible을 출력한다.