#5979. 电车

电车

题目描述

在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。

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

输入格式

第一行包含 33 个整数 N,A,BN, A, B,分别表示路口的数量、电车的起点和终点。

接下来有 NN 行,每行的开头有一个数字 KiK_i0KiN10 \leq K_i \leq N-1),表示这个路口与 KiK_i 条轨道相连,接下来有 KiK_i 个数字,表示每条轨道所通向的路口编号。开关默认指向第一个数字表示的轨道。

数据保证不会出现自环,但同一个路口之间可能有多条轨道。

输出格式

输出一个数字,表示从 AABB 所需的最少的切换开关次数。若无法从 AA 前往 BB,输出 1-1

样例

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

样例解释
33 个路口,起点为 22,终点为 11

  • 路口 1122 条轨道,默认指向 22
  • 路口 2222 条轨道,默认指向 33
  • 路口 3322 条轨道,默认指向 11

22 出发:默认走 232 \to 3,切换次数 00;在路口 33 默认走 313 \to 1,切换次数 00,累计 00 次切换即可到达 11

数据范围

  • 2N1002 \leq N \leq 1001A,BN1 \leq A, B \leq N
  • 0KiN10 \leq K_i \leq N-1,保证所有轨道通向的路口编号均在 1N1 \sim N 范围内。
  • 输入保证不存在自环,即从路口 ii 出发的轨道不会直接回到 ii(可能会有经由其他路口的环)。