물컵 비우기

N개의 잔과 잔 사이를 옮기는 비용이 주어질 때, 물이 담긴 잔을 K개 이하로 남기는 최소 비용을 구한다.

보통6동적 계획법그래프비트 연산최단 경로아직 제출이 없습니다시간 제한2초메모리 제한32 MB

문제

미슬라브는 부피가 무한한 컵을 NN개 가지고 있고, 각 컵에는 물이 조금씩 들어 있다. 미슬라브는 물을 모두 마시고 싶지만, 컵을 KK개보다 많이 쓰고 싶지는 않다. 미슬라브가 할 수 있는 일은 한 컵에 든 물을 전부 다른 컵으로 옮겨 붓는 것뿐이다.

컵마다 미슬라브에게서 떨어진 거리가 달라서 어느 컵을 고르는지가 중요하다. ii번 컵의 물을 jj번 컵으로 옮기는 데 드는 힘은 CijC_{ij}이다.

물이 남아 있는 컵이 KK개 이하가 되도록 물을 옮길 때, 드는 힘의 합의 최솟값을 구하여라.

입력

첫째 줄에 정수 NNKK가 주어진다. (1KN201 \le K \le N \le 20)

다음 NN개 줄에는 정수가 NN개씩 주어진다. ii번째 줄의 jj번째 수가 CijC_{ij}이다. (0Cij1000000 \le C_{ij} \le 100000) 모든 ii에 대해 Cii=0C_{ii} = 0이다.

출력

미슬라브가 목표를 이루는 데 드는 힘의 합의 최솟값을 한 줄에 출력한다.

힌트

물이 든 컵이 처음부터 KK개 이하이면 물을 옮길 필요가 없고, 답은 0이다.

물은 여러 컵을 거쳐 갈 수 있다. ii번 컵의 물을 jj번 컵으로 옮긴 뒤, jj번 컵의 물을 다시 kk번 컵으로 옮겨도 된다.