#include<bits/stdc++.h>
using namespace std;
int n,a,b,curr,mn,g[101][101],dis[101];
bool vis[101];
int main(){
for(int i=0;i<101;i++)
for(int j=0;j<101;j++)
g[i][j]=2147483647;
for(int i=0;i<101;i++) g[i][i]=0;
for(int i=0;i<101;i++) dis[i]=2147483647;
cin>>n>>a>>b;
for(int i=0,m;i<n;i++){
cin>>m;
for(int j=0,d;j<m;j++){
cin>>d;
if(!j)
g[i+1][d]=0;
else g[i+1][d]=1;
}
}
curr=a;
vis[a]=1;
dis[a]=0;
while (!vis[b]){
for(int i=1;i<=n;i++){
if(dis[i]||g[curr][i]==2147483647)
continue;
if(dis[i]>g[curr][i]+dis[curr])
dis[i]=g[curr][i]+dis[curr];
}
mn=2147483647;
for(int i=1;i<=n;i++){
if(vis[i]||dis[i]>=mn)
continue;
curr=i;
mn=dis[i];
}
if(mn==2147483647){
cout<<-1;
return 0;
}
vis[curr]=true;
}
cout<<dis[b];
}