问题 L: 彩色树

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:41 通过:22

题目描述

    狒狒来到公园里散步,他打算做一件有趣的事情:给公园里的树涂上颜色。树从左到右用1到n的整数编号。

    最初,第i颗树的颜色是ci。编码员ZS和狒狒只能识别m种不同的颜色. 0≤ci≤m,其中ci=0表示树i是未着色的。
     狒狒决定只给未上色的树(ci=0的树)上色。他们可以用从1到m的m种颜色中任选一种颜色j给第i棵树上色,上色正好需要pi,j 升颜料。
      狒狒将 “树的颜值” 定义为:最小连续相同组的数量(每组包含一些树的子段,组内每颗树的颜色相同)。例如,如果树的颜色从左到右为2,1,1,1,3,2,2,3,1,3,那么“树的颜值”是7,因为我们可以将树划分为7个连续的相同颜色的组:{2},{1,1,1},{3},{2,2},{3},{1},{3}。
     狒狒想要给所有未着色的树上色,这样着色的颜值就正好是k。他们需要你的帮助来确定完成这项工作所需的最小油漆量(以升为单位)。
    请注意,朋友们不能给已经上色的树上色.

输入格式

第一行包含三个整数,n、m和k(1≤k≤n≤100,1≤m≤100)--分别是树的数量、颜色的数量和颜值 

第二行包含n个整数c1, c2, ..., cn (0 ≤ ci ≤ m), 即树的初始颜色。如果第i棵树没有着色,ci等于0,否则第i棵树有ci的颜色。 

然后有n行。每行包含m个整数。其中第i行的第j个数字表示pi, j(1≤pi, j≤109)--朋友们为第i棵树涂上颜色j所需的升数。

输出格式

打印一个整数,即为树着色所需的最小涂料量。如果没有有效的树的值k,打印-1。



Examples
Input
3 2 2
0 0 0
1 2
3 4
5 6
Output
10
Input
3 2 2
2 1 2
1 3
2 4
3 5
Output
-1
Input
3 2 2
2 0 0
1 3
2 4
3 5
Output
5
Input
3 2 3
2 1 2
1 3
2 4
3 5
Output
0
在第一个示例案例中,用颜色2,1,1给树上色可以使使用的油漆量最小化,等于2+3+5=10。请注意,1,1,1是无效的,因为这种颜色的美等于1({1,1,1}是一种将树分组为相同颜色的一组的方法)。

在第二个例子中,所有的树都上色了,但上色的漂亮程度是3,所以没有有效的上色,答案是-1。 

在最后一个例子中,所有的树都上色了,而且上色的美丽程度与k相匹配,所以没有使用油漆,答案是0。 


输入样例 复制

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

输出样例 复制

10