탁구 팀 줄 세우기

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

문제

자그레브 대학교 학생이 참가하는 탁구 팀 대회가 다음 주 토요일에 열린다. 한 팀은 학생 KK명으로 이루어지고, 참가 신청을 하려는 학생 NN명이 줄을 서 있다.

접수대에서 일하는 크레쇼는 일할 마음이 없어서 학생이 팀을 직접 고르지 못하게 했다. 줄 맨 앞의 KK명이 첫 번째 팀, 그다음 KK명이 두 번째 팀, 그다음 KK명이 세 번째 팀이 되는 식이다. NNKK로 나누어떨어지므로 팀에 들어가지 못하고 남는 학생은 없다.

안테는 학생마다 실력을 정수 하나로 매겨 두었다. 안테는 실력이 가장 낮은 KK명이 첫 번째 팀, 그다음으로 낮은 KK명이 두 번째 팀, 그다음으로 낮은 KK명이 세 번째 팀이 되기를 바란다. 줄의 앞에서 뒤로 갈수록 팀의 실력이 올라가야 한다는 뜻이다. 같은 팀에 들어갈 학생끼리는 줄에서 어떤 순서로 서 있어도 상관없다.

크레쇼가 잠시 쉬러 간 사이에 안테는 줄에 선 학생의 순서를 바꾸기로 했다. 안테는 학생 한 명에게 줄에서 나와 다른 학생 뒤에 다시 서라고 하거나 줄 맨 앞에 서라고 할 수 있고, 한 명을 이렇게 옮기는 데 1분이 걸린다.

크레쇼가 언제 돌아올지 모르니 안테는 목표를 최대한 빨리 이뤄야 한다. 안테가 목표를 이루는 데 필요한 최소 시간을 구하여라.

입력

첫째 줄에 정수 NNKK가 주어진다. (1KN50001 \le K \le N \le 5\,000) NNKK로 나누어떨어진다.

둘째 줄에 정수 v1,v2,,vNv_1, v_2, \dots, v_N이 공백으로 구분되어 주어진다. (1vi1091 \le v_i \le 10^9) viv_i는 줄에서 ii번째에 선 학생의 실력이다.

모든 참가자의 실력은 서로 다르다.

출력

첫째 줄에 필요한 최소 시간을 분 단위로 출력한다.

힌트

학생이 6명이고 KK가 3인 예제에서 안테는 실력이 5, 6, 3인 학생을 줄 맨 앞으로 옮기면 된다. 3분이 걸린다.