在克拉科夫的雅盖隆大学学习有利有弊。优点:雅盖隆大学。缺点:克拉科夫……或者更准确地说,必须不断应对电车轨道的重建。
最初,公共交通网络由若干条电车线路组成。接着其中一条线路停运,然后是另一条,再然后又是一条……正如你所知,克拉科夫的一条铁律是:在之前停运的线路恢复运营之前,必须先停运另一条线路。目前,并非所有线路都已停运,而你正坐在电车上,因为你前往大学的直达线路刚刚消失而感到恼火。你望向窗外,问自己:“我真的是这座城市里最倒霉的乘客吗?还是说,在某个地方,有人为了到达目的地需要换乘更多的次数?”
更准确地说,如果存在线路 $l_0, \dots, l_c$,使得 $l_0$ 经过站点 $A$,$l_c$ 经过站点 $B$,且对于每个 $0 \le i < c$,都存在一个站点同时被 $l_i$ 和 $l_{i+1}$ 经过,则称站点 $B$ 可以从站点 $A$ 通过 $c$ 次换乘到达。在任何时间点,你都想知道 $c$ 的最大值,使得存在一对站点 $(A, B)$,其中 $B$ 可以从 $A$ 通过 $c$ 次换乘到达,且对于任何 $c' < c$,$B$ 都不能从 $A$ 通过 $c'$ 次换乘到达。
注意,有时在某些站点对之间根本无法通行。根据上述定义,你决定在分析中不考虑这些站点对——你认为如果有人希望在这些站点之间旅行,他们无论如何都会选择打车。
输入格式
第一行包含测试用例的数量 $z$ ($1 \le z \le 35$)。接下来是各测试用例的描述。
每个测试用例的第一行包含站点数量 $n$ 和电车线路数量 $k$ ($2 \le n, k \le 750$)。站点编号为 $1$ 到 $n$,线路编号为 $1$ 到 $k$。
接下来 $k$ 行,第 $i$ 行描述第 $i$ 条电车线路的路线。每行以一个整数 $r_i$ ($2 \le r_i \le n$) 开头,后跟 $r_i$ 个不同的整数 $a_{i,j}$ ($1 \le a_{i,j} \le n$),表示第 $i$ 条电车线路经过的站点标识符。任何电车线路均双向运行。
下一行包含一个整数 $s$ ($1 \le s \le k - 1$)。
接下来 $s$ 行,描述电车线路停运的顺序。每行包含一个整数 $s_i$ ($1 \le s_i \le k$),表示停运的电车线路标识符。每条线路最多停运一次。
所有测试用例中 $n$ 和 $k$ 的总和均不超过 $1000$。
输出格式
对于每个测试用例,输出 $s + 1$ 行,每行包含一个整数。第 $i+1$ 行应表示在第 $i$ 次停运事件后(第一行表示没有任何停运时的答案)所需的最多换乘次数。
样例
输入 1
1 5 4 3 1 3 5 2 1 4 2 2 3 2 2 4 3 1 4 3
输出 1
1 2 0 0
说明
最初,例如从站点 4 到站点 5(反之亦然)需要 1 次换乘。这种旅行可以通过先乘坐 2 号线,再乘坐 1 号线来实现。不存在需要 2 次或更多次换乘的站点对。
在 1 号线停运后,从站点 1 到站点 3(反之亦然)需要 2 次换乘。
当 1 号线和 4 号线停运时,仍然可以相互到达的站点对只有 $(1, 4)$ 和 $(2, 3)$,在这两种情况下,它们之间旅行都不需要换乘。
当 1 号线、4 号线和 3 号线停运时,仍然可以相互到达的站点对只有 $(1, 4)$。在这些站点之间旅行不需要换乘。