러시아의 전통 목각 인형인 마트료시카는 안에 점점 작아지는 인형이 겹겹이 들어 있는 인형이다. 마트료시카를 열면 그 안에 더 작은 인형이 들어 있고, 그 인형을 열면 또 그 안에 더 작은 인형이 들어 있으며, 더 이상 안에 인형이 없을 때까지 이 구조가 반복된다.
한 박물관이 겉모습은 비슷하지만 인형 개수는 서로 다른 마트료시카 세트 여러 개를 모아 전시했다. 그런데 아이들이 이 세트들을 모두 분해해 하나의 줄로 늘어놓아 버렸다. 이제 줄에는 인형 n개가 한 줄로 놓여 있고(각 인형의 크기는 정수로 나타낸다), 원래 세트가 몇 개였는지, 각 세트에 인형이 몇 개씩 들어 있었는지는 알 수 없다. 확실한 것은, 완전한 마트료시카 세트 하나에 들어 있는 인형들의 크기가 항상 1부터 어떤 정수 m까지의 연속한 정수라는 사실뿐이다. 물론 m은 세트마다 다를 수 있다.
이제 줄에 놓인 인형들을 다시 완전한 세트들로 재조립해야 한다. 재조립할 때는 다음 규칙을 지켜야 한다.
작업이 오래 걸릴수록 손해이므로, 인형을 여는 횟수를 최소로 해야 한다. 여기서는 인형을 열고 닫는 데 드는 시간만 고려하므로, 여는 횟수만 최소화하면 된다. 두 그룹을 합칠 때 필요한 최소 여는 횟수의 예를 들면 다음과 같다. 그룹 [1,2,6]과 [4]를 합칠 때 필요한 최소 여는 횟수는 2이다. 크기 6인 인형과 크기 4인 인형을 열어야 하기 때문이다. 그룹 [1,2,5]와 [3,4]를 합칠 때 필요한 최소 여는 횟수는 3이다.
분해된 마트료시카들을 완전한 세트들로 다시 조립하기 위해 인형을 여는 최소 횟수를 구하여라.
첫째 줄에 줄로 놓인 인형의 개수 n이 주어진다 (1≤n≤500).
둘째 줄에 각 인형의 크기가 줄에 놓인 순서대로 공백으로 구분되어 주어진다. 각 크기는 1 이상 500 이하의 정수이다.
인형들을 완전한 마트료시카 세트들로 다시 조립하기 위해 인형을 여는 최소 횟수를 출력한다. 재조립이 불가능하면(일부 인형을 도난당했을 수도 있다) impossible을 출력한다.