#include<stdio.h>
int main()
{
int n,a,b;
int inf=99999999;
int e[1000][1000];
scanf("%d%d%d",&n,&a,&b);
int i,j,k;
//初始化
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
e[i][j]=0;
else
e[i][j]=inf;
int x,t;
for(i=1;i<=n;i++)
{
scanf("%d",&t);
for(j=1;j<=t;j++)
{
scanf("%d",&x);
if(j==1)//因为每个点都有开关,
//第一个点是不需要开开关的,
//但是之后的每一个都要开开关
e[i][x]=0;
else
e[i][x]=1;
}
}
//Floyd-Warshall算法核心
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(e[i][j]>e[i][k]+e[k][j])
e[i][j]=e[i][k]+e[k][j];
if(e[a][b]==inf)//说明没有从 A 到 B 的路线
printf("-1\n");
else
printf("%d\n",e[a][b]);
}