수열 변환
면접 대비시간 제한2초메모리 제한512 MB
음이 아닌 정수 수열이 주어질 때, 어떤 위치에서 1,2,...,h가 연속으로 나타나도록 만들기 위해 필요한 최소 증가 연산 횟수를 구하거나 불가능하면 -1을 출력한다.
문제
수학 선생님은 콜랴를 매우 싫어해서 항상 그를 칠판 앞으로 불러 가장 어려운 문제를 풀게 한다.
오늘도 선생님은 칠판에 음이 아닌 정수 개로 이루어진 수열 을 적고 콜랴를 칠판으로 불렀다. 선생님은 콜랴가 한 번의 행동으로 임의의 수 하나를 지우고 그 자리에 1 더한 수를 적는 것을 허락한다. 선생님은 콜랴에게 최소한의 행동으로 이 수열 어딘가에 1부터 까지의 수가 연속으로 나타나도록 만들라고 요구한다.
콜랴가 어떤 에 대해 , , ..., 가 되도록 만드는 데 필요한 최소 행동 수를 구하거나, 그것이 불가능하여 선생님이 불쌍한 콜랴를 또 마음대로 괴롭히는 경우를 알아내자.
입력
입력 파일의 첫째 줄에는 두 자연수 과 가 주어진다 (). 둘째 줄에는 적힌 수열의 원래 값 개가 주어진다 ().
출력
출력 파일의 한 줄에 콜랴가 과제를 수행할 수 있는 최소 행동 수를 출력하거나, 수행할 수 없으면 을 출력한다.
힌트
첫 번째 예에서 콜랴는 세 번째 수를 두 번 1씩 증가시키고 네 번째 수를 한 번 증가시켜야 한다. 그러면 수열은 1, 1, 2, 3이 되고 에 대해 조건이 성립한다.
두 번째 예에서는 수열에 1과 2가 연속으로 나타나게 할 수 없다.