#AT0179. 电车

电车

题目描述

在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。具体地,总共有 nn 个路口,路口编号为 1,2,,n1,2,\cdots,n

在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。

为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口 AA 到路口 BB 最少需要下车切换几次开关。

输入格式

第一行有 33 个整数 n,A,Bn,A,B 分别表示路口的数量,和电车的起点和终点。

接下来有 NN 行,每行的开头有一个数字 ki(0kin1)k_i(0\le k_i \le n-1),表示路口 iikik_i 条轨道相连,接下来有 kik_i 个数字表示每条轨道所通向的路口,开关默认指向第一个数字表示的轨道。

输出格式

输出一行一个数字,表示从 A 到 B 所需的最少的切换开关次数,若无法从 A 前往 B,输出 -1

样例

3 2 1
2 2 3
2 3 1
2 1 2
0

说明提示

样例 1 解释

22 路口默认通向 33 路口,33 路口默认通往 11 路口,那么电车可以从 22 出现到 33 再到 11 无需切换开关。

数据范围

对于 20%20\% 的数据,n20n≤20

对于 100%100\% 的数据,n100n≤100