Statement
개의 단위 칸으로 이루어진 종이띠가 있다. 칸은 왼쪽부터 번이다. 칸 와 칸 사이를 번 경계라고 하며, 번 경계에는 비용 가 적혀 있다.
처음에는 모든 칸이 하나의 종이 조각을 이룬다. 다음 작업을 반복한다.
- 두 개 이상의 칸을 포함하는 현재 종이 조각 하나를 고른다.
- 그 조각 내부의 아직 자르지 않은 경계 하나를 골라 조각을 두 부분으로 자른다.
- 자르기 직전 종이 조각의 칸 수가 홀수였다면 이 절단은 붉은 절단이다. 번 경계에서 붉은 절단이 발생하면 의 비용을 지불한다.
- 자르기 직전 종이 조각의 칸 수가 짝수였다면 비용을 지불하지 않는다.
모든 칸이 각각 하나의 종이 조각이 될 때까지 총 번 잘라야 한다.
붉은 절단이 정확히 번 발생하도록 자르는 방법 중 지불하는 비용 합의 최솟값을 구하여라. 그러한 방법이 없다면 -1을 출력하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
각 케이스는 다음과 같은 형식으로 주어진다.
Output
각 테스트 케이스마다 붉은 절단이 정확히 번 발생할 때의 최소 비용을 한 줄에 출력한다. 그러한 절단 순서가 존재하지 않으면 -1을 출력한다.
Constraints
- .
- .
- .
- ().
- 모든 테스트 케이스에 대한 의 합은 이하이다.
Subtasks
Samples
입력
2
9 2
9 1 8 2 3 4 7 10
6 3
1 1 1 1 1
출력
5
-1
첫 번째 테스트 케이스에서는 경계 와 를 붉게 만들 수 있으며 비용은 이다. 두 번째 테스트 케이스에서는 붉은 절단이 최대 두 번만 발생할 수 있다.