Метро

Метрополитен состоит из нескольких линий метро. Все станции метро в городе пронумерованы натуральными числами от 1 до $N$. На каждой линии расположено несколько станций. Если одна и та же станция расположена сразу на нескольких линиях, то она является станцией пересадки и на этой станции можно пересесть с любой линии, которая через нее проходит, на любую другую (опять же проходящую через нее).

Напишите программу, которая по данному вам описанию метрополитена определит, с каким минимальным числом пересадок можно добраться со станции $A$ на станцию $B$. Если данный метрополитен не соединяет все линии в одну систему, то может так получиться, что со станции $A$ на станцию $B$ добраться невозможно, в этом случае ваша программа должна это определить.

Входные данные

Сначала вводится число $N$ — количество станций метро в городе (2≤$N$≤100). Далее следует число $M$ — количество линий метро (1≤$M$≤20). Далее идет описание $M$ линий. Описание каждой линии состоит из числа $P_i$ — количество станций на этой линии (2≤$P_i$≤50) и $P_i$ чисел, задающих номера станций, через которые проходит линия (ни через какую станцию линия не проходит дважды).

Затем вводятся два различных числа: $A$ — номер начальной станции, и $B$ — номер станции, на которую нам нужно попасть. При этом если через станцию $A$ проходит несколько линий, то мы можем спуститься на любую из них. Так же если через станцию $B$ проходит несколько линий, то нам не важно, по какой линии мы приедем.

Выходные данные

Выведите минимальное количество пересадок, которое нам понадобится. Если добраться со станции $A$ на станцию $B$ невозможно, программа должна вывести одно число –1 (минус один).

Примеры
Входные данные
5
2
4 1 2 3 4
2 5 3
3 1
Выходные данные
0
Входные данные
5
5
2 1 2
2 1 3
2 2 3
2 3 4
2 4 5
1 5
Выходные данные
2
Входные данные
10
2
6 1 3 5 7 4 9
6 2 4 6 8 10 7
3 8
Выходные данные
1
Входные данные
4
2
2 1 2
2 3 4
1 3
Выходные данные
-1

Задача на informatics