C. 一起来建地铁

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

南京共有 n 条地铁线路和 m 个地铁站点。每条线路的地铁都在地下以某一固定的深度运行,而如果某深度为 i 的地铁经过了地铁站 j ,那么地铁站 j 就要在深度为i的地方挖一个站台作为上下客口,开挖该上下客口的花费为 ai,j

我们忽略建设上下客口通向地面的通道的费用,而只考虑在该深度建上下客口的花费。显而易见,对于线路 u 和线路 v,如果他们都经过了同一个地铁站,那么他们线路不能处在同一深度,否则两线地铁将会相撞。

而如果 u 和 v 不存在任何一个相同的经过站点,那么这两条线既可以处在同一高度,也可以不处在同一高度。

在这个问题中,你可以认为任何两个地铁不会在除了站点以外的行驶途中相遇,也即你无需考虑两个地铁因为行驶线路交叉而在两站点之间相遇的情况。

将站点从 1 至 m 编号,线路从 1 至 n 编号,现在给定你 n 条线路的经过站点列表和在每个站点的每个深度的建站花费,请你求出让所有的地铁正常运行的最小建站花费总和。

输入格式

第一行有两个整数,分别表示地铁线路的数量 n 和站点个数 m。 第 2 到第 (n+1) 行,每行 m 个整数,第 (i+1)行的第 j 个整数表示 ai,j。 第 (n+2) 行到第 (2n+1)行,每行若干个整数,第 (n+i+1)行表示地铁 i 号线的运行线路信息:

每行首先有一个整数 c,表示该线经过的站点个数,接下来该行有 c 个互不相同的整数 u,依次表示该地铁经过的站点编号。

输出格式

输出一行一个整数表示答案。

样例

输入

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

输出

10

样例说明

1 号线和 2 号线都经过了站点 1,因此他们不能处于同一深度。 令 1 号线在深度 2 运行,2 号线在深度 1 运行,则需要修建站点 1 的深度 1 、 2 的上下客口(花费为 4+4=8),站点 2 的深度为 2 的上下客口(花费为 1),站点 3 的深度为 1 的上下客口(花费为 1),总花费为 10。可以证明,这是最优的方案。

数据范围与提示

对于 100% 的数据,保证 1≤n≤14,1≤m≤10^5,1≤ai,j≤10^9,1≤c,u≤m。