Обучение в Ягеллонском университете в Кракове имеет свои плюсы и минусы. Плюсы: Ягеллонский университет. Минусы: Краков... Или, точнее, постоянная необходимость иметь дело с реконструкцией трамвайных путей.
Изначально сеть общественного транспорта состоит из некоторого количества трамвайных линий. Затем одна из них приостанавливается, потом другая, и так далее... Как вы, возможно, знаете, незыблемое правило в Кракове — всегда приостанавливать линию до того, как любая из ранее приостановленных линий возобновит свою работу. Прямо сейчас не все линии (пока что) приостановлены, и вы сидите в трамвае, раздраженный тем, что ваше прямое сообщение с университетом только что исчезло. Вы смотрите в окно и спрашиваете себя: «Действительно ли я самый невезучий пассажир в этом городе? Или есть кто-то еще, кому нужно делать пересадки еще большее количество раз, чтобы добраться туда, куда им нужно?»
Точнее, мы говорим, что остановка $B$ достижима из остановки $A$ с $c$ пересадками, если существуют линии $l_0, \dots, l_c$ такие, что $l_0$ обслуживает остановку $A$, $l_c$ обслуживает остановку $B$, и для каждого $0 \le i < c$ существует некоторая остановка, обслуживаемая как $l_i$, так и $l_{i+1}$. В каждый момент времени вы хотите узнать наибольшее значение $c$, такое что существует пара остановок $(A, B)$, где $B$ достижима из $A$ с $c$ пересадками, и $B$ не достижима из $A$ с $c'$ пересадками для любого $c' < c$.
Заметим, что иногда добраться между парой остановок вообще невозможно. Как следует из определения выше, вы решили не принимать такие пары во внимание в своем анализе — вы заключаете, что если кто-то хочет проехать между такими остановками, он в любом случае воспользуется Uber.
Входные данные
Первая строка входных данных содержит количество тестов $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$ (или наоборот). Такая поездка возможна с использованием линии $2$, а затем линии $1$. Нет пар остановок, требующих $2$ или более пересадок.
После того как линия $1$ удалена, требуются две пересадки, чтобы добраться от остановки $1$ до остановки $3$ (или наоборот).
Когда линии $1$ и $4$ удалены, единственными парами остановок, которые все еще достижимы друг из друга, являются $(1, 4)$ и $(2, 3)$, и в обоих случаях для проезда между ними не требуется пересадок.
Когда линии $1, 4$ и $3$ удалены, единственной парой остановок, которые все еще достижимы друг из друга, является $(1, 4)$. Для проезда между этими остановками пересадки не требуются.