#CF711C. 给树涂色

给树涂色

C. 给树涂色
每次测试时间限制:22
内存限制:256256 兆字节

程序员 ZS 和狒狒 Chris 来到了乌代兰!他们在一片有 nn 棵树的公园里散步,决定调皮地把树涂上颜色。树从左到右编号为 11nn

初始时,第 ii 棵树有颜色 cic_i。ZS 和 Chris 只认识 mm 种不同的颜色,因此 0cim0 \le c_i \le m,其中 ci=0c_i = 0 表示第 ii 棵树尚未涂色。

ZS 和 Chris 决定只给未涂色的树(即 ci=0c_i = 0 的树)涂色。他们可以将每棵树涂成 11mm 中的任意一种颜色。将第 ii 棵树涂成颜色 jj 需要恰好 pi,jp_{i,j} 升油漆。

他们定义涂色方案的美感为:将全部 nn 棵树分成若干连续同色组(每组包含一段连续且颜色相同的树)所需的最小组数。例如,如果树的颜色从左到右为 2,1,1,1,3,2,2,3,1,32, 1, 1, 1, 3, 2, 2, 3, 1, 3,则美感为 77,因为可以分成 77 个连续同色组:$\{2\}, \{1,1,1\}, \{3\}, \{2,2\}, \{3\}, \{1\}, \{3\}$。

ZS 和 Chris 希望给所有未涂色的树涂上颜色,使得最终涂色方案的美感恰好等于 kk。请帮助他们计算出完成任务所需的最小油漆用量(升)。

注意:已经涂色的树不能重新涂色。

输入
第一行包含三个整数 n,m,kn, m, k1kn1001 \le k \le n \le 1001m1001 \le m \le 100)——分别表示树的数量、颜色种数和目标美感。

第二行包含 nn 个整数 c1,c2,,cnc_1, c_2, \dots, c_n0cim0 \le c_i \le m),表示树的初始颜色。若 ci=0c_i = 0 则表示第 ii 棵树未涂色,否则表示第 ii 棵树已有颜色 cic_i

接下来 nn 行,每行包含 mm 个整数。第 ii 行的第 jj 个数表示 pi,jp_{i,j}1pi,j1091 \le p_{i,j} \le 10^9)——将第 ii 棵树涂成颜色 jj 所需的油漆升数。即使对于已经涂色的树,这些值也会给出,但这些树不能被重新涂色。

输出
输出一个整数,表示所需的最小油漆用量。如果不存在美感恰好为 kk 的有效涂色方案,则输出 1-1

示例

输入

3 2 2
0 0 0
1 2
3 4
5 6

输出

10

输入

3 2 2
2 1 2
1 3
2 4
3 5

输出

-1

输入

3 2 2
2 0 0
1 3
2 4
3 5

输出

5

输入

3 2 3
2 1 2
1 3
2 4
3 5

输出

0

说明
在第一个样例中,将树涂成颜色 2,1,12, 1, 1 可以最小化油漆用量,总和为 2+3+5=102 + 3 + 5 = 10。注意 1,1,11, 1, 1 是无效的,因为这种涂色方案的美感为 11(可以将三棵树分成一个同色组 {1,1,1}\{1,1,1\})。

在第二个样例中,所有树都已涂色,但当前涂色方案的美感为 33,因此没有有效的涂色方案,答案为 1-1

在最后一个样例中,所有树都已涂色,且美感恰好等于 kk,因此不需要使用油漆,答案为 00