#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
//英语 抄博友程序 floyd实现 dijkstra未实现
int dis[104][104];
int main()
{
memset(dis,-1,sizeof(dis));
int n,a,b;
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
dis[i][i]=0;
}
for(int i=1;i<=n;i++)
{
int m;
cin>>m;
for(int j=0;j<m;j++)
{
int x;
cin>>x;
if(j==0)//看博友翻译
{
dis[i][x]=0;
}else
{
dis[i][x]=1;
}
}
}
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(dis[i][k]!=-1 && dis[k][j]!=-1)
{
if(dis[i][j]==-1)
{
dis[i][j]=dis[i][k]+dis[k][j];
}else
{
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
}
}
}
}
cout<<dis[a][b]<<endl;//抄博友程序
}